Index: chrome/android/java/src/org/chromium/chrome/browser/FrozenNativePage.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/FrozenNativePage.java b/chrome/android/java/src/org/chromium/chrome/browser/FrozenNativePage.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..201718e4e1b6e74a1713bc7ff267e842548b678c |
--- /dev/null |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/FrozenNativePage.java |
@@ -0,0 +1,71 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.chrome.browser; |
+ |
+import android.view.View; |
+ |
+/** |
+ * A empty stand-in for a native page. An inactive NativePage may be replaced with a |
+ * FrozenNativePage to free up resources. |
+ * |
+ * Any method may be called on this object, except for getView(), which will trigger an assert and |
+ * return null. |
+ */ |
+public class FrozenNativePage implements NativePage { |
+ private final String mUrl; |
+ private final String mHost; |
+ private final String mTitle; |
+ private final int mBackgroundColor; |
+ |
+ /** |
+ * Creates a FrozenNativePage to replace the given NativePage and destroys the NativePage. |
+ */ |
+ public static FrozenNativePage freeze(NativePage nativePage) { |
+ FrozenNativePage fnp = new FrozenNativePage(nativePage); |
+ nativePage.destroy(); |
+ return fnp; |
+ } |
+ |
+ private FrozenNativePage(NativePage nativePage) { |
+ mHost = nativePage.getHost(); |
+ mUrl = nativePage.getUrl(); |
+ mTitle = nativePage.getTitle(); |
+ mBackgroundColor = nativePage.getBackgroundColor(); |
+ } |
+ |
+ @Override |
+ public View getView() { |
+ assert false; |
+ return null; |
+ } |
+ |
+ @Override |
+ public String getTitle() { |
+ return mTitle; |
+ } |
+ |
+ @Override |
+ public String getUrl() { |
+ return mUrl; |
+ } |
+ |
+ @Override |
+ public String getHost() { |
+ return mHost; |
+ } |
+ |
+ @Override |
+ public int getBackgroundColor() { |
+ return mBackgroundColor; |
+ } |
+ |
+ @Override |
+ public void updateForUrl(String url) { |
+ } |
+ |
+ @Override |
+ public void destroy() { |
+ } |
+} |