1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef CHROMECAST_SHELL_BROWSER_CAST_BROWSER_CONTEXT_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROMECAST_SHELL_BROWSER_CAST_BROWSER_CONTEXT_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/files/file_path.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "content/public/browser/browser_context.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "content/public/browser/content_browser_client.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace chromecast { 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace shell { 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass CastDownloadManagerDelegate; 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass URLRequestContextFactory; 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Chromecast does not currently support multiple profiles. So there is a 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// single BrowserContext for all chromecast renderers. 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// There is no support for PartitionStorage. 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass CastBrowserContext : public content::BrowserContext { 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch explicit CastBrowserContext( 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch URLRequestContextFactory* url_request_context_factory); 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~CastBrowserContext(); 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // BrowserContext implementation: 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual base::FilePath GetPath() const OVERRIDE; 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual bool IsOffTheRecord() const OVERRIDE; 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual net::URLRequestContextGetter* GetRequestContext() OVERRIDE; 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual net::URLRequestContextGetter* GetRequestContextForRenderProcess( 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch int renderer_child_id) OVERRIDE; 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual net::URLRequestContextGetter* GetMediaRequestContext() OVERRIDE; 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual net::URLRequestContextGetter* GetMediaRequestContextForRenderProcess( 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch int renderer_child_id) OVERRIDE; 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual net::URLRequestContextGetter* 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch GetMediaRequestContextForStoragePartition( 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const base::FilePath& partition_path, 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool in_memory) OVERRIDE; 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual content::ResourceContext* GetResourceContext() OVERRIDE; 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual content::DownloadManagerDelegate* 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch GetDownloadManagerDelegate() OVERRIDE; 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual content::BrowserPluginGuestManager* GetGuestManager() OVERRIDE; 4503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual storage::SpecialStoragePolicy* GetSpecialStoragePolicy() OVERRIDE; 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual content::PushMessagingService* GetPushMessagingService() OVERRIDE; 476e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) virtual content::SSLHostStateDelegate* GetSSLHostStateDelegate() OVERRIDE; 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch class CastResourceContext; 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Performs initialization of the CastBrowserContext while IO is still 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // allowed on the current thread. 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void InitWhileIOAllowed(); 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch URLRequestContextFactory* const url_request_context_factory_; 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::FilePath path_; 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch scoped_ptr<CastResourceContext> resource_context_; 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<CastDownloadManagerDelegate> download_manager_delegate_; 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(CastBrowserContext); 62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace shell 65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace chromecast 66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // CHROMECAST_SHELL_BROWSER_CAST_BROWSER_CONTEXT_H_ 68