| 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 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 main_render_frame_data_use_map_.erase(entry->main_frame_id()); | 363 main_render_frame_data_use_map_.erase(entry->main_frame_id()); |
| 364 data_use_recorders_.erase(entry); | 364 data_use_recorders_.erase(entry); |
| 365 } | 365 } |
| 366 return; | 366 return; |
| 367 } | 367 } |
| 368 DataUseRecorderEntry old_frame_entry = frame_it->second; | 368 DataUseRecorderEntry old_frame_entry = frame_it->second; |
| 369 old_frame_entry->set_page_transition(page_transition); | 369 old_frame_entry->set_page_transition(page_transition); |
| 370 NotifyPageLoadCommit(old_frame_entry); | 370 NotifyPageLoadCommit(old_frame_entry); |
| 371 | 371 |
| 372 if (is_same_page_navigation) { | 372 if (is_same_page_navigation) { |
| 373 old_frame_entry->MergeFrom(&(*entry)); | 373 for (auto& request : entry->pending_url_requests()) { |
| 374 | 374 AscribeRecorderWithRequest(request.first, old_frame_entry); |
| 375 for (auto* request : entry->pending_url_requests()) | 375 old_frame_entry->MovePendingURLRequest(&(*entry), request.first); |
| 376 AscribeRecorderWithRequest(request, old_frame_entry); | 376 } |
| 377 | |
| 378 entry->RemoveAllPendingURLRequests(); | |
| 379 data_use_recorders_.erase(entry); | 377 data_use_recorders_.erase(entry); |
| 380 } else { | 378 } else { |
| 381 if (old_frame_entry->IsDataUseComplete()) { | 379 if (old_frame_entry->IsDataUseComplete()) { |
| 382 NotifyDataUseCompleted(old_frame_entry); | 380 NotifyDataUseCompleted(old_frame_entry); |
| 383 data_use_recorders_.erase(old_frame_entry); | 381 data_use_recorders_.erase(old_frame_entry); |
| 384 | 382 |
| 385 if (visible_main_render_frames_.find(mainframe) != | 383 if (visible_main_render_frames_.find(mainframe) != |
| 386 visible_main_render_frames_.end()) { | 384 visible_main_render_frames_.end()) { |
| 387 entry->set_is_visible(true); | 385 entry->set_is_visible(true); |
| 388 } | 386 } |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 DataUse::TrafficType traffic_type) { | 422 DataUse::TrafficType traffic_type) { |
| 425 DataUseRecorderEntry entry = | 423 DataUseRecorderEntry entry = |
| 426 data_use_recorders_.emplace(data_use_recorders_.end(), traffic_type); | 424 data_use_recorders_.emplace(data_use_recorders_.end(), traffic_type); |
| 427 if (request) | 425 if (request) |
| 428 AscribeRecorderWithRequest(request, entry); | 426 AscribeRecorderWithRequest(request, entry); |
| 429 return entry; | 427 return entry; |
| 430 } | 428 } |
| 431 | 429 |
| 432 void ChromeDataUseAscriber::AscribeRecorderWithRequest( | 430 void ChromeDataUseAscriber::AscribeRecorderWithRequest( |
| 433 net::URLRequest* request, | 431 net::URLRequest* request, |
| 434 DataUseRecorderEntry recorder) { | 432 DataUseRecorderEntry entry) { |
| 435 recorder->AddPendingURLRequest(request); | 433 entry->AddPendingURLRequest(request); |
| 436 request->SetUserData( | 434 request->SetUserData(DataUseRecorderEntryAsUserData::kUserDataKey, |
| 437 DataUseRecorderEntryAsUserData::kUserDataKey, | 435 base::MakeUnique<DataUseRecorderEntryAsUserData>(entry)); |
| 438 base::MakeUnique<DataUseRecorderEntryAsUserData>(recorder)); | |
| 439 } | 436 } |
| 440 | 437 |
| 441 void ChromeDataUseAscriber::WasShownOrHidden(int main_render_process_id, | 438 void ChromeDataUseAscriber::WasShownOrHidden(int main_render_process_id, |
| 442 int main_render_frame_id, | 439 int main_render_frame_id, |
| 443 bool visible) { | 440 bool visible) { |
| 444 RenderFrameHostID main_render_frame_host_id(main_render_process_id, | 441 RenderFrameHostID main_render_frame_host_id(main_render_process_id, |
| 445 main_render_frame_id); | 442 main_render_frame_id); |
| 446 | 443 |
| 447 auto frame_iter = | 444 auto frame_iter = |
| 448 main_render_frame_data_use_map_.find(main_render_frame_host_id); | 445 main_render_frame_data_use_map_.find(main_render_frame_host_id); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 469 pending_navigation_global_request_id_.find(old_frame); | 466 pending_navigation_global_request_id_.find(old_frame); |
| 470 if (pending_navigation_iter != pending_navigation_global_request_id_.end()) { | 467 if (pending_navigation_iter != pending_navigation_global_request_id_.end()) { |
| 471 pending_navigation_global_request_id_.insert(std::make_pair( | 468 pending_navigation_global_request_id_.insert(std::make_pair( |
| 472 RenderFrameHostID(new_render_process_id, new_render_frame_id), | 469 RenderFrameHostID(new_render_process_id, new_render_frame_id), |
| 473 pending_navigation_iter->second)); | 470 pending_navigation_iter->second)); |
| 474 pending_navigation_global_request_id_.erase(pending_navigation_iter); | 471 pending_navigation_global_request_id_.erase(pending_navigation_iter); |
| 475 } | 472 } |
| 476 } | 473 } |
| 477 | 474 |
| 478 } // namespace data_use_measurement | 475 } // namespace data_use_measurement |
| OLD | NEW |