Changeset 225383 in webkit


Ignore:
Timestamp:
Nov 30, 2017 9:32:11 PM (6 years ago)
Author:
achristensen@apple.com
Message:

REGRESSION (r224791): cookies are shared between ephemeral sessions in the same process pool
https://bugs.webkit.org/show_bug.cgi?id=180235

Reviewed by Joseph Pecoraro.

Source/WebKit:

In r224791 I assumed that uiProcessCookieStorageIdentifier would be empty in the ephemeral session initialization message.
This is not the case. We did not catch this because almost all of our ephemeral session testing uses the legacyPrivateSessionID.
I add checks for if the SessionID is ephemeral like we already have in WebFrameNetworkingContext::ensureWebsiteDataStoreSession.
I also add an API test that makes sure cookies are not shared between ephemeral sessions the way they are made through the API.

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/CookiePrivateBrowsing.mm: Added.

(-[CookiePrivateBrowsingDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):

Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r225377 r225383  
     12017-11-30  Alex Christensen  <achristensen@webkit.org>
     2
     3        REGRESSION (r224791): cookies are shared between ephemeral sessions in the same process pool
     4        https://bugs.webkit.org/show_bug.cgi?id=180235
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        In r224791 I assumed that uiProcessCookieStorageIdentifier would be empty in the ephemeral session initialization message.
     9        This is not the case.  We did not catch this because almost all of our ephemeral session testing uses the legacyPrivateSessionID.
     10        I add checks for if the SessionID is ephemeral like we already have in WebFrameNetworkingContext::ensureWebsiteDataStoreSession.
     11        I also add an API test that makes sure cookies are not shared between ephemeral sessions the way they are made through the API.
     12
     13        * NetworkProcess/mac/RemoteNetworkingContext.mm:
     14        (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
     15
    1162017-11-30  Stephan Szabo  <stephan.szabo@sony.com>
    217
  • trunk/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm

    r224827 r225383  
    9898
    9999    RetainPtr<CFHTTPCookieStorageRef> uiProcessCookieStorage;
    100     if (!parameters.uiProcessCookieStorageIdentifier.isEmpty())
     100    if (!sessionID.isEphemeral() && !parameters.uiProcessCookieStorageIdentifier.isEmpty())
    101101        uiProcessCookieStorage = cookieStorageFromIdentifyingData(parameters.uiProcessCookieStorageIdentifier);
    102102
     
    107107        session->setCookie(cookie);
    108108
    109     if (!parameters.cacheStorageDirectory.isNull()) {
     109    if (!sessionID.isEphemeral() && !parameters.cacheStorageDirectory.isNull()) {
    110110        SandboxExtension::consumePermanently(parameters.cacheStorageDirectoryExtensionHandle);
    111111        session->setCacheStorageDirectory(WTFMove(parameters.cacheStorageDirectory));
  • trunk/Tools/ChangeLog

    r225377 r225383  
     12017-11-30  Alex Christensen  <achristensen@webkit.org>
     2
     3        REGRESSION (r224791): cookies are shared between ephemeral sessions in the same process pool
     4        https://bugs.webkit.org/show_bug.cgi?id=180235
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     9        * TestWebKitAPI/Tests/WebKitCocoa/CookiePrivateBrowsing.mm: Added.
     10        (-[CookiePrivateBrowsingDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
     11        (TEST):
     12
    1132017-11-30  Stephan Szabo  <stephan.szabo@sony.com>
    214
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r225288 r225383  
    231231                5C0BF8941DD599C900B00328 /* MenuTypesForMouseEvents.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7A99D9931AD4A29D00373141 /* MenuTypesForMouseEvents.mm */; };
    232232                5C0BF8951DD599CD00B00328 /* NavigatorLanguage.mm in Sources */ = {isa = PBXBuildFile; fileRef = E19DB9781B32137C00DB38D4 /* NavigatorLanguage.mm */; };
     233                5C19A5241FD0F60100EEA323 /* CookiePrivateBrowsing.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C19A5231FD0F32600EEA323 /* CookiePrivateBrowsing.mm */; };
    233234                5C2936931D5BF70D00DEAB1E /* CookieAcceptPolicy.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C2936911D5BF63E00DEAB1E /* CookieAcceptPolicy.mm */; };
    234235                5C2936961D5C00ED00DEAB1E /* CookieMessage.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5C2936941D5BFD1900DEAB1E /* CookieMessage.html */; };
     
    13681369                5C0BF88C1DD5957400B00328 /* MemoryPressureHandler.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryPressureHandler.mm; sourceTree = "<group>"; };
    13691370                5C0BF88F1DD5999B00B00328 /* WebViewCanPasteZeroPng.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebViewCanPasteZeroPng.mm; sourceTree = "<group>"; };
     1371                5C19A5231FD0F32600EEA323 /* CookiePrivateBrowsing.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CookiePrivateBrowsing.mm; sourceTree = "<group>"; };
    13701372                5C2936911D5BF63E00DEAB1E /* CookieAcceptPolicy.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CookieAcceptPolicy.mm; sourceTree = "<group>"; };
    13711373                5C2936941D5BFD1900DEAB1E /* CookieMessage.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = CookieMessage.html; sourceTree = "<group>"; };
     
    20152017                                5CA1DED81F74A87100E71BD3 /* ContentRuleListNotification.mm */,
    20162018                                5C2936911D5BF63E00DEAB1E /* CookieAcceptPolicy.mm */,
     2019                                5C19A5231FD0F32600EEA323 /* CookiePrivateBrowsing.mm */,
    20172020                                9B1056411F9045C700D5583F /* CopyHTML.mm */,
    20182021                                9999108A1F393C8B008AD455 /* Copying.mm */,
     
    32703273                                5C2936931D5BF70D00DEAB1E /* CookieAcceptPolicy.mm in Sources */,
    32713274                                51D1249B1E785425002B2820 /* CookieManager.cpp in Sources */,
     3275                                5C19A5241FD0F60100EEA323 /* CookiePrivateBrowsing.mm in Sources */,
    32723276                                9B1F6F781F90558400B55744 /* CopyHTML.mm in Sources */,
    32733277                                9999108B1F393C96008AD455 /* Copying.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.