New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 612574 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
OOO until Feb 4th
Closed: Sep 2016
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Feature

Blocking:
issue 473357



Sign in to add a comment

Speed up and refactor TabPersistentStore

Project Member Reported by wnwen@chromium.org, May 17 2016

Issue description

Design doc: http://go/better-tps
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6361f63e12712a9b4e40f5b0b1aab31a0bae9bb4

commit 6361f63e12712a9b4e40f5b0b1aab31a0bae9bb4
Author: wnwen <wnwen@chromium.org>
Date: Wed May 18 13:28:46 2016

Clean up unnecessary parameters.

- Rename methods to be more accurate to what is intended.
- Fetch the old file store folder only when necessary, after we know
  that a migration is in order.

BUG= 612574 

Review-Url: https://codereview.chromium.org/1991443002
Cr-Commit-Position: refs/heads/master@{#394402}

[modify] https://crrev.com/6361f63e12712a9b4e40f5b0b1aab31a0bae9bb4/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java
[modify] https://crrev.com/6361f63e12712a9b4e40f5b0b1aab31a0bae9bb4/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java
[modify] https://crrev.com/6361f63e12712a9b4e40f5b0b1aab31a0bae9bb4/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
[modify] https://crrev.com/6361f63e12712a9b4e40f5b0b1aab31a0bae9bb4/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
[modify] https://crrev.com/6361f63e12712a9b4e40f5b0b1aab31a0bae9bb4/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/StorageDelegate.java
[modify] https://crrev.com/6361f63e12712a9b4e40f5b0b1aab31a0bae9bb4/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/RestoreMigrateTest.java

Project Member

Comment 2 by bugdroid1@chromium.org, May 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bda78ff1475ff7e24fa57ed2e25924ee49af0d7b

commit bda78ff1475ff7e24fa57ed2e25924ee49af0d7b
Author: wnwen <wnwen@chromium.org>
Date: Fri May 27 01:18:45 2016

Pre-warm the tab list file.

- Store a SharedPreference boolean to prevent repeatedly checking
  whether the same user needs to be migrated from the old tab state
  file storage.

- Switch migration task to use the thread pool executor.

- Add a pre-fetch task to start reading the main tab list metadata
  file into a byte stream upon construction.

- Add UMA stats to track how long it takes for loadState to wait for
  the completion of the pre-fetch task.

- Remove old UMA stat.

BUG= 612574 

Review-Url: https://codereview.chromium.org/1996613003
Cr-Commit-Position: refs/heads/master@{#396343}

[modify] https://crrev.com/bda78ff1475ff7e24fa57ed2e25924ee49af0d7b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
[modify] https://crrev.com/bda78ff1475ff7e24fa57ed2e25924ee49af0d7b/chrome/android/javatests/src/org/chromium/chrome/browser/incognito/IncognitoNotificationServiceTest.java
[modify] https://crrev.com/bda78ff1475ff7e24fa57ed2e25924ee49af0d7b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassinTest.java
[modify] https://crrev.com/bda78ff1475ff7e24fa57ed2e25924ee49af0d7b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
[modify] https://crrev.com/bda78ff1475ff7e24fa57ed2e25924ee49af0d7b/tools/metrics/histograms/histograms.xml

Comment 3 by wnwen@chromium.org, Jun 6 2016

Issue 149666 has been merged into this issue.
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9685a9834992f2b8bb95bd0e3816034dce2fe2fd

commit 9685a9834992f2b8bb95bd0e3816034dce2fe2fd
Author: wnwen <wnwen@chromium.org>
Date: Wed Jun 08 14:46:03 2016

Prefetch active tab state.

- Store the active tab id as a shared preference every time the tab
  list is saved.

- Add a new AsyncTask to prefetch the previous active tab's TabState.
  The results of this task is used instead of synchronously restoring
  the active tab's TabState on startup.

- Currently, if the active tab model is incognito, then this will not
  speed up startup. The active incognito tab (if any) can be
  considered for prefetching later.

BUG= 612574 , 149625

Review-Url: https://codereview.chromium.org/2028683003
Cr-Commit-Position: refs/heads/master@{#398551}

[modify] https://crrev.com/9685a9834992f2b8bb95bd0e3816034dce2fe2fd/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
[modify] https://crrev.com/9685a9834992f2b8bb95bd0e3816034dce2fe2fd/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/RestoreMigrateTest.java
[modify] https://crrev.com/9685a9834992f2b8bb95bd0e3816034dce2fe2fd/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
[modify] https://crrev.com/9685a9834992f2b8bb95bd0e3816034dce2fe2fd/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModel.java
[modify] https://crrev.com/9685a9834992f2b8bb95bd0e3816034dce2fe2fd/tools/metrics/histograms/histograms.xml

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6a48a177e5b82fa730438097673c61ca24c9af29

commit 6a48a177e5b82fa730438097673c61ca24c9af29
Author: wnwen <wnwen@chromium.org>
Date: Mon Jun 20 13:12:42 2016

Store last saved tab metadata to avoid resaving.

- Do not re-save to disk if new metadata is the same as the old.

- Add stats to determine where saveState is spending most of its
  time.

- Move to using uptimeMillis to avoid stats being influenced by time
  spent in sleep.

BUG= 612574 

Review-Url: https://codereview.chromium.org/2057733002
Cr-Commit-Position: refs/heads/master@{#400665}

[modify] https://crrev.com/6a48a177e5b82fa730438097673c61ca24c9af29/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
[modify] https://crrev.com/6a48a177e5b82fa730438097673c61ca24c9af29/tools/metrics/histograms/histograms.xml

Comment 6 by wnwen@chromium.org, Sep 6 2016

Status: Fixed (was: Assigned)
Opps, forgot to close this bug.

Sign in to add a comment