Title: [247283] trunk/Source
- Revision
- 247283
- Author
- cdu...@apple.com
- Date
- 2019-07-09 15:40:08 -0700 (Tue, 09 Jul 2019)
Log Message
Cleanup uses of NetworkProcess::m_sessionByConnection
https://bugs.webkit.org/show_bug.cgi?id=199586
Reviewed by Alex Christensen.
Avoid double HashMap lookups and call add() instead of ensure() when appropriate.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::networkSessionByConnection const):
(WebKit::NetworkProcess::webPageWasAdded):
(WebKit::NetworkProcess::webProcessWasDisconnected):
Modified Paths
Diff
Modified: trunk/Source/WebCore/page/PageGroup.cpp (247282 => 247283)
--- trunk/Source/WebCore/page/PageGroup.cpp 2019-07-09 22:11:04 UTC (rev 247282)
+++ trunk/Source/WebCore/page/PageGroup.cpp 2019-07-09 22:40:08 UTC (rev 247283)
@@ -93,6 +93,9 @@
{
ASSERT(!m_pages.contains(&page));
m_pages.add(&page);
+
+ if (m_isLegacyPrivateBrowsingEnabledForTesting)
+ page.enableLegacyPrivateBrowsing(true);
}
void PageGroup::removePage(Page& page)
@@ -123,4 +126,15 @@
}
#endif
+void PageGroup::enableLegacyPrivateBrowsingForTesting(bool enabled)
+{
+ if (m_isLegacyPrivateBrowsingEnabledForTesting == enabled)
+ return;
+
+ m_isLegacyPrivateBrowsingEnabledForTesting = enabled;
+
+ for (auto* page : m_pages)
+ page->enableLegacyPrivateBrowsing(enabled);
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/page/PageGroup.h (247282 => 247283)
--- trunk/Source/WebCore/page/PageGroup.h 2019-07-09 22:11:04 UTC (rev 247282)
+++ trunk/Source/WebCore/page/PageGroup.h 2019-07-09 22:40:08 UTC (rev 247283)
@@ -58,6 +58,8 @@
WEBCORE_EXPORT CaptionUserPreferences& captionPreferences();
#endif
+ WEBCORE_EXPORT void enableLegacyPrivateBrowsingForTesting(bool);
+
private:
String m_name;
HashSet<Page*> m_pages;
@@ -67,6 +69,8 @@
#if ENABLE(VIDEO_TRACK)
std::unique_ptr<CaptionUserPreferences> m_captionPreferences;
#endif
+
+ bool m_isLegacyPrivateBrowsingEnabledForTesting { false };
};
} // namespace WebCore
Modified: trunk/Source/WebKit/ChangeLog (247282 => 247283)
--- trunk/Source/WebKit/ChangeLog 2019-07-09 22:11:04 UTC (rev 247282)
+++ trunk/Source/WebKit/ChangeLog 2019-07-09 22:40:08 UTC (rev 247283)
@@ -1,3 +1,17 @@
+2019-07-09 Chris Dumez <cdu...@apple.com>
+
+ Cleanup uses of NetworkProcess::m_sessionByConnection
+ https://bugs.webkit.org/show_bug.cgi?id=199586
+
+ Reviewed by Alex Christensen.
+
+ Avoid double HashMap lookups and call add() instead of ensure() when appropriate.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::networkSessionByConnection const):
+ (WebKit::NetworkProcess::webPageWasAdded):
+ (WebKit::NetworkProcess::webProcessWasDisconnected):
+
2019-07-09 Saagar Jha <saagar...@apple.com>
WKObject's minimum object alignment needs to be larger
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (247282 => 247283)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-07-09 22:11:04 UTC (rev 247282)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-07-09 22:40:08 UTC (rev 247283)
@@ -572,10 +572,8 @@
NetworkSession* NetworkProcess::networkSessionByConnection(IPC::Connection& connection) const
{
- if (!m_sessionByConnection.contains(connection.uniqueID()))
- return nullptr;
-
- return networkSession(m_sessionByConnection.get(connection.uniqueID()));
+ auto sessionID = m_sessionByConnection.get(connection.uniqueID());
+ return sessionID.isValid() ? networkSession(sessionID) : nullptr;
}
void NetworkProcess::setSession(const PAL::SessionID& sessionID, Ref<NetworkSession>&& session)
@@ -2673,10 +2671,8 @@
}
auto& storageManager = session->storageManager();
- auto connectionID = connection.uniqueID();
- m_sessionByConnection.ensure(connectionID, [&]() {
- return sessionID;
- });
+ auto addResult = m_sessionByConnection.add(connection.uniqueID(), sessionID);
+ ASSERT_UNUSED(addResult, addResult.iterator->value == sessionID);
storageManager.createSessionStorageNamespace(pageID.toUInt64(), std::numeric_limits<unsigned>::max());
storageManager.addAllowedSessionStorageNamespaceConnection(pageID.toUInt64(), connection);
@@ -2703,11 +2699,10 @@
void NetworkProcess::webProcessWasDisconnected(IPC::Connection& connection)
{
- auto connectionID = connection.uniqueID();
- if (!m_sessionByConnection.contains(connectionID))
+ auto sessionID = m_sessionByConnection.take(connection.uniqueID());
+ if (!sessionID.isValid())
return;
- auto sessionID = m_sessionByConnection.take(connectionID);
if (auto* session = networkSession(sessionID))
session->storageManager().processDidCloseConnection(connection);
}
Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (247282 => 247283)
--- trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp 2019-07-09 22:11:04 UTC (rev 247282)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp 2019-07-09 22:40:08 UTC (rev 247283)
@@ -350,9 +350,7 @@
ASSERT(!hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));
WebProcess::singleton().enablePrivateBrowsingForTesting(enabled);
- const HashSet<Page*>& pages = PageGroup::pageGroup(pageGroup->identifier())->pages();
- for (HashSet<Page*>::iterator iter = pages.begin(); iter != pages.end(); ++iter)
- (*iter)->enableLegacyPrivateBrowsing(enabled);
+ PageGroup::pageGroup(pageGroup->identifier())->enableLegacyPrivateBrowsingForTesting(enabled);
}
void InjectedBundle::setPopupBlockingEnabled(WebPageGroupProxy* pageGroup, bool enabled)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes