| 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
|
|
|