Commit bb4cacc3 authored by Ehimare Okoyomon's avatar Ehimare Okoyomon Committed by Commit Bot

Fix incorrect tab switcher state for incognito ntp

Add check to shouldCaptureThumbnail that informs the ntp if the cookie
controls state is incorrect.

Bug: 1065391
Change-Id: I6b7fb5e5ce88975e1ebb844f5c402a8540176858
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2128311
Commit-Queue: Ehimare Okoyomon <eokoyomon@chromium.org>
Reviewed-by: default avatarChristian Dullweber <dullweber@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#755049}
parent fe0ea3ae
...@@ -46,8 +46,14 @@ public class IncognitoCookieControlsManager ...@@ -46,8 +46,14 @@ public class IncognitoCookieControlsManager
private final ObserverList<Observer> mObservers = new ObserverList<>(); private final ObserverList<Observer> mObservers = new ObserverList<>();
private boolean mIsInitialized; private boolean mIsInitialized;
private boolean mShowCard; private boolean mShowCard;
private boolean mChecked;
private @CookieControlsEnforcement int mEnforcement = CookieControlsEnforcement.NO_ENFORCEMENT; private @CookieControlsEnforcement int mEnforcement = CookieControlsEnforcement.NO_ENFORCEMENT;
// State variables for cookie controls at the last UI snapshot
private boolean mSnapshotChecked;
private @CookieControlsEnforcement int mSnapshotEnforcement =
CookieControlsEnforcement.NO_ENFORCEMENT;
/** /**
* Initializes the IncognitoCookieControlsManager explicitly. * Initializes the IncognitoCookieControlsManager explicitly.
*/ */
...@@ -90,9 +96,21 @@ public class IncognitoCookieControlsManager ...@@ -90,9 +96,21 @@ public class IncognitoCookieControlsManager
if (mShowCard) mServiceBridge.updateServiceIfNecessary(); if (mShowCard) mServiceBridge.updateServiceIfNecessary();
} }
/**
* Tells the caller if the state has changed since the last snaptshot.
* @return whether a new snapshot should be captured or not.
*/
protected boolean shouldCaptureThumbnail() {
boolean changed = mSnapshotEnforcement != mEnforcement || mSnapshotChecked != mChecked;
mSnapshotChecked = mChecked;
mSnapshotEnforcement = mEnforcement;
return changed;
}
@Override @Override
public void sendCookieControlsUIChanges( public void sendCookieControlsUIChanges(
boolean checked, @CookieControlsEnforcement int enforcement) { boolean checked, @CookieControlsEnforcement int enforcement) {
mChecked = checked;
mEnforcement = enforcement; mEnforcement = enforcement;
for (Observer obs : mObservers) { for (Observer obs : mObservers) {
obs.onUpdate(checked, enforcement); obs.onUpdate(checked, enforcement);
......
...@@ -98,6 +98,11 @@ public class IncognitoNewTabPage ...@@ -98,6 +98,11 @@ public class IncognitoNewTabPage
mCookieControlsManager.updateIfNecessary(); mCookieControlsManager.updateIfNecessary();
} }
@Override
public boolean shouldCaptureThumbnail() {
return mCookieControlsManager.shouldCaptureThumbnail();
}
@Override @Override
public void destroy() { public void destroy() {
if (mCookieControlsManager != null) { if (mCookieControlsManager != null) {
......
...@@ -41,6 +41,11 @@ public class IncognitoNewTabPageView extends FrameLayout { ...@@ -41,6 +41,11 @@ public class IncognitoNewTabPageView extends FrameLayout {
* */ * */
void initCookieControlsManager(); void initCookieControlsManager();
/**
* Tells the caller whether a new snapshot is required or not.
* */
boolean shouldCaptureThumbnail();
/** /**
* Cleans up the manager after it is finished being used. * Cleans up the manager after it is finished being used.
* */ * */
...@@ -113,9 +118,8 @@ public class IncognitoNewTabPageView extends FrameLayout { ...@@ -113,9 +118,8 @@ public class IncognitoNewTabPageView extends FrameLayout {
boolean shouldCaptureThumbnail() { boolean shouldCaptureThumbnail() {
if (getWidth() == 0 || getHeight() == 0) return false; if (getWidth() == 0 || getHeight() == 0) return false;
return getWidth() != mSnapshotWidth return mManager.shouldCaptureThumbnail() || getWidth() != mSnapshotWidth
|| getHeight() != mSnapshotHeight || getHeight() != mSnapshotHeight || mScrollView.getScrollY() != mSnapshotScrollY;
|| mScrollView.getScrollY() != mSnapshotScrollY;
} }
/** /**
......
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