Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chrome_content_browser_client.h" | 5 #include "chrome/browser/chrome_content_browser_client.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 93 #include "chrome/browser/ui/browser_navigator_params.h" | 93 #include "chrome/browser/ui/browser_navigator_params.h" |
| 94 #include "chrome/browser/ui/chrome_select_file_policy.h" | 94 #include "chrome/browser/ui/chrome_select_file_policy.h" |
| 95 #include "chrome/browser/ui/sync/sync_promo_ui.h" | 95 #include "chrome/browser/ui/sync/sync_promo_ui.h" |
| 96 #include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h" | 96 #include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h" |
| 97 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" | 97 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" |
| 98 #include "chrome/browser/ui/webui/log_web_ui_url.h" | 98 #include "chrome/browser/ui/webui/log_web_ui_url.h" |
| 99 #include "chrome/browser/usb/usb_tab_helper.h" | 99 #include "chrome/browser/usb/usb_tab_helper.h" |
| 100 #include "chrome/browser/webshare/share_service_impl.h" | 100 #include "chrome/browser/webshare/share_service_impl.h" |
| 101 #include "chrome/common/channel_info.h" | 101 #include "chrome/common/channel_info.h" |
| 102 #include "chrome/common/chrome_constants.h" | 102 #include "chrome/common/chrome_constants.h" |
| 103 #include "chrome/common/chrome_features.h" | |
| 103 #include "chrome/common/chrome_paths.h" | 104 #include "chrome/common/chrome_paths.h" |
| 104 #include "chrome/common/chrome_switches.h" | 105 #include "chrome/common/chrome_switches.h" |
| 105 #include "chrome/common/env_vars.h" | 106 #include "chrome/common/env_vars.h" |
| 106 #include "chrome/common/features.h" | 107 #include "chrome/common/features.h" |
| 107 #include "chrome/common/logging_chrome.h" | 108 #include "chrome/common/logging_chrome.h" |
| 108 #include "chrome/common/origin_trials/chrome_origin_trial_policy.h" | 109 #include "chrome/common/origin_trials/chrome_origin_trial_policy.h" |
| 109 #include "chrome/common/pepper_permission_util.h" | 110 #include "chrome/common/pepper_permission_util.h" |
| 110 #include "chrome/common/pref_names.h" | 111 #include "chrome/common/pref_names.h" |
| 111 #include "chrome/common/render_messages.h" | 112 #include "chrome/common/render_messages.h" |
| 112 #include "chrome/common/renderer_configuration.mojom.h" | 113 #include "chrome/common/renderer_configuration.mojom.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 202 #include "third_party/WebKit/public/platform/modules/webshare/webshare.mojom.h" | 203 #include "third_party/WebKit/public/platform/modules/webshare/webshare.mojom.h" |
| 203 #include "ui/base/l10n/l10n_util.h" | 204 #include "ui/base/l10n/l10n_util.h" |
| 204 #include "ui/base/resource/resource_bundle.h" | 205 #include "ui/base/resource/resource_bundle.h" |
| 205 #include "ui/resources/grit/ui_resources.h" | 206 #include "ui/resources/grit/ui_resources.h" |
| 206 #include "url/gurl.h" | 207 #include "url/gurl.h" |
| 207 #include "url/origin.h" | 208 #include "url/origin.h" |
| 208 | 209 |
| 209 #if defined(OS_WIN) | 210 #if defined(OS_WIN) |
| 210 #include "base/strings/string_tokenizer.h" | 211 #include "base/strings/string_tokenizer.h" |
| 211 #include "chrome/browser/chrome_browser_main_win.h" | 212 #include "chrome/browser/chrome_browser_main_win.h" |
| 213 #include "chrome/browser/conflicts/module_database_win.h" | |
| 214 #include "chrome/browser/conflicts/module_event_sink_impl_win.h" | |
| 212 #include "sandbox/win/src/sandbox_policy.h" | 215 #include "sandbox/win/src/sandbox_policy.h" |
| 213 #elif defined(OS_MACOSX) | 216 #elif defined(OS_MACOSX) |
| 214 #include "chrome/browser/chrome_browser_main_mac.h" | 217 #include "chrome/browser/chrome_browser_main_mac.h" |
| 215 #elif defined(OS_CHROMEOS) | 218 #elif defined(OS_CHROMEOS) |
| 216 #include "chrome/browser/chromeos/arc/arc_session_manager.h" | 219 #include "chrome/browser/chromeos/arc/arc_session_manager.h" |
| 217 #include "chrome/browser/chromeos/arc/fileapi/arc_content_file_system_backend_de legate.h" | 220 #include "chrome/browser/chromeos/arc/fileapi/arc_content_file_system_backend_de legate.h" |
| 218 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_backend_del egate.h" | 221 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_backend_del egate.h" |
| 219 #include "chrome/browser/chromeos/arc/intent_helper/arc_navigation_throttle.h" | 222 #include "chrome/browser/chromeos/arc/intent_helper/arc_navigation_throttle.h" |
| 220 #include "chrome/browser/chromeos/attestation/platform_verification_impl.h" | 223 #include "chrome/browser/chromeos/attestation/platform_verification_impl.h" |
| 221 #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h" | 224 #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h" |
| (...skipping 2716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2938 sandbox::ResultCode result = policy->AddRule( | 2941 sandbox::ResultCode result = policy->AddRule( |
| 2939 sandbox::TargetPolicy::SUBSYS_NAMED_PIPES, | 2942 sandbox::TargetPolicy::SUBSYS_NAMED_PIPES, |
| 2940 sandbox::TargetPolicy::NAMEDPIPES_ALLOW_ANY, | 2943 sandbox::TargetPolicy::NAMEDPIPES_ALLOW_ANY, |
| 2941 L"\\\\.\\pipe\\chrome.nacl.*"); | 2944 L"\\\\.\\pipe\\chrome.nacl.*"); |
| 2942 if (result != sandbox::SBOX_ALL_OK) | 2945 if (result != sandbox::SBOX_ALL_OK) |
| 2943 return false; | 2946 return false; |
| 2944 return result == sandbox::SBOX_ALL_OK; | 2947 return result == sandbox::SBOX_ALL_OK; |
| 2945 } | 2948 } |
| 2946 #endif // defined(OS_WIN) | 2949 #endif // defined(OS_WIN) |
| 2947 | 2950 |
| 2951 namespace { | |
| 2952 | |
| 2953 // Utility function for use with ExposeInterfacesToRenderer. | |
| 2954 base::ProcessHandle GetProcessHandleFromRenderer( | |
| 2955 content::RenderProcessHost* render_process_host) { | |
| 2956 return render_process_host->GetHandle(); | |
| 2957 } | |
| 2958 | |
| 2959 } // namespace | |
| 2960 | |
| 2948 void ChromeContentBrowserClient::ExposeInterfacesToRenderer( | 2961 void ChromeContentBrowserClient::ExposeInterfacesToRenderer( |
| 2949 service_manager::InterfaceRegistry* registry, | 2962 service_manager::InterfaceRegistry* registry, |
| 2950 content::RenderProcessHost* render_process_host) { | 2963 content::RenderProcessHost* render_process_host) { |
| 2951 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner = | 2964 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner = |
| 2952 content::BrowserThread::GetTaskRunnerForThread( | 2965 content::BrowserThread::GetTaskRunnerForThread( |
| 2953 content::BrowserThread::UI); | 2966 content::BrowserThread::UI); |
| 2954 registry->AddInterface( | 2967 registry->AddInterface( |
| 2955 base::Bind(&startup_metric_utils::StartupMetricHostImpl::Create), | 2968 base::Bind(&startup_metric_utils::StartupMetricHostImpl::Create), |
| 2956 ui_task_runner); | 2969 ui_task_runner); |
| 2957 registry->AddInterface( | 2970 registry->AddInterface( |
| 2958 base::Bind(&BudgetServiceImpl::Create, render_process_host->GetID()), | 2971 base::Bind(&BudgetServiceImpl::Create, render_process_host->GetID()), |
| 2959 ui_task_runner); | 2972 ui_task_runner); |
| 2960 registry->AddInterface( | 2973 registry->AddInterface( |
| 2961 base::Bind(&FieldTrialRecorder::Create), | 2974 base::Bind(&FieldTrialRecorder::Create), |
| 2962 ui_task_runner); | 2975 ui_task_runner); |
| 2963 registry->AddInterface( | 2976 registry->AddInterface( |
| 2964 base::Bind(&rappor::RapporRecorderImpl::Create, | 2977 base::Bind(&rappor::RapporRecorderImpl::Create, |
| 2965 g_browser_process->rappor_service()), | 2978 g_browser_process->rappor_service()), |
| 2966 ui_task_runner); | 2979 ui_task_runner); |
| 2967 | 2980 |
| 2981 #if defined(OS_WIN) | |
| 2982 if (base::FeatureList::IsEnabled(features::kModuleDatabase)) { | |
| 2983 // Add the ModuleDatabase interface. This is the interface used by renderer | |
| 2984 // processes to notify the browser of modules in their address space. It | |
| 2985 // ultimately drives the chrome://conflicts UI. The process handle is not | |
| 2986 // yet available at this point so pass in a callback to allow it to be | |
| 2987 // retrieved at the time the interface is actually created. | |
| 2988 auto get_process = base::Bind(&GetProcessHandleFromRenderer, | |
|
grt (UTC plus 2)
2017/01/06 09:44:58
can you cut out the middle-man with:
base::Bind(
chrisha
2017/01/10 21:01:46
Indeed. /facepalm
| |
| 2989 base::Unretained(render_process_host)); | |
| 2990 registry->AddInterface( | |
| 2991 base::Bind(&ModuleEventSinkImpl::Create, get_process, | |
|
grt (UTC plus 2)
2017/01/06 09:44:58
nit: pass ownership of get_process to the bound ca
chrisha
2017/01/10 21:01:46
Done.
| |
| 2992 content::PROCESS_TYPE_RENDERER, | |
| 2993 base::Unretained(ModuleDatabase::GetInstance())), | |
| 2994 ui_task_runner); | |
| 2995 } | |
| 2996 #endif | |
| 2997 | |
| 2968 #if defined(OS_CHROMEOS) | 2998 #if defined(OS_CHROMEOS) |
| 2969 registry->AddInterface<metrics::mojom::LeakDetector>( | 2999 registry->AddInterface<metrics::mojom::LeakDetector>( |
| 2970 base::Bind(&metrics::LeakDetectorRemoteController::Create), | 3000 base::Bind(&metrics::LeakDetectorRemoteController::Create), |
| 2971 ui_task_runner); | 3001 ui_task_runner); |
| 2972 #endif | 3002 #endif |
| 2973 } | 3003 } |
| 2974 | 3004 |
| 2975 void ChromeContentBrowserClient::ExposeInterfacesToMediaService( | 3005 void ChromeContentBrowserClient::ExposeInterfacesToMediaService( |
| 2976 service_manager::InterfaceRegistry* registry, | 3006 service_manager::InterfaceRegistry* registry, |
| 2977 content::RenderFrameHost* render_frame_host) { | 3007 content::RenderFrameHost* render_frame_host) { |
| (...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3374 RedirectNonUINonIOBrowserThreadsToTaskScheduler() { | 3404 RedirectNonUINonIOBrowserThreadsToTaskScheduler() { |
| 3375 return variations::GetVariationParamValue( | 3405 return variations::GetVariationParamValue( |
| 3376 "BrowserScheduler", "RedirectNonUINonIOBrowserThreads") == "true"; | 3406 "BrowserScheduler", "RedirectNonUINonIOBrowserThreads") == "true"; |
| 3377 } | 3407 } |
| 3378 | 3408 |
| 3379 // static | 3409 // static |
| 3380 void ChromeContentBrowserClient::SetDefaultQuotaSettingsForTesting( | 3410 void ChromeContentBrowserClient::SetDefaultQuotaSettingsForTesting( |
| 3381 const storage::QuotaSettings* settings) { | 3411 const storage::QuotaSettings* settings) { |
| 3382 g_default_quota_settings = settings; | 3412 g_default_quota_settings = settings; |
| 3383 } | 3413 } |
| OLD | NEW |