| 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 <set> | 7 #include <set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 #include "chrome/browser/browser_about_handler.h" | 22 #include "chrome/browser/browser_about_handler.h" |
| 23 #include "chrome/browser/browser_process.h" | 23 #include "chrome/browser/browser_process.h" |
| 24 #include "chrome/browser/browser_shutdown.h" | 24 #include "chrome/browser/browser_shutdown.h" |
| 25 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 25 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 26 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 26 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
| 27 #include "chrome/browser/character_encoding.h" | 27 #include "chrome/browser/character_encoding.h" |
| 28 #include "chrome/browser/chrome_content_browser_client_parts.h" | 28 #include "chrome/browser/chrome_content_browser_client_parts.h" |
| 29 #include "chrome/browser/chrome_net_benchmarking_message_filter.h" | 29 #include "chrome/browser/chrome_net_benchmarking_message_filter.h" |
| 30 #include "chrome/browser/chrome_quota_permission_context.h" | 30 #include "chrome/browser/chrome_quota_permission_context.h" |
| 31 #include "chrome/browser/content_settings/cookie_settings.h" | 31 #include "chrome/browser/content_settings/cookie_settings.h" |
| 32 #include "chrome/browser/content_settings/permission_context.h" |
| 33 #include "chrome/browser/content_settings/permission_observer.h" |
| 34 #include "chrome/browser/content_settings/permission_observer_factory.h" |
| 32 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 35 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
| 33 #include "chrome/browser/defaults.h" | 36 #include "chrome/browser/defaults.h" |
| 34 #include "chrome/browser/download/download_prefs.h" | 37 #include "chrome/browser/download/download_prefs.h" |
| 35 #include "chrome/browser/font_family_cache.h" | 38 #include "chrome/browser/font_family_cache.h" |
| 36 #include "chrome/browser/geolocation/chrome_access_token_store.h" | 39 #include "chrome/browser/geolocation/chrome_access_token_store.h" |
| 37 #include "chrome/browser/geolocation/geolocation_permission_context.h" | 40 #include "chrome/browser/geolocation/geolocation_permission_context.h" |
| 38 #include "chrome/browser/geolocation/geolocation_permission_context_factory.h" | |
| 39 #include "chrome/browser/media/media_capture_devices_dispatcher.h" | 41 #include "chrome/browser/media/media_capture_devices_dispatcher.h" |
| 40 #include "chrome/browser/media/midi_permission_context.h" | 42 #include "chrome/browser/media/midi_permission_context.h" |
| 41 #include "chrome/browser/media/midi_permission_context_factory.h" | |
| 42 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h" | 43 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h" |
| 43 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h" | 44 #include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h" |
| 44 #include "chrome/browser/net/chrome_net_log.h" | 45 #include "chrome/browser/net/chrome_net_log.h" |
| 45 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.h" | 46 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.h" |
| 46 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_fact
ory.h" | 47 #include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings_fact
ory.h" |
| 47 #include "chrome/browser/notifications/desktop_notification_service.h" | 48 #include "chrome/browser/notifications/desktop_notification_service.h" |
| 48 #include "chrome/browser/notifications/desktop_notification_service_factory.h" | |
| 49 #include "chrome/browser/notifications/platform_notification_service_impl.h" | 49 #include "chrome/browser/notifications/platform_notification_service_impl.h" |
| 50 #include "chrome/browser/platform_util.h" | 50 #include "chrome/browser/platform_util.h" |
| 51 #include "chrome/browser/prerender/prerender_final_status.h" | 51 #include "chrome/browser/prerender/prerender_final_status.h" |
| 52 #include "chrome/browser/prerender/prerender_manager.h" | 52 #include "chrome/browser/prerender/prerender_manager.h" |
| 53 #include "chrome/browser/prerender/prerender_manager_factory.h" | 53 #include "chrome/browser/prerender/prerender_manager_factory.h" |
| 54 #include "chrome/browser/prerender/prerender_message_filter.h" | 54 #include "chrome/browser/prerender/prerender_message_filter.h" |
| 55 #include "chrome/browser/printing/printing_message_filter.h" | 55 #include "chrome/browser/printing/printing_message_filter.h" |
| 56 #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h" | 56 #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h" |
| 57 #include "chrome/browser/profiles/profile.h" | 57 #include "chrome/browser/profiles/profile.h" |
| 58 #include "chrome/browser/profiles/profile_io_data.h" | 58 #include "chrome/browser/profiles/profile_io_data.h" |
| 59 #include "chrome/browser/push_messaging/push_messaging_permission_context.h" | 59 #include "chrome/browser/push_messaging/push_messaging_permission_context.h" |
| 60 #include "chrome/browser/push_messaging/push_messaging_permission_context_factor
y.h" | |
| 61 #include "chrome/browser/renderer_host/chrome_render_message_filter.h" | 60 #include "chrome/browser/renderer_host/chrome_render_message_filter.h" |
| 62 #include "chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory
.h" | 61 #include "chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory
.h" |
| 63 #include "chrome/browser/search/instant_service.h" | 62 #include "chrome/browser/search/instant_service.h" |
| 64 #include "chrome/browser/search/instant_service_factory.h" | 63 #include "chrome/browser/search/instant_service_factory.h" |
| 65 #include "chrome/browser/search/search.h" | 64 #include "chrome/browser/search/search.h" |
| 66 #include "chrome/browser/search_engines/search_provider_install_state_message_fi
lter.h" | 65 #include "chrome/browser/search_engines/search_provider_install_state_message_fi
lter.h" |
| 67 #include "chrome/browser/speech/chrome_speech_recognition_manager_delegate.h" | 66 #include "chrome/browser/speech/chrome_speech_recognition_manager_delegate.h" |
| 68 #include "chrome/browser/speech/tts_controller.h" | 67 #include "chrome/browser/speech/tts_controller.h" |
| 69 #include "chrome/browser/speech/tts_message_filter.h" | 68 #include "chrome/browser/speech/tts_message_filter.h" |
| 70 #include "chrome/browser/ssl/ssl_add_certificate.h" | 69 #include "chrome/browser/ssl/ssl_add_certificate.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h" | 163 #include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h" |
| 165 #include "chrome/browser/chrome_browser_main_android.h" | 164 #include "chrome/browser/chrome_browser_main_android.h" |
| 166 #include "chrome/common/descriptors_android.h" | 165 #include "chrome/common/descriptors_android.h" |
| 167 #include "components/crash/browser/crash_dump_manager_android.h" | 166 #include "components/crash/browser/crash_dump_manager_android.h" |
| 168 #elif defined(OS_POSIX) | 167 #elif defined(OS_POSIX) |
| 169 #include "chrome/browser/chrome_browser_main_posix.h" | 168 #include "chrome/browser/chrome_browser_main_posix.h" |
| 170 #endif | 169 #endif |
| 171 | 170 |
| 172 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) | 171 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
| 173 #include "chrome/browser/media/protected_media_identifier_permission_context.h" | 172 #include "chrome/browser/media/protected_media_identifier_permission_context.h" |
| 174 #include "chrome/browser/media/protected_media_identifier_permission_context_fac
tory.h" | |
| 175 #endif | 173 #endif |
| 176 | 174 |
| 177 #if defined(OS_POSIX) && !defined(OS_MACOSX) | 175 #if defined(OS_POSIX) && !defined(OS_MACOSX) |
| 178 #include "base/debug/leak_annotations.h" | 176 #include "base/debug/leak_annotations.h" |
| 179 #include "components/crash/app/breakpad_linux.h" | 177 #include "components/crash/app/breakpad_linux.h" |
| 180 #include "components/crash/browser/crash_handler_host_linux.h" | 178 #include "components/crash/browser/crash_handler_host_linux.h" |
| 181 #endif | 179 #endif |
| 182 | 180 |
| 183 #if defined(OS_ANDROID) | 181 #if defined(OS_ANDROID) |
| 184 #include "ui/base/ui_base_paths.h" | 182 #include "ui/base/ui_base_paths.h" |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 return content::PERMISSION_STATUS_ASK; | 619 return content::PERMISSION_STATUS_ASK; |
| 622 case CONTENT_SETTING_DETECT_IMPORTANT_CONTENT: | 620 case CONTENT_SETTING_DETECT_IMPORTANT_CONTENT: |
| 623 case CONTENT_SETTING_DEFAULT: | 621 case CONTENT_SETTING_DEFAULT: |
| 624 case CONTENT_SETTING_NUM_SETTINGS: | 622 case CONTENT_SETTING_NUM_SETTINGS: |
| 625 break; | 623 break; |
| 626 } | 624 } |
| 627 NOTREACHED(); | 625 NOTREACHED(); |
| 628 return content::PERMISSION_STATUS_DENIED; | 626 return content::PERMISSION_STATUS_DENIED; |
| 629 } | 627 } |
| 630 | 628 |
| 631 PermissionContextBase* GetPermissionContext(Profile* profile, | |
| 632 content::PermissionType permission) { | |
| 633 switch (permission) { | |
| 634 case content::PERMISSION_MIDI_SYSEX: | |
| 635 return MidiPermissionContextFactory::GetForProfile(profile); | |
| 636 case content::PERMISSION_NOTIFICATIONS: | |
| 637 #if defined(ENABLE_NOTIFICATIONS) | |
| 638 return DesktopNotificationServiceFactory::GetForProfile(profile); | |
| 639 #else | |
| 640 NOTIMPLEMENTED(); | |
| 641 break; | |
| 642 #endif | |
| 643 case content::PERMISSION_GEOLOCATION: | |
| 644 return GeolocationPermissionContextFactory::GetForProfile(profile); | |
| 645 case content::PERMISSION_PROTECTED_MEDIA_IDENTIFIER: | |
| 646 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) | |
| 647 return ProtectedMediaIdentifierPermissionContextFactory::GetForProfile( | |
| 648 profile); | |
| 649 #else | |
| 650 NOTIMPLEMENTED(); | |
| 651 break; | |
| 652 #endif | |
| 653 case content::PERMISSION_PUSH_MESSAGING: | |
| 654 return PushMessagingPermissionContextFactory::GetForProfile(profile); | |
| 655 case content::PERMISSION_NUM: | |
| 656 NOTREACHED() << "Invalid RequestPermission for " << permission; | |
| 657 break; | |
| 658 } | |
| 659 return nullptr; | |
| 660 } | |
| 661 | |
| 662 // Helper method to translate from Permissions to ContentSettings | 629 // Helper method to translate from Permissions to ContentSettings |
| 663 ContentSettingsType PermissionToContentSetting( | 630 ContentSettingsType PermissionToContentSetting( |
| 664 content::PermissionType permission) { | 631 content::PermissionType permission) { |
| 665 switch (permission) { | 632 switch (permission) { |
| 666 case content::PERMISSION_MIDI_SYSEX: | 633 case content::PERMISSION_MIDI_SYSEX: |
| 667 return CONTENT_SETTINGS_TYPE_MIDI_SYSEX; | 634 return CONTENT_SETTINGS_TYPE_MIDI_SYSEX; |
| 668 case content::PERMISSION_PUSH_MESSAGING: | 635 case content::PERMISSION_PUSH_MESSAGING: |
| 669 return CONTENT_SETTINGS_TYPE_PUSH_MESSAGING; | 636 return CONTENT_SETTINGS_TYPE_PUSH_MESSAGING; |
| 670 case content::PERMISSION_NOTIFICATIONS: | 637 case content::PERMISSION_NOTIFICATIONS: |
| 671 return CONTENT_SETTINGS_TYPE_NOTIFICATIONS; | 638 return CONTENT_SETTINGS_TYPE_NOTIFICATIONS; |
| 672 case content::PERMISSION_GEOLOCATION: | 639 case content::PERMISSION_GEOLOCATION: |
| 673 return CONTENT_SETTINGS_TYPE_GEOLOCATION; | 640 return CONTENT_SETTINGS_TYPE_GEOLOCATION; |
| 674 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) | 641 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
| 675 case content::PERMISSION_PROTECTED_MEDIA_IDENTIFIER: | 642 case content::PERMISSION_PROTECTED_MEDIA_IDENTIFIER: |
| 676 return CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER; | 643 return CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER; |
| 677 #endif | 644 #endif |
| 678 default: | 645 default: |
| 679 NOTREACHED() << "Unknown content setting for permission " << permission; | 646 NOTREACHED() << "Unknown content setting for permission " << permission; |
| 680 return CONTENT_SETTINGS_TYPE_DEFAULT; | 647 return CONTENT_SETTINGS_TYPE_DEFAULT; |
| 681 } | 648 } |
| 682 } | 649 } |
| 683 | 650 |
| 684 void OnRequestPermission( | 651 void PermissionStatusCallbackWrapper( |
| 685 const base::Callback<void(content::PermissionStatus)>& callback, | 652 const base::Callback<void(content::PermissionStatus)>& callback, |
| 686 ContentSetting content_setting) { | 653 ContentSetting content_setting) { |
| 687 callback.Run(ContentSettingToPermissionStatus(content_setting)); | 654 callback.Run(ContentSettingToPermissionStatus(content_setting)); |
| 688 } | 655 } |
| 689 | 656 |
| 690 } // namespace | 657 } // namespace |
| 691 | 658 |
| 692 namespace chrome { | 659 namespace chrome { |
| 693 | 660 |
| 694 ChromeContentBrowserClient::ChromeContentBrowserClient() | 661 ChromeContentBrowserClient::ChromeContentBrowserClient() |
| (...skipping 1244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1939 bool user_gesture, | 1906 bool user_gesture, |
| 1940 const base::Callback<void(content::PermissionStatus)>& result_callback) { | 1907 const base::Callback<void(content::PermissionStatus)>& result_callback) { |
| 1941 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); | 1908 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); |
| 1942 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); | 1909 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); |
| 1943 const PermissionRequestID request_id(render_process_id, | 1910 const PermissionRequestID request_id(render_process_id, |
| 1944 render_view_id, | 1911 render_view_id, |
| 1945 bridge_id, | 1912 bridge_id, |
| 1946 requesting_frame); | 1913 requesting_frame); |
| 1947 Profile* profile = | 1914 Profile* profile = |
| 1948 Profile::FromBrowserContext(web_contents->GetBrowserContext()); | 1915 Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
| 1949 PermissionContextBase* context = GetPermissionContext(profile, permission); | 1916 PermissionContextBase* context = |
| 1917 PermissionContext::Get(profile, PermissionToContentSetting(permission)); |
| 1950 | 1918 |
| 1951 if (!context) | 1919 if (!context) |
| 1952 return; | 1920 return; |
| 1953 | 1921 |
| 1954 context->RequestPermission(web_contents, request_id, requesting_frame, | 1922 context->RequestPermission(web_contents, request_id, requesting_frame, |
| 1955 user_gesture, | 1923 user_gesture, |
| 1956 base::Bind(&OnRequestPermission, result_callback)); | 1924 base::Bind(&PermissionStatusCallbackWrapper, |
| 1925 result_callback)); |
| 1957 } | 1926 } |
| 1958 | 1927 |
| 1959 content::PermissionStatus ChromeContentBrowserClient::GetPermissionStatus( | 1928 content::PermissionStatus ChromeContentBrowserClient::GetPermissionStatus( |
| 1960 content::PermissionType permission, | 1929 content::PermissionType permission, |
| 1961 content::BrowserContext* browser_context, | 1930 content::BrowserContext* browser_context, |
| 1962 const GURL& requesting_origin, | 1931 const GURL& requesting_origin, |
| 1963 const GURL& embedding_origin) { | 1932 const GURL& embedding_origin) { |
| 1964 DCHECK(browser_context); | 1933 DCHECK(browser_context); |
| 1965 Profile* profile = Profile::FromBrowserContext(browser_context); | 1934 Profile* profile = Profile::FromBrowserContext(browser_context); |
| 1966 PermissionContextBase* context = GetPermissionContext(profile, permission); | 1935 PermissionContextBase* context = |
| 1936 PermissionContext::Get(profile, PermissionToContentSetting(permission)); |
| 1967 | 1937 |
| 1968 if (!context) | 1938 if (!context) |
| 1969 return content::PERMISSION_STATUS_ASK; | 1939 return content::PERMISSION_STATUS_ASK; |
| 1970 | 1940 |
| 1971 return ContentSettingToPermissionStatus( | 1941 return ContentSettingToPermissionStatus( |
| 1972 context->GetPermissionStatus(requesting_origin.GetOrigin(), | 1942 context->GetPermissionStatus(requesting_origin.GetOrigin(), |
| 1973 embedding_origin.GetOrigin())); | 1943 embedding_origin.GetOrigin())); |
| 1974 } | 1944 } |
| 1975 | 1945 |
| 1946 int ChromeContentBrowserClient::SubscribePermissionStatusChange( |
| 1947 content::PermissionType permission, |
| 1948 content::BrowserContext* browser_context, |
| 1949 const GURL& requesting_origin, |
| 1950 const GURL& embedding_origin, |
| 1951 const base::Callback<void(content::PermissionStatus)>& callback) { |
| 1952 return PermissionObserverFactory::GetForProfile( |
| 1953 Profile::FromBrowserContext(browser_context)) |
| 1954 ->Subscribe(PermissionToContentSetting(permission), |
| 1955 requesting_origin, |
| 1956 embedding_origin, |
| 1957 base::Bind(&PermissionStatusCallbackWrapper, |
| 1958 callback)); |
| 1959 } |
| 1960 |
| 1961 void ChromeContentBrowserClient::UnsubscribePermissionStatusChange( |
| 1962 content::BrowserContext* browser_context, |
| 1963 int subscription_id) { |
| 1964 PermissionObserverFactory::GetForProfile( |
| 1965 Profile::FromBrowserContext(browser_context)) |
| 1966 ->Unsubscribe(subscription_id); |
| 1967 } |
| 1968 |
| 1976 void ChromeContentBrowserClient::ResetPermission( | 1969 void ChromeContentBrowserClient::ResetPermission( |
| 1977 content::PermissionType permission, | 1970 content::PermissionType permission, |
| 1978 content::BrowserContext* browser_context, | 1971 content::BrowserContext* browser_context, |
| 1979 const GURL& requesting_origin, | 1972 const GURL& requesting_origin, |
| 1980 const GURL& embedding_origin) { | 1973 const GURL& embedding_origin) { |
| 1981 DCHECK(browser_context); | 1974 DCHECK(browser_context); |
| 1982 Profile* profile = Profile::FromBrowserContext(browser_context); | 1975 Profile* profile = Profile::FromBrowserContext(browser_context); |
| 1983 PermissionContextBase* context = GetPermissionContext(profile, permission); | 1976 PermissionContextBase* context = |
| 1977 PermissionContext::Get(profile, PermissionToContentSetting(permission)); |
| 1984 | 1978 |
| 1985 if (!context) | 1979 if (!context) |
| 1986 return; | 1980 return; |
| 1987 | 1981 |
| 1988 context->ResetPermission(requesting_origin.GetOrigin(), | 1982 context->ResetPermission(requesting_origin.GetOrigin(), |
| 1989 embedding_origin.GetOrigin()); | 1983 embedding_origin.GetOrigin()); |
| 1990 } | 1984 } |
| 1991 | 1985 |
| 1992 void ChromeContentBrowserClient::CancelPermissionRequest( | 1986 void ChromeContentBrowserClient::CancelPermissionRequest( |
| 1993 content::PermissionType permission, | 1987 content::PermissionType permission, |
| 1994 content::WebContents* web_contents, | 1988 content::WebContents* web_contents, |
| 1995 int bridge_id, | 1989 int bridge_id, |
| 1996 const GURL& requesting_frame) { | 1990 const GURL& requesting_frame) { |
| 1997 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); | 1991 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); |
| 1998 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); | 1992 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); |
| 1999 const PermissionRequestID request_id(render_process_id, | 1993 const PermissionRequestID request_id(render_process_id, |
| 2000 render_view_id, | 1994 render_view_id, |
| 2001 bridge_id, | 1995 bridge_id, |
| 2002 requesting_frame); | 1996 requesting_frame); |
| 2003 Profile* profile = | 1997 Profile* profile = |
| 2004 Profile::FromBrowserContext(web_contents->GetBrowserContext()); | 1998 Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
| 2005 PermissionContextBase* context = GetPermissionContext(profile, permission); | 1999 PermissionContextBase* context = |
| 2000 PermissionContext::Get(profile, PermissionToContentSetting(permission)); |
| 2006 if (!context) | 2001 if (!context) |
| 2007 return; | 2002 return; |
| 2008 context->CancelPermissionRequest(web_contents, request_id); | 2003 context->CancelPermissionRequest(web_contents, request_id); |
| 2009 } | 2004 } |
| 2010 | 2005 |
| 2011 void ChromeContentBrowserClient::RegisterPermissionUsage( | 2006 void ChromeContentBrowserClient::RegisterPermissionUsage( |
| 2012 content::PermissionType permission, | 2007 content::PermissionType permission, |
| 2013 content::WebContents* web_contents, | 2008 content::WebContents* web_contents, |
| 2014 const GURL& frame_url, | 2009 const GURL& frame_url, |
| 2015 const GURL& main_frame_url) { | 2010 const GURL& main_frame_url) { |
| (...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2640 switches::kDisableWebRtcEncryption, | 2635 switches::kDisableWebRtcEncryption, |
| 2641 }; | 2636 }; |
| 2642 to_command_line->CopySwitchesFrom(from_command_line, | 2637 to_command_line->CopySwitchesFrom(from_command_line, |
| 2643 kWebRtcDevSwitchNames, | 2638 kWebRtcDevSwitchNames, |
| 2644 arraysize(kWebRtcDevSwitchNames)); | 2639 arraysize(kWebRtcDevSwitchNames)); |
| 2645 } | 2640 } |
| 2646 } | 2641 } |
| 2647 #endif // defined(ENABLE_WEBRTC) | 2642 #endif // defined(ENABLE_WEBRTC) |
| 2648 | 2643 |
| 2649 } // namespace chrome | 2644 } // namespace chrome |
| OLD | NEW |