| 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/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/files/file_path.h" | 6 #include "base/files/file_path.h" |
| 7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/extensions/crx_installer.h" | 9 #include "chrome/browser/extensions/crx_installer.h" |
| 10 #include "chrome/browser/extensions/extension_browsertest.h" | 10 #include "chrome/browser/extensions/extension_browsertest.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 namespace { | 32 namespace { |
| 33 | 33 |
| 34 const char kExtensionId[] = "bjjcibdiodkkeanflmiijlcfieiemced"; | 34 const char kExtensionId[] = "bjjcibdiodkkeanflmiijlcfieiemced"; |
| 35 | 35 |
| 36 // This class tests that the Native Client plugin is blocked unless the | 36 // This class tests that the Native Client plugin is blocked unless the |
| 37 // .nexe is part of an extension from the Chrome Webstore. | 37 // .nexe is part of an extension from the Chrome Webstore. |
| 38 class NaClExtensionTest : public ExtensionBrowserTest { | 38 class NaClExtensionTest : public ExtensionBrowserTest { |
| 39 public: | 39 public: |
| 40 NaClExtensionTest() {} | 40 NaClExtensionTest() {} |
| 41 | 41 |
| 42 void SetUpOnMainThread() override { |
| 43 ExtensionBrowserTest::SetUpOnMainThread(); |
| 44 host_resolver()->AddRule("*", "127.0.0.1"); |
| 45 ASSERT_TRUE(embedded_test_server()->Start()); |
| 46 } |
| 47 |
| 42 protected: | 48 protected: |
| 43 enum InstallType { | 49 enum InstallType { |
| 44 INSTALL_TYPE_COMPONENT, | 50 INSTALL_TYPE_COMPONENT, |
| 45 INSTALL_TYPE_UNPACKED, | 51 INSTALL_TYPE_UNPACKED, |
| 46 INSTALL_TYPE_FROM_WEBSTORE, | 52 INSTALL_TYPE_FROM_WEBSTORE, |
| 47 INSTALL_TYPE_NON_WEBSTORE, | 53 INSTALL_TYPE_NON_WEBSTORE, |
| 48 }; | 54 }; |
| 49 enum PluginType { | 55 enum PluginType { |
| 50 PLUGIN_TYPE_NONE = 0, | 56 PLUGIN_TYPE_NONE = 0, |
| 51 PLUGIN_TYPE_EMBED = 1, | 57 PLUGIN_TYPE_EMBED = 1, |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 void CheckPluginsCreated(const Extension* extension, | 147 void CheckPluginsCreated(const Extension* extension, |
| 142 PluginType expected_to_succeed) { | 148 PluginType expected_to_succeed) { |
| 143 CheckPluginsCreated(extension->GetResourceURL("test.html"), | 149 CheckPluginsCreated(extension->GetResourceURL("test.html"), |
| 144 expected_to_succeed); | 150 expected_to_succeed); |
| 145 } | 151 } |
| 146 }; | 152 }; |
| 147 | 153 |
| 148 // Test that the NaCl plugin isn't blocked for Webstore extensions. | 154 // Test that the NaCl plugin isn't blocked for Webstore extensions. |
| 149 // Disabled: http://crbug.com/319892 | 155 // Disabled: http://crbug.com/319892 |
| 150 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_WebStoreExtension) { | 156 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_WebStoreExtension) { |
| 151 ASSERT_TRUE(embedded_test_server()->Start()); | |
| 152 | |
| 153 const Extension* extension = InstallExtension(INSTALL_TYPE_FROM_WEBSTORE); | 157 const Extension* extension = InstallExtension(INSTALL_TYPE_FROM_WEBSTORE); |
| 154 ASSERT_TRUE(extension); | 158 ASSERT_TRUE(extension); |
| 155 CheckPluginsCreated(extension, PLUGIN_TYPE_ALL); | 159 CheckPluginsCreated(extension, PLUGIN_TYPE_ALL); |
| 156 } | 160 } |
| 157 | 161 |
| 158 // Test that the NaCl plugin is blocked for non-Webstore extensions. | 162 // Test that the NaCl plugin is blocked for non-Webstore extensions. |
| 159 // Disabled: http://crbug.com/319892 | 163 // Disabled: http://crbug.com/319892 |
| 160 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_NonWebStoreExtension) { | 164 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_NonWebStoreExtension) { |
| 161 ASSERT_TRUE(embedded_test_server()->Start()); | |
| 162 | |
| 163 const Extension* extension = InstallExtension(INSTALL_TYPE_NON_WEBSTORE); | 165 const Extension* extension = InstallExtension(INSTALL_TYPE_NON_WEBSTORE); |
| 164 ASSERT_TRUE(extension); | 166 ASSERT_TRUE(extension); |
| 165 CheckPluginsCreated(extension, PLUGIN_TYPE_NONE); | 167 CheckPluginsCreated(extension, PLUGIN_TYPE_NONE); |
| 166 } | 168 } |
| 167 | 169 |
| 168 // Test that the NaCl plugin isn't blocked for component extensions. | 170 // Test that the NaCl plugin isn't blocked for component extensions. |
| 169 // Disabled: http://crbug.com/319892 | 171 // Disabled: http://crbug.com/319892 |
| 170 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_ComponentExtension) { | 172 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_ComponentExtension) { |
| 171 ASSERT_TRUE(embedded_test_server()->Start()); | |
| 172 | |
| 173 const Extension* extension = InstallExtension(INSTALL_TYPE_COMPONENT); | 173 const Extension* extension = InstallExtension(INSTALL_TYPE_COMPONENT); |
| 174 ASSERT_TRUE(extension); | 174 ASSERT_TRUE(extension); |
| 175 ASSERT_EQ(extension->location(), Manifest::COMPONENT); | 175 ASSERT_EQ(extension->location(), Manifest::COMPONENT); |
| 176 CheckPluginsCreated(extension, PLUGIN_TYPE_ALL); | 176 CheckPluginsCreated(extension, PLUGIN_TYPE_ALL); |
| 177 } | 177 } |
| 178 | 178 |
| 179 // Test that the NaCl plugin isn't blocked for unpacked extensions. | 179 // Test that the NaCl plugin isn't blocked for unpacked extensions. |
| 180 // Disabled: http://crbug.com/319892 | 180 // Disabled: http://crbug.com/319892 |
| 181 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_UnpackedExtension) { | 181 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_UnpackedExtension) { |
| 182 ASSERT_TRUE(embedded_test_server()->Start()); | |
| 183 | |
| 184 const Extension* extension = InstallExtension(INSTALL_TYPE_UNPACKED); | 182 const Extension* extension = InstallExtension(INSTALL_TYPE_UNPACKED); |
| 185 ASSERT_TRUE(extension); | 183 ASSERT_TRUE(extension); |
| 186 ASSERT_EQ(extension->location(), Manifest::UNPACKED); | 184 ASSERT_EQ(extension->location(), Manifest::UNPACKED); |
| 187 CheckPluginsCreated(extension, PLUGIN_TYPE_ALL); | 185 CheckPluginsCreated(extension, PLUGIN_TYPE_ALL); |
| 188 } | 186 } |
| 189 | 187 |
| 190 // Test that the NaCl plugin is blocked for non chrome-extension urls, except | 188 // Test that the NaCl plugin is blocked for non chrome-extension urls, except |
| 191 // if it's a content (MIME type) handler. | 189 // if it's a content (MIME type) handler. |
| 192 // Disabled: http://crbug.com/319892 | 190 // Disabled: http://crbug.com/319892 |
| 193 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_NonExtensionScheme) { | 191 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, DISABLED_NonExtensionScheme) { |
| 194 ASSERT_TRUE(embedded_test_server()->Start()); | |
| 195 | |
| 196 const Extension* extension = InstallExtension(INSTALL_TYPE_FROM_WEBSTORE); | 192 const Extension* extension = InstallExtension(INSTALL_TYPE_FROM_WEBSTORE); |
| 197 ASSERT_TRUE(extension); | 193 ASSERT_TRUE(extension); |
| 198 CheckPluginsCreated( | 194 CheckPluginsCreated( |
| 199 embedded_test_server()->GetURL("/extensions/native_client/test.html"), | 195 embedded_test_server()->GetURL("/extensions/native_client/test.html"), |
| 200 PLUGIN_TYPE_CONTENT_HANDLER); | 196 PLUGIN_TYPE_CONTENT_HANDLER); |
| 201 } | 197 } |
| 202 | 198 |
| 203 // Test that NaCl plugin isn't blocked for hosted app URLs. | 199 // Test that NaCl plugin isn't blocked for hosted app URLs. |
| 204 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, HostedApp) { | 200 IN_PROC_BROWSER_TEST_F(NaClExtensionTest, HostedApp) { |
| 205 host_resolver()->AddRule("*", "127.0.0.1"); | |
| 206 ASSERT_TRUE(embedded_test_server()->Start()); | |
| 207 | |
| 208 GURL url = | 201 GURL url = |
| 209 embedded_test_server()->GetURL("/extensions/native_client/test.html"); | 202 embedded_test_server()->GetURL("/extensions/native_client/test.html"); |
| 210 GURL::Replacements replace_host; | 203 GURL::Replacements replace_host; |
| 211 replace_host.SetHostStr("localhost"); | 204 replace_host.SetHostStr("localhost"); |
| 212 replace_host.ClearPort(); | 205 replace_host.ClearPort(); |
| 213 url = url.ReplaceComponents(replace_host); | 206 url = url.ReplaceComponents(replace_host); |
| 214 | 207 |
| 215 const Extension* extension = InstallHostedApp(); | 208 const Extension* extension = InstallHostedApp(); |
| 216 ASSERT_TRUE(extension); | 209 ASSERT_TRUE(extension); |
| 217 CheckPluginsCreated(url, PLUGIN_TYPE_ALL); | 210 CheckPluginsCreated(url, PLUGIN_TYPE_ALL); |
| 218 } | 211 } |
| 219 | 212 |
| 220 } // namespace | 213 } // namespace |
| OLD | NEW |