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

Unified Diff: chrome/browser/media/desktop_capture_access_handler.cc

Issue 1576073003: Support Audio for Desktop Capture (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/desktop_capture_access_handler.cc
diff --git a/chrome/browser/media/desktop_capture_access_handler.cc b/chrome/browser/media/desktop_capture_access_handler.cc
index 66f37c09d6c5595f9fe0f41566df0fb867f57727..285a4435e26bf591e3411bbcee65e422dc9a57cf 100644
--- a/chrome/browser/media/desktop_capture_access_handler.cc
+++ b/chrome/browser/media/desktop_capture_access_handler.cc
@@ -11,6 +11,7 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
+#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/media/desktop_streams_registry.h"
#include "chrome/browser/media/media_capture_devices_dispatcher.h"
#include "chrome/browser/ui/browser.h"
@@ -20,6 +21,8 @@
#include "chrome/browser/ui/simple_message_box.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/grit/generated_resources.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h"
+#include "components/content_settings/core/common/content_settings.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/desktop_media_id.h"
#include "content/public/browser/render_frame_host.h"
@@ -343,11 +346,34 @@ void DesktopCaptureAccessHandler::HandleRequest(
loopback_audio_supported = true;
#endif
+ bool loopback_audio_permitted = true;
GeorgeZ 2016/01/15 16:37:55 Maybe use this flag for all audio share (such as t
qiangchen 2016/01/15 18:19:40 Done.
+
+ const bool audio_support_flag_for_desktop_share =
+ base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableAudioSupportForDesktopShare);
+
+ if (audio_support_flag_for_desktop_share) {
+ Profile* profile =
+ Profile::FromBrowserContext(web_contents->GetBrowserContext());
+
+ GURL origin(web_contents->GetLastCommittedURL().GetOrigin());
+
+ ContentSetting result =
+ HostContentSettingsMapFactory::GetForProfile(profile)
+ ->GetContentSetting(
+ origin, origin,
+ ContentSettingsType::CONTENT_SETTINGS_TYPE_DESKTOP_AUDIO_SHARE,
+ std::string());
+
+ loopback_audio_permitted =
+ (result == ContentSetting::CONTENT_SETTING_ALLOW);
+ }
+
// Audio is only supported for screen capture streams.
bool capture_audio =
(media_id.type == content::DesktopMediaID::TYPE_SCREEN &&
request.audio_type == content::MEDIA_DESKTOP_AUDIO_CAPTURE &&
- loopback_audio_supported);
+ loopback_audio_supported && loopback_audio_permitted);
ui = GetDevicesForDesktopCapture(&devices, media_id, capture_audio, true,
GetApplicationTitle(web_contents, extension),

Powered by Google App Engine
This is Rietveld 408576698