Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(440)

Side by Side Diff: chrome/browser/chrome_content_browser_client.cc

Issue 2613803005: [win] Enable ModuleDatabase behind a flag. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698