| 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 741d93f6a6e15531e228165dc03bad8cf607decc..eb00f63b7c1f439140fc51ff09a5be8eaac15768 100644
|
| --- a/chrome/browser/prerender/prerender_test_utils.h
|
| +++ b/chrome/browser/prerender/prerender_test_utils.h
|
| @@ -17,6 +17,7 @@
|
| #include "base/run_loop.h"
|
| #include "base/test/histogram_tester.h"
|
| #include "chrome/browser/external_protocol/external_protocol_handler.h"
|
| +#include "chrome/browser/page_load_metrics/observers/prerender_page_load_metrics_observer.h"
|
| #include "chrome/browser/prerender/prerender_contents.h"
|
| #include "chrome/browser/prerender/prerender_manager.h"
|
| #include "chrome/browser/safe_browsing/test_safe_browsing_service.h"
|
| @@ -242,6 +243,26 @@ class DestructionWaiter {
|
| DISALLOW_COPY_AND_ASSIGN(DestructionWaiter);
|
| };
|
|
|
| +// Wait until a PrerenderManager has seen a first contentful paint.
|
| +class FirstContentfulPaintManagerWaiter : public PrerenderManagerObserver {
|
| + public:
|
| + // Create and return a pointer to a |FirstContentfulPaintManagerWaiter|. The
|
| + // instance is owned by the |PrerenderManager|.
|
| + static FirstContentfulPaintManagerWaiter* Create(PrerenderManager* manager);
|
| + ~FirstContentfulPaintManagerWaiter();
|
| +
|
| + void OnFirstContentfulPaint() override;
|
| +
|
| + // Wait for a first contentful paint to be seen by our PrerenderManager.
|
| + void Wait();
|
| +
|
| + private:
|
| + FirstContentfulPaintManagerWaiter();
|
| +
|
| + std::unique_ptr<base::RunLoop> waiter_;
|
| + bool saw_fcp_;
|
| +};
|
| +
|
| // PrerenderContentsFactory that uses TestPrerenderContents.
|
| class TestPrerenderContentsFactory : public PrerenderContents::Factory {
|
| public:
|
| @@ -368,6 +389,17 @@ class PrerenderInProcessBrowserTest : virtual public InProcessBrowserTest {
|
| DISALLOW_COPY_AND_ASSIGN(PrerenderInProcessBrowserTest);
|
| };
|
|
|
| +// A test observer that allows the observed navigation start time to be set.
|
| +class TestPrerenderPageLoadMetricsObserver
|
| + : public PrerenderPageLoadMetricsObserver {
|
| + public:
|
| + using PrerenderPageLoadMetricsObserver::PrerenderPageLoadMetricsObserver;
|
| +
|
| + void SetNavigationStartTo(base::TimeTicks ticks) {
|
| + SetNavigationStartTicksForTesting(ticks);
|
| + }
|
| +};
|
| +
|
| // Makes |url| respond to requests with the contents of |file|, counting the
|
| // number that start in |counter|.
|
| void CreateCountingInterceptorOnIO(
|
|
|