| Index: third_party/WebKit/Source/core/workers/ThreadedWorklet.cpp
|
| diff --git a/third_party/WebKit/Source/core/workers/ThreadedWorklet.cpp b/third_party/WebKit/Source/core/workers/ThreadedWorklet.cpp
|
| index 21b26cfe696d0f87ebdb3f833e741ddd89e6c6a1..972f81a1f8debb19248df22512a22646109a0ec1 100644
|
| --- a/third_party/WebKit/Source/core/workers/ThreadedWorklet.cpp
|
| +++ b/third_party/WebKit/Source/core/workers/ThreadedWorklet.cpp
|
| @@ -15,35 +15,22 @@
|
|
|
| namespace blink {
|
|
|
| -ThreadedWorklet::ThreadedWorklet(LocalFrame* frame) : Worklet(frame) {}
|
| +ThreadedWorklet::ThreadedWorklet(LocalFrame* frame)
|
| + : Worklet(frame), frame_(frame) {}
|
|
|
| -ScriptPromise ThreadedWorklet::addModule(ScriptState* script_state,
|
| - const String& url) {
|
| +void ThreadedWorklet::FetchAndInvokeScript(const KURL& module_url_record,
|
| + ScriptPromiseResolver* resolver) {
|
| DCHECK(IsMainThread());
|
| - if (!GetExecutionContext()) {
|
| - return ScriptPromise::RejectWithDOMException(
|
| - script_state, DOMException::Create(kInvalidStateError,
|
| - "This frame is already detached"));
|
| - }
|
| -
|
| - KURL script_url = GetExecutionContext()->CompleteURL(url);
|
| - if (!script_url.IsValid()) {
|
| - return ScriptPromise::RejectWithDOMException(
|
| - script_state, DOMException::Create(
|
| - kSyntaxError, "'" + url + "' is not a valid URL."));
|
| - }
|
| + if (!GetExecutionContext())
|
| + return;
|
|
|
| if (!IsInitialized())
|
| Initialize();
|
|
|
| - ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state);
|
| - ScriptPromise promise = resolver->Promise();
|
| -
|
| WorkletScriptLoader* script_loader =
|
| WorkletScriptLoader::Create(frame_->GetDocument()->Fetcher(), this);
|
| loader_to_resolver_map_.Set(script_loader, resolver);
|
| - script_loader->FetchScript(script_url);
|
| - return promise;
|
| + script_loader->FetchScript(module_url_record);
|
| }
|
|
|
| void ThreadedWorklet::NotifyWorkletScriptLoadingFinished(
|
| @@ -69,10 +56,11 @@ void ThreadedWorklet::ContextDestroyed(ExecutionContext* execution_context) {
|
| loader_to_resolver_map_.clear();
|
| if (IsInitialized())
|
| GetWorkletGlobalScopeProxy()->TerminateWorkletGlobalScope();
|
| - Worklet::ContextDestroyed(execution_context);
|
| + frame_ = nullptr;
|
| }
|
|
|
| DEFINE_TRACE(ThreadedWorklet) {
|
| + visitor->Trace(frame_);
|
| visitor->Trace(loader_to_resolver_map_);
|
| Worklet::Trace(visitor);
|
| }
|
|
|