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/page_load_metrics/page_load_tracker.h" | 5 #include "chrome/browser/page_load_metrics/page_load_tracker.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <ostream> | 8 #include <ostream> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 UMA_HISTOGRAM_BOOLEAN(internal::kPageLoadCompletedAfterAppBackground, | 110 UMA_HISTOGRAM_BOOLEAN(internal::kPageLoadCompletedAfterAppBackground, |
111 completed_after_background); | 111 completed_after_background); |
112 } | 112 } |
113 | 113 |
114 void DispatchObserverTimingCallbacks( | 114 void DispatchObserverTimingCallbacks( |
115 PageLoadMetricsObserver* observer, | 115 PageLoadMetricsObserver* observer, |
116 const mojom::PageLoadTiming& last_timing, | 116 const mojom::PageLoadTiming& last_timing, |
117 const mojom::PageLoadTiming& new_timing, | 117 const mojom::PageLoadTiming& new_timing, |
118 const PageLoadExtraInfo& extra_info) { | 118 const PageLoadExtraInfo& extra_info) { |
119 if (!last_timing.Equals(new_timing)) | 119 if (!last_timing.Equals(new_timing)) |
120 observer->OnTimingUpdate(new_timing, extra_info); | 120 observer->OnTimingUpdate(false /* is_subframe */, new_timing, extra_info); |
121 if (new_timing.document_timing->dom_content_loaded_event_start && | 121 if (new_timing.document_timing->dom_content_loaded_event_start && |
122 !last_timing.document_timing->dom_content_loaded_event_start) | 122 !last_timing.document_timing->dom_content_loaded_event_start) |
123 observer->OnDomContentLoadedEventStart(new_timing, extra_info); | 123 observer->OnDomContentLoadedEventStart(new_timing, extra_info); |
124 if (new_timing.document_timing->load_event_start && | 124 if (new_timing.document_timing->load_event_start && |
125 !last_timing.document_timing->load_event_start) | 125 !last_timing.document_timing->load_event_start) |
126 observer->OnLoadEventStart(new_timing, extra_info); | 126 observer->OnLoadEventStart(new_timing, extra_info); |
127 if (new_timing.document_timing->first_layout && | 127 if (new_timing.document_timing->first_layout && |
128 !last_timing.document_timing->first_layout) | 128 !last_timing.document_timing->first_layout) |
129 observer->OnFirstLayout(new_timing, extra_info); | 129 observer->OnFirstLayout(new_timing, extra_info); |
130 if (new_timing.paint_timing->first_paint && | 130 if (new_timing.paint_timing->first_paint && |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
596 PageLoadExtraInfo extra_info(ComputePageLoadExtraInfo()); | 596 PageLoadExtraInfo extra_info(ComputePageLoadExtraInfo()); |
597 for (const auto& observer : observers_) { | 597 for (const auto& observer : observers_) { |
598 DispatchObserverTimingCallbacks( | 598 DispatchObserverTimingCallbacks( |
599 observer.get(), *last_dispatched_merged_page_timing_, | 599 observer.get(), *last_dispatched_merged_page_timing_, |
600 metrics_update_dispatcher_.timing(), extra_info); | 600 metrics_update_dispatcher_.timing(), extra_info); |
601 } | 601 } |
602 last_dispatched_merged_page_timing_ = | 602 last_dispatched_merged_page_timing_ = |
603 metrics_update_dispatcher_.timing().Clone(); | 603 metrics_update_dispatcher_.timing().Clone(); |
604 } | 604 } |
605 | 605 |
| 606 void PageLoadTracker::OnSubFrameTimingChanged( |
| 607 const mojom::PageLoadTiming& timing) { |
| 608 PageLoadExtraInfo extra_info(ComputePageLoadExtraInfo()); |
| 609 for (const auto& observer : observers_) { |
| 610 observer->OnTimingUpdate(true /* is_subframe*/, timing, extra_info); |
| 611 } |
| 612 } |
| 613 |
606 void PageLoadTracker::OnMainFrameMetadataChanged() { | 614 void PageLoadTracker::OnMainFrameMetadataChanged() { |
607 PageLoadExtraInfo extra_info(ComputePageLoadExtraInfo()); | 615 PageLoadExtraInfo extra_info(ComputePageLoadExtraInfo()); |
608 for (const auto& observer : observers_) { | 616 for (const auto& observer : observers_) { |
609 observer->OnLoadingBehaviorObserved(extra_info); | 617 observer->OnLoadingBehaviorObserved(extra_info); |
610 } | 618 } |
611 } | 619 } |
612 | 620 |
613 void PageLoadTracker::OnSubframeMetadataChanged() { | 621 void PageLoadTracker::OnSubframeMetadataChanged() { |
614 PageLoadExtraInfo extra_info(ComputePageLoadExtraInfo()); | 622 PageLoadExtraInfo extra_info(ComputePageLoadExtraInfo()); |
615 for (const auto& observer : observers_) { | 623 for (const auto& observer : observers_) { |
616 observer->OnLoadingBehaviorObserved(extra_info); | 624 observer->OnLoadingBehaviorObserved(extra_info); |
617 } | 625 } |
618 } | 626 } |
619 | 627 |
620 } // namespace page_load_metrics | 628 } // namespace page_load_metrics |
OLD | NEW |