Chromium Code Reviews| Index: headless/public/headless_browser.h |
| diff --git a/headless/public/headless_browser.h b/headless/public/headless_browser.h |
| index 9fcd62c6a0141bebb16e23d665501f3e36c9fc91..bad34d0bda1daaf47e676acf5e960b325c643a00 100644 |
| --- a/headless/public/headless_browser.h |
| +++ b/headless/public/headless_browser.h |
| @@ -11,6 +11,7 @@ |
| #include <vector> |
| #include "base/callback.h" |
| +#include "base/files/file_path.h" |
| #include "base/macros.h" |
| #include "base/memory/ref_counted.h" |
| #include "headless/public/headless_browser_context.h" |
| @@ -35,13 +36,9 @@ class HEADLESS_EXPORT HeadlessBrowser { |
| public: |
| struct Options; |
| - // Open a new tab. Returns a builder object which can be used to set |
| - // properties for the new tab. |
| - virtual HeadlessWebContents::Builder CreateWebContentsBuilder() = 0; |
| - |
| - // Deprecated. Use CreateWebContentsBuilder() instead. |
| - virtual HeadlessWebContents* CreateWebContents(const GURL& initial_url, |
| - const gfx::Size& size) = 0; |
| + // Create a new browser context which can be used to create tabs and isolate |
| + // from one another. |
|
Sami
2016/08/03 13:46:14
nit: "them from one another"
altimin
2016/08/03 14:18:51
Done.
|
| + virtual HeadlessBrowserContext::Builder CreateBrowserContextBuilder() = 0; |
| virtual std::vector<HeadlessWebContents*> GetAllWebContents() = 0; |
| @@ -62,10 +59,6 @@ class HEADLESS_EXPORT HeadlessBrowser { |
| // browser stops. |
| virtual void Shutdown() = 0; |
| - // Create a new browser context, which can be used to isolate |
| - // HeadlessWebContents from one another. |
| - virtual HeadlessBrowserContext::Builder CreateBrowserContextBuilder() = 0; |
| - |
| protected: |
| HeadlessBrowser() {} |
| virtual ~HeadlessBrowser() {} |
| @@ -87,24 +80,13 @@ struct HeadlessBrowser::Options { |
| int argc; |
| const char** argv; |
| - std::string user_agent; |
| - std::string navigator_platform; |
| - |
| // Address at which DevTools should listen for connections. Disabled by |
| // default. |
| net::IPEndPoint devtools_endpoint; |
| - // Address of the HTTP/HTTPS proxy server to use. The system proxy settings |
| - // are used by default. |
| - net::HostPortPair proxy_server; |
| - |
| // Optional message pump that overrides the default. Must outlive the browser. |
| base::MessagePump* message_pump; |
| - // Comma-separated list of rules that control how hostnames are mapped. See |
| - // chrome::switches::kHostRules for a description for the format. |
| - std::string host_resolver_rules; |
| - |
| // Run the browser in single process mode instead of using separate renderer |
| // processes as per default. Note that this also disables any sandboxing of |
| // web content, which can be a security risk. |
| @@ -114,19 +96,33 @@ struct HeadlessBrowser::Options { |
| // a security risk and should be used with caution. |
| bool disable_sandbox; |
| - // Custom network protocol handlers. These can be used to override URL |
| - // fetching for different network schemes. |
| - ProtocolHandlerMap protocol_handlers; |
| - |
| // Choose the GL implementation to use for rendering. A suitable |
| // implementantion is selected by default. Setting this to an empty |
| // string can be used to disable GL rendering (e.g., WebGL support). |
| std::string gl_implementation; |
| + // Default per-context options, can be specialized on per-context basis. |
| + |
| + std::string user_agent; |
| + |
| + // Address of the HTTP/HTTPS proxy server to use. The system proxy settings |
| + // are used by default. |
| + net::HostPortPair proxy_server; |
| + |
| + // Comma-separated list of rules that control how hostnames are mapped. See |
| + // chrome::switches::kHostRules for a description for the format. |
| + std::string host_resolver_rules; |
| + |
| // Default window size. This is also used to create the window tree host and |
| // as initial screen size. Defaults to 800x600. |
| gfx::Size window_size; |
| + // Path to user data directory, where browser will look for its state. |
| + // If empty, default directory (where the binary is located) will be used. |
| + base::FilePath user_data_dir; |
| + |
| + // Reminder: when adding a new field here, do not forget to add it to |
| + // HeadlessBrowserContextOptions (where appropriate). |
| private: |
| Options(int argc, const char** argv); |
| @@ -139,16 +135,21 @@ class HeadlessBrowser::Options::Builder { |
| Builder(); |
| ~Builder(); |
| - Builder& SetUserAgent(const std::string& user_agent); |
| + // Browser-wide settings. |
| + |
| Builder& EnableDevToolsServer(const net::IPEndPoint& endpoint); |
| Builder& SetMessagePump(base::MessagePump* message_pump); |
| - Builder& SetProxyServer(const net::HostPortPair& proxy_server); |
| - Builder& SetHostResolverRules(const std::string& host_resolver_rules); |
| Builder& SetSingleProcessMode(bool single_process_mode); |
| Builder& SetDisableSandbox(bool disable_sandbox); |
| - Builder& SetProtocolHandlers(ProtocolHandlerMap protocol_handlers); |
| Builder& SetGLImplementation(const std::string& gl_implementation); |
| + |
| + // Per-context settings. |
| + |
| + Builder& SetUserAgent(const std::string& user_agent); |
| + Builder& SetProxyServer(const net::HostPortPair& proxy_server); |
| + Builder& SetHostResolverRules(const std::string& host_resolver_rules); |
| Builder& SetWindowSize(const gfx::Size& window_size); |
| + Builder& SetUserDataDir(const base::FilePath& user_data_dir); |
| Options Build(); |