Title: [129896] trunk/Source
Revision
129896
Author
[email protected]
Date
2012-09-28 07:55:07 -0700 (Fri, 28 Sep 2012)

Log Message

Unreviewed, rolling out r129882.
http://trac.webkit.org/changeset/129882
https://bugs.webkit.org/show_bug.cgi?id=97913

Repaint is incorrect on many tests (Requested by schenney on
#webkit).

Patch by Sheriff Bot <[email protected]> on 2012-09-28

Source/WebCore:

* inspector/InspectorController.cpp:
* inspector/InspectorController.h:
(WebCore):
(InspectorController):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::update):
(WebCore::buildObjectForPoint):
(WebCore::buildArrayForQuad):
(WebCore::buildObjectForHighlight):
(WebCore::InspectorOverlay::reset):
* inspector/InspectorOverlay.h:
(InspectorOverlay):
* inspector/InspectorOverlayPage.html:

Source/WebKit/chromium:

* src/WebDevToolsAgentImpl.cpp:
(OverlayZOrders):
(WebKit::DeviceMetricsSupport::DeviceMetricsSupport):
(WebKit::DeviceMetricsSupport::~DeviceMetricsSupport):
(WebKit::DeviceMetricsSupport::restore):
(WebKit::DeviceMetricsSupport::paintPageOverlay):
(DeviceMetricsSupport):
(WebKit::WebDevToolsAgentImpl::attach):
(WebKit::WebDevToolsAgentImpl::webViewResized):
(WebKit::WebDevToolsAgentImpl::overrideDeviceMetrics):
* src/WebDevToolsAgentImpl.h:
(WebDevToolsAgentImpl):
* src/WebDevToolsAgentPrivate.h:
(WebDevToolsAgentPrivate):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::resize):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (129895 => 129896)


--- trunk/Source/WebCore/ChangeLog	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebCore/ChangeLog	2012-09-28 14:55:07 UTC (rev 129896)
@@ -1,3 +1,27 @@
+2012-09-28  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r129882.
+        http://trac.webkit.org/changeset/129882
+        https://bugs.webkit.org/show_bug.cgi?id=97913
+
+        Repaint is incorrect on many tests (Requested by schenney on
+        #webkit).
+
+        * inspector/InspectorController.cpp:
+        * inspector/InspectorController.h:
+        (WebCore):
+        (InspectorController):
+        * inspector/InspectorOverlay.cpp:
+        (WebCore::InspectorOverlay::paint):
+        (WebCore::InspectorOverlay::update):
+        (WebCore::buildObjectForPoint):
+        (WebCore::buildArrayForQuad):
+        (WebCore::buildObjectForHighlight):
+        (WebCore::InspectorOverlay::reset):
+        * inspector/InspectorOverlay.h:
+        (InspectorOverlay):
+        * inspector/InspectorOverlayPage.html:
+
 2012-09-28  Kentaro Hara  <[email protected]>
 
         Unreviewed, rolling out r129825.

Modified: trunk/Source/WebCore/inspector/InspectorController.cpp (129895 => 129896)


--- trunk/Source/WebCore/inspector/InspectorController.cpp	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebCore/inspector/InspectorController.cpp	2012-09-28 14:55:07 UTC (rev 129896)
@@ -289,11 +289,6 @@
     IdentifiersFactory::setProcessId(processId);
 }
 
