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"> × </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);