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 |