Index: Source/web/InspectorOverlayImpl.cpp |
diff --git a/Source/web/InspectorOverlayImpl.cpp b/Source/web/InspectorOverlayImpl.cpp |
index 8dbf0ba632e7200523dffa4d6dcfbaebf10ae1df..0d6cfcb24cc21b8d0eaa67729f3abaf46f88cacd 100644 |
--- a/Source/web/InspectorOverlayImpl.cpp |
+++ b/Source/web/InspectorOverlayImpl.cpp |
@@ -37,6 +37,7 @@ |
#include "core/frame/LocalFrame.h" |
#include "core/frame/Settings.h" |
#include "core/input/EventHandler.h" |
+#include "core/inspector/InspectorDebuggerAgent.h" |
#include "core/inspector/InspectorOverlayHost.h" |
#include "core/inspector/LayoutEditor.h" |
#include "core/loader/EmptyClients.h" |
@@ -57,37 +58,6 @@ |
namespace blink { |
-namespace { |
- |
-class InspectorOverlayStub : public NoBaseWillBeGarbageCollectedFinalized<InspectorOverlayStub>, public InspectorOverlay { |
- WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED(InspectorOverlayStub); |
- WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(InspectorOverlayStub); |
-public: |
- InspectorOverlayStub() { } |
- DECLARE_TRACE(); |
- |
- // InspectorOverlay implementation. |
- void update() override { } |
- void setPausedInDebuggerMessage(const String*) override { } |
- void setInspectModeEnabled(bool) override { } |
- void hideHighlight() override { } |
- void highlightNode(Node*, Node* eventTarget, const InspectorHighlightConfig&, bool omitTooltip) override { } |
- void highlightQuad(PassOwnPtr<FloatQuad>, const InspectorHighlightConfig&) override { } |
- void showAndHideViewSize(bool showGrid) override { } |
- void setListener(InspectorOverlay::Listener* listener) override { } |
- void suspendUpdates() override { } |
- void resumeUpdates() override { } |
- void clear() override { } |
- void setLayoutEditor(PassOwnPtrWillBeRawPtr<LayoutEditor>) override { } |
-}; |
- |
-DEFINE_TRACE(InspectorOverlayStub) |
-{ |
- InspectorOverlay::trace(visitor); |
-} |
- |
-} // anonymous namespace |
- |
class InspectorOverlayImpl::InspectorPageOverlayDelegate final : public PageOverlay::Delegate { |
public: |
explicit InspectorPageOverlayDelegate(InspectorOverlayImpl& overlay) |
@@ -164,18 +134,13 @@ private: |
}; |
-// static |
-PassOwnPtrWillBeRawPtr<InspectorOverlay> InspectorOverlayImpl::createEmpty() |
-{ |
- return adoptPtrWillBeNoop(new InspectorOverlayStub()); |
-} |
- |
InspectorOverlayImpl::InspectorOverlayImpl(WebViewImpl* webViewImpl) |
: m_webViewImpl(webViewImpl) |
, m_inspectModeEnabled(false) |
, m_overlayHost(InspectorOverlayHost::create()) |
, m_drawViewSize(false) |
, m_drawViewSizeWithGrid(false) |
+ , m_resizeTimerActive(false) |
, m_omitTooltip(false) |
, m_timer(this, &InspectorOverlayImpl::onTimer) |
, m_suspendCount(0) |
@@ -197,9 +162,15 @@ DEFINE_TRACE(InspectorOverlayImpl) |
visitor->trace(m_overlayPage); |
visitor->trace(m_overlayChromeClient); |
visitor->trace(m_overlayHost); |
- visitor->trace(m_listener); |
visitor->trace(m_layoutEditor); |
- InspectorOverlay::trace(visitor); |
+} |
+ |
+void InspectorOverlayImpl::init(InspectorCSSAgent* cssAgent, InspectorDebuggerAgent* debuggerAgent) |
+{ |
+ m_layoutEditor = LayoutEditor::create(cssAgent); |
+ // TODO(dgozman): overlay should be a listener, not layout editor. |
+ m_overlayHost->setLayoutEditorListener(m_layoutEditor.get()); |
+ m_debuggerAgent = debuggerAgent; |
} |
void InspectorOverlayImpl::invalidate() |
@@ -297,19 +268,11 @@ void InspectorOverlayImpl::highlightQuad(PassOwnPtr<FloatQuad> quad, const Inspe |
update(); |
} |
-void InspectorOverlayImpl::showAndHideViewSize(bool showGrid) |
-{ |
- m_drawViewSize = true; |
- m_drawViewSizeWithGrid = showGrid; |
- update(); |
- m_timer.startOneShot(1, FROM_HERE); |
-} |
- |
bool InspectorOverlayImpl::isEmpty() |
{ |
if (m_suspendCount) |
return true; |
- bool hasAlwaysVisibleElements = m_highlightNode || m_eventTargetNode || m_highlightQuad || m_drawViewSize; |
+ bool hasAlwaysVisibleElements = m_highlightNode || m_eventTargetNode || m_highlightQuad || (m_resizeTimerActive && m_drawViewSize); |
bool hasInvisibleInInspectModeElements = !m_pausedInDebuggerMessage.isNull(); |
return !(hasAlwaysVisibleElements || (hasInvisibleInInspectModeElements && !m_inspectModeEnabled)); |
} |
@@ -388,7 +351,7 @@ void InspectorOverlayImpl::drawPausedInDebuggerMessage() |
void InspectorOverlayImpl::drawViewSize() |
{ |
- if (m_drawViewSize) |
+ if (m_resizeTimerActive && m_drawViewSize) |
evaluateInOverlay("drawViewSize", m_drawViewSizeWithGrid ? "true" : "false"); |
} |
@@ -492,7 +455,7 @@ void InspectorOverlayImpl::evaluateInOverlay(const String& method, PassRefPtr<JS |
void InspectorOverlayImpl::onTimer(Timer<InspectorOverlayImpl>*) |
{ |
- m_drawViewSize = false; |
+ m_resizeTimerActive = false; |
update(); |
} |
@@ -503,7 +466,7 @@ void InspectorOverlayImpl::clear() |
m_overlayPage.clear(); |
m_overlayChromeClient.clear(); |
} |
- m_drawViewSize = false; |
+ m_resizeTimerActive = false; |
m_pausedInDebuggerMessage = String(); |
m_inspectModeEnabled = false; |
m_timer.stop(); |
@@ -512,31 +475,44 @@ void InspectorOverlayImpl::clear() |
void InspectorOverlayImpl::overlayResumed() |
{ |
- if (m_listener) |
- m_listener->overlayResumed(); |
+ if (m_debuggerAgent) { |
+ ErrorString error; |
+ m_debuggerAgent->resume(&error); |
+ } |
} |
void InspectorOverlayImpl::overlaySteppedOver() |
{ |
- if (m_listener) |
- m_listener->overlaySteppedOver(); |
+ if (m_debuggerAgent) { |
+ ErrorString error; |
+ m_debuggerAgent->stepOver(&error); |
+ } |
} |
-void InspectorOverlayImpl::suspendUpdates() |
+void InspectorOverlayImpl::profilingStarted() |
{ |
if (!m_suspendCount++) |
clear(); |
} |
-void InspectorOverlayImpl::resumeUpdates() |
+void InspectorOverlayImpl::profilingStopped() |
{ |
--m_suspendCount; |
} |
-void InspectorOverlayImpl::setLayoutEditor(PassOwnPtrWillBeRawPtr<LayoutEditor> layoutEditor) |
+void InspectorOverlayImpl::pageLayoutInvalidated(bool resized) |
{ |
- m_layoutEditor = layoutEditor; |
- m_overlayHost->setLayoutEditorListener(m_layoutEditor.get()); |
+ if (resized && m_drawViewSize) { |
+ m_resizeTimerActive = true; |
+ m_timer.startOneShot(1, FROM_HERE); |
+ } |
+ update(); |
+} |
+ |
+void InspectorOverlayImpl::setShowViewportSizeOnResize(bool show, bool showGrid) |
+{ |
+ m_drawViewSize = show; |
+ m_drawViewSizeWithGrid = showGrid; |
} |
} // namespace blink |