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

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

Issue 2254863002: Revert of Android: Make the spare renderer accessible to all Chrome tabs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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/customtabs/CustomTabsConnection.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
index a17a3c86ebe7bad36a745e09109e8c09606592ec..b71e2c2d6cef81763a7867617648f20445d9303c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
@@ -37,6 +37,7 @@
import org.chromium.chrome.browser.ChromeApplication;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.WarmupManager;
+import org.chromium.chrome.browser.WebContentsFactory;
import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
@@ -104,6 +105,7 @@
private final AtomicBoolean mWarmupHasBeenCalled = new AtomicBoolean();
private final AtomicBoolean mWarmupHasBeenFinished = new AtomicBoolean();
private ExternalPrerenderHandler mExternalPrerenderHandler;
+ private WebContents mSpareWebContents;
// TODO(lizeb): Remove once crbug.com/630303 is fixed.
private boolean mPageLoadMetricsEnabled;
@@ -219,12 +221,19 @@
public void run() {
if (!initialized) initializeBrowser(mApplication);
if (mayCreateSpareWebContents && mPrerender == null && !SysUtils.isLowEndDevice()) {
- WarmupManager.getInstance().createSpareWebContents();
+ createSpareWebContents();
}
mWarmupHasBeenFinished.set(true);
}
});
return true;
+ }
+
+ /** Creates a spare {@link WebContents}, if none exists. */
+ private void createSpareWebContents() {
+ ThreadUtils.assertOnUiThread();
+ if (mSpareWebContents != null) return;
+ mSpareWebContents = WebContentsFactory.createWebContentsWithWarmRenderer(false, false);
}
/** @return the URL converted to string, or null if it's invalid. */
@@ -261,7 +270,7 @@
didStartPrerender = prerenderUrl(session, url, extras, uid);
}
preconnectUrls(otherLikelyBundles);
- if (!didStartPrerender) WarmupManager.getInstance().createSpareWebContents();
+ if (!didStartPrerender) createSpareWebContents();
}
/**
@@ -273,7 +282,7 @@
boolean lowConfidenceMayLaunchUrl(List<Bundle> likelyBundles) {
ThreadUtils.assertOnUiThread();
if (!preconnectUrls(likelyBundles)) return false;
- WarmupManager.getInstance().createSpareWebContents();
+ createSpareWebContents();
return true;
}
@@ -340,6 +349,20 @@
public Bundle extraCommand(String commandName, Bundle args) {
return null;
+ }
+
+ /** @return a spare WebContents, or null. */
+ WebContents takeSpareWebContents() {
+ ThreadUtils.assertOnUiThread();
+ WebContents result = mSpareWebContents;
+ mSpareWebContents = null;
+ return result;
+ }
+
+ private void destroySpareWebContents() {
+ ThreadUtils.assertOnUiThread();
+ WebContents webContents = takeSpareWebContents();
+ if (webContents != null) webContents.destroy();
}
public boolean updateVisuals(final CustomTabsSessionToken session, Bundle bundle) {
@@ -721,7 +744,7 @@
if (throttle && !mClientManager.isPrerenderingAllowed(uid)) return false;
// A prerender will be requested. Time to destroy the spare WebContents.
- WarmupManager.getInstance().destroySpareWebContents();
+ destroySpareWebContents();
Intent extrasIntent = new Intent();
if (extras != null) extrasIntent.putExtras(extras);
@@ -745,6 +768,8 @@
return true;
}
+
+
@VisibleForTesting
void resetThrottling(Context context, int uid) {
mClientManager.resetThrottling(uid);

Powered by Google App Engine
This is Rietveld 408576698