Unreviewed, rolling out r244434.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 Apr 2019 02:25:51 +0000 (02:25 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 Apr 2019 02:25:51 +0000 (02:25 +0000)
https://bugs.webkit.org/show_bug.cgi?id=197089

caused 1 API test failure (Requested by zalan on #webkit).

Reverted changeset:

"Regression (r244291): Broken API Test
AutoLayoutRenderingProgressRelativeOrdering"
https://bugs.webkit.org/show_bug.cgi?id=196948
https://trac.webkit.org/changeset/244434

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@244446 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 files changed:
Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp
Source/WebCore/page/FrameView.h
Source/WebKit/ChangeLog
Source/WebKit/UIProcess/DrawingAreaProxy.h
Source/WebKit/UIProcess/DrawingAreaProxy.messages.in
Source/WebKit/UIProcess/WebPageProxy.cpp
Source/WebKit/UIProcess/WebPageProxy.h
Source/WebKit/UIProcess/WebPageProxy.messages.in
Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h
Source/WebKit/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm
Source/WebKit/UIProcess/mac/WebPageProxyMac.mm
Source/WebKit/WebProcess/WebPage/WebPage.cpp
Source/WebKit/WebProcess/WebPage/WebPage.h
Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WebKitCocoa/AutoLayoutIntegration.mm

index 03f74e9..85bbfde 100644 (file)
@@ -1,3 +1,17 @@
+2019-04-18  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r244434.
+        https://bugs.webkit.org/show_bug.cgi?id=197089
+
+        caused 1 API test failure (Requested by zalan on #webkit).
+
+        Reverted changeset:
+
+        "Regression (r244291): Broken API Test
+        AutoLayoutRenderingProgressRelativeOrdering"
+        https://bugs.webkit.org/show_bug.cgi?id=196948
+        https://trac.webkit.org/changeset/244434
+
 2019-04-18  Don Olmstead  <don.olmstead@sony.com>
 
         [CMake] Make WebCore headers copies
index 6789a3d..8ecef07 100644 (file)
@@ -631,8 +631,6 @@ void FrameView::setContentsSize(const IntSize& size)
         PageCache::singleton().markPagesForContentsSizeChanged(*page);
     }
     layoutContext().enableSetNeedsLayout();
-    if (m_shouldAutoSize)
-        m_autoSizeContentSize = size; 
 }
 
 void FrameView::adjustViewSize()
@@ -3465,6 +3463,7 @@ void FrameView::autoSizeIfEnabled()
     resize(m_autoSizeConstraint.width(), m_autoSizeConstraint.height());
     document->updateStyleIfNeeded();
     document->updateLayoutIgnorePendingStylesheets();
+    m_autoSizeContentSize = contentsSize();
 
     auto finalWidth = std::max(m_autoSizeConstraint.width(), m_autoSizeContentSize.width());
     auto finalHeight = m_autoSizeFixedMinimumHeight ? std::max(m_autoSizeFixedMinimumHeight, m_autoSizeContentSize.height()) : m_autoSizeContentSize.height();
@@ -4471,7 +4470,6 @@ void FrameView::enableAutoSizeMode(bool enable, const IntSize& viewSize)
 
     m_shouldAutoSize = enable;
     m_autoSizeConstraint = viewSize;
-    m_autoSizeContentSize = contentsSize();
     m_didRunAutosize = false;
 
     setNeedsLayoutAfterViewConfigurationChange();
index 81d1cc6..253db2a 100644 (file)
@@ -401,7 +401,6 @@ public:
     bool isVisuallyNonEmpty() const { return m_isVisuallyNonEmpty; }
     WEBCORE_EXPORT void enableAutoSizeMode(bool enable, const IntSize& minSize);
     WEBCORE_EXPORT void setAutoSizeFixedMinimumHeight(int);
-    bool isAutoSizeEnabled() const { return m_shouldAutoSize; }
     IntSize autoSizingIntrinsicContentSize() const { return m_autoSizeContentSize; }
 
     WEBCORE_EXPORT void forceLayout(bool allowSubtreeLayout = false);
index 7457e49..b211937 100644 (file)
@@ -1,3 +1,17 @@
+2019-04-18  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r244434.
+        https://bugs.webkit.org/show_bug.cgi?id=197089
+
+        caused 1 API test failure (Requested by zalan on #webkit).
+
+        Reverted changeset:
+
+        "Regression (r244291): Broken API Test
+        AutoLayoutRenderingProgressRelativeOrdering"
+        https://bugs.webkit.org/show_bug.cgi?id=196948
+        https://trac.webkit.org/changeset/244434
+
 2019-04-18  Wenson Hsieh  <wenson_hsieh@apple.com>
 
         Add new compatibility mode API on WKNavigation
index 46e1697..b6905b0 100644 (file)
@@ -143,6 +143,7 @@ private:
     virtual void updateAcceleratedCompositingMode(uint64_t /* backingStoreStateID */, const LayerTreeContext&) { }
 #if PLATFORM(COCOA)
     virtual void didUpdateGeometry() { }
+    virtual void intrinsicContentSizeDidChange(const WebCore::IntSize&) { }
 
 #if PLATFORM(MAC)
     RunLoop::Timer<DrawingAreaProxy> m_viewExposedRectChangedTimer;
index bcf2fb9..3e58de5 100644 (file)
@@ -31,5 +31,6 @@ messages -> DrawingAreaProxy {
 #if PLATFORM(COCOA)
     // Used by TiledCoreAnimationDrawingAreaProxy.
     DidUpdateGeometry()
+    IntrinsicContentSizeDidChange(WebCore::IntSize newIntrinsicContentSize)
 #endif
 }
index 14ca021..0c9852e 100644 (file)
@@ -5464,13 +5464,6 @@ void WebPageProxy::didChangeContentSize(const IntSize& size)
     pageClient().didChangeContentSize(size);
 }
 
-void WebPageProxy::didChangeIntrinsicContentSize(const IntSize& intrinsicContentSize)
-{
-#if USE(APPKIT)
-    pageClient().intrinsicContentSizeDidChange(intrinsicContentSize);
-#endif
-}
-
 #if ENABLE(INPUT_TYPE_COLOR)
 void WebPageProxy::showColorPicker(const WebCore::Color& initialColor, const IntRect& elementRect, Vector<WebCore::Color>&& suggestions)
 {
@@ -7603,7 +7596,7 @@ void WebPageProxy::setViewLayoutSize(const IntSize& viewLayoutSize)
 
 #if USE(APPKIT)
     if (m_viewLayoutSize.width() <= 0)
-        didChangeIntrinsicContentSize(IntSize(-1, -1));
+        intrinsicContentSizeDidChange(IntSize(-1, -1));
 #endif
 }
 
index 8f812fb..357dc1b 100644 (file)
@@ -790,6 +790,7 @@ public:
     NSView *inspectorAttachmentView();
     _WKRemoteObjectRegistry *remoteObjectRegistry();
 
+    void intrinsicContentSizeDidChange(const WebCore::IntSize& intrinsicContentSize);
     CGRect boundsOfLayerInLayerBackedWindowCoordinates(CALayer *) const;
 #endif // PLATFORM(MAC)
 
@@ -1714,7 +1715,6 @@ private:
     void didDestroyNotification(uint64_t notificationID);
 
     void didChangeContentSize(const WebCore::IntSize&);
-    void didChangeIntrinsicContentSize(const WebCore::IntSize&);
 
 #if ENABLE(INPUT_TYPE_COLOR)
     void showColorPicker(const WebCore::Color& initialColor, const WebCore::IntRect&, Vector<WebCore::Color>&&);
index e74c5fd..1d44c6a 100644 (file)
@@ -88,7 +88,6 @@ messages -> WebPageProxy {
     SetCanShortCircuitHorizontalWheelEvents(bool canShortCircuitHorizontalWheelEvents)
 
     DidChangeContentSize(WebCore::IntSize newSize)
-    DidChangeIntrinsicContentSize(WebCore::IntSize newIntrinsicContentSize)
 
 #if ENABLE(INPUT_TYPE_COLOR)
     ShowColorPicker(WebCore::Color initialColor, WebCore::IntRect elementRect, Vector<WebCore::Color> suggestions);
index 44200c2..f2f2702 100644 (file)
@@ -60,6 +60,7 @@ private:
 
     // Message handlers.
     void didUpdateGeometry() override;
+    void intrinsicContentSizeDidChange(const WebCore::IntSize&) override;
 
     void sendUpdateGeometry();
 
index f70f1a4..0739fdc 100644 (file)
@@ -125,6 +125,12 @@ void TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateActivityState(ActivityS
     process().connection()->waitForAndDispatchImmediately<Messages::WebPageProxy::DidUpdateActivityState>(m_webPageProxy.pageID(), activityStateUpdateTimeout, IPC::WaitForOption::InterruptWaitingIfSyncMessageArrives);
 }
 
+void TiledCoreAnimationDrawingAreaProxy::intrinsicContentSizeDidChange(const IntSize& newIntrinsicContentSize)
+{
+    if (m_webPageProxy.viewLayoutSize().width() > 0)
+        m_webPageProxy.intrinsicContentSizeDidChange(newIntrinsicContentSize);
+}
+
 void TiledCoreAnimationDrawingAreaProxy::willSendUpdateGeometry()
 {
     m_lastSentViewLayoutSize = m_webPageProxy.viewLayoutSize();
index 138d132..74f6a69 100644 (file)
@@ -433,6 +433,11 @@ bool WebPageProxy::acceptsFirstMouse(int eventNumber, const WebKit::WebMouseEven
     return result;
 }
 
+void WebPageProxy::intrinsicContentSizeDidChange(const IntSize& intrinsicContentSize)
+{
+    pageClient().intrinsicContentSizeDidChange(intrinsicContentSize);
+}
+
 void WebPageProxy::setRemoteLayerTreeRootNode(RemoteLayerTreeNode* rootNode)
 {
     pageClient().setRemoteLayerTreeRootNode(rootNode);
index 0393342..141dd4a 100644 (file)
@@ -6230,24 +6230,6 @@ void WebPage::removeAllUserContent()
     m_userContentController->removeAllUserContent();
 }
 
-void WebPage::updateIntrinsicContentSizeIfNeeded()
-{
-    if (!viewLayoutSize().width())
-        return;
-
-    ASSERT(mainFrameView());
-    if (!mainFrameView()->isAutoSizeEnabled())
-        return; 
-
-    ASSERT(!mainFrameView()->needsLayout());
-    auto contentSize = mainFrameView()->autoSizingIntrinsicContentSize();
-    if (m_lastSentIntrinsicContentSize == contentSize)
-        return;
-
-    m_lastSentIntrinsicContentSize = contentSize;
-    send(Messages::WebPageProxy::DidChangeIntrinsicContentSize(contentSize));
-}
-
 void WebPage::dispatchDidReachLayoutMilestone(OptionSet<WebCore::LayoutMilestone> milestones)
 {
     RefPtr<API::Object> userData;
@@ -6263,8 +6245,6 @@ void WebPage::dispatchDidReachLayoutMilestone(OptionSet<WebCore::LayoutMilestone
         if (drawingAreaRelatedMilestones && m_drawingArea->addMilestonesToDispatch(drawingAreaRelatedMilestones))
             milestones.remove(drawingAreaRelatedMilestones);
     }
-    if (milestones.contains(DidFirstLayout))
-        updateIntrinsicContentSizeIfNeeded();
 
     send(Messages::WebPageProxy::DidReachLayoutMilestone(milestones));
 }
index 7c6cc1e..2acc328 100644 (file)
@@ -1555,8 +1555,6 @@ private:
 
     bool shouldDispatchUpdateAfterFocusingElement(const WebCore::Element&) const;
 
-    void updateIntrinsicContentSizeIfNeeded();
-
     uint64_t m_pageID;
 
     std::unique_ptr<WebCore::Page> m_page;
@@ -1896,7 +1894,6 @@ private:
 #if PLATFORM(COCOA)
     WeakPtr<RemoteObjectRegistry> m_remoteObjectRegistry;
 #endif
-    WebCore::IntSize m_lastSentIntrinsicContentSize;
 };
 
 } // namespace WebKit
index 1d8aeee..9af1e7f 100644 (file)
@@ -121,6 +121,7 @@ private:
     WebCore::TiledBacking* mainFrameTiledBacking() const;
     void updateDebugInfoLayer(bool showLayer);
 
+    void updateIntrinsicContentSizeIfNeeded();
     void updateScrolledExposedRect();
     void scaleViewToFitDocumentIfNeeded();
 
@@ -149,6 +150,8 @@ private:
     WebCore::IntSize m_lastViewSizeForScaleToFit;
     WebCore::IntSize m_lastDocumentSizeForScaleToFit;
 
+    WebCore::IntSize m_lastSentIntrinsicContentSize;
+
     double m_transientZoomScale { 1 };
     WebCore::FloatPoint m_transientZoomOrigin;
 
index 8095e67..85f0ca2 100644 (file)
@@ -278,6 +278,26 @@ void TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged(const IntSize& s
 {
 }
 
+void TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeIfNeeded()
+{
+    if (!m_webPage.viewLayoutSize().width())
+        return;
+
+    FrameView* frameView = m_webPage.mainFrameView();
+    if (!frameView)
+        return;
+
+    if (frameView->needsLayout())
+        return;
+
+    IntSize contentSize = frameView->autoSizingIntrinsicContentSize();
+    if (m_lastSentIntrinsicContentSize == contentSize)
+        return;
+
+    m_lastSentIntrinsicContentSize = contentSize;
+    send(Messages::DrawingAreaProxy::IntrinsicContentSizeDidChange(contentSize));
+}
+
 void TiledCoreAnimationDrawingArea::setShouldScaleViewToFitDocument(bool shouldScaleView)
 {
     if (m_shouldScaleViewToFitDocument == shouldScaleView)
@@ -442,6 +462,8 @@ void TiledCoreAnimationDrawingArea::flushLayers(FlushType flushType)
         m_webPage.updateRendering();
         m_webPage.flushPendingEditorStateUpdate();
 
+        updateIntrinsicContentSizeIfNeeded();
+
         if (m_pendingRootLayer) {
             setRootCompositingLayer(m_pendingRootLayer.get());
             m_pendingRootLayer = nullptr;
index ccae8d9..3132daa 100644 (file)
@@ -1,3 +1,17 @@
+2019-04-18  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r244434.
+        https://bugs.webkit.org/show_bug.cgi?id=197089
+
+        caused 1 API test failure (Requested by zalan on #webkit).
+
+        Reverted changeset:
+
+        "Regression (r244291): Broken API Test
+        AutoLayoutRenderingProgressRelativeOrdering"
+        https://bugs.webkit.org/show_bug.cgi?id=196948
+        https://trac.webkit.org/changeset/244434
+
 2019-04-18  Wenson Hsieh  <wenson_hsieh@apple.com>
 
         Add new compatibility mode API on WKNavigation
index e0b1f93..a5d8c42 100644 (file)
@@ -174,7 +174,7 @@ TEST(WebKit, AutoLayoutIntegration)
     [webView _setShouldExpandContentToViewHeightForAutoLayout:NO];
 }
 
-TEST(WebKit, AutoLayoutRenderingProgressRelativeOrdering)
+TEST(WebKit, DISABLED_AutoLayoutRenderingProgressRelativeOrdering)
 {
     RetainPtr<AutoLayoutWKWebView> webView = adoptNS([[AutoLayoutWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 1000, 1000)]);
 
@@ -199,6 +199,7 @@ TEST(WebKit, AutoLayoutRenderingProgressRelativeOrdering)
     [webView setExpectedIntrinsicContentSize:NSMakeSize(100, 400)];
     [webView loadHTMLString:@"<body style='margin: 0; height: 400px;'></body>" baseURL:nil];
     TestWebKitAPI::Util::run(&didInvalidateIntrinsicContentSize);
+    EXPECT_FALSE(didFirstLayout);
     TestWebKitAPI::Util::run(&didFirstLayout);
     TestWebKitAPI::Util::run(&didFinishNavigation);
     [webView setNavigationDelegate:nil];