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 |