New issue
Advanced search Search tips

Issue 756312 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: 2017-02-01
OS: All
Pri: 2
Type: Task

Blocked on:
issue 771527
issue 807127



Sign in to add a comment

Remove SWReadFromCacheJob and migrate them into SWInstalledScriptsManager

Project Member Reported by shimazu@chromium.org, Aug 17 2017

Issue description

SWReadFromCacheJob is for reading installed scripts via ResourceLoader path, but we've already implemented InstalledScriptsManager.
However, currently it can provide the same installed script only once and it falls back to the ResourceLoader path when the script has been taken from InstalledScriptsManager.

For removing SWReadFromCacheJob, we need to implement
1) something which can replace the ResourceLoader path like ScriptURLLoader, or 
2) additional InstalledScriptsManager path for it to ask to the browser for sending the script again.

 
We've chatted offline, and plan 2 seems better since we don't need to have additional path to provide the scripts.

Comment 2 by shimazu@google.com, Sep 15 2017

Cc: -shimazu@chromium.org
Owner: shimazu@chromium.org
Status: Started (was: Available)
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c37741f3c09b7e8fbfd80b119165ac2ad883e0f2

commit c37741f3c09b7e8fbfd80b119165ac2ad883e0f2
Author: Hiroki Nakagawa <nhiroki@chromium.org>
Date: Fri Sep 15 11:53:52 2017

S13nServiceWorker: Store fetched scripts into the service worker script storage

This CL implements ServiceWorkerScriptURLLoader used for loading scripts for a
new (installing) service worker. It fetches the script (the main script or
imported script) from network, and forwards the response to a service worker in
a renderer process, while also writing the response into the service worker
script storage. See the class-level comments on ServiceWorkerScriptURLLoader for
more detailed sequence.

Some security checks and error handling will be implemented in following CLs
(e.g., MIME check).

This disables ServiceWorkerVersionBrowserV8CacheTest.Restart in
content_browsertests and some layout tests. Regarding the browser test, it needs
to read installed scripts, but the mechanism for that hasn't been implemented
yet (see  https://crbug.com/756312 ).

Bug:  748415 ,  756312 
Change-Id: I388ea13083347eb276f168a9eef4efadcb069e59
Reviewed-on: https://chromium-review.googlesource.com/618434
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502227}
[modify] https://crrev.com/c37741f3c09b7e8fbfd80b119165ac2ad883e0f2/content/browser/service_worker/service_worker_script_url_loader.cc
[modify] https://crrev.com/c37741f3c09b7e8fbfd80b119165ac2ad883e0f2/content/browser/service_worker/service_worker_script_url_loader.h
[modify] https://crrev.com/c37741f3c09b7e8fbfd80b119165ac2ad883e0f2/content/browser/service_worker/service_worker_script_url_loader_unittest.cc
[modify] https://crrev.com/c37741f3c09b7e8fbfd80b119165ac2ad883e0f2/testing/buildbot/filters/mojo.fyi.network_content_browsertests.filter
[modify] https://crrev.com/c37741f3c09b7e8fbfd80b119165ac2ad883e0f2/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService

Blockedon: 771527
Project Member

Comment 5 by bugdroid1@chromium.org, Oct 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/16e3475cf4b1bafbdaf905f188827df3ded45148

commit 16e3475cf4b1bafbdaf905f188827df3ded45148
Author: Makoto Shimazu <shimazu@chromium.org>
Date: Wed Oct 18 07:33:32 2017

ServiceWorkerInstalledScriptsManager handles all installed scripts

As a step of removing SWReadFromCacheJob, this patch adds a path to get the same
installed scripts multiple times. WebServiceWorkerInstalledScriptsManager asks
the browser if the script has already been taken, and the browser side
counterpart (SWInstalledScriptsSender) sends the script after streaming all of
scripts. This is not optimal for sites which importing the same script multiple
times, but it simplifies the code.

Bug:  756312 
Change-Id: I8d8c03fe8488367b5aa1b8d2c02e13a5f25e676e
Reviewed-on: https://chromium-review.googlesource.com/697165
Commit-Queue: Makoto Shimazu <shimazu@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509712}
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/browser/service_worker/embedded_worker_instance_unittest.cc
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/browser/service_worker/service_worker_installed_scripts_sender.cc
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/browser/service_worker/service_worker_installed_scripts_sender.h
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/browser/service_worker/service_worker_installed_scripts_sender_unittest.cc
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/browser/service_worker/service_worker_version.cc
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/common/service_worker/service_worker_installed_scripts_manager.mojom
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/renderer/service_worker/thread_safe_script_container.cc
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/renderer/service_worker/thread_safe_script_container.h
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/renderer/service_worker/thread_safe_script_container_unittest.cc
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/renderer/service_worker/web_service_worker_installed_scripts_manager_impl.cc
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/renderer/service_worker/web_service_worker_installed_scripts_manager_impl.h
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/content/renderer/service_worker/web_service_worker_installed_scripts_manager_impl_unittest.cc
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/third_party/WebKit/Source/core/workers/InstalledScriptsManager.h
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/third_party/WebKit/Source/core/workers/WorkerGlobalScope.h
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerGlobalScope.cpp
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerInstalledScriptsManager.cpp
[modify] https://crrev.com/16e3475cf4b1bafbdaf905f188827df3ded45148/third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerInstalledScriptsManager.h

Comment 6 by shimazu@google.com, Oct 19 2017

Labels: -M-63 M-65
NextAction: 2017-12-01
Next step would be removing SWReadFromCacheJob. Before doing this, I need to remove ServiceWorkerScriptStreaming flag since it cannot be disabled after removing SWReadFromCacheJob. I'd like to do it in M65.
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/67b99c4778015fe0d1408e50f24ee8dbdcea68b6

commit 67b99c4778015fe0d1408e50f24ee8dbdcea68b6
Author: Makoto Shimazu <shimazu@chromium.org>
Date: Mon Oct 23 10:27:04 2017

Replace std::queue by base::queue in ServiceWorkerInstalledScriptsSender

This is a follow up patch of crrev.com/c/697165.
This follows the guidance in
https://chromium.googlesource.com/chromium/src/+/master/base/containers/README.md#deque

Bug:  756312 
Change-Id: I360bcc3019adcfc9656dc6df2f9a0f9764fc2724
Reviewed-on: https://chromium-review.googlesource.com/732809
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Makoto Shimazu <shimazu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510756}
[modify] https://crrev.com/67b99c4778015fe0d1408e50f24ee8dbdcea68b6/content/browser/service_worker/service_worker_installed_scripts_sender.cc
[modify] https://crrev.com/67b99c4778015fe0d1408e50f24ee8dbdcea68b6/content/browser/service_worker/service_worker_installed_scripts_sender.h

The NextAction date has arrived: 2017-12-01

Comment 9 by shimazu@google.com, Dec 19 2017

Labels: -Type-Bug -M-65 M-66 Type-Task
NextAction: 2017-02-01
I'd like to wait it until M64 goes to stable.
Blockedon: 807127
It seems to me this is about dupe importScripts, and the current status is:

installed service worker: SWInstalledScriptsManager handles it
non-installed service worker, S13nSW enabled: SWInstalledScriptLoader handles it
non-installed service worker, S13nSW disabled: SWReadFromCacheJob is used

So it seems to me SWReadFromCacheJob is only used in non-S13nSW case, and we can remove it after S13nSW ships? So maybe WontFix this?
Status: WontFix (was: Started)
Thanks! You are right. Let's mark this as WONTFIX.

Sign in to add a comment