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 11 namespace content { 12 13 class RenderViewImpl; 14 15 // Collect timing information for page loads. 16 // If a Renderview performs multiple loads, only the first one is recorded. 17 class 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