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

Side by Side Diff: chrome/browser/extensions/api/web_request/web_request_permissions_unittest.cc

Issue 2934583002: Reland: chrome.webRequest support for ExtensionSettings (Closed)
Patch Set: Fix flaky test ExtensionApiTestWithManagementPolicy.InitiatorProtectedByPolicy Created 3 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 extension_info_map_.get(), sensitive_request.get(), nullptr)); 174 extension_info_map_.get(), sensitive_request.get(), nullptr));
175 } 175 }
176 } 176 }
177 177
178 TEST_F(ExtensionWebRequestHelpersTestWithThreadsTest, 178 TEST_F(ExtensionWebRequestHelpersTestWithThreadsTest,
179 TestCanExtensionAccessURL_HostPermissions) { 179 TestCanExtensionAccessURL_HostPermissions) {
180 std::unique_ptr<net::URLRequest> request( 180 std::unique_ptr<net::URLRequest> request(
181 context.CreateRequest(GURL("http://example.com"), net::DEFAULT_PRIORITY, 181 context.CreateRequest(GURL("http://example.com"), net::DEFAULT_PRIORITY,
182 NULL, TRAFFIC_ANNOTATION_FOR_TESTS)); 182 NULL, TRAFFIC_ANNOTATION_FOR_TESTS));
183 183
184 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, 184 EXPECT_EQ(
185 WebRequestPermissions::CanExtensionAccessURL( 185 PermissionsData::ACCESS_ALLOWED,
186 extension_info_map_.get(), permissionless_extension_->id(), 186 WebRequestPermissions::CanExtensionAccessURL(
187 request->url(), 187 extension_info_map_.get(), permissionless_extension_->id(),
188 -1, // No tab id. 188 request->url(),
189 false, // crosses_incognito 189 -1, // No tab id.
190 WebRequestPermissions::DO_NOT_CHECK_HOST)); 190 false, // crosses_incognito
191 WebRequestPermissions::DO_NOT_CHECK_HOST, request->initiator()));
191 EXPECT_EQ(PermissionsData::ACCESS_DENIED, 192 EXPECT_EQ(PermissionsData::ACCESS_DENIED,
192 WebRequestPermissions::CanExtensionAccessURL( 193 WebRequestPermissions::CanExtensionAccessURL(
193 extension_info_map_.get(), permissionless_extension_->id(), 194 extension_info_map_.get(), permissionless_extension_->id(),
194 request->url(), 195 request->url(),
195 -1, // No tab id. 196 -1, // No tab id.
196 false, // crosses_incognito 197 false, // crosses_incognito
197 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); 198 WebRequestPermissions::REQUIRE_HOST_PERMISSION,
199 request->initiator()));
198 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, 200 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED,
199 WebRequestPermissions::CanExtensionAccessURL( 201 WebRequestPermissions::CanExtensionAccessURL(
200 extension_info_map_.get(), com_extension_->id(), request->url(), 202 extension_info_map_.get(), com_extension_->id(), request->url(),
201 -1, // No tab id. 203 -1, // No tab id.
202 false, // crosses_incognito 204 false, // crosses_incognito
203 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); 205 WebRequestPermissions::REQUIRE_HOST_PERMISSION,
206 request->initiator()));
204 EXPECT_EQ(PermissionsData::ACCESS_DENIED, 207 EXPECT_EQ(PermissionsData::ACCESS_DENIED,
205 WebRequestPermissions::CanExtensionAccessURL( 208 WebRequestPermissions::CanExtensionAccessURL(
206 extension_info_map_.get(), com_extension_->id(), request->url(), 209 extension_info_map_.get(), com_extension_->id(), request->url(),
207 -1, // No tab id. 210 -1, // No tab id.
208 false, // crosses_incognito 211 false, // crosses_incognito
209 WebRequestPermissions::REQUIRE_ALL_URLS)); 212 WebRequestPermissions::REQUIRE_ALL_URLS, request->initiator()));
210 213
211 // Public Sessions tests. 214 // Public Sessions tests.
212 #if defined(OS_CHROMEOS) 215 #if defined(OS_CHROMEOS)
213 std::unique_ptr<net::URLRequest> org_request(context.CreateRequest( 216 std::unique_ptr<net::URLRequest> org_request(context.CreateRequest(
214 GURL("http://example.org"), net::DEFAULT_PRIORITY, nullptr)); 217 GURL("http://example.org"), net::DEFAULT_PRIORITY, nullptr));
215 218
216 // com_extension_ doesn't have host permission for .org URLs. 219 // com_extension_ doesn't have host permission for .org URLs.
217 EXPECT_EQ(PermissionsData::ACCESS_DENIED, 220 EXPECT_EQ(PermissionsData::ACCESS_DENIED,
218 WebRequestPermissions::CanExtensionAccessURL( 221 WebRequestPermissions::CanExtensionAccessURL(
219 extension_info_map_.get(), com_policy_extension_->id(), 222 extension_info_map_.get(), com_policy_extension_->id(),
220 org_request->url(), 223 org_request->url(),
221 -1, // No tab id. 224 -1, // No tab id.
222 false, // crosses_incognito 225 false, // crosses_incognito
223 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); 226 WebRequestPermissions::REQUIRE_HOST_PERMISSION,
227 org_request->initiator()));
224 228
225 chromeos::ScopedTestPublicSessionLoginState login_state; 229 chromeos::ScopedTestPublicSessionLoginState login_state;
226 230
227 // Host permission checks are disabled in Public Sessions, instead all URLs 231 // Host permission checks are disabled in Public Sessions, instead all URLs
228 // are whitelisted. 232 // are whitelisted.
229 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, 233 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED,
230 WebRequestPermissions::CanExtensionAccessURL( 234 WebRequestPermissions::CanExtensionAccessURL(
231 extension_info_map_.get(), com_policy_extension_->id(), 235 extension_info_map_.get(), com_policy_extension_->id(),
232 org_request->url(), 236 org_request->url(),
233 -1, // No tab id. 237 -1, // No tab id.
234 false, // crosses_incognito 238 false, // crosses_incognito
235 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); 239 WebRequestPermissions::REQUIRE_HOST_PERMISSION,
240 org_request->initiator()));
236 241
237 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, 242 EXPECT_EQ(
238 WebRequestPermissions::CanExtensionAccessURL( 243 PermissionsData::ACCESS_ALLOWED,
239 extension_info_map_.get(), com_policy_extension_->id(), 244 WebRequestPermissions::CanExtensionAccessURL(
240 org_request->url(), 245 extension_info_map_.get(), com_policy_extension_->id(),
241 -1, // No tab id. 246 org_request->url(),
242 false, // crosses_incognito 247 -1, // No tab id.
243 WebRequestPermissions::REQUIRE_ALL_URLS)); 248 false, // crosses_incognito
249 WebRequestPermissions::REQUIRE_ALL_URLS, org_request->initiator()));
244 250
245 // Make sure that chrome:// URLs cannot be accessed. 251 // Make sure that chrome:// URLs cannot be accessed.
246 std::unique_ptr<net::URLRequest> chrome_request( 252 std::unique_ptr<net::URLRequest> chrome_request(
247 context.CreateRequest(GURL("chrome://version/"), net::DEFAULT_PRIORITY, 253 context.CreateRequest(GURL("chrome://version/"), net::DEFAULT_PRIORITY,
248 nullptr, TRAFFIC_ANNOTATION_FOR_TESTS)); 254 nullptr, TRAFFIC_ANNOTATION_FOR_TESTS));
249 255
250 EXPECT_EQ(PermissionsData::ACCESS_DENIED, 256 EXPECT_EQ(PermissionsData::ACCESS_DENIED,
251 WebRequestPermissions::CanExtensionAccessURL( 257 WebRequestPermissions::CanExtensionAccessURL(
252 extension_info_map_.get(), com_policy_extension_->id(), 258 extension_info_map_.get(), com_policy_extension_->id(),
253 chrome_request->url(), 259 chrome_request->url(),
254 -1, // No tab id. 260 -1, // No tab id.
255 false, // crosses_incognito 261 false, // crosses_incognito
256 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); 262 WebRequestPermissions::REQUIRE_HOST_PERMISSION,
263 chrome_request->initiator()));
257 #endif 264 #endif
258 } 265 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698