Changeset 229480 in webkit


Ignore:
Timestamp:
Mar 9, 2018 1:31:02 PM (6 years ago)
Author:
Brent Fulgham
Message:

Remove cookie API access from WebContent Process
https://bugs.webkit.org/show_bug.cgi?id=183519
<rdar://problem/35368802>

Reviewed by Alex Christensen.

All cookie access is now handled in the Network Process. However, there are vestiges of the original logic that used CFNetwork APIs in the WebContent process.

This patch removes CFNetwork calls from the WebProcess code paths, since they serve no purpose in modern WebKit.

No tests because this is a code cleanup with no expected change in behavior.

  • NetworkProcess/Cookies/mac/WebCookieManagerMac.mm:

(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Moved from WebFrameNetworkingContext.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::setSharedHTTPCookieStorage): Moved from ChildProcess, since this should only be
called in the NetworkProcess.

  • Shared/ChildProcess.h:
  • Shared/mac/ChildProcessMac.mm:

(WebKit::ChildProcess::setSharedHTTPCookieStorage): Deleted.

  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): Remove CFNetwork code. This version of
'ensureWebsiteDataStoreSession' is needed to maintain a dictionary on the WebProcess side so we can refer to
the same network session in both the WebContent and Network processes.
(WebKit::WebFrameNetworkingContext::webFrameLoaderClient const):
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Deleted.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess): Remove calls to CFNetwork.

