| 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 |