This is a tracking issue for refactoring, architecture upgrades, etc., to enable support of nested dedicated workers.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4be1c8bcb294429b101a53ff7ba9248c6ba134d7 commit 4be1c8bcb294429b101a53ff7ba9248c6ba134d7 Author: Nate Chapin <japhet@chromium.org> Date: Wed Apr 04 23:05:00 2018 Make DedicatedWorker classes safe for use off the main thread. This is in preparation for nested dedicated workers. Bug: 829119 Change-Id: Ifedf3a9b3d57a2e88b294280f148d25b6071a170 Reviewed-on: https://chromium-review.googlesource.com/993773 Commit-Queue: Nate Chapin <japhet@chromium.org> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Cr-Commit-Position: refs/heads/master@{#548229} [modify] https://crrev.com/4be1c8bcb294429b101a53ff7ba9248c6ba134d7/third_party/WebKit/Source/core/workers/DedicatedWorker.cpp [modify] https://crrev.com/4be1c8bcb294429b101a53ff7ba9248c6ba134d7/third_party/WebKit/Source/core/workers/DedicatedWorkerMessagingProxy.cpp [modify] https://crrev.com/4be1c8bcb294429b101a53ff7ba9248c6ba134d7/third_party/WebKit/Source/core/workers/DedicatedWorkerThread.cpp [modify] https://crrev.com/4be1c8bcb294429b101a53ff7ba9248c6ba134d7/third_party/WebKit/Source/core/workers/WorkerSettings.cpp [modify] https://crrev.com/4be1c8bcb294429b101a53ff7ba9248c6ba134d7/third_party/WebKit/Source/core/workers/WorkerSettings.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9db18b4f8758e71d75404ff8685cfb18cc106ae7 commit 9db18b4f8758e71d75404ff8685cfb18cc106ae7 Author: Hiroki Nakagawa <nhiroki@chromium.org> Date: Thu Apr 05 10:57:53 2018 Allow base::ThreadChecker in //src/third_party/WebKit/Source This CL allows base::ThreadChecker in //src/third_party/WebKit/Source and uses it in WorkerThreadLifecycleContext as an example. WorkerThreadLifecycleContext is now bound with the main thread and DCHECK(IsMainThread) checks it, but the restriction will be removed by ongoing CLs soon (see the associated issue). base::ThreadChecker should be useful in such a case. Bug: 829119 Change-Id: I01a2d8663829e6e2ad2d572664ff0a5ced14a4ae Reviewed-on: https://chromium-review.googlesource.com/997232 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org> Cr-Commit-Position: refs/heads/master@{#548383} [modify] https://crrev.com/9db18b4f8758e71d75404ff8685cfb18cc106ae7/third_party/WebKit/Source/DEPS [modify] https://crrev.com/9db18b4f8758e71d75404ff8685cfb18cc106ae7/third_party/WebKit/Source/core/workers/WorkerThreadLifecycleContext.cpp [modify] https://crrev.com/9db18b4f8758e71d75404ff8685cfb18cc106ae7/third_party/WebKit/Source/core/workers/WorkerThreadLifecycleContext.h [modify] https://crrev.com/9db18b4f8758e71d75404ff8685cfb18cc106ae7/third_party/WebKit/Tools/Scripts/audit-non-blink-usage.py
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/227a8737aa54c0c37b4d0037502178d98d668775 commit 227a8737aa54c0c37b4d0037502178d98d668775 Author: Nate Chapin <japhet@chromium.org> Date: Fri Apr 06 21:55:14 2018 Make ThreadedMessagingProxyBase and ParentFrameTaskRunners friendly to nested workers Don't assuming things are running on the main thread or the ExecutionContext is a Document. Bug: 829119 Change-Id: I2506c8aeb8d47d773fb0b9b393212af80acd8eca Reviewed-on: https://chromium-review.googlesource.com/996467 Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Commit-Queue: Nate Chapin <japhet@chromium.org> Cr-Commit-Position: refs/heads/master@{#548941} [modify] https://crrev.com/227a8737aa54c0c37b4d0037502178d98d668775/third_party/WebKit/Source/bindings/core/v8/serialization/SerializedScriptValueThreadedTest.cpp [modify] https://crrev.com/227a8737aa54c0c37b4d0037502178d98d668775/third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp [modify] https://crrev.com/227a8737aa54c0c37b4d0037502178d98d668775/third_party/WebKit/Source/core/loader/ThreadableLoaderTest.cpp [modify] https://crrev.com/227a8737aa54c0c37b4d0037502178d98d668775/third_party/WebKit/Source/core/workers/ParentFrameTaskRunners.cpp [modify] https://crrev.com/227a8737aa54c0c37b4d0037502178d98d668775/third_party/WebKit/Source/core/workers/ParentFrameTaskRunners.h [modify] https://crrev.com/227a8737aa54c0c37b4d0037502178d98d668775/third_party/WebKit/Source/core/workers/ThreadedMessagingProxyBase.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1aec0dc82f13b6243588fedba738d542504d60fe commit 1aec0dc82f13b6243588fedba738d542504d60fe Author: Hiroki Nakagawa <nhiroki@chromium.org> Date: Mon Apr 09 06:12:03 2018 Make CanvasAsyncBlobCreator take a bare task runner bound with the parent Document This is a clean-up CL and doesn't change behavior. Before this CL, CanvasAsyncBlobCreator takes ParentFrameTaskRunners that is a set of task runners bound with the parent Document. However, the blob creater uses only one task runner type and doesn't have to take the full set of the task runners. This CL replaces ParentFrameTaskRunners with bare base::SingleThreadTaskRunner for simplification. Bug: 829119 Change-Id: I656f42abac46bf723fc9aa614bdd9d3294c0e562 Reviewed-on: https://chromium-review.googlesource.com/1002336 Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Hajime Hoshi <hajimehoshi@chromium.org> Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org> Cr-Commit-Position: refs/heads/master@{#549112} [modify] https://crrev.com/1aec0dc82f13b6243588fedba738d542504d60fe/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc [modify] https://crrev.com/1aec0dc82f13b6243588fedba738d542504d60fe/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h [modify] https://crrev.com/1aec0dc82f13b6243588fedba738d542504d60fe/third_party/blink/renderer/core/workers/parent_frame_task_runners.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda commit 5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda Author: Nate Chapin <japhet@chromium.org> Date: Tue Apr 10 00:18:43 2018 Rename ParentFrameTaskRunners to ParentExecutionContextTaskRunners After https://chromium.googlesource.com/chromium/src.git/+/227a8737aa54c0c37b4d0037502178d98d668775, this class is no longer strongly tied to a FrameScheduler, and can instead be initialized with any ExecutionContext. Bug: 829119 Change-Id: I935b49b8ae3f1501cd6a5cf90d4608b4686eafb2 Reviewed-on: https://chromium-review.googlesource.com/1000546 Commit-Queue: Nate Chapin <japhet@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Cr-Commit-Position: refs/heads/master@{#549338} [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_threaded_test.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/loader/threadable_loader_test.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/loader/worker_threadable_loader.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/loader/worker_threadable_loader.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/BUILD.gn [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/dedicated_worker_object_proxy.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/dedicated_worker_object_proxy.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/dedicated_worker_test.cc [rename] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.cc [rename] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/shared_worker_reporting_proxy.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/shared_worker_reporting_proxy.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_messaging_proxy_base.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_messaging_proxy_base.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_object_proxy_base.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_object_proxy_base.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_worklet_global_scope.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_worklet_object_proxy.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_worklet_object_proxy.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/threaded_worklet_test.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/worker_global_scope.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/worker_thread.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/worker_thread.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/worker_thread_test.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/core/workers/worker_thread_test_helper.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/animationworklet/animation_worklet_global_scope_test.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/animationworklet/animation_worklet_thread_test.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/serviceworkers/service_worker_global_scope_proxy.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/serviceworkers/service_worker_global_scope_proxy.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/webaudio/audio_worklet_messaging_proxy.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/webaudio/audio_worklet_messaging_proxy.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/webaudio/audio_worklet_object_proxy.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/webaudio/audio_worklet_object_proxy.h [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/websockets/worker_web_socket_channel.cc [modify] https://crrev.com/5d5d246da88c2a5c3ff0e6484ae27eee6dd8bcda/third_party/blink/renderer/modules/websockets/worker_web_socket_channel.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/423d58abc1b2b443367f33bb081525c96fba3aa5 commit 423d58abc1b2b443367f33bb081525c96fba3aa5 Author: Nate Chapin <japhet@chromium.org> Date: Tue Apr 10 21:53:44 2018 Plumb a content settings client for nested workers. Bug: 829119 Change-Id: I6b85f4776e54fdc3f5cc036cfe46b6ef53e250b1 Reviewed-on: https://chromium-review.googlesource.com/1000518 Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Matt Falkenhagen <falken@chromium.org> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Commit-Queue: Nate Chapin <japhet@chromium.org> Cr-Commit-Position: refs/heads/master@{#549655} [modify] https://crrev.com/423d58abc1b2b443367f33bb081525c96fba3aa5/chrome/renderer/worker_content_settings_client.cc [modify] https://crrev.com/423d58abc1b2b443367f33bb081525c96fba3aa5/chrome/renderer/worker_content_settings_client.h [modify] https://crrev.com/423d58abc1b2b443367f33bb081525c96fba3aa5/third_party/blink/public/platform/web_content_settings_client.h [modify] https://crrev.com/423d58abc1b2b443367f33bb081525c96fba3aa5/third_party/blink/renderer/core/workers/dedicated_worker.cc [modify] https://crrev.com/423d58abc1b2b443367f33bb081525c96fba3aa5/third_party/blink/renderer/core/workers/worker_content_settings_client.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f74f39e43de8c481d621820074946dffa5d2f0aa commit f74f39e43de8c481d621820074946dffa5d2f0aa Author: Nate Chapin <japhet@chromium.org> Date: Tue Apr 10 22:31:02 2018 Teach WorkerThread about creation/destruction/management of child threads. Bug: 829119 Change-Id: I8808486a29691cf0881864be000485322e5c2034 Reviewed-on: https://chromium-review.googlesource.com/996554 Commit-Queue: Nate Chapin <japhet@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Reviewed-by: Matt Falkenhagen <falken@chromium.org> Cr-Commit-Position: refs/heads/master@{#549664} [modify] https://crrev.com/f74f39e43de8c481d621820074946dffa5d2f0aa/third_party/blink/renderer/core/workers/threaded_messaging_proxy_base.cc [modify] https://crrev.com/f74f39e43de8c481d621820074946dffa5d2f0aa/third_party/blink/renderer/core/workers/worker_thread.cc [modify] https://crrev.com/f74f39e43de8c481d621820074946dffa5d2f0aa/third_party/blink/renderer/core/workers/worker_thread.h [modify] https://crrev.com/f74f39e43de8c481d621820074946dffa5d2f0aa/third_party/blink/renderer/core/workers/worker_thread_lifecycle_context.h [modify] https://crrev.com/f74f39e43de8c481d621820074946dffa5d2f0aa/third_party/blink/renderer/core/workers/worker_thread_lifecycle_observer.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/37e205eb4228a912866bc145534784924c12ea83 commit 37e205eb4228a912866bc145534784924c12ea83 Author: Nate Chapin <japhet@chromium.org> Date: Tue Apr 17 18:03:15 2018 Make MemoryCoordinator and WebThreadSupportingGC usable from a worker thread. This is necessary to support nested workers. Bug: 829119 Change-Id: Ib48d10fc724477f720e77a15237ab106d8ed86f9 Reviewed-on: https://chromium-review.googlesource.com/1012794 Reviewed-by: Kenichi Ishibashi <bashi@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Commit-Queue: Nate Chapin <japhet@chromium.org> Cr-Commit-Position: refs/heads/master@{#551389} [modify] https://crrev.com/37e205eb4228a912866bc145534784924c12ea83/third_party/blink/renderer/platform/memory_coordinator.cc [modify] https://crrev.com/37e205eb4228a912866bc145534784924c12ea83/third_party/blink/renderer/platform/memory_coordinator.h [modify] https://crrev.com/37e205eb4228a912866bc145534784924c12ea83/third_party/blink/renderer/platform/web_thread_supporting_gc.cc [modify] https://crrev.com/37e205eb4228a912866bc145534784924c12ea83/third_party/blink/renderer/platform/web_thread_supporting_gc.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5390cdffedff6b66c22a7b65fc155bcd86b71aa8 commit 5390cdffedff6b66c22a7b65fc155bcd86b71aa8 Author: Nate Chapin <japhet@chromium.org> Date: Tue Apr 17 18:05:13 2018 Plumb a WebWorkerFetchContext for nested workers Bug: 829119 Change-Id: Ie393ac9e18bdfcded983d98a16c00254b0954547 Reviewed-on: https://chromium-review.googlesource.com/1000519 Commit-Queue: Nate Chapin <japhet@chromium.org> Reviewed-by: Bo <boliu@chromium.org> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Matt Falkenhagen <falken@chromium.org> Cr-Commit-Position: refs/heads/master@{#551391} [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/android_webview/renderer/aw_url_loader_throttle_provider.cc [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/android_webview/renderer/aw_url_loader_throttle_provider.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/android_webview/renderer/aw_websocket_handshake_throttle_provider.cc [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/android_webview/renderer/aw_websocket_handshake_throttle_provider.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/chrome/renderer/url_loader_throttle_provider_impl.cc [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/chrome/renderer/url_loader_throttle_provider_impl.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/chrome/renderer/websocket_handshake_throttle_provider_impl.cc [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/chrome/renderer/websocket_handshake_throttle_provider_impl.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/content/public/renderer/url_loader_throttle_provider.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/content/public/renderer/websocket_handshake_throttle_provider.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/content/renderer/render_frame_impl.cc [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/content/renderer/service_worker/worker_fetch_context_impl.cc [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/content/renderer/service_worker/worker_fetch_context_impl.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/content/renderer/shared_worker/embedded_shared_worker_stub.cc [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/content/shell/renderer/layout_test/test_websocket_handshake_throttle_provider.cc [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/content/shell/renderer/layout_test/test_websocket_handshake_throttle_provider.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/third_party/blink/public/platform/web_worker_fetch_context.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/third_party/blink/renderer/core/loader/worker_fetch_context.h [modify] https://crrev.com/5390cdffedff6b66c22a7b65fc155bcd86b71aa8/third_party/blink/renderer/core/workers/threaded_messaging_proxy_base.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/908b82feaae2e824e32a0ec1df505fe5ba2ac671 commit 908b82feaae2e824e32a0ec1df505fe5ba2ac671 Author: Nate Chapin <japhet@chromium.org> Date: Tue Apr 17 20:39:21 2018 Support nested workers in devtools Bug: 829119 Change-Id: Idbc1dd0294174b457989893d11e66237a04c3ea5 Reviewed-on: https://chromium-review.googlesource.com/1005367 Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Nate Chapin <japhet@chromium.org> Cr-Commit-Position: refs/heads/master@{#551465} [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/inspector/InspectorTracingAgent.cpp [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/inspector/InspectorWorkerAgent.cpp [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/inspector/InspectorWorkerAgent.h [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/inspector/worker_inspector_controller.cc [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/workers/BUILD.gn [add] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/workers/execution_context_worker_registry.cc [add] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/workers/execution_context_worker_registry.h [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/workers/worker_inspector_proxy.cc [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/core/workers/worker_inspector_proxy.h [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/devtools/front_end/sdk/ChildTargetManager.js [modify] https://crrev.com/908b82feaae2e824e32a0ec1df505fe5ba2ac671/third_party/blink/renderer/devtools/front_end/test_runner/TestRunner.js
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/857fbed2468c25c0e33177d94fcfe46c9d29c282 commit 857fbed2468c25c0e33177d94fcfe46c9d29c282 Author: Nate Chapin <japhet@chromium.org> Date: Fri May 18 19:33:48 2018 Prepare WorkerThreadableLoader for nested workers The logic of WorkerThreadableLoader actually supports nested workers as-is (i.e., it will proxy a nested worker's sync request and run it as an async request on the parent worker's thread), but it does a lot of DCHECKs based on IsMainThread(), which will fail because a nested worker's parent isn't on the main thread. * Initial cleanup step: AsyncTaskForwarder is dead code. Remove it and flatten SyncTaskForward into TaskForwarder. * Rename anything that mentions the main thread to refer to the parent thread instead. * Make DocumentThreadableLoader::GetExecutionContext() public, and use its IsContextThread() for DCHECKs in ParentThreadLoaderHolder * Use WorkerThreadableLoader::worker_global_scope_ for DCHECKS in WorkerThreadableLoader itself. * Plumb a worker task runner to TaskForwarder and WaitableEventWithTasks (#if DCHECK_IS_ON()) for their thread safety checks. Bug: 829119 Change-Id: Ied542e99f2566462f290ae5e0a0d1da57e63730f Reviewed-on: https://chromium-review.googlesource.com/1064796 Commit-Queue: Nate Chapin <japhet@chromium.org> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Cr-Commit-Position: refs/heads/master@{#559991} [modify] https://crrev.com/857fbed2468c25c0e33177d94fcfe46c9d29c282/third_party/blink/renderer/core/loader/document_threadable_loader.h [modify] https://crrev.com/857fbed2468c25c0e33177d94fcfe46c9d29c282/third_party/blink/renderer/core/loader/worker_threadable_loader.cc [modify] https://crrev.com/857fbed2468c25c0e33177d94fcfe46c9d29c282/third_party/blink/renderer/core/loader/worker_threadable_loader.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0d3c6ea5cb8cb0afb1794b46dfeea8e8955a5cd9 commit 0d3c6ea5cb8cb0afb1794b46dfeea8e8955a5cd9 Author: Nate Chapin <japhet@chromium.org> Date: Wed May 23 17:37:24 2018 Fix WorkerThread::TerminateChildThreadsOnWorkerThread It should call PrepareForShutdownOnWorkerThread() before terminating child worker threads, and PerformShutdownOnWorkerThread() when all children are terminated. Due to a clumsy copy-paste after LGTM in https://chromium-review.googlesource.com/c/chromium/src/+/996554, we do PerformShutdownOnWorkerThread() twice. Bug: 829119 Change-Id: I265a68a4f56feed004e3ecc4b32e5ffa9c0d028b Reviewed-on: https://chromium-review.googlesource.com/1068657 Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Commit-Queue: Nate Chapin <japhet@chromium.org> Cr-Commit-Position: refs/heads/master@{#561143} [modify] https://crrev.com/0d3c6ea5cb8cb0afb1794b46dfeea8e8955a5cd9/third_party/blink/renderer/core/workers/worker_thread.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bb4ba82e7889cc802c1d31f3bc501037f45ae707 commit bb4ba82e7889cc802c1d31f3bc501037f45ae707 Author: Nate Chapin <japhet@chromium.org> Date: Fri May 25 23:03:59 2018 Support WorkerSchedulers for nested workers Currently, FrameSchedulerImpl keeps a set of throttling observers that it notifies when throttling state changes. This includes each worker's WorkerSchedulerProxy. This CL moves throttling observers to the base class, FrameOrWorkerScheduler, allowing each nested worker to register its WorkerSchedulerProxy with its parent WorkerScheduler, so the WorkerScheduler can then propagate throttling state to the nested worker. Bug: 829119 Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f Reviewed-on: https://chromium-review.googlesource.com/994060 Reviewed-by: Pavel Feldman <pfeldman@chromium.org> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Reviewed-by: Alexander Timin <altimin@chromium.org> Commit-Queue: Nate Chapin <japhet@chromium.org> Cr-Commit-Position: refs/heads/master@{#562052} [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/public/platform/web_thread.h [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/core/frame/local_frame.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/core/workers/dedicated_worker_thread.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/core/workers/worker_thread.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/BUILD.gn [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/child/webthread_impl_for_worker_scheduler.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/child/webthread_impl_for_worker_scheduler.h [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/child/worker_scheduler.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/child/worker_scheduler.h [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/child/worker_scheduler_proxy.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/child/worker_scheduler_proxy.h [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/child/worker_scheduler_proxy_unittest.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/child/worker_scheduler_unittest.cc [add] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.h [modify] https://crrev.com/bb4ba82e7889cc802c1d31f3bc501037f45ae707/third_party/blink/renderer/platform/web_thread.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4b2251b6112099210c9211c970629f39e277ffc8 commit 4b2251b6112099210c9211c970629f39e277ffc8 Author: Nate Chapin <japhet@chromium.org> Date: Thu May 31 17:44:52 2018 Propagate a service_manager::Connector for nested workers Bug: 829119 Change-Id: Iaaaaad2942103471b3601e6b3a27d2975f337a1f Reviewed-on: https://chromium-review.googlesource.com/1079726 Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Commit-Queue: Nate Chapin <japhet@chromium.org> Cr-Commit-Position: refs/heads/master@{#563303} [modify] https://crrev.com/4b2251b6112099210c9211c970629f39e277ffc8/content/renderer/render_frame_impl.cc [modify] https://crrev.com/4b2251b6112099210c9211c970629f39e277ffc8/content/renderer/service_worker/worker_fetch_context_impl.cc [modify] https://crrev.com/4b2251b6112099210c9211c970629f39e277ffc8/content/renderer/service_worker/worker_fetch_context_impl.h [modify] https://crrev.com/4b2251b6112099210c9211c970629f39e277ffc8/content/renderer/shared_worker/embedded_shared_worker_stub.cc
Issue 741227 has been merged into this issue.
Comment 1 by bugdroid1@chromium.org
, Apr 4 2018