| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #include "chrome/browser/data_use_measurement/chrome_data_use_ascriber.h" | 5 #include "chrome/browser/data_use_measurement/chrome_data_use_ascriber.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 #include "chrome/browser/data_use_measurement/chrome_data_use_recorder.h" | 10 #include "chrome/browser/data_use_measurement/chrome_data_use_recorder.h" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 DataUseRecorderEntry new_entry = CreateNewDataUseRecorder(request); | 130 DataUseRecorderEntry new_entry = CreateNewDataUseRecorder(request); |
| 131 new_entry->set_main_frame_request_id(navigation_key); | 131 new_entry->set_main_frame_request_id(navigation_key); |
| 132 pending_navigation_data_use_map_.insert( | 132 pending_navigation_data_use_map_.insert( |
| 133 std::make_pair(navigation_key, new_entry)); | 133 std::make_pair(navigation_key, new_entry)); |
| 134 | 134 |
| 135 return new_entry; | 135 return new_entry; |
| 136 } | 136 } |
| 137 | 137 |
| 138 DCHECK(frame_iter != main_render_frame_data_use_map_.end()); | 138 DCHECK(frame_iter != main_render_frame_data_use_map_.end()); |
| 139 auto entry = frame_iter->second; | 139 auto entry = frame_iter->second; |
| 140 request->SetUserData(DataUseRecorderEntryAsUserData::kUserDataKey, | 140 request->SetUserData( |
| 141 new DataUseRecorderEntryAsUserData(entry)); | 141 DataUseRecorderEntryAsUserData::kUserDataKey, |
| 142 base::MakeUnique<DataUseRecorderEntryAsUserData>(entry)); |
| 142 entry->AddPendingURLRequest(request); | 143 entry->AddPendingURLRequest(request); |
| 143 return entry; | 144 return entry; |
| 144 } | 145 } |
| 145 | 146 |
| 146 // Create a new DataUseRecorder for all other requests. | 147 // Create a new DataUseRecorder for all other requests. |
| 147 DataUseRecorderEntry entry = CreateNewDataUseRecorder(request); | 148 DataUseRecorderEntry entry = CreateNewDataUseRecorder(request); |
| 148 DataUse& data_use = entry->data_use(); | 149 DataUse& data_use = entry->data_use(); |
| 149 data_use.set_url(request->url()); | 150 data_use.set_url(request->url()); |
| 150 return entry; | 151 return entry; |
| 151 } | 152 } |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 data_use_recorders_.erase(entry); | 314 data_use_recorders_.erase(entry); |
| 314 } | 315 } |
| 315 return; | 316 return; |
| 316 } | 317 } |
| 317 DataUseRecorderEntry old_frame_entry = frame_it->second; | 318 DataUseRecorderEntry old_frame_entry = frame_it->second; |
| 318 if (is_same_page_navigation) { | 319 if (is_same_page_navigation) { |
| 319 old_frame_entry->MergeFrom(&(*entry)); | 320 old_frame_entry->MergeFrom(&(*entry)); |
| 320 | 321 |
| 321 for (auto* request : entry->pending_url_requests()) { | 322 for (auto* request : entry->pending_url_requests()) { |
| 322 request->RemoveUserData(DataUseRecorderEntryAsUserData::kUserDataKey); | 323 request->RemoveUserData(DataUseRecorderEntryAsUserData::kUserDataKey); |
| 323 request->SetUserData(DataUseRecorderEntryAsUserData::kUserDataKey, | 324 request->SetUserData( |
| 324 new DataUseRecorderEntryAsUserData(old_frame_entry)); | 325 DataUseRecorderEntryAsUserData::kUserDataKey, |
| 326 base::MakeUnique<DataUseRecorderEntryAsUserData>(old_frame_entry)); |
| 325 old_frame_entry->AddPendingURLRequest(request); | 327 old_frame_entry->AddPendingURLRequest(request); |
| 326 } | 328 } |
| 327 | 329 |
| 328 entry->RemoveAllPendingURLRequests(); | 330 entry->RemoveAllPendingURLRequests(); |
| 329 | 331 |
| 330 data_use_recorders_.erase(entry); | 332 data_use_recorders_.erase(entry); |
| 331 } else { | 333 } else { |
| 332 // Navigation is not same page, so remove old entry from | 334 // Navigation is not same page, so remove old entry from |
| 333 // |main_render_frame_data_use_map_|, possibly marking it complete. | 335 // |main_render_frame_data_use_map_|, possibly marking it complete. |
| 334 main_render_frame_data_use_map_.erase(frame_it); | 336 main_render_frame_data_use_map_.erase(frame_it); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 ChromeDataUseAscriber::CreateURLRequestClassifier() const { | 378 ChromeDataUseAscriber::CreateURLRequestClassifier() const { |
| 377 return base::MakeUnique<ContentURLRequestClassifier>(); | 379 return base::MakeUnique<ContentURLRequestClassifier>(); |
| 378 } | 380 } |
| 379 | 381 |
| 380 ChromeDataUseAscriber::DataUseRecorderEntry | 382 ChromeDataUseAscriber::DataUseRecorderEntry |
| 381 ChromeDataUseAscriber::CreateNewDataUseRecorder(net::URLRequest* request) { | 383 ChromeDataUseAscriber::CreateNewDataUseRecorder(net::URLRequest* request) { |
| 382 DataUseRecorderEntry entry = data_use_recorders_.emplace( | 384 DataUseRecorderEntry entry = data_use_recorders_.emplace( |
| 383 data_use_recorders_.end()); | 385 data_use_recorders_.end()); |
| 384 if (request) { | 386 if (request) { |
| 385 entry->AddPendingURLRequest(request); | 387 entry->AddPendingURLRequest(request); |
| 386 request->SetUserData(DataUseRecorderEntryAsUserData::kUserDataKey, | 388 request->SetUserData( |
| 387 new DataUseRecorderEntryAsUserData(entry)); | 389 DataUseRecorderEntryAsUserData::kUserDataKey, |
| 390 base::MakeUnique<DataUseRecorderEntryAsUserData>(entry)); |
| 388 } | 391 } |
| 389 return entry; | 392 return entry; |
| 390 } | 393 } |
| 391 | 394 |
| 392 void ChromeDataUseAscriber::WasShownOrHidden(int main_render_process_id, | 395 void ChromeDataUseAscriber::WasShownOrHidden(int main_render_process_id, |
| 393 int main_render_frame_id, | 396 int main_render_frame_id, |
| 394 bool visible) { | 397 bool visible) { |
| 395 RenderFrameHostID main_render_frame_host_id(main_render_process_id, | 398 RenderFrameHostID main_render_frame_host_id(main_render_process_id, |
| 396 main_render_frame_id); | 399 main_render_frame_id); |
| 397 | 400 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 412 int new_render_process_id, | 415 int new_render_process_id, |
| 413 int new_render_frame_id) { | 416 int new_render_frame_id) { |
| 414 if (visible_main_render_frames_.find( | 417 if (visible_main_render_frames_.find( |
| 415 RenderFrameHostID(old_render_process_id, old_render_frame_id)) != | 418 RenderFrameHostID(old_render_process_id, old_render_frame_id)) != |
| 416 visible_main_render_frames_.end()) { | 419 visible_main_render_frames_.end()) { |
| 417 WasShownOrHidden(new_render_process_id, new_render_frame_id, true); | 420 WasShownOrHidden(new_render_process_id, new_render_frame_id, true); |
| 418 } | 421 } |
| 419 } | 422 } |
| 420 | 423 |
| 421 } // namespace data_use_measurement | 424 } // namespace data_use_measurement |
| OLD | NEW |