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

Unified Diff: chrome/browser/permissions/permission_manager_unittest.cc

Issue 2966963003: Ensure media permission requests are correctly cancelled when permission prompts are ignored (Closed)
Patch Set: Ensure media permission requests are correctly cancelled when permission prompts are ignored Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/permissions/permission_manager_unittest.cc
diff --git a/chrome/browser/permissions/permission_manager_unittest.cc b/chrome/browser/permissions/permission_manager_unittest.cc
index a24af584d21a71487e6aa58973239a2daf91ae5e..b5911d6bc2c7c08ab6532ce4cb866a91300cb220 100644
--- a/chrome/browser/permissions/permission_manager_unittest.cc
+++ b/chrome/browser/permissions/permission_manager_unittest.cc
@@ -8,7 +8,9 @@
#include "build/build_config.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/permissions/permission_manager_factory.h"
+#include "chrome/browser/permissions/permission_request_manager.h"
#include "chrome/browser/permissions/permission_result.h"
+#include "chrome/browser/ui/permission_bubble/mock_permission_prompt_factory.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "chrome/test/base/testing_profile.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -105,6 +107,10 @@ class PermissionManagerTest : public ChromeRenderViewHostTestHarness {
callback_result_ = PermissionStatus::ASK;
}
+ bool PendingRequestsEmpty() {
+ return GetPermissionManager()->pending_requests_.IsEmpty();
+ }
+
private:
void SetUp() override {
ChromeRenderViewHostTestHarness::SetUp();
@@ -435,3 +441,26 @@ TEST_F(PermissionManagerTest, SuppressPermissionRequests) {
EXPECT_EQ(PermissionStatus::GRANTED, callback_result());
}
#endif // BUILDFLAG(ENABLE_VR) && defined(OS_ANDROID)
+
+TEST_F(PermissionManagerTest, PermissionIgnoredCleanup) {
+ content::WebContents* contents = web_contents();
+ PermissionRequestManager::CreateForWebContents(contents);
+ PermissionRequestManager* manager =
+ PermissionRequestManager::FromWebContents(contents);
+ auto prompt_factory = base::MakeUnique<MockPermissionPromptFactory>(manager);
+ manager->DisplayPendingRequests();
+
+ NavigateAndCommit(url());
+
+ GetPermissionManager()->RequestPermission(
+ PermissionType::VIDEO_CAPTURE, main_rfh(), url(), /*user_gesture=*/true,
+ base::Bind(&PermissionManagerTest::OnPermissionChange,
+ base::Unretained(this)));
+
+ EXPECT_FALSE(PendingRequestsEmpty());
+
+ NavigateAndCommit(GURL("https://foobar.com"));
+
+ EXPECT_FALSE(callback_called());
+ EXPECT_TRUE(PendingRequestsEmpty());
+}

Powered by Google App Engine
This is Rietveld 408576698