-void InspectorController::webViewResized(const IntSize& size)
-{
-    m_overlay->resize(size);
-}
-
 void InspectorController::evaluateForTestInFrontend(long callId, const String& script)
 {
     m_inspectorAgent->evaluateForTestInFrontend(callId, script);

Modified: trunk/Source/WebCore/inspector/InspectorController.h (129895 => 129896)


--- trunk/Source/WebCore/inspector/InspectorController.h	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebCore/inspector/InspectorController.h	2012-09-28 14:55:07 UTC (rev 129896)
@@ -58,7 +58,6 @@
 class InspectorResourceAgent;
 class InspectorState;
 class InstrumentingAgents;
-class IntSize;
 class Page;
 class PostWorkerNotificationToFrontendTask;
 class Node;
@@ -92,7 +91,6 @@
     void disconnectFrontend();
     void reconnectFrontend(InspectorFrontendChannel*, const String& inspectorStateCookie);
     void setProcessId(long);
-    void webViewResized(const IntSize&);
 
     void inspect(Node*);
     void drawHighlight(GraphicsContext&) const;

Modified: trunk/Source/WebCore/inspector/InspectorOverlay.cpp (129895 => 129896)


--- trunk/Source/WebCore/inspector/InspectorOverlay.cpp	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.cpp	2012-09-28 14:55:07 UTC (rev 129896)
@@ -205,7 +205,7 @@
 
 void InspectorOverlay::paint(GraphicsContext& context)
 {
-    if (m_pausedInDebuggerMessage.isNull() && !m_highlightNode && !m_highlightRect && m_size.isEmpty())
+    if (m_pausedInDebuggerMessage.isNull() && !m_highlightNode && !m_highlightRect)
         return;
     GraphicsContextStateSaver stateSaver(context);
     FrameView* view = overlayPage()->mainFrame()->view();
@@ -237,12 +237,6 @@
         buildRectHighlight(m_page, m_highlightRect.get(), m_rectHighlightConfig, highlight);
 }
 
-void InspectorOverlay::resize(const IntSize& size)
-{
-    m_size = size;
-    update();
-}
-
 void InspectorOverlay::setPausedInDebuggerMessage(const String* message)
 {
     m_pausedInDebuggerMessage = message ? *message : String();
@@ -277,7 +271,7 @@
 
 void InspectorOverlay::update()
 {
-    if (!m_highlightNode && !m_highlightRect && m_pausedInDebuggerMessage.isNull() && m_size.isEmpty()) {
+    if (!m_highlightNode && !m_highlightRect && m_pausedInDebuggerMessage.isNull()) {
         m_client->hideHighlight();
         return;
     }
@@ -287,16 +281,12 @@
         return;
 
     FrameView* overlayView = overlayPage()->mainFrame()->view();
-    IntSize viewportSize = enclosingIntRect(view->visibleContentRect()).size();
-    IntSize frameViewFullSize = enclosingIntRect(view->visibleContentRect(true)).size();
-    IntSize size = m_size.isEmpty() ? frameViewFullSize : m_size;
-    overlayView->resize(size);
+    IntRect visibleRect = enclosingIntRect(view->visibleContentRect());
+    overlayView->resize(visibleRect.width(), visibleRect.height());
 
     // Clear canvas and paint things.
-    reset(viewportSize, m_size.isEmpty() ? IntSize() : frameViewFullSize);
+    reset();
 
-    // Include scrollbars to avoid masking them by the gutter.
-    drawGutter();
     drawNodeHighlight();
     drawRectHighlight();
     drawPausedInDebuggerMessage();
@@ -310,7 +300,7 @@
     m_client->highlight();
 }
 
-static PassRefPtr<InspectorObject> buildObjectForPoint(const FloatPoint& point)
+static RefPtr<InspectorObject> buildObjectForPoint(const FloatPoint& point)
 {
     RefPtr<InspectorObject> object = InspectorObject::create();
     object->setNumber("x", point.x());
@@ -318,7 +308,7 @@
     return object.release();
 }
 
-static PassRefPtr<InspectorArray> buildArrayForQuad(const FloatQuad& quad)
+static RefPtr<InspectorArray> buildArrayForQuad(const FloatQuad& quad)
 {
     RefPtr<InspectorArray> array = InspectorArray::create();
     array->pushObject(buildObjectForPoint(quad.p1()));
@@ -328,7 +318,7 @@
     return array.release();
 }
 
-static PassRefPtr<InspectorObject> buildObjectForHighlight(FrameView* mainView, const Highlight& highlight)
+static RefPtr<InspectorObject> buildObjectForHighlight(FrameView* mainView, const Highlight& highlight)
 {
     RefPtr<InspectorObject> object = InspectorObject::create();
     RefPtr<InspectorArray> array = InspectorArray::create();
@@ -353,19 +343,6 @@
     return object.release();
 }
 
-static PassRefPtr<InspectorObject> buildObjectForSize(const IntSize& size)
-{
-    RefPtr<InspectorObject> result = InspectorObject::create();
-    result->setNumber("width", size.width());
-    result->setNumber("height", size.height());
-    return result.release();
-}
-
-void InspectorOverlay::drawGutter()
-{
-    evaluateInOverlay("drawGutter", "");
-}
-
 void InspectorOverlay::drawNodeHighlight()
 {
     if (!m_highlightNode)
@@ -474,13 +451,9 @@
     return m_overlayPage.get();
 }
 
-void InspectorOverlay::reset(const IntSize& viewportSize, const IntSize& frameViewFullSize)
+void InspectorOverlay::reset()
 {
-    RefPtr<InspectorObject> resetData = InspectorObject::create();
-    resetData->setNumber("deviceScaleFactor", m_page->deviceScaleFactor());
-    resetData->setObject("viewportSize", buildObjectForSize(viewportSize));
-    resetData->setObject("frameViewFullSize", buildObjectForSize(frameViewFullSize));
-    evaluateInOverlay("reset", resetData.release());
+    evaluateInOverlay("reset", String::number(m_page->deviceScaleFactor()));
 }
 
 void InspectorOverlay::evaluateInOverlay(const String& method, const String& argument)

Modified: trunk/Source/WebCore/inspector/InspectorOverlay.h (129895 => 129896)


--- trunk/Source/WebCore/inspector/InspectorOverlay.h	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.h	2012-09-28 14:55:07 UTC (rev 129896)
@@ -100,7 +100,6 @@
     void paint(GraphicsContext&);
     void drawOutline(GraphicsContext*, const LayoutRect&, const Color&);
     void getHighlight(Highlight*) const;
-    void resize(const IntSize&);
 
     void setPausedInDebuggerMessage(const String*);
 
@@ -113,12 +112,11 @@
 private:
     InspectorOverlay(Page*, InspectorClient*);
 
-    void drawGutter();
     void drawNodeHighlight();
     void drawRectHighlight();
     void drawPausedInDebuggerMessage();
     Page* overlayPage();
-    void reset(const IntSize& viewportSize, const IntSize& frameViewFullSize);
+    void reset();
     void evaluateInOverlay(const String& method, const String& argument);
     void evaluateInOverlay(const String& method, PassRefPtr<InspectorValue> argument);
 
@@ -130,7 +128,6 @@
     OwnPtr<IntRect> m_highlightRect;
     OwnPtr<Page> m_overlayPage;
     HighlightConfig m_rectHighlightConfig;
-    IntSize m_size;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/inspector/InspectorOverlayPage.html (129895 => 129896)


--- trunk/Source/WebCore/inspector/InspectorOverlayPage.html	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebCore/inspector/InspectorOverlayPage.html	2012-09-28 14:55:07 UTC (rev 129896)
@@ -89,24 +89,6 @@
 #node-id {
     color: rgb(26, 26, 166);
 }
-
-#right-gutter {
-    display: none;
-    right: 0;
-    top: 0;
-    bottom: 0;
-    position: absolute;
-    background-color: darkgray;
-}
-
-#bottom-gutter {
-    display: none;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    position: absolute;
-    background-color: darkgray;
-}
 </style>
 <script>
 const lightGridColor = "rgba(0,0,0,0.2)";
