| 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 3dc90bded3066dc34a558e0e68c534336b4bc6bc..c3fd42df42551b138c48e0e11f9f15548132b58b 100644
|
| --- a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp
|
| @@ -322,20 +322,22 @@ void WebSharedWorkerImpl::postTaskToWorkerGlobalScope(
|
| }
|
|
|
| void WebSharedWorkerImpl::connect(WebMessagePortChannel* webChannel) {
|
| + DCHECK(isMainThread());
|
| workerThread()->postTask(
|
| BLINK_FROM_HERE,
|
| - createCrossThreadTask(
|
| - &connectTask,
|
| - WTF::passed(WebMessagePortChannelUniquePtr(webChannel))));
|
| + crossThreadBind(&WebSharedWorkerImpl::connectTask,
|
| + WTF::crossThreadUnretained(this),
|
| + WTF::passed(WebMessagePortChannelUniquePtr(webChannel))));
|
| }
|
|
|
| -void WebSharedWorkerImpl::connectTask(WebMessagePortChannelUniquePtr channel,
|
| - ExecutionContext* context) {
|
| +void WebSharedWorkerImpl::connectTask(WebMessagePortChannelUniquePtr channel) {
|
| // Wrap the passed-in channel in a MessagePort, and send it off via a connect
|
| // event.
|
| - MessagePort* port = MessagePort::create(*context);
|
| + DCHECK(m_workerThread->isCurrentThread());
|
| + WorkerGlobalScope* workerGlobalScope =
|
| + toWorkerGlobalScope(m_workerThread->globalScope());
|
| + MessagePort* port = MessagePort::create(*workerGlobalScope);
|
| port->entangle(std::move(channel));
|
| - WorkerGlobalScope* workerGlobalScope = toWorkerGlobalScope(context);
|
| SECURITY_DCHECK(workerGlobalScope->isSharedWorkerGlobalScope());
|
| workerGlobalScope->dispatchEvent(createConnectEvent(port));
|
| }
|
|
|