[email protected] | 3a80ea33 | 2012-01-09 19:53:29 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
license.bot | bf09a50 | 2008-08-24 00:55:55 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 4 | |
5 | #include "chrome/browser/browser_process_impl.h" | ||||
6 | |||||
[email protected] | 38489a3 | 2012-05-11 02:24:54 | [diff] [blame] | 7 | #include <algorithm> |
[email protected] | 3cdacd4 | 2010-04-30 18:55:53 | [diff] [blame] | 8 | #include <map> |
[email protected] | 68f88b99 | 2011-05-07 02:01:39 | [diff] [blame] | 9 | #include <vector> |
[email protected] | 3cdacd4 | 2010-04-30 18:55:53 | [diff] [blame] | 10 | |
[email protected] | b3cc0544 | 2011-11-19 22:43:44 | [diff] [blame] | 11 | #include "base/bind.h" |
12 | #include "base/bind_helpers.h" | ||||
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 13 | #include "base/command_line.h" |
[email protected] | 6b4e685 | 2012-02-14 04:02:48 | [diff] [blame] | 14 | #include "base/debug/alias.h" |
[email protected] | 69c01947 | 2013-10-15 05:03:47 | [diff] [blame] | 15 | #include "base/debug/leak_annotations.h" |
[email protected] | c027d6d | 2014-06-05 15:25:40 | [diff] [blame] | 16 | #include "base/files/file_path.h" |
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 17 | #include "base/path_service.h" |
[email protected] | 03b9b4e | 2012-10-22 20:01:52 | [diff] [blame] | 18 | #include "base/prefs/json_pref_store.h" |
[email protected] | 3853a4c | 2013-02-11 17:15:57 | [diff] [blame] | 19 | #include "base/prefs/pref_registry_simple.h" |
20 | #include "base/prefs/pref_service.h" | ||||
[email protected] | 985655a | 2011-02-23 09:54:25 | [diff] [blame] | 21 | #include "base/synchronization/waitable_event.h" |
[email protected] | 34b9963 | 2011-01-01 01:01:06 | [diff] [blame] | 22 | #include "base/threading/thread.h" |
23 | #include "base/threading/thread_restrictions.h" | ||||
[email protected] | 72f9371 | 2014-05-19 15:10:39 | [diff] [blame] | 24 | #include "base/time/default_tick_clock.h" |
[email protected] | 01996a59 | 2013-09-13 06:55:04 | [diff] [blame] | 25 | #include "chrome/browser/apps/chrome_apps_client.h" |
[email protected] | a07676b2 | 2011-06-17 16:36:53 | [diff] [blame] | 26 | #include "chrome/browser/background/background_mode_manager.h" |
[email protected] | c38831a1 | 2011-10-28 12:44:49 | [diff] [blame] | 27 | #include "chrome/browser/chrome_browser_main.h" |
[email protected] | 572f40c9b | 2012-07-06 20:35:33 | [diff] [blame] | 28 | #include "chrome/browser/chrome_content_browser_client.h" |
[email protected] | fdf40f3e | 2013-07-11 23:55:46 | [diff] [blame] | 29 | #include "chrome/browser/chrome_notification_types.h" |
[email protected] | c1adf5a | 2011-08-03 22:11:37 | [diff] [blame] | 30 | #include "chrome/browser/component_updater/component_updater_configurator.h" |
31 | #include "chrome/browser/component_updater/component_updater_service.h" | ||||
[email protected] | 9f108f2 | 2013-04-09 00:39:56 | [diff] [blame] | 32 | #include "chrome/browser/component_updater/pnacl/pnacl_component_installer.h" |
[email protected] | 195c99c | 2012-10-31 06:24:51 | [diff] [blame] | 33 | #include "chrome/browser/defaults.h" |
[email protected] | 7001915 | 2012-12-19 11:44:19 | [diff] [blame] | 34 | #include "chrome/browser/devtools/remote_debugging_server.h" |
[email protected] | 254ed74 | 2011-08-16 18:45:27 | [diff] [blame] | 35 | #include "chrome/browser/download/download_request_limiter.h" |
[email protected] | 75e51b5 | 2012-02-04 16:57:54 | [diff] [blame] | 36 | #include "chrome/browser/download/download_status_updater.h" |
[email protected] | 9fe4204 | 2013-10-29 21:13:33 | [diff] [blame] | 37 | #include "chrome/browser/extensions/chrome_extensions_browser_client.h" |
[email protected] | 5a38dfd | 2012-07-23 23:22:10 | [diff] [blame] | 38 | #include "chrome/browser/extensions/event_router_forwarder.h" |
[email protected] | d557094 | 2013-01-24 01:42:43 | [diff] [blame] | 39 | #include "chrome/browser/extensions/extension_renderer_state.h" |
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 40 | #include "chrome/browser/first_run/upgrade_util.h" |
[email protected] | a9830b5 | 2012-12-17 23:30:36 | [diff] [blame] | 41 | #include "chrome/browser/gpu/gl_string_manager.h" |
[email protected] | e6933d2a | 2013-03-12 22:32:21 | [diff] [blame] | 42 | #include "chrome/browser/gpu/gpu_mode_manager.h" |
[email protected] | dcefa30 | 2009-05-20 00:24:39 | [diff] [blame] | 43 | #include "chrome/browser/icon_manager.h" |
[email protected] | 9190109 | 2013-01-31 01:53:59 | [diff] [blame] | 44 | #include "chrome/browser/idle.h" |
[email protected] | c4ff495 | 2010-01-08 19:12:47 | [diff] [blame] | 45 | #include "chrome/browser/intranet_redirect_detector.h" |
[email protected] | 0ac8368 | 2010-01-22 17:46:27 | [diff] [blame] | 46 | #include "chrome/browser/io_thread.h" |
[email protected] | 2e6389f | 2012-05-18 19:41:25 | [diff] [blame] | 47 | #include "chrome/browser/lifetime/application_lifetime.h" |
[email protected] | c3cac95 | 2014-05-09 01:51:18 | [diff] [blame] | 48 | #include "chrome/browser/metrics/metrics_services_manager.h" |
[email protected] | 0b56518 | 2011-03-02 18:11:15 | [diff] [blame] | 49 | #include "chrome/browser/metrics/thread_watcher.h" |
[email protected] | b2fcd0e | 2010-12-01 15:19:40 | [diff] [blame] | 50 | #include "chrome/browser/net/chrome_net_log.h" |
[email protected] | ca167a3 | 2011-09-30 15:19:11 | [diff] [blame] | 51 | #include "chrome/browser/net/crl_set_fetcher.h" |
[email protected] | 29672ab | 2009-10-30 03:44:03 | [diff] [blame] | 52 | #include "chrome/browser/notifications/notification_ui_manager.h" |
[email protected] | 8f4b69e | 2014-06-26 00:01:31 | [diff] [blame] | 53 | #include "chrome/browser/omaha_query_params/chrome_omaha_query_params_delegate.h" |
[email protected] | c2295f7 | 2013-01-03 22:18:56 | [diff] [blame] | 54 | #include "chrome/browser/plugins/chrome_plugin_service_filter.h" |
[email protected] | de75c70 | 2012-09-25 23:06:02 | [diff] [blame] | 55 | #include "chrome/browser/plugins/plugin_finder.h" |
[email protected] | caf63aea | 2011-04-26 11:04:10 | [diff] [blame] | 56 | #include "chrome/browser/prefs/browser_prefs.h" |
[email protected] | 5b19952 | 2012-12-22 17:24:44 | [diff] [blame] | 57 | #include "chrome/browser/prefs/chrome_pref_service_factory.h" |
[email protected] | 1459fb6 | 2011-05-25 19:03:27 | [diff] [blame] | 58 | #include "chrome/browser/prerender/prerender_tracker.h" |
[email protected] | 68f88b99 | 2011-05-07 02:01:39 | [diff] [blame] | 59 | #include "chrome/browser/printing/background_printing_manager.h" |
[email protected] | e06131d | 2010-02-10 18:40:33 | [diff] [blame] | 60 | #include "chrome/browser/printing/print_job_manager.h" |
[email protected] | d8ce31e | 2012-12-19 05:09:21 | [diff] [blame] | 61 | #include "chrome/browser/printing/print_preview_dialog_controller.h" |
[email protected] | 8ecad5e | 2010-12-02 21:18:33 | [diff] [blame] | 62 | #include "chrome/browser/profiles/profile_manager.h" |
[email protected] | 8bcdf07 | 2011-06-03 16:52:15 | [diff] [blame] | 63 | #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.h" |
[email protected] | 81218f4 | 2009-02-05 18:48:08 | [diff] [blame] | 64 | #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
[email protected] | e450fa6 | 2011-02-01 12:52:56 | [diff] [blame] | 65 | #include "chrome/browser/shell_integration.h" |
[email protected] | 9e7f015f | 2011-05-28 00:24:25 | [diff] [blame] | 66 | #include "chrome/browser/status_icons/status_tray.h" |
[email protected] | 94840bb | 2013-12-17 19:43:38 | [diff] [blame] | 67 | #include "chrome/browser/ui/browser_dialogs.h" |
[email protected] | 0665ebe | 2013-02-13 09:53:19 | [diff] [blame] | 68 | #include "chrome/browser/ui/browser_finder.h" |
[email protected] | ed30448 | 2013-01-04 04:45:32 | [diff] [blame] | 69 | #include "chrome/browser/web_resource/promo_resource_service.h" |
[email protected] | 4ef795df | 2010-02-03 02:35:08 | [diff] [blame] | 70 | #include "chrome/common/chrome_constants.h" |
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 71 | #include "chrome/common/chrome_paths.h" |
72 | #include "chrome/common/chrome_switches.h" | ||||
[email protected] | ad8b4ba | 2013-08-09 19:52:44 | [diff] [blame] | 73 | #include "chrome/common/extensions/chrome_extensions_client.h" |
initial.commit | 09911bf | 2008-07-26 23:55:29 | [diff] [blame] | 74 | #include "chrome/common/pref_names.h" |
[email protected] | 5c08f22 | 2010-09-22 09:37:21 | [diff] [blame] | 75 | #include "chrome/common/switch_utils.h" |
[email protected] | 985655a | 2011-02-23 09:54:25 | [diff] [blame] | 76 | #include "chrome/common/url_constants.h" |
[email protected] | bd48c2b0 | 2010-04-09 20:32:42 | [diff] [blame] | 77 | #include "chrome/installer/util/google_update_constants.h" |
[email protected] | 48ff2c7f | 2014-05-23 09:57:45 | [diff] [blame] | 78 | #include "chrome/installer/util/google_update_settings.h" |
[email protected] | c027d6d | 2014-06-05 15:25:40 | [diff] [blame] | 79 | #include "components/gcm_driver/gcm_driver.h" |
[email protected] | d6147bd | 2014-06-11 01:58:19 | [diff] [blame] | 80 | #include "components/metrics/metrics_service.h" |
[email protected] | d0ab865b | 2014-06-04 19:41:34 | [diff] [blame] | 81 | #include "components/network_time/network_time_tracker.h" |
[email protected] | 8f4b69e | 2014-06-26 00:01:31 | [diff] [blame] | 82 | #include "components/omaha_query_params/omaha_query_params.h" |
[email protected] | 76b4b15 | 2013-12-08 21:10:04 | [diff] [blame] | 83 | #include "components/policy/core/common/policy_service.h" |
[email protected] | 1c799ff | 2014-04-16 01:44:52 | [diff] [blame] | 84 | #include "components/signin/core/common/profile_management_switches.h" |
[email protected] | bb1c86cd | 2014-01-29 18:22:18 | [diff] [blame] | 85 | #include "components/translate/core/browser/translate_download_manager.h" |
[email protected] | c38831a1 | 2011-10-28 12:44:49 | [diff] [blame] | 86 | #include "content/public/browser/browser_thread.h" |
[email protected] | b953542 | 2012-02-09 01:47:59 | [diff] [blame] | 87 | #include "content/public/browser/child_process_security_policy.h" |
[email protected] | ad50def5 | 2011-10-19 23:17:07 | [diff] [blame] | 88 | #include "content/public/browser/notification_details.h" |
[email protected] | 3a5180ae | 2011-12-21 02:39:38 | [diff] [blame] | 89 | #include "content/public/browser/plugin_service.h" |
[email protected] | f3b1a08 | 2011-11-18 00:34:30 | [diff] [blame] | 90 | #include "content/public/browser/render_process_host.h" |
[email protected] | ea11472 | 2012-03-12 01:11:25 | [diff] [blame] | 91 | #include "content/public/browser/resource_dispatcher_host.h" |
[email protected] | 294bdb3 | 2014-05-30 07:01:54 | [diff] [blame] | 92 | #include "content/public/browser/service_worker_context.h" |
93 | #include "content/public/browser/storage_partition.h" | ||||
[email protected] | 885c0e9 | 2012-11-13 20:27:42 | [diff] [blame] | 94 | #include "extensions/common/constants.h" |
[email protected] | 6668e5d | 2014-04-08 23:32:52 | [diff] [blame] | 95 | #include "extensions/common/extension_l10n_util.h" |
[email protected] | 12c84e2 | 2011-07-11 09:35:45 | [diff] [blame] | 96 | #include "net/socket/client_socket_pool_manager.h" |
[email protected] | abe2c03 | 2011-03-31 18:49:34 | [diff] [blame] | 97 | #include "net/url_request/url_request_context_getter.h" |
[email protected] | c051a1b | 2011-01-21 23:30:17 | [diff] [blame] | 98 | #include "ui/base/l10n/l10n_util.h" |
[email protected] | fb1aac14e | 2013-05-14 05:30:24 | [diff] [blame] | 99 | #include "ui/message_center/message_center.h" |
[email protected] | b112a4c | 2009-02-01 20:24:01 | [diff] [blame] | 100 | |
101 | #if defined(OS_WIN) | ||||
[email protected] | 770c6d8 | 2012-09-06 22:21:32 | [diff] [blame] | 102 | #include "base/win/windows_version.h" |
[email protected] | 477ae05 | 2011-11-18 23:53:57 | [diff] [blame] | 103 | #include "ui/views/focus/view_storage.h" |
[email protected] | 03d8d3e9 | 2011-09-20 06:07:11 | [diff] [ |