Title: [246377] branches/safari-607-branch/Source/WebKit
- Revision
- 246377
- Author
- [email protected]
- Date
- 2019-06-12 15:20:47 -0700 (Wed, 12 Jun 2019)
Log Message
Cherry-pick r245298. rdar://problem/51656613
Crash under WebKit::WebProcessProxy::didBecomeUnresponsive()
https://bugs.webkit.org/show_bug.cgi?id=197883
<rdar://problem/50665984>
Reviewed by Alex Christensen.
Protect |this| in didBecomeUnresponsive() and didExceedCPULimit() since we call client
delegates and those may cause |this| to get destroyed.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didBecomeUnresponsive):
(WebKit::WebProcessProxy::didExceedCPULimit):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245298 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-607-branch/Source/WebKit/ChangeLog (246376 => 246377)
--- branches/safari-607-branch/Source/WebKit/ChangeLog 2019-06-12 22:20:43 UTC (rev 246376)
+++ branches/safari-607-branch/Source/WebKit/ChangeLog 2019-06-12 22:20:47 UTC (rev 246377)
@@ -1,5 +1,39 @@
2019-06-12 Null <[email protected]>
+ Cherry-pick r245298. rdar://problem/51656613
+
+ Crash under WebKit::WebProcessProxy::didBecomeUnresponsive()
+ https://bugs.webkit.org/show_bug.cgi?id=197883
+ <rdar://problem/50665984>
+
+ Reviewed by Alex Christensen.
+
+ Protect |this| in didBecomeUnresponsive() and didExceedCPULimit() since we call client
+ delegates and those may cause |this| to get destroyed.
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didBecomeUnresponsive):
+ (WebKit::WebProcessProxy::didExceedCPULimit):
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245298 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2019-05-14 Chris Dumez <[email protected]>
+
+ Crash under WebKit::WebProcessProxy::didBecomeUnresponsive()
+ https://bugs.webkit.org/show_bug.cgi?id=197883
+ <rdar://problem/50665984>
+
+ Reviewed by Alex Christensen.
+
+ Protect |this| in didBecomeUnresponsive() and didExceedCPULimit() since we call client
+ delegates and those may cause |this| to get destroyed.
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didBecomeUnresponsive):
+ (WebKit::WebProcessProxy::didExceedCPULimit):
+
+2019-06-12 Null <[email protected]>
+
Cherry-pick r243631. rdar://problem/51656612
API::Data::createWithoutCopying should do a null check before calling CFRelease
Modified: branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessProxy.cpp (246376 => 246377)
--- branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessProxy.cpp 2019-06-12 22:20:43 UTC (rev 246376)
+++ branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessProxy.cpp 2019-06-12 22:20:47 UTC (rev 246377)
@@ -833,6 +833,8 @@
void WebProcessProxy::didBecomeUnresponsive()
{
+ auto protectedThis = makeRef(*this);
+
m_isResponsive = NoOrMaybe::No;
auto isResponsiveCallbacks = WTFMove(m_isResponsiveCallbacks);
@@ -1408,6 +1410,8 @@
void WebProcessProxy::didExceedCPULimit()
{
+ auto protectedThis = makeRef(*this);
+
for (auto& page : pages()) {
if (page->isPlayingAudio()) {
RELEASE_LOG(PerformanceLogging, "%p - WebProcessProxy::didExceedCPULimit() WebProcess with pid %d has exceeded the background CPU limit but we are not terminating it because there is audio playing", this, processIdentifier());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes