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

Side by Side Diff: headless/lib/browser/headless_devtools_manager_delegate.cc

Issue 2436763003: [DevTools] Remove Browser domain, switch clients to Target. (Closed)
Patch Set: include, rebase Created 4 years, 1 month 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "headless/lib/browser/headless_devtools_manager_delegate.h" 5 #include "headless/lib/browser/headless_devtools_manager_delegate.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
11 #include "content/public/browser/devtools_agent_host.h" 11 #include "content/public/browser/devtools_agent_host.h"
12 #include "content/public/browser/devtools_frontend_host.h" 12 #include "content/public/browser/devtools_frontend_host.h"
13 #include "content/public/browser/web_contents.h" 13 #include "content/public/browser/web_contents.h"
14 #include "headless/grit/headless_lib_resources.h" 14 #include "headless/grit/headless_lib_resources.h"
15 #include "headless/lib/browser/headless_browser_context_impl.h" 15 #include "headless/lib/browser/headless_browser_context_impl.h"
16 #include "headless/lib/browser/headless_browser_impl.h" 16 #include "headless/lib/browser/headless_browser_impl.h"
17 #include "headless/lib/browser/headless_web_contents_impl.h" 17 #include "headless/lib/browser/headless_web_contents_impl.h"
18 #include "headless/public/domains/browser.h" 18 #include "headless/public/domains/target.h"
19 #include "ui/base/resource/resource_bundle.h" 19 #include "ui/base/resource/resource_bundle.h"
20 20
21 namespace headless { 21 namespace headless {
22 22
23 HeadlessDevToolsManagerDelegate::HeadlessDevToolsManagerDelegate( 23 HeadlessDevToolsManagerDelegate::HeadlessDevToolsManagerDelegate(
24 base::WeakPtr<HeadlessBrowserImpl> browser) 24 base::WeakPtr<HeadlessBrowserImpl> browser)
25 : browser_(std::move(browser)), default_browser_context_(nullptr) { 25 : browser_(std::move(browser)), default_browser_context_(nullptr) {
26 command_map_["Browser.createTarget"] = 26 command_map_["Target.createTarget"] =
27 &HeadlessDevToolsManagerDelegate::CreateTarget; 27 &HeadlessDevToolsManagerDelegate::CreateTarget;
28 command_map_["Browser.closeTarget"] = 28 command_map_["Target.closeTarget"] =
29 &HeadlessDevToolsManagerDelegate::CloseTarget; 29 &HeadlessDevToolsManagerDelegate::CloseTarget;
30 command_map_["Browser.createBrowserContext"] = 30 command_map_["Target.createBrowserContext"] =
31 &HeadlessDevToolsManagerDelegate::CreateBrowserContext; 31 &HeadlessDevToolsManagerDelegate::CreateBrowserContext;
32 command_map_["Browser.disposeBrowserContext"] = 32 command_map_["Target.disposeBrowserContext"] =
33 &HeadlessDevToolsManagerDelegate::DisposeBrowserContext; 33 &HeadlessDevToolsManagerDelegate::DisposeBrowserContext;
34 } 34 }
35 35
36 HeadlessDevToolsManagerDelegate::~HeadlessDevToolsManagerDelegate() {} 36 HeadlessDevToolsManagerDelegate::~HeadlessDevToolsManagerDelegate() {}
37 37
38 base::DictionaryValue* HeadlessDevToolsManagerDelegate::HandleCommand( 38 base::DictionaryValue* HeadlessDevToolsManagerDelegate::HandleCommand(
39 content::DevToolsAgentHost* agent_host, 39 content::DevToolsAgentHost* agent_host,
40 base::DictionaryValue* command) { 40 base::DictionaryValue* command) {
41 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 41 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
42 42
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 } 96 }
97 context = default_browser_context_; 97 context = default_browser_context_;
98 } 98 }
99 99
100 HeadlessWebContentsImpl* web_contents_impl = 100 HeadlessWebContentsImpl* web_contents_impl =
101 HeadlessWebContentsImpl::From(context->CreateWebContentsBuilder() 101 HeadlessWebContentsImpl::From(context->CreateWebContentsBuilder()
102 .SetInitialURL(GURL(url)) 102 .SetInitialURL(GURL(url))
103 .SetWindowSize(gfx::Size(width, height)) 103 .SetWindowSize(gfx::Size(width, height))
104 .Build()); 104 .Build());
105 105
106 return browser::CreateTargetResult::Builder() 106 return target::CreateTargetResult::Builder()
107 .SetTargetId(web_contents_impl->GetDevToolsAgentHostId()) 107 .SetTargetId(web_contents_impl->GetDevToolsAgentHostId())
108 .Build() 108 .Build()
109 ->Serialize(); 109 ->Serialize();
110 } 110 }
111 111
112 std::unique_ptr<base::Value> HeadlessDevToolsManagerDelegate::CloseTarget( 112 std::unique_ptr<base::Value> HeadlessDevToolsManagerDelegate::CloseTarget(
113 const base::DictionaryValue* params) { 113 const base::DictionaryValue* params) {
114 std::string target_id; 114 std::string target_id;
115 if (!params->GetString("targetId", &target_id)) { 115 if (!params->GetString("targetId", &target_id)) {
116 return nullptr; 116 return nullptr;
117 } 117 }
118 HeadlessWebContents* web_contents = 118 HeadlessWebContents* web_contents =
119 browser_->GetWebContentsForDevToolsAgentHostId(target_id); 119 browser_->GetWebContentsForDevToolsAgentHostId(target_id);
120 bool success = false; 120 bool success = false;
121 if (web_contents) { 121 if (web_contents) {
122 web_contents->Close(); 122 web_contents->Close();
123 success = true; 123 success = true;
124 } 124 }
125 return browser::CloseTargetResult::Builder() 125 return target::CloseTargetResult::Builder()
126 .SetSuccess(success) 126 .SetSuccess(success)
127 .Build() 127 .Build()
128 ->Serialize(); 128 ->Serialize();
129 } 129 }
130 130
131 std::unique_ptr<base::Value> 131 std::unique_ptr<base::Value>
132 HeadlessDevToolsManagerDelegate::CreateBrowserContext( 132 HeadlessDevToolsManagerDelegate::CreateBrowserContext(
133 const base::DictionaryValue* params) { 133 const base::DictionaryValue* params) {
134 HeadlessBrowserContext* browser_context = 134 HeadlessBrowserContext* browser_context =
135 browser_->CreateBrowserContextBuilder().Build(); 135 browser_->CreateBrowserContextBuilder().Build();
136 136
137 std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue()); 137 std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue());
138 return browser::CreateBrowserContextResult::Builder() 138 return target::CreateBrowserContextResult::Builder()
139 .SetBrowserContextId(browser_context->Id()) 139 .SetBrowserContextId(browser_context->Id())
140 .Build() 140 .Build()
141 ->Serialize(); 141 ->Serialize();
142 } 142 }
143 143
144 std::unique_ptr<base::Value> 144 std::unique_ptr<base::Value>
145 HeadlessDevToolsManagerDelegate::DisposeBrowserContext( 145 HeadlessDevToolsManagerDelegate::DisposeBrowserContext(
146 const base::DictionaryValue* params) { 146 const base::DictionaryValue* params) {
147 std::string browser_context_id; 147 std::string browser_context_id;
148 if (!params->GetString("browserContextId", &browser_context_id)) { 148 if (!params->GetString("browserContextId", &browser_context_id)) {
149 return nullptr; 149 return nullptr;
150 } 150 }
151 HeadlessBrowserContext* context = 151 HeadlessBrowserContext* context =
152 browser_->GetBrowserContextForId(browser_context_id); 152 browser_->GetBrowserContextForId(browser_context_id);
153 153
154 bool success = false; 154 bool success = false;
155 if (context && context != default_browser_context_ && 155 if (context && context != default_browser_context_ &&
156 context->GetAllWebContents().empty()) { 156 context->GetAllWebContents().empty()) {
157 success = true; 157 success = true;
158 context->Close(); 158 context->Close();
159 } 159 }
160 160
161 return browser::DisposeBrowserContextResult::Builder() 161 return target::DisposeBrowserContextResult::Builder()
162 .SetSuccess(success) 162 .SetSuccess(success)
163 .Build() 163 .Build()
164 ->Serialize(); 164 ->Serialize();
165 } 165 }
166 166
167 } // namespace headless 167 } // namespace headless
OLDNEW
« no previous file with comments | « headless/lib/browser/headless_devtools_client_impl.cc ('k') | headless/lib/headless_devtools_client_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698