Commit 84be2902 authored by ckitagawa's avatar ckitagawa Committed by Commit Bot

[Paint Preview] Avoid showing a preview if already loaded

This CL stops a preview from being shown if the page is already loaded.
This can happen if the utility process is very slow to initialize.

Change-Id: I7a0d3ff140c9efc47551c63b483351593ac4e25a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2381952Reviewed-by: default avatarMehran Mahmoudi <mahmoudi@chromium.org>
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Cr-Commit-Position: refs/heads/master@{#802716}
parent 0c9de1a6
...@@ -50,6 +50,7 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData { ...@@ -50,6 +50,7 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData {
private Runnable mOnDismissed; private Runnable mOnDismissed;
private Boolean mInitializing; private Boolean mInitializing;
private boolean mHasUserInteraction; private boolean mHasUserInteraction;
private boolean mFirstMeaningfulPaintHappened;
private TabbedPaintPreviewObserver mObserver; private TabbedPaintPreviewObserver mObserver;
private long mLastShownSnackBarTime; private long mLastShownSnackBarTime;
private boolean mDidStartRestore; private boolean mDidStartRestore;
...@@ -128,6 +129,7 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData { ...@@ -128,6 +129,7 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData {
if (mTab.getWebContents() != webContents) return; if (mTab.getWebContents() != webContents) return;
mFirstMeaningfulPaintHappened = true;
mObserver.onFirstMeaningfulPaint(); mObserver.onFirstMeaningfulPaint();
} }
...@@ -151,12 +153,17 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData { ...@@ -151,12 +153,17 @@ public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData {
mInitializing = hasCapture; mInitializing = hasCapture;
mMetricsHelper.recordHadCapture(hasCapture); mMetricsHelper.recordHadCapture(hasCapture);
if (!hasCapture) return false; if (!hasCapture) return false;
mFirstMeaningfulPaintHappened = false;
mPlayerManager = new PlayerManager(mTab.getUrl(), mTab.getContext(), mPlayerManager = new PlayerManager(mTab.getUrl(), mTab.getContext(),
mPaintPreviewTabService, String.valueOf(mTab.getId()), this::onLinkClicked, mPaintPreviewTabService, String.valueOf(mTab.getId()), this::onLinkClicked,
() -> removePaintPreview(ExitCause.PULL_TO_REFRESH), () -> removePaintPreview(ExitCause.PULL_TO_REFRESH),
() -> { () -> {
mInitializing = false; mInitializing = false;
if (mFirstMeaningfulPaintHappened) {
removePaintPreview(ExitCause.TAB_FINISHED_LOADING);
return;
}
onShown.run(); onShown.run();
mMetricsHelper.onShown(); mMetricsHelper.onShown();
}, },
......
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