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

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

Issue 2808653002: make headless lib complie when enable_basic_printing is set to false (Closed)
Patch Set: add a DCHECK Created 3 years, 8 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 | « headless/BUILD.gn ('k') | headless/lib/browser/headless_web_contents_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_print_manager.h"
18 #include "headless/lib/browser/headless_web_contents_impl.h" 17 #include "headless/lib/browser/headless_web_contents_impl.h"
19 #include "headless/public/devtools/domains/target.h" 18 #include "headless/public/devtools/domains/target.h"
19 #include "printing/features/features.h"
20 #include "ui/base/resource/resource_bundle.h" 20 #include "ui/base/resource/resource_bundle.h"
21 21
22 #if BUILDFLAG(ENABLE_BASIC_PRINTING)
23 #include "headless/lib/browser/headless_print_manager.h"
24 #endif
25
22 namespace headless { 26 namespace headless {
23 27
24 namespace { 28 namespace {
25 const char kIdParam[] = "id"; 29 const char kIdParam[] = "id";
26 const char kResultParam[] = "result"; 30 const char kResultParam[] = "result";
27 const char kErrorParam[] = "error"; 31 const char kErrorParam[] = "error";
28 const char kErrorCodeParam[] = "code"; 32 const char kErrorCodeParam[] = "code";
29 const char kErrorMessageParam[] = "message"; 33 const char kErrorMessageParam[] = "message";
30 34
31 // JSON RPC 2.0 spec: http://www.jsonrpc.org/specification#error_object 35 // JSON RPC 2.0 spec: http://www.jsonrpc.org/specification#error_object
(...skipping 29 matching lines...) Expand all
61 } 65 }
62 66
63 std::unique_ptr<base::DictionaryValue> CreateInvalidParamResponse( 67 std::unique_ptr<base::DictionaryValue> CreateInvalidParamResponse(
64 int command_id, 68 int command_id,
65 const std::string& param) { 69 const std::string& param) {
66 return CreateErrorResponse( 70 return CreateErrorResponse(
67 command_id, kErrorInvalidParam, 71 command_id, kErrorInvalidParam,
68 base::StringPrintf("Missing or invalid '%s' parameter", param.c_str())); 72 base::StringPrintf("Missing or invalid '%s' parameter", param.c_str()));
69 } 73 }
70 74
75 #if BUILDFLAG(ENABLE_BASIC_PRINTING)
71 void PDFCreated( 76 void PDFCreated(
72 const content::DevToolsManagerDelegate::CommandCallback& callback, 77 const content::DevToolsManagerDelegate::CommandCallback& callback,
73 int command_id, 78 int command_id,
74 printing::HeadlessPrintManager::PrintResult print_result, 79 printing::HeadlessPrintManager::PrintResult print_result,
75 const std::string& data) { 80 const std::string& data) {
76 std::unique_ptr<base::DictionaryValue> response; 81 std::unique_ptr<base::DictionaryValue> response;
77 if (print_result == printing::HeadlessPrintManager::PRINT_SUCCESS) { 82 if (print_result == printing::HeadlessPrintManager::PRINT_SUCCESS) {
78 response = CreateSuccessResponse( 83 response = CreateSuccessResponse(
79 command_id, 84 command_id,
80 printing::HeadlessPrintManager::PDFContentsToDictionaryValue(data)); 85 printing::HeadlessPrintManager::PDFContentsToDictionaryValue(data));
81 } else { 86 } else {
82 response = CreateErrorResponse( 87 response = CreateErrorResponse(
83 command_id, kErrorServerError, 88 command_id, kErrorServerError,
84 printing::HeadlessPrintManager::PrintResultToString(print_result)); 89 printing::HeadlessPrintManager::PrintResultToString(print_result));
85 } 90 }
86 callback.Run(std::move(response)); 91 callback.Run(std::move(response));
87 } 92 }
93 #endif
88 94
89 } // namespace 95 } // namespace
90 96
91 HeadlessDevToolsManagerDelegate::HeadlessDevToolsManagerDelegate( 97 HeadlessDevToolsManagerDelegate::HeadlessDevToolsManagerDelegate(
92 base::WeakPtr<HeadlessBrowserImpl> browser) 98 base::WeakPtr<HeadlessBrowserImpl> browser)
93 : browser_(std::move(browser)) { 99 : browser_(std::move(browser)) {
94 command_map_["Target.createTarget"] = base::Bind( 100 command_map_["Target.createTarget"] = base::Bind(
95 &HeadlessDevToolsManagerDelegate::CreateTarget, base::Unretained(this)); 101 &HeadlessDevToolsManagerDelegate::CreateTarget, base::Unretained(this));
96 command_map_["Target.closeTarget"] = base::Bind( 102 command_map_["Target.closeTarget"] = base::Bind(
97 &HeadlessDevToolsManagerDelegate::CloseTarget, base::Unretained(this)); 103 &HeadlessDevToolsManagerDelegate::CloseTarget, base::Unretained(this));
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 std::string HeadlessDevToolsManagerDelegate::GetFrontendResource( 182 std::string HeadlessDevToolsManagerDelegate::GetFrontendResource(
177 const std::string& path) { 183 const std::string& path) {
178 return content::DevToolsFrontendHost::GetFrontendResource(path).as_string(); 184 return content::DevToolsFrontendHost::GetFrontendResource(path).as_string();
179 } 185 }
180 186
181 void HeadlessDevToolsManagerDelegate::PrintToPDF( 187 void HeadlessDevToolsManagerDelegate::PrintToPDF(
182 content::DevToolsAgentHost* agent_host, 188 content::DevToolsAgentHost* agent_host,
183 int command_id, 189 int command_id,
184 const base::DictionaryValue* params, 190 const base::DictionaryValue* params,
185 const CommandCallback& callback) { 191 const CommandCallback& callback) {
192 #if !BUILDFLAG(ENABLE_BASIC_PRINTING)
Lei Zhang 2017/04/10 17:38:41 Maybe remove the '!' and swap the two bodies of co
jzfeng 2017/04/10 18:32:27 Done.
193 DCHECK(callback);
194 callback.Run(CreateErrorResponse(command_id, kErrorServerError,
195 "Can't print to pdf. Please set "
196 "enable_basic_printing to true in "
197 "args.gn"));
Lei Zhang 2017/04/10 17:38:41 Just say something like "printing is not enabled"
jzfeng 2017/04/10 18:32:27 Done.
198 #else
186 content::WebContents* web_contents = agent_host->GetWebContents(); 199 content::WebContents* web_contents = agent_host->GetWebContents();
187 content::RenderFrameHost* rfh = web_contents->GetMainFrame(); 200 content::RenderFrameHost* rfh = web_contents->GetMainFrame();
188 201
189 printing::HeadlessPrintManager::FromWebContents(web_contents) 202 printing::HeadlessPrintManager::FromWebContents(web_contents)
190 ->GetPDFContents(rfh, base::Bind(&PDFCreated, callback, command_id)); 203 ->GetPDFContents(rfh, base::Bind(&PDFCreated, callback, command_id));
204 #endif
191 } 205 }
192 206
193 std::unique_ptr<base::DictionaryValue> 207 std::unique_ptr<base::DictionaryValue>
194 HeadlessDevToolsManagerDelegate::CreateTarget( 208 HeadlessDevToolsManagerDelegate::CreateTarget(
195 int command_id, 209 int command_id,
196 const base::DictionaryValue* params) { 210 const base::DictionaryValue* params) {
197 std::string url; 211 std::string url;
198 std::string browser_context_id; 212 std::string browser_context_id;
199 int width = browser_->options()->window_size.width(); 213 int width = browser_->options()->window_size.width();
200 int height = browser_->options()->window_size.height(); 214 int height = browser_->options()->window_size.height();
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 303
290 std::unique_ptr<base::Value> result( 304 std::unique_ptr<base::Value> result(
291 target::DisposeBrowserContextResult::Builder() 305 target::DisposeBrowserContextResult::Builder()
292 .SetSuccess(success) 306 .SetSuccess(success)
293 .Build() 307 .Build()
294 ->Serialize()); 308 ->Serialize());
295 return CreateSuccessResponse(command_id, std::move(result)); 309 return CreateSuccessResponse(command_id, std::move(result));
296 } 310 }
297 311
298 } // namespace headless 312 } // namespace headless
OLDNEW
« no previous file with comments | « headless/BUILD.gn ('k') | headless/lib/browser/headless_web_contents_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698