Changeset 162951 in webkit


Ignore:
Timestamp:
Jan 28, 2014 1:15:23 PM (10 years ago)
Author:
andersca@apple.com
Message:

Add a NavigationActionData object for easy storage of navigation action data
https://bugs.webkit.org/show_bug.cgi?id=127787

Reviewed by Tim Horton.

  • Scripts/webkit2/messages.py:

(struct_or_class):

  • Shared/NavigationActionData.cpp: Added.

(WebKit::NavigationActionData::NavigationActionData):
(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):

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

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

Location:
trunk/Source/WebKit2
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r162950 r162951  
     12014-01-28  Anders Carlsson  <andersca@apple.com>
     2
     3        Add a NavigationActionData object for easy storage of navigation action data
     4        https://bugs.webkit.org/show_bug.cgi?id=127787
     5
     6        Reviewed by Tim Horton.
     7
     8        * Scripts/webkit2/messages.py:
     9        (struct_or_class):
     10        * Shared/NavigationActionData.cpp: Added.
     11        (WebKit::NavigationActionData::NavigationActionData):
     12        (WebKit::NavigationActionData::encode):
     13        (WebKit::NavigationActionData::decode):
     14        * Shared/NavigationActionData.h: Added.
     15        * UIProcess/WebPageProxy.cpp:
     16        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
     17        (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
     18        * UIProcess/WebPageProxy.h:
     19        * UIProcess/WebPageProxy.messages.in:
     20        * WebKit2.xcodeproj/project.pbxproj:
     21        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
     22        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
     23        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
     24
    1252014-01-28  Tim Horton  <timothy_horton@apple.com>
    226
  • trunk/Source/WebKit2/Scripts/webkit2/messages.py

    r162709 r162951  
    213213        'WebKit::EditorState',
    214214        'WebKit::InteractionInformationAtPosition',
     215        'WebKit::NavigationActionData',
    215216        'WebKit::NetworkProcessCreationParameters',
    216217        'WebKit::PlatformPopupMenuData',
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r162949 r162951  
    4444#include "NativeWebMouseEvent.h"
    4545#include "NativeWebWheelEvent.h"
     46#include "NavigationActionData.h"
    4647#include "NotificationPermissionRequest.h"
    4748#include "NotificationPermissionRequestManager.h"
     
    24432444}
    24442445
    2445 // PolicyClient
    2446 void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, uint32_t opaqueNavigationType, uint32_t opaqueModifiers, int32_t opaqueMouseButton, uint64_t originatingFrameID, const WebCore::ResourceRequest& originalRequest, const ResourceRequest& request, uint64_t listenerID, IPC::MessageDecoder& decoder, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID)
     2446void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, const NavigationActionData& navigationActionData, uint64_t originatingFrameID, const WebCore::ResourceRequest& originalRequest, const ResourceRequest& request, uint64_t listenerID, IPC::MessageDecoder& decoder, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID)
    24472447{
    24482448    RefPtr<API::Object> userData;
     
    24612461    MESSAGE_CHECK_URL(originalRequest.url());
    24622462
    2463     NavigationType navigationType = static_cast<NavigationType>(opaqueNavigationType);
    2464     WebEvent::Modifiers modifiers = static_cast<WebEvent::Modifiers>(opaqueModifiers);
    2465     WebMouseEvent::Button mouseButton = static_cast<WebMouseEvent::Button>(opaqueMouseButton);
    24662463    WebFrameProxy* originatingFrame = m_process->webFrame(originatingFrameID);
    24672464   
     
    24732470    m_syncNavigationActionPolicyActionIsValid = false;
    24742471
    2475     m_policyClient->decidePolicyForNavigationAction(this, frame, navigationType, modifiers, mouseButton, originatingFrame, originalRequest, request, listener.get(), userData.get());
     2472    m_policyClient->decidePolicyForNavigationAction(this, frame, navigationActionData.navigationType, navigationActionData.modifiers, navigationActionData.mouseButton, originatingFrame, originalRequest, request, listener.get(), userData.get());
    24762473
    24772474    m_inDecidePolicyForNavigationAction = false;
     
    24852482}
    24862483
    2487 void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, uint32_t opaqueNavigationType, uint32_t opaqueModifiers, int32_t opaqueMouseButton, const ResourceRequest& request, const String& frameName, uint64_t listenerID, IPC::MessageDecoder& decoder)
     2484void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData& navigationActionData, const ResourceRequest& request, const String& frameName, uint64_t listenerID, IPC::MessageDecoder& decoder)
    24882485{
    24892486    RefPtr<API::Object> userData;
     
    24962493    MESSAGE_CHECK_URL(request.url());
    24972494
    2498     NavigationType navigationType = static_cast<NavigationType>(opaqueNavigationType);
    2499     WebEvent::Modifiers modifiers = static_cast<WebEvent::Modifiers>(opaqueModifiers);
    2500     WebMouseEvent::Button mouseButton = static_cast<WebMouseEvent::Button>(opaqueMouseButton);
    25012495    RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID);
    25022496
    2503     m_policyClient->decidePolicyForNewWindowAction(this, frame, navigationType, modifiers, mouseButton, request, frameName, listener.get(), userData.get());
     2497    m_policyClient->decidePolicyForNewWindowAction(this, frame, navigationActionData.navigationType, navigationActionData.modifiers, navigationActionData.mouseButton, request, frameName, listener.get(), userData.get());
    25042498}
    25052499
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r162883 r162951  
    921921    void didFinishProgress();
    922922
    923     void decidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, uint64_t originatingFrameID, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest& request, uint64_t listenerID, IPC::MessageDecoder&, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID);
    924     void decidePolicyForNewWindowAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, const WebCore::ResourceRequest&, const String& frameName, uint64_t listenerID, IPC::MessageDecoder&);
     923    void decidePolicyForNavigationAction(uint64_t frameID, const NavigationActionData&, uint64_t originatingFrameID, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, uint64_t listenerID, IPC::MessageDecoder&, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID);
     924    void decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData&, const WebCore::ResourceRequest&, const String& frameName, uint64_t listenerID, IPC::MessageDecoder&);
    925925    void decidePolicyForResponse(uint64_t frameID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, IPC::MessageDecoder&);
    926926    void decidePolicyForResponseSync(uint64_t frameID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, IPC::MessageDecoder&, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID);
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in

    r162883 r162951  
    107107    # Policy messages
    108108    DecidePolicyForResponseSync(uint64_t frameID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, bool canShowMIMEType, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID) Variadic
    109     DecidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, uint64_t originatingFrameID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID) Variadic
    110     DecidePolicyForNewWindowAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
     109    DecidePolicyForNavigationAction(uint64_t frameID, WebKit::NavigationActionData navigationActionData, uint64_t originatingFrameID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID) Variadic
     110    DecidePolicyForNewWindowAction(uint64_t frameID, WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
    111111    UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData)  Variadic
    112112
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r162877 r162951  
    317317                1AD3306E16B1D991004F60E7 /* StorageAreaImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD3306C16B1D991004F60E7 /* StorageAreaImpl.cpp */; };
    318318                1AD3306F16B1D991004F60E7 /* StorageAreaImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD3306D16B1D991004F60E7 /* StorageAreaImpl.h */; };
     319                1ADCB86A189831B30022EE5A /* NavigationActionData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1ADCB868189831B30022EE5A /* NavigationActionData.cpp */; };
     320                1ADCB86B189831B30022EE5A /* NavigationActionData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ADCB869189831B30022EE5A /* NavigationActionData.h */; };
    319321                1ADF591A1890528E0043C145 /* WKWebViewConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1ADF59181890528E0043C145 /* WKWebViewConfiguration.mm */; };
    320322                1ADF591B1890528E0043C145 /* WKWebViewConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ADF59191890528E0043C145 /* WKWebViewConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; };
     
    19591961                1AD3306C16B1D991004F60E7 /* StorageAreaImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StorageAreaImpl.cpp; sourceTree = "<group>"; };
    19601962                1AD3306D16B1D991004F60E7 /* StorageAreaImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageAreaImpl.h; sourceTree = "<group>"; };
     1963                1ADCB868189831B30022EE5A /* NavigationActionData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NavigationActionData.cpp; sourceTree = "<group>"; };
     1964                1ADCB869189831B30022EE5A /* NavigationActionData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationActionData.h; sourceTree = "<group>"; };
    19611965                1ADF59181890528E0043C145 /* WKWebViewConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebViewConfiguration.mm; sourceTree = "<group>"; };
    19621966                1ADF59191890528E0043C145 /* WKWebViewConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebViewConfiguration.h; sourceTree = "<group>"; };
     
    37833787                                BCB0AEE8122F53E300B1341E /* MutableDictionary.cpp */,
    37843788                                BCB0AEE7122F53E300B1341E /* MutableDictionary.h */,
     3789                                1ADCB868189831B30022EE5A /* NavigationActionData.cpp */,
     3790                                1ADCB869189831B30022EE5A /* NavigationActionData.h */,
    37853791                                C02BFF1512514FD8009CCBEA /* NativeWebKeyboardEvent.h */,
    37863792                                31EA25D3134F78D6005B1452 /* NativeWebMouseEvent.h */,
     
    61766182                                BCBCB0CB1215E32100DE59CA /* ImmutableDictionary.h in Headers */,
    61776183                                BC204EE311C83E98008F3375 /* InjectedBundle.h in Headers */,
     6184                                1ADCB86B189831B30022EE5A /* NavigationActionData.h in Headers */,
    61786185                                935EEBA2127761D0003322B8 /* InjectedBundleBackForwardList.h in Headers */,
    61796186                                935EEBA4127761D6003322B8 /* InjectedBundleBackForwardListItem.h in Headers */,
     
    80728079                                512A9760180E031D0039A149 /* DatabaseProcessMessageReceiver.cpp in Sources */,
    80738080                                BC40760D124FF0270068F20A /* WKURLResponse.cpp in Sources */,
     8081                                1ADCB86A189831B30022EE5A /* NavigationActionData.cpp in Sources */,
    80748082                                BC40762C124FF0400068F20A /* WKURLResponseNS.mm in Sources */,
    80758083                                2D819B9E18627EE9001F03D1 /* ViewGestureGeometryCollector.cpp in Sources */,
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

    r162786 r162951  
    3434#include "InjectedBundleNavigationAction.h"
    3535#include "InjectedBundleUserMessageCoders.h"
     36#include "NavigationActionData.h"
    3637#include "PluginView.h"
    3738#include "WebBackForwardListProxy.h"
     
    679680    uint64_t listenerID = m_frame->setUpPolicyListener(std::move(function));
    680681
    681     // Notify the UIProcess.
    682     webPage->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), action->navigationType(), action->modifiers(), action->mouseButton(), request, frameName, listenerID, InjectedBundleUserMessageEncoder(userData.get())));
     682    NavigationActionData navigationActionData;
     683    navigationActionData.navigationType = action->navigationType();
     684    navigationActionData.modifiers = action->modifiers();
     685    navigationActionData.mouseButton = action->mouseButton();
     686
     687    webPage->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), navigationActionData, request, frameName, listenerID, InjectedBundleUserMessageEncoder(userData.get())));
    683688}
    684689
     
    730735    }
    731736
     737    NavigationActionData navigationActionData;
     738    navigationActionData.navigationType = action->navigationType();
     739    navigationActionData.modifiers = action->modifiers();
     740    navigationActionData.mouseButton = action->mouseButton();
     741
    732742    // Notify the UIProcess.
    733     if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), action->navigationType(), action->modifiers(), action->mouseButton(), originatingFrame ? originatingFrame->frameID() : 0, navigationAction.resourceRequest(), request, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, policyAction, downloadID)))
     743    if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), navigationActionData, originatingFrame ? originatingFrame->frameID() : 0, navigationAction.resourceRequest(), request, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, policyAction, downloadID)))
    734744        return;
    735745
Note: See TracChangeset for help on using the changeset viewer.