@@ -284,41 +266,14 @@
         quad1[3].x === quad2[3].x && quad1[3].y === quad2[3].y;
 }
 
-function drawGutter()
+function reset(deviceScaleFactor)
 {
-    var frameWidth = frameViewFullSize.width;
-    var frameHeight = frameViewFullSize.height;
-
-    if (!frameWidth || document.body.offsetWidth <= frameWidth)
-        rightGutter.style.removeProperty("display");
-    else {
-        rightGutter.style.display = "block";
-        rightGutter.style.left = frameWidth + "px";
-    }
-
-    if (!frameHeight || document.body.offsetHeight <= frameHeight)
-        bottomGutter.style.removeProperty("display");
-    else {
-        bottomGutter.style.display = "block";
-        bottomGutter.style.top = frameHeight + "px";
-    }
-}
-
-function reset(resetData)
-{
-    var deviceScaleFactor = resetData.deviceScaleFactor;
-    var viewportSize = resetData.viewportSize;
-    window.frameViewFullSize = resetData.frameViewFullSize;
-
     window.canvas = document.getElementById("canvas");
     window.context = canvas.getContext("2d");
-    window.rightGutter = document.getElementById("right-gutter");
-    window.bottomGutter = document.getElementById("bottom-gutter");
-
-    canvas.width = deviceScaleFactor * viewportSize.width;
-    canvas.height = deviceScaleFactor * viewportSize.height;
-    canvas.style.width = viewportSize.width + "px";
-    canvas.style.height = viewportSize.height + "px";
+    canvas.width = deviceScaleFactor * document.body.offsetWidth;
+    canvas.height = deviceScaleFactor * document.body.offsetHeight;
+    canvas.style.width = document.body.offsetWidth + "px";
+    canvas.style.height = document.body.offsetHeight + "px";
     context.scale(deviceScaleFactor, deviceScaleFactor);
 
     document.getElementById("paused-in-debugger").style.visibility = "hidden";
@@ -562,7 +517,5 @@
   <span id="tag-name"></span><span id="node-id"></span><span id="class-name"></span>
   <span id="node-width"></span><span class="px">px</span><span class="px"> &#xD7; </span><span id="node-height"></span><span class="px">px</span>
 </div>
-<div id="right-gutter"></div>
-<div id="bottom-gutter"></div>
 <div id="log"></div>
 </html>

Modified: trunk/Source/WebKit/chromium/ChangeLog (129895 => 129896)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-09-28 14:55:07 UTC (rev 129896)
@@ -1,3 +1,29 @@
+2012-09-28  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r129882.
+        http://trac.webkit.org/changeset/129882
+        https://bugs.webkit.org/show_bug.cgi?id=97913
+
+        Repaint is incorrect on many tests (Requested by schenney on
+        #webkit).
+
+        * src/WebDevToolsAgentImpl.cpp:
+        (OverlayZOrders):
+        (WebKit::DeviceMetricsSupport::DeviceMetricsSupport):
+        (WebKit::DeviceMetricsSupport::~DeviceMetricsSupport):
+        (WebKit::DeviceMetricsSupport::restore):
+        (WebKit::DeviceMetricsSupport::paintPageOverlay):
+        (DeviceMetricsSupport):
+        (WebKit::WebDevToolsAgentImpl::attach):
+        (WebKit::WebDevToolsAgentImpl::webViewResized):
+        (WebKit::WebDevToolsAgentImpl::overrideDeviceMetrics):
+        * src/WebDevToolsAgentImpl.h:
+        (WebDevToolsAgentImpl):
+        * src/WebDevToolsAgentPrivate.h:
+        (WebDevToolsAgentPrivate):
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::resize):
+
 2012-09-28  Kentaro Hara  <[email protected]>
 
         Unreviewed, rolling out r129825.

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp (129895 => 129896)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2012-09-28 14:55:07 UTC (rev 129896)
@@ -72,6 +72,8 @@
 using namespace std;
 
 namespace OverlayZOrders {
+static const int viewportGutter = 97;
+
 // Use 99 as a big z-order number so that highlight is above other overlays.
 static const int highlight = 99;
 }
@@ -181,18 +183,20 @@
     OwnPtr<WebDevToolsAgent::MessageDescriptor> m_descriptor;
 };
 
