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

Issue 1739503002: Makes the OfflinePageBridge.getAllPages method asynchronous. (Closed)

Created:
4 years, 10 months ago by dewittj
Modified:
4 years, 8 months ago
CC:
chromium-reviews, noyau+watch_chromium.org, browser-components-watch_chromium.org, tfarina, Dmitry Titov
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Makes the OfflinePageBridge.getAllPages method asynchronous. This does not actually make the operation asynchronous on the native side, but posts a task to the UI thread to ensure that callers expect a fully asynchronous operation. Making this method async has a number of implications: * Offline page storage space classes used to be synchronous. Now the policy uses an async create method, and returns an immutable policy object that can answer questions about the state of the world when it was created. * The bookmarks UI used to get the list of bookmarks in the same stack as the fiter changed event. This is now asynchronous and clears all the bookmarks from view until the list is done loading. BUG=589526 Committed: https://crrev.com/7c0ba2fd24cb3c7b6e47eccfc8405e96fa3bb09b Cr-Commit-Position: refs/heads/master@{#386494}

Patch Set 1 : #

Total comments: 12

Patch Set 2 : Address nits, and document better when a bookmark model is destroyed. #

Patch Set 3 : Remove obsolete tests. #

Total comments: 7

Patch Set 4 : Rebase, and restructure the bookmarkmodel destroy code now that OfflinePageBridge is a singleton. #

Patch Set 5 : Move some offline code into OfflinePageBridge. #

Patch Set 6 : Touch-ups. #

Patch Set 7 : Wait for model load in new async method. #

Total comments: 22

Patch Set 8 : Rebase. #

Patch Set 9 : Fix broken test from rebase. #

Total comments: 4

Patch Set 10 : Address comments: reorganize utils, nullify mDelegate. #

Total comments: 10

Patch Set 11 : Rebase. #

Patch Set 12 : Fix some comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+226 lines, -160 lines) Patch
M chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java View 1 2 3 4 5 6 7 8 9 10 11 15 chunks +82 lines, -25 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +20 lines, -9 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +13 lines, -15 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +12 lines, -32 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpaceHeader.java View 1 chunk +2 lines, -1 line 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpacePolicy.java View 1 2 3 4 5 6 7 3 chunks +32 lines, -7 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java View 1 2 3 4 5 6 7 8 2 chunks +15 lines, -2 lines 0 comments Download
M chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java View 1 2 3 4 5 6 7 8 9 10 4 chunks +14 lines, -12 lines 0 comments Download
M chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsTest.java View 1 2 3 4 5 6 7 8 2 chunks +9 lines, -7 lines 0 comments Download
M chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java View 1 2 3 4 5 6 7 8 6 chunks +12 lines, -12 lines 0 comments Download
M chrome/browser/android/offline_pages/offline_page_bridge.h View 1 2 3 4 5 1 chunk +0 lines, -5 lines 0 comments Download
M chrome/browser/android/offline_pages/offline_page_bridge.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -13 lines 0 comments Download
M components/offline_pages/offline_page_model.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -9 lines 0 comments Download
M components/offline_pages/offline_page_model_unittest.cc View 1 2 3 4 5 6 7 8 9 5 chunks +15 lines, -11 lines 0 comments Download

Messages

