Index: third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
index e17a24a7547d7b7344346c6ae243950ca2102002..84ea48e3072389bc35b764b69224bc6f97a586ec 100644 |
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
@@ -547,8 +547,19 @@ Resource* ResourceFetcher::RequestResource( |
FetchRequest& request, |
const ResourceFactory& factory, |
const SubstituteData& substitute_data) { |
- unsigned long identifier = CreateUniqueIdentifier(); |
ResourceRequest& resource_request = request.MutableResourceRequest(); |
+ int browser_generated_request_id = |
+ resource_request.BrowserGeneratedRequestId(); |
+ |
+ // If set browser_generated_request_id should be a negative number |
+ DCHECK_LE(browser_generated_request_id, 0); |
+ // We use positive numbers for blink generated fetch identifiers so we can |
+ // distinguish between them and make sure there are no collisions. |
+ unsigned long identifier = |
+ browser_generated_request_id |
+ ? static_cast<unsigned long>(browser_generated_request_id) & |
+ 0xFFFFFFFF |
+ : CreateUniqueIdentifier(); |
network_instrumentation::ScopedResourceLoadTracker |
scoped_resource_load_tracker(identifier, resource_request); |
SCOPED_BLINK_UMA_HISTOGRAM_TIMER("Blink.Fetch.RequestResourceTime"); |