Diff
Modified: trunk/Source/WebKit2/ChangeLog (143473 => 143474)
--- trunk/Source/WebKit2/ChangeLog 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/ChangeLog 2013-02-20 18:23:42 UTC (rev 143474)
@@ -1,5 +1,44 @@
2013-02-20 Huang Dongsung <luxte...@company100.net>
+ [WK2] Remove m_viewportSize in WebPage.
+ https://bugs.webkit.org/show_bug.cgi?id=110311
+
+ Reviewed by Anders Carlsson.
+
+ EFL and Qt use m_viewSize as a contents size while Apple use it as a viewport
+ size, so EFL and Qt introduced m_viewportSize to make WebPage know a viewport
+ size.
+
+ EFL and Qt use m_viewSize as a contents size because the size of non compositing
+ layer is contents size, and EFL and Qt mark whole non compositing layer as dirty
+ using m_viewSize. Bug 110299 (http://webkit.org/b/110299) changes that it is not
+ necessary to know m_viewSize when marking whole non compositing layer as dirty.
+ So we can make EFL and Qt use m_viewSize as a viewport size also.
+
+ This patch removes m_viewportSize and related methods to increase readability.
+
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ (QRawWebView::setSize):
+ * UIProcess/PageViewportController.cpp:
+ (WebKit::PageViewportController::didChangeViewportSize):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::pageRect):
+ (WebKit::WebChromeClient::contentsSizeChanged):
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit::DrawingAreaImpl::updateBackingStoreState):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setSize):
+ (WebKit::WebPage::sendViewportAttributesChanged):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+
+2013-02-20 Huang Dongsung <luxte...@company100.net>
+
[WK2] add setNeedsDisplay in DrawingArea to mark whole layer as dirty.
https://bugs.webkit.org/show_bug.cgi?id=110299
Modified: trunk/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp (143473 => 143474)
--- trunk/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp 2013-02-20 18:23:42 UTC (rev 143474)
@@ -344,7 +344,7 @@
return;
if (d->m_webPageProxy->useFixedLayout())
- d->m_webPageProxy->setViewportSize(size);
+ drawingArea->setSize(size, WebCore::IntSize());
d->m_size = size;
Modified: trunk/Source/WebKit2/UIProcess/PageViewportController.cpp (143473 => 143474)
--- trunk/Source/WebKit2/UIProcess/PageViewportController.cpp 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/UIProcess/PageViewportController.cpp 2013-02-20 18:23:42 UTC (rev 143474)
@@ -251,7 +251,7 @@
// Let the WebProcess know about the new viewport size, so that
// it can resize the content accordingly.
- m_webPageProxy->setViewportSize(roundedIntSize(newSize));
+ m_webPageProxy->drawingArea()->setSize(roundedIntSize(newSize), IntSize());
}
void PageViewportController::didChangeContentsVisibility(const FloatPoint& position, float scale, const FloatPoint& trajectoryVector)
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (143473 => 143474)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-02-20 18:23:42 UTC (rev 143474)
@@ -1007,14 +1007,6 @@
}
#if USE(TILED_BACKING_STORE)
-void WebPageProxy::setViewportSize(const IntSize& size)
-{
- if (!isValid())
- return;
-
- m_process->send(Messages::WebPage::SetViewportSize(size), m_pageID);
-}
-
void WebPageProxy::commitPageTransitionViewport()
{
if (!isValid())
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (143473 => 143474)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2013-02-20 18:23:42 UTC (rev 143474)
@@ -419,7 +419,6 @@
PlatformWidget viewWidget();
#endif
#if USE(TILED_BACKING_STORE)
- void setViewportSize(const WebCore::IntSize&);
void commitPageTransitionViewport();
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (143473 => 143474)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2013-02-20 18:23:42 UTC (rev 143474)
@@ -119,11 +119,7 @@
FloatRect WebChromeClient::pageRect()
{
-#if USE(TILED_BACKING_STORE)
- return FloatRect(FloatPoint(), m_page->viewportSize());
-#else
return FloatRect(FloatPoint(), m_page->size());
-#endif
}
void WebChromeClient::focus()
@@ -446,14 +442,11 @@
if (frame->page()->mainFrame() != frame)
return;
-#if PLATFORM(QT) || PLATFORM(EFL)
- if (m_page->useFixedLayout()) {
- // The below method updates the size().
- m_page->resizeToContentsIfNeeded();
- m_page->drawingArea()->layerTreeHost()->sizeDidChange(m_page->size());
- }
+#if USE(COORDINATED_GRAPHICS)
+ if (m_page->useFixedLayout())
+ m_page->drawingArea()->layerTreeHost()->sizeDidChange(size);
- m_page->send(Messages::WebPageProxy::DidChangeContentsSize(m_page->size()));
+ m_page->send(Messages::WebPageProxy::DidChangeContentsSize(size));
#endif
m_page->drawingArea()->mainFrameContentSizeChanged(size);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp (143473 => 143474)
--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp 2013-02-20 18:23:42 UTC (rev 143474)
@@ -394,9 +394,11 @@
m_webPage->scrollMainFrameIfNotAtMaxScrollPosition(scrollOffset);
if (m_layerTreeHost) {
- // Use the previously set page size instead of the argument.
- // It gets adjusted properly when using the fixed layout mode.
- m_layerTreeHost->sizeDidChange(m_webPage->size());
+#if USE(COORDINATED_GRAPHICS)
+ // Coordinated Graphics sets the size of the root layer to contents size.
+ if (!m_webPage->useFixedLayout())
+#endif
+ m_layerTreeHost->sizeDidChange(m_webPage->size());
} else
m_dirtyRegion = m_webPage->bounds();
} else {
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (143473 => 143474)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2013-02-20 18:23:42 UTC (rev 143474)
@@ -979,12 +979,6 @@
{
FrameView* view = m_page->mainFrame()->view();
-#if USE(TILED_BACKING_STORE)
- // If we are resizing to content ignore external attempts.
- if (view->useFixedLayout())
- return;
-#endif
-
if (m_viewSize == viewSize)
return;
@@ -993,6 +987,11 @@
m_drawingArea->setNeedsDisplay();
m_viewSize = viewSize;
+
+#if USE(TILED_BACKING_STORE)
+ if (view->useFixedLayout())
+ sendViewportAttributesChanged();
+#endif
}
#if USE(TILED_BACKING_STORE)
@@ -1003,43 +1002,24 @@
m_page->mainFrame()->view()->setFixedVisibleContentRect(rect);
}
-void WebPage::resizeToContentsIfNeeded()
-{
- ASSERT(m_useFixedLayout);
-
- FrameView* view = m_page->mainFrame()->view();
-
- if (!view->useFixedLayout())
- return;
-
- IntSize newSize = view->contentsSize().expandedTo(view->fixedLayoutSize());
-
- if (newSize == m_viewSize)
- return;
-
- m_viewSize = newSize;
- view->resize(newSize);
- view->setNeedsLayout();
-}
-
void WebPage::sendViewportAttributesChanged()
{
ASSERT(m_useFixedLayout);
// Viewport properties have no impact on zero sized fixed viewports.
- if (m_viewportSize.isEmpty())
+ if (m_viewSize.isEmpty())
return;
// Recalculate the recommended layout size, when the available size (device pixel) changes.
Settings* settings = m_page->settings();
- int minimumLayoutFallbackWidth = std::max(settings->layoutFallbackWidth(), m_viewportSize.width());
+ int minimumLayoutFallbackWidth = std::max(settings->layoutFallbackWidth(), m_viewSize.width());
// If unset we use the viewport dimensions. This fits with the behavior of desktop browsers.
- int deviceWidth = (settings->deviceWidth() > 0) ? settings->deviceWidth() : m_viewportSize.width();
- int deviceHeight = (settings->deviceHeight() > 0) ? settings->deviceHeight() : m_viewportSize.height();
+ int deviceWidth = (settings->deviceWidth() > 0) ? settings->deviceWidth() : m_viewSize.width();
+ int deviceHeight = (settings->deviceHeight() > 0) ? settings->deviceHeight() : m_viewSize.height();
- ViewportAttributes attr = computeViewportAttributes(m_page->viewportArguments(), minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewportSize);
+ ViewportAttributes attr = computeViewportAttributes(m_page->viewportArguments(), minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize);
FrameView* view = m_page->mainFrame()->view();
@@ -1048,7 +1028,7 @@
// Put the width and height to the viewport width and height. In css units however.
// Use FloatSize to avoid truncated values during scale.
- FloatSize contentFixedSize = m_viewportSize;
+ FloatSize contentFixedSize = m_viewSize;
#if ENABLE(CSS_DEVICE_ADAPTATION)
// CSS viewport descriptors might be applied to already affected viewport size
@@ -1066,19 +1046,6 @@
send(Messages::WebPageProxy::DidChangeViewportProperties(attr));
}
-
-void WebPage::setViewportSize(const IntSize& size)
-{
- ASSERT(m_useFixedLayout);
-
- if (m_viewportSize == size)
- return;
-
- m_viewportSize = size;
-
- sendViewportAttributesChanged();
-}
-
#endif
void WebPage::scrollMainFrameIfNotAtMaxScrollPosition(const IntSize& scrollOffset)
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (143473 => 143474)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2013-02-20 18:23:42 UTC (rev 143474)
@@ -377,10 +377,7 @@
#if USE(TILED_BACKING_STORE)
void pageDidRequestScroll(const WebCore::IntPoint&);
void setFixedVisibleContentRect(const WebCore::IntRect&);
- void resizeToContentsIfNeeded();
void sendViewportAttributesChanged();
- void setViewportSize(const WebCore::IntSize&);
- WebCore::IntSize viewportSize() const { return m_viewportSize; }
#endif
#if ENABLE(CONTEXT_MENUS)
@@ -874,10 +871,6 @@
#endif
InjectedBundlePageDiagnosticLoggingClient m_logDiagnosticMessageClient;
-#if USE(TILED_BACKING_STORE)
- WebCore::IntSize m_viewportSize;
-#endif
-
FindController m_findController;
#if ENABLE(TOUCH_EVENTS) && PLATFORM(QT)
TapHighlightController m_tapHighlightController;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (143473 => 143474)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2013-02-20 18:23:42 UTC (rev 143474)
@@ -116,10 +116,6 @@
SuspendActiveDOMObjectsAndAnimations()
ResumeActiveDOMObjectsAndAnimations()
-#if USE(TILED_BACKING_STORE)
- SetViewportSize(WebCore::IntSize size)
-#endif
-
Close()
TryClose()