Changeset 222492 in webkit


Ignore:
Timestamp:
Sep 25, 2017 10:52:40 PM (7 years ago)
Author:
achristensen@apple.com
Message:

Make PolicyAction an encodable enum class
https://bugs.webkit.org/show_bug.cgi?id=177480

Reviewed by Antti Koivisto.

Source/WebCore:

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::continueAfterContentPolicy):

  • loader/FrameLoaderTypes.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):
(WebCore::PolicyChecker::checkNewWindowPolicy):

Source/WebKit:

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::continueDecidePendingDownloadDestination):
(WebKit::DownloadManager::cancelDownload):

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveResponseNetworkSession):

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::didReceiveResponse):

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::continueDidReceiveResponse):
(WebKit::NetworkLoad::notifyDidReceiveResponse):

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::didReceiveResponseNetworkSession):

  • NetworkProcess/capture/NetworkDataTaskReplay.cpp:

(WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(toNSURLSessionResponseDisposition):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):

  • Scripts/webkit/messages.py:

(headers_for_type):

  • UIProcess/WebFormSubmissionListenerProxy.h:
  • UIProcess/WebFrameListenerProxy.h:

(WebKit::WebFrameListenerProxy::navigation): Deleted.

  • UIProcess/WebFramePolicyListenerProxy.cpp:

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

  • UIProcess/WebPageProxy.cpp:

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

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::invalidatePolicyListener):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didReceivePolicyDecision):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

  • Plugins/WebPluginContainerCheck.mm:

(-[WebPluginContainerCheck _continueWithPolicy:]):
(-[WebPluginContainerCheck _isForbiddenFileLoad]):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(-[WebFramePolicyListener invalidate]):
(-[WebFramePolicyListener ignore]):
(-[WebFramePolicyListener download]):
(-[WebFramePolicyListener use]):
(-[WebFramePolicyListener continue]):

  • WebView/WebPolicyDelegate.mm:

(-[WebPolicyDecisionListener use]):
(-[WebPolicyDecisionListener ignore]):
(-[WebPolicyDecisionListener download]):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebFramePolicyListener.cpp:

(WebFramePolicyListener::use):
(WebFramePolicyListener::download):
(WebFramePolicyListener::ignore):
(WebFramePolicyListener::continueSubmit):

