Index: chrome/browser/page_load_metrics/page_load_metrics_observer.h |
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_observer.h b/chrome/browser/page_load_metrics/page_load_metrics_observer.h |
index 5c5b29fb2a2e5f45021bf611d10d3e51486aff56..8a40490d3e8ce64a83d4dc0e437260da5b032857 100644 |
--- a/chrome/browser/page_load_metrics/page_load_metrics_observer.h |
+++ b/chrome/browser/page_load_metrics/page_load_metrics_observer.h |
@@ -14,6 +14,7 @@ |
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_data.h" |
#include "content/public/browser/navigation_handle.h" |
#include "content/public/browser/web_contents_observer.h" |
+#include "content/public/common/resource_type.h" |
#include "third_party/WebKit/public/platform/WebInputEvent.h" |
#include "url/gurl.h" |
@@ -199,7 +200,9 @@ struct PageLoadExtraInfo { |
// Container for various information about a request within a page load. |
struct ExtraRequestInfo { |
- ExtraRequestInfo(bool was_cached, |
+ ExtraRequestInfo(const GURL& url, |
+ int frame_tree_node_id, |
+ bool was_cached, |
int64_t raw_body_bytes, |
int64_t original_network_content_length, |
std::unique_ptr<data_reduction_proxy::DataReductionProxyData> |
@@ -207,18 +210,24 @@ struct ExtraRequestInfo { |
~ExtraRequestInfo(); |
+ // The URL for the request. |
+ GURL url; |
+ |
+ // The frame tree node id that initiated the request. |
+ int frame_tree_node_id; |
+ |
// True if the resource was loaded from cache. |
- const bool was_cached; |
Charlie Harrison
2017/04/24 19:18:26
Why do all these members need to be non-const now?
jkarlin
2017/04/25 15:56:51
Remnant from when earlier when I could copy the cl
|
+ bool was_cached; |
// The number of body (not header) prefilter bytes. |
- const int64_t raw_body_bytes; |
+ int64_t raw_body_bytes; |
// The number of body (not header) bytes that the data reduction proxy saw |
// before it compressed the requests. |
- const int64_t original_network_content_length; |
+ int64_t original_network_content_length; |
// Data related to data saver. |
- const std::unique_ptr<data_reduction_proxy::DataReductionProxyData> |
+ std::unique_ptr<data_reduction_proxy::DataReductionProxyData> |
data_reduction_proxy_data; |
}; |
@@ -263,6 +272,15 @@ class PageLoadMetricsObserver { |
// callbacks, and will be deleted after invocation of this method returns. |
virtual ObservePolicy OnCommit(content::NavigationHandle* navigation_handle); |
+ // OnDidFinishSubFrameNavigation is triggered when a sub-frame of the |
+ // committed page has finished navigating. It has either committed, aborted, |
+ // was a same document navigation, or has been replaced. It is up to the |
+ // observer to query the navigation_handle to determine which happened. The |
Charlie Harrison
2017/04/24 19:18:26
Be consistent when referencing navigation_handle i
jkarlin
2017/04/25 15:56:51
Replaced with |navigation_handle|
|
+ // navigation handle holds relevant data for the navigation, but will be |
+ // destroyed soon after this call. Don't hold a reference to it. |
+ virtual ObservePolicy OnDidFinishSubFrameNavigation( |
+ content::NavigationHandle* navigation_handle); |
+ |
// OnHidden is triggered when a page leaves the foreground. It does not fire |
// when a foreground page is permanently closed; for that, listen to |
// OnComplete instead. |
@@ -377,7 +395,9 @@ class PageLoadMetricsObserver { |
const FailedProvisionalLoadInfo& failed_provisional_load_info, |
const PageLoadExtraInfo& extra_info) {} |
- // Called whenever a request is loaded for this page load. |
+ // Called whenever a request is loaded for this page load. This comes |
+ // unfiltered from the ResourceDispatcherHost and may include blob requests |
+ // and data uris. |
virtual void OnLoadedResource(const ExtraRequestInfo& extra_request_info) {} |
}; |