Index: chrome/browser/geolocation/geolocation_permission_context_unittest.cc |
diff --git a/chrome/browser/geolocation/geolocation_permission_context_unittest.cc b/chrome/browser/geolocation/geolocation_permission_context_unittest.cc |
index 4779afc57222f62d70625b4f42852669df5043f6..810b3a53fa8ef0f6e63093efde2aacc4e7fc0f1e 100644 |
--- a/chrome/browser/geolocation/geolocation_permission_context_unittest.cc |
+++ b/chrome/browser/geolocation/geolocation_permission_context_unittest.cc |
@@ -136,7 +136,8 @@ class GeolocationPermissionContextTests |
void RequestGeolocationPermission(content::WebContents* web_contents, |
const PermissionRequestID& id, |
- const GURL& requesting_frame); |
+ const GURL& requesting_frame, |
+ bool user_gesture); |
void PermissionResponse(const PermissionRequestID& id, |
ContentSetting content_setting); |
@@ -196,9 +197,10 @@ PermissionRequestID GeolocationPermissionContextTests::RequestIDForTab( |
void GeolocationPermissionContextTests::RequestGeolocationPermission( |
content::WebContents* web_contents, |
const PermissionRequestID& id, |
- const GURL& requesting_frame) { |
+ const GURL& requesting_frame, |
+ bool user_gesture) { |
geolocation_permission_context_->RequestPermission( |
- web_contents, id, requesting_frame, |
+ web_contents, id, requesting_frame, user_gesture, |
base::Bind(&GeolocationPermissionContextTests::PermissionResponse, |
base::Unretained(this), id)); |
content::RunAllBlockingPoolTasksUntilIdle(); |
@@ -410,7 +412,8 @@ TEST_F(GeolocationPermissionContextTests, SinglePermissionBubble) { |
BubbleManagerDocumentLoadCompleted(); |
EXPECT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, true); |
ASSERT_EQ(1U, GetNumberOfPrompts()); |
} |
@@ -421,7 +424,8 @@ TEST_F(GeolocationPermissionContextTests, |
BubbleManagerDocumentLoadCompleted(); |
EXPECT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame, |
+ true); |
ASSERT_EQ(0U, GetNumberOfPrompts()); |
} |
@@ -430,7 +434,8 @@ TEST_F(GeolocationPermissionContextTests, SinglePermissionInfobar) { |
GURL requesting_frame("https://www.example.com/geolocation"); |
NavigateAndCommit(requesting_frame); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, true); |
ASSERT_EQ(1U, infobar_service()->infobar_count()); |
infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
ConfirmInfoBarDelegate* infobar_delegate = |
@@ -448,7 +453,8 @@ TEST_F(GeolocationPermissionContextTests, GeolocationEnabledDisabled) { |
NavigateAndCommit(requesting_frame); |
MockLocationSettings::SetLocationStatus(true, true); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, true); |
EXPECT_EQ(1U, infobar_service()->infobar_count()); |
ConfirmInfoBarDelegate* infobar_delegate_0 = |
infobar_service()->infobar_at(0)->delegate()->AsConfirmInfoBarDelegate(); |
@@ -459,7 +465,8 @@ TEST_F(GeolocationPermissionContextTests, GeolocationEnabledDisabled) { |
Reload(); |
MockLocationSettings::SetLocationStatus(true, false); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, true); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
} |
@@ -468,7 +475,8 @@ TEST_F(GeolocationPermissionContextTests, MasterEnabledGoogleAppsEnabled) { |
NavigateAndCommit(requesting_frame); |
MockLocationSettings::SetLocationStatus(true, true); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, true); |
EXPECT_EQ(1U, infobar_service()->infobar_count()); |
ConfirmInfoBarDelegate* infobar_delegate = |
infobar_service()->infobar_at(0)->delegate()->AsConfirmInfoBarDelegate(); |
@@ -483,7 +491,8 @@ TEST_F(GeolocationPermissionContextTests, MasterEnabledGoogleAppsDisabled) { |
NavigateAndCommit(requesting_frame); |
MockLocationSettings::SetLocationStatus(true, false); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, true); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
} |
#endif |
@@ -506,9 +515,9 @@ TEST_F(GeolocationPermissionContextTests, QueuedPermission) { |
// Request permission for two frames. |
RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame_0); |
+ web_contents(), RequestID(0), requesting_frame_0, true); |
RequestGeolocationPermission( |
- web_contents(), RequestID(1), requesting_frame_1); |
+ web_contents(), RequestID(1), requesting_frame_1, true); |
// Ensure only one infobar is created. |
ASSERT_EQ(1U, GetNumberOfPrompts()); |
base::string16 text_0 = GetPromptText(); |
@@ -564,7 +573,13 @@ TEST_F(GeolocationPermissionContextTests, HashIsIgnored) { |
// Check permission is requested. |
ASSERT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), url_a); |
+#if BUILDFLAG(ANDROID_JAVA_UI) |
+ const bool user_gesture = false; |
+#else |
+ const bool user_gesture = true; |
+#endif |
+ RequestGeolocationPermission(web_contents(), RequestID(0), url_a, |
+ user_gesture); |
ASSERT_EQ(1U, GetNumberOfPrompts()); |
// Change the hash, we'll still be on the same page. |
@@ -600,7 +615,8 @@ TEST_F(GeolocationPermissionContextTests, MAYBE_PermissionForFileScheme) { |
// Check permission is requested. |
ASSERT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, true); |
EXPECT_EQ(1U, GetNumberOfPrompts()); |
// Accept the frame. |
@@ -628,8 +644,10 @@ TEST_F(GeolocationPermissionContextTests, CancelGeolocationPermissionRequest) { |
ASSERT_EQ(0U, GetNumberOfPrompts()); |
// Request permission for two frames. |
- RequestGeolocationPermission(web_contents(), RequestID(0), frame_0); |
- RequestGeolocationPermission(web_contents(), RequestID(1), frame_1); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), frame_0, true); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(1), frame_1, true); |
// Get the first permission request text. |
ASSERT_EQ(1U, GetNumberOfPrompts()); |
@@ -671,7 +689,8 @@ TEST_F(GeolocationPermissionContextTests, InvalidURL) { |
// Nothing should be displayed. |
EXPECT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, true); |
EXPECT_EQ(0U, GetNumberOfPrompts()); |
CheckPermissionMessageSent(0, false); |
} |
@@ -695,11 +714,12 @@ TEST_F(GeolocationPermissionContextTests, SameOriginMultipleTabs) { |
#endif |
// Request permission in all three tabs. |
- RequestGeolocationPermission(web_contents(), RequestID(0), url_a); |
RequestGeolocationPermission( |
- extra_tabs_[0].get(), RequestIDForTab(0, 0), url_b); |
+ web_contents(), RequestID(0), url_a, true); |
RequestGeolocationPermission( |
- extra_tabs_[1].get(), RequestIDForTab(1, 0), url_a); |
+ extra_tabs_[0].get(), RequestIDForTab(0, 0), url_b, true); |
+ RequestGeolocationPermission( |
+ extra_tabs_[1].get(), RequestIDForTab(1, 0), url_a, true); |
ASSERT_EQ(1U, GetNumberOfPrompts()); // For A0. |
#if !BUILDFLAG(ANDROID_JAVA_UI) |
ASSERT_EQ(1U, GetBubblesQueueSize(manager_b)); |
@@ -752,11 +772,12 @@ TEST_F(GeolocationPermissionContextTests, QueuedOriginMultipleTabs) { |
// Request permission in both tabs; the extra tab will have two permission |
// requests from two origins. |
- RequestGeolocationPermission(web_contents(), RequestID(0), url_a); |
RequestGeolocationPermission( |
- extra_tabs_[0].get(), RequestIDForTab(0, 0), url_a); |
+ web_contents(), RequestID(0), url_a, true); |
+ RequestGeolocationPermission( |
+ extra_tabs_[0].get(), RequestIDForTab(0, 0), url_a, true); |
RequestGeolocationPermission( |
- extra_tabs_[0].get(), RequestIDForTab(0, 1), url_b); |
+ extra_tabs_[0].get(), RequestIDForTab(0, 1), url_b, true); |
#if !BUILDFLAG(ANDROID_JAVA_UI) |
ASSERT_EQ(1U, GetBubblesQueueSize(manager_a0)); |
ASSERT_EQ(1U, GetBubblesQueueSize(manager_a1)); |
@@ -825,9 +846,9 @@ TEST_F(GeolocationPermissionContextTests, TabDestroyed) { |
// Request permission for two frames. |
RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame_0); |
+ web_contents(), RequestID(0), requesting_frame_0, false); |
RequestGeolocationPermission( |
- web_contents(), RequestID(1), requesting_frame_1); |
+ web_contents(), RequestID(1), requesting_frame_1, false); |
// Ensure only one prompt is created. |
ASSERT_EQ(1U, GetNumberOfPrompts()); |
@@ -868,7 +889,8 @@ TEST_F(GeolocationPermissionContextTests, LastUsageAudited) { |
CONTENT_SETTINGS_TYPE_GEOLOCATION).ToDoubleT(), |
0); |
ASSERT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, false); |
ASSERT_EQ(1U, GetNumberOfPrompts()); |
AcceptPrompt(); |
@@ -882,7 +904,8 @@ TEST_F(GeolocationPermissionContextTests, LastUsageAudited) { |
10); |
test_clock->Advance(base::TimeDelta::FromSeconds(3)); |
- RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(0), requesting_frame, false); |
// Permission has been used three seconds later. |
EXPECT_EQ(map->GetLastUsage(requesting_frame.GetOrigin(), |
@@ -920,9 +943,9 @@ TEST_F(GeolocationPermissionContextTests, LastUsageAuditedMultipleFrames) { |
// Request permission for two frames. |
RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame_0); |
+ web_contents(), RequestID(0), requesting_frame_0, false); |
RequestGeolocationPermission( |
- web_contents(), RequestID(1), requesting_frame_1); |
+ web_contents(), RequestID(1), requesting_frame_1, false); |
// Ensure only one infobar is created. |
ASSERT_EQ(1U, GetNumberOfPrompts()); |
@@ -970,7 +993,7 @@ TEST_F(GeolocationPermissionContextTests, LastUsageAuditedMultipleFrames) { |
test_clock->Advance(base::TimeDelta::FromSeconds(2)); |
RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame_0); |
+ web_contents(), RequestID(0), requesting_frame_0, false); |
// Verify that requesting permission in one frame doesn't update other where |
// it is the embedder. |