| Index: third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
|
| diff --git a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
|
| index d0625a0cfecff35efa6369a830ac72ac374815ef..df1c855549616284cc81191861fa9a16353e306a 100644
|
| --- a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
|
| @@ -241,24 +241,6 @@ void WebSharedWorkerImpl::DidTerminateWorkerThread() {
|
| delete this;
|
| }
|
|
|
| -// WorkerLoaderProxyProvider -------------------------------------------------
|
| -
|
| -void WebSharedWorkerImpl::PostTaskToLoader(
|
| - const WebTraceLocation& location,
|
| - std::unique_ptr<WTF::CrossThreadClosure> task) {
|
| - DCHECK(worker_thread_->IsCurrentThread());
|
| - parent_frame_task_runners_->Get(TaskType::kNetworking)
|
| - ->PostTask(FROM_HERE, std::move(task));
|
| -}
|
| -
|
| -void WebSharedWorkerImpl::PostTaskToWorkerGlobalScope(
|
| - const WebTraceLocation& location,
|
| - std::unique_ptr<WTF::CrossThreadClosure> task) {
|
| - DCHECK(IsMainThread());
|
| - TaskRunnerHelper::Get(TaskType::kNetworking, GetWorkerThread())
|
| - ->PostTask(location, std::move(task));
|
| -}
|
| -
|
| ThreadableLoadingContext* WebSharedWorkerImpl::GetThreadableLoadingContext() {
|
| if (!loading_context_) {
|
| loading_context_ =
|
| @@ -270,6 +252,9 @@ ThreadableLoadingContext* WebSharedWorkerImpl::GetThreadableLoadingContext() {
|
| void WebSharedWorkerImpl::Connect(
|
| std::unique_ptr<WebMessagePortChannel> web_channel) {
|
| DCHECK(IsMainThread());
|
| + // The HTML spec requires to queue a connect event using the DOM manipulation
|
| + // task source.
|
| + // https://html.spec.whatwg.org/multipage/workers.html#shared-workers-and-the-sharedworker-interface
|
| TaskRunnerHelper::Get(TaskType::kDOMManipulation, GetWorkerThread())
|
| ->PostTask(
|
| BLINK_FROM_HERE,
|
| @@ -365,19 +350,18 @@ void WebSharedWorkerImpl::OnScriptLoaderFinished() {
|
| // use the thread's default task runner. Note that |m_document| should not be
|
| // used as it's a dummy document for loading that doesn't represent the frame
|
| // of any associated document.
|
| - parent_frame_task_runners_ = ParentFrameTaskRunners::Create(nullptr);
|
| + ParentFrameTaskRunners* task_runners =
|
| + ParentFrameTaskRunners::Create(nullptr);
|
|
|
| loader_proxy_ = WorkerLoaderProxy::Create(this);
|
| - reporting_proxy_ = new WebSharedWorkerReportingProxyImpl(
|
| - this, parent_frame_task_runners_.Get());
|
| + reporting_proxy_ = new WebSharedWorkerReportingProxyImpl(this, task_runners);
|
| worker_thread_ =
|
| SharedWorkerThread::Create(name_, loader_proxy_, *reporting_proxy_);
|
| probe::scriptImported(loading_document_, main_script_loader_->Identifier(),
|
| main_script_loader_->SourceText());
|
| main_script_loader_.Clear();
|
|
|
| - GetWorkerThread()->Start(std::move(startup_data),
|
| - parent_frame_task_runners_.Get());
|
| + GetWorkerThread()->Start(std::move(startup_data), task_runners);
|
| worker_inspector_proxy_->WorkerThreadCreated(ToDocument(loading_document_),
|
| GetWorkerThread(), url_);
|
| client_->WorkerScriptLoaded();
|
|
|