Index: chrome/browser/permissions/permission_request_manager_browsertest.cc |
diff --git a/chrome/browser/permissions/permission_request_manager_browsertest.cc b/chrome/browser/permissions/permission_request_manager_browsertest.cc |
index c5700d371a2fd18b632e8bece97137b0d7e2d027..a4db80af3373f9f90d133592a3081f2e57f6a221 100644 |
--- a/chrome/browser/permissions/permission_request_manager_browsertest.cc |
+++ b/chrome/browser/permissions/permission_request_manager_browsertest.cc |
@@ -6,6 +6,7 @@ |
#include "base/command_line.h" |
#include "base/metrics/field_trial.h" |
+#include "base/test/scoped_feature_list.h" |
#include "build/build_config.h" |
#include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" |
#include "chrome/browser/custom_handlers/register_protocol_handler_permission_request.h" |
@@ -19,6 +20,7 @@ |
#include "chrome/browser/ui/permission_bubble/mock_permission_prompt_factory.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "chrome/browser/ui/test/test_browser_dialog.h" |
+#include "chrome/common/chrome_features.h" |
#include "chrome/test/base/in_process_browser_test.h" |
#include "chrome/test/base/ui_test_utils.h" |
#include "components/content_settings/core/common/content_settings_types.h" |
@@ -213,7 +215,12 @@ void PermissionDialogTest::ShowDialog(const std::string& name) { |
// PermissionRequestImpl::GetMessageTextFragment() are valid. |
constexpr ContentSettingsType kMultipleRequests[] = { |
CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
- CONTENT_SETTINGS_TYPE_MIDI_SYSEX}; |
+ CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
+ }; |
+ constexpr ContentSettingsType kMultipleRequestsWithMedia[] = { |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
+ CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, |
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA}; |
constexpr struct { |
const char* name; |
ContentSettingsType type; |
@@ -249,7 +256,12 @@ void PermissionDialogTest::ShowDialog(const std::string& name) { |
break; |
case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC: |
case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA: |
- AddMediaRequest(manager, it->type); |
+ if (base::FeatureList::IsEnabled( |
+ features::kUsePermissionManagerForMediaRequests)) { |
+ manager->AddRequest(MakePermissionRequest(it->type)); |
+ } else { |
+ AddMediaRequest(manager, it->type); |
+ } |
break; |
// Regular permissions requests. |
case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: |
@@ -263,8 +275,15 @@ void PermissionDialogTest::ShowDialog(const std::string& name) { |
break; |
case CONTENT_SETTINGS_TYPE_DEFAULT: |
EXPECT_EQ(kMultipleName, name); |
- for (auto request : kMultipleRequests) |
- manager->AddRequest(MakePermissionRequest(request)); |
+ if (base::FeatureList::IsEnabled( |
+ features::kUsePermissionManagerForMediaRequests)) { |
+ for (auto request : kMultipleRequestsWithMedia) |
+ manager->AddRequest(MakePermissionRequest(request)); |
+ } else { |
+ for (auto request : kMultipleRequests) |
+ manager->AddRequest(MakePermissionRequest(request)); |
+ } |
+ |
break; |
default: |
ADD_FAILURE() << "Not a permission type, or one that doesn't prompt."; |
@@ -469,11 +488,25 @@ IN_PROC_BROWSER_TEST_F(PermissionDialogTest, InvokeDialog_notifications) { |
// Host wants to use your microphone. |
IN_PROC_BROWSER_TEST_F(PermissionDialogTest, InvokeDialog_mic) { |
RunDialog(); |
+ |
+ { |
+ base::test::ScopedFeatureList scoped_feature_list; |
+ scoped_feature_list.InitAndEnableFeature( |
+ features::kUsePermissionManagerForMediaRequests); |
+ RunDialog(); |
+ } |
} |
// Host wants to use your camera. |
IN_PROC_BROWSER_TEST_F(PermissionDialogTest, InvokeDialog_camera) { |
RunDialog(); |
+ |
+ { |
+ base::test::ScopedFeatureList scoped_feature_list; |
+ scoped_feature_list.InitAndEnableFeature( |
+ features::kUsePermissionManagerForMediaRequests); |
+ RunDialog(); |
+ } |
} |
// Host wants to open email links. |
@@ -489,6 +522,13 @@ IN_PROC_BROWSER_TEST_F(PermissionDialogTest, InvokeDialog_midi) { |
// Shows a permissions bubble with multiple requests. |
IN_PROC_BROWSER_TEST_F(PermissionDialogTest, InvokeDialog_multiple) { |
RunDialog(); |
+ |
+ { |
+ base::test::ScopedFeatureList scoped_feature_list; |
+ scoped_feature_list.InitAndEnableFeature( |
+ features::kUsePermissionManagerForMediaRequests); |
+ RunDialog(); |
+ } |
} |
// CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER is ChromeOS only. |