| 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 8aca728cbfffbef49bd1ac4a22f2b8f7bcc948be..c67b8de820268891065211f71a6b5e9e1f5d010f 100644
|
| --- a/chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc
|
| +++ b/chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc
|
| @@ -239,6 +239,7 @@ void ChromeDataUseAscriber::RenderFrameDeleted(int render_process_id,
|
| main_render_frame_data_use_map_.erase(frame_iter);
|
| }
|
| subframe_to_mainframe_map_.erase(key);
|
| + visible_main_render_frames_.erase(key);
|
| }
|
|
|
| void ChromeDataUseAscriber::DidStartMainFrameNavigation(
|
| @@ -324,6 +325,12 @@ void ChromeDataUseAscriber::ReadyToCommitMainFrameNavigation(
|
| if (old_frame_entry->IsDataUseComplete()) {
|
| OnDataUseCompleted(old_frame_entry);
|
| data_use_recorders_.erase(old_frame_entry);
|
| +
|
| + if (visible_main_render_frames_.find(
|
| + RenderFrameHostID(render_process_id, render_frame_id)) !=
|
| + visible_main_render_frames_.end()) {
|
| + entry->set_is_visible(true);
|
| + }
|
| }
|
|
|
| DataUse& data_use = entry->data_use();
|
| @@ -362,4 +369,33 @@ ChromeDataUseAscriber::CreateNewDataUseRecorder(net::URLRequest* request) {
|
| return entry;
|
| }
|
|
|
| +void ChromeDataUseAscriber::WasShownOrHidden(int main_render_process_id,
|
| + int main_render_frame_id,
|
| + bool visible) {
|
| + RenderFrameHostID main_render_frame_host_id(main_render_process_id,
|
| + main_render_frame_id);
|
| +
|
| + auto frame_iter =
|
| + main_render_frame_data_use_map_.find(main_render_frame_host_id);
|
| + if (frame_iter != main_render_frame_data_use_map_.end())
|
| + frame_iter->second->set_is_visible(visible);
|
| +
|
| + if (visible) {
|
| + visible_main_render_frames_.insert(main_render_frame_host_id);
|
| + } else {
|
| + visible_main_render_frames_.erase(main_render_frame_host_id);
|
| + }
|
| +}
|
| +
|
| +void ChromeDataUseAscriber::RenderFrameHostChanged(int old_render_process_id,
|
| + int old_render_frame_id,
|
| + int new_render_process_id,
|
| + int new_render_frame_id) {
|
| + if (visible_main_render_frames_.find(
|
| + RenderFrameHostID(old_render_process_id, old_render_frame_id)) !=
|
| + visible_main_render_frames_.end()) {
|
| + WasShownOrHidden(new_render_process_id, new_render_frame_id, true);
|
| + }
|
| +}
|
| +
|
| } // namespace data_use_measurement
|
|
|