Descriptionmac: History swiping doesn't work right with iframes.
This CL is a reland of crrev.com/194713016. The reason that the previous
attempt to land this CL failed was because Blink was claiming to handle events
that it was actually ignoring. This has been fixed in crrev.com/219473003,
which also added unit-tests to ensure that the new behavior is correct.
In addition, this reland removes all logic related to the isPinnedLeft and
isPinnedRight properties of the history swiper. They are no longer required
because they are a subset of the state that determines whether blink will
handle an event, which is now being correctly propagated to the history swiper.
This fixes a long outstanding bug (I don't think it's ever worked) where the
pinned state is not correctly propagated to the history swiper, which prevents
history navigation. (Blink only sends callbacks for when a user scrolls or the
window is resized. If the user performs a history navigation, the pinned state
might change, but Blink will not send a callback to update the state of the
history swiper).
----------------Description from first attempt to land this CL----------------
In the previous behavior, it was possible for a user to start scrolling an
iframe with the touch pad, and then trigger history navigation. This happened
because the Cocoa view only received callbacks for whether an event in a
gesture wasn't handled. If any event in a gesture happened to not be handled by
blink, then that event could trigger history swiping, even though blink may
have handled earlier events in the same gesture!
My solution is to propagate the information for whether an event was handled to
the Cocoa view. History swiping is only enabled if no event is ever handled by
blink.
BUG=321437
TEST=Navigate to www.google.com. Then navigate to
http://codepen.io/anon/pen/ujsec. Place the cursor in the box that says "place
cursor here", and start a downwards 2-finger swipe. Half way through the swipe,
change directions and swipe to the left (or right, depending on your settings)
to navigate backwards in history. Prior to this change, the history swipe arrow
would appear. In this change, the history swipe arrow no longer appears.
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=262572
Patch Set 1 : Clone of patch set 9 from crrev.com/194713016 #Patch Set 2 : Logic for history swiping should not depend on the "pinned" property. #
Total comments: 2
Patch Set 3 : Respond to comment from avi. #Messages
Total messages: 10 (0 generated)
|