Index: third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp |
diff --git a/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp b/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp |
index 940045d1c95f9a7c570f276ac47a9b5a94ba18d0..002e04fa6779774d8874a13f27cda9e2e762ca80 100644 |
--- a/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp |
+++ b/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.cpp |
@@ -277,7 +277,7 @@ static void workerGlobalScopeDidConnect(Bridge* bridge, const String& subprotoco |
void Peer::didConnect(const String& subprotocol, const String& extensions) |
{ |
ASSERT(isMainThread()); |
- m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidConnect, m_bridge, subprotocol, extensions)); |
+ m_loaderProxy->postTaskToWorkerGlobalScope(BLINK_FROM_HERE, createCrossThreadTask(&workerGlobalScopeDidConnect, m_bridge, subprotocol, extensions)); |
} |
static void workerGlobalScopeDidReceiveTextMessage(Bridge* bridge, const String& payload, ExecutionContext* context) |
@@ -290,7 +290,7 @@ static void workerGlobalScopeDidReceiveTextMessage(Bridge* bridge, const String& |
void Peer::didReceiveTextMessage(const String& payload) |
{ |
ASSERT(isMainThread()); |
- m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidReceiveTextMessage, m_bridge, payload)); |
+ m_loaderProxy->postTaskToWorkerGlobalScope(BLINK_FROM_HERE, createCrossThreadTask(&workerGlobalScopeDidReceiveTextMessage, m_bridge, payload)); |
} |
static void workerGlobalScopeDidReceiveBinaryMessage(Bridge* bridge, std::unique_ptr<Vector<char>> payload, ExecutionContext* context) |
@@ -303,7 +303,7 @@ static void workerGlobalScopeDidReceiveBinaryMessage(Bridge* bridge, std::unique |
void Peer::didReceiveBinaryMessage(std::unique_ptr<Vector<char>> payload) |
{ |
ASSERT(isMainThread()); |
- m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidReceiveBinaryMessage, m_bridge, passed(std::move(payload)))); |
+ m_loaderProxy->postTaskToWorkerGlobalScope(BLINK_FROM_HERE, createCrossThreadTask(&workerGlobalScopeDidReceiveBinaryMessage, m_bridge, passed(std::move(payload)))); |
} |
static void workerGlobalScopeDidConsumeBufferedAmount(Bridge* bridge, uint64_t consumed, ExecutionContext* context) |
@@ -316,7 +316,7 @@ static void workerGlobalScopeDidConsumeBufferedAmount(Bridge* bridge, uint64_t c |
void Peer::didConsumeBufferedAmount(uint64_t consumed) |
{ |
ASSERT(isMainThread()); |
- m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidConsumeBufferedAmount, m_bridge, consumed)); |
+ m_loaderProxy->postTaskToWorkerGlobalScope(BLINK_FROM_HERE, createCrossThreadTask(&workerGlobalScopeDidConsumeBufferedAmount, m_bridge, consumed)); |
} |
static void workerGlobalScopeDidStartClosingHandshake(Bridge* bridge, ExecutionContext* context) |
@@ -329,7 +329,7 @@ static void workerGlobalScopeDidStartClosingHandshake(Bridge* bridge, ExecutionC |
void Peer::didStartClosingHandshake() |
{ |
ASSERT(isMainThread()); |
- m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidStartClosingHandshake, m_bridge)); |
+ m_loaderProxy->postTaskToWorkerGlobalScope(BLINK_FROM_HERE, createCrossThreadTask(&workerGlobalScopeDidStartClosingHandshake, m_bridge)); |
} |
static void workerGlobalScopeDidClose(Bridge* bridge, WebSocketChannelClient::ClosingHandshakeCompletionStatus closingHandshakeCompletion, unsigned short code, const String& reason, ExecutionContext* context) |
@@ -346,7 +346,7 @@ void Peer::didClose(ClosingHandshakeCompletionStatus closingHandshakeCompletion, |
m_mainWebSocketChannel->disconnect(); |
m_mainWebSocketChannel = nullptr; |
} |
- m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidClose, m_bridge, closingHandshakeCompletion, code, reason)); |
+ m_loaderProxy->postTaskToWorkerGlobalScope(BLINK_FROM_HERE, createCrossThreadTask(&workerGlobalScopeDidClose, m_bridge, closingHandshakeCompletion, code, reason)); |
} |
static void workerGlobalScopeDidError(Bridge* bridge, ExecutionContext* context) |
@@ -359,7 +359,7 @@ static void workerGlobalScopeDidError(Bridge* bridge, ExecutionContext* context) |
void Peer::didError() |
{ |
ASSERT(isMainThread()); |
- m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidError, m_bridge)); |
+ m_loaderProxy->postTaskToWorkerGlobalScope(BLINK_FROM_HERE, createCrossThreadTask(&workerGlobalScopeDidError, m_bridge)); |
} |
void Peer::contextDestroyed() |
@@ -407,7 +407,7 @@ void Bridge::initialize(std::unique_ptr<SourceLocation> location) |
{ |
// Wait for completion of the task on the main thread because the connection |
// must synchronously be established (see Bridge::connect). |
- if (!waitForMethodCompletion(createCrossThreadTask(&Bridge::createPeerOnMainThread, wrapCrossThreadPersistent(this), passed(std::move(location)), wrapCrossThreadPersistent(m_workerGlobalScope->thread()->getWorkerThreadLifecycleContext())))) { |
+ if (!waitForMethodCompletion(BLINK_FROM_HERE, createCrossThreadTask(&Bridge::createPeerOnMainThread, wrapCrossThreadPersistent(this), passed(std::move(location)), wrapCrossThreadPersistent(m_workerGlobalScope->thread()->getWorkerThreadLifecycleContext())))) { |
// The worker thread has been signalled to shutdown before method completion. |
disconnect(); |
} |
@@ -420,7 +420,7 @@ bool Bridge::connect(const KURL& url, const String& protocol) |
// Wait for completion of the task on the main thread because the mixed |
// content check must synchronously be conducted. |
- if (!waitForMethodCompletion(createCrossThreadTask(&Peer::connect, wrapCrossThreadPersistent(m_peer.get()), url, protocol))) |
+ if (!waitForMethodCompletion(BLINK_FROM_HERE, createCrossThreadTask(&Peer::connect, wrapCrossThreadPersistent(m_peer.get()), url, protocol))) |
return false; |
return m_syncHelper->connectRequestResult(); |
@@ -433,7 +433,7 @@ void Bridge::send(const CString& message) |
if (message.length()) |
memcpy(data->data(), static_cast<const char*>(message.data()), message.length()); |
- m_loaderProxy->postTaskToLoader(createCrossThreadTask(&Peer::sendTextAsCharVector, wrapCrossThreadPersistent(m_peer.get()), passed(std::move(data)))); |
+ m_loaderProxy->postTaskToLoader(BLINK_FROM_HERE, createCrossThreadTask(&Peer::sendTextAsCharVector, wrapCrossThreadPersistent(m_peer.get()), passed(std::move(data)))); |
} |
void Bridge::send(const DOMArrayBuffer& binaryData, unsigned byteOffset, unsigned byteLength) |
@@ -444,25 +444,25 @@ void Bridge::send(const DOMArrayBuffer& binaryData, unsigned byteOffset, unsigne |
if (binaryData.byteLength()) |
memcpy(data->data(), static_cast<const char*>(binaryData.data()) + byteOffset, byteLength); |
- m_loaderProxy->postTaskToLoader(createCrossThreadTask(&Peer::sendBinaryAsCharVector, wrapCrossThreadPersistent(m_peer.get()), passed(std::move(data)))); |
+ m_loaderProxy->postTaskToLoader(BLINK_FROM_HERE, createCrossThreadTask(&Peer::sendBinaryAsCharVector, wrapCrossThreadPersistent(m_peer.get()), passed(std::move(data)))); |
} |
void Bridge::send(PassRefPtr<BlobDataHandle> data) |
{ |
ASSERT(m_peer); |
- m_loaderProxy->postTaskToLoader(createCrossThreadTask(&Peer::sendBlob, wrapCrossThreadPersistent(m_peer.get()), data)); |
+ m_loaderProxy->postTaskToLoader(BLINK_FROM_HERE, createCrossThreadTask(&Peer::sendBlob, wrapCrossThreadPersistent(m_peer.get()), data)); |
} |
void Bridge::close(int code, const String& reason) |
{ |
ASSERT(m_peer); |
- m_loaderProxy->postTaskToLoader(createCrossThreadTask(&Peer::close, wrapCrossThreadPersistent(m_peer.get()), code, reason)); |
+ m_loaderProxy->postTaskToLoader(BLINK_FROM_HERE, createCrossThreadTask(&Peer::close, wrapCrossThreadPersistent(m_peer.get()), code, reason)); |
} |
void Bridge::fail(const String& reason, MessageLevel level, std::unique_ptr<SourceLocation> location) |
{ |
ASSERT(m_peer); |
- m_loaderProxy->postTaskToLoader(createCrossThreadTask(&Peer::fail, wrapCrossThreadPersistent(m_peer.get()), reason, level, passed(std::move(location)))); |
+ m_loaderProxy->postTaskToLoader(BLINK_FROM_HERE, createCrossThreadTask(&Peer::fail, wrapCrossThreadPersistent(m_peer.get()), reason, level, passed(std::move(location)))); |
} |
void Bridge::disconnect() |
@@ -472,7 +472,7 @@ void Bridge::disconnect() |
// Wait for completion of the task on the main thread to ensure that |
// |m_peer| does not touch this Bridge object after this point. |
- waitForMethodCompletion(createCrossThreadTask(&Peer::disconnect, wrapCrossThreadPersistent(m_peer.get()))); |
+ waitForMethodCompletion(BLINK_FROM_HERE, createCrossThreadTask(&Peer::disconnect, wrapCrossThreadPersistent(m_peer.get()))); |
m_client = nullptr; |
m_peer = nullptr; |
@@ -483,12 +483,12 @@ void Bridge::disconnect() |
// Caller of this function should hold a reference to the bridge, because this function may call WebSocket::didClose() in the end, |
// which causes the bridge to get disconnected from the WebSocket and deleted if there is no other reference. |
-bool Bridge::waitForMethodCompletion(std::unique_ptr<ExecutionContextTask> task) |
+bool Bridge::waitForMethodCompletion(const WebTraceLocation& location, std::unique_ptr<ExecutionContextTask> task) |
{ |
ASSERT(m_workerGlobalScope); |
ASSERT(m_syncHelper); |
- m_loaderProxy->postTaskToLoader(std::move(task)); |
+ m_loaderProxy->postTaskToLoader(location, std::move(task)); |
// We wait for the syncHelper event even if a shutdown event is fired. |
// See https://codereview.chromium.org/267323004/#msg43 for why we need to wait this. |