Index: chrome/browser/media/media_stream_devices_controller_browsertest.cc |
diff --git a/chrome/browser/media/media_stream_devices_controller_browsertest.cc b/chrome/browser/media/media_stream_devices_controller_browsertest.cc |
index 3aa3fa65c9991416788048715dd302be31efdfd2..b4c217125954abeae7eba88eaf6acd5491bae7a0 100644 |
--- a/chrome/browser/media/media_stream_devices_controller_browsertest.cc |
+++ b/chrome/browser/media/media_stream_devices_controller_browsertest.cc |
@@ -124,24 +124,25 @@ class MediaStreamDevicesControllerTest : public WebRtcTestBase { |
// Creates a MediaStreamRequest, asking for those media types, which have a |
// non-empty id string. |
- content::MediaStreamRequest CreateRequest(const std::string& audio_id, |
- const std::string& video_id) { |
+ content::MediaStreamRequest CreateRequestWithType( |
+ const std::string& audio_id, |
+ const std::string& video_id, |
+ content::MediaStreamRequestType request_type) { |
content::MediaStreamType audio_type = |
audio_id.empty() ? content::MEDIA_NO_SERVICE |
: content::MEDIA_DEVICE_AUDIO_CAPTURE; |
content::MediaStreamType video_type = |
video_id.empty() ? content::MEDIA_NO_SERVICE |
: content::MEDIA_DEVICE_VIDEO_CAPTURE; |
- return content::MediaStreamRequest(0, |
- 0, |
- 0, |
- example_url(), |
- false, |
- content::MEDIA_DEVICE_ACCESS, |
- audio_id, |
- video_id, |
- audio_type, |
- video_type); |
+ return content::MediaStreamRequest(0, 0, 0, example_url(), false, |
+ request_type, audio_id, video_id, |
+ audio_type, video_type); |
+ } |
+ |
+ content::MediaStreamRequest CreateRequest(const std::string& audio_id, |
+ const std::string& video_id) { |
+ return CreateRequestWithType(audio_id, video_id, |
+ content::MEDIA_DEVICE_ACCESS); |
} |
void InitWithUrl(const GURL& url) { |
@@ -680,3 +681,34 @@ IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, |
ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result()); |
ASSERT_TRUE(DevicesContains(true, true)); |
} |
+ |
+// For Pepper request from insecure origin, even if it's ALLOW, it won't be |
+// changed to ASK. |
+IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, |
+ PepperRequestInsecure) { |
+ InitWithUrl(GURL("http://www.example.com")); |
+ SetContentSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ALLOW); |
+ |
+ MediaStreamDevicesController controller( |
+ GetWebContents(), CreateRequestWithType(example_audio_id(), std::string(), |
+ content::MEDIA_OPEN_DEVICE), |
+ base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, |
+ this)); |
+ ASSERT_FALSE(controller.IsAskingForAudio()); |
+ ASSERT_FALSE(controller.IsAskingForVideo()); |
+} |
+ |
+// For non-Pepper request from insecure origin, if it's ALLOW, it will be |
+// changed to ASK. |
+IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, |
+ NonPepperRequestInsecure) { |
+ InitWithUrl(GURL("http://www.example.com")); |
+ SetContentSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ALLOW); |
+ |
+ MediaStreamDevicesController controller( |
+ GetWebContents(), CreateRequest(example_audio_id(), example_video_id()), |
+ base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, |
+ this)); |
+ ASSERT_TRUE(controller.IsAskingForAudio()); |
+ ASSERT_TRUE(controller.IsAskingForVideo()); |
+} |