Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(840)

Unified Diff: third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp

Issue 2840523002: [DONT COMMIT] Worklet: Implement "addModule()" algorithm for main thread worklets (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
diff --git a/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp b/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
index 4d2c6f10b6428927b613355010abc027c280d6a6..3fbd50f64a4bc7de1ff23d0a19a8bb283e241ad5 100644
--- a/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
+++ b/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
@@ -74,15 +74,13 @@ ScriptPromise MainThreadWorklet::addModule(ScriptState* script_state,
// 10.2: "Add the WorkletGlobalScope to worklet's WorkletGlobalScopes."
// "Depending on the type of worklet the user agent may create additional
// WorkletGlobalScopes at this time."
- // TODO(nhiroki): Create WorkletGlobalScopes at this point.
+ MayAddWorkletGlobalScopes();
+ DCHECK(!global_scope_proxies_.IsEmpty());
// Step 11: "Let pendingTaskStruct be a new pending tasks struct with counter
// initialized to the length of worklet's WorkletGlobalScopes."
- // TODO(nhiroki): Introduce the concept of "worklet's WorkletGlobalScopes" and
- // use the length of it here.
- constexpr int number_of_global_scopes = 1;
WorkletPendingTasks* pending_tasks =
- new WorkletPendingTasks(number_of_global_scopes, resolver);
+ new WorkletPendingTasks(global_scope_proxies_.size(), resolver);
// Step 12: "For each workletGlobalScope in the worklet's
// WorkletGlobalScopes, queue a task on the workletGlobalScope to fetch and
@@ -91,14 +89,16 @@ ScriptPromise MainThreadWorklet::addModule(ScriptState* script_state,
// and promise."
// TODO(nhiroki): Pass the remaining parameters (e.g., credentialOptions).
// TODO(nhiroki): Queue a task instead of executing this here.
- GetWorkletGlobalScopeProxy()->FetchAndInvokeScript(module_url_record,
- pending_tasks);
+ for (const auto& proxy : global_scope_proxies_)
+ proxy->FetchAndInvokeScript(module_url_record, pending_tasks);
+
return promise;
}
void MainThreadWorklet::ContextDestroyed(ExecutionContext* execution_context) {
DCHECK(IsMainThread());
- GetWorkletGlobalScopeProxy()->TerminateWorkletGlobalScope();
+ for (const auto& proxy : global_scope_proxies_)
+ proxy->TerminateWorkletGlobalScope();
Worklet::ContextDestroyed(execution_context);
}
« no previous file with comments | « third_party/WebKit/Source/core/workers/MainThreadWorklet.h ('k') | third_party/WebKit/Source/core/workers/ThreadedWorklet.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698