Changeset 229872 in webkit


Ignore:
Timestamp:
Mar 22, 2018 5:00:55 PM (6 years ago)
Author:
Chris Dumez
Message:

Use the same SWServer for all ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=183921
<rdar://problem/36873075>

Reviewed by Youenn Fablet.

Use the same SWServer for all ephemeral sessions. SWServers never go away and we create
one per sessionID. When browsing doing private browsing in Safari (and other fetching
favorite icons), the sessionID is ephemeral and keeps changing. This means that we kept
constructing new SWServers that would never go away. Each SWServer has a thread so we
would eventually hit the thread limit for the storage process.

  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::swServerForSession):

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r229870 r229872  
     12018-03-22  Chris Dumez  <cdumez@apple.com>
     2
     3        Use the same SWServer for all ephemeral sessions
     4        https://bugs.webkit.org/show_bug.cgi?id=183921
     5        <rdar://problem/36873075>
     6
     7        Reviewed by Youenn Fablet.
     8
     9        Use the same SWServer for all ephemeral sessions. SWServers never go away and we create
     10        one per sessionID. When browsing doing private browsing in Safari (and other fetching
     11        favorite icons), the sessionID is ephemeral and keeps changing. This means that we kept
     12        constructing new SWServers that would never go away. Each SWServer has a thread so we
     13        would eventually hit the thread limit for the storage process.
     14
     15        * StorageProcess/StorageProcess.cpp:
     16        (WebKit::StorageProcess::swServerForSession):
     17
    1182018-03-22  Michael Catanzaro  <mcatanzaro@gnome.org>
    219
  • trunk/Source/WebKit/StorageProcess/StorageProcess.cpp

    r229735 r229872  
    433433{
    434434    ASSERT(sessionID.isValid());
     435
     436    // Use the same SWServer for all ephemeral sessions.
     437    if (sessionID.isEphemeral())
     438        sessionID = PAL::SessionID::legacyPrivateSessionID();
     439
    435440    auto result = m_swServers.add(sessionID, nullptr);
    436441    if (!result.isNewEntry) {
Note: See TracChangeset for help on using the changeset viewer.