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

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

Issue 16342002: Replace MediaStreamUIController with MediaStreamUIProxy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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_stream_devices_controller.cc
diff --git a/chrome/browser/media/media_stream_devices_controller.cc b/chrome/browser/media/media_stream_devices_controller.cc
index 9ea42f7c146ed110e827bb8efd1ecf431b862d30..5bafcf806f51ab1e19553606133c70dab43286ef 100644
--- a/chrome/browser/media/media_stream_devices_controller.cc
+++ b/chrome/browser/media/media_stream_devices_controller.cc
@@ -83,7 +83,12 @@ MediaStreamDevicesController::MediaStreamDevicesController(
}
}
-MediaStreamDevicesController::~MediaStreamDevicesController() {}
+MediaStreamDevicesController::~MediaStreamDevicesController() {
+ if (!callback_.is_null()) {
+ callback_.Run(content::MediaStreamDevices(),
+ scoped_ptr<content::MediaStreamUI>());
+ }
+}
// static
void MediaStreamDevicesController::RegisterUserPrefs(
@@ -195,7 +200,9 @@ void MediaStreamDevicesController::Accept(bool update_content_setting) {
GetMediaStreamCaptureIndicator()->RegisterMediaStream(
web_contents_, devices);
}
- callback_.Run(devices, ui.Pass());
+ content::MediaResponseCallback cb = callback_;
+ callback_.Reset();
+ cb.Run(devices, ui.Pass());
}
void MediaStreamDevicesController::Deny(bool update_content_setting) {
@@ -210,8 +217,9 @@ void MediaStreamDevicesController::Deny(bool update_content_setting) {
if (update_content_setting)
SetPermission(false);
- callback_.Run(content::MediaStreamDevices(),
- scoped_ptr<content::MediaStreamUI>());
+ content::MediaResponseCallback cb = callback_;
+ callback_.Reset();
+ cb.Run(content::MediaStreamDevices(), scoped_ptr<content::MediaStreamUI>());
}
MediaStreamDevicesController::DevicePolicy

Powered by Google App Engine
This is Rietveld 408576698