Changeset 225954 in webkit


Ignore:
Timestamp:
Dec 14, 2017, 6:08:23 PM (7 years ago)
Author:
achristensen@apple.com
Message:

Serialize WebsitePoliciesData instead of WebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=180847

Reviewed by Joseph Pecoraro.

No change in behavior. This will allow me to add things to WebsitePolicies that have
a different form when serialized to another process.

Also, remove API::WebsitePolicies because the wrapper isn't necessary.
WebsitePolicies is now the API type that only exists in the UIProcess.

  • Shared/WebsitePolicies.cpp: Removed.
  • Shared/WebsitePolicies.h:

(WebKit::WebsitePolicies::contentBlockersEnabled const): Deleted.
(WebKit::WebsitePolicies::setContentBlockersEnabled): Deleted.
(WebKit::WebsitePolicies::allowedAutoplayQuirks const): Deleted.
(WebKit::WebsitePolicies::setAllowedAutoplayQuirks): Deleted.
(WebKit::WebsitePolicies::autoplayPolicy const): Deleted.
(WebKit::WebsitePolicies::setAutoplayPolicy): Deleted.
(WebKit::WebsitePolicies::customHeaderFields): Deleted.
(WebKit::WebsitePolicies::takeCustomHeaderFields): Deleted.
(WebKit::WebsitePolicies::setCustomHeaderFields): Deleted.

  • Shared/WebsitePoliciesData.cpp: Copied from Source/WebKit/Shared/WebsitePolicies.cpp.

(WebKit::WebsitePoliciesData::fromWebsitePolicies):
(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
(WebKit::WebsitePolicies::WebsitePolicies): Deleted.
(WebKit::WebsitePolicies::encode const): Deleted.
(WebKit::WebsitePolicies::decode): Deleted.
(WebKit::WebsitePolicies::applyToDocumentLoader): Deleted.

  • Shared/WebsitePoliciesData.h: Added.
  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::decidePolicyForNavigationAction):
(API::NavigationClient::decidePolicyForNavigationResponse):

  • UIProcess/API/APIPolicyClient.h:

(API::PolicyClient::decidePolicyForNavigationAction):
(API::PolicyClient::decidePolicyForNewWindowAction):
(API::PolicyClient::decidePolicyForResponse):

  • UIProcess/API/APIWebsitePolicies.cpp: Removed.
  • UIProcess/API/APIWebsitePolicies.h: Removed.
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKFramePolicyListener.cpp:

(WKFramePolicyListenerUse):
(WKFramePolicyListenerUseWithPolicies):

  • UIProcess/API/C/WKPage.cpp:

(WKPageUpdateWebsitePolicies):
(WKPageSetPagePolicyClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/C/WKWebsitePolicies.cpp:

(WKWebsitePoliciesGetTypeID):
(WKWebsitePoliciesCreate):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateWebsitePolicies:]):

  • UIProcess/API/Cocoa/_WKWebsitePolicies.mm:

(-[_WKWebsitePolicies dealloc]):
(-[_WKWebsitePolicies init]):

  • UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h:

(WebKit::wrapper):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):

  • UIProcess/WebFrameListenerProxy.cpp:

(WebKit::WebFrameListenerProxy::receivedPolicyDecision):

  • UIProcess/WebFrameListenerProxy.h:
  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::download):
(WebKit::WebFramePolicyListenerProxy::ignore):

  • UIProcess/WebFramePolicyListenerProxy.h:
  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::receivedPolicyDecision):

  • UIProcess/WebFrameProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::updateWebsitePolicies):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::applyToDocumentLoader):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::didReceivePolicyDecision):

  • WebProcess/WebPage/WebFrame.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didReceivePolicyDecision):
