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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java

Issue 1708763003: Fix strict mode violation in TabPersistentStore.cleanupPersistentData() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tab-persist-1
Patch Set: fix test, address commetns Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
index 6b2501ea210c00f73fe6fc7b55f5cb7c85b8fd7b..99401682c7dfd0e6cc88cae9d9b6845cc9b87edf 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.compositor.layouts.content;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
+import android.os.AsyncTask;
import android.util.SparseArray;
import android.view.View;
@@ -326,22 +327,31 @@ public class TabContentManager {
* Remove on-disk thumbnails that are no longer needed.
* @param modelSelector The selector that answers whether a tab is currently present.
*/
- public void cleanupPersistentData(TabModelSelector modelSelector) {
+ public void cleanupPersistentData(final TabModelSelector modelSelector) {
if (mNativeTabContentManager == 0) return;
- File[] files = PathUtils.getThumbnailCacheDirectory(mContext).listFiles();
- if (files == null) return;
-
- for (File file : files) {
- try {
- int id = Integer.parseInt(file.getName());
- if (TabModelUtils.getTabById(modelSelector.getModel(false), id) == null
- && TabModelUtils.getTabById(modelSelector.getModel(true), id) == null) {
- nativeRemoveTabThumbnail(mNativeTabContentManager, id);
+ new AsyncTask<Void, Void, File[]>() {
+ @Override
+ protected File[] doInBackground(Void... voids) {
+ File thumbnailDirectory = PathUtils.getThumbnailCacheDirectory(mContext);
+ return thumbnailDirectory.listFiles();
+ }
+
+ @Override
+ protected void onPostExecute(File[] files) {
+ for (File file : files) {
+ try {
+ int id = Integer.parseInt(file.getName());
+ if (TabModelUtils.getTabById(modelSelector.getModel(false), id) == null
+ && TabModelUtils.getTabById(modelSelector.getModel(true), id)
+ == null) {
+ nativeRemoveTabThumbnail(mNativeTabContentManager, id);
+ }
+ } catch (NumberFormatException expected) {
+ // This is an unknown file name, we'll leave it there.
+ }
}
- } catch (NumberFormatException expected) {
- // This is an unknown file name, we'll leave it there.
}
- }
+ }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
@CalledByNative

Powered by Google App Engine
This is Rietveld 408576698