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

Side by Side Diff: chrome/browser/devtools/chrome_devtools_manager_delegate.cc

Issue 2294043002: DevTools: make <webview> remote debugging clients happy - they expect 'webview' target type. (Closed)
Patch Set: Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/devtools/chrome_devtools_manager_delegate.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" 5 #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h"
6 6
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 #include "chrome/browser/devtools/devtools_network_protocol_handler.h" 9 #include "chrome/browser/devtools/devtools_network_protocol_handler.h"
10 #include "chrome/browser/devtools/devtools_window.h" 10 #include "chrome/browser/devtools/devtools_window.h"
11 #include "chrome/browser/extensions/extension_tab_util.h" 11 #include "chrome/browser/extensions/extension_tab_util.h"
12 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/browser/profiles/profile_manager.h" 13 #include "chrome/browser/profiles/profile_manager.h"
14 #include "chrome/browser/ui/browser_navigator.h" 14 #include "chrome/browser/ui/browser_navigator.h"
15 #include "chrome/browser/ui/browser_navigator_params.h" 15 #include "chrome/browser/ui/browser_navigator_params.h"
16 #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h" 16 #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h"
17 #include "components/guest_view/browser/guest_view_base.h"
17 #include "content/public/browser/devtools_agent_host.h" 18 #include "content/public/browser/devtools_agent_host.h"
18 #include "content/public/browser/render_frame_host.h" 19 #include "content/public/browser/render_frame_host.h"
19 #include "content/public/browser/web_contents.h" 20 #include "content/public/browser/web_contents.h"
20 #include "extensions/browser/extension_host.h" 21 #include "extensions/browser/extension_host.h"
21 #include "extensions/browser/extension_registry.h" 22 #include "extensions/browser/extension_registry.h"
22 #include "extensions/browser/process_manager.h" 23 #include "extensions/browser/process_manager.h"
23 24
24 char ChromeDevToolsManagerDelegate::kTypeApp[] = "app"; 25 char ChromeDevToolsManagerDelegate::kTypeApp[] = "app";
25 char ChromeDevToolsManagerDelegate::kTypeBackgroundPage[] = "background_page"; 26 char ChromeDevToolsManagerDelegate::kTypeBackgroundPage[] = "background_page";
26 27 char ChromeDevToolsManagerDelegate::kTypeWebView[] = "webview";
27 28
28 ChromeDevToolsManagerDelegate::ChromeDevToolsManagerDelegate() 29 ChromeDevToolsManagerDelegate::ChromeDevToolsManagerDelegate()
29 : network_protocol_handler_(new DevToolsNetworkProtocolHandler()) { 30 : network_protocol_handler_(new DevToolsNetworkProtocolHandler()) {
30 content::DevToolsAgentHost::AddDiscoveryProvider( 31 content::DevToolsAgentHost::AddDiscoveryProvider(
31 base::Bind(&content::DevToolsAgentHost::GetOrCreateAll)); 32 base::Bind(&content::DevToolsAgentHost::GetOrCreateAll));
32 } 33 }
33 34
34 ChromeDevToolsManagerDelegate::~ChromeDevToolsManagerDelegate() { 35 ChromeDevToolsManagerDelegate::~ChromeDevToolsManagerDelegate() {
35 } 36 }
36 37
(...skipping 17 matching lines...) Expand all
54 base::DictionaryValue* ChromeDevToolsManagerDelegate::HandleCommand( 55 base::DictionaryValue* ChromeDevToolsManagerDelegate::HandleCommand(
55 content::DevToolsAgentHost* agent_host, 56 content::DevToolsAgentHost* agent_host,
56 base::DictionaryValue* command_dict) { 57 base::DictionaryValue* command_dict) {
57 return network_protocol_handler_->HandleCommand(agent_host, command_dict); 58 return network_protocol_handler_->HandleCommand(agent_host, command_dict);
58 } 59 }
59 60
60 std::string ChromeDevToolsManagerDelegate::GetTargetType( 61 std::string ChromeDevToolsManagerDelegate::GetTargetType(
61 content::RenderFrameHost* host) { 62 content::RenderFrameHost* host) {
62 content::WebContents* web_contents = 63 content::WebContents* web_contents =
63 content::WebContents::FromRenderFrameHost(host); 64 content::WebContents::FromRenderFrameHost(host);
65
66 guest_view::GuestViewBase* guest =
67 guest_view::GuestViewBase::FromWebContents(web_contents);
68 content::WebContents* guest_contents =
69 guest ? guest->embedder_web_contents() : nullptr;
70 if (guest_contents)
71 return kTypeWebView;
72
64 for (TabContentsIterator it; !it.done(); it.Next()) { 73 for (TabContentsIterator it; !it.done(); it.Next()) {
65 if (*it == web_contents) 74 if (*it == web_contents)
66 return content::DevToolsAgentHost::kTypePage; 75 return content::DevToolsAgentHost::kTypePage;
67 } 76 }
68 77
69 if (host->GetParent()) 78 if (host->GetParent())
70 return content::DevToolsAgentHost::kTypeFrame; 79 return content::DevToolsAgentHost::kTypeFrame;
71 80
72 const extensions::Extension* extension = extensions::ExtensionRegistry::Get( 81 const extensions::Extension* extension = extensions::ExtensionRegistry::Get(
73 web_contents->GetBrowserContext())->enabled_extensions().GetByID( 82 web_contents->GetBrowserContext())->enabled_extensions().GetByID(
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 if (!params.target_contents) 130 if (!params.target_contents)
122 return nullptr; 131 return nullptr;
123 return content::DevToolsAgentHost::GetOrCreateFor(params.target_contents); 132 return content::DevToolsAgentHost::GetOrCreateFor(params.target_contents);
124 } 133 }
125 134
126 void ChromeDevToolsManagerDelegate::DevToolsAgentStateChanged( 135 void ChromeDevToolsManagerDelegate::DevToolsAgentStateChanged(
127 content::DevToolsAgentHost* agent_host, 136 content::DevToolsAgentHost* agent_host,
128 bool attached) { 137 bool attached) {
129 network_protocol_handler_->DevToolsAgentStateChanged(agent_host, attached); 138 network_protocol_handler_->DevToolsAgentStateChanged(agent_host, attached);
130 } 139 }
OLDNEW
« no previous file with comments | « chrome/browser/devtools/chrome_devtools_manager_delegate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698