| Index: chrome/browser/prerender/prerender_browsertest.cc
|
| diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
|
| index 973b211842ae269781baafa2b30973e47b357d92..285af385fb94bead245df3695485a4a2c17742ec 100644
|
| --- a/chrome/browser/prerender/prerender_browsertest.cc
|
| +++ b/chrome/browser/prerender/prerender_browsertest.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/command_line.h"
|
| #include "base/path_service.h"
|
| #include "base/string_util.h"
|
| +#include "base/utf_string_conversions.h"
|
| #include "base/test/test_timeouts.h"
|
| #include "chrome/browser/content_settings/host_content_settings_map.h"
|
| #include "chrome/browser/favicon/favicon_tab_helper.h"
|
| @@ -317,7 +318,8 @@ class PrerenderBrowserTest : public InProcessBrowserTest {
|
| : safe_browsing_factory_(new TestSafeBrowsingServiceFactory()),
|
| prerender_contents_factory_(NULL),
|
| use_https_src_server_(false),
|
| - call_javascript_(true) {
|
| + call_javascript_(true),
|
| + loader_path_("files/prerender/prerender_loader.html") {
|
| EnableDOMAutomation();
|
| }
|
|
|
| @@ -468,6 +470,10 @@ class PrerenderBrowserTest : public InProcessBrowserTest {
|
| prerender_manager()->FindEntry(dest_url_));
|
| }
|
|
|
| + void set_loader_path(const std::string& path) {
|
| + loader_path_ = path;
|
| + }
|
| +
|
| private:
|
| void PrerenderTestURLImpl(
|
| const GURL& url,
|
| @@ -480,7 +486,7 @@ class PrerenderBrowserTest : public InProcessBrowserTest {
|
| make_pair("REPLACE_WITH_PRERENDER_URL", dest_url_.spec()));
|
| std::string replacement_path;
|
| ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements(
|
| - "files/prerender/prerender_loader.html",
|
| + loader_path_,
|
| replacement_text,
|
| &replacement_path));
|
|
|
| @@ -571,6 +577,7 @@ class PrerenderBrowserTest : public InProcessBrowserTest {
|
| GURL dest_url_;
|
| bool use_https_src_server_;
|
| bool call_javascript_;
|
| + std::string loader_path_;
|
| };
|
|
|
| // Checks that a page is correctly prerendered in the case of a
|
| @@ -1360,4 +1367,15 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderFavicon) {
|
| ->FaviconIsValid());
|
| }
|
|
|
| +// Checks that when a prerendered page is swapped in to a referring page, the
|
| +// unload handlers on the referring page are executed.
|
| +IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderUnload) {
|
| + set_loader_path("files/prerender/prerender_loader_with_unload.html");
|
| + PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
|
| + ui_test_utils::TitleWatcher title_watcher(browser()->GetSelectedTabContents(),
|
| + ASCIIToUTF16("Unloaded"));
|
| + NavigateToDestURL();
|
| + EXPECT_TRUE(title_watcher.Wait());
|
| +}
|
| +
|
| } // namespace prerender
|
|
|