New issue
Advanced search Search tips

Issue 829119 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 31666



Sign in to add a comment

Cleanup work to enable nested dedicated workers

Project Member Reported by japhet@chromium.org, Apr 4 2018

Issue description

This is a tracking issue for refactoring, architecture upgrades, etc., to enable support of nested dedicated workers.
 
Project Member

Comment 2 by bugdroid1@chromium.org, Apr 5 2018

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

Project Member

Comment 3 by bugdroid1@chromium.org, Apr 6 2018

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

Project Member

Comment 4 by bugdroid1@chromium.org, Apr 9 2018

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

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 10 2018

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

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 17 2018

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

Project Member

Comment 9 by bugdroid1@chromium.org, Apr 17 2018

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

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 17 2018

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

Project Member

Comment 11 by bugdroid1@chromium.org, May 18 2018

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

Project Member

Comment 12 by bugdroid1@chromium.org, May 23 2018

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

Project Member

Comment 13 by bugdroid1@chromium.org, May 25 2018

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

Status: Fixed (was: Started)
 Issue 741227  has been merged into this issue.

Sign in to add a comment