Title: [229833] trunk/Source/WebKit
- Revision
- 229833
- Author
- [email protected]
- Date
- 2018-03-21 16:11:38 -0700 (Wed, 21 Mar 2018)
Log Message
WebKitTestRunner crashed in com.apple.WebKit: WebKit::WebProcessPool::terminateServiceWorkerProcesses
https://bugs.webkit.org/show_bug.cgi?id=183875
Reviewed by Brent Fulgham.
Protect |this| while we're iterating over m_serviceWorkerProcesses and terminating
each service worker process. It is possible for the WebProcess pool to get destroyed
as a result of terminating a service worker process.
This change is covered by layout tests that are currently crashing on the ASAN bots.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::terminateServiceWorkerProcesses):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (229832 => 229833)
--- trunk/Source/WebKit/ChangeLog 2018-03-21 22:37:37 UTC (rev 229832)
+++ trunk/Source/WebKit/ChangeLog 2018-03-21 23:11:38 UTC (rev 229833)
@@ -1,3 +1,19 @@
+2018-03-21 Chris Dumez <[email protected]>
+
+ WebKitTestRunner crashed in com.apple.WebKit: WebKit::WebProcessPool::terminateServiceWorkerProcesses
+ https://bugs.webkit.org/show_bug.cgi?id=183875
+
+ Reviewed by Brent Fulgham.
+
+ Protect |this| while we're iterating over m_serviceWorkerProcesses and terminating
+ each service worker process. It is possible for the WebProcess pool to get destroyed
+ as a result of terminating a service worker process.
+
+ This change is covered by layout tests that are currently crashing on the ASAN bots.
+
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::terminateServiceWorkerProcesses):
+
2018-03-21 Eric Carlson <[email protected]>
Fix typo in inactive media stream timeout default value
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (229832 => 229833)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-03-21 22:37:37 UTC (rev 229832)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-03-21 23:11:38 UTC (rev 229833)
@@ -1505,9 +1505,7 @@
void WebProcessPool::terminateServiceWorkerProcesses()
{
#if ENABLE(SERVICE_WORKER)
- if (m_serviceWorkerProcesses.isEmpty())
- return;
-
+ auto protectedThis = makeRef(*this);
while (!m_serviceWorkerProcesses.isEmpty())
m_serviceWorkerProcesses.begin()->value->requestTermination(ProcessTerminationReason::RequestedByClient);
#endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes