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

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

Issue 2272213003: DevTools: remove devtools_discovery (merged into content). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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
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 "components/devtools_discovery/devtools_discovery_manager.h"
11 #include "content/public/browser/devtools_agent_host.h" 10 #include "content/public/browser/devtools_agent_host.h"
12 #include "content/public/browser/web_contents.h" 11 #include "content/public/browser/web_contents.h"
13 12
14 #if !defined(OS_ANDROID) 13 #if !defined(OS_ANDROID)
15 #include "chrome/browser/devtools/devtools_window.h" 14 #include "chrome/browser/devtools/devtools_window.h"
16 #include "chrome/browser/extensions/extension_tab_util.h" 15 #include "chrome/browser/extensions/extension_tab_util.h"
17 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/browser/profiles/profile_manager.h"
18 #include "chrome/browser/ui/browser_navigator.h"
19 #include "chrome/browser/ui/browser_navigator_params.h"
18 #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h" 20 #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h"
19 #include "content/public/browser/render_frame_host.h" 21 #include "content/public/browser/render_frame_host.h"
20 #include "extensions/browser/extension_host.h" 22 #include "extensions/browser/extension_host.h"
21 #include "extensions/browser/extension_registry.h" 23 #include "extensions/browser/extension_registry.h"
22 #include "extensions/browser/process_manager.h" 24 #include "extensions/browser/process_manager.h"
23 #else // !defined(OS_ANDROID) 25 #else // !defined(OS_ANDROID)
24 #include "chrome/browser/android/tab_android.h" 26 #include "chrome/browser/android/tab_android.h"
25 #include "chrome/browser/ui/android/tab_model/tab_model.h" 27 #include "chrome/browser/ui/android/tab_model/tab_model.h"
26 #include "chrome/browser/ui/android/tab_model/tab_model_list.h" 28 #include "chrome/browser/ui/android/tab_model/tab_model_list.h"
27 #endif // !defined(OS_ANDROID) 29 #endif // !defined(OS_ANDROID)
28 30
29 using devtools_discovery::DevToolsDiscoveryManager;
30
31 char ChromeDevToolsManagerDelegate::kTypeApp[] = "app"; 31 char ChromeDevToolsManagerDelegate::kTypeApp[] = "app";
32 char ChromeDevToolsManagerDelegate::kTypeBackgroundPage[] = "background_page"; 32 char ChromeDevToolsManagerDelegate::kTypeBackgroundPage[] = "background_page";
33 33
34 ChromeDevToolsManagerDelegate::ChromeDevToolsManagerDelegate() 34 ChromeDevToolsManagerDelegate::ChromeDevToolsManagerDelegate()
35 : network_protocol_handler_(new DevToolsNetworkProtocolHandler()) { 35 : network_protocol_handler_(new DevToolsNetworkProtocolHandler()) {
36 } 36 }
37 37
38 ChromeDevToolsManagerDelegate::~ChromeDevToolsManagerDelegate() { 38 ChromeDevToolsManagerDelegate::~ChromeDevToolsManagerDelegate() {
39 } 39 }
40 40
(...skipping 13 matching lines...) Expand all
54 content::WebContents* web_contents = agent_host->GetWebContents(); 54 content::WebContents* web_contents = agent_host->GetWebContents();
55 if (web_contents) 55 if (web_contents)
56 DevToolsWindow::OpenDevToolsWindow(web_contents); 56 DevToolsWindow::OpenDevToolsWindow(web_contents);
57 #endif // !defined(OS_ANDROID) 57 #endif // !defined(OS_ANDROID)
58 } 58 }
59 59
60 base::DictionaryValue* ChromeDevToolsManagerDelegate::HandleCommand( 60 base::DictionaryValue* ChromeDevToolsManagerDelegate::HandleCommand(
61 content::DevToolsAgentHost* agent_host, 61 content::DevToolsAgentHost* agent_host,
62 base::DictionaryValue* command_dict) { 62 base::DictionaryValue* command_dict) {
63 std::unique_ptr<base::DictionaryValue> result = 63 std::unique_ptr<base::DictionaryValue> result =
64 DevToolsDiscoveryManager::GetInstance()->HandleCreateTargetCommand( 64 HandleCreateTargetCommand(command_dict);
65 command_dict);
66 if (result) 65 if (result)
67 return result.release(); // Caller takes ownership. 66 return result.release(); // Caller takes ownership.
68 return network_protocol_handler_->HandleCommand(agent_host, command_dict); 67 return network_protocol_handler_->HandleCommand(agent_host, command_dict);
69 } 68 }
70 69
71 std::string ChromeDevToolsManagerDelegate::GetTargetType( 70 std::string ChromeDevToolsManagerDelegate::GetTargetType(
72 content::RenderFrameHost* host) { 71 content::RenderFrameHost* host) {
73 content::WebContents* web_contents = 72 content::WebContents* web_contents =
74 content::WebContents::FromRenderFrameHost(host); 73 content::WebContents::FromRenderFrameHost(host);
75 #if !defined(OS_ANDROID) 74 #if !defined(OS_ANDROID)
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 } 129 }
131 const extensions::Extension* extension = extensions::ExtensionRegistry::Get( 130 const extensions::Extension* extension = extensions::ExtensionRegistry::Get(
132 web_contents->GetBrowserContext())->enabled_extensions().GetByID( 131 web_contents->GetBrowserContext())->enabled_extensions().GetByID(
133 host->GetLastCommittedURL().host()); 132 host->GetLastCommittedURL().host());
134 if (extension) 133 if (extension)
135 return extension->name(); 134 return extension->name();
136 #endif // !defined(OS_ANDROID) 135 #endif // !defined(OS_ANDROID)
137 return ""; 136 return "";
138 } 137 }
139 138
139 scoped_refptr<content::DevToolsAgentHost>
140 ChromeDevToolsManagerDelegate::CreateNewTarget(const GURL& url) {
141 #if !defined(OS_ANDROID)
142 chrome::NavigateParams params(ProfileManager::GetLastUsedProfile(),
143 url, ui::PAGE_TRANSITION_AUTO_TOPLEVEL);
144 params.disposition = NEW_FOREGROUND_TAB;
145 chrome::Navigate(&params);
146 if (!params.target_contents)
147 return nullptr;
148
149 if (!params.target_contents)
dgozman 2016/08/25 01:08:11 This is checked 3 lines above.
150 return nullptr;
151 return content::DevToolsAgentHost::GetOrCreateFor(params.target_contents);
152
153 #else
154 if (TabModelList::empty())
155 return nullptr;
156
157 TabModel* tab_model = TabModelList::get(0);
158 if (!tab_model)
159 return nullptr;
160
161 WebContents* web_contents = tab_model->CreateNewTabForDevTools(url);
162 if (!web_contents)
163 return nullptr;
164
165 TabAndroid* tab = TabAndroid::FromWebContents(web_contents);
166 if (!tab)
167 return nullptr;
168
169 return content::DevToolsAgentHost::Create(new TabProxyDelegate(
dgozman 2016/08/25 01:08:11 TabProxyDelegate is a private class from another f
170 tab->GetAndroidId(), tab->GetTitle(), tab->GetURL()));
171 #endif // !defined(OS_ANDROID)
172 }
173
140 void ChromeDevToolsManagerDelegate::DevToolsAgentStateChanged( 174 void ChromeDevToolsManagerDelegate::DevToolsAgentStateChanged(
141 content::DevToolsAgentHost* agent_host, 175 content::DevToolsAgentHost* agent_host,
142 bool attached) { 176 bool attached) {
143 network_protocol_handler_->DevToolsAgentStateChanged(agent_host, attached); 177 network_protocol_handler_->DevToolsAgentStateChanged(agent_host, attached);
144 } 178 }
179
180 std::unique_ptr<base::DictionaryValue>
181 ChromeDevToolsManagerDelegate::HandleCreateTargetCommand(
182 base::DictionaryValue* command_dict) {
183 int id;
184 std::string method;
185 std::string url;
186 const base::DictionaryValue* params_dict = nullptr;
187 if (command_dict->GetInteger("id", &id) &&
188 command_dict->GetString("method", &method) &&
189 method == "Browser.createTarget" &&
190 command_dict->GetDictionary("params", &params_dict) &&
191 params_dict->GetString("url", &url)) {
192 scoped_refptr<content::DevToolsAgentHost> agent_host =
193 CreateNewTarget(GURL(url));
194 if (!agent_host)
195 return nullptr;
196 std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue());
197 result->SetInteger("id", id);
198 std::unique_ptr<base::DictionaryValue> cmd_result(
199 new base::DictionaryValue());
200 cmd_result->SetString("targetId", agent_host->GetId());
201 result->Set("result", std::move(cmd_result));
202 return result;
203 }
204 return nullptr;
205 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698