Changeset 274491 in webkit


Ignore:
Timestamp:
Mar 16, 2021 10:41:40 AM (3 years ago)
Author:
achristensen@apple.com
Message:

Terminate network process when making new WebProcessPool in Lutron App
https://bugs.webkit.org/show_bug.cgi?id=223194
<rdar://74674915>

Reviewed by Geoff Garen.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isLutron):

  • platform/cocoa/VersionChecks.h:

Source/WebKit:

The Lutron App uses allocation of a new WKProcessPool as a way to stop using old session cookies.
Since r267763 we keep the session cookies for the lifetime of a WKWebsiteDataStore instead of making a new process for each WKProcessPool.
Add a quirk for this app until they update to use a new WKWebsiteDataStore or use WKHTTPCookieStore API to clear the cookies properly.
I manually verified this causes the logging out to succeed.

  • UIProcess/WebProcessPool.cpp:
Location:
trunk/Source
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r274485 r274491  
     12021-03-16  Alex Christensen  <achristensen@webkit.org>
     2
     3        Terminate network process when making new WebProcessPool in Lutron App
     4        https://bugs.webkit.org/show_bug.cgi?id=223194
     5        <rdar://74674915>
     6
     7        Reviewed by Geoff Garen.
     8
     9        * platform/RuntimeApplicationChecks.h:
     10        * platform/cocoa/RuntimeApplicationChecksCocoa.mm:
     11        (WebCore::IOSApplication::isLutron):
     12        * platform/cocoa/VersionChecks.h:
     13
    1142021-03-16  Jer Noble  <jer.noble@apple.com>
    215
  • trunk/Source/WebCore/platform/RuntimeApplicationChecks.h

    r272977 r274491  
    127127WEBCORE_EXPORT bool isCrunchyroll();
    128128bool isWechat();
     129WEBCORE_EXPORT bool isLutron();
    129130
    130131} // IOSApplication
  • trunk/Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm

    r272977 r274491  
    435435}
    436436
     437bool IOSApplication::isLutron()
     438{
     439    static bool isLutronApp = applicationBundleIsEqualTo("com.lutron.lsb"_s);
     440    return isLutronApp;
     441}
     442
    437443#endif
    438444
  • trunk/Source/WebCore/platform/cocoa/VersionChecks.h

    r274455 r274491  
    7171    FirstWithoutWeChatScrollingQuirk = DYLD_IOS_VERSION_14_5,
    7272    FirstWithDOMWindowReuseRestriction  = DYLD_IOS_VERSION_14_5,
     73    FirstWithSharedNetworkProcess = DYLD_IOS_VERSION_14_5,
    7374#elif PLATFORM(MAC)
    7475    FirstWithNetworkCache = DYLD_MACOSX_VERSION_10_11,
  • trunk/Source/WebKit/ChangeLog

    r274490 r274491  
     12021-03-16  Alex Christensen  <achristensen@webkit.org>
     2
     3        Terminate network process when making new WebProcessPool in Lutron App
     4        https://bugs.webkit.org/show_bug.cgi?id=223194
     5        <rdar://74674915>
     6
     7        Reviewed by Geoff Garen.
     8
     9        The Lutron App uses allocation of a new WKProcessPool as a way to stop using old session cookies.
     10        Since r267763 we keep the session cookies for the lifetime of a WKWebsiteDataStore instead of making a new process for each WKProcessPool.
     11        Add a quirk for this app until they update to use a new WKWebsiteDataStore or use WKHTTPCookieStore API to clear the cookies properly.
     12        I manually verified this causes the logging out to succeed.
     13
     14        * UIProcess/WebProcessPool.cpp:
     15
    1162021-03-16  Kate Cheney  <katherine_cheney@apple.com>
    217
  • trunk/Source/WebKit/UIProcess/WebProcessPool.cpp

    r274435 r274491  
    325325
    326326    updateBackForwardCacheCapacity();
     327
     328#if PLATFORM(IOS)
     329    if (WebCore::IOSApplication::isLutron() && !WebCore::linkedOnOrAfter(WebCore::SDKVersion::FirstWithSharedNetworkProcess)) {
     330        callOnMainRunLoop([] {
     331            if (WebsiteDataStore::defaultDataStoreExists())
     332                WebsiteDataStore::defaultDataStore()->terminateNetworkProcess();
     333        });
     334    }
     335#endif
    327336}
    328337
Note: See TracChangeset for help on using the changeset viewer.