DescriptionAvoid showing the supervised user block interstitial more than once
With asynchronous checks, it can happen that multiple checks return that
the current page should be blocked. When trying to show an interstitial
page over another existing one, the old interstitial page automatically
is closed, which for the case of the supervised user interstitial would
close the whole tab if there is no navigation to go back to. Add a flag
in SupervisedUserNavigationObserver that stores whether an interstitial
is currently showing, and clear it when the interstitial is closed.
Because the SupervisedUserNavigationObserver is now used to store state,
it is required in order to show the interstitial, so the navigation will
now fail if the SupervisedUserNavigationObserver for a WebContents is
missing.
Also, remove the case where the interstitial immediately proceeds,
because the URL filter is always checked on the UI thread.
BUG=715981
Review-Url: https://codereview.chromium.org/2845053002
Cr-Commit-Position: refs/heads/master@{#468591}
Committed: https://chromium.googlesource.com/chromium/src/+/3483d15c1e3cec604c66663f19654a271bfe77ec
Patch Set 1 #Patch Set 2 : fix #Patch Set 3 : tests #Patch Set 4 : comments #
Total comments: 4
Patch Set 5 : comment #
Messages
Total messages: 29 (24 generated)
|