(WebKit::WebPage::updateWebsitePolicies):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
Location:
trunk/Source/WebKit
Files:
1 added
2 deleted
29 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/CMakeLists.txt

    r225925 r225954  
    217217    Shared/WebWheelEvent.cpp
    218218    Shared/WebsiteDataStoreParameters.cpp
    219     Shared/WebsitePolicies.cpp
     219    Shared/WebsitePoliciesData.cpp
    220220
    221221    Shared/API/APIArray.cpp
     
    359359    UIProcess/API/APIUserStyleSheet.cpp
    360360    UIProcess/API/APIWebsiteDataStore.cpp
    361     UIProcess/API/APIWebsitePolicies.cpp
    362361    UIProcess/API/APIWindowFeatures.cpp
    363362
  • trunk/Source/WebKit/ChangeLog

    r225949 r225954  
     12017-12-14  Alex Christensen  <achristensen@webkit.org>
     2
     3        Serialize WebsitePoliciesData instead of WebsitePolicies
     4        https://bugs.webkit.org/show_bug.cgi?id=180847
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        No change in behavior.  This will allow me to add things to WebsitePolicies that have
     9        a different form when serialized to another process.
     10       
     11        Also, remove API::WebsitePolicies because the wrapper isn't necessary.
     12        WebsitePolicies is now the API type that only exists in the UIProcess.
     13
     14        * Shared/WebsitePolicies.cpp: Removed.
     15        * Shared/WebsitePolicies.h:
     16        (WebKit::WebsitePolicies::contentBlockersEnabled const): Deleted.
     17        (WebKit::WebsitePolicies::setContentBlockersEnabled): Deleted.
     18        (WebKit::WebsitePolicies::allowedAutoplayQuirks const): Deleted.
     19        (WebKit::WebsitePolicies::setAllowedAutoplayQuirks): Deleted.
     20        (WebKit::WebsitePolicies::autoplayPolicy const): Deleted.
     21        (WebKit::WebsitePolicies::setAutoplayPolicy): Deleted.
     22        (WebKit::WebsitePolicies::customHeaderFields): Deleted.
     23        (WebKit::WebsitePolicies::takeCustomHeaderFields): Deleted.
     24        (WebKit::WebsitePolicies::setCustomHeaderFields): Deleted.
     25        * Shared/WebsitePoliciesData.cpp: Copied from Source/WebKit/Shared/WebsitePolicies.cpp.
     26        (WebKit::WebsitePoliciesData::fromWebsitePolicies):
     27        (WebKit::WebsitePoliciesData::encode const):
     28        (WebKit::WebsitePoliciesData::decode):
     29        (WebKit::WebsitePoliciesData::applyToDocumentLoader):
     30        (WebKit::WebsitePolicies::WebsitePolicies): Deleted.
     31        (WebKit::WebsitePolicies::encode const): Deleted.
     32        (WebKit::WebsitePolicies::decode): Deleted.
     33        (WebKit::WebsitePolicies::applyToDocumentLoader): Deleted.
     34        * Shared/WebsitePoliciesData.h: Added.
     35        * UIProcess/API/APINavigationClient.h:
     36        (API::NavigationClient::decidePolicyForNavigationAction):
     37        (API::NavigationClient::decidePolicyForNavigationResponse):
     38        * UIProcess/API/APIPolicyClient.h:
     39        (API::PolicyClient::decidePolicyForNavigationAction):
     40        (API::PolicyClient::decidePolicyForNewWindowAction):
     41        (API::PolicyClient::decidePolicyForResponse):
     42        * UIProcess/API/APIWebsitePolicies.cpp: Removed.
     43        * UIProcess/API/APIWebsitePolicies.h: Removed.
     44        * UIProcess/API/C/WKAPICast.h:
     45        * UIProcess/API/C/WKFramePolicyListener.cpp:
     46        (WKFramePolicyListenerUse):
     47        (WKFramePolicyListenerUseWithPolicies):
     48        * UIProcess/API/C/WKPage.cpp:
     49        (WKPageUpdateWebsitePolicies):
     50        (WKPageSetPagePolicyClient):
     51        (WKPageSetPageNavigationClient):
     52        * UIProcess/API/C/WKWebsitePolicies.cpp:
     53        (WKWebsitePoliciesGetTypeID):
     54        (WKWebsitePoliciesCreate):
     55        * UIProcess/API/Cocoa/WKWebView.mm:
     56        (-[WKWebView _updateWebsitePolicies:]):
     57        * UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
     58        (-[_WKWebsitePolicies dealloc]):
     59        (-[_WKWebsitePolicies init]):
     60        * UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h:
     61        (WebKit::wrapper):
     62        * UIProcess/Cocoa/NavigationState.mm:
     63        (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
     64        (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):
     65        * UIProcess/WebFrameListenerProxy.cpp:
     66        (WebKit::WebFrameListenerProxy::receivedPolicyDecision):
     67        * UIProcess/WebFrameListenerProxy.h:
     68        * UIProcess/WebFramePolicyListenerProxy.cpp:
     69        (WebKit::WebFramePolicyListenerProxy::use):
     70        (WebKit::WebFramePolicyListenerProxy::download):
     71        (WebKit::WebFramePolicyListenerProxy::ignore):
     72        * UIProcess/WebFramePolicyListenerProxy.h:
     73        * UIProcess/WebFrameProxy.cpp:
     74        (WebKit::WebFrameProxy::receivedPolicyDecision):
     75        * UIProcess/WebFrameProxy.h:
     76        * UIProcess/WebPageProxy.cpp:
     77        (WebKit::WebPageProxy::receivedPolicyDecision):
     78        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
     79        (WebKit::WebPageProxy::updateWebsitePolicies):
     80        * UIProcess/WebPageProxy.h:
     81        * UIProcess/WebPageProxy.messages.in:
     82        * WebKit.xcodeproj/project.pbxproj:
     83        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
     84        (WebKit::WebFrameLoaderClient::applyToDocumentLoader):
     85        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
     86        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
     87        * WebProcess/WebPage/WebFrame.cpp:
     88        (WebKit::WebFrame::didReceivePolicyDecision):
     89        * WebProcess/WebPage/WebFrame.h:
     90        * WebProcess/WebPage/WebPage.cpp:
     91        (WebKit::WebPage::didReceivePolicyDecision):
     92        (WebKit::WebPage::updateWebsitePolicies):
     93        * WebProcess/WebPage/WebPage.h:
     94        * WebProcess/WebPage/WebPage.messages.in:
     95
    1962017-12-14  Ryan Haddad  <ryanhaddad@apple.com>
    297
  • trunk/Source/WebKit/Shared/WebsitePoliciesData.cpp

    r225953 r225954  
    2525
    2626#include "config.h"
    27 #include "WebsitePolicies.h"
     27#include "WebsitePoliciesData.h"
    2828
    2929#include "ArgumentCoders.h"
     
    3232namespace WebKit {
    3333
    34 WebsitePolicies::WebsitePolicies(bool contentBlockersEnabled, OptionSet<WebsiteAutoplayQuirk> allowedAutoplayQuirks, WebsiteAutoplayPolicy autoplayPolicy, Vector<WebCore::HTTPHeaderField>&& customHeaderFields)
    35     : m_contentBlockersEnabled(contentBlockersEnabled)
    36     , m_allowedAutoplayQuirks(allowedAutoplayQuirks)
    37     , m_autoplayPolicy(autoplayPolicy)
    38     , m_customHeaderFields(WTFMove(customHeaderFields))
     34WebsitePoliciesData WebsitePoliciesData::fromWebsitePolicies(const WebsitePolicies& policies)
    3935{
     36    return { policies.contentBlockersEnabled(), policies.allowedAutoplayQuirks(), policies.autoplayPolicy(), policies.customHeaderFields() };
    4037}
    4138
    42 void WebsitePolicies::encode(IPC::Encoder& encoder) const
     39void WebsitePoliciesData::encode(IPC::Encoder& encoder) const
    4340{
    44     encoder << m_contentBlockersEnabled;
    45     encoder << m_autoplayPolicy;
    46     encoder << m_allowedAutoplayQuirks;
    47     encoder << m_customHeaderFields;
     41    encoder << contentBlockersEnabled;
     42    encoder << autoplayPolicy;
     43    encoder << allowedAutoplayQuirks;
     44    encoder << customHeaderFields;
    4845}
    4946
    50 std::optional<WebsitePolicies> WebsitePolicies::decode(IPC::Decoder& decoder)
     47std::optional<WebsitePoliciesData> WebsitePoliciesData::decode(IPC::Decoder& decoder)
    5148{
    5249    std::optional<bool> contentBlockersEnabled;
     
    7875}
    7976
    80 void WebsitePolicies::applyToDocumentLoader(WebsitePolicies&& websitePolicies, WebCore::DocumentLoader& documentLoader)
     77void WebsitePoliciesData::applyToDocumentLoader(WebsitePoliciesData&& websitePolicies, WebCore::DocumentLoader& documentLoader)
    8178{
    82     documentLoader.setCustomHeaderFields(websitePolicies.takeCustomHeaderFields());
     79    documentLoader.setCustomHeaderFields(WTFMove(websitePolicies.customHeaderFields));
    8380   
    8481    // Only setUserContentExtensionsEnabled if it hasn't already been disabled by reloading without content blockers.
    8582    if (documentLoader.userContentExtensionsEnabled())
    86         documentLoader.setUserContentExtensionsEnabled(websitePolicies.contentBlockersEnabled());
     83        documentLoader.setUserContentExtensionsEnabled(websitePolicies.contentBlockersEnabled);
    8784
    8885    OptionSet<WebCore::AutoplayQuirk> quirks;
    89     auto allowedQuirks = websitePolicies.allowedAutoplayQuirks();
     86    const auto& allowedQuirks = websitePolicies.allowedAutoplayQuirks;
    9087   
    9188    if (allowedQuirks.contains(WebsiteAutoplayQuirk::InheritedUserGestures))
     
    10097    documentLoader.setAllowedAutoplayQuirks(quirks);
    10198
    102     switch (websitePolicies.autoplayPolicy()) {
     99    switch (websitePolicies.autoplayPolicy) {
    103100    case WebsiteAutoplayPolicy::Default:
    104101        documentLoader.setAutoplayPolicy(WebCore::AutoplayPolicy::Default);
  • trunk/Source/WebKit/UIProcess/API/APINavigationClient.h

    r224677 r225954  
    3232#include "WebEvent.h"
    3333#include "WebFramePolicyListenerProxy.h"
    34 #include "WebsitePolicies.h"
     34#include "WebsitePoliciesData.h"
    3535#include <WebCore/FrameLoaderTypes.h>
    3636#include <WebCore/LayoutMilestones.h>
     
    102102    virtual void decidePolicyForNavigationAction(WebKit::WebPageProxy&, Ref<NavigationAction>&&, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, Object*)
    103103    {
    104         listener->use({ });
     104        listener->use(std::nullopt);
    105105    }
    106106
    107107    virtual void decidePolicyForNavigationResponse(WebKit::WebPageProxy&, Ref<NavigationResponse>&&, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, Object*)
    108108    {
    109         listener->use({ });
     109        listener->use(std::nullopt);
    110110    }
    111111   
  • trunk/Source/WebKit/UIProcess/API/APIPolicyClient.h

    r222583 r225954  
    2828#include "WebEvent.h"
    2929#include "WebFramePolicyListenerProxy.h"
    30 #include "WebsitePolicies.h"
    3130#include <WebCore/FrameLoaderTypes.h>
    3231#include <wtf/Forward.h>
     
    5453    virtual void decidePolicyForNavigationAction(WebKit::WebPageProxy&, WebKit::WebFrameProxy*, const WebKit::NavigationActionData&, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::ResourceRequest&, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, API::Object*)
    5554    {
    56         listener->use({ });
     55        listener->use(std::nullopt);
    5756    }
    5857    virtual void decidePolicyForNewWindowAction(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, const WebKit::NavigationActionData&, const WebCore::ResourceRequest&, const WTF::String&, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, API::Object*)
    5958    {
    60         listener->use({ });
     59        listener->use(std::nullopt);
    6160    }
    6261    virtual void decidePolicyForResponse(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool, Ref<WebKit::WebFramePolicyListenerProxy>&& listener, API::Object*)
    6362    {
    64         listener->use({ });
     63        listener->use(std::nullopt);
    6564    }
    6665    virtual void unableToImplementPolicy(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, const WebCore::ResourceError&, API::Object*) { }
  • trunk/Source/WebKit/UIProcess/API/C/WKAPICast.h

    r225682 r225954  
    6969class UserScript;
    7070class WebsiteDataStore;
    71 class WebsitePolicies;
    7271class WindowFeatures;
    7372}
     
    167166WK_ADD_API_MAPPING(WKViewportAttributesRef, WebViewportAttributes)
    168167WK_ADD_API_MAPPING(WKWebsiteDataStoreRef, API::WebsiteDataStore)
    169 WK_ADD_API_MAPPING(WKWebsitePoliciesRef, API::WebsitePolicies)
     168WK_ADD_API_MAPPING(WKWebsitePoliciesRef, WebsitePolicies)
    170169WK_ADD_API_MAPPING(WKWindowFeaturesRef, API::WindowFeatures)
    171170
  • trunk/Source/WebKit/UIProcess/API/C/WKFramePolicyListener.cpp

    r222583 r225954  
    2727#include "WKFramePolicyListener.h"
    2828
    29 #include "APIWebsitePolicies.h"
    3029#include "WKAPICast.h"
    3130#include "WebFramePolicyListenerProxy.h"
    3231#include "WebFrameProxy.h"
    33 #include "WebsitePolicies.h"
     32#include "WebsitePoliciesData.h"
    3433
    3534using namespace WebKit;
     
    4241void WKFramePolicyListenerUse(WKFramePolicyListenerRef policyListenerRef)
    4342{
    44     toImpl(policyListenerRef)->use({ });
     43    toImpl(policyListenerRef)->use(std::nullopt);
    4544}
    4645
    4746void WKFramePolicyListenerUseWithPolicies(WKFramePolicyListenerRef policyListenerRef, WKWebsitePoliciesRef websitePolicies)
    4847{
    49     toImpl(policyListenerRef)->use(toImpl(websitePolicies)->websitePolicies());
     48    toImpl(policyListenerRef)->use(WebsitePoliciesData::fromWebsitePolicies(*toImpl(websitePolicies)));
    5049}
    5150
  • trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp

    r225598 r225954  
    4747#include "APISessionState.h"
    4848#include "APIUIClient.h"
    49 #include "APIWebsitePolicies.h"
    5049#include "APIWindowFeatures.h"
    5150#include "AuthenticationChallengeProxy.h"
     
    7271#include "WebProcessProxy.h"
    7372#include "WebProtectionSpace.h"
     73#include "WebsitePolicies.h"
    7474#include <WebCore/Page.h>
    7575#include <WebCore/SecurityOriginData.h>
     
    326326void WKPageUpdateWebsitePolicies(WKPageRef pageRef, WKWebsitePoliciesRef websitePoliciesRef)
    327327{
    328     toImpl(pageRef)->updateWebsitePolicies(toImpl(websitePoliciesRef)->websitePolicies());
     328    toImpl(pageRef)->updateWebsitePolicies(WebsitePoliciesData::fromWebsitePolicies(*toImpl(websitePoliciesRef)));
    329329}
    330330
     
    13521352        {
    13531353            if (!m_client.decidePolicyForNavigationAction_deprecatedForUseWithV0 && !m_client.decidePolicyForNavigationAction_deprecatedForUseWithV1 && !m_client.decidePolicyForNavigationAction) {
    1354                 listener->use({ });
     1354                listener->use(std::nullopt);
    13551355                return;
    13561356            }
     
    13701370        {
    13711371            if (!m_client.decidePolicyForNewWindowAction) {
    1372                 listener->use({ });
     1372                listener->use(std::nullopt);
    13731373                return;
    13741374            }
     
    13821382        {
    13831383            if (!m_client.decidePolicyForResponse_deprecatedForUseWithV0 && !m_client.decidePolicyForResponse) {
    1384                 listener->use({ });
     1384                listener->use(std::nullopt);
    13851385                return;
    13861386            }
     
    21442144        {
    21452145            if (!m_client.decidePolicyForNavigationAction) {
    2146                 listener->use({ });
     2146                listener->use(std::nullopt);
    21472147                return;
    21482148            }
     
    21532153        {
    21542154            if (!m_client.decidePolicyForNavigationResponse) {
    2155                 listener->use({ });
     2155                listener->use(std::nullopt);
    21562156                return;
    21572157            }
  • trunk/Source/WebKit/UIProcess/API/C/WKWebsitePolicies.cpp

    r225117 r225954  
    2828
    2929#include "APIDictionary.h"
    30 #include "APIWebsitePolicies.h"
    3130#include "WKAPICast.h"
    3231#include "WKArray.h"
     
    3938WKTypeID WKWebsitePoliciesGetTypeID()
    4039{
    41     return toAPI(API::WebsitePolicies::APIType);
     40    return toAPI(WebsitePolicies::APIType);
    4241}
    4342
    4443WKWebsitePoliciesRef WKWebsitePoliciesCreate()
    4544{
    46     return toAPI(&API::WebsitePolicies::create().leakRef());
     45    return toAPI(&WebsitePolicies::create().leakRef());
    4746}
    4847
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

    r225765 r225954  
    42344234- (void)_updateWebsitePolicies:(_WKWebsitePolicies *)websitePolicies
    42354235{
    4236     _page->updateWebsitePolicies(websitePolicies->_websitePolicies->websitePolicies());
     4236    _page->updateWebsitePolicies(WebKit::WebsitePoliciesData::fromWebsitePolicies(*websitePolicies->_websitePolicies));
    42374237}
    42384238
  • trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsitePolicies.mm

    r225117 r225954  
    3333- (void)dealloc
    3434{
    35     _websitePolicies->API::WebsitePolicies::~WebsitePolicies();
     35    _websitePolicies->WebKit::WebsitePolicies::~WebsitePolicies();
    3636   
    3737    [super dealloc];
     
    4343        return nil;
    4444   
    45     API::Object::constructInWrapper<API::WebsitePolicies>(self);
     45    API::Object::constructInWrapper<WebKit::WebsitePolicies>(self);
    4646   
    4747    return self;
  • trunk/Source/WebKit/UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h

    r209558 r225954  
    2828#if WK_API_ENABLED
    2929
    30 #import "APIWebsitePolicies.h"
    3130#import "WKObject.h"
     31#import "WebsitePolicies.h"
    3232
    3333namespace WebKit {
    3434
    35 inline _WKWebsitePolicies *wrapper(API::WebsitePolicies& websitePolicies)
     35inline _WKWebsitePolicies *wrapper(WebsitePolicies& websitePolicies)
    3636{
    3737    ASSERT([websitePolicies.wrapper() isKindOfClass:[_WKWebsitePolicies class]]);
     
    4343@interface _WKWebsitePolicies () <WKObject> {
    4444@package
    45     API::ObjectStorage<API::WebsitePolicies> _websitePolicies;
     45    API::ObjectStorage<WebKit::WebsitePolicies> _websitePolicies;
    4646}
    4747@end
  • trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm

    r225682 r225954  
    428428
    429429            if (!navigationAction->targetFrame()) {
    430                 listener->use({ });
     430                listener->use(std::nullopt);
    431431                return;
    432432            }
     
    437437                    listener->download();
    438438                else
    439                     listener->use({ });
     439                    listener->use(std::nullopt);
    440440                return;
    441441            }
     
    466466        checker->didCallCompletionHandler();
    467467
    468         std::optional<WebsitePolicies> policies;
     468        std::optional<WebsitePoliciesData> data;
    469469        if (websitePolicies)
    470             policies = websitePolicies->_websitePolicies->websitePolicies();
     470            data = WebsitePoliciesData::fromWebsitePolicies(*websitePolicies->_websitePolicies);
    471471
    472472        switch (actionPolicy) {
    473473        case WKNavigationActionPolicyAllow:
    474             tryAppLink(WTFMove(navigationAction), mainFrameURLString, [localListener = WTFMove(localListener), policies = WTFMove(policies)](bool followedLinkToApp) mutable {
     474            tryAppLink(WTFMove(navigationAction), mainFrameURLString, [localListener = WTFMove(localListener), data = WTFMove(data)](bool followedLinkToApp) mutable {
    475475                if (followedLinkToApp) {
    476476                    localListener->ignore();
     
    478478                }
    479479
    480                 localListener->use(WTFMove(policies));
     480                localListener->use(WTFMove(data));
    481481            });
    482482       
     
    495495        case _WKNavigationActionPolicyAllowWithoutTryingAppLink:
    496496#pragma clang diagnostic pop
    497             localListener->use(WTFMove(policies));
     497            localListener->use(WTFMove(data));
    498498            break;
    499499        }
     
    545545
    546546            if (exists && !isDirectory && navigationResponse->canShowMIMEType())
    547                 listener->use({ });
     547                listener->use(std::nullopt);
    548548            else
    549549                listener->ignore();
     
    552552
    553553        if (navigationResponse->canShowMIMEType())
    554             listener->use({ });
     554            listener->use(std::nullopt);
    555555        else
    556556            listener->ignore();
     
    571571        switch (responsePolicy) {
    572572        case WKNavigationResponsePolicyAllow:
    573             localListener->use({ });
     573            localListener->use(std::nullopt);
    574574            break;
    575575
  • trunk/Source/WebKit/UIProcess/WebFrameListenerProxy.cpp

    r225682 r225954  
    2828
    2929#include "WebFrameProxy.h"
    30 #include "WebsitePolicies.h"
     30#include "WebsitePoliciesData.h"
    3131
    3232namespace WebKit {
     
    4747}
    4848
    49 void WebFrameListenerProxy::receivedPolicyDecision(WebCore::PolicyAction action, std::optional<WebsitePolicies>&& websitePolicies)
     49void WebFrameListenerProxy::receivedPolicyDecision(WebCore::PolicyAction action, std::optional<WebsitePoliciesData>&& data)
    5050{
    5151    if (!m_frame)
    5252        return;
    5353
    54     m_frame->receivedPolicyDecision(action, m_listenerID, m_navigation.get(), WTFMove(websitePolicies));
     54    m_frame->receivedPolicyDecision(action, m_listenerID, m_navigation.get(), WTFMove(data));
    5555    m_frame = nullptr;
    5656}
  • trunk/Source/WebKit/UIProcess/WebFrameListenerProxy.h

    r225682 r225954  
    3535
    3636class WebFrameProxy;
    37 class WebsitePolicies;
     37struct WebsitePoliciesData;
    3838
    3939class WebFrameListenerProxy : public API::Object {
     
    4949    WebFrameListenerProxy(WebFrameProxy*, uint64_t listenerID);
    5050
    51     void receivedPolicyDecision(WebCore::PolicyAction, std::optional<WebsitePolicies>&&);
     51    void receivedPolicyDecision(WebCore::PolicyAction, std::optional<WebsitePoliciesData>&&);
    5252
    5353private:
  • trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp

    r225682 r225954  
    2828
    2929#include "WebFrameProxy.h"
    30 #include "WebsitePolicies.h"
     30#include "WebsitePoliciesData.h"
    3131
    3232namespace WebKit {
     
    3737}
    3838
    39 void WebFramePolicyListenerProxy::use(std::optional<WebsitePolicies>&& websitePolicies)
     39void WebFramePolicyListenerProxy::use(std::optional<WebsitePoliciesData>&& data)
    4040{
    41     receivedPolicyDecision(WebCore::PolicyAction::Use, WTFMove(websitePolicies));
     41    receivedPolicyDecision(WebCore::PolicyAction::Use, WTFMove(data));
    4242}
    4343
    4444void WebFramePolicyListenerProxy::download()
    4545{
    46     receivedPolicyDecision(WebCore::PolicyAction::Download, { });
     46    receivedPolicyDecision(WebCore::PolicyAction::Download, std::nullopt);
    4747}
    4848
    4949void WebFramePolicyListenerProxy::ignore()
    5050{
    51     receivedPolicyDecision(WebCore::PolicyAction::Ignore, { });
     51    receivedPolicyDecision(WebCore::PolicyAction::Ignore, std::nullopt);
    5252}
    5353
  • trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h

    r225682 r225954  
    4545    }
    4646
    47     void use(std::optional<WebsitePolicies>&&);
     47    void use(std::optional<WebsitePoliciesData>&&);
    4848    void download();
    4949    void ignore();
  • trunk/Source/WebKit/UIProcess/WebFrameProxy.cpp

    r225682 r225954  
    3333#include "WebPasteboardProxy.h"
    3434#include "WebProcessPool.h"
     35#include "WebsitePoliciesData.h"
    3536#include <WebCore/Image.h>
    3637#include <WebCore/MIMETypeRegistry.h>
     
    176177}
    177178
    178 void WebFrameProxy::receivedPolicyDecision(PolicyAction action, uint64_t listenerID, API::Navigation* navigation, std::optional<WebsitePolicies>&& websitePolicies)
     179void WebFrameProxy::receivedPolicyDecision(PolicyAction action, uint64_t listenerID, API::Navigation* navigation, std::optional<WebsitePoliciesData>&& data)
    179180{
    180181    if (!m_page)
     
    183184    ASSERT(m_activeListener);
    184185    ASSERT(m_activeListener->listenerID() == listenerID);
    185     m_page->receivedPolicyDecision(action, *this, listenerID, navigation, WTFMove(websitePolicies));
     186    m_page->receivedPolicyDecision(action, *this, listenerID, navigation, WTFMove(data));
    186187}
    187188
  • trunk/Source/WebKit/UIProcess/WebFrameProxy.h

    r225682 r225954  
    5252class WebFramePolicyListenerProxy;
    5353class WebPageProxy;
    54 class WebsitePolicies;
     54struct WebsitePoliciesData;
    5555
    5656typedef GenericCallback<API::Data*> DataCallback;
     
    115115
    116116    // Policy operations.
    117     void receivedPolicyDecision(WebCore::PolicyAction, uint64_t listenerID, API::Navigation*, std::optional<WebsitePolicies>&&);
     117    void receivedPolicyDecision(WebCore::PolicyAction, uint64_t listenerID, API::Navigation*, std::optional<WebsitePoliciesData>&&);
    118118    WebFramePolicyListenerProxy& setUpPolicyListenerProxy(uint64_t listenerID);
    119119
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r225926 r225954  
    22762276}
    22772277
    2278 void WebPageProxy::receivedPolicyDecision(PolicyAction action, WebFrameProxy& frame, uint64_t listenerID, API::Navigation* navigation, std::optional<WebsitePolicies>&& websitePolicies)
     2278void WebPageProxy::receivedPolicyDecision(PolicyAction action, WebFrameProxy& frame, uint64_t listenerID, API::Navigation* navigation, std::optional<WebsitePoliciesData>&& websitePolicies)
    22792279{
    22802280    if (!isValid())
     
    23182318        m_syncNavigationActionPolicyAction = action;
    23192319        m_syncNavigationActionPolicyDownloadID = downloadID;
    2320         m_syncNavigationActionPolicyWebsitePolicies = websitePolicies;
     2320        m_syncNavigationActionPolicyWebsitePolicies = WTFMove(websitePolicies);
    23212321        return;
    23222322    }
     
    36863686}
    36873687
    3688 void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, const FrameInfoData& originatingFrameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, ResourceRequest&& request, uint64_t listenerID, const UserData& userData, bool& receivedPolicyAction, uint64_t& newNavigationID, WebCore::PolicyAction& policyAction, DownloadID& downloadID, std::optional<WebsitePolicies>& websitePolicies)
     3688void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&& navigationActionData, const FrameInfoData& originatingFrameInfoData, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, ResourceRequest&& request, uint64_t listenerID, const UserData& userData, bool& receivedPolicyAction, uint64_t& newNavigationID, WebCore::PolicyAction& policyAction, DownloadID& downloadID, std::optional<WebsitePoliciesData>& websitePolicies)
    36893689{
    36903690    PageClientProtector protector(m_pageClient);
     
    37553755        policyAction = m_syncNavigationActionPolicyAction;
    37563756        downloadID = m_syncNavigationActionPolicyDownloadID;
    3757         websitePolicies = m_syncNavigationActionPolicyWebsitePolicies;
     3757        websitePolicies = WTFMove(m_syncNavigationActionPolicyWebsitePolicies);
    37583758    }
    37593759}
     
    61526152}
    61536153
    6154 void WebPageProxy::updateWebsitePolicies(const WebsitePolicies& websitePolicies)
     6154void WebPageProxy::updateWebsitePolicies(WebsitePoliciesData&& websitePolicies)
    61556155{
    61566156    m_process->send(Messages::WebPage::UpdateWebsitePolicies(websitePolicies), m_pageID);
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r225926 r225954  
    6363#include "WebPopupMenuProxy.h"
    6464#include "WebProcessLifetimeTracker.h"
    65 #include "WebsitePolicies.h"
     65#include "WebsitePoliciesData.h"
    6666#include <WebCore/ActivityState.h>
    6767#include <WebCore/AutoplayEvent.h>
     
    434434    bool willHandleHorizontalScrollEvents() const;
    435435
    436     void updateWebsitePolicies(const WebsitePolicies&);
     436    void updateWebsitePolicies(WebsitePoliciesData&&);
    437437
    438438    bool canShowMIMEType(const String& mimeType);
     
    844844#endif
    845845
    846     void receivedPolicyDecision(WebCore::PolicyAction, WebFrameProxy&, uint64_t listenerID, API::Navigation* navigationID, std::optional<WebsitePolicies>&&);
     846    void receivedPolicyDecision(WebCore::PolicyAction, WebFrameProxy&, uint64_t listenerID, API::Navigation* navigationID, std::optional<WebsitePoliciesData>&&);
    847847
    848848    void backForwardRemovedItem(uint64_t itemID);
     
    13271327    void didDestroyNavigation(uint64_t navigationID);
    13281328
    1329     void decidePolicyForNavigationAction(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, const FrameInfoData&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, uint64_t listenerID, const UserData&, bool& receivedPolicyAction, uint64_t& newNavigationID, WebCore::PolicyAction&, DownloadID&, std::optional<WebsitePolicies>&);
     1329    void decidePolicyForNavigationAction(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, NavigationActionData&&, const FrameInfoData&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, uint64_t listenerID, const UserData&, bool& receivedPolicyAction, uint64_t& newNavigationID, WebCore::PolicyAction&, DownloadID&, std::optional<WebsitePoliciesData>&);
    13301330    void decidePolicyForNewWindowAction(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, NavigationActionData&&, WebCore::ResourceRequest&&, const String& frameName, uint64_t listenerID, const UserData&);
    13311331    void decidePolicyForResponse(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, const UserData&);
     
    18681868    WebCore::PolicyAction m_syncNavigationActionPolicyAction { WebCore::PolicyAction::Use };
    18691869    DownloadID m_syncNavigationActionPolicyDownloadID { 0 };
    1870     std::optional<WebsitePolicies> m_syncNavigationActionPolicyWebsitePolicies;
     1870    std::optional<WebsitePoliciesData> m_syncNavigationActionPolicyWebsitePolicies;
    18711871
    18721872    bool m_shouldSuppressAppLinksInNextNavigationPolicyDecision { false };
  • trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in

    r225827 r225954  
    100100    # Policy messages
    101101    DecidePolicyForResponseSync(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, bool canShowMIMEType, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID)
    102     DecidePolicyForNavigationAction(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, uint64_t newNavigationID, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID, std::optional<WebKit::WebsitePolicies> websitePolicies)
     102    DecidePolicyForNavigationAction(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -> (bool receivedPolicyAction, uint64_t newNavigationID, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID, std::optional<WebKit::WebsitePoliciesData> websitePolicies)
    103103    DecidePolicyForNewWindowAction(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, struct WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::UserData userData)
    104104    UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::UserData userData)
  • trunk/Source/WebKit/UIProcess/WebsitePolicies.h

    r225953 r225954  
    2626#pragma once
    2727
     28#include "APIObject.h"
    2829#include <WebCore/HTTPHeaderField.h>
    2930#include <wtf/EnumTraits.h>
     
    5657};
    5758
    58 class WebsitePolicies {
     59class WebsitePolicies final : public API::ObjectImpl<API::Object::Type::WebsitePolicies> {
    5960public:
     61    static Ref<WebsitePolicies> create() { return adoptRef(*new WebsitePolicies); }
    6062    WebsitePolicies() = default;
    6163
     
    6971    void setAutoplayPolicy(WebsiteAutoplayPolicy policy) { m_autoplayPolicy = policy; }
    7072   
    71     const Vector<WebCore::HTTPHeaderField>& customHeaderFields() { return m_customHeaderFields; }
     73    const Vector<WebCore::HTTPHeaderField>& customHeaderFields() const { return m_customHeaderFields; }
    7274    Vector<WebCore::HTTPHeaderField>&& takeCustomHeaderFields() { return WTFMove(m_customHeaderFields); }
    7375    void setCustomHeaderFields(Vector<WebCore::HTTPHeaderField>&& fields) { m_customHeaderFields = WTFMove(fields); }
    74    
    75     static void applyToDocumentLoader(WebsitePolicies&&, WebCore::DocumentLoader&);
    76    
    77     void encode(IPC::Encoder&) const;
    78     static std::optional<WebsitePolicies> decode(IPC::Decoder&);
    7976
    8077private:
    81     WebsitePolicies(bool, OptionSet<WebsiteAutoplayQuirk>, WebsiteAutoplayPolicy, Vector<WebCore::HTTPHeaderField>&&);
     78    WebsitePolicies(bool contentBlockersEnabled, OptionSet<WebsiteAutoplayQuirk> allowedAutoplayQuirks, WebsiteAutoplayPolicy autoplayPolicy, Vector<WebCore::HTTPHeaderField>&& customHeaderFields)
     79        : m_contentBlockersEnabled(contentBlockersEnabled)
     80        , m_allowedAutoplayQuirks(allowedAutoplayQuirks)
     81        , m_autoplayPolicy(autoplayPolicy)
     82        , m_customHeaderFields(WTFMove(customHeaderFields))
     83    { }
    8284
    8385    bool m_contentBlockersEnabled { true };
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r225925 r225954  
    11851185                5C0B177C1E7C885400E9123C /* WebSocketStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B177A1E7C884F00E9123C /* WebSocketStream.cpp */; };
    11861186                5C0B17811E7C8C2600E9123C /* NetworkSocketStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C0B177D1E7C886700E9123C /* NetworkSocketStream.cpp */; };
     1187                5C13024C1FE35154000D9B31 /* WebsitePolicies.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C13024B1FE35142000D9B31 /* WebsitePolicies.h */; };
    11871188                5C1426EC1C23F80900D41183 /* NetworkProcessCreationParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C1426E21C23F80500D41183 /* NetworkProcessCreationParameters.cpp */; };
    11881189                5C1426ED1C23F80900D41183 /* NetworkProcessCreationParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C1426E31C23F80500D41183 /* NetworkProcessCreationParameters.h */; };
     
    12051206                5C20CBA01BB1ECD800895BB1 /* NetworkSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */; };
    12061207                5C298DA01C3DF02100470AFE /* PendingDownload.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C298D9E1C3DEF2900470AFE /* PendingDownload.h */; };
    1207                 5C3AEA8F1FE1F21F002318D3 /* WebsitePolicies.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C3AEA8E1FE1F1DF002318D3 /* WebsitePolicies.cpp */; };
     1208                5C3AEA8F1FE1F21F002318D3 /* WebsitePoliciesData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5C3AEA8E1FE1F1DF002318D3 /* WebsitePoliciesData.cpp */; };
    12081209                5C62FDF91EFC271C00CE072E /* WKURLSchemeTaskPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C62FDF81EFC263C00CE072E /* WKURLSchemeTaskPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12091210                5C6CE6D11F59BC7A0007C6CB /* PageClientImplCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C6CE6D01F59BC460007C6CB /* PageClientImplCocoa.mm */; };
     
    12151216                5CB2378C1DF0DE6E00117AA3 /* _WKWebsitePolicies.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB237891DF0DD4300117AA3 /* _WKWebsitePolicies.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12161217                5CB2378E1DF0E0D300117AA3 /* _WKWebsitePoliciesInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB2378D1DF0E0C200117AA3 /* _WKWebsitePoliciesInternal.h */; };
    1217                 5CB237911DF0E2E600117AA3 /* APIWebsitePolicies.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CB237901DF0E1DD00117AA3 /* APIWebsitePolicies.cpp */; };
    1218                 5CB237921DF0E2EE00117AA3 /* APIWebsitePolicies.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CB2378F1DF0E1B800117AA3 /* APIWebsitePolicies.h */; };
    12191218                5CBC9B8D1C65279C00A8FDCF /* NetworkDataTaskCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CBC9B8B1C65257300A8FDCF /* NetworkDataTaskCocoa.mm */; };
    12201219                5CBC9B8E1C652CA000A8FDCF /* NetworkDataTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */; };
     
    35743573                5C0B177F1E7C886700E9123C /* NetworkSocketStream.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = NetworkSocketStream.messages.in; path = NetworkProcess/NetworkSocketStream.messages.in; sourceTree = "<group>"; };
    35753574                5C0B17801E7C888000E9123C /* WebSocketStream.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebSocketStream.messages.in; path = Network/WebSocketStream.messages.in; sourceTree = "<group>"; };
     3575                5C13024A1FE341A7000D9B31 /* WebsitePoliciesData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsitePoliciesData.h; sourceTree = "<group>"; };
     3576                5C13024B1FE35142000D9B31 /* WebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsitePolicies.h; sourceTree = "<group>"; };
    35763577                5C1426E21C23F80500D41183 /* NetworkProcessCreationParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcessCreationParameters.cpp; path = NetworkProcess/NetworkProcessCreationParameters.cpp; sourceTree = "<group>"; };
    35773578                5C1426E31C23F80500D41183 /* NetworkProcessCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessCreationParameters.h; path = NetworkProcess/NetworkProcessCreationParameters.h; sourceTree = "<group>"; };
     
    35953596                5C20CB9E1BB0DD1800895BB1 /* NetworkSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSession.h; path = NetworkProcess/NetworkSession.h; sourceTree = "<group>"; };
    35963597                5C298D9E1C3DEF2900470AFE /* PendingDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PendingDownload.h; path = NetworkProcess/Downloads/PendingDownload.h; sourceTree = "<group>"; };
    3597                 5C3AEA8E1FE1F1DF002318D3 /* WebsitePolicies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebsitePolicies.cpp; sourceTree = "<group>"; };
     3598                5C3AEA8E1FE1F1DF002318D3 /* WebsitePoliciesData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebsitePoliciesData.cpp; sourceTree = "<group>"; };
    35983599                5C62FDF81EFC263C00CE072E /* WKURLSchemeTaskPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WKURLSchemeTaskPrivate.h; sourceTree = "<group>"; };
    35993600                5C6CE6D01F59BC460007C6CB /* PageClientImplCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PageClientImplCocoa.mm; sourceTree = "<group>"; };
     
    36033604                5C84CF901F96AC4E00B6705A /* NetworkSessionCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkSessionCreationParameters.h; path = NetworkProcess/NetworkSessionCreationParameters.h; sourceTree = "<group>"; };
    36043605                5C85C7861C3F23C50061A4FA /* PendingDownload.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PendingDownload.cpp; path = NetworkProcess/Downloads/PendingDownload.cpp; sourceTree = "<group>"; };
    3605                 5C9E567F1DF7930900C9EE33 /* WebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebsitePolicies.h; sourceTree = "<group>"; };
    36063606                5C9E56801DF7F05500C9EE33 /* WKWebsitePolicies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKWebsitePolicies.cpp; sourceTree = "<group>"; };
    36073607                5C9E56811DF7F05500C9EE33 /* WKWebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebsitePolicies.h; sourceTree = "<group>"; };
     
    36093609                5CB2378A1DF0DD4300117AA3 /* _WKWebsitePolicies.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKWebsitePolicies.mm; sourceTree = "<group>"; };
    36103610                5CB2378D1DF0E0C200117AA3 /* _WKWebsitePoliciesInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKWebsitePoliciesInternal.h; sourceTree = "<group>"; };
    3611                 5CB2378F1DF0E1B800117AA3 /* APIWebsitePolicies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIWebsitePolicies.h; sourceTree = "<group>"; };
    3612                 5CB237901DF0E1DD00117AA3 /* APIWebsitePolicies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIWebsitePolicies.cpp; sourceTree = "<group>"; };
    36133611                5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkDataTask.h; path = NetworkProcess/NetworkDataTask.h; sourceTree = "<group>"; };
    36143612                5CBC9B8B1C65257300A8FDCF /* NetworkDataTaskCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = NetworkDataTaskCocoa.mm; path = NetworkProcess/cocoa/NetworkDataTaskCocoa.mm; sourceTree = "<group>"; };
     
    52175215                                511F7D3F1EB1BCEE00E47B83 /* WebsiteDataStoreParameters.cpp */,
    52185216                                511F7D401EB1BCEE00E47B83 /* WebsiteDataStoreParameters.h */,
    5219                                 5C3AEA8E1FE1F1DF002318D3 /* WebsitePolicies.cpp */,
    5220                                 5C9E567F1DF7930900C9EE33 /* WebsitePolicies.h */,
     5217                                5C3AEA8E1FE1F1DF002318D3 /* WebsitePoliciesData.cpp */,
     5218                                5C13024A1FE341A7000D9B31 /* WebsitePoliciesData.h */,
    52215219                                8360349D1ACB34D600626549 /* WebSQLiteDatabaseTracker.cpp */,
    52225220                                8360349E1ACB34D600626549 /* WebSQLiteDatabaseTracker.h */,
     
    71967194                                6B821DDB1EEF05DD00D7AF4A /* WebResourceLoadStatisticsTelemetry.cpp */,
    71977195                                6B821DDA1EEF05DD00D7AF4A /* WebResourceLoadStatisticsTelemetry.h */,
     7196                                5C13024B1FE35142000D9B31 /* WebsitePolicies.h */,
    71987197                                51D124241E6D3CC3002B2820 /* WebURLSchemeHandler.cpp */,
    71997198                                51D124251E6D3CC3002B2820 /* WebURLSchemeHandler.h */,
     
    72767275                                1A3635A71A3144A300ED6197 /* APIWebsiteDataStore.cpp */,
    72777276                                1A3635A81A3144A300ED6197 /* APIWebsiteDataStore.h */,
    7278                                 5CB237901DF0E1DD00117AA3 /* APIWebsitePolicies.cpp */,
    7279                                 5CB2378F1DF0E1B800117AA3 /* APIWebsitePolicies.h */,
    72807277                                1A6563E21B7A8C50009CF787 /* APIWindowFeatures.cpp */,
    72817278                                1A6563E31B7A8C50009CF787 /* APIWindowFeatures.h */,
     
    86218618                                1AE286841C7F93860069AC4F /* APIWebsiteDataRecord.h in Headers */,
    86228619                                1A3635AA1A3144A300ED6197 /* APIWebsiteDataStore.h in Headers */,
    8623                                 5CB237921DF0E2EE00117AA3 /* APIWebsitePolicies.h in Headers */,
    86248620                                1A6563E51B7A8C50009CF787 /* APIWindowFeatures.h in Headers */,
    86258621                                1AD4C1931B39F33200ABC28E /* ApplicationStateTracker.h in Headers */,
     
    91689164                                1A53C2AA1A325730004E8C70 /* WebsiteDataStore.h in Headers */,
    91699165                                511F7D411EB1BCF500E47B83 /* WebsiteDataStoreParameters.h in Headers */,
     9166                                5C13024C1FE35154000D9B31 /* WebsitePolicies.h in Headers */,
    91709167                                836034A01ACB34D600626549 /* WebSQLiteDatabaseTracker.h in Headers */,
    91719168                                1A52C0F81A38CDC70016160A /* WebStorageNamespaceProvider.h in Headers */,
     
    1020310200                                1A3635A91A3144A300ED6197 /* APIWebsiteDataStore.cpp in Sources */,
    1020410201                                1A3635AD1A3145E500ED6197 /* APIWebsiteDataStoreCocoa.mm in Sources */,
    10205                                 5CB237911DF0E2E600117AA3 /* APIWebsitePolicies.cpp in Sources */,
    1020610202                                1A6563E41B7A8C50009CF787 /* APIWindowFeatures.cpp in Sources */,
    1020710203                                1AD4C1921B39F33200ABC28E /* ApplicationStateTracker.mm in Sources */,
     
    1083610832                                1A4832C31A965A3C008B4DFE /* WebsiteDataStoreCocoa.mm in Sources */,
    1083710833                                511F7D421EB1BCF800E47B83 /* WebsiteDataStoreParameters.cpp in Sources */,
    10838                                 5C3AEA8F1FE1F21F002318D3 /* WebsitePolicies.cpp in Sources */,
     10834                                5C3AEA8F1FE1F21F002318D3 /* WebsitePoliciesData.cpp in Sources */,
    1083910835                                5C7706741D1138380012700F /* WebSocketProvider.cpp in Sources */,
    1084010836                                5C0B177C1E7C885400E9123C /* WebSocketStream.cpp in Sources */,
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

    r225934 r225954  
    5555#include "WebProcess.h"
    5656#include "WebProcessPoolMessages.h"
    57 #include "WebsitePolicies.h"
     57#include "WebsitePoliciesData.h"
    5858#include <JavaScriptCore/APICast.h>
    5959#include <JavaScriptCore/JSObject.h>
     
    777777}
    778778
    779 void WebFrameLoaderClient::applyToDocumentLoader(WebsitePolicies&& websitePolicies)
     779void WebFrameLoaderClient::applyToDocumentLoader(WebsitePoliciesData&& websitePolicies)
    780780{
    781781    if (!m_frame)
     
    792792        return;
    793793
    794     WebsitePolicies::applyToDocumentLoader(WTFMove(websitePolicies), *documentLoader);
     794    WebsitePoliciesData::applyToDocumentLoader(WTFMove(websitePolicies), *documentLoader);
    795795}
    796796
     
    863863    // Notify the UIProcess.
    864864    Ref<WebFrame> protect(*m_frame);
    865     std::optional<WebsitePolicies> websitePolicies;
     865    std::optional<WebsitePoliciesData> websitePolicies;
    866866    if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), SecurityOriginData::fromFrame(coreFrame), documentLoader->navigationID(), navigationActionData, originatingFrameInfoData, originatingFrame && originatingFrame->page() ? originatingFrame->page()->pageID() : 0, navigationAction.resourceRequest(), request, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, newNavigationID, policyAction, downloadID, websitePolicies))) {
    867867        m_frame->didReceivePolicyDecision(listenerID, PolicyAction::Ignore, 0, { }, { });
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h

    r225934 r225954  
    3636class PluginView;
    3737class WebFrame;
    38 class WebsitePolicies;
     38struct WebsitePoliciesData;
    3939   
    4040class WebFrameLoaderClient final : public WebCore::FrameLoaderClient {
     
    5050    void setUseIconLoadingClient(bool useIconLoadingClient) { m_useIconLoadingClient = useIconLoadingClient; }
    5151
    52     void applyToDocumentLoader(WebsitePolicies&&);
     52    void applyToDocumentLoader(WebsitePoliciesData&&);
    5353
    5454    std::optional<uint64_t> pageID() const final;
  • trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp

    r225682 r225954  
    4646#include "WebPageProxyMessages.h"
    4747#include "WebProcess.h"
     48#include "WebsitePoliciesData.h"
    4849#include <JavaScriptCore/APICast.h>
    4950#include <JavaScriptCore/JSContextRef.h>
     
    252253}
    253254
    254 void WebFrame::didReceivePolicyDecision(uint64_t listenerID, PolicyAction action, uint64_t navigationID, DownloadID downloadID, std::optional<WebsitePolicies>&& websitePolicies)
     255void WebFrame::didReceivePolicyDecision(uint64_t listenerID, PolicyAction action, uint64_t navigationID, DownloadID downloadID, std::optional<WebsitePoliciesData>&& websitePolicies)
    255256{
    256257    if (!m_coreFrame)
  • trunk/Source/WebKit/WebProcess/WebPage/WebFrame.h

    r225682 r225954  
    6464class InjectedBundleScriptWorld;
    6565class WebPage;
    66 class WebsitePolicies;
    6766struct FrameInfoData;
     67struct WebsitePoliciesData;
    6868
    6969class WebFrame : public API::ObjectImpl<API::Object::Type::BundleFrame> {
     
    8787    uint64_t setUpPolicyListener(WebCore::FramePolicyFunction&&, ForNavigationAction);
    8888    void invalidatePolicyListener();
    89     void didReceivePolicyDecision(uint64_t listenerID, WebCore::PolicyAction, uint64_t navigationID, DownloadID, std::optional<WebsitePolicies>&&);
     89    void didReceivePolicyDecision(uint64_t listenerID, WebCore::PolicyAction, uint64_t navigationID, DownloadID, std::optional<WebsitePoliciesData>&&);
    9090
    9191    uint64_t setUpWillSubmitFormListener(WTF::Function<void(void)>&&);
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r225949 r225954  
    3131#include "APIArray.h"
    3232#include "APIGeometry.h"
    33 #include "APIWebsitePolicies.h"
    3433#include "AssistedNodeInformation.h"
    3534#include "DataReference.h"
     
    123122#include "WebValidationMessageClient.h"
    124123#include "WebsiteDataStoreParameters.h"
     124#include "WebsitePolicies.h"
    125125#include <JavaScriptCore/APICast.h>
    126126#include <WebCore/ApplicationCacheStorage.h>
     
    27472747}
    27482748
    2749 void WebPage::didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, PolicyAction policyAction, uint64_t navigationID, const DownloadID& downloadID, std::optional<WebsitePolicies>&& websitePolicies)
     2749void WebPage::didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, PolicyAction policyAction, uint64_t navigationID, const DownloadID& downloadID, std::optional<WebsitePoliciesData>&& websitePolicies)
    27502750{
    27512751    WebFrame* frame = WebProcess::singleton().webFrame(frameID);
     
    54395439}
    54405440
    5441 void WebPage::updateWebsitePolicies(WebsitePolicies&& websitePolicies)
     5441void WebPage::updateWebsitePolicies(WebsitePoliciesData&& websitePolicies)
    54425442{
    54435443    if (!m_page)
     
    54485448        return;
    54495449
    5450     WebsitePolicies::applyToDocumentLoader(WTFMove(websitePolicies), *documentLoader);
     5450    WebsitePoliciesData::applyToDocumentLoader(WTFMove(websitePolicies), *documentLoader);
    54515451   
    54525452#if ENABLE(VIDEO)
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.h

    r225926 r225954  
    211211class WebWheelEvent;
    212212class WebTouchEvent;
    213 class WebsitePolicies;
    214213class RemoteLayerTreeTransaction;
    215214
     
    225224struct WebPreferencesStore;
    226225struct WebSelectionData;
     226struct WebsitePoliciesData;
    227227
    228228enum class DragControllerAction;
     
    11901190    void updatePreferencesGenerated(const WebPreferencesStore&);
    11911191
    1192     void didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, WebCore::PolicyAction, uint64_t navigationID, const DownloadID&, std::optional<WebsitePolicies>&&);
     1192    void didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, WebCore::PolicyAction, uint64_t navigationID, const DownloadID&, std::optional<WebsitePoliciesData>&&);
    11931193    void continueWillSubmitForm(uint64_t frameID, uint64_t listenerID);
    11941194    void setUserAgent(const String&);
     
    12991299    void reportUsedFeatures();
    13001300
    1301     void updateWebsitePolicies(WebsitePolicies&&);
     1301    void updateWebsitePolicies(WebsitePoliciesData&&);
    13021302
    13031303#if PLATFORM(MAC)
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in

    r225682 r225954  
    151151    DidRemoveBackForwardItem(uint64_t backForwardItemID)
    152152
    153     UpdateWebsitePolicies(WebKit::WebsitePolicies websitePolicies)
    154     DidReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, enum WebCore::PolicyAction policyAction, uint64_t navigationID, WebKit::DownloadID downloadID, std::optional<WebKit::WebsitePolicies> websitePolicies)
     153    UpdateWebsitePolicies(struct WebKit::WebsitePoliciesData websitePolicies)
     154    DidReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, enum WebCore::PolicyAction policyAction, uint64_t navigationID, WebKit::DownloadID downloadID, std::optional<WebKit::WebsitePoliciesData> websitePolicies)
    155155    ContinueWillSubmitForm(uint64_t frameID, uint64_t listenerID)
    156156
Note: See TracChangeset for help on using the changeset viewer.