15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This interface is for managing the global services of the application. Each 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// service is lazily created when requested the first time. The service getters 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// will return NULL if the service is not available, so callers must check for 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// this condition. 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_BROWSER_PROCESS_H_ 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_BROWSER_PROCESS_H_ 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/memory/scoped_ptr.h" 1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "chrome/browser/browser_process_platform_part.h" 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/host_desktop.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BackgroundModeManager; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ChromeNetLog; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CRLSetFetcher; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DownloadRequestLimiter; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DownloadStatusUpdater; 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class GLStringManager; 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class GpuModeManager; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class IconManager; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class IntranetRedirectDetector; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class IOThread; 30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)class MediaFileSystemRegistry; 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class MetricsServicesManager; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NotificationUIManager; 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class PrefRegistrySimple; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PrefService; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Profile; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ProfileManager; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SafeBrowsingService; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class StatusTray; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WatchDogThread; 40868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if defined(ENABLE_WEBRTC) 41868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)class WebRtcLogUploader; 42868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chrome_variations { 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class VariationsService; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace component_updater { 495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class ComponentUpdateService; 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class PnaclComponentInstaller; 515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions { 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class EventRouterForwarder; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace gcm { 5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class GCMDriver; 5946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace message_center { 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class MessageCenter; 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace metrics { 661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass MetricsService; 671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class URLRequestContextGetter; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace network_time { 7446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class NetworkTimeTracker; 7546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 7646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace policy { 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BrowserPolicyConnector; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PolicyService; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace prerender { 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PrerenderTracker; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace printing { 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BackgroundPrintingManager; 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PrintJobManager; 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class PrintPreviewDialogController; 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 92a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace rappor { 93a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class RapporService; 94a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 95a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace safe_browsing { 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ClientSideDetectionService; 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// NOT THREAD SAFE, call only from the main thread. 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These functions shouldn't return NULL unless otherwise noted. 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BrowserProcess { 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserProcess(); 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~BrowserProcess(); 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called when the ResourceDispatcherHost object is created by content. 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ResourceDispatcherHostCreated() = 0; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invoked when the user is logging out/shutting down. When logging off we may 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // not have enough time to do a normal shutdown. This method is invoked prior 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to normal shutdown and saves any state that must be saved before we are 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // continue shutdown. 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void EndSession() = 0; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Gets the manager for the various metrics-related services, constructing it 11746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // if necessary. 11846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual MetricsServicesManager* GetMetricsServicesManager() = 0; 11946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Services: any of these getters may return NULL 1211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual metrics::MetricsService* metrics_service() = 0; 122a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual rappor::RapporService* rappor_service() = 0; 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ProfileManager* profile_manager() = 0; 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PrefService* local_state() = 0; 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual net::URLRequestContextGetter* system_request_context() = 0; 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual chrome_variations::VariationsService* variations_service() = 0; 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual BrowserProcessPlatformPart* platform_part() = 0; 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual extensions::EventRouterForwarder* 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) extension_event_router_forwarder() = 0; 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the manager for desktop notifications. 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual NotificationUIManager* notification_ui_manager() = 0; 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // MessageCenter is a global list of currently displayed notifications. 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual message_center::MessageCenter* message_center() = 0; 1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the state object for the thread that we perform I/O 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // coordination on (network requests, communication with renderers, 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // etc. 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Can be NULL close to startup and shutdown. 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // NOTE: If you want to post a task to the IO thread, use 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // BrowserThread::PostTask (or other variants). 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual IOThread* io_thread() = 0; 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the thread that is used for health check of all browser threads. 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WatchDogThread* watchdog_thread() = 0; 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Starts and manages the policy system. 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual policy::BrowserPolicyConnector* browser_policy_connector() = 0; 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This is the main interface for chromium components to retrieve policy 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // information from the policy system. 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual policy::PolicyService* policy_service() = 0; 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual IconManager* icon_manager() = 0; 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual GLStringManager* gl_string_manager() = 0; 1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual GpuModeManager* gpu_mode_manager() = 0; 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void CreateDevToolsHttpProtocolHandler( 1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) chrome::HostDesktopType host_desktop_type, 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& ip, 168a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int port) = 0; 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual unsigned int AddRefModule() = 0; 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual unsigned int ReleaseModule() = 0; 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsShuttingDown() = 0; 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual printing::PrintJobManager* print_job_manager() = 0; 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual printing::PrintPreviewDialogController* 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) print_preview_dialog_controller() = 0; 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual printing::BackgroundPrintingManager* 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) background_printing_manager() = 0; 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual IntranetRedirectDetector* intranet_redirect_detector() = 0; 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the locale used by the application. 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const std::string& GetApplicationLocale() = 0; 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetApplicationLocale(const std::string& locale) = 0; 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual DownloadStatusUpdater* download_status_updater() = 0; 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual DownloadRequestLimiter* download_request_limiter() = 0; 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the object that manages background applications. 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual BackgroundModeManager* background_mode_manager() = 0; 192eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void set_background_mode_manager_for_test( 193eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<BackgroundModeManager> manager) = 0; 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the StatusTray, which provides an API for displaying status icons 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // in the system status tray. Returns NULL if status icons are not supported 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // on this platform (or this is a unit test). 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual StatusTray* status_tray() = 0; 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the SafeBrowsing service. 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual SafeBrowsingService* safe_browsing_service() = 0; 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns an object which handles communication with the SafeBrowsing 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // client-side detection servers. 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual safe_browsing::ClientSideDetectionService* 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) safe_browsing_detection_service() = 0; 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This will start a timer that, if Chrome is in persistent mode, will check 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // whether an update is available, and if that's the case, restart the 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // browser. Note that restart code will strip some of the command line keys 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // and all loose values from the cl this instance of Chrome was launched with, 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // and add the command line key that will force Chrome to start in the 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // background mode. For the full list of "blacklisted" keys, refer to 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // |kSwitchesToRemoveOnAutorestart| array in browser_process_impl.cc. 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void StartAutoupdateTimer() = 0; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ChromeNetLog* net_log() = 0; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual prerender::PrerenderTracker* prerender_tracker() = 0; 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual component_updater::ComponentUpdateService* component_updater() = 0; 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual CRLSetFetcher* crl_set_fetcher() = 0; 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual component_updater::PnaclComponentInstaller* 2285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) pnacl_component_installer() = 0; 229c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 230d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual MediaFileSystemRegistry* media_file_system_registry() = 0; 2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 232c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual bool created_local_state() const = 0; 233c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 234868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if defined(ENABLE_WEBRTC) 235868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) virtual WebRtcLogUploader* webrtc_log_uploader() = 0; 236868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif 237868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 23846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual network_time::NetworkTimeTracker* network_time_tracker() = 0; 23946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 24046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual gcm::GCMDriver* gcm_driver() = 0; 241cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(BrowserProcess); 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern BrowserProcess* g_browser_process; 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_BROWSER_PROCESS_H_ 249