Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: content/public/browser/resource_request_info.h

Issue 2798953002: [PageLoadMetrics] Keep track of Ad Sizes on Pages (Closed)
Patch Set: Remove dcheck Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_INFO_H_ 5 #ifndef CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_INFO_H_
6 #define CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_INFO_H_ 6 #define CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_INFO_H_
7 7
8 #include "base/callback_forward.h" 8 #include "base/callback_forward.h"
9 #include "content/common/content_export.h" 9 #include "content/common/content_export.h"
10 #include "content/public/browser/global_request_id.h" 10 #include "content/public/browser/global_request_id.h"
11 #include "content/public/common/previews_state.h" 11 #include "content/public/common/previews_state.h"
12 #include "content/public/common/resource_type.h" 12 #include "content/public/common/resource_type.h"
13 #include "third_party/WebKit/public/platform/WebPageVisibilityState.h" 13 #include "third_party/WebKit/public/platform/WebPageVisibilityState.h"
14 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" 14 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
15 #include "ui/base/page_transition_types.h" 15 #include "ui/base/page_transition_types.h"
16 16
17 namespace net { 17 namespace net {
18 class URLRequest; 18 class URLRequest;
19 } 19 }
20 20
21 namespace content { 21 namespace content {
22 class NavigationUIData; 22 class NavigationUIData;
23 class RenderFrameHost;
23 class ResourceContext; 24 class ResourceContext;
24 class WebContents; 25 class WebContents;
25 26
26 // Each URLRequest allocated by the ResourceDispatcherHost has a 27 // Each URLRequest allocated by the ResourceDispatcherHost has a
27 // ResourceRequestInfo instance associated with it. 28 // ResourceRequestInfo instance associated with it.
28 class ResourceRequestInfo { 29 class ResourceRequestInfo {
29 public: 30 public:
30 // Returns the ResourceRequestInfo associated with the given URLRequest. 31 // Returns the ResourceRequestInfo associated with the given URLRequest.
31 CONTENT_EXPORT static const ResourceRequestInfo* ForRequest( 32 CONTENT_EXPORT static const ResourceRequestInfo* ForRequest(
32 const net::URLRequest* request); 33 const net::URLRequest* request);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 const net::URLRequest* request); 67 const net::URLRequest* request);
67 68
68 // A callback that returns a pointer to a WebContents. The callback can 69 // A callback that returns a pointer to a WebContents. The callback can
69 // always be used, but it may return nullptr: if the info used to 70 // always be used, but it may return nullptr: if the info used to
70 // instantiate the callback can no longer be used to return a WebContents, 71 // instantiate the callback can no longer be used to return a WebContents,
71 // nullptr will be returned instead. 72 // nullptr will be returned instead.
72 // The callback should only run on the UI thread and it should always be 73 // The callback should only run on the UI thread and it should always be
73 // non-null. 74 // non-null.
74 using WebContentsGetter = base::Callback<WebContents*(void)>; 75 using WebContentsGetter = base::Callback<WebContents*(void)>;
75 76
77 // A callback that returns a pointer to a RenderFrameHost. The callback can
78 // always be used, but it may return nullptr: if the info used to
79 // instantiate the callback can no longer be used to return a
80 // RenderFrameHost, nullptr will be returned instead.
81 // The callback should only run on the UI thread and it should always be
82 // non-null.
83 using RenderFrameHostGetter = base::Callback<RenderFrameHost*(void)>;
84
76 // Returns a callback that returns a pointer to the WebContents this request 85 // Returns a callback that returns a pointer to the WebContents this request
77 // is associated with, or nullptr if it no longer exists or the request is 86 // is associated with, or nullptr if it no longer exists or the request is
78 // not associated with a WebContents. The callback should only run on the UI 87 // not associated with a WebContents. The callback should only run on the UI
79 // thread. 88 // thread.
80 // Note: Not all resource requests will be owned by a WebContents. For 89 // Note: Not all resource requests will be owned by a WebContents. For
81 // example, requests made by a ServiceWorker. 90 // example, requests made by a ServiceWorker.
82 virtual WebContentsGetter GetWebContentsGetterForRequest() const = 0; 91 virtual WebContentsGetter GetWebContentsGetterForRequest() const = 0;
83 92
93 // Returns a callback that returns a pointer to the RenderFrameHost this
94 // request is associated with, or nullptry if it no longer exists or the
95 // request is not associated with a RenderFrameHost. This callback should
96 // only be run on the UI thread.
97 // Note: Not all resource requests will be owned by a RenderFrameHost. For
98 // example, requests made by a ServiceWorker.
clamy 2017/04/14 13:56:09 Looking at the implementation, this comment is sim
Charlie Harrison 2017/04/14 14:02:25 I think returning nullptr here for navigations is
jkarlin 2017/04/14 17:50:20 I spoke with clamy@ and csharrison@. We agreed on
99 virtual RenderFrameHostGetter GetRenderFrameHostGetterForRequest() const = 0;
100
84 // Returns the associated ResourceContext. 101 // Returns the associated ResourceContext.
85 virtual ResourceContext* GetContext() const = 0; 102 virtual ResourceContext* GetContext() const = 0;
86 103
87 // The child process unique ID of the requestor. 104 // The child process unique ID of the requestor.
88 // To get a WebContents, use GetWebContentsGetterForRequest instead. 105 // To get a WebContents, use GetWebContentsGetterForRequest instead.
89 virtual int GetChildID() const = 0; 106 virtual int GetChildID() const = 0;
90 107
91 // The IPC route identifier for this request (this identifies the RenderView 108 // The IPC route identifier for this request (this identifies the RenderView
92 // or like-thing in the renderer that the request gets routed to). 109 // or like-thing in the renderer that the request gets routed to).
93 // To get a WebContents, use GetWebContentsGetterForRequest instead. 110 // To get a WebContents, use GetWebContentsGetterForRequest instead.
94 // Don't use this method for new code, as RenderViews are going away. 111 // Don't use this method for new code, as RenderViews are going away.
95 virtual int GetRouteID() const = 0; 112 virtual int GetRouteID() const = 0;
96 113
97 // The globally unique identifier for this request. 114 // The globally unique identifier for this request.
98 virtual GlobalRequestID GetGlobalRequestID() const = 0; 115 virtual GlobalRequestID GetGlobalRequestID() const = 0;
99 116
100 // The pid of the originating process, if the request is sent on behalf of a 117 // The pid of the originating process, if the request is sent on behalf of a
101 // another process. Otherwise it is 0. 118 // another process. Otherwise it is 0.
102 virtual int GetOriginPID() const = 0; 119 virtual int GetOriginPID() const = 0;
103 120
104 // Returns the FrameTreeNode ID for this frame. This ID is browser-global and 121 // Returns the FrameTreeNode ID for this frame. This ID is browser-global and
105 // uniquely identifies a frame that hosts content. 122 // uniquely identifies a frame that hosts content.
123 // Note: Returns -1 for all requests except PlzNavigate requests.
124 // TODO(jkarlin): Set the id for all requests from frames.
106 virtual int GetFrameTreeNodeId() const = 0; 125 virtual int GetFrameTreeNodeId() const = 0;
107 126
108 // The IPC route identifier of the RenderFrame. 127 // The IPC route identifier of the RenderFrame.
109 // To get a WebContents, use GetWebContentsGetterForRequest instead. 128 // To get a WebContents, use GetWebContentsGetterForRequest instead.
110 // TODO(jam): once all navigation and resource requests are sent between 129 // TODO(jam): once all navigation and resource requests are sent between
111 // frames and RenderView/RenderViewHost aren't involved we can remove this and 130 // frames and RenderView/RenderViewHost aren't involved we can remove this and
112 // just use GetRouteID above. 131 // just use GetRouteID above.
113 virtual int GetRenderFrameID() const = 0; 132 virtual int GetRenderFrameID() const = 0;
114 133
115 // True if GetRenderFrameID() represents a main frame in the RenderView. 134 // True if GetRenderFrameID() represents a main frame in the RenderView.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 // UI thread at the beginning of navigation. 186 // UI thread at the beginning of navigation.
168 virtual NavigationUIData* GetNavigationUIData() const = 0; 187 virtual NavigationUIData* GetNavigationUIData() const = 0;
169 188
170 protected: 189 protected:
171 virtual ~ResourceRequestInfo() {} 190 virtual ~ResourceRequestInfo() {}
172 }; 191 };
173 192
174 } // namespace content 193 } // namespace content
175 194
176 #endif // CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_INFO_H_ 195 #endif // CONTENT_PUBLIC_BROWSER_RESOURCE_REQUEST_INFO_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698