| Index: chrome/browser/content_settings/content_settings_browsertest.cc
|
| diff --git a/chrome/browser/content_settings/content_settings_browsertest.cc b/chrome/browser/content_settings/content_settings_browsertest.cc
|
| index 39ca7adb5f5623dffb84b989a62c4efbfde6172d..84dcf6611efcf8e315067d04abe34d04fa31f4f8 100644
|
| --- a/chrome/browser/content_settings/content_settings_browsertest.cc
|
| +++ b/chrome/browser/content_settings/content_settings_browsertest.cc
|
| @@ -6,6 +6,7 @@
|
| #include "base/path_service.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| +#include "base/test/scoped_feature_list.h"
|
| #include "build/build_config.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/content_settings/cookie_settings_factory.h"
|
| @@ -17,6 +18,7 @@
|
| #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/chrome_features.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/test/base/in_process_browser_test.h"
|
| #include "chrome/test/base/test_launcher_utils.h"
|
| @@ -32,14 +34,17 @@
|
| #include "content/public/browser/render_process_host.h"
|
| #include "content/public/browser/render_view_host.h"
|
| #include "content/public/browser/web_contents.h"
|
| +#include "content/public/common/content_constants.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "content/public/common/mhtml_generation_params.h"
|
| #include "content/public/test/browser_test_utils.h"
|
| +#include "content/public/test/ppapi_test_utils.h"
|
| #include "content/public/test/test_utils.h"
|
| #include "media/cdm/cdm_paths.h"
|
| #include "net/dns/mock_host_resolver.h"
|
| #include "net/test/embedded_test_server/embedded_test_server.h"
|
| #include "net/test/url_request/url_request_mock_http_job.h"
|
| +#include "ppapi/shared_impl/ppapi_switches.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
|
|
|
| @@ -47,11 +52,6 @@
|
| #include "base/mac/scoped_nsautorelease_pool.h"
|
| #endif
|
|
|
| -#if defined(ENABLE_PEPPER_CDMS)
|
| -#include "chrome/browser/media/pepper_cdm_test_constants.h"
|
| -#include "chrome/browser/media/pepper_cdm_test_helper.h"
|
| -#endif
|
| -
|
| using content::BrowserThread;
|
| using net::URLRequestMockHTTPJob;
|
|
|
| @@ -342,16 +342,8 @@ IN_PROC_BROWSER_TEST_F(ContentSettingsTest, RedirectCrossOrigin) {
|
| #if defined(ENABLE_PLUGINS)
|
| class PepperContentSettingsSpecialCasesTest : public ContentSettingsTest {
|
| protected:
|
| - // Registers any CDM plugins not registered by default.
|
| void SetUpCommandLine(base::CommandLine* command_line) override {
|
| -#if defined(ENABLE_PEPPER_CDMS)
|
| - // Append the switch to register the External Clear Key CDM.
|
| - base::FilePath::StringType pepper_plugins = BuildPepperCdmRegistration(
|
| - kClearKeyCdmBaseDirectory, kClearKeyCdmAdapterFileName,
|
| - kClearKeyCdmDisplayName, kClearKeyCdmPepperMimeType);
|
| - command_line->AppendSwitchNative(switches::kRegisterPepperPlugins,
|
| - pepper_plugins);
|
| -#endif // defined(ENABLE_PEPPER_CDMS)
|
| + ASSERT_TRUE(ppapi::RegisterFlashTestPlugin(command_line));
|
|
|
| #if !defined(DISABLE_NACL)
|
| // Ensure NaCl can run.
|
| @@ -359,14 +351,19 @@ class PepperContentSettingsSpecialCasesTest : public ContentSettingsTest {
|
| #endif
|
| }
|
|
|
| -#if defined(ENABLE_PEPPER_CDMS)
|
| void SetUpDefaultCommandLine(base::CommandLine* command_line) override {
|
| base::CommandLine default_command_line(base::CommandLine::NO_PROGRAM);
|
| InProcessBrowserTest::SetUpDefaultCommandLine(&default_command_line);
|
| test_launcher_utils::RemoveCommandLineSwitch(
|
| default_command_line, switches::kDisableComponentUpdate, command_line);
|
| }
|
| -#endif // defined(ENABLE_PEPPER_CDMS)
|
| +
|
| + void SetUpInProcessBrowserTestFixture() override {
|
| + ContentSettingsTest::SetUpInProcessBrowserTestFixture();
|
| +
|
| + // Disable the HTML by Default feature so we can test blocked plugins.
|
| + feature_list.InitAndDisableFeature(features::kPreferHtmlOverPlugins);
|
| + }
|
|
|
| void RunLoadPepperPluginTest(const char* mime_type, bool expect_loaded) {
|
| const char* expected_result = expect_loaded ? "Loaded" : "Not Loaded";
|
| @@ -442,6 +439,9 @@ class PepperContentSettingsSpecialCasesTest : public ContentSettingsTest {
|
| tab_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT));
|
| EXPECT_FALSE(tab_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS));
|
| }
|
| +
|
| + private:
|
| + base::test::ScopedFeatureList feature_list;
|
| };
|
|
|
| class PepperContentSettingsSpecialCasesPluginsBlockedTest
|
| @@ -469,26 +469,23 @@ class PepperContentSettingsSpecialCasesJavaScriptBlockedTest
|
| }
|
| };
|
|
|
| -#if defined(ENABLE_PEPPER_CDMS)
|
| // A sanity check to verify that the plugin that is used as a baseline below
|
| // can be loaded.
|
| -IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesTest, Baseline) {
|
| +IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesTest, Flash) {
|
| HostContentSettingsMapFactory::GetForProfile(browser()->profile())
|
| ->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
|
| CONTENT_SETTING_ALLOW);
|
|
|
| - RunLoadPepperPluginTest(kClearKeyCdmPepperMimeType, true);
|
| + RunLoadPepperPluginTest(content::kFlashPluginSwfMimeType, true);
|
| }
|
| -#endif // defined(ENABLE_PEPPER_CDMS)
|
|
|
| // The following tests verify that Pepper plugins that use JavaScript settings
|
| // instead of Plugins settings still work when Plugins are blocked.
|
|
|
| -#if defined(ENABLE_PEPPER_CDMS)
|
| // The plugin successfully loaded above is blocked.
|
| IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesPluginsBlockedTest,
|
| - Normal) {
|
| - RunLoadPepperPluginTest(kClearKeyCdmPepperMimeType, false);
|
| + BlockedFlash) {
|
| + RunLoadPepperPluginTest(content::kFlashPluginSwfMimeType, false);
|
| }
|
|
|
| #if defined(WIDEVINE_CDM_AVAILABLE) && !defined(OS_CHROMEOS)
|
| @@ -502,7 +499,6 @@ IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesPluginsBlockedTest,
|
| RunLoadPepperPluginTest(kWidevineCdmPluginMimeType, true);
|
| }
|
| #endif // defined(WIDEVINE_CDM_AVAILABLE) && !defined(OS_CHROMEOS)
|
| -#endif // defined(ENABLE_PEPPER_CDMS)
|
|
|
| #if !defined(DISABLE_NACL)
|
| IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesPluginsBlockedTest,
|
| @@ -514,14 +510,13 @@ IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesPluginsBlockedTest,
|
| // The following tests verify that those same Pepper plugins do not work when
|
| // JavaScript is blocked.
|
|
|
| -#if defined(ENABLE_PEPPER_CDMS)
|
| // A plugin with no special behavior is not blocked when JavaScript is blocked.
|
| IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesJavaScriptBlockedTest,
|
| - Normal) {
|
| - RunJavaScriptBlockedTest("load_clearkey_no_js.html", false);
|
| + Flash) {
|
| + RunJavaScriptBlockedTest("load_flash_no_js.html", false);
|
| }
|
|
|
| -#if defined(WIDEVINE_CDM_AVAILABLE)
|
| +#if defined(ENABLE_PEPPER_CDMS) && defined(WIDEVINE_CDM_AVAILABLE)
|
| IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesJavaScriptBlockedTest,
|
| WidevineCdm) {
|
| // Check that Widevine CDM is available and registered.
|
| @@ -531,8 +526,7 @@ IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesJavaScriptBlockedTest,
|
| EXPECT_TRUE(IsPepperCdmRegistered(kWidevineCdmPluginMimeType));
|
| RunJavaScriptBlockedTest("load_widevine_no_js.html", true);
|
| }
|
| -#endif // defined(WIDEVINE_CDM_AVAILABLE)
|
| -#endif // defined(ENABLE_PEPPER_CDMS)
|
| +#endif // defined(ENABLE_PEPPER_CDMS) && defined(WIDEVINE_CDM_AVAILABLE)
|
|
|
| #if !defined(DISABLE_NACL)
|
| IN_PROC_BROWSER_TEST_F(PepperContentSettingsSpecialCasesJavaScriptBlockedTest,
|
|
|