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

Reply via email to