Chromium Code Reviews
[email protected] (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Issue 2294983002: [Download Home] Add image thumbnail support (Closed)

Created:
4 years, 3 months ago by gone
Modified:
4 years, 3 months ago
Reviewers:
Ted C, Ian Wen, sky, Theresa
CC:
chromium-reviews, asanka, dominickn
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[Download Home] Add image thumbnail support First pass at making a basic thumbnail cache for Download Home. Still a little janky, but that can be fixed once the skeleton is in. Screenshot that enforces that the biggest size is at least X and then crops out the rest: https://drive.google.com/open?id=0B7c8ZkXVwskDN2FTTmEwOVdWekE * Add a new ThumbnailProvider[Impl] class that produces thumbnails for files displayed in Download Home. - The Java ThumbnailProviderImpl maintains a queue of thumbnail requests to process and a cache of thumbnails that have already been processed. - The native ThumbnailProvider uses the ImageDecoder class to resize images in the utility process into bite-sized thumbnails for display. It is owned by the Java class. - Thumbnails are retrieved asynchronously and sent back via a callback in ThumbnailRequest. - The LRU thumbnail cache is statically shared amongst all instances of the ThumbnailProviderImpl and is garbage collected whenever Android deems necessary. It's capped at 5 MB to prevent the cache size from spiralling out of control. * DownloadManagerUi now maintains a ThumbnailProviderImpl in its BackendProvider and destroys it when necessary. * DownloadHistoryAdapter's ItemViewHolder now implements ThumbnailRequest, which lets it update any ImageViews that have placeholders for the thumbnails. X Tests are still forthcoming. Want to make sure the class looks like it makes sense before writing them. BUG=616324 TBR=sky Committed: https://crrev.com/e5755e4b83bedb55d800a1eed02d0d45aa78458a Cr-Commit-Position: refs/heads/master@{#415836}

Patch Set 1 #

Patch Set 2 : Changed how the image is resized #

Total comments: 31

Patch Set 3 : Comments, FILE thread #

Patch Set 4 : Comments #

Patch Set 5 : [Download Home] Add image thumbnail support #

Patch Set 6 : TODO #

Total comments: 14

Patch Set 7 : Comments, rethreading #

Patch Set 8 : Remove an unnecessary thread hop #

Patch Set 9 : GYP is gone all of a sudden #

Patch Set 10 : Missed the CC files in the GN system #

Unified diffs Side-by-side diffs Delta from patch set Stats (+492 lines, -12 lines) Patch
M chrome/android/java/res/layout/download_item_view.xml View 1 1 chunk +3 lines, -3 lines 0 comments Download
M chrome/android/java/res/values/dimens.xml View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/download/ui/BackendProvider.java View 2 chunks +7 lines, -0 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java View 1 2 3 11 chunks +45 lines, -8 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java View 1 2 3 4 5 6 7 8 4 chunks +20 lines, -1 line 0 comments Download
A chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProvider.java View 1 chunk +31 lines, -0 lines 0 comments Download
A chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java View 1 2 3 4 5 6 1 chunk +141 lines, -0 lines 0 comments Download
M chrome/android/java_sources.gni View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/android/javatests/src/org/chromium/chrome/browser/download/ui/StubbedProvider.java View 1 2 3 4 5 6 2 chunks +20 lines, -0 lines 0 comments Download
M chrome/browser/BUILD.gn View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -0 lines 0 comments Download
M chrome/browser/android/chrome_jni_registrar.cc View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -0 lines 0 comments Download
A chrome/browser/android/download/ui/thumbnail_provider.h View 1 2 3 4 5 6 1 chunk +47 lines, -0 lines 0 comments Download
A chrome/browser/android/download/ui/thumbnail_provider.cc View 1 2 3 4 5 6 7 1 chunk +168 lines, -0 lines 0 comments Download

Messages

Total messages: 36 (19 generated)
gone
Dominick: You're more comfortable than I am with native asynchronicity; can you take a look ...
4 years, 3 months ago (2016-08-30 22:15:59 UTC) #3
gone
Forgot Dominick was out; adding Ted. You guys were mostly right, aesthetically. Resizing and then ...
4 years, 3 months ago (2016-08-30 22:45:04 UTC) #6
Ian Wen
Tried my best reading the native code and didn't find anything. :P https://codereview.chromium.org/2294983002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java ...
4 years, 3 months ago (2016-08-31 00:08:10 UTC) #7
Ted C
https://chromiumcodereview.appspot.com/2294983002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java File chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java (right): https://chromiumcodereview.appspot.com/2294983002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java#newcode34 chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java:34: private static WeakReference<LruCache<String, Bitmap>> sBitmapCache = new WeakReference<>(null); i ...
4 years, 3 months ago (2016-08-31 00:34:35 UTC) #8
Theresa
https://codereview.chromium.org/2294983002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java File chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java (right): https://codereview.chromium.org/2294983002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java#newcode106 chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java:106: private void onThumbnailRetrieved(String filePath, Bitmap bitmap) { On 2016/08/31 ...
4 years, 3 months ago (2016-08-31 00:37:11 UTC) #9
gone
Looks like Ted is perfectly good at pointing out all of my native faults. Moved ...
4 years, 3 months ago (2016-08-31 01:35:04 UTC) #11
Theresa
lgtm https://chromiumcodereview.appspot.com/2294983002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java File chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java (right): https://chromiumcodereview.appspot.com/2294983002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java#newcode112 chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java:112: processQueue(); On 2016/08/31 01:35:04, dfalcantara wrote: > On ...
4 years, 3 months ago (2016-08-31 17:09:54 UTC) #12
gone
https://chromiumcodereview.appspot.com/2294983002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java File chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java (right): https://chromiumcodereview.appspot.com/2294983002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java#newcode112 chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java:112: processQueue(); On 2016/08/31 17:09:54, Theresa Wellington wrote: > On ...
4 years, 3 months ago (2016-08-31 17:39:36 UTC) #13
Ian Wen
lgtm
4 years, 3 months ago (2016-08-31 18:13:44 UTC) #14
Ted C
https://codereview.chromium.org/2294983002/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java File chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java (right): https://codereview.chromium.org/2294983002/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java#newcode54 chrome/android/java/src/org/chromium/chrome/browser/download/ui/ThumbnailProviderImpl.java:54: public ThumbnailProviderImpl(int iconSize) { I would suffix this with ...
4 years, 3 months ago (2016-08-31 20:14:41 UTC) #19
Ian Wen
https://codereview.chromium.org/2294983002/diff/100001/chrome/browser/android/download/ui/thumbnail_provider.cc File chrome/browser/android/download/ui/thumbnail_provider.cc (right): https://codereview.chromium.org/2294983002/diff/100001/chrome/browser/android/download/ui/thumbnail_provider.cc#newcode88 chrome/browser/android/download/ui/thumbnail_provider.cc:88: base::Unretained(this), thumbnail)); On 2016/08/31 20:14:40, Ted C wrote: > ...
4 years, 3 months ago (2016-08-31 20:43:30 UTC) #20
gone
Well, threading is always a fun nightmare. PTAL. I DCHECKED everything to make sure that ...
4 years, 3 months ago (2016-08-31 22:10:53 UTC) #21
Ted C
lgtm
4 years, 3 months ago (2016-08-31 23:20:07 UTC) #24
gone
TBRing +sky: I had to add ThumbnailProviderImpl.java to BUILD.gn for JNI bindings.
4 years, 3 months ago (2016-08-31 23:38:01 UTC) #29
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/2294983002/180001
4 years, 3 months ago (2016-08-31 23:57:25 UTC) #32
commit-bot: I haz the power
Committed patchset #10 (id:180001)
4 years, 3 months ago (2016-09-01 01:30:32 UTC) #34
commit-bot: I haz the power
4 years, 3 months ago (2016-09-01 01:41:46 UTC) #36
Message was sent while issue was closed.
Patchset 10 (id:??) landed as
https://crrev.com/e5755e4b83bedb55d800a1eed02d0d45aa78458a
Cr-Commit-Position: refs/heads/master@{#415836}

Powered by Google App Engine
This is Rietveld 408576698