Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef COMPONENTS_STARTUP_METRIC_UTILS_BROWSER_STARTUP_METRIC_UTILS_H_ | 5 #ifndef COMPONENTS_STARTUP_METRIC_UTILS_BROWSER_STARTUP_METRIC_UTILS_H_ |
| 6 #define COMPONENTS_STARTUP_METRIC_UTILS_BROWSER_STARTUP_METRIC_UTILS_H_ | 6 #define COMPONENTS_STARTUP_METRIC_UTILS_BROWSER_STARTUP_METRIC_UTILS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| 11 | 11 |
| 12 // Utility functions to support metric collection for browser startup. | 12 // Utility functions to support metric collection for browser startup. Timings |
| 13 // should use TimeTicks as much as possible. OS-provided timings are still | |
| 14 // received as Time but are converted to TimeTicks as soon as possible as well | |
|
fdoray
2015/11/09 21:27:16
The "as well" sounds weird to me. But I trust you
gab
2015/11/10 01:25:29
Agreed, re-worded entire comment.
| |
| 15 // (while the likelihood of a skew between the two basis is as low as possible). | |
| 16 // See crbug.com/544131 for reasoning. | |
| 13 | 17 |
| 14 namespace startup_metric_utils { | 18 namespace startup_metric_utils { |
| 15 | 19 |
| 16 // An enumeration of startup temperatures. This must be kept in sync with the | 20 // An enumeration of startup temperatures. This must be kept in sync with the |
| 17 // UMA StartupType enumeration defined in histograms.xml. | 21 // UMA StartupType enumeration defined in histograms.xml. |
| 18 enum StartupTemperature { | 22 enum StartupTemperature { |
| 19 // The startup was a cold start: nearly all of the Chrome binaries and | 23 // The startup was a cold start: nearly all of the Chrome binaries and |
| 20 // resources were brought into memory using hard faults. | 24 // resources were brought into memory using hard faults. |
| 21 COLD_STARTUP_TEMPERATURE = 0, | 25 COLD_STARTUP_TEMPERATURE = 0, |
| 22 // The startup was a warm start: the Chrome binaries and resources were | 26 // The startup was a warm start: the Chrome binaries and resources were |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 52 // In Mojo, the entry point time is the time at which the shell starts. | 56 // In Mojo, the entry point time is the time at which the shell starts. |
| 53 void RecordMainEntryPointTime(const base::Time& time); | 57 void RecordMainEntryPointTime(const base::Time& time); |
| 54 | 58 |
| 55 // Call this with the time when the executable is loaded and main() is entered. | 59 // Call this with the time when the executable is loaded and main() is entered. |
| 56 // Can be different from |RecordMainEntryPointTime| when the startup process is | 60 // Can be different from |RecordMainEntryPointTime| when the startup process is |
| 57 // contained in a separate dll, such as with chrome.exe / chrome.dll on Windows. | 61 // contained in a separate dll, such as with chrome.exe / chrome.dll on Windows. |
| 58 void RecordExeMainEntryPointTime(const base::Time& time); | 62 void RecordExeMainEntryPointTime(const base::Time& time); |
| 59 | 63 |
| 60 // Call this with the time recorded just before the message loop is started. | 64 // Call this with the time recorded just before the message loop is started. |
| 61 // |is_first_run| - is the current launch part of a first run. | 65 // |is_first_run| - is the current launch part of a first run. |
| 62 void RecordBrowserMainMessageLoopStart(const base::Time& time, | 66 void RecordBrowserMainMessageLoopStart(const base::TimeTicks& ticks, |
| 63 bool is_first_run); | 67 bool is_first_run); |
| 64 | 68 |
| 65 // Call this with the time when the first browser window became visible. | 69 // Call this with the time when the first browser window became visible. |
| 66 void RecordBrowserWindowDisplay(const base::Time& time); | 70 void RecordBrowserWindowDisplay(const base::TimeTicks& ticks); |
| 67 | 71 |
| 68 // Call this with the time delta that the browser spent opening its tabs. | 72 // Call this with the time delta that the browser spent opening its tabs. |
| 69 void RecordBrowserOpenTabsDelta(const base::TimeDelta& delta); | 73 void RecordBrowserOpenTabsDelta(const base::TimeDelta& delta); |
| 70 | 74 |
| 71 // Call this with the time when the first web contents loaded its main frame, | 75 // Call this with the time when the first web contents loaded its main frame, |
| 72 // only if the first web contents was unimpended in its attempt to do so. | 76 // only if the first web contents was unimpended in its attempt to do so. |
| 73 void RecordFirstWebContentsMainFrameLoad(const base::Time& time); | 77 void RecordFirstWebContentsMainFrameLoad(const base::TimeTicks& ticks); |
| 74 | 78 |
| 75 // Call this with the time when the first web contents loaded its main frame. | 79 // Call this with the time when the first web contents loaded its main frame. |
| 76 // This records an old stat kept for comparison purposes until M49. | 80 // This records an old stat kept for comparison purposes until M49. |
| 77 void RecordDeprecatedFirstWebContentsMainFrameLoad(const base::Time& time); | 81 void RecordDeprecatedFirstWebContentsMainFrameLoad( |
| 82 const base::TimeTicks& ticks); | |
| 78 | 83 |
| 79 // Call this with the time when the first web contents had a non-empty paint, | 84 // Call this with the time when the first web contents had a non-empty paint, |
| 80 // only if the first web contents was unimpended in its attempt to do so. | 85 // only if the first web contents was unimpended in its attempt to do so. |
| 81 void RecordFirstWebContentsNonEmptyPaint(const base::Time& time); | 86 void RecordFirstWebContentsNonEmptyPaint(const base::TimeTicks& ticks); |
| 82 | 87 |
| 83 // Call this with the time when the first web contents had a non-empty paint. | 88 // Call this with the time when the first web contents had a non-empty paint. |
| 84 // This records an old stat kept for comparison purposes until M49. | 89 // This records an old stat kept for comparison purposes until M49. |
| 85 void RecordDeprecatedFirstWebContentsNonEmptyPaint(const base::Time& time); | 90 void RecordDeprecatedFirstWebContentsNonEmptyPaint( |
| 91 const base::TimeTicks& ticks); | |
| 86 | 92 |
| 87 // Call this with the time when the first web contents began navigating its main | 93 // Call this with the time when the first web contents began navigating its main |
| 88 // frame. | 94 // frame. |
| 89 void RecordFirstWebContentsMainNavigationStart(const base::Time& time); | 95 void RecordFirstWebContentsMainNavigationStart(const base::TimeTicks& ticks); |
| 90 | 96 |
| 91 // Call this with the time when the first web contents successfully committed | 97 // Call this with the time when the first web contents successfully committed |
| 92 // its navigation for the main frame. | 98 // its navigation for the main frame. |
| 93 void RecordFirstWebContentsMainNavigationFinished(const base::Time& time); | 99 void RecordFirstWebContentsMainNavigationFinished(const base::TimeTicks& ticks); |
| 94 | 100 |
| 95 // Returns the startup type. This is only currently supported on the Windows | 101 // Returns the startup type. This is only currently supported on the Windows |
| 96 // platform and will simply return UNCERTAIN_STARTUP_TYPE on other platforms. | 102 // platform and will simply return UNCERTAIN_STARTUP_TYPE on other platforms. |
| 97 // This is only valid after a call to RecordBrowserMainMessageLoopStart(). | 103 // This is only valid after a call to RecordBrowserMainMessageLoopStart(). |
| 98 StartupTemperature GetStartupTemperature(); | 104 StartupTemperature GetStartupTemperature(); |
| 99 | 105 |
| 100 } // namespace startup_metric_utils | 106 } // namespace startup_metric_utils |
| 101 | 107 |
| 102 #endif // COMPONENTS_STARTUP_METRIC_UTILS_BROWSER_STARTUP_METRIC_UTILS_H_ | 108 #endif // COMPONENTS_STARTUP_METRIC_UTILS_BROWSER_STARTUP_METRIC_UTILS_H_ |
| OLD | NEW |