Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Issue 1308313005: Modify gesture event types for WebView-tag scroll bubbling. (Closed)

Created:
5 years, 3 months ago by wjmaclean
Modified:
5 years, 3 months ago
Reviewers:
tdresser, Rick Byers
CC:
blink-reviews, blink-reviews-events_chromium.org, dglazkov+blink, eae+blinkwatch, rjkroege, Charlie Reis
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Modify gesture event types for WebView-tag scroll bubbling. This CL: (1) Adds a field |resendingPluginId|to allow unconsumed scroll events to be marked as "resent". This will allow asynchronous processing of scrolls between embedder/guest for BrowserTag WebView. (2) Forwards GestureFlingStart to the target node so that a guest can properly determine the begin and end of a gesture scroll. Previously the guest might receive two or more GestureScrollStart events in succession, causing debug-builds to fail on DCHECKs. GestureFlingStart conversions are updated to propagate velocities, as receiving a GestureFlingStart with zero velocity will trigger errors. In a future CL it may be possible to avoid creating fling curves in the embedder that target a guest---these flings will instead be created in the guest. This will decrease IPC traffic, and presumably decrease jitter in the guest's fling. (3) Add plumbing so GestureScrollUpdate's |inertial| field be properly converted between WebGestureEvent, GestureEvent and PlatformGestureEvent. This is required so the guest can filter GestureScrollUpdates that are generated by fling curves, as these are generated outside the GestureScrollBegin and GestureScrollEnd-GestureFlingStart boundaries. Note: when WebView-tag transitions to using OOPIF instead of BrowserPlugin, all of this can be removed (though I would recommend still allowing plugins to process GestureFlingStart) This CL must land before https://codereview.chromium.org/1308273003/ BUG=491940 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=202448

Patch Set 1 #

Patch Set 2 : Fix test compilation. #

Patch Set 3 : Forward GestureFlingStart, more event state plumbing. #

Patch Set 4 : Rebase to trunk@202051 #

Patch Set 5 : Fix test expectation. #

Total comments: 8

Patch Set 6 : Address tdresser@'s comments. #

Patch Set 7 : Rename |resendSource| to |resendingPluginId|. #

Total comments: 29

Patch Set 8 : Use -1 instead of 0 for null plugin id. #

Total comments: 2

Patch Set 9 : Cleanup asserts. #

Total comments: 1

