Index: chrome/android/java/src/org/chromium/chrome/browser/document/DocumentActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/document/DocumentActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/document/DocumentActivity.java |
index d9285307dec9f8d2ca99704adbb1685b8ebeace9..eee242a190066f3eb00c2ccd946cf4551cd4b336 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/document/DocumentActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/document/DocumentActivity.java |
@@ -41,6 +41,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor; |
import org.chromium.chrome.browser.firstrun.FirstRunStatus; |
import org.chromium.chrome.browser.metrics.StartupMetrics; |
import org.chromium.chrome.browser.metrics.UmaUtils; |
+import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
import org.chromium.chrome.browser.ntp.NewTabPage; |
import org.chromium.chrome.browser.preferences.ChromePreferenceManager; |
import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
@@ -578,6 +579,15 @@ public class DocumentActivity extends ChromeActivity { |
boolean isCreatedWithWebContents = asyncParams != null |
&& asyncParams.getWebContents() != null; |
+ // URL modification must happen before the Tab is created. |
+ if (!isIncognito() && asyncParams != null) { |
+ LoadUrlParams loadUrlParams = asyncParams.getLoadUrlParams(); |
+ if (loadUrlParams != null && loadUrlParams.getUrl() != null) { |
+ loadUrlParams.setUrl(DataReductionProxySettings.getInstance() |
+ .maybeRewriteWebliteUrl(loadUrlParams.getUrl())); |
+ } |
+ } |
+ |
if (params != null && params.getTabToReparent() != null) { |
mTab = params.getTabToReparent(); |
mTab.reparentToActivity(this, new DocumentTabDelegateFactory()); |