Commit 2bad4ee3 authored by thestig's avatar thestig Committed by Commit bot

Cleanup: Put more media and profile extensions code behind ENABLE_EXTENSIONS ifdefs.

BUG=424746

Review URL: https://codereview.chromium.org/661053002

Cr-Commit-Position: refs/heads/master@{#300735}
parent 1fd71638
...@@ -42,8 +42,6 @@ ...@@ -42,8 +42,6 @@
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/common/media_stream_request.h" #include "content/public/common/media_stream_request.h"
#include "extensions/common/constants.h" #include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h"
#include "media/audio/audio_manager_base.h" #include "media/audio/audio_manager_base.h"
#include "media/base/media_switches.h" #include "media/base/media_switches.h"
#include "net/base/net_util.h" #include "net/base/net_util.h"
...@@ -54,13 +52,14 @@ ...@@ -54,13 +52,14 @@
#include "ash/shell.h" #include "ash/shell.h"
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
#if defined(ENABLE_EXTENSIONS) #if defined(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h"
#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_service.h"
#include "extensions/browser/app_window/app_window.h" #include "extensions/browser/app_window/app_window.h"
#include "extensions/browser/app_window/app_window_registry.h" #include "extensions/browser/app_window/app_window_registry.h"
#include "extensions/browser/extension_system.h" #include "extensions/browser/extension_system.h"
#include "extensions/common/extension.h"
#include "extensions/common/permissions/permissions_data.h"
#endif #endif
using content::BrowserThread; using content::BrowserThread;
...@@ -92,6 +91,7 @@ const content::MediaStreamDevice* FindDeviceWithId( ...@@ -92,6 +91,7 @@ const content::MediaStreamDevice* FindDeviceWithId(
return NULL; return NULL;
} }
#if defined(ENABLE_EXTENSIONS)
// This is a short-term solution to grant camera and/or microphone access to // This is a short-term solution to grant camera and/or microphone access to
// extensions: // extensions:
// 1. Virtual keyboard extension. // 1. Virtual keyboard extension.
...@@ -132,6 +132,7 @@ bool IsOriginForCasting(const GURL& origin) { ...@@ -132,6 +132,7 @@ bool IsOriginForCasting(const GURL& origin) {
// Google Cast Stable // Google Cast Stable
origin.spec() == "chrome-extension://boadgeojelhgndaghljhdicfkmllpafd/"; origin.spec() == "chrome-extension://boadgeojelhgndaghljhdicfkmllpafd/";
} }
#endif // defined(ENABLE_EXTENSIONS)
// Helper to get title of the calling application shown in the screen capture // Helper to get title of the calling application shown in the screen capture
// notification. // notification.
...@@ -140,13 +141,15 @@ base::string16 GetApplicationTitle(content::WebContents* web_contents, ...@@ -140,13 +141,15 @@ base::string16 GetApplicationTitle(content::WebContents* web_contents,
// Use extension name as title for extensions and host/origin for drive-by // Use extension name as title for extensions and host/origin for drive-by
// web. // web.
std::string title; std::string title;
#if defined(ENABLE_EXTENSIONS)
if (extension) { if (extension) {
title = extension->name(); title = extension->name();
} else { return base::UTF8ToUTF16(title);
GURL url = web_contents->GetURL();
title = url.SchemeIsSecure() ? net::GetHostAndOptionalPort(url)
: url.GetOrigin().spec();
} }
#endif
GURL url = web_contents->GetURL();
title = url.SchemeIsSecure() ? net::GetHostAndOptionalPort(url)
: url.GetOrigin().spec();
return base::UTF8ToUTF16(title); return base::UTF8ToUTF16(title);
} }
...@@ -154,7 +157,7 @@ base::string16 GetApplicationTitle(content::WebContents* web_contents, ...@@ -154,7 +157,7 @@ base::string16 GetApplicationTitle(content::WebContents* web_contents,
// Registers to display notification if |display_notification| is true. // Registers to display notification if |display_notification| is true.
// Returns an instance of MediaStreamUI to be passed to content layer. // Returns an instance of MediaStreamUI to be passed to content layer.
scoped_ptr<content::MediaStreamUI> GetDevicesForDesktopCapture( scoped_ptr<content::MediaStreamUI> GetDevicesForDesktopCapture(
content::MediaStreamDevices& devices, content::MediaStreamDevices* devices,
content::DesktopMediaID media_id, content::DesktopMediaID media_id,
bool capture_audio, bool capture_audio,
bool display_notification, bool display_notification,
...@@ -164,11 +167,11 @@ scoped_ptr<content::MediaStreamUI> GetDevicesForDesktopCapture( ...@@ -164,11 +167,11 @@ scoped_ptr<content::MediaStreamUI> GetDevicesForDesktopCapture(
scoped_ptr<content::MediaStreamUI> ui; scoped_ptr<content::MediaStreamUI> ui;
// Add selected desktop source to the list. // Add selected desktop source to the list.
devices.push_back(content::MediaStreamDevice( devices->push_back(content::MediaStreamDevice(
content::MEDIA_DESKTOP_VIDEO_CAPTURE, media_id.ToString(), "Screen")); content::MEDIA_DESKTOP_VIDEO_CAPTURE, media_id.ToString(), "Screen"));
if (capture_audio) { if (capture_audio) {
// Use the special loopback device ID for system audio capture. // Use the special loopback device ID for system audio capture.
devices.push_back(content::MediaStreamDevice( devices->push_back(content::MediaStreamDevice(
content::MEDIA_LOOPBACK_AUDIO_CAPTURE, content::MEDIA_LOOPBACK_AUDIO_CAPTURE,
media::AudioManagerBase::kLoopbackInputDeviceId, "System Audio")); media::AudioManagerBase::kLoopbackInputDeviceId, "System Audio"));
} }
...@@ -212,10 +215,10 @@ gfx::NativeWindow FindParentWindowForWebContents( ...@@ -212,10 +215,10 @@ gfx::NativeWindow FindParentWindowForWebContents(
} }
#endif #endif
#if defined(ENABLE_EXTENSIONS)
const extensions::Extension* GetExtensionForOrigin( const extensions::Extension* GetExtensionForOrigin(
Profile* profile, Profile* profile,
const GURL& security_origin) { const GURL& security_origin) {
#if defined(ENABLE_EXTENSIONS)
if (!security_origin.SchemeIs(extensions::kExtensionScheme)) if (!security_origin.SchemeIs(extensions::kExtensionScheme))
return NULL; return NULL;
...@@ -225,10 +228,8 @@ const extensions::Extension* GetExtensionForOrigin( ...@@ -225,10 +228,8 @@ const extensions::Extension* GetExtensionForOrigin(
extensions_service->extensions()->GetByID(security_origin.host()); extensions_service->extensions()->GetByID(security_origin.host());
DCHECK(extension); DCHECK(extension);
return extension; return extension;
#else
return NULL;
#endif
} }
#endif
} // namespace } // namespace
...@@ -336,12 +337,18 @@ void MediaCaptureDevicesDispatcher::ProcessMediaAccessRequest( ...@@ -336,12 +337,18 @@ void MediaCaptureDevicesDispatcher::ProcessMediaAccessRequest(
request.audio_type == content::MEDIA_TAB_AUDIO_CAPTURE) { request.audio_type == content::MEDIA_TAB_AUDIO_CAPTURE) {
ProcessTabCaptureAccessRequest( ProcessTabCaptureAccessRequest(
web_contents, request, callback, extension); web_contents, request, callback, extension);
} else if (extension && (extension->is_platform_app() ||
IsMediaRequestWhitelistedForExtension(extension))) {
// For extensions access is approved based on extension permissions.
ProcessMediaAccessRequestFromPlatformAppOrExtension(
web_contents, request, callback, extension);
} else { } else {
#if defined(ENABLE_EXTENSIONS)
bool is_whitelisted =
extension && (extension->is_platform_app() ||
IsMediaRequestWhitelistedForExtension(extension));
if (is_whitelisted) {
// For extensions access is approved based on extension permissions.
ProcessMediaAccessRequestFromPlatformAppOrExtension(
web_contents, request, callback, extension);
return;
}
#endif
ProcessRegularMediaAccessRequest(web_contents, request, callback); ProcessRegularMediaAccessRequest(web_contents, request, callback);
} }
} }
...@@ -355,6 +362,7 @@ bool MediaCaptureDevicesDispatcher::CheckMediaAccessPermission( ...@@ -355,6 +362,7 @@ bool MediaCaptureDevicesDispatcher::CheckMediaAccessPermission(
type == content::MEDIA_DEVICE_VIDEO_CAPTURE); type == content::MEDIA_DEVICE_VIDEO_CAPTURE);
Profile* profile = Profile::FromBrowserContext(browser_context); Profile* profile = Profile::FromBrowserContext(browser_context);
#if defined(ENABLE_EXTENSIONS)
const extensions::Extension* extension = const extensions::Extension* extension =
GetExtensionForOrigin(profile, security_origin); GetExtensionForOrigin(profile, security_origin);
...@@ -365,6 +373,7 @@ bool MediaCaptureDevicesDispatcher::CheckMediaAccessPermission( ...@@ -365,6 +373,7 @@ bool MediaCaptureDevicesDispatcher::CheckMediaAccessPermission(
? extensions::APIPermission::kAudioCapture ? extensions::APIPermission::kAudioCapture
: extensions::APIPermission::kVideoCapture); : extensions::APIPermission::kVideoCapture);
} }
#endif
if (CheckAllowAllMediaStreamContentForOrigin(profile, security_origin)) if (CheckAllowAllMediaStreamContentForOrigin(profile, security_origin))
return true; return true;
...@@ -521,7 +530,7 @@ void MediaCaptureDevicesDispatcher::ProcessDesktopCaptureAccessRequest( ...@@ -521,7 +530,7 @@ void MediaCaptureDevicesDispatcher::ProcessDesktopCaptureAccessRequest(
loopback_audio_supported); loopback_audio_supported);
ui = GetDevicesForDesktopCapture( ui = GetDevicesForDesktopCapture(
devices, media_id, capture_audio, true, &devices, media_id, capture_audio, true,
GetApplicationTitle(web_contents, extension), GetApplicationTitle(web_contents, extension),
base::UTF8ToUTF16(original_extension_name)); base::UTF8ToUTF16(original_extension_name));
...@@ -544,14 +553,20 @@ void MediaCaptureDevicesDispatcher::ProcessScreenCaptureAccessRequest( ...@@ -544,14 +553,20 @@ void MediaCaptureDevicesDispatcher::ProcessScreenCaptureAccessRequest(
loopback_audio_supported = true; loopback_audio_supported = true;
#endif #endif
const bool component_extension = bool component_extension = false;
#if defined(ENABLE_EXTENSIONS)
component_extension =
extension && extension->location() == extensions::Manifest::COMPONENT; extension && extension->location() == extensions::Manifest::COMPONENT;
#endif
const bool screen_capture_enabled = bool screen_capture_enabled =
CommandLine::ForCurrentProcess()->HasSwitch( base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnableUserMediaScreenCapturing) || switches::kEnableUserMediaScreenCapturing);
#if defined(ENABLE_EXTENSIONS)
screen_capture_enabled |=
IsOriginForCasting(request.security_origin) || IsOriginForCasting(request.security_origin) ||
IsBuiltInExtension(request.security_origin); IsBuiltInExtension(request.security_origin);
#endif
const bool origin_is_secure = const bool origin_is_secure =
request.security_origin.SchemeIsSecure() || request.security_origin.SchemeIsSecure() ||
...@@ -589,8 +604,12 @@ void MediaCaptureDevicesDispatcher::ProcessScreenCaptureAccessRequest( ...@@ -589,8 +604,12 @@ void MediaCaptureDevicesDispatcher::ProcessScreenCaptureAccessRequest(
// For component extensions, bypass message box. // For component extensions, bypass message box.
bool user_approved = false; bool user_approved = false;
if (!component_extension) { if (!component_extension) {
base::string16 application_name = base::UTF8ToUTF16( base::string16 application_name =
extension ? extension->name() : request.security_origin.spec()); base::UTF8ToUTF16(request.security_origin.spec());
#if defined(ENABLE_EXTENSIONS)
if (extension)
application_name = base::UTF8ToUTF16(extension->name());
#endif
base::string16 confirmation_text = l10n_util::GetStringFUTF16( base::string16 confirmation_text = l10n_util::GetStringFUTF16(
request.audio_type == content::MEDIA_NO_SERVICE ? request.audio_type == content::MEDIA_NO_SERVICE ?
IDS_MEDIA_SCREEN_CAPTURE_CONFIRMATION_TEXT : IDS_MEDIA_SCREEN_CAPTURE_CONFIRMATION_TEXT :
...@@ -624,7 +643,7 @@ void MediaCaptureDevicesDispatcher::ProcessScreenCaptureAccessRequest( ...@@ -624,7 +643,7 @@ void MediaCaptureDevicesDispatcher::ProcessScreenCaptureAccessRequest(
// display the notification for stream capture. // display the notification for stream capture.
bool display_notification = !component_extension; bool display_notification = !component_extension;
ui = GetDevicesForDesktopCapture(devices, screen_id, capture_audio, ui = GetDevicesForDesktopCapture(&devices, screen_id, capture_audio,
display_notification, application_title, display_notification, application_title,
application_title); application_title);
DCHECK(!devices.empty()); DCHECK(!devices.empty());
...@@ -690,6 +709,7 @@ void MediaCaptureDevicesDispatcher::ProcessTabCaptureAccessRequest( ...@@ -690,6 +709,7 @@ void MediaCaptureDevicesDispatcher::ProcessTabCaptureAccessRequest(
#endif // defined(ENABLE_EXTENSIONS) #endif // defined(ENABLE_EXTENSIONS)
} }
#if defined(ENABLE_EXTENSIONS)
void MediaCaptureDevicesDispatcher:: void MediaCaptureDevicesDispatcher::
ProcessMediaAccessRequestFromPlatformAppOrExtension( ProcessMediaAccessRequestFromPlatformAppOrExtension(
content::WebContents* web_contents, content::WebContents* web_contents,
...@@ -773,6 +793,7 @@ void MediaCaptureDevicesDispatcher:: ...@@ -773,6 +793,7 @@ void MediaCaptureDevicesDispatcher::
callback.Run(devices, result, ui.Pass()); callback.Run(devices, result, ui.Pass());
} }
#endif
void MediaCaptureDevicesDispatcher::ProcessRegularMediaAccessRequest( void MediaCaptureDevicesDispatcher::ProcessRegularMediaAccessRequest(
content::WebContents* web_contents, content::WebContents* web_contents,
......
...@@ -193,11 +193,13 @@ class MediaCaptureDevicesDispatcher : public content::MediaObserver, ...@@ -193,11 +193,13 @@ class MediaCaptureDevicesDispatcher : public content::MediaObserver,
const content::MediaStreamRequest& request, const content::MediaStreamRequest& request,
const content::MediaResponseCallback& callback, const content::MediaResponseCallback& callback,
const extensions::Extension* extension); const extensions::Extension* extension);
#if defined(ENABLE_EXTENSIONS)
void ProcessMediaAccessRequestFromPlatformAppOrExtension( void ProcessMediaAccessRequestFromPlatformAppOrExtension(
content::WebContents* web_contents, content::WebContents* web_contents,
const content::MediaStreamRequest& request, const content::MediaStreamRequest& request,
const content::MediaResponseCallback& callback, const content::MediaResponseCallback& callback,
const extensions::Extension* extension); const extensions::Extension* extension);
#endif
void ProcessRegularMediaAccessRequest( void ProcessRegularMediaAccessRequest(
content::WebContents* web_contents, content::WebContents* web_contents,
const content::MediaStreamRequest& request, const content::MediaStreamRequest& request,
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include "chrome/browser/download/chrome_download_manager_delegate.h" #include "chrome/browser/download/chrome_download_manager_delegate.h"
#include "chrome/browser/download/download_service.h" #include "chrome/browser/download/download_service.h"
#include "chrome/browser/download/download_service_factory.h" #include "chrome/browser/download/download_service_factory.h"
#include "chrome/browser/extensions/extension_special_storage_policy.h"
#include "chrome/browser/io_thread.h" #include "chrome/browser/io_thread.h"
#include "chrome/browser/net/chrome_url_request_context_getter.h" #include "chrome/browser/net/chrome_url_request_context_getter.h"
#include "chrome/browser/net/pref_proxy_config_tracker.h" #include "chrome/browser/net/pref_proxy_config_tracker.h"
...@@ -72,6 +71,7 @@ ...@@ -72,6 +71,7 @@
#if defined(ENABLE_EXTENSIONS) #if defined(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_special_storage_policy.h"
#include "extensions/browser/api/web_request/web_request_api.h" #include "extensions/browser/api/web_request/web_request_api.h"
#include "extensions/browser/extension_system.h" #include "extensions/browser/extension_system.h"
#include "extensions/browser/guest_view/guest_view_manager.h" #include "extensions/browser/guest_view/guest_view_manager.h"
...@@ -383,7 +383,11 @@ content::BrowserPluginGuestManager* OffTheRecordProfileImpl::GetGuestManager() { ...@@ -383,7 +383,11 @@ content::BrowserPluginGuestManager* OffTheRecordProfileImpl::GetGuestManager() {
storage::SpecialStoragePolicy* storage::SpecialStoragePolicy*
OffTheRecordProfileImpl::GetSpecialStoragePolicy() { OffTheRecordProfileImpl::GetSpecialStoragePolicy() {
#if defined(ENABLE_EXTENSIONS)
return GetExtensionSpecialStoragePolicy(); return GetExtensionSpecialStoragePolicy();
#else
return NULL;
#endif
} }
content::PushMessagingService* content::PushMessagingService*
......
...@@ -24,9 +24,6 @@ ...@@ -24,9 +24,6 @@
#include "chrome/browser/sync/glue/bookmark_data_type_controller.h" #include "chrome/browser/sync/glue/bookmark_data_type_controller.h"
#include "chrome/browser/sync/glue/bookmark_model_associator.h" #include "chrome/browser/sync/glue/bookmark_model_associator.h"
#include "chrome/browser/sync/glue/chrome_report_unrecoverable_error.h" #include "chrome/browser/sync/glue/chrome_report_unrecoverable_error.h"
#include "chrome/browser/sync/glue/extension_backed_data_type_controller.h"
#include "chrome/browser/sync/glue/extension_data_type_controller.h"
#include "chrome/browser/sync/glue/extension_setting_data_type_controller.h"
#include "chrome/browser/sync/glue/history_delete_directives_data_type_controller.h" #include "chrome/browser/sync/glue/history_delete_directives_data_type_controller.h"
#include "chrome/browser/sync/glue/local_device_info_provider_impl.h" #include "chrome/browser/sync/glue/local_device_info_provider_impl.h"
#include "chrome/browser/sync/glue/password_data_type_controller.h" #include "chrome/browser/sync/glue/password_data_type_controller.h"
...@@ -81,6 +78,9 @@ ...@@ -81,6 +78,9 @@
#include "chrome/browser/extensions/api/storage/settings_sync_util.h" #include "chrome/browser/extensions/api/storage/settings_sync_util.h"
#include "chrome/browser/extensions/api/synced_notifications_private/synced_notifications_shim.h" #include "chrome/browser/extensions/api/synced_notifications_private/synced_notifications_shim.h"
#include "chrome/browser/extensions/extension_sync_service.h" #include "chrome/browser/extensions/extension_sync_service.h"
#include "chrome/browser/sync/glue/extension_backed_data_type_controller.h"
#include "chrome/browser/sync/glue/extension_data_type_controller.h"
#include "chrome/browser/sync/glue/extension_setting_data_type_controller.h"
#endif #endif
#if defined(ENABLE_MANAGED_USERS) #if defined(ENABLE_MANAGED_USERS)
...@@ -104,9 +104,11 @@ using browser_sync::BookmarkChangeProcessor; ...@@ -104,9 +104,11 @@ using browser_sync::BookmarkChangeProcessor;
using browser_sync::BookmarkDataTypeController; using browser_sync::BookmarkDataTypeController;
using browser_sync::BookmarkModelAssociator; using browser_sync::BookmarkModelAssociator;
using browser_sync::ChromeReportUnrecoverableError; using browser_sync::ChromeReportUnrecoverableError;
#if defined(ENABLE_EXTENSIONS)
using browser_sync::ExtensionBackedDataTypeController; using browser_sync::ExtensionBackedDataTypeController;
using browser_sync::ExtensionDataTypeController; using browser_sync::ExtensionDataTypeController;
using browser_sync::ExtensionSettingDataTypeController; using browser_sync::ExtensionSettingDataTypeController;
#endif
using browser_sync::HistoryDeleteDirectivesDataTypeController; using browser_sync::HistoryDeleteDirectivesDataTypeController;
using browser_sync::PasswordDataTypeController; using browser_sync::PasswordDataTypeController;
using browser_sync::SearchEngineDataTypeController; using browser_sync::SearchEngineDataTypeController;
...@@ -303,6 +305,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( ...@@ -303,6 +305,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes(
syncer::ModelTypeSet disabled_types, syncer::ModelTypeSet disabled_types,
syncer::ModelTypeSet enabled_types, syncer::ModelTypeSet enabled_types,
ProfileSyncService* pss) { ProfileSyncService* pss) {
#if defined(ENABLE_EXTENSIONS)
// App sync is enabled by default. Register unless explicitly // App sync is enabled by default. Register unless explicitly
// disabled. // disabled.
if (!disabled_types.Has(syncer::APPS)) { if (!disabled_types.Has(syncer::APPS)) {
...@@ -316,6 +319,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( ...@@ -316,6 +319,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes(
pss->RegisterDataTypeController( pss->RegisterDataTypeController(
new ExtensionDataTypeController(syncer::EXTENSIONS, this, profile_)); new ExtensionDataTypeController(syncer::EXTENSIONS, this, profile_));
} }
#endif
// Preference sync is enabled by default. Register unless explicitly // Preference sync is enabled by default. Register unless explicitly
// disabled. // disabled.
...@@ -352,6 +356,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( ...@@ -352,6 +356,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes(
new SearchEngineDataTypeController(this, profile_)); new SearchEngineDataTypeController(this, profile_));
} }
#if defined(ENABLE_EXTENSIONS)
// Extension setting sync is enabled by default. Register unless explicitly // Extension setting sync is enabled by default. Register unless explicitly
// disabled. // disabled.
if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) { if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) {
...@@ -365,6 +370,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( ...@@ -365,6 +370,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes(
pss->RegisterDataTypeController(new ExtensionSettingDataTypeController( pss->RegisterDataTypeController(new ExtensionSettingDataTypeController(
syncer::APP_SETTINGS, this, profile_)); syncer::APP_SETTINGS, this, profile_));
} }
#endif
#if defined(ENABLE_APP_LIST) #if defined(ENABLE_APP_LIST)
if (app_list::switches::IsAppListSyncEnabled()) { if (app_list::switches::IsAppListSyncEnabled()) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment