This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[WPE] Crash under WebProcessProxy::setIsInProcessCache when closing w…
…eb view in debug builds https://bugs.webkit.org/show_bug.cgi?id=233933 Reviewed by Geoffrey Garen. The crash would occur because the WebProcessPool destructor would call WebProcessCache::clear() which would destroy WebProcessCache::CachedProcess objects, causing WebProcessProxy::setIsInProcessCache(false) to get called. Previously, this call to setIsInProcessCache() would convert the WeakPtr the WebProcessProxy held to its process pool into a RefPtr, thus causing the WebProcessPool to get ref'd while in the middle of destruction. To address the issue, the setIsInProcessCache() setter now takes a WillShutDown flag that gets set in the CachedProcess destructor and which causes setIsInProcessCache() to return early right after setting the m_isInProcessCache flag, without trying to send IPC to the WebProcess or trying to ref the WebProcessPool. * UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::CachedProcess::~CachedProcess): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::setIsInProcessCache): * UIProcess/WebProcessProxy.h: Canonical link: https://commits.webkit.org/245040@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- Loading branch information
Showing 4 changed files with 34 additions and 3 deletions.