Changeset 162951 in webkit
- Timestamp:
- Jan 28, 2014 1:15:23 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r162950 r162951 1 2014-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 1 25 2014-01-28 Tim Horton <timothy_horton@apple.com> 2 26 -
trunk/Source/WebKit2/Scripts/webkit2/messages.py
r162709 r162951 213 213 'WebKit::EditorState', 214 214 'WebKit::InteractionInformationAtPosition', 215 'WebKit::NavigationActionData', 215 216 'WebKit::NetworkProcessCreationParameters', 216 217 'WebKit::PlatformPopupMenuData', -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r162949 r162951 44 44 #include "NativeWebMouseEvent.h" 45 45 #include "NativeWebWheelEvent.h" 46 #include "NavigationActionData.h" 46 47 #include "NotificationPermissionRequest.h" 47 48 #include "NotificationPermissionRequestManager.h" … … 2443 2444 } 2444 2445 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) 2446 void 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) 2447 2447 { 2448 2448 RefPtr<API::Object> userData; … … 2461 2461 MESSAGE_CHECK_URL(originalRequest.url()); 2462 2462 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);2466 2463 WebFrameProxy* originatingFrame = m_process->webFrame(originatingFrameID); 2467 2464 … … 2473 2470 m_syncNavigationActionPolicyActionIsValid = false; 2474 2471 2475 m_policyClient->decidePolicyForNavigationAction(this, frame, navigation Type, 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()); 2476 2473 2477 2474 m_inDecidePolicyForNavigationAction = false; … … 2485 2482 } 2486 2483 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)2484 void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData& navigationActionData, const ResourceRequest& request, const String& frameName, uint64_t listenerID, IPC::MessageDecoder& decoder) 2488 2485 { 2489 2486 RefPtr<API::Object> userData; … … 2496 2493 MESSAGE_CHECK_URL(request.url()); 2497 2494 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);2501 2495 RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID); 2502 2496 2503 m_policyClient->decidePolicyForNewWindowAction(this, frame, navigation Type, 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()); 2504 2498 } 2505 2499 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r162883 r162951 921 921 void didFinishProgress(); 922 922 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&); 925 925 void decidePolicyForResponse(uint64_t frameID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, uint64_t listenerID, IPC::MessageDecoder&); 926 926 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 107 107 # Policy messages 108 108 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) Variadic110 DecidePolicyForNewWindowAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic109 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 111 111 UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic 112 112 -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r162877 r162951 317 317 1AD3306E16B1D991004F60E7 /* StorageAreaImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD3306C16B1D991004F60E7 /* StorageAreaImpl.cpp */; }; 318 318 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 */; }; 319 321 1ADF591A1890528E0043C145 /* WKWebViewConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1ADF59181890528E0043C145 /* WKWebViewConfiguration.mm */; }; 320 322 1ADF591B1890528E0043C145 /* WKWebViewConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ADF59191890528E0043C145 /* WKWebViewConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; … … 1959 1961 1AD3306C16B1D991004F60E7 /* StorageAreaImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StorageAreaImpl.cpp; sourceTree = "<group>"; }; 1960 1962 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>"; }; 1961 1965 1ADF59181890528E0043C145 /* WKWebViewConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebViewConfiguration.mm; sourceTree = "<group>"; }; 1962 1966 1ADF59191890528E0043C145 /* WKWebViewConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebViewConfiguration.h; sourceTree = "<group>"; }; … … 3783 3787 BCB0AEE8122F53E300B1341E /* MutableDictionary.cpp */, 3784 3788 BCB0AEE7122F53E300B1341E /* MutableDictionary.h */, 3789 1ADCB868189831B30022EE5A /* NavigationActionData.cpp */, 3790 1ADCB869189831B30022EE5A /* NavigationActionData.h */, 3785 3791 C02BFF1512514FD8009CCBEA /* NativeWebKeyboardEvent.h */, 3786 3792 31EA25D3134F78D6005B1452 /* NativeWebMouseEvent.h */, … … 6176 6182 BCBCB0CB1215E32100DE59CA /* ImmutableDictionary.h in Headers */, 6177 6183 BC204EE311C83E98008F3375 /* InjectedBundle.h in Headers */, 6184 1ADCB86B189831B30022EE5A /* NavigationActionData.h in Headers */, 6178 6185 935EEBA2127761D0003322B8 /* InjectedBundleBackForwardList.h in Headers */, 6179 6186 935EEBA4127761D6003322B8 /* InjectedBundleBackForwardListItem.h in Headers */, … … 8072 8079 512A9760180E031D0039A149 /* DatabaseProcessMessageReceiver.cpp in Sources */, 8073 8080 BC40760D124FF0270068F20A /* WKURLResponse.cpp in Sources */, 8081 1ADCB86A189831B30022EE5A /* NavigationActionData.cpp in Sources */, 8074 8082 BC40762C124FF0400068F20A /* WKURLResponseNS.mm in Sources */, 8075 8083 2D819B9E18627EE9001F03D1 /* ViewGestureGeometryCollector.cpp in Sources */, -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
r162786 r162951 34 34 #include "InjectedBundleNavigationAction.h" 35 35 #include "InjectedBundleUserMessageCoders.h" 36 #include "NavigationActionData.h" 36 37 #include "PluginView.h" 37 38 #include "WebBackForwardListProxy.h" … … 679 680 uint64_t listenerID = m_frame->setUpPolicyListener(std::move(function)); 680 681 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()))); 683 688 } 684 689 … … 730 735 } 731 736 737 NavigationActionData navigationActionData; 738 navigationActionData.navigationType = action->navigationType(); 739 navigationActionData.modifiers = action->modifiers(); 740 navigationActionData.mouseButton = action->mouseButton(); 741 732 742 // 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))) 734 744 return; 735 745
Note: See TracChangeset
for help on using the changeset viewer.