Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc

Issue 2572823002: Propogate the tab foreground, background change events to data use (Closed)
Patch Set: Fix trybot failure Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 if (main_render_process_id == -1 && main_render_frame_id == -1) { 232 if (main_render_process_id == -1 && main_render_frame_id == -1) {
233 auto frame_iter = main_render_frame_data_use_map_.find(key); 233 auto frame_iter = main_render_frame_data_use_map_.find(key);
234 DataUseRecorderEntry entry = frame_iter->second; 234 DataUseRecorderEntry entry = frame_iter->second;
235 if (entry->IsDataUseComplete()) { 235 if (entry->IsDataUseComplete()) {
236 OnDataUseCompleted(entry); 236 OnDataUseCompleted(entry);
237 data_use_recorders_.erase(entry); 237 data_use_recorders_.erase(entry);
238 } 238 }
239 main_render_frame_data_use_map_.erase(frame_iter); 239 main_render_frame_data_use_map_.erase(frame_iter);
240 } 240 }
241 subframe_to_mainframe_map_.erase(key); 241 subframe_to_mainframe_map_.erase(key);
242 visible_main_render_frames_.erase(key);
242 } 243 }
243 244
244 void ChromeDataUseAscriber::DidStartMainFrameNavigation( 245 void ChromeDataUseAscriber::DidStartMainFrameNavigation(
245 GURL gurl, 246 GURL gurl,
246 int render_process_id, 247 int render_process_id,
247 int render_frame_id, 248 int render_frame_id,
248 void* navigation_handle) { 249 void* navigation_handle) {
249 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); 250 DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
250 } 251 }
251 252
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 entry->RemoveAllPendingURLRequests(); 318 entry->RemoveAllPendingURLRequests();
318 319
319 data_use_recorders_.erase(entry); 320 data_use_recorders_.erase(entry);
320 } else { 321 } else {
321 // Navigation is not same page, so remove old entry from 322 // Navigation is not same page, so remove old entry from
322 // |main_render_frame_data_use_map_|, possibly marking it complete. 323 // |main_render_frame_data_use_map_|, possibly marking it complete.
323 main_render_frame_data_use_map_.erase(frame_it); 324 main_render_frame_data_use_map_.erase(frame_it);
324 if (old_frame_entry->IsDataUseComplete()) { 325 if (old_frame_entry->IsDataUseComplete()) {
325 OnDataUseCompleted(old_frame_entry); 326 OnDataUseCompleted(old_frame_entry);
326 data_use_recorders_.erase(old_frame_entry); 327 data_use_recorders_.erase(old_frame_entry);
328
329 if (visible_main_render_frames_.find(
330 RenderFrameHostID(render_process_id, render_frame_id)) !=
331 visible_main_render_frames_.end()) {
332 entry->set_is_visible(true);
333 }
327 } 334 }
328 335
329 DataUse& data_use = entry->data_use(); 336 DataUse& data_use = entry->data_use();
330 337
331 DCHECK(!data_use.url().is_valid() || data_use.url() == gurl) 338 DCHECK(!data_use.url().is_valid() || data_use.url() == gurl)
332 << "is valid: " << data_use.url().is_valid() 339 << "is valid: " << data_use.url().is_valid()
333 << "; data_use.url(): " << data_use.url().spec() 340 << "; data_use.url(): " << data_use.url().spec()
334 << "; gurl: " << gurl.spec(); 341 << "; gurl: " << gurl.spec();
335 if (!data_use.url().is_valid()) { 342 if (!data_use.url().is_valid()) {
336 data_use.set_url(gurl); 343 data_use.set_url(gurl);
(...skipping 18 matching lines...) Expand all
355 DataUseRecorderEntry entry = data_use_recorders_.emplace( 362 DataUseRecorderEntry entry = data_use_recorders_.emplace(
356 data_use_recorders_.end()); 363 data_use_recorders_.end());
357 if (request) { 364 if (request) {
358 entry->AddPendingURLRequest(request); 365 entry->AddPendingURLRequest(request);
359 request->SetUserData(DataUseRecorderEntryAsUserData::kUserDataKey, 366 request->SetUserData(DataUseRecorderEntryAsUserData::kUserDataKey,
360 new DataUseRecorderEntryAsUserData(entry)); 367 new DataUseRecorderEntryAsUserData(entry));
361 } 368 }
362 return entry; 369 return entry;
363 } 370 }
364 371
372 void ChromeDataUseAscriber::WasShownOrHidden(int main_render_process_id,
373 int main_render_frame_id,
374 bool visible) {
375 RenderFrameHostID main_render_frame_host_id(main_render_process_id,
376 main_render_frame_id);
377
378 auto frame_iter =
379 main_render_frame_data_use_map_.find(main_render_frame_host_id);
380 if (frame_iter != main_render_frame_data_use_map_.end())
381 frame_iter->second->set_is_visible(visible);
382
383 if (visible) {
384 visible_main_render_frames_.insert(main_render_frame_host_id);
385 } else {
386 visible_main_render_frames_.erase(main_render_frame_host_id);
387 }
388 }
389
390 void ChromeDataUseAscriber::RenderFrameHostChanged(int old_render_process_id,
391 int old_render_frame_id,
392 int new_render_process_id,
393 int new_render_frame_id) {
394 if (visible_main_render_frames_.find(
395 RenderFrameHostID(old_render_process_id, old_render_frame_id)) !=
396 visible_main_render_frames_.end()) {
397 WasShownOrHidden(new_render_process_id, new_render_frame_id, true);
398 }
399 }
400
365 } // namespace data_use_measurement 401 } // namespace data_use_measurement
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698