-class DeviceMetricsSupport {
+class DeviceMetricsSupport : public WebPageOverlay {
 public:
     DeviceMetricsSupport(WebViewImpl* webView)
         : m_webView(webView)
         , m_fitWindow(false)
         , m_originalZoomFactor(0)
     {
+        m_webView->addPageOverlay(this, OverlayZOrders::viewportGutter);
     }
 
     ~DeviceMetricsSupport()
     {
         restore();
+        m_webView->removePageOverlay(this);
     }
 
     void setDeviceMetrics(int width, int height, float textZoomFactor, bool fitWindow)
@@ -281,7 +285,7 @@
         view->setHorizontalScrollbarLock(false);
         view->setVerticalScrollbarLock(false);
         view->setScrollbarModes(ScrollbarAuto, ScrollbarAuto, false, false);
-        view->setFrameRect(IntRect(IntPoint(), IntSize(m_webView->size())));
+        view->resize(IntSize(m_webView->size()));
         m_webView->sendResizeEventAndRepaint();
     }
 
@@ -337,6 +341,19 @@
         doc->updateLayout();
     }
 
+    virtual void paintPageOverlay(WebCanvas* canvas)
+    {
+        FrameView* frameView = this->frameView();
+        if (!frameView)
+            return;
+
+        GraphicsContextBuilder builder(canvas);
+        GraphicsContext& gc = builder.context();
+        gc.clipOut(IntRect(IntPoint(), frameView->size()));
+        gc.setFillColor(Color::darkGray, ColorSpaceDeviceRGB);
+        gc.drawRect(IntRect(IntPoint(), m_webView->size()));
+    }
+
     WebCore::FrameView* frameView()
     {
         return m_webView->mainFrameImpl() ? m_webView->mainFrameImpl()->frameView() : 0;
@@ -372,7 +389,6 @@
 
     ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client);
     inspectorController()->connectFrontend(this);
