android_webview: measure startup time with uptimeMillis().

elapsedRealtime() includes system sleep time; this can make the
measurements noisy since we can't be doing any startup while the CPU is
asleep. Use uptimeMillis instead as this doesn't count sleep.

Bug: 1204623
Change-Id: Id7be8674238bd50364e54efd7c67b67b22ce8e5d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2860307
Auto-Submit: Richard Coles <torne@chromium.org>
Reviewed-by: Mugdha Lakhani <nator@chromium.org>
Commit-Queue: Mugdha Lakhani <nator@chromium.org>
Cr-Commit-Position: refs/heads/master@{#878142}
NOKEYCHECK=True
GitOrigin-RevId: da3bb54157d4603b9c820d6cfdf61859f804dfb2
diff --git a/java/src/com/android/webview/chromium/WebViewChromium.java b/java/src/com/android/webview/chromium/WebViewChromium.java
index fff24ff..9222e72 100644
--- a/java/src/com/android/webview/chromium/WebViewChromium.java
+++ b/java/src/com/android/webview/chromium/WebViewChromium.java
@@ -276,7 +276,7 @@
     // so is ignored. TODO: remove it from WebViewProvider.
     public void init(final Map<String, Object> javaScriptInterfaces,
             final boolean privateBrowsing) {
-        long startTime = SystemClock.elapsedRealtime();
+        long startTime = SystemClock.uptimeMillis();
         boolean isFirstWebViewInit = !mFactory.hasStarted();
         try (ScopedSysTraceEvent e1 = ScopedSysTraceEvent.scoped("WebViewChromium.init")) {
             if (privateBrowsing) {
@@ -380,11 +380,11 @@
             if (isFirstWebViewInit) {
                 RecordHistogram.recordTimesHistogram(
                         "Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Cold",
-                        SystemClock.elapsedRealtime() - startTime);
+                        SystemClock.uptimeMillis() - startTime);
             } else {
                 RecordHistogram.recordTimesHistogram(
                         "Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Warm",
-                        SystemClock.elapsedRealtime() - startTime);
+                        SystemClock.uptimeMillis() - startTime);
             }
         }
     }
diff --git a/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
index a212c9b..cbe8278 100644
--- a/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
+++ b/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
@@ -144,7 +144,7 @@
     private static final int DIR_RESOURCE_PAKS_ANDROID = 3003;
 
     protected void startChromiumLocked() {
-        long startTime = SystemClock.elapsedRealtime();
+        long startTime = SystemClock.uptimeMillis();
         try (ScopedSysTraceEvent event =
                         ScopedSysTraceEvent.scoped("WebViewChromiumAwInit.startChromiumLocked")) {
             assert Thread.holdsLock(mLock) && ThreadUtils.runningOnUiThread();
@@ -238,7 +238,7 @@
         }
         RecordHistogram.recordTimesHistogram(
                 "Android.WebView.Startup.CreationTime.StartChromiumLocked",
-                SystemClock.elapsedRealtime() - startTime);
+                SystemClock.uptimeMillis() - startTime);
     }
 
     /**
diff --git a/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
index 495ebe0..ed2f553 100644
--- a/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
+++ b/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
@@ -247,7 +247,7 @@
 
     @SuppressWarnings("NoContextGetApplicationContext")
     private void initialize(WebViewDelegate webViewDelegate) {
-        long startTime = SystemClock.elapsedRealtime();
+        long startTime = SystemClock.uptimeMillis();
         try (ScopedSysTraceEvent e1 =
                         ScopedSysTraceEvent.scoped("WebViewChromiumFactoryProvider.initialize")) {
             PackageInfo packageInfo;
@@ -410,14 +410,14 @@
 
         RecordHistogram.recordTimesHistogram(
                 "Android.WebView.Startup.CreationTime.Stage1.FactoryInit",
-                SystemClock.elapsedRealtime() - startTime);
+                SystemClock.uptimeMillis() - startTime);
 
         if (BuildInfo.isAtLeastS()) {
             // TODO: Use the framework constants as indices in timestamps array.
             startTime = mWebViewDelegate.getTimestamps()[0];
             RecordHistogram.recordTimesHistogram(
                     "Android.WebView.Startup.CreationTime.TotalFactoryInitTime",
-                    SystemClock.elapsedRealtime() - startTime);
+                    SystemClock.uptimeMillis() - startTime);
         }
     }