Patch Set 10 : Add comment to explain |resendingPluginId|. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+113 lines, -26 lines) Patch
M Source/core/events/EventTypeNames.in View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/events/GestureEvent.h View 1 2 3 4 5 6 2 chunks +11 lines, -1 line 0 comments Download
M Source/core/events/GestureEvent.cpp View 1 2 3 4 5 6 7 5 chunks +19 lines, -2 lines 0 comments Download
M Source/core/events/WheelEvent.h View 1 2 3 4 5 6 4 chunks +5 lines, -3 lines 0 comments Download
M Source/core/events/WheelEvent.cpp View 1 2 3 4 5 6 7 5 chunks +5 lines, -2 lines 0 comments Download
M Source/platform/PlatformGestureEvent.h View 1 2 3 4 5 6 7 8 5 chunks +17 lines, -3 lines 0 comments Download
M Source/platform/PlatformWheelEvent.h View 1 2 3 4 5 6 7 5 chunks +5 lines, -1 line 0 comments Download
M Source/web/WebInputEvent.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M Source/web/WebInputEventConversion.cpp View 1 2 3 4 5 6 7 4 chunks +21 lines, -6 lines 0 comments Download
M Source/web/WebViewImpl.cpp View 1 2 3 4 5 6 7 8 9 2 chunks +7 lines, -1 line 0 comments Download
M Source/web/tests/VisualViewportTest.cpp View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M Source/web/tests/WebInputEventConversionTest.cpp View 1 2 3 4 5 6 7 8 3 chunks +4 lines, -4 lines 0 comments Download
M public/web/WebInputEvent.h View 1 2 3 4 5 6 7 8 9 4 chunks +15 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 41 (15 generated)
wjmaclean
rbyers@ please take a look? Mostly plumbing ...
5 years, 3 months ago (2015-09-11 15:18:22 UTC) #3
tdresser
https://codereview.chromium.org/1308313005/diff/80001/Source/platform/PlatformGestureEvent.h File Source/platform/PlatformGestureEvent.h (right): https://codereview.chromium.org/1308313005/diff/80001/Source/platform/PlatformGestureEvent.h#newcode125 Source/platform/PlatformGestureEvent.h:125: { Can we keep this consistent with the other ...
5 years, 3 months ago (2015-09-11 15:25:21 UTC) #5
wjmaclean
https://codereview.chromium.org/1308313005/diff/80001/Source/platform/PlatformGestureEvent.h File Source/platform/PlatformGestureEvent.h (right): https://codereview.chromium.org/1308313005/diff/80001/Source/platform/PlatformGestureEvent.h#newcode125 Source/platform/PlatformGestureEvent.h:125: { On 2015/09/11 15:25:20, tdresser wrote: > Can we ...
5 years, 3 months ago (2015-09-11 15:31:01 UTC) #6
tdresser
https://codereview.chromium.org/1308313005/diff/80001/Source/platform/PlatformGestureEvent.h File Source/platform/PlatformGestureEvent.h (right): https://codereview.chromium.org/1308313005/diff/80001/Source/platform/PlatformGestureEvent.h#newcode197 Source/platform/PlatformGestureEvent.h:197: int m_resendSource; On 2015/09/11 15:31:01, wjmaclean wrote: > On ...
5 years, 3 months ago (2015-09-11 15:34:10 UTC) #7
wjmaclean
On 2015/09/11 15:34:10, tdresser wrote: > > Makes sense. Can we clarify the meaning with ...
5 years, 3 months ago (2015-09-11 15:37:14 UTC) #8
wjmaclean
https://codereview.chromium.org/1308313005/diff/80001/Source/web/WebViewImpl.cpp File Source/web/WebViewImpl.cpp (right): https://codereview.chromium.org/1308313005/diff/80001/Source/web/WebViewImpl.cpp#newcode755 Source/web/WebViewImpl.cpp:755: if (event.type == WebInputEvent::GestureFlingStart) On 2015/09/11 15:31:01, wjmaclean wrote: ...
5 years, 3 months ago (2015-09-11 15:37:23 UTC) #9
tdresser
On 2015/09/11 15:37:14, wjmaclean wrote: > On 2015/09/11 15:34:10, tdresser wrote: > > > > ...
5 years, 3 months ago (2015-09-11 15:40:07 UTC) #10
wjmaclean
On 2015/09/11 15:40:07, tdresser wrote: > On 2015/09/11 15:37:14, wjmaclean wrote: > > On 2015/09/11 ...
5 years, 3 months ago (2015-09-11 15:41:06 UTC) #11
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308313005/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308313005/120001
5 years, 3 months ago (2015-09-15 12:37:29 UTC) #13
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/62917)
5 years, 3 months ago (2015-09-15 13:06:56 UTC) #15
tdresser
Let's use -1 instead of 0 for an event which isn't resent. I'm worried we ...
5 years, 3 months ago (2015-09-15 13:13:08 UTC) #16
wjmaclean
https://codereview.chromium.org/1308313005/diff/120001/Source/core/events/GestureEvent.cpp File Source/core/events/GestureEvent.cpp (right): https://codereview.chromium.org/1308313005/diff/120001/Source/core/events/GestureEvent.cpp#newcode99 Source/core/events/GestureEvent.cpp:99: , m_resendingPluginId(0) On 2015/09/15 13:13:07, tdresser wrote: > Let's ...
5 years, 3 months ago (2015-09-15 15:02:48 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308313005/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308313005/140001
5 years, 3 months ago (2015-09-15 15:03:05 UTC) #19
tdresser
LGTM, modulo nit / question. https://codereview.chromium.org/1308313005/diff/120001/Source/web/WebViewImpl.cpp File Source/web/WebViewImpl.cpp (right): https://codereview.chromium.org/1308313005/diff/120001/Source/web/WebViewImpl.cpp#newcode715 Source/web/WebViewImpl.cpp:715: mainFrameImpl()->frame()->eventHandler().handleGestureScrollEvent(platformEvent); On 2015/09/15 15:02:48, ...
5 years, 3 months ago (2015-09-15 15:28:29 UTC) #20
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/113081)
5 years, 3 months ago (2015-09-15 15:37:25 UTC) #22
wjmaclean
It seems that not swallowing the event does not remove the need to explicit report, ...
5 years, 3 months ago (2015-09-15 18:53:51 UTC) #23
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308313005/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308313005/160001
5 years, 3 months ago (2015-09-15 18:54:26 UTC) #25
tdresser
LGTM
5 years, 3 months ago (2015-09-15 19:09:33 UTC) #26
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/107441)
5 years, 3 months ago (2015-09-15 22:23:08 UTC) #28
Rick Byers
LGTM with nits. nit: please update the CL description for the new field name. I ...
5 years, 3 months ago (2015-09-16 14:16:02 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308313005/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308313005/180001
5 years, 3 months ago (2015-09-16 19:48:43 UTC) #32
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/113940)
5 years, 3 months ago (2015-09-16 21:13:24 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308313005/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308313005/180001
5 years, 3 months ago (2015-09-16 21:16:08 UTC) #36
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/108163)
5 years, 3 months ago (2015-09-16 23:11:10 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308313005/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308313005/180001
5 years, 3 months ago (2015-09-17 12:23:50 UTC) #40
commit-bot: I haz the power
5 years, 3 months ago (2015-09-17 13:21:10 UTC) #41
Message was sent while issue was closed.
Committed patchset #10 (id:180001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=202448

Powered by Google App Engine
This is Rietveld 408576698