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 "base/logging.h" | 5 #include "base/logging.h" |
6 #include "chrome/browser/extensions/extension_apitest.h" | 6 #include "chrome/browser/extensions/extension_apitest.h" |
7 #include "chrome/browser/ui/browser.h" | 7 #include "chrome/browser/ui/browser.h" |
8 #include "chrome/browser/ui/browser_tabstrip.h" | 8 #include "chrome/browser/ui/browser_tabstrip.h" |
9 #include "chrome/common/chrome_switches.h" | 9 #include "chrome/common/chrome_switches.h" |
10 #include "chrome/test/base/ui_test_utils.h" | 10 #include "chrome/test/base/ui_test_utils.h" |
11 #include "content/public/browser/web_contents.h" | 11 #include "content/public/browser/web_contents.h" |
12 #include "content/public/test/browser_test_utils.h" | 12 #include "content/public/test/browser_test_utils.h" |
13 #include "googleurl/src/gurl.h" | 13 #include "googleurl/src/gurl.h" |
14 #include "net/base/mock_host_resolver.h" | 14 #include "net/base/mock_host_resolver.h" |
15 | 15 |
16 class ExtensionResourceRequestPolicyTest : public ExtensionApiTest { | 16 class ExtensionResourceRequestPolicyTest : public ExtensionApiTest { |
17 protected: | 17 protected: |
18 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 18 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
19 ExtensionApiTest::SetUpCommandLine(command_line); | 19 ExtensionApiTest::SetUpCommandLine(command_line); |
20 command_line->AppendSwitch(switches::kAllowLegacyExtensionManifests); | 20 command_line->AppendSwitch(switches::kAllowLegacyExtensionManifests); |
21 } | 21 } |
22 }; | 22 }; |
23 | 23 |
24 // Note, this mostly tests the logic of chrome/renderer/extensions/ | 24 // Note, this mostly tests the logic of chrome/renderer/extensions/ |
25 // extension_resource_request_policy.*, but we have it as a browser test so that | 25 // extension_resource_request_policy.*, but we have it as a browser test so that |
26 // can make sure it works end-to-end. | 26 // can make sure it works end-to-end. |
27 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, OriginPrivileges) { | 27 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, OriginPrivileges) { |
28 host_resolver()->AddRule("*", "127.0.0.1"); | 28 host_resolver()->AddRule("*", "127.0.0.1"); |
29 ASSERT_TRUE(test_server()->Start()); | 29 ASSERT_TRUE(test_server()->Start()); |
30 ASSERT_TRUE(LoadExtension(test_data_dir_ | 30 ASSERT_TRUE(LoadExtensionWithFlags(test_data_dir_ |
31 .AppendASCII("extension_resource_request_policy") | 31 .AppendASCII("extension_resource_request_policy") |
32 .AppendASCII("extension"))); | 32 .AppendASCII("extension"), |
| 33 // Tests manifest_version 1 behavior, so warnings are expected. |
| 34 ExtensionBrowserTest::kFlagIgnoreManifestWarnings)); |
33 | 35 |
34 GURL web_resource( | 36 GURL web_resource( |
35 test_server()->GetURL( | 37 test_server()->GetURL( |
36 "files/extensions/api_test/extension_resource_request_policy/" | 38 "files/extensions/api_test/extension_resource_request_policy/" |
37 "index.html")); | 39 "index.html")); |
38 | 40 |
39 std::string host_a("a.com"); | 41 std::string host_a("a.com"); |
40 GURL::Replacements make_host_a_com; | 42 GURL::Replacements make_host_a_com; |
41 make_host_a_com.SetHostStr(host_a); | 43 make_host_a_com.SetHostStr(host_a); |
42 | 44 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 ui_test_utils::NavigateToURL(browser(), | 77 ui_test_utils::NavigateToURL(browser(), |
76 GURL(std::string("data:text/html;charset=utf-8,") + file_source)); | 78 GURL(std::string("data:text/html;charset=utf-8,") + file_source)); |
77 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( | 79 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( |
78 chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"", | 80 chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"", |
79 L"window.domAutomationController.send(document.title)", | 81 L"window.domAutomationController.send(document.title)", |
80 &result)); | 82 &result)); |
81 EXPECT_EQ(result, "Loaded"); | 83 EXPECT_EQ(result, "Loaded"); |
82 | 84 |
83 // A different extension. Legacy (manifest_version 1) extensions should always | 85 // A different extension. Legacy (manifest_version 1) extensions should always |
84 // be able to load each other's resources. | 86 // be able to load each other's resources. |
85 ASSERT_TRUE(LoadExtension(test_data_dir_ | 87 ASSERT_TRUE(LoadExtensionWithFlags(test_data_dir_ |
86 .AppendASCII("extension_resource_request_policy") | 88 .AppendASCII("extension_resource_request_policy") |
87 .AppendASCII("extension2"))); | 89 .AppendASCII("extension2"), |
| 90 // Tests manifest_version 1 behavior, so warnings are expected. |
| 91 ExtensionBrowserTest::kFlagIgnoreManifestWarnings)); |
88 ui_test_utils::NavigateToURL( | 92 ui_test_utils::NavigateToURL( |
89 browser(), | 93 browser(), |
90 GURL("chrome-extension://pbkkcbgdkliohhfaeefcijaghglkahja/index.html")); | 94 GURL("chrome-extension://pbkkcbgdkliohhfaeefcijaghglkahja/index.html")); |
91 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( | 95 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( |
92 chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"", | 96 chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"", |
93 L"window.domAutomationController.send(document.title)", | 97 L"window.domAutomationController.send(document.title)", |
94 &result)); | 98 &result)); |
95 EXPECT_EQ(result, "Loaded"); | 99 EXPECT_EQ(result, "Loaded"); |
96 } | 100 } |
97 | 101 |
98 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, | 102 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, |
99 ExtensionCanLoadHostedAppIcons) { | 103 ExtensionCanLoadHostedAppIcons) { |
100 ASSERT_TRUE(LoadExtension(test_data_dir_ | 104 ASSERT_TRUE(LoadExtensionWithFlags(test_data_dir_ |
101 .AppendASCII("extension_resource_request_policy") | 105 .AppendASCII("extension_resource_request_policy") |
102 .AppendASCII("extension"))); | 106 .AppendASCII("extension"), |
| 107 // Tests manifest_version 1 behavior, so warnings are expected. |
| 108 ExtensionBrowserTest::kFlagIgnoreManifestWarnings)); |
103 | 109 |
104 ASSERT_TRUE(RunExtensionSubtest( | 110 ASSERT_TRUE(RunExtensionSubtest( |
105 "extension_resource_request_policy/extension2/", | 111 "extension_resource_request_policy/extension2/", |
106 "can_load_icons_from_hosted_apps.html")); | 112 "can_load_icons_from_hosted_apps.html", |
| 113 // Tests manifest_version 1 behavior, so warnings are expected. |
| 114 ExtensionApiTest::kFlagIgnoreManifestWarnings)) << message_; |
107 } | 115 } |
108 | 116 |
109 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, Audio) { | 117 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, Audio) { |
110 EXPECT_TRUE(RunExtensionSubtest( | 118 EXPECT_TRUE(RunExtensionSubtest( |
111 "extension_resource_request_policy/extension2", | 119 "extension_resource_request_policy/extension2", |
112 "audio.html")); | 120 "audio.html", |
| 121 // Tests manifest_version 1 behavior, so warnings are expected. |
| 122 ExtensionApiTest::kFlagIgnoreManifestWarnings)) << message_; |
113 } | 123 } |
114 | 124 |
115 #if defined(OS_MACOSX) | 125 #if defined(OS_MACOSX) |
116 // http://crbug.com/95274 - Video is flaky on Mac. | 126 // http://crbug.com/95274 - Video is flaky on Mac. |
117 #define MAYBE_Video DISABLED_Video | 127 #define MAYBE_Video DISABLED_Video |
118 #else | 128 #else |
119 #define MAYBE_Video Video | 129 #define MAYBE_Video Video |
120 #endif | 130 #endif |
121 | 131 |
122 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, MAYBE_Video) { | 132 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, MAYBE_Video) { |
123 EXPECT_TRUE(RunExtensionSubtest( | 133 EXPECT_TRUE(RunExtensionSubtest( |
124 "extension_resource_request_policy/extension2", | 134 "extension_resource_request_policy/extension2", |
125 "video.html")); | 135 "video.html", |
| 136 // Tests manifest_version 1 behavior, so warnings are expected. |
| 137 ExtensionApiTest::kFlagIgnoreManifestWarnings)) << message_; |
126 } | 138 } |
127 | 139 |
128 // This test times out regularly on win_rel trybots. See http://crbug.com/122154 | 140 // This test times out regularly on win_rel trybots. See http://crbug.com/122154 |
129 #if defined(OS_WIN) | 141 #if defined(OS_WIN) |
130 #define MAYBE_WebAccessibleResources DISABLED_WebAccessibleResources | 142 #define MAYBE_WebAccessibleResources DISABLED_WebAccessibleResources |
131 #else | 143 #else |
132 #define MAYBE_WebAccessibleResources WebAccessibleResources | 144 #define MAYBE_WebAccessibleResources WebAccessibleResources |
133 #endif | 145 #endif |
134 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, | 146 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, |
135 MAYBE_WebAccessibleResources) { | 147 MAYBE_WebAccessibleResources) { |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 } | 255 } |
244 | 256 |
245 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, Iframe) { | 257 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, Iframe) { |
246 // Load another extension, which the test one shouldn't be able to get | 258 // Load another extension, which the test one shouldn't be able to get |
247 // resources from. | 259 // resources from. |
248 ASSERT_TRUE(LoadExtension(test_data_dir_ | 260 ASSERT_TRUE(LoadExtension(test_data_dir_ |
249 .AppendASCII("extension_resource_request_policy") | 261 .AppendASCII("extension_resource_request_policy") |
250 .AppendASCII("inaccessible"))); | 262 .AppendASCII("inaccessible"))); |
251 EXPECT_TRUE(RunExtensionSubtest( | 263 EXPECT_TRUE(RunExtensionSubtest( |
252 "extension_resource_request_policy/web_accessible", | 264 "extension_resource_request_policy/web_accessible", |
253 "iframe.html")); | 265 "iframe.html")) << message_; |
254 } | 266 } |
255 | 267 |
256 #if defined(OS_MACOSX) | 268 #if defined(OS_MACOSX) |
257 #define MAYBE_ExtensionAccessibleResources FLAKY_ExtensionAccessibleResources | 269 #define MAYBE_ExtensionAccessibleResources FLAKY_ExtensionAccessibleResources |
258 #else | 270 #else |
259 #define MAYBE_ExtensionAccessibleResources ExtensionAccessibleResources | 271 #define MAYBE_ExtensionAccessibleResources ExtensionAccessibleResources |
260 #endif | 272 #endif |
261 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, | 273 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, |
262 MAYBE_ExtensionAccessibleResources) { | 274 MAYBE_ExtensionAccessibleResources) { |
263 ASSERT_TRUE(RunExtensionSubtest("accessible_cer", "main.html")) << message_; | 275 ASSERT_TRUE(RunExtensionSubtest("accessible_cer", "main.html")) << message_; |
264 } | 276 } |
OLD | NEW |