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

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

Issue 591063003: Split ChromeContentBrowserClient into smaller parts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « no previous file | chrome/browser/plugins/chrome_content_browser_client_plugins_part.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 27 matching lines...) Expand all
38 #include "chrome/browser/media/cast_transport_host_filter.h" 38 #include "chrome/browser/media/cast_transport_host_filter.h"
39 #include "chrome/browser/media/media_capture_devices_dispatcher.h" 39 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
40 #include "chrome/browser/media/midi_permission_context.h" 40 #include "chrome/browser/media/midi_permission_context.h"
41 #include "chrome/browser/media/midi_permission_context_factory.h" 41 #include "chrome/browser/media/midi_permission_context_factory.h"
42 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h" 42 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h"
43 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h" 43 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h"
44 #include "chrome/browser/net/chrome_net_log.h" 44 #include "chrome/browser/net/chrome_net_log.h"
45 #include "chrome/browser/notifications/desktop_notification_service.h" 45 #include "chrome/browser/notifications/desktop_notification_service.h"
46 #include "chrome/browser/notifications/desktop_notification_service_factory.h" 46 #include "chrome/browser/notifications/desktop_notification_service_factory.h"
47 #include "chrome/browser/platform_util.h" 47 #include "chrome/browser/platform_util.h"
48 #include "chrome/browser/plugins/plugin_info_message_filter.h"
49 #include "chrome/browser/prerender/prerender_final_status.h" 48 #include "chrome/browser/prerender/prerender_final_status.h"
50 #include "chrome/browser/prerender/prerender_manager.h" 49 #include "chrome/browser/prerender/prerender_manager.h"
51 #include "chrome/browser/prerender/prerender_manager_factory.h" 50 #include "chrome/browser/prerender/prerender_manager_factory.h"
52 #include "chrome/browser/prerender/prerender_message_filter.h" 51 #include "chrome/browser/prerender/prerender_message_filter.h"
53 #include "chrome/browser/prerender/prerender_tracker.h" 52 #include "chrome/browser/prerender/prerender_tracker.h"
54 #include "chrome/browser/printing/printing_message_filter.h" 53 #include "chrome/browser/printing/printing_message_filter.h"
55 #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h" 54 #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h"
56 #include "chrome/browser/profiles/profile.h" 55 #include "chrome/browser/profiles/profile.h"
57 #include "chrome/browser/profiles/profile_io_data.h" 56 #include "chrome/browser/profiles/profile_io_data.h"
58 #include "chrome/browser/renderer_host/chrome_render_message_filter.h" 57 #include "chrome/browser/renderer_host/chrome_render_message_filter.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 #include "content/public/common/child_process_host.h" 119 #include "content/public/common/child_process_host.h"
121 #include "content/public/common/content_descriptors.h" 120 #include "content/public/common/content_descriptors.h"
122 #include "content/public/common/show_desktop_notification_params.h" 121 #include "content/public/common/show_desktop_notification_params.h"
123 #include "content/public/common/url_utils.h" 122 #include "content/public/common/url_utils.h"
124 #include "content/public/common/web_preferences.h" 123 #include "content/public/common/web_preferences.h"
125 #include "net/base/mime_util.h" 124 #include "net/base/mime_util.h"
126 #include "net/cookies/canonical_cookie.h" 125 #include "net/cookies/canonical_cookie.h"
127 #include "net/cookies/cookie_options.h" 126 #include "net/cookies/cookie_options.h"
128 #include "net/ssl/ssl_cert_request_info.h" 127 #include "net/ssl/ssl_cert_request_info.h"
129 #include "ppapi/host/ppapi_host.h" 128 #include "ppapi/host/ppapi_host.h"
130 #include "ppapi/shared_impl/ppapi_switches.h"
131 #include "storage/browser/fileapi/external_mount_points.h" 129 #include "storage/browser/fileapi/external_mount_points.h"
132 #include "ui/base/l10n/l10n_util.h" 130 #include "ui/base/l10n/l10n_util.h"
133 #include "ui/base/resource/resource_bundle.h" 131 #include "ui/base/resource/resource_bundle.h"
134 #include "ui/resources/grit/ui_resources.h" 132 #include "ui/resources/grit/ui_resources.h"
135 133
136 #if defined(OS_WIN) 134 #if defined(OS_WIN)
137 #include "base/win/windows_version.h" 135 #include "base/win/windows_version.h"
138 #include "chrome/browser/chrome_browser_main_win.h" 136 #include "chrome/browser/chrome_browser_main_win.h"
139 #include "sandbox/win/src/sandbox_policy.h" 137 #include "sandbox/win/src/sandbox_policy.h"
140 #elif defined(OS_MACOSX) 138 #elif defined(OS_MACOSX)
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 #include "extensions/common/constants.h" 232 #include "extensions/common/constants.h"
235 #include "extensions/common/extension.h" 233 #include "extensions/common/extension.h"
236 #include "extensions/common/extension_set.h" 234 #include "extensions/common/extension_set.h"
237 #include "extensions/common/manifest_handlers/background_info.h" 235 #include "extensions/common/manifest_handlers/background_info.h"
238 #include "extensions/common/manifest_handlers/shared_module_info.h" 236 #include "extensions/common/manifest_handlers/shared_module_info.h"
239 #include "extensions/common/permissions/permissions_data.h" 237 #include "extensions/common/permissions/permissions_data.h"
240 #include "extensions/common/permissions/socket_permission.h" 238 #include "extensions/common/permissions/socket_permission.h"
241 #include "extensions/common/switches.h" 239 #include "extensions/common/switches.h"
242 #endif 240 #endif
243 241
242 #if defined(ENABLE_PLUGINS)
243 #include "chrome/browser/plugins/chrome_content_browser_client_plugins_part.h"
244 #endif
245
244 #if defined(ENABLE_SPELLCHECK) 246 #if defined(ENABLE_SPELLCHECK)
245 #include "chrome/browser/spellchecker/spellcheck_message_filter.h" 247 #include "chrome/browser/spellchecker/spellcheck_message_filter.h"
246 #endif 248 #endif
247 249
248 #if defined(ENABLE_WEBRTC) 250 #if defined(ENABLE_WEBRTC)
249 #include "chrome/browser/media/webrtc_logging_handler_host.h" 251 #include "chrome/browser/media/webrtc_logging_handler_host.h"
250 #endif 252 #endif
251 253
252 using base::FileDescriptor; 254 using base::FileDescriptor;
253 using blink::WebWindowFeatures; 255 using blink::WebWindowFeatures;
(...skipping 15 matching lines...) Expand all
269 #endif 271 #endif
270 272
271 #if defined(ENABLE_EXTENSIONS) 273 #if defined(ENABLE_EXTENSIONS)
272 using extensions::APIPermission; 274 using extensions::APIPermission;
273 using extensions::ChromeContentBrowserClientExtensionsPart; 275 using extensions::ChromeContentBrowserClientExtensionsPart;
274 using extensions::Extension; 276 using extensions::Extension;
275 using extensions::InfoMap; 277 using extensions::InfoMap;
276 using extensions::Manifest; 278 using extensions::Manifest;
277 #endif 279 #endif
278 280
281 #if defined(ENABLE_PLUGINS)
282 using plugins::ChromeContentBrowserClientPluginsPart;
283 #endif
284
279 namespace { 285 namespace {
280 286
281 // Cached version of the locale so we can return the locale on the I/O 287 // Cached version of the locale so we can return the locale on the I/O
282 // thread. 288 // thread.
283 base::LazyInstance<std::string> g_io_thread_application_locale; 289 base::LazyInstance<std::string> g_io_thread_application_locale;
284 290
285 #if defined(ENABLE_PLUGINS) 291 #if defined(ENABLE_PLUGINS)
286 // TODO(teravest): Add renderer-side API-specific checking for these APIs so 292 // TODO(teravest): Add renderer-side API-specific checking for these APIs so
287 // that blanket permission isn't granted to all dev channel APIs for these. 293 // that blanket permission isn't granted to all dev channel APIs for these.
288 // http://crbug.com/386743 294 // http://crbug.com/386743
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 ChromeContentBrowserClient::ChromeContentBrowserClient() 607 ChromeContentBrowserClient::ChromeContentBrowserClient()
602 : prerender_tracker_(NULL), 608 : prerender_tracker_(NULL),
603 weak_factory_(this) { 609 weak_factory_(this) {
604 #if defined(ENABLE_PLUGINS) 610 #if defined(ENABLE_PLUGINS)
605 for (size_t i = 0; i < arraysize(kPredefinedAllowedDevChannelOrigins); ++i) 611 for (size_t i = 0; i < arraysize(kPredefinedAllowedDevChannelOrigins); ++i)
606 allowed_dev_channel_origins_.insert(kPredefinedAllowedDevChannelOrigins[i]); 612 allowed_dev_channel_origins_.insert(kPredefinedAllowedDevChannelOrigins[i]);
607 for (size_t i = 0; i < arraysize(kPredefinedAllowedFileHandleOrigins); ++i) 613 for (size_t i = 0; i < arraysize(kPredefinedAllowedFileHandleOrigins); ++i)
608 allowed_file_handle_origins_.insert(kPredefinedAllowedFileHandleOrigins[i]); 614 allowed_file_handle_origins_.insert(kPredefinedAllowedFileHandleOrigins[i]);
609 for (size_t i = 0; i < arraysize(kPredefinedAllowedSocketOrigins); ++i) 615 for (size_t i = 0; i < arraysize(kPredefinedAllowedSocketOrigins); ++i)
610 allowed_socket_origins_.insert(kPredefinedAllowedSocketOrigins[i]); 616 allowed_socket_origins_.insert(kPredefinedAllowedSocketOrigins[i]);
617
618 extra_parts_.push_back(new ChromeContentBrowserClientPluginsPart);
611 #endif 619 #endif
612 620
613 #if !defined(OS_ANDROID) 621 #if !defined(OS_ANDROID)
614 TtsExtensionEngine* tts_extension_engine = TtsExtensionEngine::GetInstance(); 622 TtsExtensionEngine* tts_extension_engine = TtsExtensionEngine::GetInstance();
615 TtsController::GetInstance()->SetTtsEngineDelegate(tts_extension_engine); 623 TtsController::GetInstance()->SetTtsEngineDelegate(tts_extension_engine);
616 #endif 624 #endif
617 625
618 #if defined(ENABLE_EXTENSIONS) 626 #if defined(ENABLE_EXTENSIONS)
619 extra_parts_.push_back(new ChromeContentBrowserClientExtensionsPart); 627 extra_parts_.push_back(new ChromeContentBrowserClientExtensionsPart);
620 #endif 628 #endif
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 } 818 }
811 819
812 void ChromeContentBrowserClient::RenderProcessWillLaunch( 820 void ChromeContentBrowserClient::RenderProcessWillLaunch(
813 content::RenderProcessHost* host) { 821 content::RenderProcessHost* host) {
814 int id = host->GetID(); 822 int id = host->GetID();
815 Profile* profile = Profile::FromBrowserContext(host->GetBrowserContext()); 823 Profile* profile = Profile::FromBrowserContext(host->GetBrowserContext());
816 net::URLRequestContextGetter* context = 824 net::URLRequestContextGetter* context =
817 profile->GetRequestContextForRenderProcess(id); 825 profile->GetRequestContextForRenderProcess(id);
818 826
819 host->AddFilter(new ChromeRenderMessageFilter(id, profile)); 827 host->AddFilter(new ChromeRenderMessageFilter(id, profile));
820 #if defined(ENABLE_PLUGINS)
821 host->AddFilter(new PluginInfoMessageFilter(id, profile));
822 #endif
823 host->AddFilter(new cast::CastTransportHostFilter); 828 host->AddFilter(new cast::CastTransportHostFilter);
824 #if defined(ENABLE_PRINTING) 829 #if defined(ENABLE_PRINTING)
825 host->AddFilter(new printing::PrintingMessageFilter(id, profile)); 830 host->AddFilter(new printing::PrintingMessageFilter(id, profile));
826 #endif 831 #endif
827 host->AddFilter(new SearchProviderInstallStateMessageFilter(id, profile)); 832 host->AddFilter(new SearchProviderInstallStateMessageFilter(id, profile));
828 #if defined(ENABLE_SPELLCHECK) 833 #if defined(ENABLE_SPELLCHECK)
829 host->AddFilter(new SpellCheckMessageFilter(id)); 834 host->AddFilter(new SpellCheckMessageFilter(id));
830 #endif 835 #endif
831 #if defined(OS_MACOSX) 836 #if defined(OS_MACOSX)
832 host->AddFilter(new SpellCheckMessageFilterMac(id)); 837 host->AddFilter(new SpellCheckMessageFilterMac(id));
(...skipping 1492 matching lines...) Expand 10 before | Expand all | Expand 10 after
2325 return DownloadPrefs::GetDefaultDownloadDirectory(); 2330 return DownloadPrefs::GetDefaultDownloadDirectory();
2326 } 2331 }
2327 2332
2328 std::string ChromeContentBrowserClient::GetDefaultDownloadName() { 2333 std::string ChromeContentBrowserClient::GetDefaultDownloadName() {
2329 return l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME); 2334 return l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME);
2330 } 2335 }
2331 2336
2332 void ChromeContentBrowserClient::DidCreatePpapiPlugin( 2337 void ChromeContentBrowserClient::DidCreatePpapiPlugin(
2333 content::BrowserPpapiHost* browser_host) { 2338 content::BrowserPpapiHost* browser_host) {
2334 #if defined(ENABLE_PLUGINS) 2339 #if defined(ENABLE_PLUGINS)
2335 browser_host->GetPpapiHost()->AddHostFactoryFilter( 2340 ChromeContentBrowserClientPluginsPart::DidCreatePpapiPlugin(browser_host);
2336 scoped_ptr<ppapi::host::HostFactory>(
2337 new ChromeBrowserPepperHostFactory(browser_host)));
2338 #endif 2341 #endif
2339 } 2342 }
2340 2343
2341 content::BrowserPpapiHost* 2344 content::BrowserPpapiHost*
2342 ChromeContentBrowserClient::GetExternalBrowserPpapiHost( 2345 ChromeContentBrowserClient::GetExternalBrowserPpapiHost(
2343 int plugin_process_id) { 2346 int plugin_process_id) {
2344 #if !defined(DISABLE_NACL) 2347 #if !defined(DISABLE_NACL)
2345 content::BrowserChildProcessHostIterator iter(PROCESS_TYPE_NACL_LOADER); 2348 content::BrowserChildProcessHostIterator iter(PROCESS_TYPE_NACL_LOADER);
2346 while (!iter.Done()) { 2349 while (!iter.Done()) {
2347 nacl::NaClProcessHost* host = static_cast<nacl::NaClProcessHost*>( 2350 nacl::NaClProcessHost* host = static_cast<nacl::NaClProcessHost*>(
2348 iter.GetDelegate()); 2351 iter.GetDelegate());
2349 if (host->process() && 2352 if (host->process() &&
2350 host->process()->GetData().id == plugin_process_id) { 2353 host->process()->GetData().id == plugin_process_id) {
2351 // Found the plugin. 2354 // Found the plugin.
2352 return host->browser_ppapi_host(); 2355 return host->browser_ppapi_host();
2353 } 2356 }
2354 ++iter; 2357 ++iter;
2355 } 2358 }
2356 #endif 2359 #endif
2357 return NULL; 2360 return NULL;
2358 } 2361 }
2359 2362
2360 bool ChromeContentBrowserClient::AllowPepperSocketAPI( 2363 bool ChromeContentBrowserClient::AllowPepperSocketAPI(
2361 content::BrowserContext* browser_context, 2364 content::BrowserContext* browser_context,
2362 const GURL& url, 2365 const GURL& url,
2363 bool private_api, 2366 bool private_api,
2364 const content::SocketPermissionRequest* params) { 2367 const content::SocketPermissionRequest* params) {
2365 #if defined(ENABLE_EXTENSIONS) 2368 #if defined(ENABLE_PLUGINS) && defined(ENABLE_EXTENSIONS)
2366 Profile* profile = Profile::FromBrowserContext(browser_context); 2369 return ChromeContentBrowserClientPluginsPart::AllowPepperSocketAPI(
2367 const extensions::ExtensionSet* extension_set = NULL; 2370 browser_context, url, private_api, params, allowed_socket_origins_);
2368 if (profile) {
2369 extension_set =
2370 &extensions::ExtensionRegistry::Get(profile)->enabled_extensions();
2371 }
2372
2373 if (private_api) {
2374 // Access to private socket APIs is controlled by the whitelist.
2375 if (IsExtensionOrSharedModuleWhitelisted(url, extension_set,
2376 allowed_socket_origins_)) {
2377 return true;
2378 }
2379 } else {
2380 // Access to public socket APIs is controlled by extension permissions.
2381 if (url.is_valid() && url.SchemeIs(extensions::kExtensionScheme) &&
2382 extension_set) {
2383 const Extension* extension = extension_set->GetByID(url.host());
2384 if (extension) {
2385 const extensions::PermissionsData* permissions_data =
2386 extension->permissions_data();
2387 if (params) {
2388 extensions::SocketPermission::CheckParam check_params(
2389 params->type, params->host, params->port);
2390 if (permissions_data->CheckAPIPermissionWithParam(
2391 extensions::APIPermission::kSocket, &check_params)) {
2392 return true;
2393 }
2394 } else if (permissions_data->HasAPIPermission(
2395 extensions::APIPermission::kSocket)) {
2396 return true;
2397 }
2398 }
2399 }
2400 }
2401
2402 // Allow both public and private APIs if the command line says so.
2403 return IsHostAllowedByCommandLine(url, extension_set,
2404 switches::kAllowNaClSocketAPI);
2405 #else 2371 #else
2406 return false; 2372 return false;
2407 #endif 2373 #endif
2408 } 2374 }
2409 2375
2410 ui::SelectFilePolicy* ChromeContentBrowserClient::CreateSelectFilePolicy( 2376 ui::SelectFilePolicy* ChromeContentBrowserClient::CreateSelectFilePolicy(
2411 WebContents* web_contents) { 2377 WebContents* web_contents) {
2412 return new ChromeSelectFilePolicy(web_contents); 2378 return new ChromeSelectFilePolicy(web_contents);
2413 } 2379 }
2414 2380
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
2589 #if defined(OS_ANDROID) 2555 #if defined(OS_ANDROID)
2590 return new DevToolsManagerDelegateAndroid(); 2556 return new DevToolsManagerDelegateAndroid();
2591 #else 2557 #else
2592 return new ChromeDevToolsManagerDelegate(); 2558 return new ChromeDevToolsManagerDelegate();
2593 #endif 2559 #endif
2594 } 2560 }
2595 2561
2596 bool ChromeContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle( 2562 bool ChromeContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle(
2597 content::BrowserContext* browser_context, 2563 content::BrowserContext* browser_context,
2598 const GURL& url) { 2564 const GURL& url) {
2599 #if defined(ENABLE_EXTENSIONS) 2565 #if defined(ENABLE_PLUGINS) && defined(ENABLE_EXTENSIONS)
2600 Profile* profile = Profile::FromBrowserContext(browser_context); 2566 return ChromeContentBrowserClientPluginsPart::
2601 const extensions::ExtensionSet* extension_set = NULL; 2567 IsPluginAllowedToCallRequestOSFileHandle(browser_context, url,
2602 if (profile) { 2568 allowed_file_handle_origins_);
2603 extension_set =
2604 &extensions::ExtensionRegistry::Get(profile)->enabled_extensions();
2605 }
2606 return IsExtensionOrSharedModuleWhitelisted(url, extension_set,
2607 allowed_file_handle_origins_) ||
2608 IsHostAllowedByCommandLine(url, extension_set,
2609 switches::kAllowNaClFileHandleAPI);
2610 #else 2569 #else
2611 return false; 2570 return false;
2612 #endif 2571 #endif
2613 } 2572 }
2614 2573
2615 bool ChromeContentBrowserClient::IsPluginAllowedToUseDevChannelAPIs( 2574 bool ChromeContentBrowserClient::IsPluginAllowedToUseDevChannelAPIs(
2616 content::BrowserContext* browser_context, 2575 content::BrowserContext* browser_context,
2617 const GURL& url) { 2576 const GURL& url) {
2618 #if defined(ENABLE_EXTENSIONS) 2577 #if defined(ENABLE_PLUGINS) && defined(ENABLE_EXTENSIONS)
2619 // Allow access for tests. 2578 return ChromeContentBrowserClientPluginsPart::
2620 if (CommandLine::ForCurrentProcess()->HasSwitch( 2579 IsPluginAllowedToUseDevChannelAPIs(browser_context, url,
2621 switches::kEnablePepperTesting)) { 2580 allowed_dev_channel_origins_);
2622 return true;
2623 }
2624
2625 Profile* profile = Profile::FromBrowserContext(browser_context);
2626 const extensions::ExtensionSet* extension_set = NULL;
2627 if (profile) {
2628 extension_set =
2629 &extensions::ExtensionRegistry::Get(profile)->enabled_extensions();
2630 }
2631
2632 // Allow access for whitelisted applications.
2633 if (IsExtensionOrSharedModuleWhitelisted(url,
2634 extension_set,
2635 allowed_dev_channel_origins_)) {
2636 return true;
2637 }
2638
2639 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
2640 // Allow dev channel APIs to be used on "Canary", "Dev", and "Unknown"
2641 // releases of Chrome. Permitting "Unknown" allows these APIs to be used on
2642 // Chromium builds as well.
2643 return channel <= chrome::VersionInfo::CHANNEL_DEV;
2644 #else 2581 #else
2645 return false; 2582 return false;
2646 #endif 2583 #endif
2647 } 2584 }
2648 2585
2649 net::CookieStore* 2586 net::CookieStore*
2650 ChromeContentBrowserClient::OverrideCookieStoreForRenderProcess( 2587 ChromeContentBrowserClient::OverrideCookieStoreForRenderProcess(
2651 int render_process_id) { 2588 int render_process_id) {
2652 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 2589 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
2653 if (!prerender_tracker_) 2590 if (!prerender_tracker_)
(...skipping 19 matching lines...) Expand all
2673 switches::kDisableWebRtcEncryption, 2610 switches::kDisableWebRtcEncryption,
2674 }; 2611 };
2675 to_command_line->CopySwitchesFrom(from_command_line, 2612 to_command_line->CopySwitchesFrom(from_command_line,
2676 kWebRtcDevSwitchNames, 2613 kWebRtcDevSwitchNames,
2677 arraysize(kWebRtcDevSwitchNames)); 2614 arraysize(kWebRtcDevSwitchNames));
2678 } 2615 }
2679 } 2616 }
2680 #endif // defined(ENABLE_WEBRTC) 2617 #endif // defined(ENABLE_WEBRTC)
2681 2618
2682 } // namespace chrome 2619 } // namespace chrome
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/plugins/chrome_content_browser_client_plugins_part.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698