| Index: chrome/browser/prerender/prerender_test_utils.h
|
| diff --git a/chrome/browser/prerender/prerender_test_utils.h b/chrome/browser/prerender/prerender_test_utils.h
|
| index 9a31279dc5eec25a2ccaf7f0e9e0b0816b636006..d7f4af8de292a2d9585e96eb596dcaeefde913c7 100644
|
| --- a/chrome/browser/prerender/prerender_test_utils.h
|
| +++ b/chrome/browser/prerender/prerender_test_utils.h
|
| @@ -144,11 +144,13 @@ class TestPrerenderContents : public PrerenderContents {
|
| bool should_be_shown_;
|
| // If true, |expected_final_status_| and other shutdown checks are skipped.
|
| bool skip_final_checks_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestPrerenderContents);
|
| };
|
|
|
| // A handle to a TestPrerenderContents whose lifetime is under the caller's
|
| // control. A PrerenderContents may be destroyed at any point. This allows
|
| -// tracking the final status, etc.
|
| +// tracking the FinalStatus.
|
| class TestPrerender : public PrerenderContents::Observer,
|
| public base::SupportsWeakPtr<TestPrerender> {
|
| public:
|
| @@ -157,6 +159,7 @@ class TestPrerender : public PrerenderContents::Observer,
|
|
|
| TestPrerenderContents* contents() const { return contents_; }
|
| int number_of_loads() const { return number_of_loads_; }
|
| + FinalStatus GetFinalStatus() const;
|
|
|
| void WaitForCreate();
|
| void WaitForStart();
|
| @@ -179,6 +182,7 @@ class TestPrerender : public PrerenderContents::Observer,
|
|
|
| private:
|
| TestPrerenderContents* contents_;
|
| + FinalStatus final_status_;
|
| int number_of_loads_;
|
|
|
| int expected_number_of_loads_;
|
| @@ -223,6 +227,8 @@ class DestructionWaiter {
|
|
|
| private:
|
| DestructionWaiter* waiter_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(DestructionMarker);
|
| };
|
|
|
| // To be called by a DestructionMarker.
|
| @@ -232,6 +238,8 @@ class DestructionWaiter {
|
| FinalStatus expected_final_status_;
|
| bool saw_correct_status_;
|
| std::unique_ptr<DestructionMarker> marker_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(DestructionWaiter);
|
| };
|
|
|
| // PrerenderContentsFactory that uses TestPrerenderContents.
|
| @@ -264,6 +272,8 @@ class TestPrerenderContentsFactory : public PrerenderContents::Factory {
|
| };
|
|
|
| std::deque<ExpectedContents> expected_contents_queue_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestPrerenderContentsFactory);
|
| };
|
|
|
| class PrerenderInProcessBrowserTest : virtual public InProcessBrowserTest {
|
| @@ -294,21 +304,6 @@ class PrerenderInProcessBrowserTest : virtual public InProcessBrowserTest {
|
|
|
| TestPrerenderContents* GetPrerenderContentsFor(const GURL& url) const;
|
|
|
| - std::unique_ptr<TestPrerender> PrerenderTestURL(
|
| - const std::string& html_file,
|
| - FinalStatus expected_final_status,
|
| - int expected_number_of_loads);
|
| -
|
| - std::unique_ptr<TestPrerender> PrerenderTestURL(
|
| - const GURL& url,
|
| - FinalStatus expected_final_status,
|
| - int expected_number_of_loads);
|
| -
|
| - std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURL(
|
| - const std::string& html_file,
|
| - const std::vector<FinalStatus>& expected_final_status_queue,
|
| - int expected_number_of_loads);
|
| -
|
| // Set up an HTTPS server.
|
| void UseHttpsSrcServer();
|
|
|
| @@ -343,26 +338,23 @@ class PrerenderInProcessBrowserTest : virtual public InProcessBrowserTest {
|
| base::string16 MatchTaskManagerPrerender(const char* page_title);
|
|
|
| protected:
|
| - // To be called from PrerenderTestUrlImpl. Sets up the appropraite prerenders,
|
| - // checking for the expected final status, navigates to the loader url, and
|
| - // waits for the load.
|
| + // For each FinalStatus in |expected_final_status_queue| creates a prerender
|
| + // that is going to verify the correctness of its FinalStatus upon
|
| + // destruction. Waits for creation of the first PrerenderContents.
|
| std::vector<std::unique_ptr<TestPrerender>> NavigateWithPrerenders(
|
| const GURL& loader_url,
|
| - const std::vector<FinalStatus>& expected_final_status_queue,
|
| - int expected_number_of_loads);
|
| + const std::vector<FinalStatus>& expected_final_status_queue);
|
|
|
| - private:
|
| - // Implement load of a url for a prerender test. prerender_url should be
|
| - // loaded, and we should expect to see one prerenderer created, and exit, for
|
| - // each entry in expected_final_status_queue, and seeing
|
| - // expected_number_of_loads. Specific tests can provide additional
|
| - // verification. Note this should be called by one of the convenience wrappers
|
| - // defined above.
|
| - virtual std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURLImpl(
|
| - const GURL& prerender_url,
|
| - const std::vector<FinalStatus>& expected_final_status_queue,
|
| - int expected_number_of_loads) = 0;
|
| + // Creates the URL that instructs the test server to substitute the text
|
| + // |replacement_variable| in the contents of the file pointed to by
|
| + // |loader_path| with |url_to_prerender|. Also appends the |loader_query| to
|
| + // the URL.
|
| + GURL ServeLoaderURL(const std::string& loader_path,
|
| + const std::string& replacement_variable,
|
| + const GURL& url_to_prerender,
|
| + const std::string& loader_query);
|
|
|
| + private:
|
| std::unique_ptr<ExternalProtocolHandler::Delegate>
|
| external_protocol_handler_delegate_;
|
| std::unique_ptr<safe_browsing::TestSafeBrowsingServiceFactory>
|
| @@ -372,6 +364,8 @@ class PrerenderInProcessBrowserTest : virtual public InProcessBrowserTest {
|
| bool autostart_test_server_;
|
| base::HistogramTester histogram_tester_;
|
| std::unique_ptr<net::EmbeddedTestServer> https_src_server_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(PrerenderInProcessBrowserTest);
|
| };
|
|
|
| // Makes |url| respond to requests with the contents of |file|, counting the
|
|
|