Home | History | Annotate | Download | only in browser
      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:
     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 
     32   ~LoadNotificationDetails() {}
     33 
     34   const GURL& url() const { return url_; }
     35   PageTransition::Type origin() const { return origin_; }
     36   base::TimeDelta load_time() const { return load_time_; }
     37   int session_index() const { return session_index_; }
     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 
     47   LoadNotificationDetails() {}
     48 
     49   DISALLOW_COPY_AND_ASSIGN(LoadNotificationDetails);
     50 };
     51 
     52 #endif  // CHROME_BROWSER_LOAD_NOTIFICATION_DETAILS_H__
     53