Changeset 159358 in webkit
- Timestamp:
- Nov 15, 2013, 2:22:30 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r159353 r159358 1 2013-11-15 Dan Bernstein <mitz@apple.com> 2 3 Give the policy client the originating frame of a navigation action 4 https://bugs.webkit.org/show_bug.cgi?id=124431 5 6 Reviewed by Anders Carlsson. 7 8 * Platform/CoreIPC/HandleMessage.h: 9 (CoreIPC::callMemberFunction): Added a seventh message parameter to this template. 10 11 * Shared/APIClientTraits.cpp: Defined API traits for WKPagePolicyClient, which now has two 12 versions. 13 * Shared/APIClientTraits.h: Declared APIClientTraits<WKPagePolicyClient>. 14 15 * UIProcess/API/C/WKPage.h: Added an originatingFrame parameter to 16 WKPageDecidePolicyForNavigationActionCallback and deprecated the old version. Bumped the 17 policy client version to 1. 18 19 * UIProcess/API/mac/WKBrowsingContextController.mm: 20 (setUpPagePolicyClient): Include the originating frame’s URL under the a new key in the 21 action information dictionary. 22 * UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h: Declared 23 WKActionOriginatingFrameURLKey. 24 25 * UIProcess/WebInspectorProxy.cpp: 26 (WebKit::decidePolicyForNavigationAction): Added originatingFrame parameter. 27 (WebKit::WebInspectorProxy::createInspectorPage): Updated to the new version of the policy 28 client interface. 29 30 * UIProcess/WebPageProxy.cpp: 31 (WebKit::WebPageProxy::decidePolicyForNavigationAction): Added originatingFrameID parameter 32 and passing the originating frame to the policy client. 33 * UIProcess/WebPageProxy.h: 34 * UIProcess/WebPageProxy.messages.in: Added originatingFrameID paremeter to 35 DecidePolicyForNavigationAction. 36 37 * UIProcess/WebPolicyClient.cpp: 38 (WebKit::WebPolicyClient::decidePolicyForNavigationAction): Added originatingFrame 39 parameter, which is passed to the client callback. 40 * UIProcess/WebPolicyClient.h: 41 42 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: 43 (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Determine the 44 originating frame for link activation and form submission actions and send its ID in the 45 DecidePolicyForNavigationAction message. 46 1 47 2013-11-15 Brady Eidson <beidson@apple.com> 2 48 -
trunk/Source/WebKit2/Platform/CoreIPC/HandleMessage.h
r156420 r159358 359 359 } 360 360 361 template<typename C, typename MF, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename R1, typename R2, typename R3>362 void callMemberFunction(std::tuple<P1, P2, P3, P4, P5, P6 >&& args, MessageDecoder& decoder, std::tuple<R1, R2, R3>& replyArgs, C* object, MF function)363 { 364 (object->*function)(std::get<0>(args), std::get<1>(args), std::get<2>(args), std::get<3>(args), std::get<4>(args), std::get<5>(args), decoder, std::get<0>(replyArgs), std::get<1>(replyArgs), std::get<2>(replyArgs));361 template<typename C, typename MF, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename R1, typename R2, typename R3> 362 void callMemberFunction(std::tuple<P1, P2, P3, P4, P5, P6, P7>&& args, MessageDecoder& decoder, std::tuple<R1, R2, R3>& replyArgs, C* object, MF function) 363 { 364 (object->*function)(std::get<0>(args), std::get<1>(args), std::get<2>(args), std::get<3>(args), std::get<4>(args), std::get<5>(args), std::get<6>(args), decoder, std::get<0>(replyArgs), std::get<1>(replyArgs), std::get<2>(replyArgs)); 365 365 } 366 366 -
trunk/Source/WebKit2/Shared/APIClientTraits.cpp
r158689 r159358 72 72 }; 73 73 74 const size_t APIClientTraits<WKPagePolicyClient>::interfaceSizesByVersion[] = { 75 offsetof(WKPagePolicyClient, decidePolicyForNavigationAction), 76 sizeof(WKPagePolicyClient) 77 }; 78 74 79 const size_t APIClientTraits<WKPageUIClient>::interfaceSizesByVersion[] = { 75 80 offsetof(WKPageUIClient, createNewPage), -
trunk/Source/WebKit2/Shared/APIClientTraits.h
r158689 r159358 69 69 }; 70 70 71 template<> struct APIClientTraits<WKPagePolicyClient> { 72 static const size_t interfaceSizesByVersion[2]; 73 }; 74 71 75 template<> struct APIClientTraits<WKPageUIClient> { 72 76 static const size_t interfaceSizesByVersion[3]; -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.h
r159059 r159358 149 149 150 150 // Policy Client. 151 typedef void (*WKPageDecidePolicyForNavigationActionCallback)(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WK URLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo);151 typedef void (*WKPageDecidePolicyForNavigationActionCallback)(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKFrameRef originatingFrame, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo); 152 152 typedef void (*WKPageDecidePolicyForNewWindowActionCallback)(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKStringRef frameName, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo); 153 153 typedef void (*WKPageDecidePolicyForResponseCallback)(WKPageRef page, WKFrameRef frame, WKURLResponseRef response, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo); 154 154 typedef void (*WKPageUnableToImplementPolicyCallback)(WKPageRef page, WKFrameRef frame, WKErrorRef error, WKTypeRef userData, const void* clientInfo); 155 155 156 // Deprecated 157 typedef void (*WKPageDecidePolicyForNavigationActionCallback_deprecatedForUseWithV0)(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo); 158 156 159 struct WKPagePolicyClient { 157 int version; 158 const void * clientInfo; 159 WKPageDecidePolicyForNavigationActionCallback decidePolicyForNavigationAction; 160 WKPageDecidePolicyForNewWindowActionCallback decidePolicyForNewWindowAction; 161 WKPageDecidePolicyForResponseCallback decidePolicyForResponse; 162 WKPageUnableToImplementPolicyCallback unableToImplementPolicy; 160 int version; 161 const void * clientInfo; 162 WKPageDecidePolicyForNavigationActionCallback_deprecatedForUseWithV0 decidePolicyForNavigationAction_deprecatedForUseWithV0; 163 WKPageDecidePolicyForNewWindowActionCallback decidePolicyForNewWindowAction; 164 WKPageDecidePolicyForResponseCallback decidePolicyForResponse; 165 WKPageUnableToImplementPolicyCallback unableToImplementPolicy; 166 167 // Version 1 168 WKPageDecidePolicyForNavigationActionCallback decidePolicyForNavigationAction; 163 169 }; 164 170 typedef struct WKPagePolicyClient WKPagePolicyClient; 165 171 166 enum { kWKPagePolicyClientCurrentVersion = 0};172 enum { kWKPagePolicyClientCurrentVersion = 1 }; 167 173 168 174 // Form Client. -
trunk/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm
r159322 r159358 82 82 NSString * const WKActionURLResponseKey = @"WKActionURLResponseKey"; 83 83 NSString * const WKActionFrameNameKey = @"WKActionFrameNameKey"; 84 NSString * const WKActionOriginatingFrameURLKey = @"WKActionOriginatingFrameURLKey"; 84 85 85 86 @interface WKBrowsingContextControllerData : NSObject { … … 623 624 policyClient.clientInfo = browsingContext; 624 625 625 policyClient.decidePolicyForNavigationAction = [](WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WK URLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo)626 policyClient.decidePolicyForNavigationAction = [](WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKFrameRef originatingFrame, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) 626 627 { 627 628 WKBrowsingContextController *browsingContext = (WKBrowsingContextController *)clientInfo; … … 634 635 WKActionURLRequestKey: adoptNS(WKURLRequestCopyNSURLRequest(request)).get() 635 636 }; 637 638 if (originatingFrame) { 639 actionDictionary = [[actionDictionary mutableCopy] autorelease]; 640 [(NSMutableDictionary *)actionDictionary setObject:[NSURL _web_URLWithWTFString:toImpl(originatingFrame)->url() relativeToURL:nil] forKey:WKActionOriginatingFrameURLKey]; 641 } 636 642 637 643 [browsingContext.policyDelegate browsingContextController:browsingContext decidePolicyForNavigationAction:actionDictionary decisionHandler:makePolicyDecisionBlock(listener)]; -
trunk/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h
r159309 r159358 29 29 30 30 /* Constants for policy action dictionaries */ 31 WK_EXPORT extern NSString * const WKActionIsMainFrameKey; // NSNumber (BOOL) 32 WK_EXPORT extern NSString * const WKActionNavigationTypeKey; // NSNumber (WKNavigationType) 33 WK_EXPORT extern NSString * const WKActionMouseButtonKey; // NSNumber (0 for left button, 1 for middle button, 2 for right button) 34 WK_EXPORT extern NSString * const WKActionModifierFlagsKey; // NSNumber (unsigned) 35 WK_EXPORT extern NSString * const WKActionURLRequestKey; // NSURLRequest 36 WK_EXPORT extern NSString * const WKActionURLResponseKey; // NSURLResponse 37 WK_EXPORT extern NSString * const WKActionFrameNameKey; // NSString 31 WK_EXPORT extern NSString * const WKActionIsMainFrameKey; // NSNumber (BOOL) 32 WK_EXPORT extern NSString * const WKActionNavigationTypeKey; // NSNumber (WKNavigationType) 33 WK_EXPORT extern NSString * const WKActionMouseButtonKey; // NSNumber (0 for left button, 1 for middle button, 2 for right button) 34 WK_EXPORT extern NSString * const WKActionModifierFlagsKey; // NSNumber (unsigned) 35 WK_EXPORT extern NSString * const WKActionURLRequestKey; // NSURLRequest 36 WK_EXPORT extern NSString * const WKActionURLResponseKey; // NSURLResponse 37 WK_EXPORT extern NSString * const WKActionFrameNameKey; // NSString 38 WK_EXPORT extern NSString * const WKActionOriginatingFrameURLKey; // NSURL 38 39 39 40 typedef NS_ENUM(NSUInteger, WKNavigationType) { -
trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp
r159090 r159358 373 373 } 374 374 375 static void decidePolicyForNavigationAction(WKPageRef, WKFrameRef frameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WK URLRequestRef requestRef, WKFramePolicyListenerRef listenerRef, WKTypeRef, const void* clientInfo)375 static void decidePolicyForNavigationAction(WKPageRef, WKFrameRef frameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WKFrameRef, WKURLRequestRef requestRef, WKFramePolicyListenerRef listenerRef, WKTypeRef, const void* clientInfo) 376 376 { 377 377 // Allow non-main frames to navigate anywhere. … … 442 442 kWKPagePolicyClientCurrentVersion, 443 443 this, /* clientInfo */ 444 decidePolicyForNavigationAction,444 0, /* decidePolicyForNavigationAction_deprecatedForUseWithV0 */ 445 445 0, /* decidePolicyForNewWindowAction */ 446 446 0, /* decidePolicyForResponse */ 447 0 /* unableToImplementPolicy */ 447 0, /* unableToImplementPolicy */ 448 decidePolicyForNavigationAction 448 449 }; 449 450 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r159333 r159358 2404 2404 2405 2405 // PolicyClient 2406 void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, uint32_t opaqueNavigationType, uint32_t opaqueModifiers, int32_t opaqueMouseButton, const ResourceRequest& request, uint64_t listenerID, CoreIPC::MessageDecoder& decoder, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID)2406 void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, uint32_t opaqueNavigationType, uint32_t opaqueModifiers, int32_t opaqueMouseButton, uint64_t originatingFrameID, const ResourceRequest& request, uint64_t listenerID, CoreIPC::MessageDecoder& decoder, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID) 2407 2407 { 2408 2408 RefPtr<API::Object> userData; … … 2421 2421 WebEvent::Modifiers modifiers = static_cast<WebEvent::Modifiers>(opaqueModifiers); 2422 2422 WebMouseEvent::Button mouseButton = static_cast<WebMouseEvent::Button>(opaqueMouseButton); 2423 WebFrameProxy* originatingFrame = m_process->webFrame(originatingFrameID); 2423 2424 2424 2425 RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID); … … 2429 2430 m_syncNavigationActionPolicyActionIsValid = false; 2430 2431 2431 if (!m_policyClient.decidePolicyForNavigationAction(this, frame, navigationType, modifiers, mouseButton, request, listener.get(), userData.get()))2432 if (!m_policyClient.decidePolicyForNavigationAction(this, frame, navigationType, modifiers, mouseButton, originatingFrame, request, listener.get(), userData.get())) 2432 2433 listener->use(); 2433 2434 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r159234 r159358 790 790 void didFinishProgress(); 791 791 792 void decidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, const WebCore::ResourceRequest&, uint64_t listenerID, CoreIPC::MessageDecoder&, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID);792 void decidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, uint64_t originatingFrameID, const WebCore::ResourceRequest&, uint64_t listenerID, CoreIPC::MessageDecoder&, bool& receivedPolicyAction, uint64_t& policyAction, uint64_t& downloadID); 793 793 void decidePolicyForNewWindowAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, const WebCore::ResourceRequest&, const String& frameName, uint64_t listenerID, CoreIPC::MessageDecoder&); 794 794 void decidePolicyForResponse(uint64_t frameID, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, uint64_t listenerID, CoreIPC::MessageDecoder&); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in
r159201 r159358 98 98 # Policy messages 99 99 DecidePolicyForResponseSync(uint64_t frameID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID) Variadic 100 DecidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID) Variadic100 DecidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, uint64_t originatingFrameID, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID) Variadic 101 101 DecidePolicyForNewWindowAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WebCore::ResourceRequest request, WTF::String frameName, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic 102 102 UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic -
trunk/Source/WebKit2/UIProcess/WebPolicyClient.cpp
r159163 r159358 35 35 namespace WebKit { 36 36 37 bool WebPolicyClient::decidePolicyForNavigationAction(WebPageProxy* page, WebFrameProxy* frame, NavigationType type, WebEvent::Modifiers modifiers, WebMouseEvent::Button mouseButton, const ResourceRequest& resourceRequest, WebFramePolicyListenerProxy* listener, API::Object* userData)37 bool WebPolicyClient::decidePolicyForNavigationAction(WebPageProxy* page, WebFrameProxy* frame, NavigationType type, WebEvent::Modifiers modifiers, WebMouseEvent::Button mouseButton, WebFrameProxy* originatingFrame, const ResourceRequest& resourceRequest, WebFramePolicyListenerProxy* listener, API::Object* userData) 38 38 { 39 if (!m_client.decidePolicyForNavigationAction )39 if (!m_client.decidePolicyForNavigationAction_deprecatedForUseWithV0 && !m_client.decidePolicyForNavigationAction) 40 40 return false; 41 41 42 42 RefPtr<WebURLRequest> request = WebURLRequest::create(resourceRequest); 43 43 44 m_client.decidePolicyForNavigationAction(toAPI(page), toAPI(frame), toAPI(type), toAPI(modifiers), toAPI(mouseButton), toAPI(request.get()), toAPI(listener), toAPI(userData), m_client.clientInfo); 44 if (m_client.decidePolicyForNavigationAction_deprecatedForUseWithV0) 45 m_client.decidePolicyForNavigationAction_deprecatedForUseWithV0(toAPI(page), toAPI(frame), toAPI(type), toAPI(modifiers), toAPI(mouseButton), toAPI(request.get()), toAPI(listener), toAPI(userData), m_client.clientInfo); 46 else 47 m_client.decidePolicyForNavigationAction(toAPI(page), toAPI(frame), toAPI(type), toAPI(modifiers), toAPI(mouseButton), toAPI(originatingFrame), toAPI(request.get()), toAPI(listener), toAPI(userData), m_client.clientInfo); 48 45 49 return true; 46 50 } -
trunk/Source/WebKit2/UIProcess/WebPolicyClient.h
r159163 r159358 51 51 class WebPolicyClient : public APIClient<WKPagePolicyClient, kWKPagePolicyClientCurrentVersion> { 52 52 public: 53 bool decidePolicyForNavigationAction(WebPageProxy*, WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, const WebCore::ResourceRequest&, WebFramePolicyListenerProxy*, API::Object* userData);53 bool decidePolicyForNavigationAction(WebPageProxy*, WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, WebFrameProxy* originatingFrame, const WebCore::ResourceRequest&, WebFramePolicyListenerProxy*, API::Object* userData); 54 54 bool decidePolicyForNewWindowAction(WebPageProxy*, WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, const WebCore::ResourceRequest&, const String& frameName, WebFramePolicyListenerProxy*, API::Object* userData); 55 55 bool decidePolicyForResponse(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, WebFramePolicyListenerProxy*, API::Object* userData); -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
r159163 r159358 677 677 } 678 678 679 void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(const NavigationAction& navigationAction, const ResourceRequest& request, PassRefPtr<FormState> formState, FramePolicyFunction function)679 void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(const NavigationAction& navigationAction, const ResourceRequest& request, PassRefPtr<FormState> prpFormState, FramePolicyFunction function) 680 680 { 681 681 WebPage* webPage = m_frame->page(); … … 690 690 691 691 RefPtr<API::Object> userData; 692 RefPtr<FormState> formState = prpFormState; 692 693 693 694 RefPtr<InjectedBundleNavigationAction> action = InjectedBundleNavigationAction::create(m_frame, navigationAction, formState); … … 705 706 uint64_t downloadID; 706 707 708 RefPtr<WebFrame> originatingFrame; 709 switch (action->navigationType()) { 710 case NavigationTypeLinkClicked: 711 originatingFrame = action->hitTestResult()->frame(); 712 break; 713 case NavigationTypeFormSubmitted: 714 case NavigationTypeFormResubmitted: 715 if (formState) { 716 if (WebFrameLoaderClient* originatingFrameLoaderClient = toWebFrameLoaderClient(formState->sourceDocument()->frame()->loader().client())) 717 originatingFrame = originatingFrameLoaderClient->webFrame(); 718 } 719 break; 720 case NavigationTypeBackForward: 721 case NavigationTypeReload: 722 case NavigationTypeOther: 723 break; 724 } 725 707 726 // Notify the UIProcess. 708 if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), action->navigationType(), action->modifiers(), action->mouseButton(), request, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, policyAction, downloadID)))727 if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), action->navigationType(), action->modifiers(), action->mouseButton(), originatingFrame ? originatingFrame->frameID() : 0, request, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, policyAction, downloadID))) 709 728 return; 710 729 -
trunk/Tools/ChangeLog
r159352 r159358 1 2013-11-15 Dan Bernstein <mitz@apple.com> 2 3 Give the policy client the originating frame of a navigation action 4 https://bugs.webkit.org/show_bug.cgi?id=124431 5 6 Reviewed by Anders Carlsson. 7 8 * MiniBrowser/mac/WK2BrowserWindowController.m: 9 (decidePolicyForNavigationAction): Added originatingFrame parameter. 10 (-[WK2BrowserWindowController awakeFromNib]): Updated for the new version of the policy 11 client. 12 13 * TestWebKitAPI/Tests/WebKit2/DownloadDecideDestinationCrash.cpp: 14 (TestWebKitAPI::decidePolicyForNavigationAction): Added originatingFrame parameter. 15 (TestWebKitAPI::setPagePolicyClient): Updated for the new version of the policy client. 16 17 * TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp: 18 (TestWebKitAPI::decidePolicyForNavigationAction): Added originatingFrame parameter. 19 (TestWebKitAPI::TEST): Updated for the new version of the policy client. 20 21 * WebKitTestRunner/TestController.cpp: 22 (WTR::TestController::createWebViewWithOptions): Updated for the new version of the policy 23 client. 24 (WTR::TestController::decidePolicyForNavigationAction): Added originatingFrame parameter. 25 * WebKitTestRunner/TestController.h: 26 1 27 2013-11-15 Tim Horton <timothy_horton@apple.com> 2 28 -
trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m
r159059 r159358 415 415 // MARK: Policy Client Callbacks 416 416 417 static void decidePolicyForNavigationAction(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WK URLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo)417 static void decidePolicyForNavigationAction(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKFrameRef originatingFrame, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) 418 418 { 419 419 LOG(@"decidePolicyForNavigationAction"); … … 671 671 kWKPagePolicyClientCurrentVersion, 672 672 self, /* clientInfo */ 673 decidePolicyForNavigationAction,673 0, /* decidePolicyForNavigationAction_deprecatedForUseWithV0 */ 674 674 decidePolicyForNewWindowAction, 675 675 decidePolicyForResponse, 676 0 /* unableToImplementPolicy */ 676 0, /* unableToImplementPolicy */ 677 decidePolicyForNavigationAction, 677 678 }; 678 679 WKPageSetPagePolicyClient(_webView.pageRef, &policyClient); -
trunk/Tools/TestWebKitAPI/Tests/WebKit2/DownloadDecideDestinationCrash.cpp
r95188 r159358 33 33 static bool didDecideDestination; 34 34 35 static void decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WK URLRequestRef, WKFramePolicyListenerRef listener, WKTypeRef, const void*)35 static void decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WKFrameRef, WKURLRequestRef, WKFramePolicyListenerRef listener, WKTypeRef, const void*) 36 36 { 37 37 WKFramePolicyListenerDownload(listener); … … 58 58 WKPagePolicyClient policyClient; 59 59 memset(&policyClient, 0, sizeof(policyClient)); 60 policyClient.version = 1; 60 61 policyClient.decidePolicyForNavigationAction = decidePolicyForNavigationAction; 61 62 -
trunk/Tools/TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp
r116626 r159358 86 86 } 87 87 88 static void decidePolicyForNavigationAction(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WK URLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo)88 static void decidePolicyForNavigationAction(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKFrameRef originatingFrame, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) 89 89 { 90 90 State* state = reinterpret_cast<State*>(const_cast<void*>(clientInfo)); … … 129 129 memset(&policyClient, 0, sizeof(policyClient)); 130 130 131 policyClient.version = 0;131 policyClient.version = 1; 132 132 policyClient.clientInfo = &state; 133 133 policyClient.decidePolicyForNavigationAction = decidePolicyForNavigationAction; -
trunk/Tools/WebKitTestRunner/TestController.cpp
r158447 r159358 489 489 kWKPagePolicyClientCurrentVersion, 490 490 this, 491 decidePolicyForNavigationAction,491 0, // decidePolicyForNavigationAction_deprecatedForUseWithV0 492 492 0, // decidePolicyForNewWindowAction 493 493 decidePolicyForResponse, 494 494 0, // unableToImplementPolicy 495 decidePolicyForNavigationAction, 495 496 }; 496 497 WKPageSetPagePolicyClient(m_mainWebView->page(), &pagePolicyClient); … … 1217 1218 } 1218 1219 1219 void TestController::decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WK URLRequestRef, WKFramePolicyListenerRef listener, WKTypeRef, const void* clientInfo)1220 void TestController::decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WKFrameRef, WKURLRequestRef, WKFramePolicyListenerRef listener, WKTypeRef, const void* clientInfo) 1220 1221 { 1221 1222 static_cast<TestController*>(const_cast<void*>(clientInfo))->decidePolicyForNavigationAction(listener); -
trunk/Tools/WebKitTestRunner/TestController.h
r158326 r159358 153 153 154 154 // WKPagePolicyClient 155 static void decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WK URLRequestRef, WKFramePolicyListenerRef, WKTypeRef, const void*);155 static void decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WKFrameRef, WKURLRequestRef, WKFramePolicyListenerRef, WKTypeRef, const void*); 156 156 void decidePolicyForNavigationAction(WKFramePolicyListenerRef); 157 157
Note:
See TracChangeset
for help on using the changeset viewer.