load_notification_details.h revision 7dbb3d5cf0c15f500944d211057644d6a2f37371
1// Copyright (c) 2012 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_PUBLIC_BROWSER_LOAD_NOTIFICATION_DETAILS_H_
6#define CONTENT_PUBLIC_BROWSER_LOAD_NOTIFICATION_DETAILS_H_
7
8#include "base/time/time.h"
9#include "content/public/browser/navigation_controller.h"
10#include "content/public/common/page_transition_types.h"
11#include "url/gurl.h"
12
13namespace content {
14
15// The LoadNotificationDetails object contains additional details about a
16// page load that has been completed.  It was created to let the MetricsService
17// log page load metrics.
18struct LoadNotificationDetails {
19  LoadNotificationDetails(const GURL& url,
20                          PageTransition origin,
21                          base::TimeDelta load_time,
22                          NavigationController* controller,
23                          int session_index)
24      : url(url),
25        load_time(load_time),
26        session_index(session_index),
27        origin(origin),
28        controller(controller) {}
29
30  // The URL loaded.
31  GURL url;
32
33  // The length of time the page load took.
34  base::TimeDelta load_time;
35
36  // The index of the load within the tab session.
37  int session_index;
38
39  // The type of action that caused the load.
40  PageTransition origin;
41
42  // The NavigationController for the load.
43  NavigationController* controller;
44};
45
46}  // namespace content
47
48#endif  // CONTENT_PUBLIC_BROWSER_LOAD_NOTIFICATION_DETAILS_H_
49