WebKit Bugzilla
Attachment 373663 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-20190708141345.patch (text/plain), 3.08 KB, created by
Chris Dumez
on 2019-07-08 14:13:46 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2019-07-08 14:13:46 PDT
Size:
3.08 KB
patch
obsolete
>Subversion Revision: 247226 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 71638fa4d1a4c84383d492f663bce10f154b3b23..115409915e9c1c3c57c17e89651e0e942bc39e0d 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,17 @@ >+2019-07-08 Chris Dumez <cdumez@apple.com> >+ >+ Cleanup uses of NetworkProces::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-08 Wenson Hsieh <wenson_hsieh@apple.com> > > [iPadOS] Viewport pops while loading sohu.com, xinhuanet.com, and various other websites >diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp >index e8e15ca087fc8210644716bbded60333470d87f5..33e61df83cc8b5d05a7868c627db82bb158b7095 100644 >--- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp >@@ -566,10 +566,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) >@@ -2668,10 +2666,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); >@@ -2698,11 +2694,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); > }
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