WebKit Bugzilla
Attachment 373770 Details for
Bug 199586
: Cleanup uses of NetworkProcess::m_sessionByConnection
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-199586-20190709144901.patch (text/plain), 5.66 KB, created by
Chris Dumez
on 2019-07-09 14:49:02 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2019-07-09 14:49:02 PDT
Size:
5.66 KB
patch
obsolete
>Subversion Revision: 247278 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index ddba794bf2158ffa293f0be88f12933c80697935..3748f02af435a6cf8a391a5c70b26d9c183c6273 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,17 @@ >+2019-07-09 Chris Dumez <cdumez@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 Truitt Savell <tsavell@apple.com> > > Unreviewed, rolling out r247230. >diff --git a/Source/WebCore/page/PageGroup.cpp b/Source/WebCore/page/PageGroup.cpp >index 1d09ad9b766c26430b5263796f6caaaf6c67dce0..91936045c2faf76cac5e2c69e6233f2ce30bf9b1 100644 >--- a/Source/WebCore/page/PageGroup.cpp >+++ b/Source/WebCore/page/PageGroup.cpp >@@ -93,6 +93,9 @@ void PageGroup::addPage(Page& page) > { > ASSERT(!m_pages.contains(&page)); > m_pages.add(&page); >+ >+ if (m_isLegacyPrivateBrowsingEnabledForTesting) >+ page.enableLegacyPrivateBrowsing(true); > } > > void PageGroup::removePage(Page& page) >@@ -123,4 +126,15 @@ CaptionUserPreferences& PageGroup::captionPreferences() > } > #endif > >+void PageGroup::enableLegacyPrivateBrowsingForTesting(bool enabled) >+{ >+ if (m_isLegacyPrivateBrowsingEnabledForTesting == enabled) >+ return; >+ >+ m_isLegacyPrivateBrowsingEnabledForTesting = enabled; >+ >+ for (auto* page : m_pages) >+ page->enableLegacyPrivateBrowsing(enabled); >+} >+ > } // namespace WebCore >diff --git a/Source/WebCore/page/PageGroup.h b/Source/WebCore/page/PageGroup.h >index 88c6587a1ba7e4f14ee93b00dfa2d76d758ed756..6baf0a1ab13c9e2f2ef52f2c1e401f3250cfb09f 100644 >--- a/Source/WebCore/page/PageGroup.h >+++ b/Source/WebCore/page/PageGroup.h >@@ -58,6 +58,8 @@ public: > WEBCORE_EXPORT CaptionUserPreferences& captionPreferences(); > #endif > >+ WEBCORE_EXPORT void enableLegacyPrivateBrowsingForTesting(bool); >+ > private: > String m_name; > HashSet<Page*> m_pages; >@@ -67,6 +69,8 @@ private: > #if ENABLE(VIDEO_TRACK) > std::unique_ptr<CaptionUserPreferences> m_captionPreferences; > #endif >+ >+ bool m_isLegacyPrivateBrowsingEnabledForTesting { false }; > }; > > } // namespace WebCore >diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp >index f8bb7678ee38684b2294d18409915028e4379da0..ef9e0c9cd326e1ec3426a63c0ddcd5ccaa5bcc9e 100644 >--- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp >@@ -572,10 +572,8 @@ NetworkSession* NetworkProcess::networkSession(const PAL::SessionID& sessionID) > > 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 @@ void NetworkProcess::webPageWasAdded(IPC::Connection& connection, PAL::SessionID > } > 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::webPageWasRemoved(IPC::Connection& connection, PAL::Session > > 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); > } >diff --git a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp >index c0adbb16a84fbcb58a4af53976a5dfd988ffde6c..20ce55911d70651c335a70acf24e5bdfc21bd631 100644 >--- a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp >+++ b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp >@@ -350,9 +350,7 @@ void InjectedBundle::setPrivateBrowsingEnabled(WebPageGroupProxy* pageGroup, boo > 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)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 199586
:
373661
|
373663
|
373666
| 373770