Title: [204085] trunk
- Revision
- 204085
- Author
- commit-qu...@webkit.org
- Date
- 2016-08-03 10:15:12 -0700 (Wed, 03 Aug 2016)
Log Message
http/tests/fetch/fetch-in-worker-crash.html is sometimes crashing
https://bugs.webkit.org/show_bug.cgi?id=160498
Patch by Youenn Fablet <you...@apple.com> on 2016-08-03
Reviewed by Chris Dumez.
Source/WebCore:
Covered by http/tests/fetch/fetch-in-worker-crash.html.
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): Taking a reference of the client wrapper to ensure it can be cleaned-up successfully.
LayoutTests:
* http/tests/fetch/fetch-in-worker.js:
(onmessage): Reducing flakiness risk by making fetch http load being delayed.
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (204084 => 204085)
--- trunk/LayoutTests/ChangeLog 2016-08-03 17:12:55 UTC (rev 204084)
+++ trunk/LayoutTests/ChangeLog 2016-08-03 17:15:12 UTC (rev 204085)
@@ -1,3 +1,13 @@
+2016-08-03 Youenn Fablet <you...@apple.com>
+
+ http/tests/fetch/fetch-in-worker-crash.html is sometimes crashing
+ https://bugs.webkit.org/show_bug.cgi?id=160498
+
+ Reviewed by Chris Dumez.
+
+ * http/tests/fetch/fetch-in-worker.js:
+ (onmessage): Reducing flakiness risk by making fetch http load being delayed.
+
2016-08-03 Chris Dumez <cdu...@apple.com>
Unreviewed, move LayoutTest out of platform/ios-simulator/ios.
Modified: trunk/LayoutTests/http/tests/fetch/fetch-in-worker.js (204084 => 204085)
--- trunk/LayoutTests/http/tests/fetch/fetch-in-worker.js 2016-08-03 17:12:55 UTC (rev 204084)
+++ trunk/LayoutTests/http/tests/fetch/fetch-in-worker.js 2016-08-03 17:15:12 UTC (rev 204085)
@@ -3,7 +3,7 @@
if (e.data !== "start")
return;
- var promise1 = fetch("detached-frame.html").then(() => {
+ var promise1 = fetch("/misc/resources/delayed-log.php?delay=100").then(() => {
postMessage("FAIL: promise 1 resolved");
}, () => {
postMessage("FAIL: promise 1 rejected");
Modified: trunk/Source/WebCore/ChangeLog (204084 => 204085)
--- trunk/Source/WebCore/ChangeLog 2016-08-03 17:12:55 UTC (rev 204084)
+++ trunk/Source/WebCore/ChangeLog 2016-08-03 17:15:12 UTC (rev 204085)
@@ -1,3 +1,15 @@
+2016-08-03 Youenn Fablet <you...@apple.com>
+
+ http/tests/fetch/fetch-in-worker-crash.html is sometimes crashing
+ https://bugs.webkit.org/show_bug.cgi?id=160498
+
+ Reviewed by Chris Dumez.
+
+ Covered by http/tests/fetch/fetch-in-worker-crash.html.
+
+ * loader/WorkerThreadableLoader.cpp:
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): Taking a reference of the client wrapper to ensure it can be cleaned-up successfully.
+
2016-08-02 Anders Carlsson <ander...@apple.com>
Freeze the last of the Objective-C bindings
Modified: trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp (204084 => 204085)
--- trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp 2016-08-03 17:12:55 UTC (rev 204084)
+++ trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp 2016-08-03 17:15:12 UTC (rev 204085)
@@ -149,14 +149,17 @@
m_mainThreadLoader = nullptr;
});
- ThreadableLoaderClientWrapper* clientWrapper = m_workerClientWrapper.get();
- if (!clientWrapper->done()) {
- // If the client hasn't reached a termination state, then transition it by sending a cancellation error.
- // Note: no more client callbacks will be done after this method -- the clearClientWrapper() call ensures that.
- ResourceError error(ResourceError::Type::Cancellation);
- clientWrapper->didFail(error);
+ if (m_workerClientWrapper->done()) {
+ clearClientWrapper();
+ return;
}
- clearClientWrapper();
+ // Taking a ref of client wrapper as call to didFail may take out the last reference of it.
+ Ref<ThreadableLoaderClientWrapper> protectedWorkerClientWrapper(*m_workerClientWrapper);
+ // If the client hasn't reached a termination state, then transition it by sending a cancellation error.
+ // Note: no more client callbacks will be done after this method -- we clear the client wrapper to ensure that.
+ ResourceError error(ResourceError::Type::Cancellation);
+ protectedWorkerClientWrapper->didFail(error);
+ protectedWorkerClientWrapper->clearClient();
}
void WorkerThreadableLoader::MainThreadBridge::clearClientWrapper()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes