Index: headless/public/headless_browser_context.h |
diff --git a/headless/public/headless_browser_context.h b/headless/public/headless_browser_context.h |
index b72abb3c3ec669722981d974d6eeb34a47e17f4f..f8c581c2fd5fb0a17cfce226cca63e9f380cdaff 100644 |
--- a/headless/public/headless_browser_context.h |
+++ b/headless/public/headless_browser_context.h |
@@ -6,10 +6,15 @@ |
#define HEADLESS_PUBLIC_HEADLESS_BROWSER_CONTEXT_H_ |
#include "headless/public/headless_export.h" |
+#include "net/url_request/url_request_job_factory.h" |
namespace headless { |
class HeadlessBrowserImpl; |
+using ProtocolHandlerMap = std::unordered_map< |
+ std::string, |
+ std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>>; |
+ |
// Represents an isolated session with a unique cache, cookies, and other |
// profile/session related data. |
class HEADLESS_EXPORT HeadlessBrowserContext { |
@@ -32,7 +37,9 @@ class HEADLESS_EXPORT HeadlessBrowserContext::Builder { |
Builder(Builder&&); |
~Builder(); |
- // TODO(skyostil): Allow overriding protocol handlers. |
+ // Set custom network protocol handlers. These can be used to override URL |
+ // fetching for different network schemes. |
+ Builder& SetProtocolHandlers(ProtocolHandlerMap protocol_handlers); |
std::unique_ptr<HeadlessBrowserContext> Build(); |
@@ -42,6 +49,7 @@ class HEADLESS_EXPORT HeadlessBrowserContext::Builder { |
explicit Builder(HeadlessBrowserImpl* browser); |
HeadlessBrowserImpl* browser_; |
+ ProtocolHandlerMap protocol_handlers_; |
DISALLOW_COPY_AND_ASSIGN(Builder); |
}; |