Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Side by Side Diff: chrome/browser/extensions/extension_protocols_unittest.cc

Issue 2007133004: Disallow navigation to documents not explicitly listed as web accessible. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix issues from code review. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_resource_request_policy_apitest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_resource_request_policy_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698