| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.customtabs; | 5 package org.chromium.chrome.browser.customtabs; |
| 6 | 6 |
| 7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E
ND_DEVICE; | 7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E
ND_DEVICE; |
| 8 | 8 |
| 9 import android.app.Activity; | 9 import android.app.Activity; |
| 10 import android.app.Application; | 10 import android.app.Application; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 import org.chromium.base.ThreadUtils; | 50 import org.chromium.base.ThreadUtils; |
| 51 import org.chromium.base.library_loader.LibraryLoader; | 51 import org.chromium.base.library_loader.LibraryLoader; |
| 52 import org.chromium.base.library_loader.LibraryProcessType; | 52 import org.chromium.base.library_loader.LibraryProcessType; |
| 53 import org.chromium.base.test.util.CallbackHelper; | 53 import org.chromium.base.test.util.CallbackHelper; |
| 54 import org.chromium.base.test.util.CommandLineFlags; | 54 import org.chromium.base.test.util.CommandLineFlags; |
| 55 import org.chromium.base.test.util.DisabledTest; | 55 import org.chromium.base.test.util.DisabledTest; |
| 56 import org.chromium.base.test.util.Restriction; | 56 import org.chromium.base.test.util.Restriction; |
| 57 import org.chromium.base.test.util.RetryOnFailure; | 57 import org.chromium.base.test.util.RetryOnFailure; |
| 58 import org.chromium.chrome.R; | 58 import org.chromium.chrome.R; |
| 59 import org.chromium.chrome.browser.ChromeActivity; | 59 import org.chromium.chrome.browser.ChromeActivity; |
| 60 import org.chromium.chrome.browser.ChromeFeatureList; |
| 60 import org.chromium.chrome.browser.ChromeSwitches; | 61 import org.chromium.chrome.browser.ChromeSwitches; |
| 61 import org.chromium.chrome.browser.ChromeTabbedActivity; | 62 import org.chromium.chrome.browser.ChromeTabbedActivity; |
| 62 import org.chromium.chrome.browser.IntentHandler; | 63 import org.chromium.chrome.browser.IntentHandler; |
| 63 import org.chromium.chrome.browser.TabsOpenedFromExternalAppTest; | 64 import org.chromium.chrome.browser.TabsOpenedFromExternalAppTest; |
| 64 import org.chromium.chrome.browser.WarmupManager; | 65 import org.chromium.chrome.browser.WarmupManager; |
| 65 import org.chromium.chrome.browser.appmenu.AppMenuHandler; | 66 import org.chromium.chrome.browser.appmenu.AppMenuHandler; |
| 66 import org.chromium.chrome.browser.document.ChromeLauncherActivity; | 67 import org.chromium.chrome.browser.document.ChromeLauncherActivity; |
| 67 import org.chromium.chrome.browser.firstrun.FirstRunStatus; | 68 import org.chromium.chrome.browser.firstrun.FirstRunStatus; |
| 68 import org.chromium.chrome.browser.metrics.PageLoadMetrics; | 69 import org.chromium.chrome.browser.metrics.PageLoadMetrics; |
| 69 import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler; | 70 import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler; |
| (...skipping 1733 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1803 * Test whether the url shown on hidden tab gets updated from about:blank wh
en it | 1804 * Test whether the url shown on hidden tab gets updated from about:blank wh
en it |
| 1804 * completes in the background. | 1805 * completes in the background. |
| 1805 */ | 1806 */ |
| 1806 @SmallTest | 1807 @SmallTest |
| 1807 @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) | 1808 @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) |
| 1808 @RetryOnFailure | 1809 @RetryOnFailure |
| 1809 public void testHiddenTabCorrectUrl() throws Exception { | 1810 public void testHiddenTabCorrectUrl() throws Exception { |
| 1810 testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TA
B); | 1811 testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TA
B); |
| 1811 } | 1812 } |
| 1812 | 1813 |
| 1814 /** |
| 1815 * Test that a hidden tab speculation is executed as a prerender if the |CCT
_BACKGROUND_TAB| |
| 1816 * feature is disabled. |
| 1817 **/ |
| 1818 @SmallTest |
| 1819 @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) |
| 1820 @RetryOnFailure |
| 1821 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
| 1822 "disable-features=" + ChromeFeatureList.CCT_BACKGROUND_TAB}) |
| 1823 public void testHiddenTabDisabled() throws Exception { |
| 1824 testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TA
B, |
| 1825 CustomTabsConnection.SpeculationParams.PRERENDER); |
| 1826 } |
| 1827 |
| 1813 private void testSpeculateCorrectUrl(int speculationMode) throws Exception { | 1828 private void testSpeculateCorrectUrl(int speculationMode) throws Exception { |
| 1829 testSpeculateCorrectUrl(speculationMode, speculationMode); |
| 1830 } |
| 1831 |
| 1832 private void testSpeculateCorrectUrl(int requestedSpeculationMode, int usedS
peculationMode) |
| 1833 throws Exception { |
| 1814 Context context = getInstrumentation().getTargetContext().getApplication
Context(); | 1834 Context context = getInstrumentation().getTargetContext().getApplication
Context(); |
| 1815 final CustomTabsConnection connection = warmUpAndWait(); | 1835 final CustomTabsConnection connection = warmUpAndWait(); |
| 1816 CustomTabsSessionToken token = CustomTabsSessionToken.createDummySession
TokenForTesting(); | 1836 CustomTabsSessionToken token = CustomTabsSessionToken.createDummySession
TokenForTesting(); |
| 1817 connection.newSession(token); | 1837 connection.newSession(token); |
| 1818 connection.setSpeculationModeForSession(token, speculationMode); | 1838 connection.setSpeculationModeForSession(token, requestedSpeculationMode)
; |
| 1819 assertTrue(connection.mayLaunchUrl(token, Uri.parse(mTestPage), null, nu
ll)); | 1839 assertTrue(connection.mayLaunchUrl(token, Uri.parse(mTestPage), null, nu
ll)); |
| 1820 ensureCompletedSpeculationForUrl(connection, mTestPage, speculationMode)
; | 1840 ensureCompletedSpeculationForUrl(connection, mTestPage, usedSpeculationM
ode); |
| 1821 | 1841 |
| 1822 try { | 1842 try { |
| 1823 startCustomTabActivityWithIntent(CustomTabsTestUtils.createMinimalCu
stomTabIntent( | 1843 startCustomTabActivityWithIntent(CustomTabsTestUtils.createMinimalCu
stomTabIntent( |
| 1824 context, mTestPage)); | 1844 context, mTestPage)); |
| 1825 } catch (InterruptedException e) { | 1845 } catch (InterruptedException e) { |
| 1826 fail(); | 1846 fail(); |
| 1827 } | 1847 } |
| 1828 assertEquals(Uri.parse(mTestPage).getHost() + ":" + Uri.parse(mTestPage)
.getPort(), | 1848 assertEquals(Uri.parse(mTestPage).getHost() + ":" + Uri.parse(mTestPage)
.getPort(), |
| 1829 ((EditText) mActivity.findViewById(R.id.url_bar)).getText() | 1849 ((EditText) mActivity.findViewById(R.id.url_bar)).getText() |
| 1830 .toString()); | 1850 .toString()); |
| (...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2496 switch (speculationMode) { | 2516 switch (speculationMode) { |
| 2497 case CustomTabsConnection.SpeculationParams.PRERENDER: | 2517 case CustomTabsConnection.SpeculationParams.PRERENDER: |
| 2498 return "prerender"; | 2518 return "prerender"; |
| 2499 case CustomTabsConnection.SpeculationParams.HIDDEN_TAB: | 2519 case CustomTabsConnection.SpeculationParams.HIDDEN_TAB: |
| 2500 return "hidden"; | 2520 return "hidden"; |
| 2501 default: | 2521 default: |
| 2502 return "visible"; | 2522 return "visible"; |
| 2503 } | 2523 } |
| 2504 } | 2524 } |
| 2505 } | 2525 } |
| OLD | NEW |