| Index: headless/public/headless_browser.h
|
| diff --git a/headless/public/headless_browser.h b/headless/public/headless_browser.h
|
| index 4b360575148edfe0ba214270d6921990ce3d9ffe..c1f5b4d0974d9bf7d7ca58c63ef9fb34b7695f33 100644
|
| --- a/headless/public/headless_browser.h
|
| +++ b/headless/public/headless_browser.h
|
| @@ -7,6 +7,7 @@
|
|
|
| #include <memory>
|
| #include <string>
|
| +#include <unordered_map>
|
|
|
| #include "base/callback.h"
|
| #include "base/macros.h"
|
| @@ -14,6 +15,7 @@
|
| #include "headless/public/headless_export.h"
|
| #include "net/base/host_port_pair.h"
|
| #include "net/base/ip_endpoint.h"
|
| +#include "net/url_request/url_request_job_factory.h"
|
|
|
| namespace base {
|
| class MessagePump;
|
| @@ -61,6 +63,10 @@ class HEADLESS_EXPORT HeadlessBrowser {
|
| DISALLOW_COPY_AND_ASSIGN(HeadlessBrowser);
|
| };
|
|
|
| +using ProtocolHandlerMap = std::unordered_map<
|
| + std::string,
|
| + std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>>;
|
| +
|
| // Embedding API overrides for the headless browser.
|
| struct HeadlessBrowser::Options {
|
| class Builder;
|
| @@ -97,6 +103,10 @@ struct HeadlessBrowser::Options {
|
| // web content, which can be a security risk.
|
| bool single_process_mode;
|
|
|
| + // Custom network protocol handlers. These can be used to override URL
|
| + // fetching for different network schemes.
|
| + ProtocolHandlerMap protocol_handlers;
|
| +
|
| private:
|
| Options(int argc, const char** argv);
|
|
|
| @@ -115,6 +125,7 @@ class HeadlessBrowser::Options::Builder {
|
| Builder& SetProxyServer(const net::HostPortPair& proxy_server);
|
| Builder& SetHostResolverRules(const std::string& host_resolver_rules);
|
| Builder& SetSingleProcessMode(bool single_process_mode);
|
| + Builder& SetProtocolHandlers(ProtocolHandlerMap protocol_handlers);
|
|
|
| Options Build();
|
|
|
|
|