OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 std::string name; | 191 std::string name; |
192 bool incognito_split_mode; | 192 bool incognito_split_mode; |
193 bool incognito_enabled; | 193 bool incognito_enabled; |
194 | 194 |
195 // Expected results. | 195 // Expected results. |
196 bool should_allow_main_frame_load; | 196 bool should_allow_main_frame_load; |
197 bool should_allow_sub_frame_load; | 197 bool should_allow_sub_frame_load; |
198 } cases[] = { | 198 } cases[] = { |
199 {"spanning disabled", false, false, false, false}, | 199 {"spanning disabled", false, false, false, false}, |
200 {"split disabled", true, false, false, false}, | 200 {"split disabled", true, false, false, false}, |
201 {"spanning enabled", false, true, false, true}, | 201 {"spanning enabled", false, true, false, false}, |
202 {"split enabled", true, true, true, true}, | 202 {"split enabled", true, true, true, false}, |
203 }; | 203 }; |
204 | 204 |
205 for (size_t i = 0; i < arraysize(cases); ++i) { | 205 for (size_t i = 0; i < arraysize(cases); ++i) { |
206 scoped_refptr<Extension> extension = | 206 scoped_refptr<Extension> extension = |
207 CreateTestExtension(cases[i].name, cases[i].incognito_split_mode); | 207 CreateTestExtension(cases[i].name, cases[i].incognito_split_mode); |
208 extension_info_map_->AddExtension( | 208 extension_info_map_->AddExtension( |
209 extension.get(), base::Time::Now(), cases[i].incognito_enabled, false); | 209 extension.get(), base::Time::Now(), cases[i].incognito_enabled, false); |
210 | 210 |
211 // First test a main frame request. | 211 // First test a main frame request. |
212 { | 212 { |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 TEST_F(ExtensionProtocolTest, AllowFrameRequests) { | 339 TEST_F(ExtensionProtocolTest, AllowFrameRequests) { |
340 // Register a non-incognito extension protocol handler. | 340 // Register a non-incognito extension protocol handler. |
341 SetProtocolHandler(false); | 341 SetProtocolHandler(false); |
342 | 342 |
343 scoped_refptr<Extension> extension = CreateTestExtension("foo", false); | 343 scoped_refptr<Extension> extension = CreateTestExtension("foo", false); |
344 extension_info_map_->AddExtension(extension.get(), | 344 extension_info_map_->AddExtension(extension.get(), |
345 base::Time::Now(), | 345 base::Time::Now(), |
346 false, | 346 false, |
347 false); | 347 false); |
348 | 348 |
349 // All MAIN_FRAME and SUB_FRAME requests should succeed. | 349 // All MAIN_FRAME requests should succeed. SUB_FRAME requests that are not |
| 350 // explicitly listed in web_accesible_resources or same-origin to the parent |
| 351 // should not succeed. |
350 { | 352 { |
351 std::unique_ptr<net::URLRequest> request( | 353 std::unique_ptr<net::URLRequest> request( |
352 resource_context_.GetRequestContext()->CreateRequest( | 354 resource_context_.GetRequestContext()->CreateRequest( |
353 extension->GetResourceURL("test.dat"), net::DEFAULT_PRIORITY, | 355 extension->GetResourceURL("test.dat"), net::DEFAULT_PRIORITY, |
354 &test_delegate_)); | 356 &test_delegate_)); |
355 StartRequest(request.get(), content::RESOURCE_TYPE_MAIN_FRAME); | 357 StartRequest(request.get(), content::RESOURCE_TYPE_MAIN_FRAME); |
356 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status()); | 358 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status()); |
357 } | 359 } |
358 { | 360 { |
359 std::unique_ptr<net::URLRequest> request( | 361 std::unique_ptr<net::URLRequest> request( |
360 resource_context_.GetRequestContext()->CreateRequest( | 362 resource_context_.GetRequestContext()->CreateRequest( |
361 extension->GetResourceURL("test.dat"), net::DEFAULT_PRIORITY, | 363 extension->GetResourceURL("test.dat"), net::DEFAULT_PRIORITY, |
362 &test_delegate_)); | 364 &test_delegate_)); |
363 StartRequest(request.get(), content::RESOURCE_TYPE_SUB_FRAME); | 365 StartRequest(request.get(), content::RESOURCE_TYPE_SUB_FRAME); |
364 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status()); | 366 EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status()); |
365 } | 367 } |
366 | 368 |
367 // And subresource types, such as media, should fail. | 369 // And subresource types, such as media, should fail. |
368 { | 370 { |
369 std::unique_ptr<net::URLRequest> request( | 371 std::unique_ptr<net::URLRequest> request( |
370 resource_context_.GetRequestContext()->CreateRequest( | 372 resource_context_.GetRequestContext()->CreateRequest( |
371 extension->GetResourceURL("test.dat"), net::DEFAULT_PRIORITY, | 373 extension->GetResourceURL("test.dat"), net::DEFAULT_PRIORITY, |
372 &test_delegate_)); | 374 &test_delegate_)); |
373 StartRequest(request.get(), content::RESOURCE_TYPE_MEDIA); | 375 StartRequest(request.get(), content::RESOURCE_TYPE_MEDIA); |
374 EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status()); | 376 EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status()); |
(...skipping 22 matching lines...) Expand all Loading... |
397 DoRequest(*extension, relative_path.AsUTF8Unsafe())); | 399 DoRequest(*extension, relative_path.AsUTF8Unsafe())); |
398 | 400 |
399 // Loading "/_metadata/a.txt" should also fail. | 401 // Loading "/_metadata/a.txt" should also fail. |
400 relative_path = base::FilePath(kMetadataFolder).AppendASCII("a.txt"); | 402 relative_path = base::FilePath(kMetadataFolder).AppendASCII("a.txt"); |
401 EXPECT_TRUE(base::PathExists(extension_dir.Append(relative_path))); | 403 EXPECT_TRUE(base::PathExists(extension_dir.Append(relative_path))); |
402 EXPECT_EQ(net::URLRequestStatus::FAILED, | 404 EXPECT_EQ(net::URLRequestStatus::FAILED, |
403 DoRequest(*extension, relative_path.AsUTF8Unsafe())); | 405 DoRequest(*extension, relative_path.AsUTF8Unsafe())); |
404 } | 406 } |
405 | 407 |
406 } // namespace extensions | 408 } // namespace extensions |
OLD | NEW |