Commit 429a60d1 authored by dgozman@chromium.org's avatar dgozman@chromium.org

[DevTools] Make WebDevToolsAgentImpl own InspectorOverlayImpl.

BUG=none

Review URL: https://codereview.chromium.org/1316033003

git-svn-id: svn://svn.chromium.org/blink/trunk@201331 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 866b2aa4
......@@ -94,6 +94,7 @@
#include "public/web/WebSettings.h"
#include "web/DevToolsEmulator.h"
#include "web/InspectorEmulationAgent.h"
#include "web/InspectorOverlayImpl.h"
#include "web/InspectorRenderingAgent.h"
#include "web/WebFrameWidgetImpl.h"
#include "web/WebInputEventConversion.h"
......@@ -281,13 +282,13 @@ PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLoc
WebViewImpl* view = frame->viewImpl();
bool isMainFrame = view && view->mainFrameImpl() == frame;
if (!isMainFrame) {
WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, frame->inspectorOverlay());
WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, InspectorOverlayImpl::createEmpty());
if (frame->frameWidget())
agent->layerTreeViewChanged(toWebFrameWidgetImpl(frame->frameWidget())->layerTreeView());
return adoptPtrWillBeNoop(agent);
}
WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, view->inspectorOverlay());
WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, InspectorOverlayImpl::create(view));
agent->registerAgent(InspectorRenderingAgent::create(view));
agent->registerAgent(InspectorEmulationAgent::create(view));
// TODO(dgozman): migrate each of the following agents to frame once module is ready.
......@@ -305,7 +306,7 @@ PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLoc
WebDevToolsAgentImpl::WebDevToolsAgentImpl(
WebLocalFrameImpl* webLocalFrameImpl,
WebDevToolsAgentClient* client,
InspectorOverlay* overlay)
PassOwnPtrWillBeRawPtr<InspectorOverlay> overlay)
: m_client(client)
, m_webLocalFrameImpl(webLocalFrameImpl)
, m_attached(false)
......@@ -335,11 +336,11 @@ WebDevToolsAgentImpl::WebDevToolsAgentImpl(
m_inspectorAgent = inspectorAgentPtr.get();
m_agents.append(inspectorAgentPtr.release());
OwnPtrWillBeRawPtr<InspectorPageAgent> pageAgentPtr(InspectorPageAgent::create(m_webLocalFrameImpl->frame(), m_overlay, m_resourceContentLoader.get()));
OwnPtrWillBeRawPtr<InspectorPageAgent> pageAgentPtr(InspectorPageAgent::create(m_webLocalFrameImpl->frame(), m_overlay.get(), m_resourceContentLoader.get()));
m_pageAgent = pageAgentPtr.get();
m_agents.append(pageAgentPtr.release());
OwnPtrWillBeRawPtr<InspectorDOMAgent> domAgentPtr(InspectorDOMAgent::create(m_pageAgent, injectedScriptManager, m_overlay));
OwnPtrWillBeRawPtr<InspectorDOMAgent> domAgentPtr(InspectorDOMAgent::create(m_pageAgent, injectedScriptManager, m_overlay.get()));
m_domAgent = domAgentPtr.get();
m_agents.append(domAgentPtr.release());
......@@ -459,7 +460,7 @@ void WebDevToolsAgentImpl::initializeDeferredAgents()
m_agents.append(InspectorApplicationCacheAgent::create(m_pageAgent));
OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgent::create(MainThreadDebugger::instance(), m_pageAgent, injectedScriptManager, m_overlay));
OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgent::create(MainThreadDebugger::instance(), m_pageAgent, injectedScriptManager, m_overlay.get()));
InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get();
m_agents.append(debuggerAgentPtr.release());
m_asyncCallTracker = adoptPtrWillBeNoop(new AsyncCallTracker(debuggerAgent->v8DebuggerAgent(), m_instrumentingAgents.get()));
......@@ -469,7 +470,7 @@ void WebDevToolsAgentImpl::initializeDeferredAgents()
m_agents.append(InspectorInputAgent::create(m_pageAgent));
v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
m_agents.append(InspectorProfilerAgent::create(isolate, injectedScriptManager, m_overlay));
m_agents.append(InspectorProfilerAgent::create(isolate, injectedScriptManager, m_overlay.get()));
m_agents.append(InspectorHeapProfilerAgent::create(isolate, injectedScriptManager));
......
......@@ -82,6 +82,7 @@ public:
void willBeDestroyed();
WebDevToolsAgentClient* client() { return m_client; }
InspectorOverlay* overlay() const { return m_overlay.get(); }
bool handleInputEvent(const WebInputEvent&);
void flushPendingProtocolNotifications();
void dispatchMessageFromFrontend(const String& message);
......@@ -106,7 +107,7 @@ public:
void evaluateInWebInspector(long callId, const WebString& script) override;
private:
WebDevToolsAgentImpl(WebLocalFrameImpl*, WebDevToolsAgentClient*, InspectorOverlay*);
WebDevToolsAgentImpl(WebLocalFrameImpl*, WebDevToolsAgentClient*, PassOwnPtrWillBeRawPtr<InspectorOverlay>);
// InspectorStateClient implementation.
void updateInspectorStateCookie(const WTF::String&) override;
......@@ -143,7 +144,7 @@ private:
OwnPtrWillBeMember<InjectedScriptManager> m_injectedScriptManager;
OwnPtrWillBeMember<InspectorResourceContentLoader> m_resourceContentLoader;
OwnPtrWillBeMember<InspectorCompositeState> m_state;
RawPtrWillBeMember<InspectorOverlay> m_overlay;
OwnPtrWillBeMember<InspectorOverlay> m_overlay;
RawPtrWillBeMember<InspectorInspectorAgent> m_inspectorAgent;
RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
......
......@@ -219,12 +219,10 @@
#include "web/CompositionUnderlineVectorBuilder.h"
#include "web/FindInPageCoordinates.h"
#include "web/GeolocationClientProxy.h"
#include "web/InspectorOverlayImpl.h"
#include "web/LocalFileSystemClient.h"
#include "web/MIDIClientProxy.h"
#include "web/NavigatorContentUtilsClientImpl.h"
#include "web/NotificationPermissionClientImpl.h"
#include "web/PageOverlay.h"
#include "web/RemoteBridgeFrameOwner.h"
#include "web/SharedWorkerRepositoryClientImpl.h"
#include "web/SuspendableScriptExecutor.h"
......@@ -1695,7 +1693,6 @@ DEFINE_TRACE(WebLocalFrameImpl)
visitor->trace(m_frameLoaderClientImpl);
visitor->trace(m_frame);
visitor->trace(m_devToolsAgent);
visitor->trace(m_inspectorOverlay);
visitor->trace(m_textFinder);
visitor->trace(m_printContext);
visitor->trace(m_geolocationClientProxy);
......@@ -2045,13 +2042,6 @@ void WebLocalFrameImpl::setDevToolsAgentClient(WebDevToolsAgentClient* devToolsC
}
}
InspectorOverlay* WebLocalFrameImpl::inspectorOverlay()
{
if (!m_inspectorOverlay)
m_inspectorOverlay = InspectorOverlayImpl::createEmpty();
return m_inspectorOverlay.get();
}
WebDevToolsAgent* WebLocalFrameImpl::devToolsAgent()
{
return m_devToolsAgent.get();
......
......@@ -47,7 +47,6 @@ namespace blink {
class ChromePrintContext;
class GeolocationClientProxy;
class InspectorOverlay;
class IntSize;
class KURL;
class Range;
......@@ -285,7 +284,6 @@ public:
FrameView* frameView() const { return frame() ? frame()->view() : 0; }
InspectorOverlay* inspectorOverlay();
WebDevToolsAgentImpl* devToolsAgentImpl() const { return m_devToolsAgent.get(); }
// Getters for the impls corresponding to Get(Provisional)DataSource. They
......@@ -366,7 +364,6 @@ private:
// FIXME: These will need to change to WebFrame when we introduce WebFrameProxy.
RefPtrWillBeMember<LocalFrame> m_frame;
OwnPtrWillBeMember<InspectorOverlay> m_inspectorOverlay;
OwnPtrWillBeMember<WebDevToolsAgentImpl> m_devToolsAgent;
// This is set if the frame is the root of a local frame tree, and requires a widget for layout.
......
......@@ -501,11 +501,11 @@ WebDevToolsAgentImpl* WebViewImpl::mainFrameDevToolsAgentImpl()
return mainFrame ? mainFrame->devToolsAgentImpl() : nullptr;
}
InspectorOverlay* WebViewImpl::inspectorOverlay()
InspectorOverlayImpl* WebViewImpl::inspectorOverlay()
{
if (!m_inspectorOverlay)
m_inspectorOverlay = InspectorOverlayImpl::create(this);
return m_inspectorOverlay.get();
if (WebDevToolsAgentImpl* devtools = mainFrameDevToolsAgentImpl())
return static_cast<InspectorOverlayImpl*>(devtools->overlay());
return nullptr;
}
WebLocalFrameImpl* WebViewImpl::mainFrameImpl()
......@@ -1894,8 +1894,8 @@ void WebViewImpl::layout()
PageWidgetDelegate::layout(*m_page, *mainFrameImpl()->frame());
updateLayerTreeBackgroundColor();
if (m_inspectorOverlay)
m_inspectorOverlay->layout();
if (InspectorOverlayImpl* overlay = inspectorOverlay())
overlay->layout();
for (size_t i = 0; i < m_linkHighlights.size(); ++i)
m_linkHighlights[i]->updateGeometry();
......@@ -2087,8 +2087,10 @@ bool WebViewImpl::handleInputEvent(const WebInputEvent& inputEvent)
if (devTools && devTools->handleInputEvent(inputEvent))
return true;
if (m_inspectorOverlay && m_inspectorOverlay->handleInputEvent(inputEvent))
return true;
if (InspectorOverlayImpl* overlay = inspectorOverlay()) {
if (overlay->handleInputEvent(inputEvent))
return true;
}
// Report the event to be NOT processed by WebKit, so that the browser can handle it appropriately.
if (m_ignoreInputEvents)
......@@ -3968,8 +3970,8 @@ void WebViewImpl::pageScaleFactorChanged()
{
pageScaleConstraintsSet().setNeedsReset(false);
updateLayerTreeViewport();
if (m_inspectorOverlay)
m_inspectorOverlay->update();
if (InspectorOverlayImpl* overlay = inspectorOverlay())
overlay->update();
m_devToolsEmulator->viewportChanged();
m_client->pageScaleFactorChanged();
}
......@@ -4430,8 +4432,8 @@ void WebViewImpl::updatePageOverlays()
{
if (m_pageColorOverlay)
m_pageColorOverlay->update();
if (m_inspectorOverlay) {
PageOverlay* inspectorPageOverlay = m_inspectorOverlay->pageOverlay();
if (InspectorOverlayImpl* overlay = inspectorOverlay()) {
PageOverlay* inspectorPageOverlay = overlay->pageOverlay();
if (inspectorPageOverlay)
inspectorPageOverlay->update();
}
......
......@@ -72,7 +72,6 @@ class DataObject;
class DevToolsEmulator;
class Frame;
class FullscreenController;
class InspectorOverlay;
class InspectorOverlayImpl;
class LinkHighlightImpl;
class PageOverlay;
......@@ -332,8 +331,6 @@ public:
WebDevToolsAgentImpl* mainFrameDevToolsAgentImpl();
InspectorOverlay* inspectorOverlay();
DevToolsEmulator* devToolsEmulator() const
{
return m_devToolsEmulator.get();
......@@ -537,6 +534,8 @@ public:
WebPageImportanceSignals& pageImportanceSignals() { return m_pageImportanceSignals; }
private:
InspectorOverlayImpl* inspectorOverlay();
void setPageScaleFactorAndLocation(float, const FloatPoint&);
void scrollAndRescaleViewports(float scaleFactor, const IntPoint& mainFrameOrigin, const FloatPoint& visualViewportOrigin);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment