1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_RENDERER_STATS_COLLECTION_OBSERVER_H_ 6#define CONTENT_RENDERER_STATS_COLLECTION_OBSERVER_H_ 7 8#include "base/time/time.h" 9#include "content/public/renderer/render_view_observer.h" 10 11namespace content { 12 13class RenderViewImpl; 14 15// Collect timing information for page loads. 16// If a Renderview performs multiple loads, only the first one is recorded. 17class StatsCollectionObserver : public RenderViewObserver { 18 public: 19 explicit StatsCollectionObserver(RenderViewImpl* render_view); 20 virtual ~StatsCollectionObserver(); 21 22 // RenderViewObserver implementation 23 virtual void DidStartLoading() OVERRIDE; 24 virtual void DidStopLoading() OVERRIDE; 25 26 // Timing for the page load start and stop. These functions may return 27 // a null time value under various circumstances. 28 const base::Time& load_start_time() { return start_time_; } 29 const base::Time& load_stop_time() { return stop_time_; } 30 31 private: 32 base::Time start_time_; 33 base::Time stop_time_; 34 35 DISALLOW_COPY_AND_ASSIGN(StatsCollectionObserver); 36}; 37 38} // namespace content 39 40#endif // CONTENT_RENDERER_STATS_COLLECTION_OBSERVER_H_ 41