Commit 0f6428ba authored by Piotr Swigon's avatar Piotr Swigon Committed by Commit Bot

[WebApps] Do not reparent from WebappActivity.

This patch changes reparenting to regular link opening. This change is
motivated by the CCT toolbar clearing its color and moving text around
on tab reparenting.

Bug: 774326
Change-Id: I030f5a497090c24e54c0fd33ed5f9f02bec00e54
Reviewed-on: https://chromium-review.googlesource.com/716439Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Commit-Queue: Piotr Swigon <piotrs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508584}
parent bca67b14
...@@ -15,7 +15,6 @@ import android.os.Build; ...@@ -15,7 +15,6 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.StrictMode; import android.os.StrictMode;
import android.os.SystemClock; import android.os.SystemClock;
import android.support.v4.app.ActivityOptionsCompat;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.View.OnSystemUiVisibilityChangeListener; import android.view.View.OnSystemUiVisibilityChangeListener;
...@@ -37,6 +36,7 @@ import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; ...@@ -37,6 +36,7 @@ import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager; import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.customtabs.CustomTabAppMenuPropertiesDelegate; import org.chromium.chrome.browser.customtabs.CustomTabAppMenuPropertiesDelegate;
import org.chromium.chrome.browser.customtabs.CustomTabLayoutManager; import org.chromium.chrome.browser.customtabs.CustomTabLayoutManager;
import org.chromium.chrome.browser.document.ChromeLauncherActivity;
import org.chromium.chrome.browser.document.DocumentUtils; import org.chromium.chrome.browser.document.DocumentUtils;
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager; import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
import org.chromium.chrome.browser.tab.EmptyTabObserver; import org.chromium.chrome.browser.tab.EmptyTabObserver;
...@@ -84,7 +84,6 @@ public class WebappActivity extends SingleTabActivity { ...@@ -84,7 +84,6 @@ public class WebappActivity extends SingleTabActivity {
protected WebappInfo mWebappInfo; protected WebappInfo mWebappInfo;
private WebappSplashScreenController mSplashController; private WebappSplashScreenController mSplashController;
private TabObserver mTabObserver;
private boolean mIsInitialized; private boolean mIsInitialized;
private Integer mBrandColor; private Integer mBrandColor;
...@@ -156,8 +155,7 @@ public class WebappActivity extends SingleTabActivity { ...@@ -156,8 +155,7 @@ public class WebappActivity extends SingleTabActivity {
if (NetworkChangeNotifier.isOnline()) getActivityTab().reloadIgnoringCache(); if (NetworkChangeNotifier.isOnline()) getActivityTab().reloadIgnoringCache();
} }
mTabObserver = createTabObserver(); getActivityTab().addObserver(createTabObserver());
getActivityTab().addObserver(mTabObserver);
getActivityTab().getTabWebContentsDelegateAndroid().setDisplayMode( getActivityTab().getTabWebContentsDelegateAndroid().setDisplayMode(
mWebappInfo.displayMode()); mWebappInfo.displayMode());
} }
...@@ -691,23 +689,11 @@ public class WebappActivity extends SingleTabActivity { ...@@ -691,23 +689,11 @@ public class WebappActivity extends SingleTabActivity {
url = IntentHandler.getUrlFromIntent(getIntent()); url = IntentHandler.getUrlFromIntent(getIntent());
} }
tab.removeObserver(mTabObserver); // TODO(piotrs): Bring reparenting back once CCT animation is fixed. See crbug/774326
mTabObserver = null;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClass(this, ChromeLauncherActivity.class);
Bundle startActivityOptions = IntentHandler.startActivityForTrustedIntent(intent);
ActivityOptionsCompat
.makeCustomAnimation(this, R.anim.abc_fade_in, R.anim.abc_fade_out)
.toBundle();
tab.detachAndStartReparenting(intent, startActivityOptions, new Runnable() {
@Override
public void run() {
ApiCompatibilityUtils.finishAndRemoveTask(WebappActivity.this);
}
});
return true; return true;
} }
......
...@@ -42,7 +42,6 @@ import org.chromium.content.browser.test.util.Criteria; ...@@ -42,7 +42,6 @@ import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper; import org.chromium.content.browser.test.util.CriteriaHelper;
import org.chromium.content.browser.test.util.DOMUtils; import org.chromium.content.browser.test.util.DOMUtils;
import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.PageTransition;
/** /**
...@@ -210,7 +209,6 @@ public class WebappNavigationTest { ...@@ -210,7 +209,6 @@ public class WebappNavigationTest {
WebappActivity activity = WebappActivity activity =
runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent().putExtra( runWebappActivityAndWaitForIdle(mActivityTestRule.createIntent().putExtra(
ShortcutHelper.EXTRA_DISPLAY_MODE, WebDisplayMode.MINIMAL_UI)); ShortcutHelper.EXTRA_DISPLAY_MODE, WebDisplayMode.MINIMAL_UI));
WebContents webAppWebContents = activity.getActivityTab().getWebContents();
MenuUtils.invokeCustomMenuActionSync( MenuUtils.invokeCustomMenuActionSync(
InstrumentationRegistry.getInstrumentation(), activity, R.id.open_in_browser_id); InstrumentationRegistry.getInstrumentation(), activity, R.id.open_in_browser_id);
...@@ -221,8 +219,6 @@ public class WebappNavigationTest { ...@@ -221,8 +219,6 @@ public class WebappNavigationTest {
Assert.assertEquals("Tab in tabbed activity should show the Web App page", Assert.assertEquals("Tab in tabbed activity should show the Web App page",
mActivityTestRule.getUrlFromTestServer(WEB_APP_PATH), mActivityTestRule.getUrlFromTestServer(WEB_APP_PATH),
tabbedChrome.getActivityTab().getUrl()); tabbedChrome.getActivityTab().getUrl());
Assert.assertSame("WebContents should be reparented from Web App to tabbed Chrome",
webAppWebContents, tabbedChrome.getActivityTab().getWebContents());
} }
@Test @Test
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment