Commit c170924f authored by Mehran Mahmoudi's avatar Mehran Mahmoudi Committed by Commit Bot

[Paint Preview] Exit player on navigating away

This fixes the bug where the player would stick around after navigating
to a new page from the omnibox.

Bug: 1110020
Change-Id: I1c18993a518c5f936cfc842dd191958d9a07f3bc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2321288
Commit-Queue: Mehran Mahmoudi <mahmoudi@chromium.org>
Reviewed-by: default avatarCalder Kitagawa <ckitagawa@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792070}
parent 6542c181
...@@ -22,6 +22,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManagerProvider; ...@@ -22,6 +22,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManagerProvider;
import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.components.browser_ui.styles.ChromeColors;
import org.chromium.components.paintpreview.player.PlayerManager; import org.chromium.components.paintpreview.player.PlayerManager;
import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.NavigationHandle;
import org.chromium.url.GURL; import org.chromium.url.GURL;
/** /**
...@@ -42,6 +43,7 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData { ...@@ -42,6 +43,7 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData {
private boolean mHasUserInteraction; private boolean mHasUserInteraction;
private EmptyTabObserver mTabObserver; private EmptyTabObserver mTabObserver;
private long mLastShownSnackBarTime; private long mLastShownSnackBarTime;
private boolean mDidStartRestore;
public static TabbedPaintPreviewPlayer get(Tab tab) { public static TabbedPaintPreviewPlayer get(Tab tab) {
if (tab.getUserDataHost().getUserData(USER_DATA_KEY) == null) { if (tab.getUserDataHost().getUserData(USER_DATA_KEY) == null) {
...@@ -56,9 +58,7 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData { ...@@ -56,9 +58,7 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData {
mTabObserver = new EmptyTabObserver() { mTabObserver = new EmptyTabObserver() {
@Override @Override
public void didFirstVisuallyNonEmptyPaint(Tab tab) { public void didFirstVisuallyNonEmptyPaint(Tab tab) {
if (!mTab.getTabViewManager().isShowing(TabbedPaintPreviewPlayer.this)) { if (!isShowingAndNeedsBadge()) return;
return;
}
if (!mHasUserInteraction) { if (!mHasUserInteraction) {
removePaintPreview(); removePaintPreview();
...@@ -68,7 +68,25 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData { ...@@ -68,7 +68,25 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData {
showSnackbar(); showSnackbar();
} }
@Override
public void onRestoreStarted(Tab tab) {
mDidStartRestore = true;
}
@Override
public void onDidStartNavigation(Tab tab, NavigationHandle navigationHandle) {
if (mPlayerManager == null || !isShowingAndNeedsBadge()) return;
// Ignore navigations from subframes. We should only remove the paint preview
// player when the user navigates to a new page.
if (!navigationHandle.isInMainFrame()) return;
// If we haven't started to restore, this is the navigation call to start the
// restoration. We shouldn't remove the paint preview player.
if (!mDidStartRestore) return;
removePaintPreview();
}
}; };
mTab.addObserver(mTabObserver); mTab.addObserver(mTabObserver);
} }
......
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