Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1346)

Unified Diff: Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp

Issue 891263002: Prevent calling didReceiveData()/didFinishLoading() after didFailAccessControlCheck() (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Comment fix. Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/loader/DocumentThreadableLoader.cpp ('k') | Source/web/tests/AssociatedURLLoaderTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp
diff --git a/Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp b/Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp
index 4d9f998fcc65ad6c326e9c3413b26168ee317231..25628476ba136f85d646070599c4f7d1a84b7de4 100644
--- a/Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp
+++ b/Source/core/loader/WorkerLoaderClientBridgeSyncHelper.cpp
@@ -66,6 +66,8 @@ void WorkerLoaderClientBridgeSyncHelper::run()
void WorkerLoaderClientBridgeSyncHelper::didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent)
{
+ RELEASE_ASSERT(!m_done);
+
MutexLocker lock(m_lock);
ASSERT(isMainThread());
m_clientTasks.append(bind(&ThreadableLoaderClient::didSendData, &m_client, bytesSent, totalBytesToBeSent));
@@ -79,6 +81,8 @@ static void didReceiveResponseAdapter(ThreadableLoaderClient* client, unsigned l
void WorkerLoaderClientBridgeSyncHelper::didReceiveResponse(unsigned long identifier, const ResourceResponse& response, PassOwnPtr<WebDataConsumerHandle> handle)
{
+ RELEASE_ASSERT(!m_done);
+
MutexLocker lock(m_lock);
ASSERT(isMainThread());
m_clientTasks.append(bind(&didReceiveResponseAdapter, &m_client, identifier, response.copyData(), handle));
@@ -86,6 +90,8 @@ void WorkerLoaderClientBridgeSyncHelper::didReceiveResponse(unsigned long identi
void WorkerLoaderClientBridgeSyncHelper::didReceiveData(const char* data, unsigned dataLength)
{
+ RELEASE_ASSERT(!m_done);
+
MutexLocker lock(m_lock);
ASSERT(isMainThread());
Vector<char>* buffer = new Vector<char>(dataLength);
@@ -96,6 +102,8 @@ void WorkerLoaderClientBridgeSyncHelper::didReceiveData(const char* data, unsign
void WorkerLoaderClientBridgeSyncHelper::didDownloadData(int dataLength)
{
+ RELEASE_ASSERT(!m_done);
+
MutexLocker lock(m_lock);
ASSERT(isMainThread());
m_clientTasks.append(bind(&ThreadableLoaderClient::didDownloadData, &m_client, dataLength));
@@ -103,6 +111,8 @@ void WorkerLoaderClientBridgeSyncHelper::didDownloadData(int dataLength)
void WorkerLoaderClientBridgeSyncHelper::didReceiveCachedMetadata(const char* data, int dataLength)
{
+ RELEASE_ASSERT(!m_done);
+
MutexLocker lock(m_lock);
ASSERT(isMainThread());
Vector<char>* buffer = new Vector<char>(dataLength);
@@ -113,6 +123,8 @@ void WorkerLoaderClientBridgeSyncHelper::didReceiveCachedMetadata(const char* da
void WorkerLoaderClientBridgeSyncHelper::didFinishLoading(unsigned long identifier, double finishTime)
{
+ RELEASE_ASSERT(!m_done);
+
MutexLocker lock(m_lock);
ASSERT(isMainThread());
m_clientTasks.append(bind(&ThreadableLoaderClient::didFinishLoading, &m_client, identifier, finishTime));
@@ -122,6 +134,8 @@ void WorkerLoaderClientBridgeSyncHelper::didFinishLoading(unsigned long identifi
void WorkerLoaderClientBridgeSyncHelper::didFail(const ResourceError& error)
{
+ RELEASE_ASSERT(!m_done);
+
MutexLocker lock(m_lock);
ASSERT(isMainThread());
m_clientTasks.append(bind(&ThreadableLoaderClient::didFail, &m_client, error.copy()));
@@ -131,6 +145,8 @@ void WorkerLoaderClientBridgeSyncHelper::didFail(const ResourceError& error)
void WorkerLoaderClientBridgeSyncHelper::didFailAccessControlCheck(const ResourceError& error)
{
+ RELEASE_ASSERT(!m_done);
+
MutexLocker lock(m_lock);
ASSERT(isMainThread());
m_clientTasks.append(bind(&ThreadableLoaderClient::didFailAccessControlCheck, &m_client, error.copy()));
@@ -140,6 +156,8 @@ void WorkerLoaderClientBridgeSyncHelper::didFailAccessControlCheck(const Resourc
void WorkerLoaderClientBridgeSyncHelper::didFailRedirectCheck()
{
+ RELEASE_ASSERT(!m_done);
+
MutexLocker lock(m_lock);
ASSERT(isMainThread());
m_clientTasks.append(bind(&ThreadableLoaderClient::didFailRedirectCheck, &m_client));
« no previous file with comments | « Source/core/loader/DocumentThreadableLoader.cpp ('k') | Source/web/tests/AssociatedURLLoaderTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698