Location:
trunk/Source/WebKit
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r229477 r229480  
     12018-03-09  Brent Fulgham  <bfulgham@apple.com>
     2
     3        Remove cookie API access from WebContent Process
     4        https://bugs.webkit.org/show_bug.cgi?id=183519
     5        <rdar://problem/35368802>
     6
     7        Reviewed by Alex Christensen.
     8
     9        All cookie access is now handled in the Network Process. However, there are vestiges of the original logic that used CFNetwork APIs in the WebContent process.
     10
     11        This patch removes CFNetwork calls from the WebProcess code paths, since they serve no purpose in modern WebKit.
     12
     13        No tests because this is a code cleanup with no expected change in behavior.
     14
     15        * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm:
     16        (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Moved from WebFrameNetworkingContext.
     17        * NetworkProcess/NetworkProcess.h:
     18        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
     19        (WebKit::NetworkProcess::setSharedHTTPCookieStorage): Moved from ChildProcess, since this should only be
     20        called in the NetworkProcess.
     21        * Shared/ChildProcess.h:
     22        * Shared/mac/ChildProcessMac.mm:
     23        (WebKit::ChildProcess::setSharedHTTPCookieStorage): Deleted.
     24        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
     25        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
     26        (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): Remove CFNetwork code. This version of
     27        'ensureWebsiteDataStoreSession' is needed to maintain a dictionary on the WebProcess side so we can refer to
     28        the same network session in both the WebContent and Network processes.
     29        (WebKit::WebFrameNetworkingContext::webFrameLoaderClient const):
     30        (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Deleted.
     31        * WebProcess/cocoa/WebProcessCocoa.mm:
     32        (WebKit::WebProcess::platformInitializeWebProcess): Remove calls to CFNetwork.
     33
    1342018-03-09  Youenn Fablet  <youenn@apple.com>
    235
  • trunk/Source/WebKit/NetworkProcess/Cookies/mac/WebCookieManagerMac.mm

    r229426 r229480  
    2727#import "WebCookieManager.h"
    2828
     29#import "NetworkSession.h"
    2930#import "WebFrameNetworkingContext.h"
     31#import <WebCore/NetworkStorageSession.h>
     32#import <pal/spi/cf/CFNetworkSPI.h>
    3033
    3134using namespace WebCore;
     
    3538void WebCookieManager::platformSetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy)
    3639{
    37     WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts(policy);
     40    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:static_cast<NSHTTPCookieAcceptPolicy>(policy)];
     41
     42    NetworkStorageSession::forEach([&] (const NetworkStorageSession& networkStorageSession) {
     43        if (auto cookieStorage = networkStorageSession.cookieStorage())
     44            CFHTTPCookieStorageSetCookieAcceptPolicy(cookieStorage.get(), policy);
     45    });
    3846}
    3947
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.h

    r229201 r229480  
    11/*
    2  * Copyright (C) 2012-2017 Apple Inc. All rights reserved.
     2 * Copyright (C) 2012-2018 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    236236    void platformSetURLCacheSize(unsigned urlCacheMemoryCapacity, uint64_t urlCacheDiskCapacity);
    237237
     238#if PLATFORM(MAC)
     239    static void setSharedHTTPCookieStorage(const Vector<uint8_t>& identifier);
     240#endif
     241
    238242    // Connections to WebProcesses.
    239243    Vector<RefPtr<NetworkConnectionToWebProcess>> m_webProcessConnections;
  • trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm

    r227682 r229480  
    11/*
    2  * Copyright (C) 2014-2017 Apple Inc. All rights reserved.
     2 * Copyright (C) 2014-2018 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2727#import "NetworkProcess.h"
    2828
     29#import "CookieStorageUtilsCF.h"
    2930#import "NetworkCache.h"
    3031#import "NetworkProcessCreationParameters.h"
     
    205206}
    206207
     208#if PLATFORM(MAC)
     209void NetworkProcess::setSharedHTTPCookieStorage(const Vector<uint8_t>& identifier)
     210{
     211    [NSHTTPCookieStorage _setSharedHTTPCookieStorage:adoptNS([[NSHTTPCookieStorage alloc] _initWithCFHTTPCookieStorage:cookieStorageFromIdentifyingData(identifier).get()]).get()];
     212}
     213#endif
     214
    207215void NetworkProcess::setCookieStoragePartitioningEnabled(bool enabled)
    208216{
  • trunk/Source/WebKit/Shared/ChildProcess.h

    r228569 r229480  
    11/*
    2  * Copyright (C) 2010 Apple Inc. All rights reserved.
     2 * Copyright (C) 2010-2018 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    9292    virtual void initializeConnection(IPC::Connection*);
    9393
    94 #if PLATFORM(MAC)
    95     static void setSharedHTTPCookieStorage(const Vector<uint8_t>& identifier);
    96 #endif
    97 
    9894    virtual bool shouldTerminate() = 0;
    9995    virtual void terminate();
  • trunk/Source/WebKit/Shared/mac/ChildProcessMac.mm

    r228569 r229480  
    11/*
    2  * Copyright (C) 2012, 2016 Apple Inc. All rights reserved.
     2 * Copyright (C) 2012-2018 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    3030
    3131#import "CodeSigning.h"
    32 #import "CookieStorageUtilsCF.h"
    3332#import "QuarantineSPI.h"
    3433#import "SandboxInitializationParameters.h"
     
    3736#import <mach/mach.h>
    3837#import <mach/task.h>
    39 #import <pal/spi/cf/CFNetworkSPI.h>
    4038#import <pwd.h>
    4139#import <stdlib.h>
     
    204202}
    205203
    206 void ChildProcess::setSharedHTTPCookieStorage(const Vector<uint8_t>& identifier)
    207 {
    208     [NSHTTPCookieStorage _setSharedHTTPCookieStorage:adoptNS([[NSHTTPCookieStorage alloc] _initWithCFHTTPCookieStorage:cookieStorageFromIdentifyingData(identifier).get()]).get()];
    209 }
    210 
    211204#if USE(APPKIT)
    212205void ChildProcess::stopNSAppRunLoop()
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h

    r224791 r229480  
    11/*
    2  * Copyright (C) 2013 Apple Inc. All rights reserved.
     2 * Copyright (C) 2013-2018 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2626#pragma once
    2727
    28 #include "HTTPCookieAcceptPolicy.h"
    2928#include "WebFrame.h"
    3029#include <WebCore/FrameNetworkingContext.h>
     
    4544    static void ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&&);
    4645
    47     static void setCookieAcceptPolicyForAllContexts(HTTPCookieAcceptPolicy);
    48 
    4946    WebFrameLoaderClient* webFrameLoaderClient() const;
    5047
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm

    r229426 r229480  
    2727#include "WebFrameNetworkingContext.h"
    2828
    29 #include "CookieStorageUtilsCF.h"
    3029#include "NetworkSession.h"
    3130#include "SessionTracker.h"
     
    4039#include <WebCore/ResourceError.h>
    4140#include <WebCore/Settings.h>
    42 #include <pal/spi/cf/CFNetworkSPI.h>
    4341
    4442using namespace WebCore;
     
    5856        base = SessionTracker::getIdentifierBase();
    5957
    60     if (!sessionID.isEphemeral())
    61         SandboxExtension::consumePermanently(parameters.cookieStoragePathExtensionHandle);
    62 
    63     RetainPtr<CFHTTPCookieStorageRef> uiProcessCookieStorage;
    64     if (!sessionID.isEphemeral() && !parameters.uiProcessCookieStorageIdentifier.isEmpty())
    65         uiProcessCookieStorage = cookieStorageFromIdentifyingData(parameters.uiProcessCookieStorageIdentifier);
    66 
    67     NetworkStorageSession::ensureSession(sessionID, base + '.' + String::number(sessionID.sessionID()), WTFMove(uiProcessCookieStorage));
     58    NetworkStorageSession::ensureSession(sessionID, base + '.' + String::number(sessionID.sessionID()));
    6859}
    6960
    70 void WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts(HTTPCookieAcceptPolicy policy)
    71 {
    72     [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:static_cast<NSHTTPCookieAcceptPolicy>(policy)];
    73 
    74     NetworkStorageSession::forEach([&] (const NetworkStorageSession& networkStorageSession) {
    75         if (auto cookieStorage = networkStorageSession.cookieStorage())
    76             CFHTTPCookieStorageSetCookieAcceptPolicy(cookieStorage.get(), policy);
    77     });
    78 }
    79    
    8061bool WebFrameNetworkingContext::localFileContentSniffingEnabled() const
    8162{
     
    120101{
    121102    if (!frame())
    122         return 0;
     103        return nullptr;
    123104
    124105    return toWebFrameLoaderClient(frame()->loader().client());
  • trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

    r229209 r229480  
    11/*
    2  * Copyright (C) 2010-2017 Apple Inc. All rights reserved.
     2 * Copyright (C) 2010-2018 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    6565#import <dispatch/dispatch.h>
    6666#import <objc/runtime.h>
    67 #import <pal/spi/cf/CFNetworkSPI.h>
    6867#import <pal/spi/cocoa/LaunchServicesSPI.h>
    6968#import <pal/spi/cocoa/QuartzCoreSPI.h>
     
    149148    }
    150149
    151 #if PLATFORM(MAC)
    152     setSharedHTTPCookieStorage(parameters.uiProcessCookieStorageIdentifier);
    153 #endif
    154 
    155150    auto urlCache = adoptNS([[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]);
    156151    [NSURLCache setSharedURLCache:urlCache.get()];
     
    183178    [NSApplication _accessibilityInitialize];
    184179#endif
    185 
    186     _CFNetworkSetATSContext(parameters.networkATSContext.get());
    187180
    188181#if TARGET_OS_IPHONE
Note: See TracChangeset for help on using the changeset viewer.