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.Application; | 9 import android.app.Application; |
10 import android.content.Context; | 10 import android.content.Context; |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 String referrer = | 139 String referrer = |
140 mCustomTabsConnection.getReferrerForSession(token).getUr
l(); | 140 mCustomTabsConnection.getReferrerForSession(token).getUr
l(); |
141 WebContents webContents = | 141 WebContents webContents = |
142 mCustomTabsConnection.takePrerenderedUrl(token, URL, ref
errer); | 142 mCustomTabsConnection.takePrerenderedUrl(token, URL, ref
errer); |
143 assertNotNull(webContents); | 143 assertNotNull(webContents); |
144 webContents.destroy(); | 144 webContents.destroy(); |
145 } | 145 } |
146 }); | 146 }); |
147 } | 147 } |
148 | 148 |
| 149 /* |
| 150 * Tests that when the disconnection notification comes from a non-UI thread
, Chrome doesn't |
| 151 * crash. Non-regression test for crbug.com/623128. |
| 152 */ |
| 153 @SmallTest |
| 154 @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) |
| 155 public void testPrerenderAndDisconnectOnOtherThread() { |
| 156 final CustomTabsSessionToken token = assertWarmupAndMayLaunchUrl(null, U
RL, true); |
| 157 final Thread otherThread = new Thread(new Runnable() { |
| 158 @Override |
| 159 public void run() { |
| 160 mCustomTabsConnection.cleanUpSession(token); |
| 161 } |
| 162 }); |
| 163 |
| 164 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| 165 @Override |
| 166 public void run() { |
| 167 otherThread.start(); |
| 168 } |
| 169 }); |
| 170 // Should not crash, hence no assertions below. |
| 171 } |
| 172 |
149 @SmallTest | 173 @SmallTest |
150 @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) | 174 @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) |
151 public void testMayLaunchUrlKeepsSpareRendererWithoutPrerendering() { | 175 public void testMayLaunchUrlKeepsSpareRendererWithoutPrerendering() { |
152 assertTrue(mCustomTabsConnection.warmup(0)); | 176 assertTrue(mCustomTabsConnection.warmup(0)); |
153 final CustomTabsSessionToken token = | 177 final CustomTabsSessionToken token = |
154 CustomTabsSessionToken.createDummySessionTokenForTesting(); | 178 CustomTabsSessionToken.createDummySessionTokenForTesting(); |
155 assertTrue(mCustomTabsConnection.newSession(token)); | 179 assertTrue(mCustomTabsConnection.newSession(token)); |
156 | 180 |
157 Bundle extras = new Bundle(); | 181 Bundle extras = new Bundle(); |
158 extras.putBoolean(CustomTabsConnection.NO_PRERENDERING_KEY, true); | 182 extras.putBoolean(CustomTabsConnection.NO_PRERENDERING_KEY, true); |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 } finally { | 557 } finally { |
534 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 558 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
535 @Override | 559 @Override |
536 public void run() { | 560 public void run() { |
537 PrefServiceBridge.getInstance().setNetworkPredictionEnabled(
enabled); | 561 PrefServiceBridge.getInstance().setNetworkPredictionEnabled(
enabled); |
538 } | 562 } |
539 }); | 563 }); |
540 } | 564 } |
541 } | 565 } |
542 } | 566 } |
OLD | NEW |