| Index: chrome/browser/extensions/extension_protocols_unittest.cc
|
| diff --git a/chrome/browser/extensions/extension_protocols_unittest.cc b/chrome/browser/extensions/extension_protocols_unittest.cc
|
| index e323cd5d2f9d26f2568abc8eb9aef89ecb4da0ed..2603f0540411d471e22baf7084d542ad395d691d 100644
|
| --- a/chrome/browser/extensions/extension_protocols_unittest.cc
|
| +++ b/chrome/browser/extensions/extension_protocols_unittest.cc
|
| @@ -31,10 +31,12 @@ scoped_refptr<Extension> CreateTestExtension(const std::string& name,
|
| DictionaryValue manifest;
|
| manifest.SetString("name", name);
|
| manifest.SetString("version", "1");
|
| + manifest.SetInteger("manifest_version", 2);
|
| manifest.SetString("incognito", incognito_split_mode ? "split" : "spanning");
|
|
|
| base::FilePath path;
|
| - EXPECT_TRUE(file_util::GetCurrentDirectory(&path));
|
| + EXPECT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &path));
|
| + path = path.AppendASCII("extensions").AppendASCII("response_headers");
|
|
|
| std::string error;
|
| scoped_refptr<Extension> extension(
|
| @@ -279,4 +281,39 @@ TEST_F(ExtensionProtocolTest, ResourceRequestResponseHeaders) {
|
| }
|
| }
|
|
|
| +// Tests that a URL request for main frame or subframe from an extension
|
| +// succeeds, but subresources fail. See http://crbug.com/312269.
|
| +TEST_F(ExtensionProtocolTest, AllowFrameRequests) {
|
| + // Register a non-incognito extension protocol handler.
|
| + SetProtocolHandler(false);
|
| +
|
| + scoped_refptr<Extension> extension = CreateTestExtension("foo", false);
|
| + extension_info_map_->AddExtension(extension.get(), base::Time::Now(), false);
|
| +
|
| + // All MAIN_FRAME and SUB_FRAME requests should succeed.
|
| + {
|
| + net::URLRequest request(extension->GetResourceURL("test.dat"),
|
| + &test_delegate_,
|
| + resource_context_.GetRequestContext());
|
| + StartRequest(&request, ResourceType::MAIN_FRAME);
|
| + EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
|
| + }
|
| + {
|
| + net::URLRequest request(extension->GetResourceURL("test.dat"),
|
| + &test_delegate_,
|
| + resource_context_.GetRequestContext());
|
| + StartRequest(&request, ResourceType::SUB_FRAME);
|
| + EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
|
| + }
|
| +
|
| + // And subresource types, such as media, should fail.
|
| + {
|
| + net::URLRequest request(extension->GetResourceURL("test.dat"),
|
| + &test_delegate_,
|
| + resource_context_.GetRequestContext());
|
| + StartRequest(&request, ResourceType::MEDIA);
|
| + EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
|
| + }
|
| +}
|
| +
|
| } // namespace extensions
|
|
|