Chromium Code Reviews| 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..669d4ff31c566040eccf89b5385b4c5af52f6741 100644 |
| --- a/chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc |
| +++ b/chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc |
| @@ -122,6 +122,11 @@ ChromeDataUseAscriber::GetDataUseRecorderEntry(net::URLRequest* request, |
| pending_navigation_data_use_map_.insert( |
| std::make_pair(navigation_key, new_entry)); |
| + if (visible_main_render_frames_.find(main_frame_key_iter->second) != |
| + visible_main_render_frames_.end()) { |
| + new_entry->set_is_visible(true); |
|
RyanSturm
2016/12/13 22:04:19
Instead of marking it visible here, I think it mak
Raj
2016/12/14 23:00:50
Done.
|
| + } |
| + |
| return new_entry; |
| } |
| @@ -239,6 +244,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( |
| @@ -362,4 +368,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 |