Changeset 185721 in webkit
- Timestamp:
- Jun 18, 2015 1:59:12 PM (9 years ago)
- Location:
- trunk/Source
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r185719 r185721 1 2015-06-18 Anders Carlsson <andersca@apple.com> 2 3 Remove shouldInterruptJavaScript 4 https://bugs.webkit.org/show_bug.cgi?id=146118 5 6 Reviewed by Antti Koivisto. 7 8 The WebKit SPI methods for deciding whether JavaScript execution should be interrupted hasn't been used 9 for many releases. Furthermore, they don't make sense in the multi-process architecture since it's still possible 10 to interrupt execution (by closing the browser tab or window) from the UI process. 11 12 * bindings/js/JSDOMWindowBase.cpp: 13 (WebCore::JSDOMWindowBase::shouldInterruptScript): 14 * loader/EmptyClients.h: 15 * page/Chrome.cpp: 16 (WebCore::Chrome::shouldInterruptJavaScript): Deleted. 17 * page/Chrome.h: 18 * page/ChromeClient.h: 19 1 20 2015-06-18 Benjamin Poulain <bpoulain@apple.com> 2 21 -
trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp
r185346 r185721 150 150 ASSERT(thisObject->impl().frame()); 151 151 Page* page = thisObject->impl().frame()->page(); 152 return shouldInterruptScriptToPreventInfiniteRecursionWhenClosingPage(page) || page->chrome().shouldInterruptJavaScript();152 return shouldInterruptScriptToPreventInfiniteRecursionWhenClosingPage(page); 153 153 } 154 154 -
trunk/Source/WebCore/loader/EmptyClients.h
r185542 r185721 115 115 virtual bool runJavaScriptConfirm(Frame*, const String&) override { return false; } 116 116 virtual bool runJavaScriptPrompt(Frame*, const String&, const String&, String&) override { return false; } 117 virtual bool shouldInterruptJavaScript() override { return false; }118 117 119 118 virtual bool selectItemWritingDirectionIsNatural() override { return false; } -
trunk/Source/WebCore/page/Chrome.cpp
r185337 r185721 348 348 } 349 349 350 bool Chrome::shouldInterruptJavaScript()351 {352 // Defer loads in case the client method runs a new event loop that would353 // otherwise cause the load to continue while we're in the middle of executing JavaScript.354 PageGroupLoadDeferrer deferrer(m_page, true);355 356 return m_client.shouldInterruptJavaScript();357 }358 359 350 IntRect Chrome::windowResizerRect() const 360 351 { -
trunk/Source/WebCore/page/Chrome.h
r185337 r185721 146 146 bool runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result); 147 147 WEBCORE_EXPORT void setStatusbarText(Frame*, const String&); 148 bool shouldInterruptJavaScript();149 148 150 149 IntRect windowResizerRect() const; -
trunk/Source/WebCore/page/ChromeClient.h
r185337 r185721 147 147 virtual bool runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result) = 0; 148 148 virtual void setStatusbarText(const String&) = 0; 149 virtual bool shouldInterruptJavaScript() = 0;150 149 virtual KeyboardUIMode keyboardUIMode() = 0; 151 150 -
trunk/Source/WebKit/mac/ChangeLog
r185714 r185721 1 2015-06-18 Anders Carlsson <andersca@apple.com> 2 3 Remove shouldInterruptJavaScript 4 https://bugs.webkit.org/show_bug.cgi?id=146118 5 6 Reviewed by Antti Koivisto. 7 8 * WebCoreSupport/WebChromeClient.h: 9 * WebCoreSupport/WebChromeClient.mm: 10 (WebChromeClient::shouldInterruptJavaScript): Deleted. 11 * WebView/WebUIDelegatePrivate.h: 12 1 13 2015-06-17 Alex Christensen <achristensen@webkit.org> 2 14 -
trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h
r184670 r185721 90 90 virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&) override; 91 91 virtual bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String& message, const WTF::String& defaultValue, WTF::String& result) override; 92 virtual bool shouldInterruptJavaScript() override;93 92 94 93 virtual WebCore::IntRect windowResizerRect() const override; -
trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm
r185714 r185721 549 549 } 550 550 551 bool WebChromeClient::shouldInterruptJavaScript()552 {553 return CallUIDelegateReturningBoolean(NO, m_webView, @selector(webViewShouldInterruptJavaScript:));554 }555 556 551 void WebChromeClient::setStatusbarText(const String& status) 557 552 { -
trunk/Source/WebKit/mac/WebView/WebUIDelegatePrivate.h
r184780 r185721 215 215 - (void)webView:(WebView *)sender didDrawRect:(NSRect)rect; 216 216 - (void)webView:(WebView *)sender didScrollDocumentInFrameView:(WebFrameView *)frameView; 217 // FIXME: If we ever make this method public, it should include a WebFrame parameter.218 - (BOOL)webViewShouldInterruptJavaScript:(WebView *)sender;219 217 #if !TARGET_OS_IPHONE 220 218 - (void)webView:(WebView *)sender willPopupMenu:(NSMenu *)menu; -
trunk/Source/WebKit/win/ChangeLog
r185691 r185721 1 2015-06-18 Anders Carlsson <andersca@apple.com> 2 3 Remove shouldInterruptJavaScript 4 https://bugs.webkit.org/show_bug.cgi?id=146118 5 6 Reviewed by Antti Koivisto. 7 8 * Interfaces/IWebUIDelegatePrivate.idl: 9 * WebCoreSupport/WebChromeClient.cpp: 10 (WebChromeClient::shouldInterruptJavaScript): Deleted. 11 * WebCoreSupport/WebChromeClient.h: 12 1 13 2015-06-17 Hyungwook Lee <hyungwook.lee@navercorp.com> 2 14 -
trunk/Source/WebKit/win/Interfaces/IWebUIDelegatePrivate.idl
r172977 r185721 55 55 HRESULT webViewScrolled([in] IWebView* sender); 56 56 HRESULT webViewAddMessageToConsole([in] IWebView* sender, [in] BSTR message, [in] int lineNumber, [in] BSTR url, [in] BOOL isError); 57 HRESULT webViewShouldInterruptJavaScript([in] IWebView* sender, [out, retval] BOOL* result);57 HRESULT unused3(); 58 58 HRESULT webViewReceivedFocus([in] IWebView* sender); 59 59 HRESULT webViewLostFocus([in] IWebView* sender, [in] HWND loseFocusToHWnd); … … 63 63 HRESULT exceededDatabaseQuota([in] IWebView* sender, [in] IWebFrame* frame, [in] IWebSecurityOrigin* origin, [in] BSTR databaseIdentifier); 64 64 HRESULT embeddedViewWithArguments([in] IWebView* sender, [in] IWebFrame* frame, [in] IPropertyBag* arguments, [out, retval] IWebEmbeddedView** view); 65 HRESULT unused 3();65 HRESULT unused4(); 66 66 HRESULT webViewClosing([in] IWebView* sender); 67 67 HRESULT webViewSetCursor([in] IWebView* sender, [in] HCURSOR cursor); -
trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp
r183234 r185721 432 432 } 433 433 434 bool WebChromeClient::shouldInterruptJavaScript()435 {436 COMPtr<IWebUIDelegate> uiDelegate;437 if (SUCCEEDED(m_webView->uiDelegate(&uiDelegate))) {438 COMPtr<IWebUIDelegatePrivate> uiPrivate;439 if (SUCCEEDED(uiDelegate->QueryInterface(IID_IWebUIDelegatePrivate, (void**)&uiPrivate))) {440 BOOL result;441 if (SUCCEEDED(uiPrivate->webViewShouldInterruptJavaScript(m_webView, &result)))442 return !!result;443 }444 }445 return false;446 }447 448 434 KeyboardUIMode WebChromeClient::keyboardUIMode() 449 435 { -
trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.h
r183529 r185721 89 89 virtual bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String& message, const WTF::String& defaultValue, WTF::String& result); 90 90 virtual void setStatusbarText(const WTF::String&); 91 virtual bool shouldInterruptJavaScript();92 91 93 92 virtual WebCore::KeyboardUIMode keyboardUIMode(); -
trunk/Source/WebKit2/ChangeLog
r185706 r185721 1 2015-06-18 Anders Carlsson <andersca@apple.com> 2 3 Remove shouldInterruptJavaScript 4 https://bugs.webkit.org/show_bug.cgi?id=146118 5 6 Reviewed by Antti Koivisto. 7 8 * UIProcess/API/APIUIClient.h: 9 (API::UIClient::shouldInterruptJavaScript): Deleted. 10 * UIProcess/API/C/WKPage.cpp: 11 (WKPageSetPageUIClient): Deleted. 12 * UIProcess/API/C/WKPageUIClient.h: 13 * UIProcess/WebPageProxy.cpp: 14 (WebKit::WebPageProxy::shouldInterruptJavaScript): Deleted. 15 * UIProcess/WebPageProxy.h: 16 * UIProcess/WebPageProxy.messages.in: 17 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 18 (WebKit::WebChromeClient::shouldInterruptJavaScript): Deleted. 19 * WebProcess/WebCoreSupport/WebChromeClient.h: 20 1 21 2015-06-18 Tim Horton <timothy_horton@apple.com> 2 22 -
trunk/Source/WebKit2/UIProcess/API/APIUIClient.h
r181408 r185721 142 142 virtual void saveDataToFileInDownloadsFolder(WebKit::WebPageProxy*, const WTF::String&, const WTF::String&, const WTF::String&, API::Data*) { } 143 143 144 virtual bool shouldInterruptJavaScript(WebKit::WebPageProxy*) { return false; }145 146 144 virtual void pinnedStateDidChange(WebKit::WebPageProxy&) { } 147 145 -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp
r185554 r185721 1730 1730 } 1731 1731 1732 virtual bool shouldInterruptJavaScript(WebPageProxy* page) override1733 {1734 if (!m_client.shouldInterruptJavaScript)1735 return false;1736 1737 return m_client.shouldInterruptJavaScript(toAPI(page), m_client.base.clientInfo);1738 }1739 1740 1732 virtual void pinnedStateDidChange(WebPageProxy& page) override 1741 1733 { -
trunk/Source/WebKit2/UIProcess/API/C/WKPageUIClient.h
r181408 r185721 81 81 typedef void (*WKPagePrintFrameCallback)(WKPageRef page, WKFrameRef frame, const void* clientInfo); 82 82 typedef void (*WKPageSaveDataToFileInDownloadsFolderCallback)(WKPageRef page, WKStringRef suggestedFilename, WKStringRef mimeType, WKURLRef originatingURL, WKDataRef data, const void* clientInfo); 83 typedef bool (*WKPageShouldInterruptJavaScriptCallback)(WKPageRef page, const void *clientInfo);84 83 typedef void (*WKPageDecidePolicyForNotificationPermissionRequestCallback)(WKPageRef page, WKSecurityOriginRef origin, WKNotificationPermissionRequestRef permissionRequest, const void *clientInfo); 85 84 typedef void (*WKPageShowColorPickerCallback)(WKPageRef page, WKStringRef initialColor, WKColorPickerResultListenerRef listener, const void* clientInfo); … … 147 146 void* unused1; // Used to be didCompleteRubberBandForMainFrame 148 147 WKPageSaveDataToFileInDownloadsFolderCallback saveDataToFileInDownloadsFolder; 149 WKPageShouldInterruptJavaScriptCallback shouldInterruptJavaScript;148 void* shouldInterruptJavaScript_unavailable; 150 149 } WKPageUIClientV0; 151 150 … … 192 191 void* unused1; // Used to be didCompleteRubberBandForMainFrame 193 192 WKPageSaveDataToFileInDownloadsFolderCallback saveDataToFileInDownloadsFolder; 194 WKPageShouldInterruptJavaScriptCallback shouldInterruptJavaScript;193 void* shouldInterruptJavaScript_unavailable; 195 194 196 195 // Version 1. … … 243 242 void* unused1; // Used to be didCompleteRubberBandForMainFrame 244 243 WKPageSaveDataToFileInDownloadsFolderCallback saveDataToFileInDownloadsFolder; 245 WKPageShouldInterruptJavaScriptCallback shouldInterruptJavaScript;244 void* shouldInterruptJavaScript_unavailable; 246 245 247 246 // Version 1. … … 299 298 void* unused1; // Used to be didCompleteRubberBandForMainFrame 300 299 WKPageSaveDataToFileInDownloadsFolderCallback saveDataToFileInDownloadsFolder; 301 WKPageShouldInterruptJavaScriptCallback shouldInterruptJavaScript;300 void* shouldInterruptJavaScript_unavailable; 302 301 303 302 // Version 1. … … 358 357 void* unused1; // Used to be didCompleteRubberBandForMainFrame 359 358 WKPageSaveDataToFileInDownloadsFolderCallback saveDataToFileInDownloadsFolder; 360 WKPageShouldInterruptJavaScriptCallback shouldInterruptJavaScript;359 void* shouldInterruptJavaScript_unavailable; 361 360 362 361 // Version 1. … … 423 422 void* unused1; // Used to be didCompleteRubberBandForMainFrame 424 423 WKPageSaveDataToFileInDownloadsFolderCallback saveDataToFileInDownloadsFolder; 425 WKPageShouldInterruptJavaScriptCallback shouldInterruptJavaScript;424 void* shouldInterruptJavaScript_unavailable; 426 425 427 426 // Version 1. … … 494 493 void* unused1; // Used to be didCompleteRubberBandForMainFrame 495 494 WKPageSaveDataToFileInDownloadsFolderCallback saveDataToFileInDownloadsFolder; 496 WKPageShouldInterruptJavaScriptCallback shouldInterruptJavaScript;495 void* shouldInterruptJavaScript_unavailable; 497 496 498 497 // Version 1. -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r185637 r185721 3498 3498 } 3499 3499 3500 void WebPageProxy::shouldInterruptJavaScript(bool& result)3501 {3502 // Since shouldInterruptJavaScript() can spin a nested run loop we need to turn off the responsiveness timer.3503 m_process->responsivenessTimer()->stop();3504 3505 result = m_uiClient->shouldInterruptJavaScript(this);3506 }3507 3508 3500 void WebPageProxy::setStatusText(const String& text) 3509 3501 { -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r185661 r185721 1142 1142 void runJavaScriptConfirm(uint64_t frameID, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptConfirm::DelayedReply>); 1143 1143 void runJavaScriptPrompt(uint64_t frameID, const String&, const String&, RefPtr<Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply>); 1144 void shouldInterruptJavaScript(bool& result);1145 1144 void setStatusText(const String&); 1146 1145 void mouseDidMoveOverElement(const WebHitTestResult::Data& hitTestResultData, uint32_t modifiers, const UserData&); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in
r185661 r185721 29 29 RunJavaScriptConfirm(uint64_t frameID, String message) -> (bool result) Delayed 30 30 RunJavaScriptPrompt(uint64_t frameID, String message, String defaultValue) -> (String result) Delayed 31 ShouldInterruptJavaScript() -> (bool shouldInterupt)32 31 MouseDidMoveOverElement(WebKit::WebHitTestResult::Data hitTestResultData, uint32_t modifiers, WebKit::UserData userData) 33 32 -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
r185479 r185721 422 422 } 423 423 424 bool WebChromeClient::shouldInterruptJavaScript()425 {426 bool shouldInterrupt = false;427 if (!WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::ShouldInterruptJavaScript(), Messages::WebPageProxy::ShouldInterruptJavaScript::Reply(shouldInterrupt), m_page->pageID()))428 return false;429 430 return shouldInterrupt;431 }432 433 424 KeyboardUIMode WebChromeClient::keyboardUIMode() 434 425 { -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
r184670 r185721 102 102 virtual bool runJavaScriptPrompt(WebCore::Frame*, const String& message, const String& defaultValue, String& result) override; 103 103 virtual void setStatusbarText(const String&) override; 104 virtual bool shouldInterruptJavaScript() override;105 104 106 105 virtual WebCore::KeyboardUIMode keyboardUIMode() override;
Note: See TracChangeset
for help on using the changeset viewer.