| Index: chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
|
| diff --git a/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc b/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
|
| index 1c47edbc69df3364205c2c2982a76b7abfdf5cdd..49a045dcc97916a762189dc7ab17b69d41e04f10 100644
|
| --- a/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
|
| +++ b/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
|
| @@ -33,41 +33,6 @@ using prerender::test_utils::TestPrerender;
|
| using prerender::test_utils::TestPrerenderContents;
|
| using task_manager::browsertest_util::WaitForTaskManagerRows;
|
|
|
| -namespace {
|
| -// Fetches a boolean value from javascript. Returns whether the fetch
|
| -// succeeded; the value of the variable is returned in value. If
|
| -// javascript_variable does not exist, this returns false and value is
|
| -// unchanged. The function checks that script execution works.
|
| -bool GetJavascriptBoolean(const std::string& javascript_variable,
|
| - content::WebContents* web_contents,
|
| - bool* value) {
|
| - // In order to detect unknown variables a three-valued return is needed.
|
| - int result;
|
| - EXPECT_TRUE(content::ExecuteScriptAndExtractInt(
|
| - web_contents,
|
| - "try { if (" + javascript_variable + ") { " +
|
| - "window.domAutomationController.send(1) } else { " +
|
| - "window.domAutomationController.send(0); } } catch(err) {" +
|
| - "window.domAutomationController.send(2) }",
|
| - &result));
|
| - if (result == 2) {
|
| - // This means an exception was caught, usually because of a missing
|
| - // variable.
|
| - return false;
|
| - }
|
| - *value = (result == 1);
|
| - return true;
|
| -}
|
| -
|
| -// As above, but just checks for a missing variable.
|
| -bool JavascriptVariableMissing(const std::string& javascript_variable,
|
| - content::WebContents* web_contents) {
|
| - bool unused;
|
| - return !GetJavascriptBoolean(javascript_variable, web_contents, &unused);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| namespace prerender {
|
|
|
| // These URLs used for test resources must be relative with the exception of
|
| @@ -87,9 +52,6 @@ const char kPrefetchScript2[] = "prerender/prefetch2.js";
|
| const char kPrefetchSubresourceRedirectPage[] =
|
| "prerender/prefetch_subresource_redirect.html";
|
|
|
| -const char kPageBool[] = "pageBool";
|
| -const char kScriptBool[] = "scriptBool";
|
| -
|
| class NoStatePrefetchBrowserTest
|
| : public test_utils::PrerenderInProcessBrowserTest {
|
| public:
|
| @@ -198,56 +160,21 @@ class NoStatePrefetchBrowserTest
|
| BrowserTestTime* browser_test_time_;
|
| };
|
|
|
| -// Performs a full load of the target page and check that javascript values are
|
| -// set as expected. This confirms that our test system is working correctly, so
|
| -// that when the target page is prefetched it can be confirmed that javascript
|
| -// is not executed.
|
| -IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, CheckJavascript) {
|
| - ui_test_utils::NavigateToURL(
|
| - current_browser(), src_server()->GetURL(MakeAbsolute(kPrefetchPage)));
|
| - content::WebContents* web_contents =
|
| - current_browser()->tab_strip_model()->GetActiveWebContents();
|
| -
|
| - // Confirms that true and false values can appear.
|
| - bool value = false;
|
| - EXPECT_TRUE(GetJavascriptBoolean(kPageBool, web_contents, &value));
|
| - EXPECT_TRUE(value);
|
| - value = true;
|
| - EXPECT_TRUE(GetJavascriptBoolean("pageAntiBool", web_contents, &value));
|
| - EXPECT_FALSE(value);
|
| -
|
| - // Confirm a value from the script is plumbed through.
|
| - value = false;
|
| - EXPECT_TRUE(GetJavascriptBoolean(kScriptBool, web_contents, &value));
|
| - EXPECT_TRUE(value);
|
| -
|
| - // Confirm that the expected happens when a value doesn't exist.
|
| - EXPECT_TRUE(JavascriptVariableMissing("iDontExist", web_contents));
|
| -}
|
| -
|
| // Checks that a page is correctly prefetched in the case of a
|
| -// <link rel=prerender> tag and then loaded into a tab in response to a
|
| -// navigation, when NoState Prefetch is enabled, but that the page is not loaded
|
| -// (which confirmed by checking that javascript is not executed).
|
| +// <link rel=prerender> tag and the JavaScript on the page is not executed.
|
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchSimple) {
|
| - RequestCounter script_counter;
|
| - CountRequestFor(kPrefetchScript, &script_counter);
|
| RequestCounter main_counter;
|
| CountRequestFor(kPrefetchPage, &main_counter);
|
| + RequestCounter script_counter;
|
| + CountRequestFor(kPrefetchScript, &script_counter);
|
| + RequestCounter script2_counter;
|
| + CountRequestFor(kPrefetchScript2, &script2_counter);
|
|
|
| std::unique_ptr<TestPrerender> test_prerender =
|
| PrerenderTestURL(kPrefetchPage, FINAL_STATUS_APP_TERMINATING, 1);
|
| main_counter.WaitForCount(1);
|
| script_counter.WaitForCount(1);
|
| -
|
| - content::WebContents* contents =
|
| - test_prerender->contents()->prerender_contents();
|
| - content::WebContents* active_contents =
|
| - current_browser()->tab_strip_model()->GetActiveWebContents();
|
| - EXPECT_TRUE(JavascriptVariableMissing(kPageBool, contents));
|
| - EXPECT_TRUE(JavascriptVariableMissing(kScriptBool, contents));
|
| - EXPECT_TRUE(JavascriptVariableMissing(kPageBool, active_contents));
|
| - EXPECT_TRUE(JavascriptVariableMissing(kScriptBool, active_contents));
|
| + script2_counter.WaitForCount(0);
|
| }
|
|
|
| // Checks the prefetch of an img tag.
|
| @@ -333,9 +260,9 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchSimultaneous) {
|
| RequestCounter second_script_counter;
|
| CountRequestFor(kPrefetchScript2, &second_script_counter);
|
|
|
| - // The first prerender is marked as canceled as when the second starts, it
|
| - // sees that the first has been abandoned (presumably because it is detached
|
| - // immediately and so dies quickly).
|
| + // The first prerender is marked as canceled. When the second prerender
|
| + // starts, it sees that the first has been abandoned (because the earlier
|
| + // prerender is detached immediately and so dies quickly).
|
| PrerenderTestURL(kPrefetchPage, FINAL_STATUS_CANCELLED, 1);
|
| PrerenderTestURL(kPrefetchPage2, FINAL_STATUS_APP_TERMINATING, 1);
|
| first_main_counter.WaitForCount(1);
|
|
|