Commit d110bcb3 authored by Xi Han's avatar Xi Han Committed by Commit Bot

Fix the startup mode is obtained too late in metrics Servicification.Startup3.

The bug was introduced in: https://crrev.com/c/1702862. The startup mode
should be obtained in handlePostNativeStartup(), rather than in the deferred
task. This CL fixes the issue and we continue to use Servicification.Startup3
since it is only in canary for few days.

Bug: 984559
Change-Id: I8c630d8ef267955e2b71aaae1199170980b1daf5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1710002
Commit-Queue: Xi Han <hanxi@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Reviewed-by: default avatarMohamed Heikal <mheikal@chromium.org>
Reviewed-by: default avatarHenrique Nakashima <hnakashima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#679805}
parent b05e9c58
......@@ -313,13 +313,14 @@ public class ChromeBrowserInitializer {
});
if (!mNativeInitializationComplete) {
tasks.add(UiThreadTaskTraits.DEFAULT, () -> {
int startupMode = getBrowserStartupController().getStartupMode(
delegate.startServiceManagerOnly());
onFinishNativeInitialization(startupMode);
});
tasks.add(UiThreadTaskTraits.DEFAULT, this::onFinishNativeInitialization);
}
int startupMode =
getBrowserStartupController().getStartupMode(delegate.startServiceManagerOnly());
tasks.add(UiThreadTaskTraits.BEST_EFFORT,
() -> { BackgroundTaskSchedulerExternalUma.reportStartupMode(startupMode); });
if (isAsync) {
// We want to start this queue once the C++ startup tasks have run; allow the
// C++ startup to run asynchonously, and set it up to start the Java queue once
......@@ -400,7 +401,7 @@ public class ChromeBrowserInitializer {
SpeechRecognition.initialize();
}
private void onFinishNativeInitialization(int startupMode) {
private void onFinishNativeInitialization() {
if (mNativeInitializationComplete) return;
mNativeInitializationComplete = true;
......@@ -436,8 +437,6 @@ public class ChromeBrowserInitializer {
// TODO(crbug.com/960767): Remove this in M77.
ServiceManagerStartupUtils.cleanupSharedPreferences();
BackgroundTaskSchedulerExternalUma.reportStartupMode(startupMode);
PostTask.postTask(
TaskTraits.BEST_EFFORT_MAY_BLOCK, LibraryPrefetcher::maybePinOrderedCodeInMemory);
}
......
......@@ -215,6 +215,10 @@ class BackgroundTaskSchedulerUma {
* @param startupMode Chrome's startup mode.
*/
public void reportStartupMode(int startupMode) {
// We don't record full browser's warm startup since most of the full browser warm startup
// don't even reach here.
if (startupMode < 0) return;
cacheEvent("Servicification.Startup3", startupMode);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment