Changeset 173851 in webkit
- Timestamp:
- Sep 22, 2014 3:00:49 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r173804 r173851 1 2014-09-22 Daniel Bates <dabates@apple.com> 2 3 [Cocoa] Add UI delegate callback when window.close() is called 4 https://bugs.webkit.org/show_bug.cgi?id=137008 5 <rdar://problem/17801001> 6 7 Reviewed by Anders Carlsson. 8 9 Implement support infrastructure to notify the UI client when window.close() is called. 10 11 * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added method declaration for -_webViewClose:. 12 * UIProcess/Cocoa/UIDelegate.h: Added override declaration for API::UIClient::close(). 13 * UIProcess/Cocoa/UIDelegate.mm: 14 (WebKit::UIDelegate::setDelegate): Wire up delegate method to Objective-C selector, -[WKUIDelegatePrivate _webViewClose:]. 15 (WebKit::UIDelegate::UIClient::close): Added; turns around and calls -[WKUIDelegatePrivate _webViewClose:] (if applicable). 16 1 17 2014-09-21 Chris Dumez <cdumez@apple.com> 2 18 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
r173662 r173851 45 45 - (void)_webView:(WKWebView *)webView printFrame:(_WKFrameHandle *)frame; 46 46 47 - (void)_webViewClose:(WKWebView *)webView; 48 47 49 #if TARGET_OS_IPHONE 48 50 - (NSArray *)_webView:(WKWebView *)webView actionsForElement:(_WKActivatedElementInfo *)element defaultActions:(NSArray *)defaultActions; -
trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.h
r170373 r173851 60 60 // API::UIClient 61 61 virtual PassRefPtr<WebKit::WebPageProxy> createNewPage(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, const WebKit::NavigationActionData&) override; 62 virtual void close(WebKit::WebPageProxy*) override; 62 63 virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void ()> completionHandler) override; 63 64 virtual void runJavaScriptConfirm(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void (bool)> completionHandler) override; … … 85 86 bool webViewDecideWebApplicationCacheQuotaForSecurityOriginCurrentQuotaTotalBytesNeeded : 1; 86 87 bool webViewPrintFrame : 1; 88 bool webViewClose : 1; 87 89 #if PLATFORM(IOS) 88 90 bool webViewActionsForElementDefaultActions : 1; -
trunk/Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm
r170774 r173851 72 72 m_delegateMethods.webViewDecideWebApplicationCacheQuotaForSecurityOriginCurrentQuotaTotalBytesNeeded = [delegate respondsToSelector:@selector(_webView:decideWebApplicationCacheQuotaForSecurityOrigin:currentQuota:totalBytesNeeded:decisionHandler:)]; 73 73 m_delegateMethods.webViewPrintFrame = [delegate respondsToSelector:@selector(_webView:printFrame:)]; 74 m_delegateMethods.webViewClose = [delegate respondsToSelector:@selector(_webViewClose:)]; 74 75 #if PLATFORM(IOS) 75 76 m_delegateMethods.webViewActionsForElementDefaultActions = [delegate respondsToSelector:@selector(_webView:actionsForElement:defaultActions:)]; … … 229 230 } 230 231 232 void UIDelegate::UIClient::close(WebKit::WebPageProxy*) 233 { 234 if (!m_uiDelegate.m_delegateMethods.webViewClose) 235 return; 236 237 auto delegate = m_uiDelegate.m_delegate.get(); 238 if (!delegate) 239 return; 240 241 [(id <WKUIDelegatePrivate>)delegate _webViewClose:m_uiDelegate.m_webView]; 242 } 243 231 244 #if PLATFORM(IOS) 232 245 RetainPtr<NSArray> UIDelegate::UIClient::actionsForElement(_WKActivatedElementInfo *elementInfo, RetainPtr<NSArray> defaultActions) -
trunk/Tools/ChangeLog
r173841 r173851 1 2014-09-22 Daniel Bates <dabates@apple.com> 2 3 [Cocoa] Add UI delegate callback when window.close() is called 4 https://bugs.webkit.org/show_bug.cgi?id=137008 5 <rdar://problem/17801001> 6 7 Reviewed by Anders Carlsson. 8 9 Add a test to ensure that -[WKUIDelegatePrivate _webViewClose:] is called on window.close() 10 for window opened via JavaScript (i.e. window.open()). 11 12 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 13 * TestWebKitAPI/Tests/WebKit2/open-and-close-window.html: Added. 14 * TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm: Added. 15 1 16 2014-09-22 Youenn Fablet <youennf@gmail.com> 2 17 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r173801 r173851 246 246 CE14F1A4181873B0001C2705 /* WillPerformClientRedirectToURLCrash.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = CE14F1A2181873B0001C2705 /* WillPerformClientRedirectToURLCrash.html */; }; 247 247 CE32C7C818184C4900CD8C28 /* WillPerformClientRedirectToURLCrash.mm in Sources */ = {isa = PBXBuildFile; fileRef = CE32C7C718184C4900CD8C28 /* WillPerformClientRedirectToURLCrash.mm */; }; 248 CEA6CF2319CCF5BD0064F5A7 /* OpenAndCloseWindow.mm in Sources */ = {isa = PBXBuildFile; fileRef = CEA6CF2219CCF5BD0064F5A7 /* OpenAndCloseWindow.mm */; }; 249 CEA6CF2819CCF69D0064F5A7 /* open-and-close-window.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = CEA6CF2719CCF69D0064F5A7 /* open-and-close-window.html */; }; 248 250 E1220DA0155B25480013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1220D9F155B25480013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.mm */; }; 249 251 E1220DCA155B28AA0013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = E1220DC9155B287D0013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.html */; }; … … 334 336 33E79E06137B5FD900E32D99 /* mouse-move-listener.html in Copy Resources */, 335 337 A57A34F216AF6B2B00C2501F /* PageVisibilityStateWithWindowChanges.html in Copy Resources */, 338 CEA6CF2819CCF69D0064F5A7 /* open-and-close-window.html in Copy Resources */, 336 339 F6FDDDD614241C6F004F1729 /* push-state.html in Copy Resources */, 337 340 52B8CF9815868D9100281053 /* SetDocumentURI.html in Copy Resources */, … … 612 615 CE14F1A2181873B0001C2705 /* WillPerformClientRedirectToURLCrash.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = WillPerformClientRedirectToURLCrash.html; sourceTree = "<group>"; }; 613 616 CE32C7C718184C4900CD8C28 /* WillPerformClientRedirectToURLCrash.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WillPerformClientRedirectToURLCrash.mm; sourceTree = "<group>"; }; 617 CEA6CF2219CCF5BD0064F5A7 /* OpenAndCloseWindow.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OpenAndCloseWindow.mm; sourceTree = "<group>"; }; 618 CEA6CF2719CCF69D0064F5A7 /* open-and-close-window.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "open-and-close-window.html"; sourceTree = "<group>"; }; 614 619 E1220D9F155B25480013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryCacheDisableWithinResourceLoadDelegate.mm; sourceTree = "<group>"; }; 615 620 E1220DC9155B287D0013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = MemoryCacheDisableWithinResourceLoadDelegate.html; sourceTree = "<group>"; }; … … 716 721 A1A4FE5D18DD3DB700B5EA8A /* Download.mm */, 717 722 1ABC3DED1899BE6D004F0626 /* Navigation.mm */, 723 CEA6CF2219CCF5BD0064F5A7 /* OpenAndCloseWindow.mm */, 718 724 C95501BE19AD2FAF0049BE3E /* Preferences.mm */, 719 725 7CC3E1FA197E234100BE6252 /* UserContentController.mm */, … … 969 975 2DD7D3AE178227AC0026E1E3 /* lots-of-text-vertical-lr.html */, 970 976 33E79E05137B5FCE00E32D99 /* mouse-move-listener.html */, 977 CEA6CF2719CCF69D0064F5A7 /* open-and-close-window.html */, 971 978 F6FDDDD514241C48004F1729 /* push-state.html */, 972 979 1ADBEFBC130C6A0100D61D19 /* simple-accelerated-compositing.html */, … … 1382 1389 A5E2027315B2181900C13E14 /* WindowlessWebViewWithMedia.mm in Sources */, 1383 1390 F6B7BE9417469209008A3445 /* DidAssociateFormControls.cpp in Sources */, 1391 CEA6CF2319CCF5BD0064F5A7 /* OpenAndCloseWindow.mm in Sources */, 1384 1392 BC3C4C7F14587AA60025FB62 /* WKBrowsingContextGroupTest.mm in Sources */, 1385 1393 BC3C4C7214575B6A0025FB62 /* WKBrowsingContextLoadDelegateTest.mm in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.