1 // Copyright (c) 2006-2008 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 // The LoadNotificationDetails object contains additional details about a 6 // page load that has been completed. It was created to let the MetricsService 7 // log page load metrics. 8 9 #ifndef CHROME_BROWSER_LOAD_NOTIFICATION_DETAILS_H__ 10 #define CHROME_BROWSER_LOAD_NOTIFICATION_DETAILS_H__ 11 #pragma once 12 13 #include "base/basictypes.h" 14 #include "base/time.h" 15 #include "content/browser/tab_contents/navigation_controller.h" 16 #include "content/common/page_transition_types.h" 17 #include "googleurl/src/gurl.h" 18 19 class LoadNotificationDetails { 20 public: LoadNotificationDetails(const GURL & url,PageTransition::Type origin,base::TimeDelta load_time,NavigationController * controller,int session_index)21 LoadNotificationDetails(const GURL& url, 22 PageTransition::Type origin, 23 base::TimeDelta load_time, 24 NavigationController* controller, 25 int session_index) 26 : url_(url), 27 load_time_(load_time), 28 session_index_(session_index), 29 origin_(origin), 30 controller_(controller) {} 31 ~LoadNotificationDetails()32 ~LoadNotificationDetails() {} 33 url()34 const GURL& url() const { return url_; } origin()35 PageTransition::Type origin() const { return origin_; } load_time()36 base::TimeDelta load_time() const { return load_time_; } session_index()37 int session_index() const { return session_index_; } controller()38 NavigationController* controller() const { return controller_; } 39 40 private: 41 GURL url_; // the URL loaded 42 base::TimeDelta load_time_; // length of time the page load took 43 int session_index_; // index of the load within the tab session 44 PageTransition::Type origin_; // type of action that caused the load 45 NavigationController* controller_; // tells us which tab the load was in 46 LoadNotificationDetails()47 LoadNotificationDetails() {} 48 49 DISALLOW_COPY_AND_ASSIGN(LoadNotificationDetails); 50 }; 51 52 #endif // CHROME_BROWSER_LOAD_NOTIFICATION_DETAILS_H__ 53