| 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 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 return internal::INVALID_NULL_NAVIGATION_START; | 138 return internal::INVALID_NULL_NAVIGATION_START; |
| 139 } | 139 } |
| 140 | 140 |
| 141 // Verify proper ordering between the various timings. | 141 // Verify proper ordering between the various timings. |
| 142 | 142 |
| 143 if (!EventsInOrder(timing.response_start, timing.parse_timing.parse_start)) { | 143 if (!EventsInOrder(timing.response_start, timing.parse_timing.parse_start)) { |
| 144 // We sometimes get a zero response_start with a non-zero parse start. See | 144 // We sometimes get a zero response_start with a non-zero parse start. See |
| 145 // crbug.com/590212. | 145 // crbug.com/590212. |
| 146 LOG(ERROR) << "Invalid response_start " << timing.response_start | 146 LOG(ERROR) << "Invalid response_start " << timing.response_start |
| 147 << " for parse_start " << timing.parse_timing.parse_start; | 147 << " for parse_start " << timing.parse_timing.parse_start; |
| 148 return internal::INVALID_ORDER_RESPONSE_START_PARSE_START; | 148 // When browser-side navigation is enabled, we sometimes encounter this |
| 149 // error case. For now, we disable reporting of this error, since most |
| 150 // PageLoadMetricsObservers don't care about response_start and we want to |
| 151 // see how much closer fixing this error will get us to page load metrics |
| 152 // being consistent with and without browser side navigation enabled. See |
| 153 // crbug.com/716587 for more details. |
| 154 // |
| 155 // return internal::INVALID_ORDER_RESPONSE_START_PARSE_START; |
| 149 } | 156 } |
| 150 | 157 |
| 151 if (!EventsInOrder(timing.parse_timing.parse_start, | 158 if (!EventsInOrder(timing.parse_timing.parse_start, |
| 152 timing.parse_timing.parse_stop)) { | 159 timing.parse_timing.parse_stop)) { |
| 153 LOG(ERROR) << "Invalid parse_start " << timing.parse_timing.parse_start | 160 LOG(ERROR) << "Invalid parse_start " << timing.parse_timing.parse_start |
| 154 << " for parse_stop " << timing.parse_timing.parse_stop; | 161 << " for parse_stop " << timing.parse_timing.parse_stop; |
| 155 return internal::INVALID_ORDER_PARSE_START_PARSE_STOP; | 162 return internal::INVALID_ORDER_PARSE_START_PARSE_STOP; |
| 156 } | 163 } |
| 157 | 164 |
| 158 if (timing.parse_timing.parse_stop) { | 165 if (timing.parse_timing.parse_stop) { |
| (...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 804 observer->MediaStartedPlaying(video_type, is_in_main_frame); | 811 observer->MediaStartedPlaying(video_type, is_in_main_frame); |
| 805 } | 812 } |
| 806 | 813 |
| 807 void PageLoadTracker::OnNavigationDelayComplete(base::TimeDelta scheduled_delay, | 814 void PageLoadTracker::OnNavigationDelayComplete(base::TimeDelta scheduled_delay, |
| 808 base::TimeDelta actual_delay) { | 815 base::TimeDelta actual_delay) { |
| 809 for (const auto& observer : observers_) | 816 for (const auto& observer : observers_) |
| 810 observer->OnNavigationDelayComplete(scheduled_delay, actual_delay); | 817 observer->OnNavigationDelayComplete(scheduled_delay, actual_delay); |
| 811 } | 818 } |
| 812 | 819 |
| 813 } // namespace page_load_metrics | 820 } // namespace page_load_metrics |
| OLD | NEW |