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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java

Issue 1924473002: Don't hide the reparenting tab while detaching (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nits Created 4 years, 8 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 unified diff | Download patch
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 import org.chromium.chrome.browser.ChromeActivity; 48 import org.chromium.chrome.browser.ChromeActivity;
49 import org.chromium.chrome.browser.ChromeSwitches; 49 import org.chromium.chrome.browser.ChromeSwitches;
50 import org.chromium.chrome.browser.ChromeTabbedActivity; 50 import org.chromium.chrome.browser.ChromeTabbedActivity;
51 import org.chromium.chrome.browser.IntentHandler; 51 import org.chromium.chrome.browser.IntentHandler;
52 import org.chromium.chrome.browser.TabsOpenedFromExternalAppTest; 52 import org.chromium.chrome.browser.TabsOpenedFromExternalAppTest;
53 import org.chromium.chrome.browser.document.ChromeLauncherActivity; 53 import org.chromium.chrome.browser.document.ChromeLauncherActivity;
54 import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler; 54 import org.chromium.chrome.browser.prerender.ExternalPrerenderHandler;
55 import org.chromium.chrome.browser.profiles.Profile; 55 import org.chromium.chrome.browser.profiles.Profile;
56 import org.chromium.chrome.browser.tab.EmptyTabObserver; 56 import org.chromium.chrome.browser.tab.EmptyTabObserver;
57 import org.chromium.chrome.browser.tab.Tab; 57 import org.chromium.chrome.browser.tab.Tab;
58 import org.chromium.chrome.browser.tab.TabObserver;
58 import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver; 59 import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver;
59 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; 60 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
60 import org.chromium.chrome.browser.tabmodel.TabModelSelector; 61 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
61 import org.chromium.chrome.browser.toolbar.CustomTabToolbar; 62 import org.chromium.chrome.browser.toolbar.CustomTabToolbar;
62 import org.chromium.chrome.browser.util.ColorUtils; 63 import org.chromium.chrome.browser.util.ColorUtils;
63 import org.chromium.chrome.test.util.ChromeRestriction; 64 import org.chromium.chrome.test.util.ChromeRestriction;
64 import org.chromium.chrome.test.util.browser.LocationSettingsTestUtil; 65 import org.chromium.chrome.test.util.browser.LocationSettingsTestUtil;
65 import org.chromium.chrome.test.util.browser.contextmenu.ContextMenuUtils; 66 import org.chromium.chrome.test.util.browser.contextmenu.ContextMenuUtils;
66 import org.chromium.content.browser.BrowserStartupController; 67 import org.chromium.content.browser.BrowserStartupController;
67 import org.chromium.content.browser.BrowserStartupController.StartupCallback; 68 import org.chromium.content.browser.BrowserStartupController.StartupCallback;
(...skipping 1154 matching lines...) Expand 10 before | Expand all | Expand 10 after
1222 fail(); 1223 fail();
1223 } 1224 }
1224 return connection; 1225 return connection;
1225 } 1226 }
1226 1227
1227 private ChromeActivity reparentAndVerifyTab() throws InterruptedException { 1228 private ChromeActivity reparentAndVerifyTab() throws InterruptedException {
1228 ActivityResult result = null; 1229 ActivityResult result = null;
1229 final ActivityMonitor monitor = getInstrumentation().addMonitor( 1230 final ActivityMonitor monitor = getInstrumentation().addMonitor(
1230 ChromeTabbedActivity.class.getName(), result, false); 1231 ChromeTabbedActivity.class.getName(), result, false);
1231 final Tab tabToBeReparented = mActivity.getActivityTab(); 1232 final Tab tabToBeReparented = mActivity.getActivityTab();
1233 final CallbackHelper tabHiddenHelper = new CallbackHelper();
1234 TabObserver observer = new EmptyTabObserver() {
1235 @Override
1236 public void onHidden(Tab tab) {
1237 tabHiddenHelper.notifyCalled();
1238 }
1239 };
1240 tabToBeReparented.addObserver(observer);
1232 ThreadUtils.postOnUiThread(new Runnable() { 1241 ThreadUtils.postOnUiThread(new Runnable() {
1233 @Override 1242 @Override
1234 public void run() { 1243 public void run() {
1235 mActivity.openCurrentUrlInBrowser(true); 1244 mActivity.openCurrentUrlInBrowser(true);
1236 assertNull(mActivity.getActivityTab()); 1245 assertNull(mActivity.getActivityTab());
1237 } 1246 }
1238 }); 1247 });
1239 CriteriaHelper.pollInstrumentationThread(new Criteria() { 1248 CriteriaHelper.pollInstrumentationThread(new Criteria() {
1240 @Override 1249 @Override
1241 public boolean isSatisfied() { 1250 public boolean isSatisfied() {
(...skipping 12 matching lines...) Expand all
1254 CriteriaHelper.pollUiThread((new Criteria() { 1263 CriteriaHelper.pollUiThread((new Criteria() {
1255 @Override 1264 @Override
1256 public boolean isSatisfied() { 1265 public boolean isSatisfied() {
1257 return mActivity.isActivityDestroyed(); 1266 return mActivity.isActivityDestroyed();
1258 } 1267 }
1259 })); 1268 }));
1260 assertEquals(newActivity.getWindowAndroid(), tabToBeReparented.getWindow Android()); 1269 assertEquals(newActivity.getWindowAndroid(), tabToBeReparented.getWindow Android());
1261 assertEquals(newActivity.getWindowAndroid(), 1270 assertEquals(newActivity.getWindowAndroid(),
1262 tabToBeReparented.getContentViewCore().getWindowAndroid()); 1271 tabToBeReparented.getContentViewCore().getWindowAndroid());
1263 assertFalse(tabToBeReparented.getDelegateFactory() instanceof CustomTabD elegateFactory); 1272 assertFalse(tabToBeReparented.getDelegateFactory() instanceof CustomTabD elegateFactory);
1273 assertEquals("The tab should never be hidden during the reparenting proc ess",
1274 0, tabHiddenHelper.getCallCount());
1275 tabToBeReparented.removeObserver(observer);
1264 return newActivity; 1276 return newActivity;
1265 } 1277 }
1266 1278
1267 private IBinder warmUpAndLaunchUrlWithSession(ICustomTabsCallback cb) 1279 private IBinder warmUpAndLaunchUrlWithSession(ICustomTabsCallback cb)
1268 throws InterruptedException { 1280 throws InterruptedException {
1269 CustomTabsConnection connection = warmUpAndWait(); 1281 CustomTabsConnection connection = warmUpAndWait();
1270 connection.newSession(cb); 1282 connection.newSession(cb);
1271 Context context = getInstrumentation().getTargetContext().getApplication Context(); 1283 Context context = getInstrumentation().getTargetContext().getApplication Context();
1272 startCustomTabActivityWithIntent(CustomTabsTestUtils.createMinimalCustom TabIntent( 1284 startCustomTabActivityWithIntent(CustomTabsTestUtils.createMinimalCustom TabIntent(
1273 context, mTestPage, cb.asBinder())); 1285 context, mTestPage, cb.asBinder()));
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 if (jsonText.equalsIgnoreCase("null")) jsonText = ""; 1360 if (jsonText.equalsIgnoreCase("null")) jsonText = "";
1349 value = jsonText; 1361 value = jsonText;
1350 } catch (InterruptedException | TimeoutException e) { 1362 } catch (InterruptedException | TimeoutException e) {
1351 e.printStackTrace(); 1363 e.printStackTrace();
1352 return false; 1364 return false;
1353 } 1365 }
1354 return TextUtils.equals(mExpected, value); 1366 return TextUtils.equals(mExpected, value);
1355 } 1367 }
1356 } 1368 }
1357 } 1369 }
OLDNEW
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698