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

Side by Side Diff: chrome/browser/content_settings/permission_context_base_unittest.cc

Issue 1158813002: Use RenderFrameHost for ::RequestPermission() and ::CancelPermission(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: build fixes Created 5 years, 6 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
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 "chrome/browser/content_settings/permission_context_base.h" 5 #include "chrome/browser/content_settings/permission_context_base.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "chrome/browser/content_settings/permission_queue_controller.h" 9 #include "chrome/browser/content_settings/permission_queue_controller.h"
10 #include "chrome/browser/infobars/infobar_service.h" 10 #include "chrome/browser/infobars/infobar_service.h"
11 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" 11 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
12 #include "chrome/common/chrome_switches.h" 12 #include "chrome/common/chrome_switches.h"
13 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 13 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
14 #include "chrome/test/base/testing_profile.h" 14 #include "chrome/test/base/testing_profile.h"
15 #include "components/content_settings/core/browser/host_content_settings_map.h" 15 #include "components/content_settings/core/browser/host_content_settings_map.h"
16 #include "components/content_settings/core/common/content_settings.h" 16 #include "components/content_settings/core/common/content_settings.h"
17 #include "components/content_settings/core/common/content_settings_types.h" 17 #include "components/content_settings/core/common/content_settings_types.h"
18 #include "components/content_settings/core/common/permission_request_id.h" 18 #include "components/content_settings/core/common/permission_request_id.h"
19 #include "content/public/browser/render_frame_host.h"
19 #include "content/public/browser/web_contents.h" 20 #include "content/public/browser/web_contents.h"
20 #include "content/public/test/mock_render_process_host.h" 21 #include "content/public/test/mock_render_process_host.h"
21 #include "content/public/test/web_contents_tester.h" 22 #include "content/public/test/web_contents_tester.h"
22 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
23 24
24 class TestPermissionContext : public PermissionContextBase { 25 class TestPermissionContext : public PermissionContextBase {
25 public: 26 public:
26 TestPermissionContext(Profile* profile, 27 TestPermissionContext(Profile* profile,
27 const ContentSettingsType permission_type) 28 const ContentSettingsType permission_type)
28 : PermissionContextBase(profile, permission_type), 29 : PermissionContextBase(profile, permission_type),
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 } 102 }
102 103
103 void TestAskAndGrant_TestContent() { 104 void TestAskAndGrant_TestContent() {
104 TestPermissionContext permission_context( 105 TestPermissionContext permission_context(
105 profile(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 106 profile(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
106 GURL url("http://www.google.com"); 107 GURL url("http://www.google.com");
107 content::WebContentsTester::For(web_contents())->NavigateAndCommit(url); 108 content::WebContentsTester::For(web_contents())->NavigateAndCommit(url);
108 109
109 const PermissionRequestID id( 110 const PermissionRequestID id(
110 web_contents()->GetRenderProcessHost()->GetID(), 111 web_contents()->GetRenderProcessHost()->GetID(),
111 web_contents()->GetRenderViewHost()->GetRoutingID(), 112 web_contents()->GetMainFrame()->GetRoutingID(),
112 -1, GURL()); 113 -1, GURL());
113 permission_context.RequestPermission( 114 permission_context.RequestPermission(
114 web_contents(), 115 web_contents(),
115 id, url, true, 116 id, url, true,
116 base::Bind(&TestPermissionContext::TrackPermissionDecision, 117 base::Bind(&TestPermissionContext::TrackPermissionDecision,
117 base::Unretained(&permission_context))); 118 base::Unretained(&permission_context)));
118 119
119 RespondToPermission(&permission_context, id, url, true); 120 RespondToPermission(&permission_context, id, url, true);
120 EXPECT_TRUE(permission_context.permission_set()); 121 EXPECT_TRUE(permission_context.permission_set());
121 EXPECT_TRUE(permission_context.permission_granted()); 122 EXPECT_TRUE(permission_context.permission_granted());
122 EXPECT_TRUE(permission_context.tab_context_updated()); 123 EXPECT_TRUE(permission_context.tab_context_updated());
123 124
124 ContentSetting setting = 125 ContentSetting setting =
125 profile()->GetHostContentSettingsMap()->GetContentSetting( 126 profile()->GetHostContentSettingsMap()->GetContentSetting(
126 url.GetOrigin(), url.GetOrigin(), 127 url.GetOrigin(), url.GetOrigin(),
127 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()); 128 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string());
128 EXPECT_EQ(CONTENT_SETTING_ALLOW, setting); 129 EXPECT_EQ(CONTENT_SETTING_ALLOW, setting);
129 } 130 }
130 131
131 void TestAskAndDismiss_TestContent() { 132 void TestAskAndDismiss_TestContent() {
132 TestPermissionContext permission_context( 133 TestPermissionContext permission_context(
133 profile(), CONTENT_SETTINGS_TYPE_MIDI_SYSEX); 134 profile(), CONTENT_SETTINGS_TYPE_MIDI_SYSEX);
134 GURL url("http://www.google.es"); 135 GURL url("http://www.google.es");
135 content::WebContentsTester::For(web_contents())->NavigateAndCommit(url); 136 content::WebContentsTester::For(web_contents())->NavigateAndCommit(url);
136 137
137 const PermissionRequestID id( 138 const PermissionRequestID id(
138 web_contents()->GetRenderProcessHost()->GetID(), 139 web_contents()->GetRenderProcessHost()->GetID(),
139 web_contents()->GetRenderViewHost()->GetRoutingID(), 140 web_contents()->GetMainFrame()->GetRoutingID(),
140 -1, GURL()); 141 -1, GURL());
141 permission_context.RequestPermission( 142 permission_context.RequestPermission(
142 web_contents(), 143 web_contents(),
143 id, url, true, 144 id, url, true,
144 base::Bind(&TestPermissionContext::TrackPermissionDecision, 145 base::Bind(&TestPermissionContext::TrackPermissionDecision,
145 base::Unretained(&permission_context))); 146 base::Unretained(&permission_context)));
146 147
147 RespondToPermission(&permission_context, id, url, false); 148 RespondToPermission(&permission_context, id, url, false);
148 EXPECT_TRUE(permission_context.permission_set()); 149 EXPECT_TRUE(permission_context.permission_set());
149 EXPECT_FALSE(permission_context.permission_granted()); 150 EXPECT_FALSE(permission_context.permission_granted());
150 EXPECT_TRUE(permission_context.tab_context_updated()); 151 EXPECT_TRUE(permission_context.tab_context_updated());
151 152
152 ContentSetting setting = 153 ContentSetting setting =
153 profile()->GetHostContentSettingsMap()->GetContentSetting( 154 profile()->GetHostContentSettingsMap()->GetContentSetting(
154 url.GetOrigin(), url.GetOrigin(), 155 url.GetOrigin(), url.GetOrigin(),
155 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, std::string()); 156 CONTENT_SETTINGS_TYPE_MIDI_SYSEX, std::string());
156 EXPECT_EQ(CONTENT_SETTING_ASK, setting); 157 EXPECT_EQ(CONTENT_SETTING_ASK, setting);
157 } 158 }
158 159
159 void TestRequestPermissionInvalidUrl(ContentSettingsType type) { 160 void TestRequestPermissionInvalidUrl(ContentSettingsType type) {
160 TestPermissionContext permission_context(profile(), type); 161 TestPermissionContext permission_context(profile(), type);
161 GURL url; 162 GURL url;
162 ASSERT_FALSE(url.is_valid()); 163 ASSERT_FALSE(url.is_valid());
163 content::WebContentsTester::For(web_contents())->NavigateAndCommit(url); 164 content::WebContentsTester::For(web_contents())->NavigateAndCommit(url);
164 165
165 const PermissionRequestID id( 166 const PermissionRequestID id(
166 web_contents()->GetRenderProcessHost()->GetID(), 167 web_contents()->GetRenderProcessHost()->GetID(),
167 web_contents()->GetRenderViewHost()->GetRoutingID(), 168 web_contents()->GetMainFrame()->GetRoutingID(),
168 -1, GURL()); 169 -1, GURL());
169 permission_context.RequestPermission( 170 permission_context.RequestPermission(
170 web_contents(), 171 web_contents(),
171 id, url, true, 172 id, url, true,
172 base::Bind(&TestPermissionContext::TrackPermissionDecision, 173 base::Bind(&TestPermissionContext::TrackPermissionDecision,
173 base::Unretained(&permission_context))); 174 base::Unretained(&permission_context)));
174 175
175 EXPECT_TRUE(permission_context.permission_set()); 176 EXPECT_TRUE(permission_context.permission_set());
176 EXPECT_FALSE(permission_context.permission_granted()); 177 EXPECT_FALSE(permission_context.permission_granted());
177 EXPECT_TRUE(permission_context.tab_context_updated()); 178 EXPECT_TRUE(permission_context.tab_context_updated());
178 179
179 ContentSetting setting = 180 ContentSetting setting =
180 profile()->GetHostContentSettingsMap()->GetContentSetting( 181 profile()->GetHostContentSettingsMap()->GetContentSetting(
181 url.GetOrigin(), url.GetOrigin(), type, std::string()); 182 url.GetOrigin(), url.GetOrigin(), type, std::string());
182 EXPECT_EQ(CONTENT_SETTING_ASK, setting); 183 EXPECT_EQ(CONTENT_SETTING_ASK, setting);
183 } 184 }
184 185
185 void TestGrantAndRevoke_TestContent(ContentSettingsType type, 186 void TestGrantAndRevoke_TestContent(ContentSettingsType type,
186 ContentSetting expected_default) { 187 ContentSetting expected_default) {
187 TestPermissionContext permission_context(profile(), type); 188 TestPermissionContext permission_context(profile(), type);
188 GURL url("https://www.google.com"); 189 GURL url("https://www.google.com");
189 content::WebContentsTester::For(web_contents())->NavigateAndCommit(url); 190 content::WebContentsTester::For(web_contents())->NavigateAndCommit(url);
190 191
191 const PermissionRequestID id( 192 const PermissionRequestID id(
192 web_contents()->GetRenderProcessHost()->GetID(), 193 web_contents()->GetRenderProcessHost()->GetID(),
193 web_contents()->GetRenderViewHost()->GetRoutingID(), 194 web_contents()->GetMainFrame()->GetRoutingID(),
194 -1, GURL()); 195 -1, GURL());
195 permission_context.RequestPermission( 196 permission_context.RequestPermission(
196 web_contents(), 197 web_contents(),
197 id, url, true, 198 id, url, true,
198 base::Bind(&TestPermissionContext::TrackPermissionDecision, 199 base::Bind(&TestPermissionContext::TrackPermissionDecision,
199 base::Unretained(&permission_context))); 200 base::Unretained(&permission_context)));
200 201
201 RespondToPermission(&permission_context, id, url, true); 202 RespondToPermission(&permission_context, id, url, true);
202 EXPECT_TRUE(permission_context.permission_set()); 203 EXPECT_TRUE(permission_context.permission_set());
203 EXPECT_TRUE(permission_context.permission_granted()); 204 EXPECT_TRUE(permission_context.permission_granted());
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 #endif 290 #endif
290 TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, 291 TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_MIDI_SYSEX,
291 CONTENT_SETTING_ASK); 292 CONTENT_SETTING_ASK);
292 TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, 293 TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING,
293 CONTENT_SETTING_ASK); 294 CONTENT_SETTING_ASK);
294 #if defined(OS_ANDROID) 295 #if defined(OS_ANDROID)
295 TestGrantAndRevoke_TestContent( 296 TestGrantAndRevoke_TestContent(
296 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTING_ASK); 297 CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTING_ASK);
297 #endif 298 #endif
298 } 299 }
OLDNEW
« no previous file with comments | « android_webview/native/aw_contents.cc ('k') | chrome/browser/content_settings/permission_queue_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698