Crash under WebProcessProxy::didBecomeUnresponsive()
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Aug 2019 19:53:19 +0000 (19:53 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Aug 2019 19:53:19 +0000 (19:53 +0000)
commit8eea5d9147d86453284b9c0f55f15fdaf9e1bb6f
tree9c023bbee022bb2253a90dc3c605c4d4a3e2ce35
parent8baf105921f35d62701ba988f2c46e601200db02
Crash under WebProcessProxy::didBecomeUnresponsive()
https://bugs.webkit.org/show_bug.cgi?id=200346
<rdar://problem/53795984>

Reviewed by Geoffrey Garen.

Make sure the BackgroundProcessResponsivenessTimer / ResponsivenessTimer ref their client
while they call mayBecomeUnresponsive() / willChangeIsResponsive() / didChangeIsResponsive()
/ didBecomeUnresponsive() on their client, in case calling one of these ends up destroying
the client.

* UIProcess/BackgroundProcessResponsivenessTimer.cpp:
(WebKit::BackgroundProcessResponsivenessTimer::setResponsive):
* UIProcess/ResponsivenessTimer.cpp:
(WebKit::ResponsivenessTimer::timerFired):
* UIProcess/ResponsivenessTimer.h:
* UIProcess/WebProcessProxy.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248121 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit/ChangeLog
Source/WebKit/UIProcess/BackgroundProcessResponsivenessTimer.cpp
Source/WebKit/UIProcess/ResponsivenessTimer.cpp
Source/WebKit/UIProcess/ResponsivenessTimer.h
Source/WebKit/UIProcess/WebProcessProxy.h