| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/media/media_stream_devices_controller.h" | 5 #include "chrome/browser/media/media_stream_devices_controller.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/callback_helpers.h" | 8 #include "base/callback_helpers.h" |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/prefs/scoped_user_pref_update.h" | 10 #include "base/prefs/scoped_user_pref_update.h" |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 profile_, audio_allowed, video_allowed, &devices); | 324 profile_, audio_allowed, video_allowed, &devices); |
| 325 break; | 325 break; |
| 326 } | 326 } |
| 327 case content::MEDIA_ENUMERATE_DEVICES: { | 327 case content::MEDIA_ENUMERATE_DEVICES: { |
| 328 // Do nothing. | 328 // Do nothing. |
| 329 NOTREACHED(); | 329 NOTREACHED(); |
| 330 break; | 330 break; |
| 331 } | 331 } |
| 332 } // switch | 332 } // switch |
| 333 | 333 |
| 334 if (audio_allowed) { | |
| 335 HostContentSettingsMapFactory::GetForProfile(profile_) | |
| 336 ->UpdateLastUsageByPattern( | |
| 337 ContentSettingsPattern::FromURLNoWildcard(request_.security_origin), | |
| 338 ContentSettingsPattern::Wildcard(), | |
| 339 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); | |
| 340 } | |
| 341 if (video_allowed) { | |
| 342 HostContentSettingsMapFactory::GetForProfile(profile_) | |
| 343 ->UpdateLastUsageByPattern( | |
| 344 ContentSettingsPattern::FromURLNoWildcard(request_.security_origin), | |
| 345 ContentSettingsPattern::Wildcard(), | |
| 346 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); | |
| 347 } | |
| 348 | |
| 349 return devices; | 334 return devices; |
| 350 } | 335 } |
| 351 | 336 |
| 352 void MediaStreamDevicesController::RunCallback( | 337 void MediaStreamDevicesController::RunCallback( |
| 353 ContentSetting audio_setting, | 338 ContentSetting audio_setting, |
| 354 ContentSetting video_setting, | 339 ContentSetting video_setting, |
| 355 content::MediaStreamRequestResult denial_reason) { | 340 content::MediaStreamRequestResult denial_reason) { |
| 356 CHECK(!callback_.is_null()); | 341 CHECK(!callback_.is_null()); |
| 357 | 342 |
| 358 if (persist_permission_changes_) { | 343 if (persist_permission_changes_) { |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 534 if (android_permission_blocked) | 519 if (android_permission_blocked) |
| 535 return false; | 520 return false; |
| 536 | 521 |
| 537 // Don't approve device requests if the tab was hidden. | 522 // Don't approve device requests if the tab was hidden. |
| 538 // TODO(qinmin): Add a test for this. http://crbug.com/396869. | 523 // TODO(qinmin): Add a test for this. http://crbug.com/396869. |
| 539 // TODO(raymes): Shouldn't this apply to all permissions not just audio/video? | 524 // TODO(raymes): Shouldn't this apply to all permissions not just audio/video? |
| 540 return web_contents_->GetRenderWidgetHostView()->IsShowing(); | 525 return web_contents_->GetRenderWidgetHostView()->IsShowing(); |
| 541 #endif | 526 #endif |
| 542 return true; | 527 return true; |
| 543 } | 528 } |
| OLD | NEW |