| 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..01c3b77f9b841e5d498e6c689df69be1977a9f56 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.ReferencePool; | 
| 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 ReferencePool mReferencePool = new ReferencePool(); | 
| + | 
| 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 ReferencePool getReferencePool() { | 
| +        return mReferencePool; | 
| +    } | 
| } | 
|  |