atom_browser_context.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // Copyright (c) 2013 GitHub, Inc.
  2. // Use of this source code is governed by the MIT license that can be
  3. // found in the LICENSE file.
  4. #ifndef ATOM_BROWSER_ATOM_BROWSER_CONTEXT_H_
  5. #define ATOM_BROWSER_ATOM_BROWSER_CONTEXT_H_
  6. #include <string>
  7. #include <vector>
  8. #include "atom/browser/net/atom_cookie_delegate.h"
  9. #include "brightray/browser/browser_context.h"
  10. #include "net/cookies/cookie_monster.h"
  11. namespace atom {
  12. class AtomBlobReader;
  13. class AtomCTDelegate;
  14. class AtomDownloadManagerDelegate;
  15. class AtomNetworkDelegate;
  16. class AtomPermissionManager;
  17. class WebViewManager;
  18. class AtomBrowserContext : public brightray::BrowserContext {
  19. public:
  20. // Get or create the BrowserContext according to its |partition| and
  21. // |in_memory|. The |options| will be passed to constructor when there is no
  22. // existing BrowserContext.
  23. static scoped_refptr<AtomBrowserContext> From(
  24. const std::string& partition, bool in_memory,
  25. const base::DictionaryValue& options = base::DictionaryValue());
  26. void SetUserAgent(const std::string& user_agent);
  27. // brightray::URLRequestContextGetter::Delegate:
  28. net::NetworkDelegate* CreateNetworkDelegate() override;
  29. net::CookieMonsterDelegate* CreateCookieDelegate() override;
  30. std::string GetUserAgent() override;
  31. std::unique_ptr<net::URLRequestJobFactory> CreateURLRequestJobFactory(
  32. content::ProtocolHandlerMap* protocol_handlers) override;
  33. net::HttpCache::BackendFactory* CreateHttpCacheBackendFactory(
  34. const base::FilePath& base_path) override;
  35. std::unique_ptr<net::CertVerifier> CreateCertVerifier() override;
  36. net::SSLConfigService* CreateSSLConfigService() override;
  37. std::vector<std::string> GetCookieableSchemes() override;
  38. net::TransportSecurityState::RequireCTDelegate* GetRequireCTDelegate()
  39. override;
  40. // content::BrowserContext:
  41. content::DownloadManagerDelegate* GetDownloadManagerDelegate() override;
  42. content::BrowserPluginGuestManager* GetGuestManager() override;
  43. content::PermissionManager* GetPermissionManager() override;
  44. // brightray::BrowserContext:
  45. void RegisterPrefs(PrefRegistrySimple* pref_registry) override;
  46. AtomBlobReader* GetBlobReader();
  47. AtomNetworkDelegate* network_delegate() const { return network_delegate_; }
  48. AtomCookieDelegate* cookie_delegate() const {
  49. return cookie_delegate_.get();
  50. }
  51. protected:
  52. AtomBrowserContext(const std::string& partition, bool in_memory,
  53. const base::DictionaryValue& options);
  54. ~AtomBrowserContext() override;
  55. private:
  56. std::unique_ptr<AtomDownloadManagerDelegate> download_manager_delegate_;
  57. std::unique_ptr<WebViewManager> guest_manager_;
  58. std::unique_ptr<AtomPermissionManager> permission_manager_;
  59. std::unique_ptr<AtomBlobReader> blob_reader_;
  60. std::unique_ptr<AtomCTDelegate> ct_delegate_;
  61. std::string user_agent_;
  62. bool use_cache_;
  63. // Managed by brightray::BrowserContext.
  64. AtomNetworkDelegate* network_delegate_;
  65. scoped_refptr<AtomCookieDelegate> cookie_delegate_;
  66. DISALLOW_COPY_AND_ASSIGN(AtomBrowserContext);
  67. };
  68. } // namespace atom
  69. #endif // ATOM_BROWSER_ATOM_BROWSER_CONTEXT_H_