Title: [136231] trunk
Revision
136231
Author
[email protected]
Date
2012-11-30 05:56:54 -0800 (Fri, 30 Nov 2012)

Log Message

[WK2] TiledBackingStore: Frame view re-layouts with wrong Fixed Visible Content Rect.
https://bugs.webkit.org/show_bug.cgi?id=103428

Patch by Mikhail Pozdnyakov <[email protected]> on 2012-11-30
Reviewed by Kenneth Rohde Christiansen.

Source/WebKit2:

Set now appropriate fixed visible content rect before layout when viewport
attributes change.

* UIProcess/PageViewportController.cpp:
(WebKit::PageViewportController::syncVisibleContents):
(WebKit::PageViewportController::didChangeViewportAttributes):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendViewportAttributesChanged):

LayoutTests:

Unskipped corresponding test cases for EFL WK2.

* platform/efl-wk2/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (136230 => 136231)


--- trunk/LayoutTests/ChangeLog	2012-11-30 13:44:58 UTC (rev 136230)
+++ trunk/LayoutTests/ChangeLog	2012-11-30 13:56:54 UTC (rev 136231)
@@ -1,3 +1,14 @@
+2012-11-30  Mikhail Pozdnyakov  <[email protected]>
+
+        [WK2] TiledBackingStore: Frame view re-layouts with wrong Fixed Visible Content Rect.
+        https://bugs.webkit.org/show_bug.cgi?id=103428
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Unskipped corresponding test cases for EFL WK2.
+
+        * platform/efl-wk2/TestExpectations:
+
 2012-11-30  Sudarsana Nagineni  <[email protected]>
 
         [EFL] Gardening after r136031 and r136142

Modified: trunk/LayoutTests/platform/efl-wk2/TestExpectations (136230 => 136231)


--- trunk/LayoutTests/platform/efl-wk2/TestExpectations	2012-11-30 13:44:58 UTC (rev 136230)
+++ trunk/LayoutTests/platform/efl-wk2/TestExpectations	2012-11-30 13:56:54 UTC (rev 136231)
@@ -269,10 +269,6 @@
 # Page client doesn't react to orientation changes from CSS Viewport rules.
 webkit.org/b/103130 css3/device-adapt/opera/orientation-001.xhtml [ Failure ]
 
-# Issue with viewport width and relative units.
-webkit.org/b/102922 css3/device-adapt/opera/constrain-006.xhtml [ Failure ]
-webkit.org/b/102922 css3/device-adapt/opera/constrain-007.xhtml [ Failure ]
-
 # Text input controller needs selectedRange implementation
 webkit.org/b/99438 editing/selection/mixed-editability-10.html [ Failure ]
 

Modified: trunk/Source/WebKit2/ChangeLog (136230 => 136231)


--- trunk/Source/WebKit2/ChangeLog	2012-11-30 13:44:58 UTC (rev 136230)
+++ trunk/Source/WebKit2/ChangeLog	2012-11-30 13:56:54 UTC (rev 136231)
@@ -1,3 +1,19 @@
+2012-11-30  Mikhail Pozdnyakov  <[email protected]>
+
+        [WK2] TiledBackingStore: Frame view re-layouts with wrong Fixed Visible Content Rect.
+        https://bugs.webkit.org/show_bug.cgi?id=103428
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Set now appropriate fixed visible content rect before layout when viewport
+        attributes change.
+
+        * UIProcess/PageViewportController.cpp:
+        (WebKit::PageViewportController::syncVisibleContents):
+        (WebKit::PageViewportController::didChangeViewportAttributes):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::sendViewportAttributesChanged):
+
 2012-11-30  Sudarsana Nagineni  <[email protected]>
 
         [EFL] Gardening after r136031 and r136142

Modified: trunk/Source/WebKit2/UIProcess/PageViewportController.cpp (136230 => 136231)


--- trunk/Source/WebKit2/UIProcess/PageViewportController.cpp	2012-11-30 13:44:58 UTC (rev 136230)
+++ trunk/Source/WebKit2/UIProcess/PageViewportController.cpp	2012-11-30 13:56:54 UTC (rev 136231)
@@ -209,7 +209,7 @@
 
 void PageViewportController::syncVisibleContents(const FloatPoint& trajectoryVector)
 {
-    DrawingAreaProxy* const drawingArea = m_webPageProxy->drawingArea();
+    DrawingAreaProxy* drawingArea = m_webPageProxy->drawingArea();
     if (!drawingArea || m_viewportSize.isEmpty() || m_contentsSize.isEmpty())
         return;
 
@@ -234,8 +234,6 @@
 
     if (updateMinimumScaleToFit(true))
         m_client->didChangeViewportAttributes();
-
-    syncVisibleContents();
 }
 
 WebCore::FloatSize PageViewportController::viewportSizeInContentsCoordinates() const

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (136230 => 136231)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-11-30 13:44:58 UTC (rev 136230)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-11-30 13:56:54 UTC (rev 136231)
@@ -1027,8 +1027,21 @@
     ViewportAttributes attr = computeViewportAttributes(m_page->viewportArguments(), minimumLayoutFallbackWidth, deviceWidth, deviceHeight, m_page->deviceScaleFactor(), m_viewportSize);
     attr.initialScale = m_page->viewportArguments().zoom; // Resets auto (-1) if no value was set by user.
 
+    // Keep the current position, update size only.
+    // For the new loads position is already reset to (0,0).
+    FrameView* view = m_page->mainFrame()->view();
+    IntPoint contentFixedOrigin = view->fixedVisibleContentRect().location();
+
+    // Put the width and height to the viewport width and height. In css units however.
+    // FIXME: This should be in scaled units but this currently affects viewport attributes calculation.
+    IntSize contentFixedSize = m_viewportSize;
+    contentFixedSize.scale(1 / m_page->deviceScaleFactor());
+
+    setFixedVisibleContentRect(IntRect(contentFixedOrigin, contentFixedSize));
+
     // This also takes care of the relayout.
-    setFixedLayoutSize(IntSize(static_cast<int>(attr.layoutSize.width()), static_cast<int>(attr.layoutSize.height())));
+    setFixedLayoutSize(roundedIntSize(attr.layoutSize));
+
     send(Messages::WebPageProxy::DidChangeViewportProperties(attr));
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to