Chromium Code Reviews| Index: Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp |
| diff --git a/Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp b/Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp |
| index 4d9f998fcc65ad6c326e9c3413b26168ee317231..803ca1d5853508a0ff6e06b0c01bdcf089636eb2 100644 |
| --- a/Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp |
| +++ b/Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp |
| @@ -66,6 +66,10 @@ void WorkerLoaderClientBridgeSyncHelper::run() |
| void WorkerLoaderClientBridgeSyncHelper::didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) |
| { |
| + ASSERT(!m_done); |
| + if (m_done) |
| + return; |
|
kinuko
2015/02/03 02:35:36
nit: I am kind of supportive for this style, but c
hiroshige
2015/02/03 08:19:44
Hmm.
Then, how about use RELEASE_ASSERT here and o
kinuko
2015/02/03 08:51:22
That works for me, assuming that leaving a thread-
hiroshige
2015/02/03 09:21:14
Done.
|
| + |
| MutexLocker lock(m_lock); |
| ASSERT(isMainThread()); |
| m_clientTasks.append(bind(&ThreadableLoaderClient::didSendData, &m_client, bytesSent, totalBytesToBeSent)); |
| @@ -79,6 +83,10 @@ static void didReceiveResponseAdapter(ThreadableLoaderClient* client, unsigned l |
| void WorkerLoaderClientBridgeSyncHelper::didReceiveResponse(unsigned long identifier, const ResourceResponse& response, PassOwnPtr<WebDataConsumerHandle> handle) |
| { |
| + ASSERT(!m_done); |
| + if (m_done) |
| + return; |
| + |
| MutexLocker lock(m_lock); |
| ASSERT(isMainThread()); |
| m_clientTasks.append(bind(&didReceiveResponseAdapter, &m_client, identifier, response.copyData(), handle)); |
| @@ -86,6 +94,10 @@ void WorkerLoaderClientBridgeSyncHelper::didReceiveResponse(unsigned long identi |
| void WorkerLoaderClientBridgeSyncHelper::didReceiveData(const char* data, unsigned dataLength) |
| { |
| + ASSERT(!m_done); |
| + if (m_done) |
| + return; |
| + |
| MutexLocker lock(m_lock); |
| ASSERT(isMainThread()); |
| Vector<char>* buffer = new Vector<char>(dataLength); |
| @@ -96,6 +108,10 @@ void WorkerLoaderClientBridgeSyncHelper::didReceiveData(const char* data, unsign |
| void WorkerLoaderClientBridgeSyncHelper::didDownloadData(int dataLength) |
| { |
| + ASSERT(!m_done); |
| + if (m_done) |
| + return; |
| + |
| MutexLocker lock(m_lock); |
| ASSERT(isMainThread()); |
| m_clientTasks.append(bind(&ThreadableLoaderClient::didDownloadData, &m_client, dataLength)); |
| @@ -103,6 +119,10 @@ void WorkerLoaderClientBridgeSyncHelper::didDownloadData(int dataLength) |
| void WorkerLoaderClientBridgeSyncHelper::didReceiveCachedMetadata(const char* data, int dataLength) |
| { |
| + ASSERT(!m_done); |
| + if (m_done) |
| + return; |
| + |
| MutexLocker lock(m_lock); |
| ASSERT(isMainThread()); |
| Vector<char>* buffer = new Vector<char>(dataLength); |
| @@ -113,6 +133,10 @@ void WorkerLoaderClientBridgeSyncHelper::didReceiveCachedMetadata(const char* da |
| void WorkerLoaderClientBridgeSyncHelper::didFinishLoading(unsigned long identifier, double finishTime) |
| { |
| + ASSERT(!m_done); |
| + if (m_done) |
| + return; |
| + |
| MutexLocker lock(m_lock); |
| ASSERT(isMainThread()); |
| m_clientTasks.append(bind(&ThreadableLoaderClient::didFinishLoading, &m_client, identifier, finishTime)); |
| @@ -122,6 +146,10 @@ void WorkerLoaderClientBridgeSyncHelper::didFinishLoading(unsigned long identifi |
| void WorkerLoaderClientBridgeSyncHelper::didFail(const ResourceError& error) |
| { |
| + ASSERT(!m_done); |
| + if (m_done) |
| + return; |
| + |
| MutexLocker lock(m_lock); |
| ASSERT(isMainThread()); |
| m_clientTasks.append(bind(&ThreadableLoaderClient::didFail, &m_client, error.copy())); |
| @@ -131,6 +159,10 @@ void WorkerLoaderClientBridgeSyncHelper::didFail(const ResourceError& error) |
| void WorkerLoaderClientBridgeSyncHelper::didFailAccessControlCheck(const ResourceError& error) |
| { |
| + ASSERT(!m_done); |
| + if (m_done) |
| + return; |
| + |
| MutexLocker lock(m_lock); |
| ASSERT(isMainThread()); |
| m_clientTasks.append(bind(&ThreadableLoaderClient::didFailAccessControlCheck, &m_client, error.copy())); |
| @@ -140,6 +172,10 @@ void WorkerLoaderClientBridgeSyncHelper::didFailAccessControlCheck(const Resourc |
| void WorkerLoaderClientBridgeSyncHelper::didFailRedirectCheck() |
| { |
| + ASSERT(!m_done); |
| + if (m_done) |
| + return; |
| + |
| MutexLocker lock(m_lock); |
| ASSERT(isMainThread()); |
| m_clientTasks.append(bind(&ThreadableLoaderClient::didFailRedirectCheck, &m_client)); |