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

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

Issue 139053003: Chrome OS: avoid suspending on lid close when casting is active. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Oshima's suggestion. Created 6 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/media_capture_devices_dispatcher.cc
diff --git a/chrome/browser/media/media_capture_devices_dispatcher.cc b/chrome/browser/media/media_capture_devices_dispatcher.cc
index 29c7afbec8d820c24b7dbcf33b752af116bfd7db..75bd24cde66679aa07c78477b38552afcec66291 100644
--- a/chrome/browser/media/media_capture_devices_dispatcher.cc
+++ b/chrome/browser/media/media_capture_devices_dispatcher.cc
@@ -39,6 +39,7 @@
#if defined(OS_CHROMEOS)
#include "ash/shell.h"
+#include "chromeos/display/output_configurator.h"
#endif // defined(OS_CHROMEOS)
using content::BrowserThread;
@@ -170,7 +171,8 @@ MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher()
: devices_enumerated_(false),
is_device_enumeration_disabled_(false),
media_stream_capture_indicator_(new MediaStreamCaptureIndicator()),
- audio_stream_indicator_(new AudioStreamIndicator()) {
+ audio_stream_indicator_(new AudioStreamIndicator()),
+ screen_sharing_count_(0) {
// MediaCaptureDevicesDispatcher is a singleton. It should be created on
// UI thread. Otherwise, it will not receive
// content::NOTIFICATION_WEB_CONTENTS_DESTROYED, and that will result in
@@ -734,6 +736,23 @@ void MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread(
}
}
+ // Updates count of screen sharing sessions.
+ if (device.type == content::MEDIA_TAB_VIDEO_CAPTURE ||
+ device.type == content::MEDIA_DESKTOP_VIDEO_CAPTURE) {
+ if (state == content::MEDIA_REQUEST_STATE_DONE) {
+ ++screen_sharing_count_;
+ } else if (state == content::MEDIA_REQUEST_STATE_CLOSING) {
+ DCHECK_GT(screen_sharing_count_, 0);
+ --screen_sharing_count_;
+ }
+#if defined(OS_CHROMEOS)
+ chromeos::OutputConfigurator* configurator =
Sergey Ulanov 2014/01/15 02:51:20 Can OutputConfigurator register to observe media s
hshi1 2014/01/15 19:43:24 Done.
+ ash::Shell::GetInstance()->output_configurator();
+ if (configurator)
Daniel Erat 2014/01/15 15:08:55 nit (maybe made obsolete by sergey's comment above
hshi1 2014/01/15 19:43:24 (this no longer applies)
+ configurator->SetScreenSharingCount(screen_sharing_count_);
+#endif
+ }
+
// Cancel the request.
if (state == content::MEDIA_REQUEST_STATE_CLOSING) {
bool found = false;

Powered by Google App Engine
This is Rietveld 408576698