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

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 1062163004: Plugins: Move Prerender tests to PPAPI and some refactoring. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 unified diff | Download patch
OLDNEW
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 <deque> 5 #include <deque>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 #include "content/public/browser/navigation_entry.h" 77 #include "content/public/browser/navigation_entry.h"
78 #include "content/public/browser/notification_service.h" 78 #include "content/public/browser/notification_service.h"
79 #include "content/public/browser/render_frame_host.h" 79 #include "content/public/browser/render_frame_host.h"
80 #include "content/public/browser/render_process_host.h" 80 #include "content/public/browser/render_process_host.h"
81 #include "content/public/browser/render_view_host.h" 81 #include "content/public/browser/render_view_host.h"
82 #include "content/public/browser/site_instance.h" 82 #include "content/public/browser/site_instance.h"
83 #include "content/public/browser/web_contents.h" 83 #include "content/public/browser/web_contents.h"
84 #include "content/public/browser/web_contents_observer.h" 84 #include "content/public/browser/web_contents_observer.h"
85 #include "content/public/common/url_constants.h" 85 #include "content/public/common/url_constants.h"
86 #include "content/public/test/browser_test_utils.h" 86 #include "content/public/test/browser_test_utils.h"
87 #include "content/public/test/ppapi_test_utils.h"
87 #include "content/public/test/test_navigation_observer.h" 88 #include "content/public/test/test_navigation_observer.h"
88 #include "content/public/test/test_utils.h" 89 #include "content/public/test/test_utils.h"
89 #include "extensions/common/constants.h" 90 #include "extensions/common/constants.h"
90 #include "extensions/common/extension_urls.h" 91 #include "extensions/common/extension_urls.h"
91 #include "extensions/common/manifest_handlers/mime_types_handler.h" 92 #include "extensions/common/manifest_handlers/mime_types_handler.h"
92 #include "extensions/common/switches.h" 93 #include "extensions/common/switches.h"
93 #include "extensions/test/result_catcher.h" 94 #include "extensions/test/result_catcher.h"
94 #include "net/base/escape.h" 95 #include "net/base/escape.h"
95 #include "net/cert/x509_certificate.h" 96 #include "net/cert/x509_certificate.h"
96 #include "net/dns/mock_host_resolver.h" 97 #include "net/dns/mock_host_resolver.h"
(...skipping 968 matching lines...) Expand 10 before | Expand all | Expand 10 after
1065 }; 1066 };
1066 1067
1067 base::FilePath GetTestPath(const std::string& file_name) { 1068 base::FilePath GetTestPath(const std::string& file_name) {
1068 return ui_test_utils::GetTestFilePath( 1069 return ui_test_utils::GetTestFilePath(
1069 base::FilePath(FILE_PATH_LITERAL("prerender")), 1070 base::FilePath(FILE_PATH_LITERAL("prerender")),
1070 base::FilePath().AppendASCII(file_name)); 1071 base::FilePath().AppendASCII(file_name));
1071 } 1072 }
1072 1073
1073 } // namespace 1074 } // namespace
1074 1075
1075 // Many of these tests are flaky. See http://crbug.com/249179
1076 class PrerenderBrowserTest : virtual public InProcessBrowserTest { 1076 class PrerenderBrowserTest : virtual public InProcessBrowserTest {
1077 public: 1077 public:
1078 PrerenderBrowserTest() 1078 PrerenderBrowserTest()
1079 : autostart_test_server_(true), 1079 : autostart_test_server_(true),
1080 prerender_contents_factory_(NULL), 1080 prerender_contents_factory_(NULL),
1081 #if defined(FULL_SAFE_BROWSING) 1081 #if defined(FULL_SAFE_BROWSING)
1082 safe_browsing_factory_(new TestSafeBrowsingServiceFactory()), 1082 safe_browsing_factory_(new TestSafeBrowsingServiceFactory()),
1083 #endif 1083 #endif
1084 call_javascript_(true), 1084 call_javascript_(true),
1085 check_load_events_(true), 1085 check_load_events_(true),
(...skipping 17 matching lines...) Expand all
1103 1103
1104 void TearDownInProcessBrowserTestFixture() override { 1104 void TearDownInProcessBrowserTestFixture() override {
1105 #if defined(FULL_SAFE_BROWSING) 1105 #if defined(FULL_SAFE_BROWSING)
1106 SafeBrowsingService::RegisterFactory(NULL); 1106 SafeBrowsingService::RegisterFactory(NULL);
1107 #endif 1107 #endif
1108 } 1108 }
1109 1109
1110 void SetUpCommandLine(base::CommandLine* command_line) override { 1110 void SetUpCommandLine(base::CommandLine* command_line) override {
1111 command_line->AppendSwitchASCII(switches::kPrerenderMode, 1111 command_line->AppendSwitchASCII(switches::kPrerenderMode,
1112 switches::kPrerenderModeSwitchValueEnabled); 1112 switches::kPrerenderModeSwitchValueEnabled);
1113 #if defined(OS_MACOSX) 1113 ppapi::RegisterTestPlugin(command_line);
1114 // The plugins directory isn't read by default on the Mac, so it needs to be
1115 // explicitly registered.
1116 base::FilePath app_dir;
1117 PathService::Get(chrome::DIR_APP, &app_dir);
1118 command_line->AppendSwitchPath(
1119 switches::kExtraPluginDir,
1120 app_dir.Append(FILE_PATH_LITERAL("plugins")));
1121 #endif
1122 command_line->AppendSwitch(switches::kAlwaysAuthorizePlugins);
1123 command_line->AppendSwitch(switches::kEnableNpapi);
1124 } 1114 }
1125 1115
1126 void SetPreference(NetworkPredictionOptions value) { 1116 void SetPreference(NetworkPredictionOptions value) {
1127 browser()->profile()->GetPrefs()->SetInteger( 1117 browser()->profile()->GetPrefs()->SetInteger(
1128 prefs::kNetworkPredictionOptions, value); 1118 prefs::kNetworkPredictionOptions, value);
1129 } 1119 }
1130 1120
1131 // Verifies whether ShouldDisableLocalPredictorDueToPreferencesAndNetwork 1121 // Verifies whether ShouldDisableLocalPredictorDueToPreferencesAndNetwork
1132 // produces the desired output. 1122 // produces the desired output.
1133 void TestShouldDisableLocalPredictorPreferenceNetworkMatrix( 1123 void TestShouldDisableLocalPredictorPreferenceNetworkMatrix(
(...skipping 904 matching lines...) Expand 10 before | Expand all | Expand 10 after
2038 // Checks that the prerendering of a page is canceled correctly when a 2028 // Checks that the prerendering of a page is canceled correctly when a
2039 // Javascript alert is called. 2029 // Javascript alert is called.
2040 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderAlertAfterOnload) { 2030 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderAlertAfterOnload) {
2041 PrerenderTestURL("files/prerender/prerender_alert_after_onload.html", 2031 PrerenderTestURL("files/prerender/prerender_alert_after_onload.html",
2042 FINAL_STATUS_JAVASCRIPT_ALERT, 2032 FINAL_STATUS_JAVASCRIPT_ALERT,
2043 1); 2033 1);
2044 } 2034 }
2045 2035
2046 // Checks that plugins are not loaded while a page is being preloaded, but 2036 // Checks that plugins are not loaded while a page is being preloaded, but
2047 // are loaded when the page is displayed. 2037 // are loaded when the page is displayed.
2048 #if defined(USE_AURA) && !defined(OS_WIN) 2038 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderDelayLoadPlugin) {
2049 // http://crbug.com/103496 2039 PrerenderTestURL("files/prerender/plugin_delay_load.html", FINAL_STATUS_USED,
2050 #define MAYBE_PrerenderDelayLoadPlugin DISABLED_PrerenderDelayLoadPlugin
2051 #define MAYBE_PrerenderPluginPowerSaver DISABLED_PrerenderPluginPowerSaver
2052 #elif defined(OS_MACOSX)
2053 // http://crbug.com/100514
2054 #define MAYBE_PrerenderDelayLoadPlugin DISABLED_PrerenderDelayLoadPlugin
2055 #define MAYBE_PrerenderPluginPowerSaver DISABLED_PrerenderPluginPowerSaver
2056 #elif defined(OS_WIN) && defined(ARCH_CPU_X86_64)
2057 // TODO(jschuh): Failing plugin tests. crbug.com/244653
2058 #define MAYBE_PrerenderDelayLoadPlugin DISABLED_PrerenderDelayLoadPlugin
2059 #define MAYBE_PrerenderPluginPowerSaver DISABLED_PrerenderPluginPowerSaver
2060 #elif defined(OS_LINUX)
2061 // http://crbug.com/306715
2062 #define MAYBE_PrerenderDelayLoadPlugin DISABLED_PrerenderDelayLoadPlugin
2063 #define MAYBE_PrerenderPluginPowerSaver DISABLED_PrerenderPluginPowerSaver
2064 #else
2065 #define MAYBE_PrerenderDelayLoadPlugin PrerenderDelayLoadPlugin
2066 #define MAYBE_PrerenderPluginPowerSaver PrerenderPluginPowerSaver
2067 #endif
2068 // http://crbug.com/306715
2069 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MAYBE_PrerenderDelayLoadPlugin) {
2070 PrerenderTestURL("files/prerender/plugin_delay_load.html",
2071 FINAL_STATUS_USED,
2072 1); 2040 1);
2073 NavigateToDestURL(); 2041 NavigateToDestURL();
2074 } 2042 }
2075 2043
2076 // For enabled Plugin Power Saver, checks that plugins are not loaded while 2044 // For Content Setting DETECT, checks that plugins are not loaded while
2077 // a page is being preloaded, but are loaded when the page is displayed. 2045 // a page is being preloaded, but are loaded when the page is displayed.
2078 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MAYBE_PrerenderPluginPowerSaver) { 2046 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderContentSettingDetect) {
2079 // Enable click-to-play.
2080 HostContentSettingsMap* content_settings_map = 2047 HostContentSettingsMap* content_settings_map =
2081 current_browser()->profile()->GetHostContentSettingsMap(); 2048 current_browser()->profile()->GetHostContentSettingsMap();
2082 content_settings_map->SetDefaultContentSetting( 2049 content_settings_map->SetDefaultContentSetting(
2083 CONTENT_SETTINGS_TYPE_PLUGINS, CONTENT_SETTING_DETECT_IMPORTANT_CONTENT); 2050 CONTENT_SETTINGS_TYPE_PLUGINS, CONTENT_SETTING_DETECT_IMPORTANT_CONTENT);
2084 2051
2085 PrerenderTestURL("files/prerender/prerender_plugin_power_saver.html", 2052 PrerenderTestURL("files/prerender/plugin_delay_load.html", FINAL_STATUS_USED,
2086 FINAL_STATUS_USED, 1); 2053 1);
2087 NavigateToDestURL(); 2054 NavigateToDestURL();
2088 } 2055 }
2089 2056
2057 // For Content Setting BLOCK, checks that plugins are never loaded.
2058 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderContentSettingBlock) {
2059 HostContentSettingsMap* content_settings_map =
2060 current_browser()->profile()->GetHostContentSettingsMap();
2061 content_settings_map->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
2062 CONTENT_SETTING_BLOCK);
2063
2064 PrerenderTestURL("files/prerender/plugin_never_load.html", FINAL_STATUS_USED,
2065 1);
2066 NavigateToDestURL();
2067 }
2068
2090 // Checks that we don't load a NaCl plugin when NaCl is disabled. 2069 // Checks that we don't load a NaCl plugin when NaCl is disabled.
2091 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNaClPluginDisabled) { 2070 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNaClPluginDisabled) {
2092 PrerenderTestURL("files/prerender/prerender_plugin_nacl_disabled.html", 2071 PrerenderTestURL("files/prerender/prerender_plugin_nacl_disabled.html",
2093 FINAL_STATUS_USED, 2072 FINAL_STATUS_USED,
2094 1); 2073 1);
2095 NavigateToDestURL(); 2074 NavigateToDestURL();
2096 2075
2097 2076
2098 // Run this check again. When we try to load aa ppapi plugin, the 2077 // Run this check again. When we try to load aa ppapi plugin, the
2099 // "loadstart" event is asynchronously posted to a message loop. 2078 // "loadstart" event is asynchronously posted to a message loop.
(...skipping 2052 matching lines...) Expand 10 before | Expand all | Expand 10 after
4152 TestShouldDisableLocalPredictorPreferenceNetworkMatrix( 4131 TestShouldDisableLocalPredictorPreferenceNetworkMatrix(
4153 false /*preference_wifi_network_wifi*/, 4132 false /*preference_wifi_network_wifi*/,
4154 false /*preference_wifi_network_4g*/, 4133 false /*preference_wifi_network_4g*/,
4155 false /*preference_always_network_wifi*/, 4134 false /*preference_always_network_wifi*/,
4156 false /*preference_always_network_4g*/, 4135 false /*preference_always_network_4g*/,
4157 false /*preference_never_network_wifi*/, 4136 false /*preference_never_network_wifi*/,
4158 false /*preference_never_network_4g*/); 4137 false /*preference_never_network_4g*/);
4159 } 4138 }
4160 4139
4161 } // namespace prerender 4140 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698