Chromium Code Reviews| Index: headless/public/headless_browser.h |
| diff --git a/headless/public/headless_browser.h b/headless/public/headless_browser.h |
| index 4b18f565b9e8fc2f2b8cb91ad0bb885a26a8a64e..720dd06b3a65140852efcdd764da48fb1a70f8f9 100644 |
| --- a/headless/public/headless_browser.h |
| +++ b/headless/public/headless_browser.h |
| @@ -22,6 +22,10 @@ |
| #include "net/base/ip_endpoint.h" |
| #include "ui/gfx/geometry/size.h" |
| +#if defined(OS_WIN) |
| +#include "sandbox/win/src/sandbox_types.h" |
| +#endif |
| + |
| namespace base { |
| class MessagePump; |
| class SingleThreadTaskRunner; |
| @@ -89,7 +93,7 @@ class HEADLESS_EXPORT HeadlessBrowser { |
| }; |
| // Embedding API overrides for the headless browser. |
| -struct HeadlessBrowser::Options { |
| +struct HEADLESS_EXPORT HeadlessBrowser::Options { |
| class Builder; |
| Options(Options&& options); |
| @@ -101,6 +105,14 @@ struct HeadlessBrowser::Options { |
| int argc; |
| const char** argv; |
| +#if defined(OS_WIN) |
| + // Set hardware instance if available, otherwise it defaults to 0. |
| + HINSTANCE instance; |
| + |
| + // Set with sandboc information. This has to be already initialized. |
|
jzfeng
2017/04/20 01:01:45
Typo: sandboc => sandbox
dvallet
2017/04/20 01:05:09
Done.
|
| + sandbox::SandboxInterfaceInfo* sandbox_info; |
| +#endif |
| + |
| // Address at which DevTools should listen for connections. Disabled by |
| // default. |
| net::IPEndPoint devtools_endpoint; |
| @@ -172,7 +184,7 @@ struct HeadlessBrowser::Options { |
| DISALLOW_COPY_AND_ASSIGN(Options); |
| }; |
| -class HeadlessBrowser::Options::Builder { |
| +class HEADLESS_EXPORT HeadlessBrowser::Options::Builder { |
| public: |
| Builder(int argc, const char** argv); |
| Builder(); |
| @@ -186,6 +198,10 @@ class HeadlessBrowser::Options::Builder { |
| Builder& SetDisableSandbox(bool disable_sandbox); |
| Builder& SetGLImplementation(const std::string& gl_implementation); |
| Builder& AddMojoServiceName(const std::string& mojo_service_name); |
| +#if defined(OS_WIN) |
| + Builder& SetInstance(HINSTANCE instance); |
| + Builder& SetSandboxInfo(sandbox::SandboxInterfaceInfo* sandbox_info); |
| +#endif |
| // Per-context settings. |
| @@ -229,7 +245,9 @@ class HeadlessBrowser::Options::Builder { |
| // |
| // [1] |
| // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_zygote.md |
| -void RunChildProcessIfNeeded(int argc, const char** argv); |
| +#if !defined(OS_WIN) |
| +HEADLESS_EXPORT void RunChildProcessIfNeeded(int argc, const char** argv); |
| +#endif |
| // Main entry point for running the headless browser. This function constructs |
| // the headless browser instance, passing it to the given |
| @@ -237,7 +255,7 @@ void RunChildProcessIfNeeded(int argc, const char** argv); |
| // the main loop, it will only return after HeadlessBrowser::Shutdown() is |
| // called, returning the exit code for the process. It is not possible to |
| // initialize the browser again after it has been torn down. |
| -int HeadlessBrowserMain( |
| +HEADLESS_EXPORT int HeadlessBrowserMain( |
| HeadlessBrowser::Options options, |
| const base::Callback<void(HeadlessBrowser*)>& on_browser_start_callback); |