| Index: third_party/WebKit/Source/core/workers/WorkletScriptLoader.cpp
|
| diff --git a/third_party/WebKit/Source/core/workers/WorkletScriptLoader.cpp b/third_party/WebKit/Source/core/workers/WorkletScriptLoader.cpp
|
| index f20af726f37f38277d8f2054ecc24624a016213e..1efeaf9b805a357c8687bc08114721cbf0f462da 100644
|
| --- a/third_party/WebKit/Source/core/workers/WorkletScriptLoader.cpp
|
| +++ b/third_party/WebKit/Source/core/workers/WorkletScriptLoader.cpp
|
| @@ -4,39 +4,43 @@
|
|
|
| #include "core/workers/WorkletScriptLoader.h"
|
|
|
| -#include "core/dom/DOMException.h"
|
| -#include "core/dom/ExceptionCode.h"
|
| +#include "core/frame/LocalFrame.h"
|
| +#include "core/loader/DocumentLoader.h"
|
| +#include "core/loader/FrameFetchContext.h"
|
| #include "core/workers/Worklet.h"
|
| +#include "platform/loader/fetch/FetchInitiatorTypeNames.h"
|
|
|
| namespace blink {
|
|
|
| -WorkletScriptLoader::WorkletScriptLoader(ScriptPromiseResolver* resolver,
|
| - Worklet* worklet,
|
| - ScriptResource* resource)
|
| - : m_resolver(resolver), m_host(worklet) {
|
| +WorkletScriptLoader::WorkletScriptLoader(LocalFrame* frame, Client* client)
|
| + : m_fetcher(frame->loader().documentLoader()->fetcher()),
|
| + m_client(client) {}
|
| +
|
| +bool WorkletScriptLoader::fetchScript(const String& scriptURL) {
|
| + ResourceRequest resourceRequest(scriptURL);
|
| + resourceRequest.setRequestContext(WebURLRequest::RequestContextScript);
|
| + FetchRequest request(resourceRequest, FetchInitiatorTypeNames::internal);
|
| + ScriptResource* resource = ScriptResource::fetch(request, m_fetcher);
|
| + if (!resource)
|
| + return false;
|
| setResource(resource);
|
| + return true;
|
| }
|
|
|
| void WorkletScriptLoader::cancel() {
|
| + m_client->notifyCanceled(this);
|
| clearResource();
|
| }
|
|
|
| void WorkletScriptLoader::notifyFinished(Resource* resource) {
|
| - DCHECK(this->resource() == resource);
|
| -
|
| - m_host->notifyFinished(this);
|
| - if (resource->errorOccurred()) {
|
| - m_resolver->reject(DOMException::create(NetworkError));
|
| - } else {
|
| - DCHECK(resource->isLoaded());
|
| - m_resolver->resolve();
|
| - }
|
| + DCHECK_EQ(this->resource(), resource);
|
| + m_client->notifyFinished(this);
|
| clearResource();
|
| }
|
|
|
| DEFINE_TRACE(WorkletScriptLoader) {
|
| - visitor->trace(m_resolver);
|
| - visitor->trace(m_host);
|
| + visitor->trace(m_fetcher);
|
| + visitor->trace(m_client);
|
| ResourceOwner<ScriptResource, ScriptResourceClient>::trace(visitor);
|
| }
|
|
|
|
|