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

Unified Diff: chrome/browser/extensions/plugin_apitest.cc

Issue 1862513003: Remove NPAPI from browser and utility (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/plugin_apitest.cc
diff --git a/chrome/browser/extensions/plugin_apitest.cc b/chrome/browser/extensions/plugin_apitest.cc
deleted file mode 100644
index 817b05a9f974138c8b071881596a6968965acf7c..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/plugin_apitest.cc
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-
-#include "base/command_line.h"
-#include "build/build_config.h"
-#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
-#include "chrome/browser/extensions/extension_browsertest.h"
-#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/test_switches.h"
-#include "chrome/test/base/ui_test_utils.h"
-#include "components/content_settings/core/browser/host_content_settings_map.h"
-#include "components/prefs/pref_service.h"
-#include "content/public/browser/navigation_controller.h"
-#include "content/public/browser/plugin_service.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/test/browser_test_utils.h"
-#include "extensions/browser/extension_registry.h"
-#include "extensions/browser/extension_system.h"
-#include "extensions/common/extension.h"
-#include "net/base/filename_util.h"
-
-using content::NavigationController;
-using content::WebContents;
-using extensions::Extension;
-
-#if defined(OS_WIN)
-// http://crbug.com/123851 : test flakily fails on win.
-#define MAYBE_PluginLoadUnload DISABLED_PluginLoadUnload
-#elif defined(OS_MACOSX) && defined(ADDRESS_SANITIZER)
-// ExtensionBrowserTest.PluginLoadUnload started failing after the switch to
-// dynamic ASan runtime library on Mac. See http://crbug.com/234591.
-#define MAYBE_PluginLoadUnload DISABLED_PluginLoadUnload
-#elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY)
-// Timing out on ARM linux http://crbug.com/238460
-#define MAYBE_PluginLoadUnload DISABLED_PluginLoadUnload
-#else
-#define MAYBE_PluginLoadUnload PluginLoadUnload
-#endif
-
-// Tests that a renderer's plugin list is properly updated when we load and
-// unload an extension that contains a plugin.
-IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, MAYBE_PluginLoadUnload) {
- if (!content::PluginService::GetInstance()->NPAPIPluginsSupported())
- return;
- browser()->profile()->GetPrefs()->SetBoolean(prefs::kPluginsAlwaysAuthorize,
- true);
-
- base::FilePath extension_dir =
- test_data_dir_.AppendASCII("uitest").AppendASCII("plugins");
-
- ui_test_utils::NavigateToURL(browser(),
- net::FilePathToFileURL(extension_dir.AppendASCII("test.html")));
- WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
-
- // With no extensions, the plugin should not be loaded.
- bool result = false;
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- tab, "testPluginWorks()", &result));
- EXPECT_FALSE(result);
-
- ExtensionService* service = extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service();
- extensions::ExtensionRegistry* registry =
- extensions::ExtensionRegistry::Get(browser()->profile());
- service->set_show_extensions_prompts(false);
- const size_t size_before = registry->enabled_extensions().size();
- const Extension* extension = LoadExtension(extension_dir);
- ASSERT_TRUE(extension);
- EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
- // Now the plugin should be in the cache.
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- tab, "testPluginWorks()", &result));
- // We don't allow extension plugins to run on ChromeOS.
-#if defined(OS_CHROMEOS)
- EXPECT_FALSE(result);
-#else
- EXPECT_TRUE(result);
-#endif
-
- EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
- UnloadExtension(extension->id());
- EXPECT_EQ(size_before, registry->enabled_extensions().size());
-
- // Now the plugin should be unloaded, and the page should be broken.
-
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- tab, "testPluginWorks()", &result));
- EXPECT_FALSE(result);
-
- // If we reload the extension and page, it should work again.
-
- ASSERT_TRUE(LoadExtension(extension_dir));
- EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
- {
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_LOAD_STOP,
- content::Source<NavigationController>(
- &browser()->tab_strip_model()->GetActiveWebContents()->
- GetController()));
- chrome::Reload(browser(), CURRENT_TAB);
- observer.Wait();
- }
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- tab, "testPluginWorks()", &result));
- // We don't allow extension plugins to run on ChromeOS.
-#if defined(OS_CHROMEOS)
- EXPECT_FALSE(result);
-#else
- EXPECT_TRUE(result);
-#endif
-}
-
-#if defined(OS_MACOSX) && defined(ADDRESS_SANITIZER)
-// ExtensionBrowserTest.PluginPrivate started failing after the switch to
-// dynamic ASan runtime library on Mac. See http://crbug.com/234591.
-#define MAYBE_PluginPrivate DISABLED_PluginPrivate
-#elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY)
-// Timing out on ARM linux http://crbug.com/238467
-#define MAYBE_PluginPrivate DISABLED_PluginPrivate
-#elif defined(OS_WIN) && defined(ARCH_CPU_X86_64)
-// TODO(jschuh): Failing plugin tests. crbug.com/244653
-#define MAYBE_PluginPrivate DISABLED_PluginPrivate
-#else
-#define MAYBE_PluginPrivate PluginPrivate
-#endif
-// Tests that private extension plugins are only visible to the extension.
-IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, MAYBE_PluginPrivate) {
-#if defined(OS_WIN) && defined(USE_ASH)
- // Disable this test in Metro+Ash for now (http://crbug.com/262796).
- if (base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kAshBrowserTests))
- return;
-#endif
-
- if (!content::PluginService::GetInstance()->NPAPIPluginsSupported())
- return;
-
- browser()->profile()->GetPrefs()->SetBoolean(prefs::kPluginsAlwaysAuthorize,
- true);
-
- base::FilePath extension_dir =
- test_data_dir_.AppendASCII("uitest").AppendASCII("plugins_private");
-
- ExtensionService* service = extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service();
- extensions::ExtensionRegistry* registry =
- extensions::ExtensionRegistry::Get(browser()->profile());
- service->set_show_extensions_prompts(false);
- const size_t size_before = registry->enabled_extensions().size();
- const Extension* extension = LoadExtension(extension_dir);
- ASSERT_TRUE(extension);
- EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
-
- // Load the test page through the extension URL, and the plugin should work.
- ui_test_utils::NavigateToURL(browser(),
- extension->GetResourceURL("test.html"));
- WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
- bool result = false;
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- tab, "testPluginWorks()", &result));
- // We don't allow extension plugins to run on ChromeOS.
-#if defined(OS_CHROMEOS)
- EXPECT_FALSE(result);
-#else
- // TODO(bauerb): This might wrongly fail if the plugin takes too long
- // to load. Extension-private plugins don't appear in navigator.plugins, so
- // we can't check for the plugin in Javascript.
- EXPECT_TRUE(result);
-#endif
-
- // Regression test for http://crbug.com/131811: The plugin should be
- // whitelisted for the extension (and only for the extension), so it should be
- // loaded even if content settings are set to block plugins.
- HostContentSettingsMapFactory::GetForProfile(browser()->profile())
- ->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
- CONTENT_SETTING_BLOCK);
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- tab, "testPluginWorks()", &result));
- // We don't allow extension plugins to run on ChromeOS.
-#if defined(OS_CHROMEOS)
- EXPECT_FALSE(result);
-#else
- EXPECT_TRUE(result);
-#endif
-
- // Now load it through a file URL. The plugin should not load.
- ui_test_utils::NavigateToURL(browser(),
- net::FilePathToFileURL(extension_dir.AppendASCII("test.html")));
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- tab, "testPluginWorks()", &result));
- EXPECT_FALSE(result);
-}
« no previous file with comments | « chrome/browser/extensions/extension_service_unittest.cc ('k') | chrome/browser/extensions/plugin_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698