Index: third_party/WebKit/Source/web/InspectorRenderingAgent.cpp |
diff --git a/third_party/WebKit/Source/web/InspectorRenderingAgent.cpp b/third_party/WebKit/Source/web/InspectorRenderingAgent.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..75ef216324732cf6ba514d966b49a794bf7950a7 |
--- /dev/null |
+++ b/third_party/WebKit/Source/web/InspectorRenderingAgent.cpp |
@@ -0,0 +1,126 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "web/InspectorRenderingAgent.h" |
+ |
+#include "core/frame/FrameView.h" |
+#include "core/frame/Settings.h" |
+#include "core/page/Page.h" |
+#include "web/InspectorOverlay.h" |
+#include "web/WebLocalFrameImpl.h" |
+#include "web/WebViewImpl.h" |
+ |
+namespace blink { |
+ |
+using protocol::Response; |
+ |
+namespace RenderingAgentState { |
+static const char kShowDebugBorders[] = "showDebugBorders"; |
+static const char kShowFPSCounter[] = "showFPSCounter"; |
+static const char kShowPaintRects[] = "showPaintRects"; |
+static const char kShowScrollBottleneckRects[] = "showScrollBottleneckRects"; |
+static const char kShowSizeOnResize[] = "showSizeOnResize"; |
+} |
+ |
+InspectorRenderingAgent* InspectorRenderingAgent::Create( |
+ WebLocalFrameImpl* web_local_frame_impl, |
+ InspectorOverlay* overlay) { |
+ return new InspectorRenderingAgent(web_local_frame_impl, overlay); |
+} |
+ |
+InspectorRenderingAgent::InspectorRenderingAgent( |
+ WebLocalFrameImpl* web_local_frame_impl, |
+ InspectorOverlay* overlay) |
+ : web_local_frame_impl_(web_local_frame_impl), overlay_(overlay) {} |
+ |
+WebViewImpl* InspectorRenderingAgent::GetWebViewImpl() { |
+ return web_local_frame_impl_->ViewImpl(); |
+} |
+ |
+void InspectorRenderingAgent::Restore() { |
+ setShowDebugBorders( |
+ state_->booleanProperty(RenderingAgentState::kShowDebugBorders, false)); |
+ setShowFPSCounter( |
+ state_->booleanProperty(RenderingAgentState::kShowFPSCounter, false)); |
+ setShowPaintRects( |
+ state_->booleanProperty(RenderingAgentState::kShowPaintRects, false)); |
+ setShowScrollBottleneckRects(state_->booleanProperty( |
+ RenderingAgentState::kShowScrollBottleneckRects, false)); |
+ setShowViewportSizeOnResize( |
+ state_->booleanProperty(RenderingAgentState::kShowSizeOnResize, false)); |
+} |
+ |
+Response InspectorRenderingAgent::disable() { |
+ setShowDebugBorders(false); |
+ setShowFPSCounter(false); |
+ setShowPaintRects(false); |
+ setShowScrollBottleneckRects(false); |
+ setShowViewportSizeOnResize(false); |
+ return Response::OK(); |
+} |
+ |
+Response InspectorRenderingAgent::setShowDebugBorders(bool show) { |
+ state_->setBoolean(RenderingAgentState::kShowDebugBorders, show); |
+ if (show) { |
+ Response response = CompositingEnabled(); |
+ if (!response.isSuccess()) |
+ return response; |
+ } |
+ GetWebViewImpl()->SetShowDebugBorders(show); |
+ return Response::OK(); |
+} |
+ |
+Response InspectorRenderingAgent::setShowFPSCounter(bool show) { |
+ state_->setBoolean(RenderingAgentState::kShowFPSCounter, show); |
+ if (show) { |
+ Response response = CompositingEnabled(); |
+ if (!response.isSuccess()) |
+ return response; |
+ } |
+ GetWebViewImpl()->SetShowFPSCounter(show); |
+ return Response::OK(); |
+} |
+ |
+Response InspectorRenderingAgent::setShowPaintRects(bool show) { |
+ state_->setBoolean(RenderingAgentState::kShowPaintRects, show); |
+ GetWebViewImpl()->SetShowPaintRects(show); |
+ if (!show && web_local_frame_impl_->GetFrameView()) |
+ web_local_frame_impl_->GetFrameView()->Invalidate(); |
+ return Response::OK(); |
+} |
+ |
+Response InspectorRenderingAgent::setShowScrollBottleneckRects(bool show) { |
+ state_->setBoolean(RenderingAgentState::kShowScrollBottleneckRects, show); |
+ if (show) { |
+ Response response = CompositingEnabled(); |
+ if (!response.isSuccess()) |
+ return response; |
+ } |
+ GetWebViewImpl()->SetShowScrollBottleneckRects(show); |
+ return Response::OK(); |
+} |
+ |
+Response InspectorRenderingAgent::setShowViewportSizeOnResize(bool show) { |
+ state_->setBoolean(RenderingAgentState::kShowSizeOnResize, show); |
+ if (overlay_) |
+ overlay_->SetShowViewportSizeOnResize(show); |
+ return Response::OK(); |
+} |
+ |
+Response InspectorRenderingAgent::CompositingEnabled() { |
+ if (!GetWebViewImpl() |
+ ->GetPage() |
+ ->GetSettings() |
+ .GetAcceleratedCompositingEnabled()) |
+ return Response::Error("Compositing mode is not supported"); |
+ return Response::OK(); |
+} |
+ |
+DEFINE_TRACE(InspectorRenderingAgent) { |
+ visitor->Trace(web_local_frame_impl_); |
+ visitor->Trace(overlay_); |
+ InspectorBaseAgent::Trace(visitor); |
+} |
+ |
+} // namespace blink |