Adding freeMemoryForTests method to the WebView Chromium glue layer.

This is going to be used by pagecycler tests.
Note, this is part of a multi-project change. See: b/10629847

Change-Id: I22e6b4d7b0d1d6dc25e7a9e608c2ac7b2ef32fc4
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
index e7bfb5a..2324d31 100644
--- a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
+++ b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
@@ -16,7 +16,9 @@
 
 package com.android.webview.chromium;
 
+import android.app.ActivityManager;
 import android.app.ActivityThread;
+import android.content.ComponentCallbacks2;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.os.Build;
@@ -38,6 +40,7 @@
 import org.chromium.android_webview.AwGeolocationPermissions;
 import org.chromium.android_webview.AwQuotaManagerBridge;
 import org.chromium.android_webview.AwSettings;
+import org.chromium.base.MemoryPressureListener;
 import org.chromium.base.PathService;
 import org.chromium.base.ThreadUtils;
 import org.chromium.content.app.LibraryLoader;
@@ -188,6 +191,14 @@
                     public String getDefaultUserAgent(Context context) {
                         return AwSettings.getDefaultUserAgent();
                     }
+
+                    @Override
+                    public void freeMemoryForTests() {
+                        if (ActivityManager.isRunningInTestHarness()) {
+                            MemoryPressureListener.simulateMemoryPressureSignal(
+                                    ComponentCallbacks2.TRIM_MEMORY_COMPLETE);
+                        }
+                    }
                 };
             }
         }