OLD | NEW |
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 Loading... |
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( | 184 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, |
185 PermissionsData::ACCESS_ALLOWED, | 185 WebRequestPermissions::CanExtensionAccessURL( |
186 WebRequestPermissions::CanExtensionAccessURL( | 186 extension_info_map_.get(), permissionless_extension_->id(), |
187 extension_info_map_.get(), permissionless_extension_->id(), | 187 request->url(), |
188 request->url(), | 188 -1, // No tab id. |
189 -1, // No tab id. | 189 false, // crosses_incognito |
190 false, // crosses_incognito | 190 WebRequestPermissions::DO_NOT_CHECK_HOST)); |
191 WebRequestPermissions::DO_NOT_CHECK_HOST, request->initiator())); | |
192 EXPECT_EQ(PermissionsData::ACCESS_DENIED, | 191 EXPECT_EQ(PermissionsData::ACCESS_DENIED, |
193 WebRequestPermissions::CanExtensionAccessURL( | 192 WebRequestPermissions::CanExtensionAccessURL( |
194 extension_info_map_.get(), permissionless_extension_->id(), | 193 extension_info_map_.get(), permissionless_extension_->id(), |
195 request->url(), | 194 request->url(), |
196 -1, // No tab id. | 195 -1, // No tab id. |
197 false, // crosses_incognito | 196 false, // crosses_incognito |
198 WebRequestPermissions::REQUIRE_HOST_PERMISSION, | 197 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); |
199 request->initiator())); | |
200 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, | 198 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, |
201 WebRequestPermissions::CanExtensionAccessURL( | 199 WebRequestPermissions::CanExtensionAccessURL( |
202 extension_info_map_.get(), com_extension_->id(), request->url(), | 200 extension_info_map_.get(), com_extension_->id(), request->url(), |
203 -1, // No tab id. | 201 -1, // No tab id. |
204 false, // crosses_incognito | 202 false, // crosses_incognito |
205 WebRequestPermissions::REQUIRE_HOST_PERMISSION, | 203 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); |
206 request->initiator())); | |
207 EXPECT_EQ(PermissionsData::ACCESS_DENIED, | 204 EXPECT_EQ(PermissionsData::ACCESS_DENIED, |
208 WebRequestPermissions::CanExtensionAccessURL( | 205 WebRequestPermissions::CanExtensionAccessURL( |
209 extension_info_map_.get(), com_extension_->id(), request->url(), | 206 extension_info_map_.get(), com_extension_->id(), request->url(), |
210 -1, // No tab id. | 207 -1, // No tab id. |
211 false, // crosses_incognito | 208 false, // crosses_incognito |
212 WebRequestPermissions::REQUIRE_ALL_URLS, request->initiator())); | 209 WebRequestPermissions::REQUIRE_ALL_URLS)); |
213 | 210 |
214 // Public Sessions tests. | 211 // Public Sessions tests. |
215 #if defined(OS_CHROMEOS) | 212 #if defined(OS_CHROMEOS) |
216 std::unique_ptr<net::URLRequest> org_request(context.CreateRequest( | 213 std::unique_ptr<net::URLRequest> org_request(context.CreateRequest( |
217 GURL("http://example.org"), net::DEFAULT_PRIORITY, nullptr)); | 214 GURL("http://example.org"), net::DEFAULT_PRIORITY, nullptr)); |
218 | 215 |
219 // com_extension_ doesn't have host permission for .org URLs. | 216 // com_extension_ doesn't have host permission for .org URLs. |
220 EXPECT_EQ(PermissionsData::ACCESS_DENIED, | 217 EXPECT_EQ(PermissionsData::ACCESS_DENIED, |
221 WebRequestPermissions::CanExtensionAccessURL( | 218 WebRequestPermissions::CanExtensionAccessURL( |
222 extension_info_map_.get(), com_policy_extension_->id(), | 219 extension_info_map_.get(), com_policy_extension_->id(), |
223 org_request->url(), | 220 org_request->url(), |
224 -1, // No tab id. | 221 -1, // No tab id. |
225 false, // crosses_incognito | 222 false, // crosses_incognito |
226 WebRequestPermissions::REQUIRE_HOST_PERMISSION, | 223 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); |
227 org_request->initiator())); | |
228 | 224 |
229 chromeos::ScopedTestPublicSessionLoginState login_state; | 225 chromeos::ScopedTestPublicSessionLoginState login_state; |
230 | 226 |
231 // Host permission checks are disabled in Public Sessions, instead all URLs | 227 // Host permission checks are disabled in Public Sessions, instead all URLs |
232 // are whitelisted. | 228 // are whitelisted. |
233 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, | 229 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, |
234 WebRequestPermissions::CanExtensionAccessURL( | 230 WebRequestPermissions::CanExtensionAccessURL( |
235 extension_info_map_.get(), com_policy_extension_->id(), | 231 extension_info_map_.get(), com_policy_extension_->id(), |
236 org_request->url(), | 232 org_request->url(), |
237 -1, // No tab id. | 233 -1, // No tab id. |
238 false, // crosses_incognito | 234 false, // crosses_incognito |
239 WebRequestPermissions::REQUIRE_HOST_PERMISSION, | 235 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); |
240 org_request->initiator())); | |
241 | 236 |
242 EXPECT_EQ( | 237 EXPECT_EQ(PermissionsData::ACCESS_ALLOWED, |
243 PermissionsData::ACCESS_ALLOWED, | 238 WebRequestPermissions::CanExtensionAccessURL( |
244 WebRequestPermissions::CanExtensionAccessURL( | 239 extension_info_map_.get(), com_policy_extension_->id(), |
245 extension_info_map_.get(), com_policy_extension_->id(), | 240 org_request->url(), |
246 org_request->url(), | 241 -1, // No tab id. |
247 -1, // No tab id. | 242 false, // crosses_incognito |
248 false, // crosses_incognito | 243 WebRequestPermissions::REQUIRE_ALL_URLS)); |
249 WebRequestPermissions::REQUIRE_ALL_URLS, org_request->initiator())); | |
250 | 244 |
251 // Make sure that chrome:// URLs cannot be accessed. | 245 // Make sure that chrome:// URLs cannot be accessed. |
252 std::unique_ptr<net::URLRequest> chrome_request( | 246 std::unique_ptr<net::URLRequest> chrome_request( |
253 context.CreateRequest(GURL("chrome://version/"), net::DEFAULT_PRIORITY, | 247 context.CreateRequest(GURL("chrome://version/"), net::DEFAULT_PRIORITY, |
254 nullptr, TRAFFIC_ANNOTATION_FOR_TESTS)); | 248 nullptr, TRAFFIC_ANNOTATION_FOR_TESTS)); |
255 | 249 |
256 EXPECT_EQ(PermissionsData::ACCESS_DENIED, | 250 EXPECT_EQ(PermissionsData::ACCESS_DENIED, |
257 WebRequestPermissions::CanExtensionAccessURL( | 251 WebRequestPermissions::CanExtensionAccessURL( |
258 extension_info_map_.get(), com_policy_extension_->id(), | 252 extension_info_map_.get(), com_policy_extension_->id(), |
259 chrome_request->url(), | 253 chrome_request->url(), |
260 -1, // No tab id. | 254 -1, // No tab id. |
261 false, // crosses_incognito | 255 false, // crosses_incognito |
262 WebRequestPermissions::REQUIRE_HOST_PERMISSION, | 256 WebRequestPermissions::REQUIRE_HOST_PERMISSION)); |
263 chrome_request->initiator())); | |
264 #endif | 257 #endif |
265 } | 258 } |
OLD | NEW |