Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Issue 2121863002: Separate deferred startup into tasks. (Closed)

Created:
4 years, 5 months ago by Peter Wen
Modified:
4 years, 4 months ago
CC:
chromium-reviews, asvitkine+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Separate deferred startup into tasks. Correct UMA timing to be based on foreground start rather than application initialization, as the application is often initialized in the background, causing misleading stats. By separating one single task into multiple tasks queued by the idle handler, we don't block UI thread for a long time. We used to do ~100ms of blocking work for deferred startup, now it is reduced to around ~20ms for the longest task. Tested on an N6, so on slower devices this takes much longer. BUG=614452 Committed: https://crrev.com/b17794608da80ccba64795658fac6239bdae6510 Cr-Commit-Position: refs/heads/master@{#409251}

Patch Set 1 #

Total comments: 8

Patch Set 2 : Review comments. #

Patch Set 3 : Create new UMA stats. #

Total comments: 16

Patch Set 4 : Split up everything to the idle handler. #

Total comments: 16

Patch Set 5 : Fix per review. #

Total comments: 4

Patch Set 6 : Fix histogram. #

Patch Set 7 : Fix per review. #

Patch Set 8 : Preserve ordering in ChromeTabbedActivity. #

Patch Set 9 : Rebase #

Total comments: 6

Patch Set 10 : fix per review #

Patch Set 11 : Account for multiple activities running deferred startup. #

Patch Set 12 : Fix visibility. #

Patch Set 13 : Fix ToolbarTest. #

Patch Set 14 : Longer timeout. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+346 lines, -153 lines) Patch
M chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java View 1 2 3 4 5 6 7 8 9 10 11 12 6 chunks +45 lines, -48 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +49 lines, -25 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +11 lines, -11 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java View 1 2 3 4 5 6 7 8 9 10 11 12 8 chunks +145 lines, -55 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java View 1 2 3 4 5 6 7 8 10 11 1 chunk +1 line, -1 line 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaUtils.java View 1 2 3 4 3 chunks +8 lines, -4 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestBase.java View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M chrome/android/javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +9 lines, -3 lines 0 comments Download
M chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestCaseBase.java View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/test/android/javatests/src/org/chromium/chrome/test/util/FullscreenTestUtils.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +3 lines, -1 line 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 5 6 7 8 9 10 11 8 chunks +70 lines, -0 lines 0 comments Download

Messages