Location:
trunk/Source
Files:
32 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r222491 r222492  
     12017-09-25  Alex Christensen  <achristensen@webkit.org>
     2
     3        Make PolicyAction an encodable enum class
     4        https://bugs.webkit.org/show_bug.cgi?id=177480
     5
     6        Reviewed by Antti Koivisto.
     7
     8        * loader/DocumentLoader.cpp:
     9        (WebCore::DocumentLoader::responseReceived):
     10        (WebCore::DocumentLoader::continueAfterContentPolicy):
     11        * loader/FrameLoaderTypes.h:
     12        * loader/PolicyChecker.cpp:
     13        (WebCore::PolicyChecker::checkNavigationPolicy):
     14        (WebCore::PolicyChecker::checkNewWindowPolicy):
     15
    1162017-09-25  Timothy Horton  <timothy_horton@apple.com>
    217
  • trunk/Source/WebCore/loader/DocumentLoader.cpp

    r222472 r222492  
    696696    // Always show content with valid substitute data.
    697697    if (m_substituteData.isValid()) {
    698         continueAfterContentPolicy(PolicyUse);
     698        continueAfterContentPolicy(PolicyAction::Use);
    699699        return;
    700700    }
     
    703703    // Respect the hidden FTP Directory Listing pref so it can be tested even if the policy delegate might otherwise disallow it
    704704    if (m_frame->settings().forceFTPDirectoryListings() && m_response.mimeType() == "application/x-ftp-directory") {
    705         continueAfterContentPolicy(PolicyUse);
     705        continueAfterContentPolicy(PolicyAction::Use);
    706706        return;
    707707    }
     
    748748
    749749    switch (policy) {
    750     case PolicyUse: {
     750    case PolicyAction::Use: {
    751751        // Prevent remote web archives from loading because they can claim to be from any domain and thus avoid cross-domain security checks (4120255).
    752752        if (!frameLoader()->client().canShowMIMEType(m_response.mimeType()) || isRemoteWebArchive(*this)) {
     
    759759    }
    760760
    761     case PolicyDownload: {
     761    case PolicyAction::Download: {
    762762        // m_mainResource can be null, e.g. when loading a substitute resource from application cache.
    763763        if (!m_mainResource) {
     
    788788        return;
    789789    }
    790     case PolicyIgnore:
     790    case PolicyAction::Ignore:
    791791        if (ResourceLoader* mainResourceLoader = this->mainResourceLoader())
    792792            InspectorInstrumentation::continueWithPolicyIgnore(*m_frame, mainResourceLoader->identifier(), *this, m_response);
  • trunk/Source/WebCore/loader/FrameLoaderTypes.h

    r219404 r222492  
    3939};
    4040
    41 enum PolicyAction {
    42     PolicyUse,
    43     PolicyDownload,
    44     PolicyIgnore
     41enum class PolicyAction {
     42    Use,
     43    Download,
     44    Ignore
    4545};
    4646
     
    148148
    149149} // namespace WebCore
     150
     151namespace WTF {
     152
     153template<typename> struct EnumTraits;
     154template<typename E, E...> struct EnumValues;
     155
     156template<> struct EnumTraits<WebCore::PolicyAction> {
     157    using values = EnumValues<
     158        WebCore::PolicyAction,
     159        WebCore::PolicyAction::Use,
     160        WebCore::PolicyAction::Download,
     161        WebCore::PolicyAction::Ignore
     162    >;
     163};
     164
     165} // namespace WTF
  • trunk/Source/WebCore/loader/PolicyChecker.cpp

    r222472 r222492  
    147147    m_frame.loader().client().dispatchDecidePolicyForNavigationAction(action, request, didReceiveRedirectResponse, formState, [this, function = WTFMove(function), request = WTFMove(requestCopy), formState = makeRefPtr(formState), suggestedFilename = WTFMove(suggestedFilename)](PolicyAction policyAction) mutable {
    148148        switch (policyAction) {
    149         case PolicyDownload:
     149        case PolicyAction::Download:
    150150            m_frame.loader().setOriginalURLForDownloadRequest(request);
    151151            m_frame.loader().client().startDownload(request, suggestedFilename);
    152152            FALLTHROUGH;
    153         case PolicyIgnore:
     153        case PolicyAction::Ignore:
    154154            return function({ }, nullptr, false);
    155         case PolicyUse:
     155        case PolicyAction::Use:
    156156            if (!m_frame.loader().client().canHandleRequest(request)) {
    157157                handleUnimplementablePolicy(m_frame.loader().client().cannotShowURLError(request));
     
    175175    m_frame.loader().client().dispatchDecidePolicyForNewWindowAction(navigationAction, request, formState, frameName, [frame = makeRef(m_frame), request, formState = makeRefPtr(formState), frameName, navigationAction, function = WTFMove(function)](PolicyAction policyAction) mutable {
    176176        switch (policyAction) {
    177         case PolicyDownload:
     177        case PolicyAction::Download:
    178178            frame->loader().client().startDownload(request);
    179179            FALLTHROUGH;
    180         case PolicyIgnore:
     180        case PolicyAction::Ignore:
    181181            function({ }, nullptr, { }, { }, false);
    182182            return;
    183         case PolicyUse:
     183        case PolicyAction::Use:
    184184            function(request, formState.get(), frameName, navigationAction, true);
    185185            return;
  • trunk/Source/WebKit/ChangeLog

    r222490 r222492  
     12017-09-25  Alex Christensen  <achristensen@webkit.org>
     2
     3        Make PolicyAction an encodable enum class
     4        https://bugs.webkit.org/show_bug.cgi?id=177480
     5
     6        Reviewed by Antti Koivisto.
     7
     8        * NetworkProcess/Downloads/DownloadManager.cpp:
     9        (WebKit::DownloadManager::continueDecidePendingDownloadDestination):
     10        (WebKit::DownloadManager::cancelDownload):
     11        * NetworkProcess/NetworkCORSPreflightChecker.cpp:
     12        (WebKit::NetworkCORSPreflightChecker::didReceiveResponseNetworkSession):
     13        * NetworkProcess/NetworkDataTask.cpp:
     14        (WebKit::NetworkDataTask::didReceiveResponse):
     15        * NetworkProcess/NetworkDataTaskBlob.cpp:
     16        (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):
     17        * NetworkProcess/NetworkLoad.cpp:
     18        (WebKit::NetworkLoad::~NetworkLoad):
     19        (WebKit::NetworkLoad::continueDidReceiveResponse):
     20        (WebKit::NetworkLoad::notifyDidReceiveResponse):
     21        * NetworkProcess/PingLoad.cpp:
     22        (WebKit::PingLoad::didReceiveResponseNetworkSession):
     23        * NetworkProcess/capture/NetworkDataTaskReplay.cpp:
     24        (WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse):
     25        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
     26        (toNSURLSessionResponseDisposition):
     27        * NetworkProcess/soup/NetworkDataTaskSoup.cpp:
     28        (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
     29        * Scripts/webkit/messages.py:
     30        (headers_for_type):
     31        * UIProcess/WebFormSubmissionListenerProxy.h:
     32        * UIProcess/WebFrameListenerProxy.h:
     33        (WebKit::WebFrameListenerProxy::navigation): Deleted.
     34        * UIProcess/WebFramePolicyListenerProxy.cpp:
     35        (WebKit::WebFramePolicyListenerProxy::use):
     36        (WebKit::WebFramePolicyListenerProxy::download):
     37        (WebKit::WebFramePolicyListenerProxy::ignore):
     38        * UIProcess/WebPageProxy.cpp:
     39        (WebKit::WebPageProxy::receivedPolicyDecision):
     40        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
     41        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
     42        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
     43        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
     44        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
     45        * WebProcess/WebPage/WebFrame.cpp:
     46        (WebKit::WebFrame::invalidatePolicyListener):
     47        * WebProcess/WebPage/WebPage.cpp:
     48        (WebKit::WebPage::didReceivePolicyDecision):
     49        * WebProcess/WebPage/WebPage.h:
     50        * WebProcess/WebPage/WebPage.messages.in:
     51
    1522017-09-25  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>
    253
  • trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp

    r222467 r222492  
    145145
    146146        networkDataTask->setPendingDownloadLocation(destination, sandboxExtensionHandle, allowOverwrite);
    147         completionHandler(PolicyDownload);
     147        completionHandler(PolicyAction::Download);
    148148        if (networkDataTask->state() == NetworkDataTask::State::Canceling || networkDataTask->state() == NetworkDataTask::State::Completed)
    149149            return;
     
    197197
    198198        networkDataTask->cancel();
    199         completionHandler(PolicyIgnore);
     199        completionHandler(PolicyAction::Ignore);
    200200        m_client.pendingDownloadCanceled(downloadID);
    201201        return;
  • trunk/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp

    r222467 r222492  
    9090    RELEASE_LOG_IF_ALLOWED("didReceiveResponseNetworkSession");
    9191    m_response = WTFMove(response);
    92     completionHandler(PolicyAction::PolicyUse);
     92    completionHandler(PolicyAction::Use);
    9393}
    9494
  • trunk/Source/WebKit/NetworkProcess/NetworkDataTask.cpp

    r222467 r222492  
    104104        std::optional<uint16_t> port = url.port();
    105105        if (port && !isDefaultPortForProtocol(port.value(), url.protocol())) {
    106             completionHandler(PolicyIgnore);
     106            completionHandler(PolicyAction::Ignore);
    107107            cancel();
    108108            m_client->didCompleteWithError({ String(), 0, url, "Cancelled load from '" + url.stringCenterEllipsizedToLength() + "' because it is using HTTP/0.9." });
  • trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp

    r222467 r222492  
    316316
    317317        switch (policyAction) {
    318         case PolicyAction::PolicyUse:
     318        case PolicyAction::Use:
    319319            m_buffer.resize(bufferSize);
    320320            read();
    321321            break;
    322         case PolicyAction::PolicyIgnore:
     322        case PolicyAction::Ignore:
    323323            break;
    324         case PolicyAction::PolicyDownload:
     324        case PolicyAction::Download:
    325325            download();
    326326            break;
  • trunk/Source/WebKit/NetworkProcess/NetworkLoad.cpp

    r222467 r222492  
    135135#if USE(NETWORK_SESSION)
    136136    if (m_responseCompletionHandler)
    137         m_responseCompletionHandler(PolicyIgnore);
     137        m_responseCompletionHandler(PolicyAction::Ignore);
    138138    if (m_redirectCompletionHandler)
    139139        m_redirectCompletionHandler({ });
     
    229229    if (m_responseCompletionHandler) {
    230230        auto responseCompletionHandler = std::exchange(m_responseCompletionHandler, nullptr);
    231         responseCompletionHandler(PolicyUse);
     231        responseCompletionHandler(PolicyAction::Use);
    232232    }
    233233#else
     
    404404        return;
    405405    }
    406     completionHandler(PolicyUse);
     406    completionHandler(PolicyAction::Use);
    407407}
    408408
  • trunk/Source/WebKit/NetworkProcess/PingLoad.cpp

    r222467 r222492  
    176176{
    177177    RELEASE_LOG_IF_ALLOWED("didReceiveResponseNetworkSession - httpStatusCode: %d", response.httpStatusCode());
    178     completionHandler(PolicyAction::PolicyIgnore);
     178    completionHandler(PolicyAction::Ignore);
    179179    didFinish();
    180180}
  • trunk/Source/WebKit/NetworkProcess/capture/NetworkDataTaskReplay.cpp

    r222467 r222492  
    250250
    251251        switch (policyAction) {
    252         case WebCore::PolicyAction::PolicyUse:
     252        case WebCore::PolicyAction::Use:
    253253            enqueueEventHandler();
    254254            break;
    255         case WebCore::PolicyAction::PolicyIgnore:
     255        case WebCore::PolicyAction::Ignore:
    256256            complete();
    257257            break;
    258         case WebCore::PolicyAction::PolicyDownload:
     258        case WebCore::PolicyAction::Download:
    259259            DEBUG_LOG_ERROR("WebCore::PolicyAction::PolicyDownload");
    260260            break;
  • trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm

    r222467 r222492  
    5858{
    5959    switch (disposition) {
    60     case WebCore::PolicyAction::PolicyIgnore:
     60    case WebCore::PolicyAction::Ignore:
    6161        return NSURLSessionResponseCancel;
    62     case WebCore::PolicyAction::PolicyUse:
     62    case WebCore::PolicyAction::Use:
    6363        return NSURLSessionResponseAllow;
    64     case WebCore::PolicyAction::PolicyDownload:
     64    case WebCore::PolicyAction::Download:
    6565        return NSURLSessionResponseBecomeDownload;
    6666    }
  • trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp

    r222467 r222492  
    378378
    379379        switch (policyAction) {
    380         case PolicyAction::PolicyUse:
     380        case PolicyAction::Use:
    381381            if (m_inputStream)
    382382                read();
     
    387387
    388388            break;
    389         case PolicyAction::PolicyIgnore:
     389        case PolicyAction::Ignore:
    390390            clearRequest();
    391391            break;
    392         case PolicyAction::PolicyDownload:
     392        case PolicyAction::Download:
    393393            download();
    394394            break;
  • trunk/Source/WebKit/Scripts/webkit/messages.py

    r221866 r222492  
    388388        'WebKit::WebTouchEvent': ['"WebEvent.h"'],
    389389        'WebKit::WebWheelEvent': ['"WebEvent.h"'],
     390        'WebCore::PolicyAction': ['<WebCore/FrameLoaderTypes.h>'],
    390391        'struct WebKit::WebUserScriptData': ['"WebUserContentControllerDataTypes.h"'],
    391392        'struct WebKit::WebUserStyleSheetData': ['"WebUserContentControllerDataTypes.h"'],
  • trunk/Source/WebKit/UIProcess/WebFormSubmissionListenerProxy.h

    r222456 r222492  
    3030namespace WebKit {
    3131
    32 class WebFrameProxy;
    33 
    3432class WebFormSubmissionListenerProxy : public API::ObjectImpl<API::Object::Type::FormSubmissionListener> {
    3533public:
  • trunk/Source/WebKit/UIProcess/WebFrameListenerProxy.h

    r216473 r222492  
    4444    uint64_t listenerID() const { return m_listenerID; }
    4545
    46     API::Navigation* navigation() { return m_navigation.get(); }
    4746    void setNavigation(Ref<API::Navigation>&& navigation) { m_navigation = WTFMove(navigation); }
    4847
  • trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp

    r209558 r222492  
    3939void WebFramePolicyListenerProxy::use(const WebsitePolicies& websitePolicies)
    4040{
    41     receivedPolicyDecision(WebCore::PolicyUse, websitePolicies);
     41    receivedPolicyDecision(WebCore::PolicyAction::Use, websitePolicies);
    4242}
    4343
    4444void WebFramePolicyListenerProxy::download()
    4545{
    46     receivedPolicyDecision(WebCore::PolicyDownload, { });
     46    receivedPolicyDecision(WebCore::PolicyAction::Download, { });
    4747}
    4848
    4949void WebFramePolicyListenerProxy::ignore()
    5050{
    51     receivedPolicyDecision(WebCore::PolicyIgnore, { });
     51    receivedPolicyDecision(WebCore::PolicyAction::Ignore, { });
    5252}
    5353
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r222468 r222492  
    22652265    auto transaction = m_pageLoadState.transaction();
    22662266
    2267     if (action == PolicyIgnore)
     2267    if (action == PolicyAction::Ignore)
    22682268        m_pageLoadState.clearPendingAPIRequestURL(transaction);
    22692269
    22702270#if ENABLE(DOWNLOAD_ATTRIBUTE)
    2271     if (m_syncNavigationActionHasDownloadAttribute && action == PolicyUse)
    2272         action = PolicyDownload;
     2271    if (m_syncNavigationActionHasDownloadAttribute && action == PolicyAction::Use)
     2272        action = PolicyAction::Download;
    22732273#endif
    22742274
    22752275    DownloadID downloadID = { };
    2276     if (action == PolicyDownload) {
     2276    if (action == PolicyAction::Download) {
    22772277        // Create a download proxy.
    22782278        auto* download = m_process->processPool().createDownloadProxy(m_decidePolicyForResponseRequest, this);
     
    36873687#if ENABLE(CONTENT_FILTERING)
    36883688    if (frame->didHandleContentFilterUnblockNavigation(request)) {
    3689         reply->send(m_newNavigationID, PolicyIgnore, { }, { });
     3689        reply->send(m_newNavigationID, PolicyAction::Ignore, { }, { });
    36903690        m_newNavigationID = 0;
    36913691        return;
  • trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in

    r222468 r222492  
    9999
    100100    # Policy messages
    101     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) -> (uint64_t policyAction, WebKit::DownloadID downloadID) Delayed
    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) -> (uint64_t newNavigationID, uint64_t policyAction, WebKit::DownloadID downloadID, struct WebKit::WebsitePolicies websitePolicies) Delayed
     101    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) -> (enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID) Delayed
     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) -> (uint64_t newNavigationID, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID, struct WebKit::WebsitePolicies websitePolicies) Delayed
    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/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

    r222472 r222492  
    680680    WebPage* webPage = m_frame->page();
    681681    if (!webPage) {
    682         function(PolicyIgnore);
     682        function(PolicyAction::Ignore);
    683683        return;
    684684    }
    685685
    686686    if (!request.url().string()) {
    687         function(PolicyUse);
     687        function(PolicyAction::Use);
    688688        return;
    689689    }
     
    694694    WKBundlePagePolicyAction policy = webPage->injectedBundlePolicyClient().decidePolicyForResponse(webPage, m_frame, response, request, userData);
    695695    if (policy == WKBundlePagePolicyActionUse) {
    696         function(PolicyUse);
     696        function(PolicyAction::Use);
    697697        return;
    698698    }
     
    701701
    702702    uint64_t listenerID = m_frame->setUpPolicyListener(WTFMove(function));
    703     uint64_t policyAction;
     703    PolicyAction policyAction;
    704704    DownloadID downloadID;
    705705
     
    708708    auto navigationID = static_cast<WebDocumentLoader&>(*coreFrame->loader().provisionalDocumentLoader()).navigationID();
    709709    if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForResponseSync(m_frame->frameID(), SecurityOriginData::fromFrame(coreFrame), navigationID, response, request, canShowMIMEType, listenerID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForResponseSync::Reply(policyAction, downloadID), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend)) {
    710         m_frame->didReceivePolicyDecision(listenerID, PolicyIgnore, 0, { });
     710        m_frame->didReceivePolicyDecision(listenerID, PolicyAction::Ignore, 0, { });
    711711        return;
    712712    }
    713713
    714714    // We call this synchronously because CFNetwork can only convert a loading connection to a download from its didReceiveResponse callback.
    715     m_frame->didReceivePolicyDecision(listenerID, static_cast<PolicyAction>(policyAction), 0, downloadID);
     715    m_frame->didReceivePolicyDecision(listenerID, policyAction, 0, downloadID);
    716716}
    717717
     
    720720    WebPage* webPage = m_frame->page();
    721721    if (!webPage) {
    722         function(PolicyIgnore);
     722        function(PolicyAction::Ignore);
    723723        return;
    724724    }
     
    731731    WKBundlePagePolicyAction policy = webPage->injectedBundlePolicyClient().decidePolicyForNewWindowAction(webPage, m_frame, action.get(), request, frameName, userData);
    732732    if (policy == WKBundlePagePolicyActionUse) {
    733         function(PolicyUse);
     733        function(PolicyAction::Use);
    734734        return;
    735735    }
     
    756756    WebPage* webPage = m_frame->page();
    757757    if (!webPage) {
    758         function(PolicyIgnore);
     758        function(PolicyAction::Ignore);
    759759        return;
    760760    }
     
    762762    // Always ignore requests with empty URLs.
    763763    if (request.isEmpty()) {
    764         function(PolicyIgnore);
     764        function(PolicyAction::Ignore);
    765765        return;
    766766    }
     
    773773    WKBundlePagePolicyAction policy = webPage->injectedBundlePolicyClient().decidePolicyForNavigationAction(webPage, m_frame, action.get(), request, userData);
    774774    if (policy == WKBundlePagePolicyActionUse) {
    775         function(PolicyUse);
     775        function(PolicyAction::Use);
    776776        return;
    777777    }
     
    779779    uint64_t listenerID = m_frame->setUpPolicyListener(WTFMove(function));
    780780    uint64_t newNavigationID;
    781     uint64_t policyAction;
     781    PolicyAction policyAction;
    782782    DownloadID downloadID;
    783783
     
    819819    WebsitePolicies websitePolicies;
    820820    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(newNavigationID, policyAction, downloadID, websitePolicies))) {
    821         m_frame->didReceivePolicyDecision(listenerID, PolicyIgnore, 0, { });
     821        m_frame->didReceivePolicyDecision(listenerID, PolicyAction::Ignore, 0, { });
    822822        return;
    823823    }
     
    856856
    857857    // We call this synchronously because WebCore cannot gracefully handle a frame load without a synchronous navigation policy reply.
    858     m_frame->didReceivePolicyDecision(listenerID, static_cast<PolicyAction>(policyAction), newNavigationID, downloadID);
     858    m_frame->didReceivePolicyDecision(listenerID, policyAction, newNavigationID, downloadID);
    859859}
    860860
  • trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp

    r222472 r222492  
    242242    m_policyListenerID = 0;
    243243    if (auto function = std::exchange(m_policyFunction, nullptr))
    244         function(PolicyIgnore);
     244        function(PolicyAction::Ignore);
    245245}
    246246
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r222456 r222492  
    27342734}
    27352735
    2736 void WebPage::didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, uint32_t policyAction, uint64_t navigationID, const DownloadID& downloadID)
     2736void WebPage::didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, PolicyAction policyAction, uint64_t navigationID, const DownloadID& downloadID)
    27372737{
    27382738    WebFrame* frame = WebProcess::singleton().webFrame(frameID);
    27392739    if (!frame)
    27402740        return;
    2741     frame->didReceivePolicyDecision(listenerID, static_cast<PolicyAction>(policyAction), navigationID, downloadID);
     2741    frame->didReceivePolicyDecision(listenerID, policyAction, navigationID, downloadID);
    27422742}
    27432743
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.h

    r222487 r222492  
    11391139    void updatePreferences(const WebPreferencesStore&);
    11401140
    1141     void didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, uint32_t policyAction, uint64_t navigationID, const DownloadID&);
     1141    void didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, WebCore::PolicyAction, uint64_t navigationID, const DownloadID&);
    11421142    void continueWillSubmitForm(uint64_t frameID, uint64_t listenerID);
    11431143    void setUserAgent(const String&);
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in

    r222487 r222492  
    152152
    153153    UpdateWebsitePolicies(struct WebKit::WebsitePolicies websitePolicies)
    154     DidReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, uint32_t policyAction, uint64_t navigationID, WebKit::DownloadID downloadID)
     154    DidReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, enum WebCore::PolicyAction policyAction, uint64_t navigationID, WebKit::DownloadID downloadID)
    155155    ContinueWillSubmitForm(uint64_t frameID, uint64_t listenerID)
    156156
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r222487 r222492  
     12017-09-25  Alex Christensen  <achristensen@webkit.org>
     2
     3        Make PolicyAction an encodable enum class
     4        https://bugs.webkit.org/show_bug.cgi?id=177480
     5
     6        Reviewed by Antti Koivisto.
     7
     8        * Plugins/WebPluginContainerCheck.mm:
     9        (-[WebPluginContainerCheck _continueWithPolicy:]):
     10        (-[WebPluginContainerCheck _isForbiddenFileLoad]):
     11        * WebCoreSupport/WebFrameLoaderClient.mm:
     12        (-[WebFramePolicyListener invalidate]):
     13        (-[WebFramePolicyListener ignore]):
     14        (-[WebFramePolicyListener download]):
     15        (-[WebFramePolicyListener use]):
     16        (-[WebFramePolicyListener continue]):
     17        * WebView/WebPolicyDelegate.mm:
     18        (-[WebPolicyDecisionListener use]):
     19        (-[WebPolicyDecisionListener ignore]):
     20        (-[WebPolicyDecisionListener download]):
     21
    1222017-09-25  Frederik Riedel  <riedel@apple.com>
    223
  • trunk/Source/WebKitLegacy/mac/Plugins/WebPluginContainerCheck.mm

    r210859 r222492  
    8888{
    8989    if (_contextInfo)
    90         wtfObjcMsgSend<void>(_resultObject, _resultSelector, (policy == PolicyUse), _contextInfo);
     90        wtfObjcMsgSend<void>(_resultObject, _resultSelector, (policy == PolicyAction::Use), _contextInfo);
    9191    else     
    92         wtfObjcMsgSend<void>(_resultObject, _resultSelector, (policy == PolicyUse));
     92        wtfObjcMsgSend<void>(_resultObject, _resultSelector, (policy == PolicyAction::Use));
    9393
    9494    // this will call indirectly call cancel
     
    101101    ASSERT(coreFrame);
    102102    if (!coreFrame->document()->securityOrigin().canDisplay([_request URL])) {
    103         [self _continueWithPolicy:PolicyIgnore];
     103        [self _continueWithPolicy:PolicyAction::Ignore];
    104104        return YES;
    105105    }
  • trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm

    r222472 r222492  
    24112411    _frame = nullptr;
    24122412    if (auto policyFunction = std::exchange(_policyFunction, nullptr))
    2413         policyFunction(PolicyIgnore);
     2413        policyFunction(PolicyAction::Ignore);
    24142414}
    24152415
     
    24342434- (void)ignore
    24352435{
    2436     [self receivedPolicyDecision:PolicyIgnore];
     2436    [self receivedPolicyDecision:PolicyAction::Ignore];
    24372437}
    24382438
    24392439- (void)download
    24402440{
    2441     [self receivedPolicyDecision:PolicyDownload];
     2441    [self receivedPolicyDecision:PolicyAction::Download];
    24422442}
    24432443
     
    24492449            WebThreadRun(^{
    24502450                if (success)
    2451                     [self receivedPolicyDecision:PolicyIgnore];
     2451                    [self receivedPolicyDecision:PolicyAction::Ignore];
    24522452                else
    2453                     [self receivedPolicyDecision:PolicyUse];
     2453                    [self receivedPolicyDecision:PolicyAction::Use];
    24542454            });
    24552455        }];
     
    24582458#endif
    24592459
    2460     [self receivedPolicyDecision:PolicyUse];
     2460    [self receivedPolicyDecision:PolicyAction::Use];
    24612461}
    24622462
    24632463- (void)continue
    24642464{
    2465     [self receivedPolicyDecision:PolicyUse];
     2465    [self receivedPolicyDecision:PolicyAction::Use];
    24662466}
    24672467
  • trunk/Source/WebKitLegacy/mac/WebView/WebPolicyDelegate.mm

    r165676 r222492  
    106106- (void)use
    107107{
    108     [self _usePolicy:PolicyUse];
     108    [self _usePolicy:PolicyAction::Use];
    109109}
    110110
    111111- (void)ignore
    112112{
    113     [self _usePolicy:PolicyIgnore];
     113    [self _usePolicy:PolicyAction::Ignore];
    114114}
    115115
    116116- (void)download
    117117{
    118     [self _usePolicy:PolicyDownload];
     118    [self _usePolicy:PolicyAction::Download];
    119119}
    120120
  • trunk/Source/WebKitLegacy/win/ChangeLog

    r221746 r222492  
     12017-09-25  Alex Christensen  <achristensen@webkit.org>
     2
     3        Make PolicyAction an encodable enum class
     4        https://bugs.webkit.org/show_bug.cgi?id=177480
     5
     6        Reviewed by Antti Koivisto.
     7
     8        * WebCoreSupport/WebFrameLoaderClient.cpp:
     9        (WebFrameLoaderClient::dispatchDecidePolicyForResponse):
     10        (WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
     11        (WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
     12        * WebFramePolicyListener.cpp:
     13        (WebFramePolicyListener::use):
     14        (WebFramePolicyListener::download):
     15        (WebFramePolicyListener::ignore):
     16        (WebFramePolicyListener::continueSubmit):
     17
    1182017-09-07  Per Arne Vollan  <pvollan@apple.com>
    219
  • trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp

    r222456 r222492  
    528528        return;
    529529
    530     m_policyListenerPrivate->m_policyFunction(PolicyUse);
     530    m_policyListenerPrivate->m_policyFunction(PolicyAction::Use);
    531531}
    532532
     
    547547        return;
    548548
    549     m_policyListenerPrivate->m_policyFunction(PolicyUse);
     549    m_policyListenerPrivate->m_policyFunction(PolicyAction::Use);
    550550}
    551551
     
    566566        return;
    567567
    568     m_policyListenerPrivate->m_policyFunction(PolicyUse);
     568    m_policyListenerPrivate->m_policyFunction(PolicyAction::Use);
    569569}
    570570
  • trunk/Source/WebKitLegacy/win/WebFramePolicyListener.cpp

    r216833 r222492  
    9494HRESULT WebFramePolicyListener::use()
    9595{
    96     receivedPolicyDecision(PolicyUse);
     96    receivedPolicyDecision(PolicyAction::Use);
    9797    return S_OK;
    9898}
     
    100100HRESULT WebFramePolicyListener::download()
    101101{
    102     receivedPolicyDecision(PolicyDownload);
     102    receivedPolicyDecision(PolicyAction::Download);
    103103    return S_OK;
    104104}
     
    106106HRESULT WebFramePolicyListener::ignore()
    107107{
    108     receivedPolicyDecision(PolicyIgnore);
     108    receivedPolicyDecision(PolicyAction::Ignore);
    109109    return S_OK;
    110110}
     
    114114HRESULT WebFramePolicyListener::continueSubmit()
    115115{
    116     receivedPolicyDecision(PolicyUse);
     116    receivedPolicyDecision(PolicyAction::Use);
    117117    return S_OK;
    118118}
Note: See TracChangeset for help on using the changeset viewer.