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 |