| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "content/public/common/user_agent.h" |
| #include "headless/public/headless_browser.h" |
| #include "net/url_request/url_request_context_getter.h" |
| |
| using Options = headless::HeadlessBrowser::Options; |
| using Builder = headless::HeadlessBrowser::Options::Builder; |
| |
| namespace headless { |
| |
| // Product name for building the default user agent string. |
| namespace { |
| const char kProductName[] = "HeadlessChrome"; |
| } |
| |
| Options::Options(int argc, const char** argv) |
| : argc(argc), |
| argv(argv), |
| user_agent(content::BuildUserAgentFromProduct(kProductName)), |
| message_pump(nullptr) {} |
| |
| Options::~Options() {} |
| |
| Builder::Builder(int argc, const char** argv) : options_(argc, argv) {} |
| |
| Builder::Builder() : options_(0, nullptr) {} |
| |
| Builder::~Builder() {} |
| |
| Builder& Builder::SetUserAgent(const std::string& user_agent) { |
| options_.user_agent = user_agent; |
| return *this; |
| } |
| |
| Builder& Builder::EnableDevToolsServer(const net::IPEndPoint& endpoint) { |
| options_.devtools_endpoint = endpoint; |
| return *this; |
| } |
| |
| Builder& Builder::SetMessagePump(base::MessagePump* message_pump) { |
| options_.message_pump = message_pump; |
| return *this; |
| } |
| |
| Builder& Builder::SetProxyServer(const net::HostPortPair& proxy_server) { |
| options_.proxy_server = proxy_server; |
| return *this; |
| } |
| |
| Options Builder::Build() { |
| return options_; |
| } |
| |
| } // namespace headless |