Total messages: 36 (17 generated)
dewittj
fgorski: PTAL, I will add the bookmarks folks after your review is done.
4 years, 9 months ago (2016-02-26 17:47:54 UTC) #8
fgorski
offline pages side lgtm, but address comments. https://codereview.chromium.org/1739503002/diff/80001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java (right): https://codereview.chromium.org/1739503002/diff/80001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java#newcode300 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java:300: public void ...
4 years, 9 months ago (2016-02-26 21:31:10 UTC) #9
dewittj
https://codereview.chromium.org/1739503002/diff/80001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java (right): https://codereview.chromium.org/1739503002/diff/80001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java#newcode300 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java:300: public void onCreateDone(OfflinePageStorageSpacePolicy policy) { On 2016/02/26 21:31:10, fgorski ...
4 years, 9 months ago (2016-03-01 22:28:52 UTC) #10
dewittj
new reviewers, PTAL, thanks. ianwen: bookmarks newt: ChromeActivity.java
4 years, 9 months ago (2016-03-01 22:51:30 UTC) #12
newt (away)
ChromeActivity lgtm
4 years, 9 months ago (2016-03-08 00:08:35 UTC) #13
Ian Wen
https://chromiumcodereview.appspot.com/1739503002/diff/120001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java (right): https://chromiumcodereview.appspot.com/1739503002/diff/120001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java#newcode349 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java:349: setBookmarks(null, bookmarkIds); I wonder what the typical loading time ...
4 years, 9 months ago (2016-03-08 19:09:14 UTC) #14
dewittj
I've made some changes, but please hold off on this patch until a few other ...
4 years, 9 months ago (2016-03-09 19:16:26 UTC) #15
dewittj
PTAL: I believe this is ready for re-review. Removed newt as ChromeActivity was done in ...
4 years, 9 months ago (2016-03-25 21:58:06 UTC) #18
fgorski
https://codereview.chromium.org/1739503002/diff/220001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java (right): https://codereview.chromium.org/1739503002/diff/220001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java#newcode352 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java:352: bookmarkModel.getOfflineBookmarkIds(new BookmarkModel.GetOfflineBookmarkIdsCallback() { perhaps extract method? https://codereview.chromium.org/1739503002/diff/220001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java ...
4 years, 8 months ago (2016-03-28 17:58:46 UTC) #19
dewittj
https://codereview.chromium.org/1739503002/diff/220001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java (right): https://codereview.chromium.org/1739503002/diff/220001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java#newcode352 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java:352: bookmarkModel.getOfflineBookmarkIds(new BookmarkModel.GetOfflineBookmarkIdsCallback() { On 2016/03/28 17:58:46, fgorski wrote: > ...
4 years, 8 months ago (2016-03-31 18:43:19 UTC) #20
dewittj
friendly ping, ianwen: ptal https://codereview.chromium.org/1739503002/diff/220001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java (left): https://codereview.chromium.org/1739503002/diff/220001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java#oldcode290 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java:290: public List<BookmarkId> getBookmarkIDsByFilter(BookmarkFilter filter) { ...
4 years, 8 months ago (2016-04-07 17:41:52 UTC) #22
Ian Wen
https://chromiumcodereview.appspot.com/1739503002/diff/250001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java (right): https://chromiumcodereview.appspot.com/1739503002/diff/250001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java#newcode315 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java:315: mDestroyed = true; Instead of using mDestroyed, you could ...
4 years, 8 months ago (2016-04-08 00:07:45 UTC) #23
dewittj
https://codereview.chromium.org/1739503002/diff/250001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java (right): https://codereview.chromium.org/1739503002/diff/250001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java#newcode315 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java:315: mDestroyed = true; On 2016/04/08 00:07:45, Ian Wen wrote: ...
4 years, 8 months ago (2016-04-08 18:06:59 UTC) #24
Ian Wen
https://codereview.chromium.org/1739503002/diff/270001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java (right): https://codereview.chromium.org/1739503002/diff/270001/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java#newcode367 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java:367: if (mDelegate == null) return; move #367 to further ...
4 years, 8 months ago (2016-04-11 17:10:14 UTC) #25
dewittj
I did make hasPages sync, since you're right that this should be trackable at construction ...
4 years, 8 months ago (2016-04-11 20:26:45 UTC) #28
Ian Wen
Wow you made bridge#hasPages() happen! Thank you! lgtm
4 years, 8 months ago (2016-04-11 20:27:48 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1739503002/350001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1739503002/350001
4 years, 8 months ago (2016-04-11 20:38:52 UTC) #32
commit-bot: I haz the power
Committed patchset #12 (id:350001)
4 years, 8 months ago (2016-04-11 22:18:00 UTC) #34
commit-bot: I haz the power
4 years, 8 months ago (2016-04-11 22:19:42 UTC) #36
Message was sent while issue was closed.
Patchset 12 (id:??) landed as
https://crrev.com/7c0ba2fd24cb3c7b6e47eccfc8405e96fa3bb09b
Cr-Commit-Position: refs/heads/master@{#386494}

Powered by Google App Engine
This is Rietveld 408576698