| Index: chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc
|
| diff --git a/chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc b/chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc
|
| index aa31acd4b6246b53bbfcb6a0c91590829a6046f5..3dec687dfb3b6b9ba4ab85c17758fa00796f799e 100644
|
| --- a/chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc
|
| +++ b/chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc
|
| @@ -138,12 +138,8 @@ ChromeDataUseAscriber::GetOrCreateDataUseRecorderEntry(
|
| return data_use_recorders_.end();
|
| }
|
|
|
| - const auto entry = frame_iter->second;
|
| - request->SetUserData(
|
| - DataUseRecorderEntryAsUserData::kUserDataKey,
|
| - base::MakeUnique<DataUseRecorderEntryAsUserData>(entry));
|
| - entry->AddPendingURLRequest(request);
|
| - return entry;
|
| + AscribeRecorderWithRequest(request, frame_iter->second);
|
| + return frame_iter->second;
|
| }
|
|
|
| // Create a new DataUseRecorder for all other requests.
|
| @@ -376,16 +372,10 @@ void ChromeDataUseAscriber::DidFinishNavigation(int render_process_id,
|
| if (is_same_page_navigation) {
|
| old_frame_entry->MergeFrom(&(*entry));
|
|
|
| - for (auto* request : entry->pending_url_requests()) {
|
| - request->RemoveUserData(DataUseRecorderEntryAsUserData::kUserDataKey);
|
| - request->SetUserData(
|
| - DataUseRecorderEntryAsUserData::kUserDataKey,
|
| - base::MakeUnique<DataUseRecorderEntryAsUserData>(old_frame_entry));
|
| - old_frame_entry->AddPendingURLRequest(request);
|
| - }
|
| + for (auto* request : entry->pending_url_requests())
|
| + AscribeRecorderWithRequest(request, old_frame_entry);
|
|
|
| entry->RemoveAllPendingURLRequests();
|
| -
|
| data_use_recorders_.erase(entry);
|
| } else {
|
| if (old_frame_entry->IsDataUseComplete()) {
|
| @@ -434,15 +424,20 @@ ChromeDataUseAscriber::CreateNewDataUseRecorder(
|
| DataUse::TrafficType traffic_type) {
|
| DataUseRecorderEntry entry =
|
| data_use_recorders_.emplace(data_use_recorders_.end(), traffic_type);
|
| - if (request) {
|
| - entry->AddPendingURLRequest(request);
|
| - request->SetUserData(
|
| - DataUseRecorderEntryAsUserData::kUserDataKey,
|
| - base::MakeUnique<DataUseRecorderEntryAsUserData>(entry));
|
| - }
|
| + if (request)
|
| + AscribeRecorderWithRequest(request, entry);
|
| return entry;
|
| }
|
|
|
| +void ChromeDataUseAscriber::AscribeRecorderWithRequest(
|
| + net::URLRequest* request,
|
| + DataUseRecorderEntry recorder) {
|
| + recorder->AddPendingURLRequest(request);
|
| + request->SetUserData(
|
| + DataUseRecorderEntryAsUserData::kUserDataKey,
|
| + base::MakeUnique<DataUseRecorderEntryAsUserData>(recorder));
|
| +}
|
| +
|
| void ChromeDataUseAscriber::WasShownOrHidden(int main_render_process_id,
|
| int main_render_frame_id,
|
| bool visible) {
|
|
|