Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1280)

Unified Diff: content/renderer/render_view_impl.cc

Issue 1023783004: [DevTools] Move DevToolsAgent to RenderFrameImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index eecfa02094a668f7b8ce1138b6f8c6a2b81674a6..f4a2cbfcc137ac5bf93f064e7bc2e40a90e2ffb9 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -71,7 +71,6 @@
#include "content/public/renderer/render_view_visitor.h"
#include "content/renderer/browser_plugin/browser_plugin.h"
#include "content/renderer/browser_plugin/browser_plugin_manager.h"
-#include "content/renderer/devtools/devtools_agent.h"
#include "content/renderer/disambiguation_popup_helper.h"
#include "content/renderer/dom_storage/webstoragenamespace_impl.h"
#include "content/renderer/drop_data_builder.h"
@@ -416,6 +415,12 @@ static void ConvertToFaviconSizes(
sizes->push_back(gfx::Size(web_sizes[i]));
}
+static blink::WebDevToolsAgent* GetWebDevToolsAgent(WebView* webview) {
+ if (!webview || !webview->mainFrame()->isWebLocalFrame())
+ return nullptr;
+ return webview->mainFrame()->toWebLocalFrame()->devToolsAgent();
+}
+
///////////////////////////////////////////////////////////////////////////////
struct RenderViewImpl::PendingFileChooser {
@@ -637,7 +642,6 @@ RenderViewImpl::RenderViewImpl(const ViewMsg_New_Params& params)
#endif
has_scrolled_focused_editable_node_into_rect_(false),
speech_recognition_dispatcher_(NULL),
- devtools_agent_(NULL),
mouse_lock_dispatcher_(NULL),
#if defined(OS_ANDROID)
expected_content_intent_id_(0),
@@ -775,14 +779,19 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params,
new TextInputClientObserver(this);
#endif // defined(OS_MACOSX)
- // The next group of objects all implement RenderViewObserver, so are deleted
- // along with the RenderView automatically.
- if (!proxy) {
- devtools_agent_ = new DevToolsAgent(main_render_frame_.get());
+ // TODO(dgozman): this should actually be in RenderFrameImpl::Initialize,
+ // but we have to somehow differentiate local frame root there.
+ if (!proxy)
+ main_render_frame_->CreateDevToolsAgent();
+
+ // TODO(dgozman): do this not for main frame, but for local frame roots.
+ if (blink::WebDevToolsAgent* devToolsAgent = GetWebDevToolsAgent(webview())) {
if (RenderWidgetCompositor* rwc = compositor())
- webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId());
+ devToolsAgent->setLayerTreeId(rwc->GetLayerTreeId());
}
+ // The next group of objects all implement RenderViewObserver, so are deleted
+ // along with the RenderView automatically.
mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this);
history_controller_.reset(new HistoryController(this));
@@ -2021,8 +2030,9 @@ void RenderViewImpl::initializeLayerTreeView() {
RenderWidgetCompositor* rwc = compositor();
if (!rwc)
return;
- if (webview() && webview()->devToolsAgent())
- webview()->devToolsAgent()->setLayerTreeId(rwc->GetLayerTreeId());
+ // TODO(dgozman): do this not for main frame, but for local frame roots.
+ if (blink::WebDevToolsAgent* devToolsAgent = GetWebDevToolsAgent(webview()))
+ devToolsAgent->setLayerTreeId(rwc->GetLayerTreeId());
bool use_threaded_event_handling = true;
#if defined(OS_MACOSX) && !defined(OS_IOS)
« content/renderer/render_frame_impl.cc ('K') | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698