| 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(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 } |
| OLD | NEW |