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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java

Issue 2865963003: [Suggestions UI] Drop Bitmap references from articles under memory pressure. (Closed)
Patch Set: remove annotation Created 3 years, 7 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/ChromeActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
index 27c46ed667dec4df0a9416d31ac048f754bda2f8..c72cece427b626b09bb01644a1692abf636526f4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -46,6 +46,7 @@ import org.chromium.base.BaseSwitches;
import org.chromium.base.Callback;
import org.chromium.base.CommandLine;
import org.chromium.base.ContextUtils;
+import org.chromium.base.DiscardableReferencePool;
import org.chromium.base.SysUtils;
import org.chromium.base.TraceEvent;
import org.chromium.base.VisibleForTesting;
@@ -272,6 +273,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
private int mScreenWidthDp;
private Runnable mRecordMultiWindowModeScreenWidthRunnable;
+ private final DiscardableReferencePool mReferencePool = new DiscardableReferencePool();
+
private AssistStatusHandler mAssistStatusHandler;
// A set of views obscuring all tabs. When this set is nonempty,
@@ -1778,6 +1781,16 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
super.onBackPressed();
}
+ @Override
+ public void onTrimMemory(int level) {
+ super.onTrimMemory(level);
+ // The conditions are expressed using ranges to capture intermediate levels possibly added
+ // to the API in the future.
+ if ((level >= TRIM_MEMORY_RUNNING_LOW && level < TRIM_MEMORY_UI_HIDDEN)
+ || level >= TRIM_MEMORY_MODERATE) {
+ mReferencePool.drain();
+ }
+ }
private ContentViewCore getContentViewCore() {
Tab tab = getActivityTab();
@@ -2203,4 +2216,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
public boolean supportsFullscreenActivity() {
return false;
}
+
+ /**
+ * @return the reference pool for this activity.
+ */
+ public DiscardableReferencePool getReferencePool() {
+ return mReferencePool;
+ }
}

Powered by Google App Engine
This is Rietveld 408576698