Index: chrome/browser/extensions/extension_resource_request_policy_apitest.cc |
diff --git a/chrome/browser/extensions/extension_resource_request_policy_apitest.cc b/chrome/browser/extensions/extension_resource_request_policy_apitest.cc |
index d9b371d275bcafb00bbded9593155dbebdb12955..5adf12a2826f65b113644515098210a000661123 100644 |
--- a/chrome/browser/extensions/extension_resource_request_policy_apitest.cc |
+++ b/chrome/browser/extensions/extension_resource_request_policy_apitest.cc |
@@ -36,6 +36,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, OriginPrivileges) { |
GURL::Replacements make_host_b_com; |
make_host_b_com.SetHostStr(host_b); |
+ std::string host_c("c.com"); |
+ GURL::Replacements make_host_c_com; |
+ make_host_c_com.SetHostStr(host_c); |
+ |
// A web host that has permission. |
ui_test_utils::NavigateToURL( |
browser(), web_resource.ReplaceComponents(make_host_a_com)); |
@@ -55,6 +59,27 @@ IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, OriginPrivileges) { |
&result)); |
EXPECT_EQ(result, "Image failed to load"); |
+ // A web host that has permissions only through content scripts. |
+ ui_test_utils::NavigateToURL( |
+ browser(), web_resource.ReplaceComponents(make_host_c_com)); |
+ ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString( |
+ browser()->GetSelectedTabContents()->render_view_host(), L"", |
+ L"window.domAutomationController.send(document.title)", |
+ &result)); |
+ EXPECT_EQ(result, "Loaded"); |
+ |
+ // A web host asking for an unknown extension. |
+ GURL unknown_extension_test( |
+ test_server()->GetURL( |
+ "files/extensions/api_test/extension_resource_request_policy/" |
+ "unknown_extension.html")); |
+ ui_test_utils::NavigateToURL(browser(), unknown_extension_test); |
+ ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString( |
+ browser()->GetSelectedTabContents()->render_view_host(), L"", |
+ L"window.domAutomationController.send(document.title)", |
+ &result)); |
+ EXPECT_EQ(result, "Image failed to load"); |
+ |
// A data URL. Data URLs should always be able to load chrome-extension:// |
// resources. |
std::string file_source; |
@@ -106,3 +131,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, Video) { |
"extension_resource_request_policy/extension2", |
"video.html")); |
} |
+ |
+IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, AboutBlankIframe) { |
+ EXPECT_TRUE(RunExtensionSubtest( |
+ "extension_resource_request_policy/extension2", |
+ "about_blank_iframe.html")); |
+} |