WebKit Bugzilla
Attachment 346489 Details for
Bug 188307
: Regression(r233865): Causes synchronous IPC in the middle of layout
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-188307-20180803085250.patch (text/plain), 7.45 KB, created by
Chris Dumez
on 2018-08-03 08:52:51 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2018-08-03 08:52:51 PDT
Size:
7.45 KB
patch
obsolete
>Subversion Revision: 234545 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 11ff0f572c837655993468f02d4e46f0d4f5d651..9714fdb7966c8fe04de96f529c0da1082b17eb95 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,21 @@ >+2018-08-03 Chris Dumez <cdumez@apple.com> >+ >+ Regression(r233865): Causes synchronous IPC in the middle of layout >+ https://bugs.webkit.org/show_bug.cgi?id=188307 >+ <rdar://problem/42807306> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ r233865 introduced a synchronous IPC (which may occur in the middle of layout) in order for WebCore >+ to query if the view is visible. This is totally unnecessary since we already have this information >+ in WebContent process side, on the page. >+ >+ * dom/Document.cpp: >+ (WebCore::Document::requestFullScreenForElement): >+ * html/HTMLMediaElement.cpp: >+ (WebCore::HTMLMediaElement::enterFullscreen): >+ * page/ChromeClient.h: >+ > 2018-08-03 Zalan Bujtas <zalan@apple.com> > > [LFC] Do not check margin box while validating geometry. >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 0e9e004457249385d6dd2399c8be90e3e21e8095..ff467c7bcba11f972f0872780539c12fce818e9c 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,20 @@ >+2018-08-03 Chris Dumez <cdumez@apple.com> >+ >+ Regression(r233865): Causes synchronous IPC in the middle of layout >+ https://bugs.webkit.org/show_bug.cgi?id=188307 >+ <rdar://problem/42807306> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Drop unecessary IPC. >+ >+ * UIProcess/WebPageProxy.cpp: >+ (WebKit::WebPageProxy::getIsViewVisible): Deleted. >+ * UIProcess/WebPageProxy.h: >+ * UIProcess/WebPageProxy.messages.in: >+ * WebProcess/WebCoreSupport/WebChromeClient.cpp: >+ (WebKit::WebChromeClient::isViewVisible): Deleted. >+ > 2018-08-03 Ryan Haddad <ryanhaddad@apple.com> > > Unreviewed, rolling out r234513. >diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp >index d0ebe6ff7f984e723772fe14f3c5144084fbe46b..20c1a55d0aa738e21746d4e7523b599c34adb427 100644 >--- a/Source/WebCore/dom/Document.cpp >+++ b/Source/WebCore/dom/Document.cpp >@@ -6036,7 +6036,7 @@ void Document::requestFullScreenForElement(Element* element, FullScreenCheckType > // node document: > > // Don't allow fullscreen if document is hidden. >- if (!page() || !page()->chrome().client().isViewVisible()) >+ if (!page() || !page()->isVisible()) > break; > > // The context object is not in a document. >diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp >index 8fbcb82eb22a473adb2dabddd7ce5a7ee9e8d6ef..232cccaf971edc4b3f84feb57aba71ada4fcbe21 100644 >--- a/Source/WebCore/html/HTMLMediaElement.cpp >+++ b/Source/WebCore/html/HTMLMediaElement.cpp >@@ -5915,7 +5915,7 @@ void HTMLMediaElement::enterFullscreen(VideoFullscreenMode mode) > if (m_videoFullscreenMode == mode) > return; > >- if (!document().page() || !document().page()->chrome().client().isViewVisible()) { >+ if (!document().page() || !document().page()->isVisible()) { > ALWAYS_LOG(LOGIDENTIFIER, " returning because document is hidden"); > return; > } >diff --git a/Source/WebCore/page/ChromeClient.h b/Source/WebCore/page/ChromeClient.h >index 472b6183fc7bc2dbffbea0a59735e7cab0f50ce9..bea0d8f4cb8ad34b1e996ebf318cffb0fb968be7 100644 >--- a/Source/WebCore/page/ChromeClient.h >+++ b/Source/WebCore/page/ChromeClient.h >@@ -487,8 +487,6 @@ public: > > virtual String signedPublicKeyAndChallengeString(unsigned, const String&, const URL&) const { return emptyString(); } > >- virtual bool isViewVisible() { return true; } >- > protected: > virtual ~ChromeClient() = default; > }; >diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp >index cc5786faae20d1e1d5473f7b514e35a211dae795..3e48cfc24ac9730d8926d30e5d2122e68f2ef9c5 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.cpp >+++ b/Source/WebKit/UIProcess/WebPageProxy.cpp >@@ -7937,9 +7937,4 @@ void WebPageProxy::setDefersLoadingForTesting(bool defersLoading) > m_process->send(Messages::WebPage::SetDefersLoading(defersLoading), m_pageID); > } > >-void WebPageProxy::getIsViewVisible(bool& result) >-{ >- result = isViewVisible(); >-} >- > } // namespace WebKit >diff --git a/Source/WebKit/UIProcess/WebPageProxy.h b/Source/WebKit/UIProcess/WebPageProxy.h >index 6fb8397b92778833620c66cf9a7e55a106638abb..750f17c38bc2725ceb118b19cc0f5532e68e71c4 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.h >+++ b/Source/WebKit/UIProcess/WebPageProxy.h >@@ -1468,7 +1468,6 @@ private: > void getMenuBarIsVisible(Messages::WebPageProxy::GetMenuBarIsVisible::DelayedReply&&); > void setStatusBarIsVisible(bool statusBarIsVisible); > void getStatusBarIsVisible(Messages::WebPageProxy::GetStatusBarIsVisible::DelayedReply&&); >- void getIsViewVisible(bool&); > void setIsResizable(bool isResizable); > void screenToRootView(const WebCore::IntPoint& screenPoint, Messages::WebPageProxy::ScreenToRootView::DelayedReply&&); > void rootViewToScreen(const WebCore::IntRect& viewRect, Messages::WebPageProxy::RootViewToScreen::DelayedReply&&); >diff --git a/Source/WebKit/UIProcess/WebPageProxy.messages.in b/Source/WebKit/UIProcess/WebPageProxy.messages.in >index b31f5f0be34cc948927a9b136d0cc32c51bc9c2a..2ca1c94a2d3e652f17e6bd3d96e0e60f56a6c8e8 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.messages.in >+++ b/Source/WebKit/UIProcess/WebPageProxy.messages.in >@@ -61,7 +61,6 @@ messages -> WebPageProxy { > GetWindowFrame() -> (WebCore::FloatRect windowFrame) Delayed > ScreenToRootView(WebCore::IntPoint screenPoint) -> (WebCore::IntPoint windowPoint) Delayed > RootViewToScreen(WebCore::IntRect rect) -> (WebCore::IntRect screenFrame) Delayed >- GetIsViewVisible() -> (bool result) > > #if PLATFORM(COCOA) > ShowValidationMessage(WebCore::IntRect anchorRect, String message) >diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp >index c0652f16dcd87f91641d56a47cf92fee3d53a6f5..0c955f6771beccbe568f0242479f16301f5d1f4c 100644 >--- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp >+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp >@@ -1311,11 +1311,4 @@ void WebChromeClient::requestStorageAccess(String&& subFrameHost, String&& topFr > } > #endif > >-bool WebChromeClient::isViewVisible() >-{ >- bool isVisible = false; >- WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebPageProxy::GetIsViewVisible(), Messages::WebPageProxy::GetIsViewVisible::Reply(isVisible), m_page.pageID()); >- return isVisible; >-} >- > } // namespace WebKit >diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h >index e5d8e433e4107032466963eaa8ea45a34987776f..811a822c94534366a75031115e9a0faa93f427d8 100644 >--- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h >+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h >@@ -367,8 +367,6 @@ private: > void requestStorageAccess(String&& subFrameHost, String&& topFrameHost, uint64_t frameID, uint64_t pageID, WTF::CompletionHandler<void (bool)>&&) final; > #endif > >- bool isViewVisible() final; >- > String m_cachedToolTip; > mutable RefPtr<WebFrame> m_cachedFrameSetLargestFrame; > mutable bool m_cachedMainFrameHasHorizontalScrollbar { false };
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 188307
:
346489
|
346503
|
346556
|
355082
|
355093
|
355098
|
355101
|
355123
|
355186