diff options
Diffstat (limited to 'blimp/engine/app/blimp_url_request_context_getter.h')
-rw-r--r-- | blimp/engine/app/blimp_url_request_context_getter.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/blimp/engine/app/blimp_url_request_context_getter.h b/blimp/engine/app/blimp_url_request_context_getter.h new file mode 100644 index 0000000..e9806e6 --- /dev/null +++ b/blimp/engine/app/blimp_url_request_context_getter.h @@ -0,0 +1,79 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BLIMP_ENGINE_APP_BLIMP_URL_REQUEST_CONTEXT_GETTER_H_ +#define BLIMP_ENGINE_APP_BLIMP_URL_REQUEST_CONTEXT_GETTER_H_ + +#include "base/files/file_path.h" +#include "base/macros.h" +#include "base/memory/scoped_ptr.h" +#include "content/public/browser/content_browser_client.h" +#include "net/url_request/url_request_context_getter.h" + +namespace base { +class MessageLoop; +class SingleThreadTaskRunner; +} + +namespace net { +class HostResolver; +class NetworkDelegate; +class NetLog; +class ProxyConfigService; +class ProxyService; +class URLRequestContextStorage; +} + +namespace blimp { +namespace engine { + +class BlimpURLRequestContextGetter : public net::URLRequestContextGetter { + public: + // The content of |protocol_handlers| is is swapped into the new instance. + BlimpURLRequestContextGetter( + bool ignore_certificate_errors, + const base::FilePath& base_path, + const scoped_refptr<base::SingleThreadTaskRunner>& io_loop_task_runner, + const scoped_refptr<base::SingleThreadTaskRunner>& file_loop_task_runner, + content::ProtocolHandlerMap* protocol_handlers, + content::URLRequestInterceptorScopedVector request_interceptors, + net::NetLog* net_log); + + // net::URLRequestContextGetter implementation. + net::URLRequestContext* GetURLRequestContext() override; + scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner() + const override; + + net::HostResolver* host_resolver(); + + protected: + ~BlimpURLRequestContextGetter() override; + + // Used by subclasses to create their own implementation of NetworkDelegate + // and net::ProxyService. + virtual scoped_ptr<net::NetworkDelegate> CreateNetworkDelegate(); + virtual scoped_ptr<net::ProxyConfigService> GetProxyConfigService(); + virtual scoped_ptr<net::ProxyService> GetProxyService(); + + private: + bool ignore_certificate_errors_; + base::FilePath base_path_; + scoped_refptr<base::SingleThreadTaskRunner> io_loop_task_runner_; + scoped_refptr<base::SingleThreadTaskRunner> file_loop_task_runner_; + net::NetLog* net_log_; + + scoped_ptr<net::ProxyConfigService> proxy_config_service_; + scoped_ptr<net::NetworkDelegate> network_delegate_; + scoped_ptr<net::URLRequestContextStorage> storage_; + scoped_ptr<net::URLRequestContext> url_request_context_; + content::ProtocolHandlerMap protocol_handlers_; + content::URLRequestInterceptorScopedVector request_interceptors_; + + DISALLOW_COPY_AND_ASSIGN(BlimpURLRequestContextGetter); +}; + +} // namespace engine +} // namespace blimp + +#endif // BLIMP_ENGINE_APP_BLIMP_URL_REQUEST_CONTEXT_GETTER_H_ |