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

Side by Side Diff: chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc

Issue 2835863003: MediaStreamDevicesControllerBrowserTest (Closed)
Patch Set: MediaStreamDevicesControllerBrowserTest Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/permissions/permission_request_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <string> 5 #include <string>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h"
8 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/run_loop.h"
11 #include "base/test/scoped_feature_list.h"
9 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 12 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
10 #include "chrome/browser/content_settings/tab_specific_content_settings.h" 13 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
11 #include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h" 14 #include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h"
12 #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h" 15 #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
13 #include "chrome/browser/media/webrtc/media_stream_device_permissions.h" 16 #include "chrome/browser/media/webrtc/media_stream_device_permissions.h"
14 #include "chrome/browser/media/webrtc/media_stream_devices_controller.h" 17 #include "chrome/browser/media/webrtc/media_stream_devices_controller.h"
15 #include "chrome/browser/media/webrtc/webrtc_browsertest_base.h" 18 #include "chrome/browser/media/webrtc/webrtc_browsertest_base.h"
16 #include "chrome/browser/permissions/permission_context_base.h" 19 #include "chrome/browser/permissions/permission_context_base.h"
20 #include "chrome/browser/permissions/permission_request.h"
17 #include "chrome/browser/permissions/permission_request_manager.h" 21 #include "chrome/browser/permissions/permission_request_manager.h"
18 #include "chrome/browser/permissions/permission_util.h" 22 #include "chrome/browser/permissions/permission_util.h"
19 #include "chrome/browser/profiles/profile.h" 23 #include "chrome/browser/profiles/profile.h"
20 #include "chrome/browser/ui/browser.h" 24 #include "chrome/browser/ui/browser.h"
25 #include "chrome/browser/ui/permission_bubble/mock_permission_prompt_factory.h"
21 #include "chrome/browser/ui/tabs/tab_strip_model.h" 26 #include "chrome/browser/ui/tabs/tab_strip_model.h"
27 #include "chrome/common/chrome_features.h"
22 #include "chrome/common/pref_names.h" 28 #include "chrome/common/pref_names.h"
23 #include "chrome/test/base/ui_test_utils.h" 29 #include "chrome/test/base/ui_test_utils.h"
24 #include "components/content_settings/core/browser/host_content_settings_map.h" 30 #include "components/content_settings/core/browser/host_content_settings_map.h"
25 #include "components/prefs/pref_service.h" 31 #include "components/prefs/pref_service.h"
26 #include "components/variations/variations_associated_data.h" 32 #include "components/variations/variations_associated_data.h"
27 #include "content/public/browser/render_frame_host.h" 33 #include "content/public/browser/render_frame_host.h"
28 #include "content/public/common/media_stream_request.h" 34 #include "content/public/common/media_stream_request.h"
29 #include "content/public/test/mock_render_process_host.h" 35 #include "content/public/test/mock_render_process_host.h"
30 #include "testing/gtest/include/gtest/gtest.h" 36 #include "testing/gtest/include/gtest/gtest.h"
31 37
32 class MediaStreamDevicesControllerTest : public WebRtcTestBase { 38 enum class TestType {
39 TEST_TYPE_START,
40 DEFAULT = TEST_TYPE_START,
41 TEST_WITH_GROUPED_MEDIA_REQUESTS,
42 TEST_TYPE_END,
43 };
44
45 class MediaStreamDevicesControllerTest
46 : public WebRtcTestBase,
47 public ::testing::WithParamInterface<int> {
33 public: 48 public:
34 // TODO(raymes): When crbug.com/606138 is finished and the 49 // TODO(raymes): When crbug.com/606138 is finished and the
35 // PermissionRequestManager is used to show all prompts on Android/Desktop 50 // PermissionRequestManager is used to show all prompts on Android/Desktop
36 // we should remove PermissionPromptDelegate and just use 51 // we should remove PermissionPromptDelegate and just use
37 // MockPermissionPromptFactory instead. The APIs are the same. 52 // MockPermissionPromptFactory instead. The APIs are the same.
38 class TestPermissionPromptDelegate 53 class TestPermissionPromptDelegate
39 : public MediaStreamDevicesController::PermissionPromptDelegate { 54 : public MediaStreamDevicesController::PermissionPromptDelegate {
40 public: 55 public:
41 void ShowPrompt(bool user_gesture, 56 void ShowPrompt(bool user_gesture,
42 content::WebContents* web_contents, 57 content::WebContents* web_contents,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 : example_audio_id_("fake_audio_dev"), 92 : example_audio_id_("fake_audio_dev"),
78 example_video_id_("fake_video_dev"), 93 example_video_id_("fake_video_dev"),
79 media_stream_result_(content::NUM_MEDIA_REQUEST_RESULTS) {} 94 media_stream_result_(content::NUM_MEDIA_REQUEST_RESULTS) {}
80 95
81 // Dummy callback for when we deny the current request directly. 96 // Dummy callback for when we deny the current request directly.
82 void OnMediaStreamResponse(const content::MediaStreamDevices& devices, 97 void OnMediaStreamResponse(const content::MediaStreamDevices& devices,
83 content::MediaStreamRequestResult result, 98 content::MediaStreamRequestResult result,
84 std::unique_ptr<content::MediaStreamUI> ui) { 99 std::unique_ptr<content::MediaStreamUI> ui) {
85 media_stream_devices_ = devices; 100 media_stream_devices_ = devices;
86 media_stream_result_ = result; 101 media_stream_result_ = result;
102 quit_closure_.Run();
103 quit_closure_ = base::Closure();
87 } 104 }
88 105
89 protected: 106 protected:
90 enum DeviceType { DEVICE_TYPE_AUDIO, DEVICE_TYPE_VIDEO }; 107 enum DeviceType { DEVICE_TYPE_AUDIO, DEVICE_TYPE_VIDEO };
91 enum Access { ACCESS_ALLOWED, ACCESS_DENIED }; 108 enum Access { ACCESS_ALLOWED, ACCESS_DENIED };
92 109
93 const GURL& example_url() const { return example_url_; } 110 const GURL& example_url() const { return example_url_; }
94 111
95 TabSpecificContentSettings* GetContentSettings() { 112 TabSpecificContentSettings* GetContentSettings() {
96 return TabSpecificContentSettings::FromWebContents(GetWebContents()); 113 return TabSpecificContentSettings::FromWebContents(GetWebContents());
97 } 114 }
98 115
99 const std::string& example_audio_id() const { return example_audio_id_; } 116 const std::string& example_audio_id() const { return example_audio_id_; }
100 const std::string& example_video_id() const { return example_video_id_; } 117 const std::string& example_video_id() const { return example_video_id_; }
101 118
102 content::MediaStreamRequestResult media_stream_result() const { 119 content::MediaStreamRequestResult media_stream_result() const {
103 return media_stream_result_; 120 return media_stream_result_;
104 } 121 }
105 122
106 void RequestPermissions(content::WebContents* web_contents, 123 void RequestPermissions(content::WebContents* web_contents,
107 const content::MediaStreamRequest& request, 124 const content::MediaStreamRequest& request,
108 const content::MediaResponseCallback& callback) { 125 const content::MediaResponseCallback& callback) {
126 base::RunLoop run_loop;
127 ASSERT_TRUE(quit_closure_.is_null());
128 quit_closure_ = run_loop.QuitClosure();
109 MediaStreamDevicesController::RequestPermissionsWithDelegate( 129 MediaStreamDevicesController::RequestPermissionsWithDelegate(
110 request, callback, &prompt_delegate_); 130 request, callback, &prompt_delegate_);
131 run_loop.Run();
111 } 132 }
112 133
113 TestPermissionPromptDelegate* prompt_delegate() { return &prompt_delegate_; }
114
115 // Sets the device policy-controlled |access| for |example_url_| to be for the 134 // Sets the device policy-controlled |access| for |example_url_| to be for the
116 // selected |device_type|. 135 // selected |device_type|.
117 void SetDevicePolicy(DeviceType device_type, Access access) { 136 void SetDevicePolicy(DeviceType device_type, Access access) {
118 PrefService* prefs = Profile::FromBrowserContext( 137 PrefService* prefs = Profile::FromBrowserContext(
119 GetWebContents()->GetBrowserContext())->GetPrefs(); 138 GetWebContents()->GetBrowserContext())->GetPrefs();
120 const char* policy_name = NULL; 139 const char* policy_name = NULL;
121 switch (device_type) { 140 switch (device_type) {
122 case DEVICE_TYPE_AUDIO: 141 case DEVICE_TYPE_AUDIO:
123 policy_name = prefs::kAudioCaptureAllowed; 142 policy_name = prefs::kAudioCaptureAllowed;
124 break; 143 break;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 } 205 }
187 206
188 void InitWithUrl(const GURL& url) { 207 void InitWithUrl(const GURL& url) {
189 DCHECK(example_url_.is_empty()); 208 DCHECK(example_url_.is_empty());
190 example_url_ = url; 209 example_url_ = url;
191 ui_test_utils::NavigateToURL(browser(), example_url_); 210 ui_test_utils::NavigateToURL(browser(), example_url_);
192 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_CAMERA_NOT_ACCESSED, 211 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_CAMERA_NOT_ACCESSED,
193 GetContentSettings()->GetMicrophoneCameraState()); 212 GetContentSettings()->GetMicrophoneCameraState());
194 } 213 }
195 214
215 void SetPromptResponseType(
216 PermissionRequestManager::AutoResponseType response_type) {
217 if (base::FeatureList::IsEnabled(
218 features::kUsePermissionManagerForMediaRequests)) {
219 prompt_factory_->set_response_type(response_type);
220 } else {
221 prompt_delegate_.set_response_type(response_type);
222 }
223 }
224
225 size_t TotalPromptRequestCount() {
226 if (base::FeatureList::IsEnabled(
227 features::kUsePermissionManagerForMediaRequests)) {
228 return prompt_factory_->TotalRequestCount();
229 } else {
230 return prompt_delegate_.TotalRequestCount();
231 }
232 }
233
234 bool WasPermissionShown(ContentSettingsType type) {
235 if (base::FeatureList::IsEnabled(
236 features::kUsePermissionManagerForMediaRequests)) {
237 if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) {
238 return prompt_factory_->RequestTypeSeen(
239 PermissionRequestType::PERMISSION_MEDIASTREAM_MIC);
240 } else if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) {
241 return prompt_factory_->RequestTypeSeen(
242 PermissionRequestType::PERMISSION_MEDIASTREAM_CAMERA);
243 } else {
244 NOTREACHED();
245 return false;
246 }
247 } else {
248 return prompt_delegate_.WasRequested(type);
249 }
250 }
251
252 void ResetPromptCounters() {
253 if (base::FeatureList::IsEnabled(
254 features::kUsePermissionManagerForMediaRequests)) {
255 prompt_factory_->ResetCounts();
256 } else {
257 prompt_delegate_.Reset();
258 }
259 }
260
196 private: 261 private:
197 void SetUpOnMainThread() override { 262 void SetUpOnMainThread() override {
198 WebRtcTestBase::SetUpOnMainThread(); 263 WebRtcTestBase::SetUpOnMainThread();
199 264
265 if (static_cast<TestType>(GetParam()) ==
266 TestType::TEST_WITH_GROUPED_MEDIA_REQUESTS) {
267 scoped_feature_list_.InitAndEnableFeature(
268 features::kUsePermissionManagerForMediaRequests);
269 PermissionRequestManager* manager =
270 PermissionRequestManager::FromWebContents(
271 browser()->tab_strip_model()->GetActiveWebContents());
272 prompt_factory_.reset(new MockPermissionPromptFactory(manager));
273 manager->DisplayPendingRequests();
274 }
275
200 // Cleanup. 276 // Cleanup.
201 media_stream_devices_.clear(); 277 media_stream_devices_.clear();
202 media_stream_result_ = content::NUM_MEDIA_REQUEST_RESULTS; 278 media_stream_result_ = content::NUM_MEDIA_REQUEST_RESULTS;
203 279
204 content::MediaStreamDevices audio_devices; 280 content::MediaStreamDevices audio_devices;
205 content::MediaStreamDevice fake_audio_device( 281 content::MediaStreamDevice fake_audio_device(
206 content::MEDIA_DEVICE_AUDIO_CAPTURE, example_audio_id_, 282 content::MEDIA_DEVICE_AUDIO_CAPTURE, example_audio_id_,
207 "Fake Audio Device"); 283 "Fake Audio Device");
208 audio_devices.push_back(fake_audio_device); 284 audio_devices.push_back(fake_audio_device);
209 MediaCaptureDevicesDispatcher::GetInstance()->SetTestAudioCaptureDevices( 285 MediaCaptureDevicesDispatcher::GetInstance()->SetTestAudioCaptureDevices(
210 audio_devices); 286 audio_devices);
211 287
212 content::MediaStreamDevices video_devices; 288 content::MediaStreamDevices video_devices;
213 content::MediaStreamDevice fake_video_device( 289 content::MediaStreamDevice fake_video_device(
214 content::MEDIA_DEVICE_VIDEO_CAPTURE, example_video_id_, 290 content::MEDIA_DEVICE_VIDEO_CAPTURE, example_video_id_,
215 "Fake Video Device"); 291 "Fake Video Device");
216 video_devices.push_back(fake_video_device); 292 video_devices.push_back(fake_video_device);
217 MediaCaptureDevicesDispatcher::GetInstance()->SetTestVideoCaptureDevices( 293 MediaCaptureDevicesDispatcher::GetInstance()->SetTestVideoCaptureDevices(
218 video_devices); 294 video_devices);
219 } 295 }
220 296
297 void TearDownOnMainThread() override {
298 prompt_factory_.reset();
299
300 WebRtcTestBase::TearDownOnMainThread();
301 }
302
221 GURL example_url_; 303 GURL example_url_;
222 const std::string example_audio_id_; 304 const std::string example_audio_id_;
223 const std::string example_video_id_; 305 const std::string example_video_id_;
224 306
225 content::MediaStreamDevices media_stream_devices_; 307 content::MediaStreamDevices media_stream_devices_;
226 content::MediaStreamRequestResult media_stream_result_; 308 content::MediaStreamRequestResult media_stream_result_;
227 309
310 base::Closure quit_closure_;
311
228 TestPermissionPromptDelegate prompt_delegate_; 312 TestPermissionPromptDelegate prompt_delegate_;
313 std::unique_ptr<MockPermissionPromptFactory> prompt_factory_;
314
315 base::test::ScopedFeatureList scoped_feature_list_;
229 }; 316 };
230 317
231 // Request and allow microphone access. 318 // Request and allow microphone access.
232 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndAllowMic) { 319 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, RequestAndAllowMic) {
233 InitWithUrl(GURL("https://www.example.com")); 320 InitWithUrl(GURL("https://www.example.com"));
234 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED); 321 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED);
235 // Ensure the prompt is accepted if necessary such that tab specific content 322 // Ensure the prompt is accepted if necessary such that tab specific content
236 // settings are updated. 323 // settings are updated.
237 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 324 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
238 RequestPermissions( 325 RequestPermissions(
239 GetWebContents(), CreateRequest(example_audio_id(), std::string()), 326 GetWebContents(), CreateRequest(example_audio_id(), std::string()),
240 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 327 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
241 base::Unretained(this))); 328 base::Unretained(this)));
242 329
243 EXPECT_TRUE(GetContentSettings()->IsContentAllowed( 330 EXPECT_TRUE(GetContentSettings()->IsContentAllowed(
244 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 331 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
245 EXPECT_FALSE(GetContentSettings()->IsContentBlocked( 332 EXPECT_FALSE(GetContentSettings()->IsContentBlocked(
246 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 333 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
247 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED, 334 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED,
248 GetContentSettings()->GetMicrophoneCameraState()); 335 GetContentSettings()->GetMicrophoneCameraState());
249 EXPECT_EQ(example_audio_id(), 336 EXPECT_EQ(example_audio_id(),
250 GetContentSettings()->media_stream_requested_audio_device()); 337 GetContentSettings()->media_stream_requested_audio_device());
251 EXPECT_EQ(example_audio_id(), 338 EXPECT_EQ(example_audio_id(),
252 GetContentSettings()->media_stream_selected_audio_device()); 339 GetContentSettings()->media_stream_selected_audio_device());
253 EXPECT_EQ(std::string(), 340 EXPECT_EQ(std::string(),
254 GetContentSettings()->media_stream_requested_video_device()); 341 GetContentSettings()->media_stream_requested_video_device());
255 EXPECT_EQ(std::string(), 342 EXPECT_EQ(std::string(),
256 GetContentSettings()->media_stream_selected_video_device()); 343 GetContentSettings()->media_stream_selected_video_device());
257 } 344 }
258 345
259 // Request and allow camera access. 346 // Request and allow camera access.
260 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndAllowCam) { 347 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, RequestAndAllowCam) {
261 InitWithUrl(GURL("https://www.example.com")); 348 InitWithUrl(GURL("https://www.example.com"));
262 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED); 349 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED);
263 // Ensure the prompt is accepted if necessary such that tab specific content 350 // Ensure the prompt is accepted if necessary such that tab specific content
264 // settings are updated. 351 // settings are updated.
265 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 352 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
266 RequestPermissions( 353 RequestPermissions(
267 GetWebContents(), CreateRequest(std::string(), example_video_id()), 354 GetWebContents(), CreateRequest(std::string(), example_video_id()),
268 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 355 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
269 base::Unretained(this))); 356 base::Unretained(this)));
270 357
271 EXPECT_TRUE(GetContentSettings()->IsContentAllowed( 358 EXPECT_TRUE(GetContentSettings()->IsContentAllowed(
272 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 359 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
273 EXPECT_FALSE(GetContentSettings()->IsContentBlocked( 360 EXPECT_FALSE(GetContentSettings()->IsContentBlocked(
274 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 361 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
275 EXPECT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED, 362 EXPECT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED,
276 GetContentSettings()->GetMicrophoneCameraState()); 363 GetContentSettings()->GetMicrophoneCameraState());
277 EXPECT_EQ(std::string(), 364 EXPECT_EQ(std::string(),
278 GetContentSettings()->media_stream_requested_audio_device()); 365 GetContentSettings()->media_stream_requested_audio_device());
279 EXPECT_EQ(std::string(), 366 EXPECT_EQ(std::string(),
280 GetContentSettings()->media_stream_selected_audio_device()); 367 GetContentSettings()->media_stream_selected_audio_device());
281 EXPECT_EQ(example_video_id(), 368 EXPECT_EQ(example_video_id(),
282 GetContentSettings()->media_stream_requested_video_device()); 369 GetContentSettings()->media_stream_requested_video_device());
283 EXPECT_EQ(example_video_id(), 370 EXPECT_EQ(example_video_id(),
284 GetContentSettings()->media_stream_selected_video_device()); 371 GetContentSettings()->media_stream_selected_video_device());
285 } 372 }
286 373
287 // Request and block microphone access. 374 // Request and block microphone access.
288 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndBlockMic) { 375 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, RequestAndBlockMic) {
289 InitWithUrl(GURL("https://www.example.com")); 376 InitWithUrl(GURL("https://www.example.com"));
290 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED); 377 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
291 // Ensure the prompt is accepted if necessary such that tab specific content 378 // Ensure the prompt is accepted if necessary such that tab specific content
292 // settings are updated. 379 // settings are updated.
293 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 380 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
294 RequestPermissions( 381 RequestPermissions(
295 GetWebContents(), CreateRequest(example_audio_id(), std::string()), 382 GetWebContents(), CreateRequest(example_audio_id(), std::string()),
296 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 383 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
297 base::Unretained(this))); 384 base::Unretained(this)));
298 385
299 EXPECT_FALSE(GetContentSettings()->IsContentAllowed( 386 EXPECT_FALSE(GetContentSettings()->IsContentAllowed(
300 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 387 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
301 EXPECT_TRUE(GetContentSettings()->IsContentBlocked( 388 EXPECT_TRUE(GetContentSettings()->IsContentBlocked(
302 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 389 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
303 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | 390 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
304 TabSpecificContentSettings::MICROPHONE_BLOCKED, 391 TabSpecificContentSettings::MICROPHONE_BLOCKED,
305 GetContentSettings()->GetMicrophoneCameraState()); 392 GetContentSettings()->GetMicrophoneCameraState());
306 EXPECT_EQ(example_audio_id(), 393 EXPECT_EQ(example_audio_id(),
307 GetContentSettings()->media_stream_requested_audio_device()); 394 GetContentSettings()->media_stream_requested_audio_device());
308 EXPECT_EQ(example_audio_id(), 395 EXPECT_EQ(example_audio_id(),
309 GetContentSettings()->media_stream_selected_audio_device()); 396 GetContentSettings()->media_stream_selected_audio_device());
310 EXPECT_EQ(std::string(), 397 EXPECT_EQ(std::string(),
311 GetContentSettings()->media_stream_requested_video_device()); 398 GetContentSettings()->media_stream_requested_video_device());
312 EXPECT_EQ(std::string(), 399 EXPECT_EQ(std::string(),
313 GetContentSettings()->media_stream_selected_video_device()); 400 GetContentSettings()->media_stream_selected_video_device());
314 } 401 }
315 402
316 // Request and block camera access. 403 // Request and block camera access.
317 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, RequestAndBlockCam) { 404 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, RequestAndBlockCam) {
318 InitWithUrl(GURL("https://www.example.com")); 405 InitWithUrl(GURL("https://www.example.com"));
319 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_DENIED); 406 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_DENIED);
320 // Ensure the prompt is accepted if necessary such that tab specific content 407 // Ensure the prompt is accepted if necessary such that tab specific content
321 // settings are updated. 408 // settings are updated.
322 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 409 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
323 RequestPermissions( 410 RequestPermissions(
324 GetWebContents(), CreateRequest(std::string(), example_video_id()), 411 GetWebContents(), CreateRequest(std::string(), example_video_id()),
325 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 412 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
326 base::Unretained(this))); 413 base::Unretained(this)));
327 414
328 EXPECT_FALSE(GetContentSettings()->IsContentAllowed( 415 EXPECT_FALSE(GetContentSettings()->IsContentAllowed(
329 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 416 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
330 EXPECT_TRUE(GetContentSettings()->IsContentBlocked( 417 EXPECT_TRUE(GetContentSettings()->IsContentBlocked(
331 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 418 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
332 EXPECT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED | 419 EXPECT_EQ(TabSpecificContentSettings::CAMERA_ACCESSED |
333 TabSpecificContentSettings::CAMERA_BLOCKED, 420 TabSpecificContentSettings::CAMERA_BLOCKED,
334 GetContentSettings()->GetMicrophoneCameraState()); 421 GetContentSettings()->GetMicrophoneCameraState());
335 EXPECT_EQ(std::string(), 422 EXPECT_EQ(std::string(),
336 GetContentSettings()->media_stream_requested_audio_device()); 423 GetContentSettings()->media_stream_requested_audio_device());
337 EXPECT_EQ(std::string(), 424 EXPECT_EQ(std::string(),
338 GetContentSettings()->media_stream_selected_audio_device()); 425 GetContentSettings()->media_stream_selected_audio_device());
339 EXPECT_EQ(example_video_id(), 426 EXPECT_EQ(example_video_id(),
340 GetContentSettings()->media_stream_requested_video_device()); 427 GetContentSettings()->media_stream_requested_video_device());
341 EXPECT_EQ(example_video_id(), 428 EXPECT_EQ(example_video_id(),
342 GetContentSettings()->media_stream_selected_video_device()); 429 GetContentSettings()->media_stream_selected_video_device());
343 } 430 }
344 431
345 // Request and allow microphone and camera access. 432 // Request and allow microphone and camera access.
346 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 433 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
347 RequestAndAllowMicCam) { 434 RequestAndAllowMicCam) {
348 InitWithUrl(GURL("https://www.example.com")); 435 InitWithUrl(GURL("https://www.example.com"));
349 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED); 436 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED);
350 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED); 437 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED);
351 // Ensure the prompt is accepted if necessary such that tab specific content 438 // Ensure the prompt is accepted if necessary such that tab specific content
352 // settings are updated. 439 // settings are updated.
353 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 440 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
354 RequestPermissions( 441 RequestPermissions(
355 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()), 442 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
356 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 443 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
357 base::Unretained(this))); 444 base::Unretained(this)));
358 445
359 EXPECT_TRUE(GetContentSettings()->IsContentAllowed( 446 EXPECT_TRUE(GetContentSettings()->IsContentAllowed(
360 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 447 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
361 EXPECT_FALSE(GetContentSettings()->IsContentBlocked( 448 EXPECT_FALSE(GetContentSettings()->IsContentBlocked(
362 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 449 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
363 EXPECT_TRUE(GetContentSettings()->IsContentAllowed( 450 EXPECT_TRUE(GetContentSettings()->IsContentAllowed(
364 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 451 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
365 EXPECT_FALSE(GetContentSettings()->IsContentBlocked( 452 EXPECT_FALSE(GetContentSettings()->IsContentBlocked(
366 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 453 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
367 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | 454 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
368 TabSpecificContentSettings::CAMERA_ACCESSED, 455 TabSpecificContentSettings::CAMERA_ACCESSED,
369 GetContentSettings()->GetMicrophoneCameraState()); 456 GetContentSettings()->GetMicrophoneCameraState());
370 EXPECT_EQ(example_audio_id(), 457 EXPECT_EQ(example_audio_id(),
371 GetContentSettings()->media_stream_requested_audio_device()); 458 GetContentSettings()->media_stream_requested_audio_device());
372 EXPECT_EQ(example_audio_id(), 459 EXPECT_EQ(example_audio_id(),
373 GetContentSettings()->media_stream_selected_audio_device()); 460 GetContentSettings()->media_stream_selected_audio_device());
374 EXPECT_EQ(example_video_id(), 461 EXPECT_EQ(example_video_id(),
375 GetContentSettings()->media_stream_requested_video_device()); 462 GetContentSettings()->media_stream_requested_video_device());
376 EXPECT_EQ(example_video_id(), 463 EXPECT_EQ(example_video_id(),
377 GetContentSettings()->media_stream_selected_video_device()); 464 GetContentSettings()->media_stream_selected_video_device());
378 } 465 }
379 466
380 // Request and block microphone and camera access. 467 // Request and block microphone and camera access.
381 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 468 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
382 RequestAndBlockMicCam) { 469 RequestAndBlockMicCam) {
383 InitWithUrl(GURL("https://www.example.com")); 470 InitWithUrl(GURL("https://www.example.com"));
384 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED); 471 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
385 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_DENIED); 472 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_DENIED);
386 // Ensure the prompt is accepted if necessary such that tab specific content 473 // Ensure the prompt is accepted if necessary such that tab specific content
387 // settings are updated. 474 // settings are updated.
388 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 475 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
389 RequestPermissions( 476 RequestPermissions(
390 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()), 477 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
391 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 478 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
392 base::Unretained(this))); 479 base::Unretained(this)));
393 480
394 EXPECT_FALSE(GetContentSettings()->IsContentAllowed( 481 EXPECT_FALSE(GetContentSettings()->IsContentAllowed(
395 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 482 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
396 EXPECT_TRUE(GetContentSettings()->IsContentBlocked( 483 EXPECT_TRUE(GetContentSettings()->IsContentBlocked(
397 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 484 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
398 EXPECT_FALSE(GetContentSettings()->IsContentAllowed( 485 EXPECT_FALSE(GetContentSettings()->IsContentAllowed(
399 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 486 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
400 EXPECT_TRUE(GetContentSettings()->IsContentBlocked( 487 EXPECT_TRUE(GetContentSettings()->IsContentBlocked(
401 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 488 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
402 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | 489 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
403 TabSpecificContentSettings::MICROPHONE_BLOCKED | 490 TabSpecificContentSettings::MICROPHONE_BLOCKED |
404 TabSpecificContentSettings::CAMERA_ACCESSED | 491 TabSpecificContentSettings::CAMERA_ACCESSED |
405 TabSpecificContentSettings::CAMERA_BLOCKED, 492 TabSpecificContentSettings::CAMERA_BLOCKED,
406 GetContentSettings()->GetMicrophoneCameraState()); 493 GetContentSettings()->GetMicrophoneCameraState());
407 EXPECT_EQ(example_audio_id(), 494 EXPECT_EQ(example_audio_id(),
408 GetContentSettings()->media_stream_requested_audio_device()); 495 GetContentSettings()->media_stream_requested_audio_device());
409 EXPECT_EQ(example_audio_id(), 496 EXPECT_EQ(example_audio_id(),
410 GetContentSettings()->media_stream_selected_audio_device()); 497 GetContentSettings()->media_stream_selected_audio_device());
411 EXPECT_EQ(example_video_id(), 498 EXPECT_EQ(example_video_id(),
412 GetContentSettings()->media_stream_requested_video_device()); 499 GetContentSettings()->media_stream_requested_video_device());
413 EXPECT_EQ(example_video_id(), 500 EXPECT_EQ(example_video_id(),
414 GetContentSettings()->media_stream_selected_video_device()); 501 GetContentSettings()->media_stream_selected_video_device());
415 } 502 }
416 503
417 // Request microphone and camera access. Allow microphone, block camera. 504 // Request microphone and camera access. Allow microphone, block camera.
418 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 505 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
419 RequestMicCamBlockCam) { 506 RequestMicCamBlockCam) {
420 InitWithUrl(GURL("https://www.example.com")); 507 InitWithUrl(GURL("https://www.example.com"));
421 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED); 508 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED);
422 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_DENIED); 509 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_DENIED);
423 // Ensure the prompt is accepted if necessary such that tab specific content 510 // Ensure the prompt is accepted if necessary such that tab specific content
424 // settings are updated. 511 // settings are updated.
425 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 512 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
426 RequestPermissions( 513 RequestPermissions(
427 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()), 514 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
428 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 515 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
429 base::Unretained(this))); 516 base::Unretained(this)));
430 517
431 EXPECT_TRUE(GetContentSettings()->IsContentAllowed( 518 EXPECT_TRUE(GetContentSettings()->IsContentAllowed(
432 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 519 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
433 EXPECT_FALSE(GetContentSettings()->IsContentBlocked( 520 EXPECT_FALSE(GetContentSettings()->IsContentBlocked(
434 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 521 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
435 EXPECT_FALSE(GetContentSettings()->IsContentAllowed( 522 EXPECT_FALSE(GetContentSettings()->IsContentAllowed(
436 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 523 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
437 EXPECT_TRUE(GetContentSettings()->IsContentBlocked( 524 EXPECT_TRUE(GetContentSettings()->IsContentBlocked(
438 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 525 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
439 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | 526 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
440 TabSpecificContentSettings::CAMERA_ACCESSED | 527 TabSpecificContentSettings::CAMERA_ACCESSED |
441 TabSpecificContentSettings::CAMERA_BLOCKED, 528 TabSpecificContentSettings::CAMERA_BLOCKED,
442 GetContentSettings()->GetMicrophoneCameraState()); 529 GetContentSettings()->GetMicrophoneCameraState());
443 EXPECT_EQ(example_audio_id(), 530 EXPECT_EQ(example_audio_id(),
444 GetContentSettings()->media_stream_requested_audio_device()); 531 GetContentSettings()->media_stream_requested_audio_device());
445 EXPECT_EQ(example_audio_id(), 532 EXPECT_EQ(example_audio_id(),
446 GetContentSettings()->media_stream_selected_audio_device()); 533 GetContentSettings()->media_stream_selected_audio_device());
447 EXPECT_EQ(example_video_id(), 534 EXPECT_EQ(example_video_id(),
448 GetContentSettings()->media_stream_requested_video_device()); 535 GetContentSettings()->media_stream_requested_video_device());
449 EXPECT_EQ(example_video_id(), 536 EXPECT_EQ(example_video_id(),
450 GetContentSettings()->media_stream_selected_video_device()); 537 GetContentSettings()->media_stream_selected_video_device());
451 } 538 }
452 539
453 // Request microphone and camera access. Block microphone, allow camera. 540 // Request microphone and camera access. Block microphone, allow camera.
454 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 541 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
455 RequestMicCamBlockMic) { 542 RequestMicCamBlockMic) {
456 InitWithUrl(GURL("https://www.example.com")); 543 InitWithUrl(GURL("https://www.example.com"));
457 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED); 544 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
458 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED); 545 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED);
459 // Ensure the prompt is accepted if necessary such that tab specific content 546 // Ensure the prompt is accepted if necessary such that tab specific content
460 // settings are updated. 547 // settings are updated.
461 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 548 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
462 RequestPermissions( 549 RequestPermissions(
463 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()), 550 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
464 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 551 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
465 base::Unretained(this))); 552 base::Unretained(this)));
466 553
467 EXPECT_FALSE(GetContentSettings()->IsContentAllowed( 554 EXPECT_FALSE(GetContentSettings()->IsContentAllowed(
468 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 555 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
469 EXPECT_TRUE(GetContentSettings()->IsContentBlocked( 556 EXPECT_TRUE(GetContentSettings()->IsContentBlocked(
470 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 557 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
471 EXPECT_TRUE(GetContentSettings()->IsContentAllowed( 558 EXPECT_TRUE(GetContentSettings()->IsContentAllowed(
472 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 559 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
473 EXPECT_FALSE(GetContentSettings()->IsContentBlocked( 560 EXPECT_FALSE(GetContentSettings()->IsContentBlocked(
474 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 561 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
475 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED | 562 EXPECT_EQ(TabSpecificContentSettings::MICROPHONE_ACCESSED |
476 TabSpecificContentSettings::MICROPHONE_BLOCKED | 563 TabSpecificContentSettings::MICROPHONE_BLOCKED |
477 TabSpecificContentSettings::CAMERA_ACCESSED, 564 TabSpecificContentSettings::CAMERA_ACCESSED,
478 GetContentSettings()->GetMicrophoneCameraState()); 565 GetContentSettings()->GetMicrophoneCameraState());
479 EXPECT_EQ(example_audio_id(), 566 EXPECT_EQ(example_audio_id(),
480 GetContentSettings()->media_stream_requested_audio_device()); 567 GetContentSettings()->media_stream_requested_audio_device());
481 EXPECT_EQ(example_audio_id(), 568 EXPECT_EQ(example_audio_id(),
482 GetContentSettings()->media_stream_selected_audio_device()); 569 GetContentSettings()->media_stream_selected_audio_device());
483 EXPECT_EQ(example_video_id(), 570 EXPECT_EQ(example_video_id(),
484 GetContentSettings()->media_stream_requested_video_device()); 571 GetContentSettings()->media_stream_requested_video_device());
485 EXPECT_EQ(example_video_id(), 572 EXPECT_EQ(example_video_id(),
486 GetContentSettings()->media_stream_selected_video_device()); 573 GetContentSettings()->media_stream_selected_video_device());
487 } 574 }
488 575
489 // Request microphone access. Requesting camera should not change microphone 576 // Request microphone access. Requesting camera should not change microphone
490 // state. 577 // state.
491 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 578 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
492 RequestCamDoesNotChangeMic) { 579 RequestCamDoesNotChangeMic) {
493 InitWithUrl(GURL("https://www.example.com")); 580 InitWithUrl(GURL("https://www.example.com"));
494 // Request mic and deny. 581 // Request mic and deny.
495 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED); 582 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
496 // Ensure the prompt is accepted if necessary such that tab specific content 583 // Ensure the prompt is accepted if necessary such that tab specific content
497 // settings are updated. 584 // settings are updated.
498 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 585 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
499 RequestPermissions( 586 RequestPermissions(
500 GetWebContents(), CreateRequest(example_audio_id(), std::string()), 587 GetWebContents(), CreateRequest(example_audio_id(), std::string()),
501 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 588 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
502 base::Unretained(this))); 589 base::Unretained(this)));
503 EXPECT_FALSE(GetContentSettings()->IsContentAllowed( 590 EXPECT_FALSE(GetContentSettings()->IsContentAllowed(
504 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 591 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
505 EXPECT_TRUE(GetContentSettings()->IsContentBlocked( 592 EXPECT_TRUE(GetContentSettings()->IsContentBlocked(
506 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 593 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
507 EXPECT_EQ(example_audio_id(), 594 EXPECT_EQ(example_audio_id(),
508 GetContentSettings()->media_stream_requested_audio_device()); 595 GetContentSettings()->media_stream_requested_audio_device());
(...skipping 20 matching lines...) Expand all
529 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 616 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
530 EXPECT_TRUE(GetContentSettings()->IsContentBlocked( 617 EXPECT_TRUE(GetContentSettings()->IsContentBlocked(
531 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 618 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
532 EXPECT_EQ(example_audio_id(), 619 EXPECT_EQ(example_audio_id(),
533 GetContentSettings()->media_stream_requested_audio_device()); 620 GetContentSettings()->media_stream_requested_audio_device());
534 EXPECT_EQ(example_audio_id(), 621 EXPECT_EQ(example_audio_id(),
535 GetContentSettings()->media_stream_selected_audio_device()); 622 GetContentSettings()->media_stream_selected_audio_device());
536 } 623 }
537 624
538 // Denying mic access after camera access should still show the camera as state. 625 // Denying mic access after camera access should still show the camera as state.
539 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 626 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
540 DenyMicDoesNotChangeCam) { 627 DenyMicDoesNotChangeCam) {
541 InitWithUrl(GURL("https://www.example.com")); 628 InitWithUrl(GURL("https://www.example.com"));
542 // Request cam and allow 629 // Request cam and allow
543 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED); 630 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED);
544 // Ensure the prompt is accepted if necessary such that tab specific content 631 // Ensure the prompt is accepted if necessary such that tab specific content
545 // settings are updated. 632 // settings are updated.
546 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 633 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
547 RequestPermissions( 634 RequestPermissions(
548 GetWebContents(), CreateRequest(std::string(), example_video_id()), 635 GetWebContents(), CreateRequest(std::string(), example_video_id()),
549 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 636 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
550 base::Unretained(this))); 637 base::Unretained(this)));
551 EXPECT_TRUE(GetContentSettings()->IsContentAllowed( 638 EXPECT_TRUE(GetContentSettings()->IsContentAllowed(
552 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 639 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
553 EXPECT_FALSE(GetContentSettings()->IsContentBlocked( 640 EXPECT_FALSE(GetContentSettings()->IsContentBlocked(
554 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 641 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
555 EXPECT_EQ(example_video_id(), 642 EXPECT_EQ(example_video_id(),
556 GetContentSettings()->media_stream_requested_video_device()); 643 GetContentSettings()->media_stream_requested_video_device());
(...skipping 12 matching lines...) Expand all
569 dispatcher->SetTestVideoCaptureDevices(video_devices); 656 dispatcher->SetTestVideoCaptureDevices(video_devices);
570 std::unique_ptr<content::MediaStreamUI> video_stream_ui = 657 std::unique_ptr<content::MediaStreamUI> video_stream_ui =
571 dispatcher->GetMediaStreamCaptureIndicator()->RegisterMediaStream( 658 dispatcher->GetMediaStreamCaptureIndicator()->RegisterMediaStream(
572 GetWebContents(), video_devices); 659 GetWebContents(), video_devices);
573 video_stream_ui->OnStarted(base::Closure()); 660 video_stream_ui->OnStarted(base::Closure());
574 661
575 // Request mic and deny. 662 // Request mic and deny.
576 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED); 663 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_DENIED);
577 // Ensure the prompt is accepted if necessary such that tab specific content 664 // Ensure the prompt is accepted if necessary such that tab specific content
578 // settings are updated. 665 // settings are updated.
579 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 666 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
580 RequestPermissions( 667 RequestPermissions(
581 GetWebContents(), CreateRequest(example_audio_id(), std::string()), 668 GetWebContents(), CreateRequest(example_audio_id(), std::string()),
582 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 669 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
583 base::Unretained(this))); 670 base::Unretained(this)));
584 EXPECT_FALSE(GetContentSettings()->IsContentAllowed( 671 EXPECT_FALSE(GetContentSettings()->IsContentAllowed(
585 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 672 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
586 EXPECT_TRUE(GetContentSettings()->IsContentBlocked( 673 EXPECT_TRUE(GetContentSettings()->IsContentBlocked(
587 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)); 674 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
588 EXPECT_EQ(example_audio_id(), 675 EXPECT_EQ(example_audio_id(),
589 GetContentSettings()->media_stream_requested_audio_device()); 676 GetContentSettings()->media_stream_requested_audio_device());
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 // inputs. 728 // inputs.
642 content::MediaStreamRequestResult ExpectedMediaStreamResult() const { 729 content::MediaStreamRequestResult ExpectedMediaStreamResult() const {
643 if (ExpectMicAllowed() || ExpectCamAllowed()) 730 if (ExpectMicAllowed() || ExpectCamAllowed())
644 return content::MEDIA_DEVICE_OK; 731 return content::MEDIA_DEVICE_OK;
645 return content::MEDIA_DEVICE_PERMISSION_DENIED; 732 return content::MEDIA_DEVICE_PERMISSION_DENIED;
646 } 733 }
647 }; 734 };
648 735
649 // Test all combinations of cam/mic content settings. Then tests the result of 736 // Test all combinations of cam/mic content settings. Then tests the result of
650 // clicking both accept/deny on the infobar. Both cam/mic are requested. 737 // clicking both accept/deny on the infobar. Both cam/mic are requested.
651 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, ContentSettings) { 738 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest, ContentSettings) {
652 InitWithUrl(GURL("https://www.example.com")); 739 InitWithUrl(GURL("https://www.example.com"));
653 static const ContentSettingsTestData tests[] = { 740 static const ContentSettingsTestData tests[] = {
654 // Settings that won't result in an infobar. 741 // Settings that won't result in an infobar.
655 {CONTENT_SETTING_ALLOW, CONTENT_SETTING_ALLOW, false}, 742 {CONTENT_SETTING_ALLOW, CONTENT_SETTING_ALLOW, false},
656 {CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, false}, 743 {CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, false},
657 {CONTENT_SETTING_BLOCK, CONTENT_SETTING_ALLOW, false}, 744 {CONTENT_SETTING_BLOCK, CONTENT_SETTING_ALLOW, false},
658 {CONTENT_SETTING_BLOCK, CONTENT_SETTING_BLOCK, false}, 745 {CONTENT_SETTING_BLOCK, CONTENT_SETTING_BLOCK, false},
659 746
660 // Settings that will result in an infobar. Test both accept and deny. 747 // Settings that will result in an infobar. Test both accept and deny.
661 {CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK, false}, 748 {CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK, false},
662 {CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK, true}, 749 {CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK, true},
663 750
664 {CONTENT_SETTING_ASK, CONTENT_SETTING_ASK, false}, 751 {CONTENT_SETTING_ASK, CONTENT_SETTING_ASK, false},
665 {CONTENT_SETTING_ASK, CONTENT_SETTING_ASK, true}, 752 {CONTENT_SETTING_ASK, CONTENT_SETTING_ASK, true},
666 753
667 {CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK, false}, 754 {CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK, false},
668 {CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK, true}, 755 {CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK, true},
669 756
670 {CONTENT_SETTING_ASK, CONTENT_SETTING_ALLOW, false}, 757 {CONTENT_SETTING_ASK, CONTENT_SETTING_ALLOW, false},
671 {CONTENT_SETTING_ASK, CONTENT_SETTING_ALLOW, true}, 758 {CONTENT_SETTING_ASK, CONTENT_SETTING_ALLOW, true},
672 759
673 {CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK, false}, 760 {CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK, false},
674 {CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK, true}, 761 {CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK, true},
675 }; 762 };
676 763
677 for (auto& test : tests) { 764 for (auto& test : tests) {
678 SetContentSettings(test.mic, test.cam); 765 SetContentSettings(test.mic, test.cam);
679 766
680 prompt_delegate()->Reset(); 767 ResetPromptCounters();
681 768
682 // Accept or deny the infobar if it's showing. 769 // Accept or deny the infobar if it's showing.
683 if (test.ExpectMicInfobar() || test.ExpectCamInfobar()) { 770 if (test.ExpectMicInfobar() || test.ExpectCamInfobar()) {
684 if (test.accept_infobar) { 771 if (test.accept_infobar) {
685 prompt_delegate()->set_response_type( 772 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
686 PermissionRequestManager::ACCEPT_ALL);
687 } else { 773 } else {
688 prompt_delegate()->set_response_type( 774 SetPromptResponseType(PermissionRequestManager::DENY_ALL);
689 PermissionRequestManager::DENY_ALL);
690 } 775 }
691 } else { 776 } else {
692 prompt_delegate()->set_response_type(PermissionRequestManager::NONE); 777 SetPromptResponseType(PermissionRequestManager::NONE);
693 } 778 }
694 RequestPermissions( 779 RequestPermissions(
695 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()), 780 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
696 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 781 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
697 base::Unretained(this))); 782 base::Unretained(this)));
698 783
699 ASSERT_LE(prompt_delegate()->TotalRequestCount(), 2u); 784 ASSERT_LE(TotalPromptRequestCount(), 2u);
700 ASSERT_EQ( 785 ASSERT_EQ(test.ExpectMicInfobar(),
701 test.ExpectMicInfobar(), 786 WasPermissionShown(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
702 prompt_delegate()->WasRequested(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
703 ASSERT_EQ(test.ExpectCamInfobar(), 787 ASSERT_EQ(test.ExpectCamInfobar(),
704 prompt_delegate()->WasRequested( 788 WasPermissionShown(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
705 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
706 789
707 // Check the media stream result is expected and the devices returned are 790 // Check the media stream result is expected and the devices returned are
708 // expected; 791 // expected;
709 ASSERT_EQ(test.ExpectedMediaStreamResult(), media_stream_result()); 792 ASSERT_EQ(test.ExpectedMediaStreamResult(), media_stream_result());
710 ASSERT_EQ(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE), 793 ASSERT_EQ(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE),
711 test.ExpectMicAllowed()); 794 test.ExpectMicAllowed());
712 ASSERT_EQ(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE), 795 ASSERT_EQ(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE),
713 test.ExpectCamAllowed()); 796 test.ExpectCamAllowed());
714 } 797 }
715 } 798 }
716 799
717 // Request and allow camera access on WebUI pages without prompting. 800 // Request and allow camera access on WebUI pages without prompting.
718 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 801 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
719 WebUIRequestAndAllowCam) { 802 WebUIRequestAndAllowCam) {
720 InitWithUrl(GURL("chrome://test-page")); 803 InitWithUrl(GURL("chrome://test-page"));
721 RequestPermissions( 804 RequestPermissions(
722 GetWebContents(), CreateRequest(std::string(), example_video_id()), 805 GetWebContents(), CreateRequest(std::string(), example_video_id()),
723 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 806 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
724 base::Unretained(this))); 807 base::Unretained(this)));
725 808
726 ASSERT_EQ(0u, prompt_delegate()->TotalRequestCount()); 809 ASSERT_EQ(0u, TotalPromptRequestCount());
727 810
728 ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result()); 811 ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result());
729 ASSERT_FALSE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE)); 812 ASSERT_FALSE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE));
730 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE)); 813 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE));
731 } 814 }
732 815
733 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 816 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
734 ExtensionRequestMicCam) { 817 ExtensionRequestMicCam) {
735 InitWithUrl(GURL("chrome-extension://test-page")); 818 InitWithUrl(GURL("chrome-extension://test-page"));
736 // Test that a prompt is required. 819 // Test that a prompt is required.
737 prompt_delegate()->set_response_type(PermissionRequestManager::ACCEPT_ALL); 820 SetPromptResponseType(PermissionRequestManager::ACCEPT_ALL);
738 RequestPermissions( 821 RequestPermissions(
739 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()), 822 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
740 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 823 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
741 base::Unretained(this))); 824 base::Unretained(this)));
742 ASSERT_EQ(2u, prompt_delegate()->TotalRequestCount()); 825 ASSERT_EQ(2u, TotalPromptRequestCount());
743 ASSERT_TRUE(prompt_delegate()->WasRequested( 826 ASSERT_TRUE(WasPermissionShown(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA));
744 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)); 827 ASSERT_TRUE(WasPermissionShown(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
745 ASSERT_TRUE(
746 prompt_delegate()->WasRequested(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC));
747 828
748 // Accept the prompt. 829 // Accept the prompt.
749 ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result()); 830 ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result());
750 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE)); 831 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE));
751 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE)); 832 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE));
752 833
753 // Check that re-requesting allows without prompting. 834 // Check that re-requesting allows without prompting.
754 prompt_delegate()->Reset(); 835 ResetPromptCounters();
755 RequestPermissions( 836 RequestPermissions(
756 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()), 837 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
757 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 838 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
758 base::Unretained(this))); 839 base::Unretained(this)));
759 ASSERT_EQ(0u, prompt_delegate()->TotalRequestCount()); 840 ASSERT_EQ(0u, TotalPromptRequestCount());
760 841
761 ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result()); 842 ASSERT_EQ(content::MEDIA_DEVICE_OK, media_stream_result());
762 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE)); 843 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE));
763 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE)); 844 ASSERT_TRUE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE));
764 } 845 }
765 846
766 // For Pepper request from insecure origin, even if it's ALLOW, it won't be 847 // For Pepper request from insecure origin, even if it's ALLOW, it won't be
767 // changed to ASK. 848 // changed to ASK.
768 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 849 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
769 PepperRequestInsecure) { 850 PepperRequestInsecure) {
770 InitWithUrl(GURL("http://www.example.com")); 851 InitWithUrl(GURL("http://www.example.com"));
771 SetContentSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ALLOW); 852 SetContentSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ALLOW);
772 853
773 RequestPermissions( 854 RequestPermissions(
774 GetWebContents(), 855 GetWebContents(),
775 CreateRequestWithType(example_audio_id(), std::string(), 856 CreateRequestWithType(example_audio_id(), std::string(),
776 content::MEDIA_OPEN_DEVICE_PEPPER_ONLY), 857 content::MEDIA_OPEN_DEVICE_PEPPER_ONLY),
777 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 858 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
778 base::Unretained(this))); 859 base::Unretained(this)));
779 ASSERT_EQ(0u, prompt_delegate()->TotalRequestCount()); 860 ASSERT_EQ(0u, TotalPromptRequestCount());
780 } 861 }
781 862
782 // Request and block microphone and camera access with kill switch. 863 // Request and block microphone and camera access with kill switch.
783 IN_PROC_BROWSER_TEST_F(MediaStreamDevicesControllerTest, 864 IN_PROC_BROWSER_TEST_P(MediaStreamDevicesControllerTest,
784 RequestAndKillSwitchMicCam) { 865 RequestAndKillSwitchMicCam) {
785 std::map<std::string, std::string> params; 866 std::map<std::string, std::string> params;
786 params[PermissionUtil::GetPermissionString( 867 params[PermissionUtil::GetPermissionString(
787 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)] = 868 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)] =
788 PermissionContextBase::kPermissionsKillSwitchBlockedValue; 869 PermissionContextBase::kPermissionsKillSwitchBlockedValue;
789 params[PermissionUtil::GetPermissionString( 870 params[PermissionUtil::GetPermissionString(
790 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)] = 871 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)] =
791 PermissionContextBase::kPermissionsKillSwitchBlockedValue; 872 PermissionContextBase::kPermissionsKillSwitchBlockedValue;
792 variations::AssociateVariationParams( 873 variations::AssociateVariationParams(
793 PermissionContextBase::kPermissionsKillSwitchFieldStudy, 874 PermissionContextBase::kPermissionsKillSwitchFieldStudy,
794 "TestGroup", params); 875 "TestGroup", params);
795 base::FieldTrialList::CreateFieldTrial( 876 base::FieldTrialList::CreateFieldTrial(
796 PermissionContextBase::kPermissionsKillSwitchFieldStudy, 877 PermissionContextBase::kPermissionsKillSwitchFieldStudy,
797 "TestGroup"); 878 "TestGroup");
798 InitWithUrl(GURL("https://www.example.com")); 879 InitWithUrl(GURL("https://www.example.com"));
799 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED); 880 SetDevicePolicy(DEVICE_TYPE_AUDIO, ACCESS_ALLOWED);
800 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED); 881 SetDevicePolicy(DEVICE_TYPE_VIDEO, ACCESS_ALLOWED);
801 RequestPermissions( 882 RequestPermissions(
802 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()), 883 GetWebContents(), CreateRequest(example_audio_id(), example_video_id()),
803 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse, 884 base::Bind(&MediaStreamDevicesControllerTest::OnMediaStreamResponse,
804 base::Unretained(this))); 885 base::Unretained(this)));
805 886
806 ASSERT_EQ(0u, prompt_delegate()->TotalRequestCount()); 887 ASSERT_EQ(0u, TotalPromptRequestCount());
807 888
808 ASSERT_EQ(content::MEDIA_DEVICE_KILL_SWITCH_ON, media_stream_result()); 889 ASSERT_EQ(content::MEDIA_DEVICE_KILL_SWITCH_ON, media_stream_result());
809 ASSERT_FALSE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE)); 890 ASSERT_FALSE(CheckDevicesListContains(content::MEDIA_DEVICE_AUDIO_CAPTURE));
810 ASSERT_FALSE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE)); 891 ASSERT_FALSE(CheckDevicesListContains(content::MEDIA_DEVICE_VIDEO_CAPTURE));
811 } 892 }
893
894 INSTANTIATE_TEST_CASE_P(
895 MediaStreamDevicesControllerTestInstance,
896 MediaStreamDevicesControllerTest,
897 ::testing::Range<int>(static_cast<int>(TestType::TEST_TYPE_START),
Timothy Loh 2017/04/28 03:42:07 Can you WithParamInterface<TestType> and use Value
raymes 2017/05/03 04:12:54 Done.
898 static_cast<int>(TestType::TEST_TYPE_END)));
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/permissions/permission_request_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698