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..ad624597aa9b54447262b3ed9d886bda1222a969 100644 |
--- a/chrome/browser/page_load_metrics/page_load_metrics_observer.h |
+++ b/chrome/browser/page_load_metrics/page_load_metrics_observer.h |
@@ -197,15 +197,18 @@ struct PageLoadExtraInfo { |
const PageLoadMetadata child_frame_metadata; |
}; |
-// Container for various information about a request within a page load. |
-struct ExtraRequestInfo { |
- ExtraRequestInfo(bool was_cached, |
- int64_t raw_body_bytes, |
- int64_t original_network_content_length, |
- std::unique_ptr<data_reduction_proxy::DataReductionProxyData> |
- data_reduction_proxy_data); |
- |
- ~ExtraRequestInfo(); |
+// Container for various information about a completed request within a page |
+// load. |
+struct ExtraRequestCompleteInfo { |
+ ExtraRequestCompleteInfo( |
+ bool was_cached, |
+ int64_t raw_body_bytes, |
+ int64_t original_network_content_length, |
+ std::unique_ptr<data_reduction_proxy::DataReductionProxyData> |
+ data_reduction_proxy_data, |
+ content::ResourceType detected_resource_type); |
+ |
+ ~ExtraRequestCompleteInfo(); |
// True if the resource was loaded from cache. |
const bool was_cached; |
@@ -220,6 +223,27 @@ struct ExtraRequestInfo { |
// Data related to data saver. |
const std::unique_ptr<data_reduction_proxy::DataReductionProxyData> |
data_reduction_proxy_data; |
+ |
+ // The type of the request as gleaned from the mime type. This may |
+ // be more accurate than the type in the ExtraRequestStartInfo since we can |
+ // examine the type headers that arrived with the request. During XHRs, we |
+ // sometimes see resources come back as a different type than we expected. |
+ const content::ResourceType resource_type; |
+}; |
+ |
+// Container for various information about a started request within a page load. |
+struct ExtraRequestStartInfo { |
+ explicit ExtraRequestStartInfo(content::ResourceType type); |
+ |
+ ExtraRequestStartInfo(const ExtraRequestStartInfo& other); |
+ |
+ ~ExtraRequestStartInfo(); |
+ |
+ // The type of the request as gleaned from the DOM or the file extension. This |
+ // may be less accurate than the type at request completion time, which has |
+ // access to mime-type headers. During XHRs, we sometimes see resources come |
+ // back as a different type than we expected. |
+ const content::ResourceType resource_type; |
}; |
// Interface for PageLoadMetrics observers. All instances of this class are |
@@ -377,8 +401,13 @@ class PageLoadMetricsObserver { |
const FailedProvisionalLoadInfo& failed_provisional_load_info, |
const PageLoadExtraInfo& extra_info) {} |
+ // Called whenever a request load begins. |
+ virtual void OnStartedResource( |
+ const ExtraRequestStartInfo& extra_request_start_info) {} |
+ |
// Called whenever a request is loaded for this page load. |
- virtual void OnLoadedResource(const ExtraRequestInfo& extra_request_info) {} |
+ virtual void OnLoadedResource( |
+ const ExtraRequestCompleteInfo& extra_request_complete_info) {} |
}; |
} // namespace page_load_metrics |