summaryrefslogtreecommitdiffstats
path: root/content/renderer/stats_collection_observer.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer/stats_collection_observer.h')
-rw-r--r--content/renderer/stats_collection_observer.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/content/renderer/stats_collection_observer.h b/content/renderer/stats_collection_observer.h
new file mode 100644
index 0000000..52d67b8
--- /dev/null
+++ b/content/renderer/stats_collection_observer.h
@@ -0,0 +1,40 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_RENDERER_STATS_COLLECTION_OBSERVER_H_
+#define CONTENT_RENDERER_STATS_COLLECTION_OBSERVER_H_
+
+#include "base/time.h"
+#include "content/public/renderer/render_view_observer.h"
+
+namespace content {
+
+class RenderViewImpl;
+
+// Collect timing information for page loads.
+// If a Renderview performs multiple loads, only the first one is recorded.
+class StatsCollectionObserver : public RenderViewObserver {
+ public:
+ explicit StatsCollectionObserver(RenderViewImpl* render_view);
+ virtual ~StatsCollectionObserver();
+
+ // RenderViewObserver implementation
+ virtual void DidStartLoading() OVERRIDE;
+ virtual void DidStopLoading() OVERRIDE;
+
+ // Timing for the page load start and stop. These functions may return
+ // a null time value under various circumstances.
+ const base::TimeTicks& load_start_time() { return start_time_; }
+ const base::TimeTicks& load_stop_time() { return stop_time_; }
+
+ private:
+ base::TimeTicks start_time_;
+ base::TimeTicks stop_time_;
+
+ DISALLOW_COPY_AND_ASSIGN(StatsCollectionObserver);
+};
+
+} // namespace content
+
+#endif // CONTENT_RENDERER_STATS_COLLECTION_OBSERVER_H_