Index: headless/public/headless_browser.h |
diff --git a/headless/public/headless_browser.h b/headless/public/headless_browser.h |
index 4b18f565b9e8fc2f2b8cb91ad0bb885a26a8a64e..b57c21aac9214912e77db31c929e8dfd6916a9d5 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 @@ |
}; |
// Embedding API overrides for the headless browser. |
-struct HeadlessBrowser::Options { |
+struct HEADLESS_EXPORT HeadlessBrowser::Options { |
class Builder; |
Options(Options&& options); |
@@ -100,6 +104,14 @@ |
// Command line options to be passed to browser. |
int argc; |
const char** argv; |
+ |
+#if defined(OS_WIN) |
+ // Set hardware instance if available, otherwise it defaults to 0. |
+ HINSTANCE instance; |
+ |
+ // Set with sandbox information. This has to be already initialized. |
+ sandbox::SandboxInterfaceInfo* sandbox_info; |
+#endif |
// Address at which DevTools should listen for connections. Disabled by |
// default. |
@@ -172,7 +184,7 @@ |
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 @@ |
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 @@ |
// |
// [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 @@ |
// 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); |