-    inspectorController()->webViewResized(m_webViewImpl->size());
     m_attached = true;
 }
 
@@ -421,12 +437,10 @@
     return !!m_metricsSupport;
 }
 
-void WebDevToolsAgentImpl::webViewResized(const WebSize& size)
+void WebDevToolsAgentImpl::webViewResized()
 {
     if (m_metricsSupport)
         m_metricsSupport->webViewResized();
-    if (InspectorController* ic = inspectorController())
-        ic->webViewResized(IntSize(size.width, size.height));
 }
 
 void WebDevToolsAgentImpl::overrideDeviceMetrics(int width, int height, float fontScaleFactor, bool fitWindow)
@@ -434,19 +448,12 @@
     if (!width && !height) {
         if (m_metricsSupport)
             m_metricsSupport.clear();
-        if (InspectorController* ic = inspectorController())
-            ic->webViewResized(IntSize());
         return;
     }
 
     if (!m_metricsSupport)
         m_metricsSupport = adoptPtr(new DeviceMetricsSupport(m_webViewImpl));
-
     m_metricsSupport->setDeviceMetrics(width, height, fontScaleFactor, fitWindow);
-    if (InspectorController* ic = inspectorController()) {
-        WebSize size = m_webViewImpl->size();
-        ic->webViewResized(IntSize(size.width, size.height));
-    }
 }
 
 void WebDevToolsAgentImpl::autoZoomPageToFitWidth()

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h (129895 => 129896)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2012-09-28 14:55:07 UTC (rev 129896)
@@ -76,7 +76,7 @@
     virtual void didCreateScriptContext(WebFrameImpl*, int worldId);
     virtual void mainFrameViewCreated(WebFrameImpl*);
     virtual bool metricsOverridden();
-    virtual void webViewResized(const WebSize&);
+    virtual void webViewResized();
 
     // WebDevToolsAgent implementation.
     virtual void attach();

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentPrivate.h (129895 => 129896)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentPrivate.h	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentPrivate.h	2012-09-28 14:55:07 UTC (rev 129896)
@@ -54,7 +54,7 @@
     virtual bool metricsOverridden() = 0;
 
     // WebViewImpl has been resized.
-    virtual void webViewResized(const WebSize&) = 0;
+    virtual void webViewResized() = 0;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (129895 => 129896)


--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2012-09-28 14:32:49 UTC (rev 129895)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2012-09-28 14:55:07 UTC (rev 129896)
@@ -1521,9 +1521,9 @@
 #endif
 
     WebDevToolsAgentPrivate* agentPrivate = devToolsAgentPrivate();
-    if (agentPrivate)
-        agentPrivate->webViewResized(newSize);
-    if (!agentPrivate || !agentPrivate->metricsOverridden()) {
+    if (agentPrivate && agentPrivate->metricsOverridden())
+        agentPrivate->webViewResized();
+    else {
         WebFrameImpl* webFrame = mainFrameImpl();
         if (webFrame->frameView())
             webFrame->frameView()->resize(newSize.width, newSize.height);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to