Total messages: 59 (30 generated)
Peter Wen
🍲
4 years, 5 months ago (2016-07-04 21:19:33 UTC) #3
agrieve
https://codereview.chromium.org/2121863002/diff/1/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java File chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java (right): https://codereview.chromium.org/2121863002/diff/1/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java#newcode86 chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java:86: mDeferredTasks = new ConcurrentLinkedQueue<Runnable>(); This looks to be only ...
4 years, 5 months ago (2016-07-05 00:42:40 UTC) #4
agrieve
On 2016/07/05 00:42:40, agrieve wrote: > https://codereview.chromium.org/2121863002/diff/1/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java > File > chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java > (right): > > ...
4 years, 5 months ago (2016-07-05 00:42:56 UTC) #5
Peter Wen
+asvitkine@ for new UMA stat and changing meaning of UMA.Debug.EnableCrashUpload.*StartUptime. Now these startup times are ...
4 years, 5 months ago (2016-07-05 13:58:21 UTC) #7
Peter Wen
+yfriedman@ for chrome/android OWNERS. Now these startup times are counted from first foreground Chrome rather ...
4 years, 5 months ago (2016-07-05 13:59:33 UTC) #9
Alexei Svitkine (slow)
If you're making a change to the meaning of some metrics, I suggest either renaming ...
4 years, 5 months ago (2016-07-05 15:48:56 UTC) #10
Peter Wen
Done, made new histograms and made old ones obsolete as the numbers and data points ...
4 years, 5 months ago (2016-07-05 18:33:21 UTC) #11
Alexei Svitkine (slow)
https://codereview.chromium.org/2121863002/diff/40001/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java File chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java (right): https://codereview.chromium.org/2121863002/diff/40001/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java#newcode240 chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java:240: RecordHistogram.recordTimesHistogram( Suggest using recordLongTimes function which has a longer ...
4 years, 5 months ago (2016-07-05 18:40:16 UTC) #12
Yaron
https://codereview.chromium.org/2121863002/diff/40001/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java File chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java (right): https://codereview.chromium.org/2121863002/diff/40001/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java#newcode694 chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java:694: onDeferredStartupForActivity(); Hmm - this changed (unintentionally?). Previously this waited ...
4 years, 5 months ago (2016-07-05 19:29:05 UTC) #14
Peter Wen
I may move around some tasks when I go over timing again tomorrow for the ...
4 years, 5 months ago (2016-07-05 21:11:12 UTC) #15
Alexei Svitkine (slow)
lgtm
4 years, 5 months ago (2016-07-05 21:14:36 UTC) #16
pasko
lgtm, thank you! (I am not super familiar with all deferred startup jobs, so it ...
4 years, 5 months ago (2016-07-06 13:03:31 UTC) #17
Yaron
https://codereview.chromium.org/2121863002/diff/60001/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java File chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java (right): https://codereview.chromium.org/2121863002/diff/60001/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java#newcode968 chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java:968: super.onDeferredStartup(); the ordering of this chnaged? https://codereview.chromium.org/2121863002/diff/60001/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java File chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java ...
4 years, 5 months ago (2016-07-06 14:27:50 UTC) #19
Peter Wen
Thanks for the reviews, added new histogram Startup.FirstCommitNavigationTime2 as we are changing to first foreground ...
4 years, 5 months ago (2016-07-06 15:21:37 UTC) #20
Alexei Svitkine (slow)
still lgtm % comment https://codereview.chromium.org/2121863002/diff/80001/tools/metrics/histograms/histograms.xml File tools/metrics/histograms/histograms.xml (right): https://codereview.chromium.org/2121863002/diff/80001/tools/metrics/histograms/histograms.xml#newcode55099 tools/metrics/histograms/histograms.xml:55099: +<histogram name="Startup.FirstCommitNavigationTime2" units="ms"> Please mark ...
4 years, 5 months ago (2016-07-06 15:25:44 UTC) #21
Peter Wen
Thanks for noticing, Alexei! https://codereview.chromium.org/2121863002/diff/80001/tools/metrics/histograms/histograms.xml File tools/metrics/histograms/histograms.xml (right): https://codereview.chromium.org/2121863002/diff/80001/tools/metrics/histograms/histograms.xml#newcode55099 tools/metrics/histograms/histograms.xml:55099: +<histogram name="Startup.FirstCommitNavigationTime2" units="ms"> On 2016/07/06 ...
4 years, 5 months ago (2016-07-06 15:34:59 UTC) #22
Yaron
ok this looks better but I feel like at least one of {Dan,Yusuf,Maria} ought to ...
4 years, 5 months ago (2016-07-06 15:46:58 UTC) #23
Peter Wen
Sounds good, thanks for the review! Will add tests when I come back on Friday ...
4 years, 5 months ago (2016-07-06 16:05:46 UTC) #25
Peter Wen
+yusufo@ for deferred startup tasks review, as Yusuf's worked with them before. Turns out deferred ...
4 years, 5 months ago (2016-07-11 15:45:52 UTC) #27
Yusuf
Thanks Peter! Two nits and a question about where we start recording the time. https://codereview.chromium.org/2121863002/diff/160001/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ...
4 years, 5 months ago (2016-07-12 18:00:19 UTC) #28
Peter Wen
PTAL. :) https://codereview.chromium.org/2121863002/diff/160001/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java File chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java (right): https://codereview.chromium.org/2121863002/diff/160001/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java#newcode701 chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java:701: final ChromeActivity activity = this; On 2016/07/12 ...
4 years, 5 months ago (2016-07-12 19:02:13 UTC) #29
Yusuf
Got it, thank you! lgtm
4 years, 5 months ago (2016-07-12 19:55:02 UTC) #30
Peter Wen
+dtrainor@ for chrome/android and chrome/test OWNERS.
4 years, 4 months ago (2016-07-26 22:01:00 UTC) #46
David Trainor- moved to gerrit
chrome/android and chrome/test lgtm! Sorry for the delay I was sick most of last week ...
4 years, 4 months ago (2016-08-02 15:35:32 UTC) #47
Peter Wen
On 2016/08/02 15:35:32, David Trainor wrote: > chrome/android and chrome/test lgtm! Sorry for the delay ...
4 years, 4 months ago (2016-08-02 17:07:49 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2121863002/260001
4 years, 4 months ago (2016-08-02 18:20:24 UTC) #55
commit-bot: I haz the power
Committed patchset #14 (id:260001)
4 years, 4 months ago (2016-08-02 18:26:29 UTC) #56
commit-bot: I haz the power
Patchset 14 (id:??) landed as https://crrev.com/b17794608da80ccba64795658fac6239bdae6510 Cr-Commit-Position: refs/heads/master@{#409251}
4 years, 4 months ago (2016-08-02 18:28:00 UTC) #58
Ted C
4 years, 4 months ago (2016-08-02 23:32:35 UTC) #59
Message was sent while issue was closed.
On 2016/08/02 18:28:00, commit-bot: I haz the power wrote:
> Patchset 14 (id:??) landed as
> https://crrev.com/b17794608da80ccba64795658fac6239bdae6510
> Cr-Commit-Position: refs/heads/master@{#409251}

Looks like this is failing an assert for CustomTabs:
https://build.chromium.org/p/chromium.linux/builders/Android%20Tests%20%28dbg...

Powered by Google App Engine
This is Rietveld 408576698