Changeset 276151 in webkit
- Timestamp:
- Apr 16, 2021, 12:04:10 PM (5 years ago)
- Location:
- branches/safari-611-branch/Source
- Files:
-
- 19 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/platform/cocoa/VersionChecks.h (modified) (2 diffs)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/UIProcess/Cocoa/UIDelegate.mm (modified) (3 diffs)
-
WebKit/UIProcess/PageClient.h (modified) (1 diff)
-
WebKit/UIProcess/WebPageProxy.cpp (modified) (2 diffs)
-
WebKit/UIProcess/WebPageProxy.h (modified) (5 diffs)
-
WebKit/UIProcess/WebPageProxy.messages.in (modified) (1 diff)
-
WebKit/UIProcess/ios/PageClientImplIOS.h (modified) (1 diff)
-
WebKit/UIProcess/ios/PageClientImplIOS.mm (modified) (1 diff)
-
WebKit/UIProcess/ios/WebPageProxyIOS.mm (modified) (1 diff)
-
WebKit/UIProcess/mac/PageClientImplMac.h (modified) (1 diff)
-
WebKit/UIProcess/mac/PageClientImplMac.mm (modified) (1 diff)
-
WebKit/UIProcess/mac/WebPageProxyMac.mm (modified) (1 diff)
-
WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (modified) (3 diffs)
-
WebKit/WebProcess/WebPage/WebPage.cpp (modified) (1 diff)
-
WebKit/WebProcess/WebPage/WebPage.h (modified) (3 diffs)
-
WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (modified) (1 diff)
-
WebKit/WebProcess/WebPage/mac/WebPageMac.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-611-branch/Source/WebCore/ChangeLog
r276150 r276151 572 572 * rendering/line/BreakingContext.h: 573 573 (WebCore::BreakingContext::handleEndOfLine): 574 575 2021-04-15 Russell Epstein <repstein@apple.com>576 577 Cherry-pick r275485. rdar://problem/76412930578 579 Make sure we no longer show the previous page when running a JS prompt580 https://bugs.webkit.org/show_bug.cgi?id=215782581 <rdar://problem/67698601>582 583 Reviewed by Darin Adler.584 585 Source/WebCore:586 587 Add linked-on-after check for the behavior change to minimize the risk of588 breakage.589 590 * platform/cocoa/VersionChecks.h:591 592 Source/WebKit:593 594 Make sure we no longer show the previous page when running a JS prompt.595 If we have not yet done a layer tree commit since the last load commit, then596 we are likely still showing the previous page. If we are asked to run a JS597 prompt / alert / confirm at this point, it would be confusing to still show598 the previous page. In order to address the issue, we now make the view blank599 in such scenario (ideally, we'd have painted the new page but this is600 currently not a trivial thing to do).601 602 To make the view blank, the approach chosen is the set the opacity of our603 root layer to 0 when the JS prompt is requested (before the first paint) and604 set the opacity back to 1 after the first paint.605 606 To minimize the risks of breakage, the behavior change is behind a607 linked-on-after check. Also, we only trigger this behavior if the WKWebView608 client actually implements the corresponding JS prompt delegate.609 610 * UIProcess/Cocoa/UIDelegate.mm:611 (WebKit::UIDelegate::UIClient::runJavaScriptAlert):612 (WebKit::UIDelegate::UIClient::runJavaScriptConfirm):613 (WebKit::UIDelegate::UIClient::runJavaScriptPrompt):614 * UIProcess/PageClient.h:615 (WebKit::PageClient::makeViewBlank):616 * UIProcess/WebPageProxy.cpp:617 (WebKit::WebPageProxy::stopMakingViewBlankDueToLackOfRenderingUpdate):618 (WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit):619 (WebKit::WebPageProxy::didCommitLoadForFrame):620 (WebKit::WebPageProxy::runJavaScriptAlert):621 * UIProcess/WebPageProxy.h:622 * UIProcess/WebPageProxy.messages.in:623 * UIProcess/ios/PageClientImplIOS.h:624 * UIProcess/ios/PageClientImplIOS.mm:625 (WebKit::PageClientImpl::makeViewBlank):626 * UIProcess/ios/WebPageProxyIOS.mm:627 (WebKit::WebPageProxy::didCommitLayerTree):628 * UIProcess/mac/PageClientImplMac.h:629 * UIProcess/mac/PageClientImplMac.mm:630 (WebKit::PageClientImpl::makeViewBlank):631 * UIProcess/mac/WebPageProxyMac.mm:632 (WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):633 * WebProcess/WebCoreSupport/WebChromeClient.cpp:634 (WebKit::WebChromeClient::runJavaScriptAlert):635 (WebKit::WebChromeClient::runJavaScriptConfirm):636 (WebKit::WebChromeClient::runJavaScriptPrompt):637 Add flag to make sure pending async messages are processed *before* the JS prompt sync IPCs.638 Without this, it was possible for the UIProcess to receive the JS prompt IPC *before* the639 DidCommitLoadForFrame IPC, which would confuse our logic, since we would think this is a JS640 prompt for the previous page.641 642 * WebProcess/WebPage/WebPage.cpp:643 (WebKit::WebPage::didCommitLoad):644 * WebProcess/WebPage/WebPage.h:645 (WebKit::WebPage::sendSyncWithDelayedReply):646 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:647 (WebKit::TiledCoreAnimationDrawingArea::updateRendering):648 * WebProcess/WebPage/mac/WebPageMac.mm:649 (WebKit::WebPage::didUpdateRendering):650 651 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275485 268f45cc-cd09-0410-ab3c-d52691b4dbfc652 653 2021-04-05 Chris Dumez <cdumez@apple.com>654 655 Make sure we no longer show the previous page when running a JS prompt656 https://bugs.webkit.org/show_bug.cgi?id=215782657 <rdar://problem/67698601>658 659 Reviewed by Darin Adler.660 661 Add linked-on-after check for the behavior change to minimize the risk of662 breakage.663 664 * platform/cocoa/VersionChecks.h:665 574 666 575 2021-04-15 Russell Epstein <repstein@apple.com> -
branches/safari-611-branch/Source/WebCore/platform/cocoa/VersionChecks.h
r276076 r276151 70 70 FirstWithoutWeChatScrollingQuirk = DYLD_IOS_VERSION_14_5, 71 71 FirstWithSharedNetworkProcess = DYLD_IOS_VERSION_14_5, 72 FirstWithBlankViewOnJSPrompt = DYLD_IOS_VERSION_14_5,73 72 #elif PLATFORM(MAC) 74 73 FirstWithNetworkCache = DYLD_MACOSX_VERSION_10_11, … … 90 89 FirstWithDataURLFragmentRemoval = DYLD_MACOSX_VERSION_11_3, 91 90 FirstWithHTMLDocumentSupportedPropertyNames = DYLD_MACOSX_VERSION_11_3, 92 FirstWithBlankViewOnJSPrompt = DYLD_MACOSX_VERSION_11_3,93 91 #endif 94 92 }; -
branches/safari-611-branch/Source/WebKit/ChangeLog
r276116 r276151 153 153 (-[_WKRemoteObjectInterface _allowedArgumentClassesForReplyBlockOfSelector:]): 154 154 * Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h: 155 156 2021-04-15 Russell Epstein <repstein@apple.com>157 158 Cherry-pick r275485. rdar://problem/76412930159 160 Make sure we no longer show the previous page when running a JS prompt161 https://bugs.webkit.org/show_bug.cgi?id=215782162 <rdar://problem/67698601>163 164 Reviewed by Darin Adler.165 166 Source/WebCore:167 168 Add linked-on-after check for the behavior change to minimize the risk of169 breakage.170 171 * platform/cocoa/VersionChecks.h:172 173 Source/WebKit:174 175 Make sure we no longer show the previous page when running a JS prompt.176 If we have not yet done a layer tree commit since the last load commit, then177 we are likely still showing the previous page. If we are asked to run a JS178 prompt / alert / confirm at this point, it would be confusing to still show179 the previous page. In order to address the issue, we now make the view blank180 in such scenario (ideally, we'd have painted the new page but this is181 currently not a trivial thing to do).182 183 To make the view blank, the approach chosen is the set the opacity of our184 root layer to 0 when the JS prompt is requested (before the first paint) and185 set the opacity back to 1 after the first paint.186 187 To minimize the risks of breakage, the behavior change is behind a188 linked-on-after check. Also, we only trigger this behavior if the WKWebView189 client actually implements the corresponding JS prompt delegate.190 191 * UIProcess/Cocoa/UIDelegate.mm:192 (WebKit::UIDelegate::UIClient::runJavaScriptAlert):193 (WebKit::UIDelegate::UIClient::runJavaScriptConfirm):194 (WebKit::UIDelegate::UIClient::runJavaScriptPrompt):195 * UIProcess/PageClient.h:196 (WebKit::PageClient::makeViewBlank):197 * UIProcess/WebPageProxy.cpp:198 (WebKit::WebPageProxy::stopMakingViewBlankDueToLackOfRenderingUpdate):199 (WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit):200 (WebKit::WebPageProxy::didCommitLoadForFrame):201 (WebKit::WebPageProxy::runJavaScriptAlert):202 * UIProcess/WebPageProxy.h:203 * UIProcess/WebPageProxy.messages.in:204 * UIProcess/ios/PageClientImplIOS.h:205 * UIProcess/ios/PageClientImplIOS.mm:206 (WebKit::PageClientImpl::makeViewBlank):207 * UIProcess/ios/WebPageProxyIOS.mm:208 (WebKit::WebPageProxy::didCommitLayerTree):209 * UIProcess/mac/PageClientImplMac.h:210 * UIProcess/mac/PageClientImplMac.mm:211 (WebKit::PageClientImpl::makeViewBlank):212 * UIProcess/mac/WebPageProxyMac.mm:213 (WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):214 * WebProcess/WebCoreSupport/WebChromeClient.cpp:215 (WebKit::WebChromeClient::runJavaScriptAlert):216 (WebKit::WebChromeClient::runJavaScriptConfirm):217 (WebKit::WebChromeClient::runJavaScriptPrompt):218 Add flag to make sure pending async messages are processed *before* the JS prompt sync IPCs.219 Without this, it was possible for the UIProcess to receive the JS prompt IPC *before* the220 DidCommitLoadForFrame IPC, which would confuse our logic, since we would think this is a JS221 prompt for the previous page.222 223 * WebProcess/WebPage/WebPage.cpp:224 (WebKit::WebPage::didCommitLoad):225 * WebProcess/WebPage/WebPage.h:226 (WebKit::WebPage::sendSyncWithDelayedReply):227 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:228 (WebKit::TiledCoreAnimationDrawingArea::updateRendering):229 * WebProcess/WebPage/mac/WebPageMac.mm:230 (WebKit::WebPage::didUpdateRendering):231 232 git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275485 268f45cc-cd09-0410-ab3c-d52691b4dbfc233 234 2021-04-05 Chris Dumez <cdumez@apple.com>235 236 Make sure we no longer show the previous page when running a JS prompt237 https://bugs.webkit.org/show_bug.cgi?id=215782238 <rdar://problem/67698601>239 240 Reviewed by Darin Adler.241 242 Make sure we no longer show the previous page when running a JS prompt.243 If we have not yet done a layer tree commit since the last load commit, then244 we are likely still showing the previous page. If we are asked to run a JS245 prompt / alert / confirm at this point, it would be confusing to still show246 the previous page. In order to address the issue, we now make the view blank247 in such scenario (ideally, we'd have painted the new page but this is248 currently not a trivial thing to do).249 250 To make the view blank, the approach chosen is the set the opacity of our251 root layer to 0 when the JS prompt is requested (before the first paint) and252 set the opacity back to 1 after the first paint.253 254 To minimize the risks of breakage, the behavior change is behind a255 linked-on-after check. Also, we only trigger this behavior if the WKWebView256 client actually implements the corresponding JS prompt delegate.257 258 * UIProcess/Cocoa/UIDelegate.mm:259 (WebKit::UIDelegate::UIClient::runJavaScriptAlert):260 (WebKit::UIDelegate::UIClient::runJavaScriptConfirm):261 (WebKit::UIDelegate::UIClient::runJavaScriptPrompt):262 * UIProcess/PageClient.h:263 (WebKit::PageClient::makeViewBlank):264 * UIProcess/WebPageProxy.cpp:265 (WebKit::WebPageProxy::stopMakingViewBlankDueToLackOfRenderingUpdate):266 (WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit):267 (WebKit::WebPageProxy::didCommitLoadForFrame):268 (WebKit::WebPageProxy::runJavaScriptAlert):269 * UIProcess/WebPageProxy.h:270 * UIProcess/WebPageProxy.messages.in:271 * UIProcess/ios/PageClientImplIOS.h:272 * UIProcess/ios/PageClientImplIOS.mm:273 (WebKit::PageClientImpl::makeViewBlank):274 * UIProcess/ios/WebPageProxyIOS.mm:275 (WebKit::WebPageProxy::didCommitLayerTree):276 * UIProcess/mac/PageClientImplMac.h:277 * UIProcess/mac/PageClientImplMac.mm:278 (WebKit::PageClientImpl::makeViewBlank):279 * UIProcess/mac/WebPageProxyMac.mm:280 (WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):281 * WebProcess/WebCoreSupport/WebChromeClient.cpp:282 (WebKit::WebChromeClient::runJavaScriptAlert):283 (WebKit::WebChromeClient::runJavaScriptConfirm):284 (WebKit::WebChromeClient::runJavaScriptPrompt):285 Add flag to make sure pending async messages are processed *before* the JS prompt sync IPCs.286 Without this, it was possible for the UIProcess to receive the JS prompt IPC *before* the287 DidCommitLoadForFrame IPC, which would confuse our logic, since we would think this is a JS288 prompt for the previous page.289 290 * WebProcess/WebPage/WebPage.cpp:291 (WebKit::WebPage::didCommitLoad):292 * WebProcess/WebPage/WebPage.h:293 (WebKit::WebPage::sendSyncWithDelayedReply):294 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:295 (WebKit::TiledCoreAnimationDrawingArea::updateRendering):296 * WebProcess/WebPage/mac/WebPageMac.mm:297 (WebKit::WebPage::didUpdateRendering):298 155 299 156 2021-04-15 Russell Epstein <repstein@apple.com> -
branches/safari-611-branch/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
r276076 r276151 302 302 } 303 303 304 page.makeViewBlankIfUnpaintedSinceLastLoadCommit();305 306 304 auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)); 307 305 [delegate webView:m_uiDelegate->m_webView.get().get() runJavaScriptAlertPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(WTFMove(frameInfo), &page)) completionHandler:makeBlockPtr([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] { … … 329 327 } 330 328 331 page.makeViewBlankIfUnpaintedSinceLastLoadCommit();332 333 329 auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:)); 334 330 [delegate webView:m_uiDelegate->m_webView.get().get() runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:wrapper(API::FrameInfo::create(WTFMove(frameInfo), &page)) completionHandler:makeBlockPtr([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] (BOOL result) mutable { … … 355 351 return; 356 352 } 357 358 page.makeViewBlankIfUnpaintedSinceLastLoadCommit();359 353 360 354 auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:)); -
branches/safari-611-branch/Source/WebKit/UIProcess/PageClient.h
r276076 r276151 504 504 virtual void setMouseEventPolicy(WebCore::MouseEventPolicy) { } 505 505 506 virtual void makeViewBlank(bool) { }507 508 506 #if PLATFORM(MAC) 509 507 virtual void didPerformImmediateActionHitTest(const WebHitTestResultData&, bool contentPreventsDefault, API::Object*) = 0; -
branches/safari-611-branch/Source/WebKit/UIProcess/WebPageProxy.cpp
r276076 r276151 2396 2396 #endif 2397 2397 2398 void WebPageProxy::stopMakingViewBlankDueToLackOfRenderingUpdate()2399 {2400 #if PLATFORM(COCOA)2401 ASSERT(m_hasUpdatedRenderingAfterDidCommitLoad);2402 RELEASE_LOG_IF_ALLOWED(Process, "stopMakingViewBlankDueToLackOfRenderingUpdate:");2403 pageClient().makeViewBlank(false);2404 #endif2405 }2406 2407 // If we have not painted yet since the last load commit, then we are likely still displaying the previous page.2408 // Displaying a JS prompt for the new page with the old page behind would be confusing so we make the view blank2409 // until the next paint in such case.2410 void WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit()2411 {2412 #if PLATFORM(COCOA)2413 if (!m_hasUpdatedRenderingAfterDidCommitLoad) {2414 static bool shouldMakeViewBlank = linkedOnOrAfter(WebCore::SDKVersion::FirstWithBlankViewOnJSPrompt);2415 if (shouldMakeViewBlank) {2416 RELEASE_LOG_IF_ALLOWED(Process, "makeViewBlankIfUnpaintedSinceLastLoadCommit: Making the view blank because of a JS prompt before the first paint for its page");2417 pageClient().makeViewBlank(true);2418 }2419 }2420 #endif2421 }2422 2423 2398 void WebPageProxy::discardQueuedMouseEvents() 2424 2399 { … … 4654 4629 m_process->didCommitProvisionalLoad(); 4655 4630 4656 #if PLATFORM( COCOA)4631 #if PLATFORM(IOS_FAMILY) 4657 4632 if (frame->isMainFrame()) { 4658 m_hasUpdatedRenderingAfterDidCommitLoad = false; 4659 #if PLATFORM(IOS_FAMILY) 4633 m_hasReceivedLayerTreeTransactionAfterDidCommitLoad = false; 4660 4634 m_firstLayerTreeTransactionIdAfterDidCommitLoad = downcast<RemoteLayerTreeDrawingAreaProxy>(*drawingArea()).nextLayerTreeTransactionID(); 4661 #endif4662 4635 } 4663 4636 #endif -
branches/safari-611-branch/Source/WebKit/UIProcess/WebPageProxy.h
r276076 r276151 575 575 576 576 WeakPtr<SecKeyProxyStore> secKeyProxyStore(const WebCore::AuthenticationChallenge&); 577 578 void makeViewBlankIfUnpaintedSinceLastLoadCommit();579 577 580 578 void close(); … … 2121 2119 #endif 2122 2120 2123 void stopMakingViewBlankDueToLackOfRenderingUpdate();2124 2125 2121 // Spelling and grammar. 2126 2122 void checkSpellingOfString(const String& text, CompletionHandler<void(int32_t misspellingLocation, int32_t misspellingLength)>&&); … … 2154 2150 #endif 2155 2151 #if PLATFORM(MAC) 2156 void didUpdateRenderingAfterCommittingLoad();2157 2152 void fontAtSelectionCallback(const FontInfo&, double, bool, CallbackID); 2158 2153 #endif … … 2455 2450 TransactionID m_firstLayerTreeTransactionIdAfterDidCommitLoad; 2456 2451 int32_t m_deviceOrientation { 0 }; 2452 bool m_hasReceivedLayerTreeTransactionAfterDidCommitLoad { true }; 2457 2453 bool m_hasNetworkRequestsOnSuspended { false }; 2458 2454 bool m_isKeyboardAnimatingIn { false }; … … 2578 2574 bool m_isInPrintingMode { false }; 2579 2575 bool m_isPerformingDOMPrintOperation { false }; 2580 2581 #if PLATFORM(COCOA)2582 bool m_hasUpdatedRenderingAfterDidCommitLoad { true };2583 #endif2584 2576 2585 2577 WebCore::ResourceRequest m_decidePolicyForResponseRequest; -
branches/safari-611-branch/Source/WebKit/UIProcess/WebPageProxy.messages.in
r276076 r276151 377 377 378 378 SetEditableElementIsFocused(bool editableElementIsFocused) 379 DidUpdateRenderingAfterCommittingLoad()380 379 #endif 381 380 -
branches/safari-611-branch/Source/WebKit/UIProcess/ios/PageClientImplIOS.h
r276076 r276151 145 145 LayerHostingMode viewLayerHostingMode() override { return LayerHostingMode::OutOfProcess; } 146 146 147 void makeViewBlank(bool) final;148 149 147 RefPtr<ViewSnapshot> takeViewSnapshot(Optional<WebCore::IntRect>&&) override; 150 148 void wheelEventWasNotHandledByWebCore(const NativeWebWheelEvent&) override; -
branches/safari-611-branch/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
r276076 r276151 476 476 } 477 477 478 void PageClientImpl::makeViewBlank(bool makeBlank)479 {480 [m_contentView layer].opacity = makeBlank ? 0 : 1;481 }482 483 478 void PageClientImpl::showSafeBrowsingWarning(const SafeBrowsingWarning& warning, CompletionHandler<void(Variant<WebKit::ContinueUnsafeLoad, URL>&&)>&& completionHandler) 484 479 { -
branches/safari-611-branch/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
r276076 r276151 338 338 m_pageExtendedBackgroundColor = layerTreeTransaction.pageExtendedBackgroundColor(); 339 339 340 if (!m_has UpdatedRenderingAfterDidCommitLoad) {340 if (!m_hasReceivedLayerTreeTransactionAfterDidCommitLoad) { 341 341 if (layerTreeTransaction.transactionID() >= m_firstLayerTreeTransactionIdAfterDidCommitLoad) { 342 m_hasUpdatedRenderingAfterDidCommitLoad = true; 343 stopMakingViewBlankDueToLackOfRenderingUpdate(); 342 m_hasReceivedLayerTreeTransactionAfterDidCommitLoad = true; 344 343 m_lastVisibleContentRectUpdate = VisibleContentRectUpdateInfo(); 345 344 } -
branches/safari-611-branch/Source/WebKit/UIProcess/mac/PageClientImplMac.h
r276076 r276151 222 222 void requestDOMPasteAccess(const WebCore::IntRect&, const String&, CompletionHandler<void(WebCore::DOMPasteAccessResponse)>&&) final; 223 223 224 void makeViewBlank(bool) final;225 226 224 NSView *activeView() const; 227 225 NSWindow *activeWindow() const; -
branches/safari-611-branch/Source/WebKit/UIProcess/mac/PageClientImplMac.mm
r276076 r276151 977 977 } 978 978 979 980 void PageClientImpl::makeViewBlank(bool makeBlank)981 {982 m_impl->acceleratedCompositingRootLayer().opacity = makeBlank ? 0 : 1;983 }984 985 979 #if HAVE(APP_ACCENT_COLORS) 986 980 WebCore::Color PageClientImpl::accentColor() -
branches/safari-611-branch/Source/WebKit/UIProcess/mac/WebPageProxyMac.mm
r276076 r276151 652 652 } 653 653 654 void WebPageProxy::didUpdateRenderingAfterCommittingLoad()655 {656 if (m_hasUpdatedRenderingAfterDidCommitLoad)657 return;658 659 m_hasUpdatedRenderingAfterDidCommitLoad = true;660 stopMakingViewBlankDueToLackOfRenderingUpdate();661 }662 663 654 #if ENABLE(UI_PROCESS_PDF_HUD) 664 655 -
branches/safari-611-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
r276076 r276151 458 458 IPC::UnboundedSynchronousIPCScope unboundedSynchronousIPCScope; 459 459 460 m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), webFrame->info(), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply() , IPC::SendSyncOption::MaintainOrderingWithAsyncMessages);460 m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), webFrame->info(), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply()); 461 461 } 462 462 … … 476 476 477 477 bool result = false; 478 if (!m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), webFrame->info(), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result) , IPC::SendSyncOption::MaintainOrderingWithAsyncMessages))478 if (!m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), webFrame->info(), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result))) 479 479 return false; 480 480 … … 496 496 IPC::UnboundedSynchronousIPCScope unboundedSynchronousIPCScope; 497 497 498 if (!m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame->frameID(), webFrame->info(), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result) , IPC::SendSyncOption::MaintainOrderingWithAsyncMessages))498 if (!m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame->frameID(), webFrame->info(), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result))) 499 499 return false; 500 500 -
branches/safari-611-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r276076 r276151 6086 6086 } 6087 6087 6088 #if PLATFORM(MAC)6089 m_didUpdateRenderingAfterCommittingLoad = false;6090 #endif6091 6088 #if PLATFORM(IOS_FAMILY) 6092 6089 m_hasReceivedVisibleContentRectsAfterDidCommitLoad = false; -
branches/safari-611-branch/Source/WebKit/WebProcess/WebPage/WebPage.h
r276076 r276151 624 624 void setTopOverhangImage(WebImage*); 625 625 void setBottomOverhangImage(WebImage*); 626 627 void didUpdateRendering();628 626 629 627 void setUseSystemAppearance(bool); … … 1267 1265 1268 1266 template<typename T> 1269 SendSyncResult sendSyncWithDelayedReply(T&& message, typename T::Reply&& reply , OptionSet<IPC::SendSyncOption> sendSyncOptions = { })1267 SendSyncResult sendSyncWithDelayedReply(T&& message, typename T::Reply&& reply) 1270 1268 { 1271 1269 cancelGesturesBlockedOnSynchronousReplies(); 1272 sendSyncOptions = sendSyncOptions | IPC::SendSyncOption::InformPlatformProcessWillSuspend; 1273 return sendSync(WTFMove(message), WTFMove(reply), Seconds::infinity(), sendSyncOptions); 1270 return sendSync(WTFMove(message), WTFMove(reply), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend); 1274 1271 } 1275 1272 … … 2191 2188 bool m_canUseCredentialStorage { true }; 2192 2189 2193 #if PLATFORM(MAC)2194 bool m_didUpdateRenderingAfterCommittingLoad { false };2195 #endif2196 2197 2190 Vector<String> m_corsDisablingPatterns; 2198 2191 -
branches/safari-611-branch/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
r276076 r276151 482 482 483 483 sendDidFirstLayerFlushIfNeeded(); 484 m_webPage.didUpdateRendering();485 484 handleActivityStateChangeCallbacksIfNeeded(); 486 485 invalidateRenderingUpdateRunLoopObserver(); -
branches/safari-611-branch/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm
r276076 r276151 1029 1029 } 1030 1030 1031 void WebPage::didUpdateRendering()1032 {1033 if (m_didUpdateRenderingAfterCommittingLoad)1034 return;1035 1036 m_didUpdateRenderingAfterCommittingLoad = true;1037 send(Messages::WebPageProxy::DidUpdateRenderingAfterCommittingLoad());1038 }1039 1040 1031 #if ENABLE(WIRELESS_PLAYBACK_TARGET) && !PLATFORM(IOS_FAMILY) 1041 1032 void WebPage::playbackTargetSelected(PlaybackTargetClientContextIdentifier contextId, const WebCore::MediaPlaybackTargetContext& targetContext) const
Note:
See TracChangeset
for help on using the changeset viewer.