Title: [245339] trunk/Source/WebKit
- Revision
- 245339
- Author
- [email protected]
- Date
- 2019-05-15 12:50:54 -0700 (Wed, 15 May 2019)
Log Message
Add assertions to help diagnose crash at WebProcessProxy::processPool()
https://bugs.webkit.org/show_bug.cgi?id=197856
<rdar://problem/49341366>
Reviewed by Chris Dumez.
* UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::CachedProcess::CachedProcess):
* UIProcess/WebProcessLifetimeObserver.cpp:
(WebKit::WebProcessLifetimeObserver::addWebPage):
(WebKit::WebProcessLifetimeObserver::removeWebPage):
* UIProcess/WebProcessLifetimeObserver.h:
(WebKit::WebProcessLifetimeObserver::hasProcess const):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (245338 => 245339)
--- trunk/Source/WebKit/ChangeLog 2019-05-15 19:24:16 UTC (rev 245338)
+++ trunk/Source/WebKit/ChangeLog 2019-05-15 19:50:54 UTC (rev 245339)
@@ -1,3 +1,19 @@
+2019-05-15 Sihui Liu <[email protected]>
+
+ Add assertions to help diagnose crash at WebProcessProxy::processPool()
+ https://bugs.webkit.org/show_bug.cgi?id=197856
+ <rdar://problem/49341366>
+
+ Reviewed by Chris Dumez.
+
+ * UIProcess/WebProcessCache.cpp:
+ (WebKit::WebProcessCache::CachedProcess::CachedProcess):
+ * UIProcess/WebProcessLifetimeObserver.cpp:
+ (WebKit::WebProcessLifetimeObserver::addWebPage):
+ (WebKit::WebProcessLifetimeObserver::removeWebPage):
+ * UIProcess/WebProcessLifetimeObserver.h:
+ (WebKit::WebProcessLifetimeObserver::hasProcess const):
+
2019-05-15 Wenson Hsieh <[email protected]>
inputmode="numeric" should show a number pad with digits 0-9, instead of the numeric keyplane
Modified: trunk/Source/WebKit/UIProcess/WebProcessCache.cpp (245338 => 245339)
--- trunk/Source/WebKit/UIProcess/WebProcessCache.cpp 2019-05-15 19:24:16 UTC (rev 245338)
+++ trunk/Source/WebKit/UIProcess/WebProcessCache.cpp 2019-05-15 19:50:54 UTC (rev 245339)
@@ -246,6 +246,8 @@
: m_process(WTFMove(process))
, m_evictionTimer(RunLoop::main(), this, &CachedProcess::evictionTimerFired)
{
+ RELEASE_ASSERT(!m_process->pageCount());
+ RELEASE_ASSERT_WITH_MESSAGE(!m_process->websiteDataStore().hasProcess(process.ptr()), "Only processes with pages should be registered with the data store");
m_process->setIsInProcessCache(true);
m_evictionTimer.startOneShot(cachedProcessLifetime);
}
Modified: trunk/Source/WebKit/UIProcess/WebProcessLifetimeObserver.cpp (245338 => 245339)
--- trunk/Source/WebKit/UIProcess/WebProcessLifetimeObserver.cpp 2019-05-15 19:24:16 UTC (rev 245338)
+++ trunk/Source/WebKit/UIProcess/WebProcessLifetimeObserver.cpp 2019-05-15 19:50:54 UTC (rev 245339)
@@ -26,6 +26,7 @@
#include "config.h"
#include "WebProcessLifetimeObserver.h"
+#include "Logging.h"
#include "WebPageProxy.h"
#include "WebProcessProxy.h"
@@ -42,9 +43,13 @@
void WebProcessLifetimeObserver::addWebPage(WebPageProxy& webPageProxy, WebProcessProxy& process)
{
ASSERT(process.state() == WebProcessProxy::State::Running);
+ RELEASE_ASSERT(!process.isInProcessCache());
+ RELEASE_ASSERT(!process.isPrewarmed());
- if (m_processes.add(&process).isNewEntry)
+ if (m_processes.add(&process).isNewEntry) {
+ RELEASE_LOG(Loading, "%p - WebProcessLifetimeObserver::addWebPage: webPID = %i, pageID = %" PRIu64, this, process.processIdentifier(), webPageProxy.pageID());
webProcessWillOpenConnection(process, *process.connection());
+ }
webPageWillOpenConnection(webPageProxy, *process.connection());
}
@@ -57,8 +62,10 @@
webPageDidCloseConnection(webPageProxy, *process.connection());
- if (m_processes.remove(&process))
+ if (m_processes.remove(&process)) {
+ RELEASE_LOG(Loading, "%p - WebProcessLifetimeObserver::removeWebPage: webPID = %i, pageID = %" PRIu64, this, process.processIdentifier(), webPageProxy.pageID());
webProcessDidCloseConnection(process, *process.connection());
+ }
}
WTF::IteratorRange<HashCountedSet<WebProcessProxy*>::const_iterator::Keys> WebProcessLifetimeObserver::processes() const
Modified: trunk/Source/WebKit/UIProcess/WebProcessLifetimeObserver.h (245338 => 245339)
--- trunk/Source/WebKit/UIProcess/WebProcessLifetimeObserver.h 2019-05-15 19:24:16 UTC (rev 245338)
+++ trunk/Source/WebKit/UIProcess/WebProcessLifetimeObserver.h 2019-05-15 19:50:54 UTC (rev 245339)
@@ -48,6 +48,8 @@
WTF::IteratorRange<HashCountedSet<WebProcessProxy*>::const_iterator::Keys> processes() const;
+ bool hasProcess(WebProcessProxy* process) const { return m_processes.contains(process); }
+
private:
friend class WebProcessLifetimeTracker;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes