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

Side by Side Diff: chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.cc

Issue 2903693004: Make PageLoadMetricsWaiter more resilient (Closed)
Patch Set: rebase Created 3 years, 7 months 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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/page_load_metrics/page_load_metrics_update_dispatcher.h " 5 #include "chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h "
6 6
7 #include <ostream> 7 #include <ostream>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 void PageLoadMetricsUpdateDispatcher::UpdateSubFrameTiming( 293 void PageLoadMetricsUpdateDispatcher::UpdateSubFrameTiming(
294 content::RenderFrameHost* render_frame_host, 294 content::RenderFrameHost* render_frame_host,
295 const mojom::PageLoadTiming& new_timing) { 295 const mojom::PageLoadTiming& new_timing) {
296 const auto it = subframe_navigation_start_offset_.find( 296 const auto it = subframe_navigation_start_offset_.find(
297 render_frame_host->GetFrameTreeNodeId()); 297 render_frame_host->GetFrameTreeNodeId());
298 if (it == subframe_navigation_start_offset_.end()) { 298 if (it == subframe_navigation_start_offset_.end()) {
299 // We received timing information for an untracked load. Ignore it. 299 // We received timing information for an untracked load. Ignore it.
300 return; 300 return;
301 } 301 }
302 302
303 client_->OnSubFrameTimingChanged(new_timing);
304
303 base::TimeDelta navigation_start_offset = it->second; 305 base::TimeDelta navigation_start_offset = it->second;
304 MergePaintTiming(navigation_start_offset, *(new_timing.paint_timing), 306 MergePaintTiming(navigation_start_offset, *(new_timing.paint_timing),
305 false /* is_main_frame */); 307 false /* is_main_frame */);
306 308
307 DispatchTimingUpdates(); 309 DispatchTimingUpdates();
308 } 310 }
309 311
310 void PageLoadMetricsUpdateDispatcher::MergePaintTiming( 312 void PageLoadMetricsUpdateDispatcher::MergePaintTiming(
311 base::TimeDelta navigation_start_offset, 313 base::TimeDelta navigation_start_offset,
312 const mojom::PaintTiming& new_paint_timing, 314 const mojom::PaintTiming& new_paint_timing,
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 422
421 internal::PageLoadTimingStatus status = 423 internal::PageLoadTimingStatus status =
422 IsValidPageLoadTiming(*pending_merged_page_timing_); 424 IsValidPageLoadTiming(*pending_merged_page_timing_);
423 UMA_HISTOGRAM_ENUMERATION(internal::kPageLoadTimingDispatchStatus, status, 425 UMA_HISTOGRAM_ENUMERATION(internal::kPageLoadTimingDispatchStatus, status,
424 internal::LAST_PAGE_LOAD_TIMING_STATUS); 426 internal::LAST_PAGE_LOAD_TIMING_STATUS);
425 427
426 client_->OnTimingChanged(); 428 client_->OnTimingChanged();
427 } 429 }
428 430
429 } // namespace page_load_metrics 431 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698