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

Unified Diff: chrome/browser/prerender/prerender_test_utils.h

Issue 2423383002: [Prerender] first contentful paint histograms. (Closed)
Patch Set: Generalize internal histogram function name Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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 d7f4af8de292a2d9585e96eb596dcaeefde913c7..aed9d2cd469cf0fff467fde79a69b2d87b985508 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,22 @@ 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 SetNavigationStartMilliseconds(int ms) {
+ SetNavigationStartTicksForTesting(base::TimeTicks() +
+ base::TimeDelta::FromMilliseconds(ms));
+ }
+
+ void SetNavigationStartFromZero(base::TimeDelta delta) {
+ SetNavigationStartTicksForTesting(base::TimeTicks() + delta);
+ }
+};
+
// Makes |url| respond to requests with the contents of |file|, counting the
// number that start in |counter|.
void CreateCountingInterceptorOnIO(

Powered by Google App Engine
This is Rietveld 408576698