13f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// This interface is for managing the global services of the application. Each 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// service is lazily created when requested the first time. The service getters 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// will return NULL if the service is not available, so callers must check for 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// this condition. 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_BROWSER_PROCESS_H_ 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_BROWSER_PROCESS_H_ 123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <string> 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <vector> 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h" 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/ref_counted.h" 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "ipc/ipc_message.h" 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass AutomationProviderList; 2221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 2321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsennamespace safe_browsing { 2421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenclass ClientSideDetectionService; 2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 2621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 2772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenclass ChromeNetLog; 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass DevToolsManager; 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass DownloadRequestLimiter; 303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickclass DownloadStatusUpdater; 31dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass ExtensionEventRouterForwarder; 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass GoogleURLTracker; 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass IconManager; 3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenclass IntranetRedirectDetector; 3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenclass IOThread; 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass MetricsService; 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass NotificationUIManager; 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass PrefService; 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass ProfileManager; 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass ResourceDispatcherHost; 413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickclass SidebarManager; 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass TabCloseableStateWatcher; 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass ThumbnailGenerator; 44dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass WatchDogThread; 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace base { 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass Thread; 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass WaitableEvent; 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#if defined(OS_CHROMEOS) 52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace chromeos { 53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass ProxyConfigServiceImpl; 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // defined(OS_CHROMEOS) 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace net { 58ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass URLRequestContextGetter; 59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 60ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace printing { 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass PrintJobManager; 634a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass PrintPreviewTabController; 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 663f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsennamespace policy { 67dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass BrowserPolicyConnector; 683f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen} 693f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen 7072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsennamespace ui { 7172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenclass Clipboard; 7272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen} 7372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// NOT THREAD SAFE, call only from the main thread. 75c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// These functions shouldn't return NULL unless otherwise noted. 76c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass BrowserProcess { 77c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 78731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick BrowserProcess(); 79731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual ~BrowserProcess(); 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 81c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Invoked when the user is logging out/shutting down. When logging off we may 82c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // not have enough time to do a normal shutdown. This method is invoked prior 83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // to normal shutdown and saves any state that must be saved before we are 84c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // continue shutdown. 85c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void EndSession() = 0; 86c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Services: any of these getters may return NULL 88c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual ResourceDispatcherHost* resource_dispatcher_host() = 0; 89c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 90c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual MetricsService* metrics_service() = 0; 91c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual ProfileManager* profile_manager() = 0; 92c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual PrefService* local_state() = 0; 93c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual DevToolsManager* devtools_manager() = 0; 943345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick virtual SidebarManager* sidebar_manager() = 0; 9572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual ui::Clipboard* clipboard() = 0; 96ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual net::URLRequestContextGetter* system_request_context() = 0; 97ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 98ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#if defined(OS_CHROMEOS) 99ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Returns ChromeOS's ProxyConfigServiceImpl, creating if not yet created. 100ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual chromeos::ProxyConfigServiceImpl* 101ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen chromeos_proxy_config_service_impl() = 0; 102ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // defined(OS_CHROMEOS) 103ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 104dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual ExtensionEventRouterForwarder* 105dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen extension_event_router_forwarder() = 0; 106c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 107c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the manager for desktop notifications. 108c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual NotificationUIManager* notification_ui_manager() = 0; 109c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 110c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the thread that we perform I/O coordination on (network requests, 111c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // communication with renderers, etc. 112c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // NOTE: You should ONLY use this to pass to IPC or other objects which must 113c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // need a MessageLoop*. If you just want to post a task, use 114731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // BrowserThread::PostTask (or other variants) as they take care of checking 115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // that a thread is still alive, race conditions, lifetime differences etc. 1163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick // If you still must use this check the return value for NULL. 117c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual IOThread* io_thread() = 0; 118c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 119c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the thread that we perform random file operations on. For code 120c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // that wants to do I/O operations (not network requests or even file: URL 121c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // requests), this is the thread to use to avoid blocking the UI thread. 122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // It might be nicer to have a thread pool for this kind of thing. 123c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual base::Thread* file_thread() = 0; 124c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 125c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the thread that is used for database operations such as the web 126c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // database. History has its own thread since it has much higher traffic. 127c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual base::Thread* db_thread() = 0; 128c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 129c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the thread that is used for background cache operations. 130c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual base::Thread* cache_thread() = 0; 131c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 132ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Returns the thread that issues GPU calls. 133ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual base::Thread* gpu_thread() = 0; 134ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 135c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(USE_X11) 136c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the thread that is used to process UI requests in cases where 137c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // we can't route the request to the UI thread. Note that this thread 138c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // should only be used by the IO thread and this method is only safe to call 139c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // from the UI thread so, if you've ended up here, something has gone wrong. 140c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // This method is only included for uniformity. 141c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual base::Thread* background_x11_thread() = 0; 142c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 143c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 144dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Returns the thread that is used for health check of all browser threads. 145dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual WatchDogThread* watchdog_thread() = 0; 146dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 147dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual policy::BrowserPolicyConnector* browser_policy_connector() = 0; 1483f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen 149c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual IconManager* icon_manager() = 0; 150c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 151c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual ThumbnailGenerator* GetThumbnailGenerator() = 0; 152c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 153c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual AutomationProviderList* InitAutomationProviderList() = 0; 154c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual void InitDevToolsHttpProtocolHandler( 15672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen const std::string& ip, 15772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen int port, 15872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen const std::string& frontend_url) = 0; 15972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 16072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual void InitDevToolsLegacyProtocolHandler(int port) = 0; 161c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 162c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual unsigned int AddRefModule() = 0; 163c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual unsigned int ReleaseModule() = 0; 164c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 165c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual bool IsShuttingDown() = 0; 166c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 167c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual printing::PrintJobManager* print_job_manager() = 0; 1684a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual printing::PrintPreviewTabController* 1694a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch print_preview_tab_controller() = 0; 170c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 171c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual GoogleURLTracker* google_url_tracker() = 0; 172c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual IntranetRedirectDetector* intranet_redirect_detector() = 0; 173c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 174c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the locale used by the application. 175c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual const std::string& GetApplicationLocale() = 0; 176c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void SetApplicationLocale(const std::string& locale) = 0; 177c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 178c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DownloadRequestLimiter* download_request_limiter(); 1793345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick virtual DownloadStatusUpdater* download_status_updater() = 0; 180c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 181c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns an event that is signaled when the browser shutdown. 182c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual base::WaitableEvent* shutdown_event() = 0; 183c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 184c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns a reference to the user-data-dir based profiles vector. 185c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::vector<std::wstring>& user_data_dir_profiles() { 186c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return user_data_dir_profiles_; 187c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 188c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 189c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the object that watches for changes in the closeable state of tab. 190c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual TabCloseableStateWatcher* tab_closeable_state_watcher() = 0; 191c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 19221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // Returns an object which handles communication with the SafeBrowsing 19321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // client-side detection servers. 19421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual safe_browsing::ClientSideDetectionService* 19521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen safe_browsing_detection_service() = 0; 19621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 197dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Returns the state of the disable plugin finder policy. Callable only on 198dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // the IO thread. 199dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual bool plugin_finder_disabled() const = 0; 200dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 201c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) 202c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // This will start a timer that, if Chrome is in persistent mode, will check 203c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // whether an update is available, and if that's the case, restart the 204c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // browser. Note that restart code will strip some of the command line keys 205c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // and all loose values from the cl this instance of Chrome was launched with, 206c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // and add the command line key that will force Chrome to start in the 207c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // background mode. For the full list of "blacklisted" keys, refer to 208c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // |kSwitchesToRemoveOnAutorestart| array in browser_process_impl.cc. 209c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void StartAutoupdateTimer() = 0; 210c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 211c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 21272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual ChromeNetLog* net_log() = 0; 21372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 214c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(IPC_MESSAGE_LOG_ENABLED) 215c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Enable or disable IPC logging for the browser, all processes 216c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // derived from ChildProcess (plugin etc), and all 217c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // renderers. 218c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void SetIPCLoggingEnabled(bool enable) = 0; 219c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 220c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 22172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen const std::string& plugin_data_remover_mime_type() const { 22272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen return plugin_data_remover_mime_type_; 22372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen } 22472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 22572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen void set_plugin_data_remover_mime_type(const std::string& mime_type) { 22672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen plugin_data_remover_mime_type_ = mime_type; 22772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen } 22872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 229c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 230c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // User-data-dir based profiles. 231c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::vector<std::wstring> user_data_dir_profiles_; 232c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 23372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // Used for testing plugin data removal at shutdown. 23472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen std::string plugin_data_remover_mime_type_; 23572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 236c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(BrowserProcess); 237c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 238c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 239c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochextern BrowserProcess* g_browser_process; 240c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 241c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_BROWSER_PROCESS_H_ 242