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

Issue 1308273003: Resend unconsumed scroll update from guest back to embedder (WebView Scroll Bubble). (Closed)

Created:
5 years, 4 months ago by wjmaclean
Modified:
5 years, 2 months ago
CC:
chromium-reviews, extensions-reviews_chromium.org, creis+watch_chromium.org, kalyank, mlamouri+watch-content_chromium.org, shuchen+watch_chromium.org, nasko+codewatch_chromium.org, jam, sievers+watch_chromium.org, jbauman+watch_chromium.org, nona+watch_chromium.org, darin-cc_chromium.org, piman+watch_chromium.org, mkwst+moarreviews-renderer_chromium.org, chromium-apps-reviews_chromium.org, danakj+watch_chromium.org, James Su, jdduke+watch_chromium.org, yusukes+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Resend unconsumed scroll updates from guest back to embedder. (WebView scroll bubbling) This CL provides a pathway for a guest process to return unconsumed scroll updates to its embedder, in order to allow scroll bubbling. The events are marked with the embedder's BrowserPlugin instance id so that when the BrowserPlugin sees the re-sent event it will know to mark it as not-handled so the normal bubbling process can occur within Blink. Note that any scroll event that targets a WebView guest is, by definition, on Blink's main-thread so that it can be processed by BrowserPlugin and forwarded to the guest. ScrollUpdates going to the guest outside of a GestureScrollBegin and GestureScrollEnd/GestureFLingStart pair are surpressed: these are generated by fling curves, but will cause problems in the guest's InputHandlerProxy since it never expects to get them. This CL depends on https://codereview.chromium.org/1308313005/ landing first as it provides the necessary modifications to events to (1) carry the resend source info, and (2) forward GestureFlingStart to the guest via BrowserPlugin. Finally: note that when WebView-tag transitions to OOPIF that much of this code will be redundant and can be removed as part of the larger effort to cleanup (i.e. remove) BrowserPlugin. BUG=491940 Committed: https://crrev.com/73b15a29e89b0150b8ba5ed4b43af298d30bc3da Cr-Commit-Position: refs/heads/master@{#350838}

Patch Set 1 #

Patch Set 2 : Fix logic to only resend events on 'NOT_CONSUMED'. #

Patch Set 3 : Make this all work in DEBUG mode (includes adding GestureFlingStart forwarding). #

Patch Set 4 : Rebase to master@{#348145} #

Patch Set 5 : Remove GestureEventObserver now that we don't forward fling GestureScrollUpdates. #

Total comments: 4

Patch Set 6 : Remove references to RenderViewHost*. #

Patch Set 7 : Refactor to avoid changing RenderWidgetHostImpl's interface. #

Total comments: 10

Patch Set 8 : Address creis@'s comments; fix overscroll tests. #

Patch Set 9 : Fix ChromeOS tests. #

Patch Set 10 : Experiment to enable EventGenerator for BrowserTests on MacOSX. #

Patch Set 11 : Fix MacOSX compile. #

Patch Set 12 : Enable views support for mac browser tests. #

Patch Set 13 : Revise new tests to work across platforms, fix event coord conversion during resend. #

Patch Set 14 : Don't require GestureScrollBegin for touch-pad GestureFlingStart. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+564 lines, -10 lines) Patch
M chrome/browser/apps/guest_view/web_view_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +184 lines, -0 lines 0 comments Download
A chrome/test/data/extensions/platform_apps/web_view/scrollable_embedder_and_guest/guest.html View 1 chunk +43 lines, -0 lines 0 comments Download
A chrome/test/data/extensions/platform_apps/web_view/scrollable_embedder_and_guest/guest.js View 1 2 3 4 5 6 7 1 chunk +25 lines, -0 lines 0 comments Download
A chrome/test/data/extensions/platform_apps/web_view/scrollable_embedder_and_guest/main.html View 1 chunk +13 lines, -0 lines 0 comments Download
A chrome/test/data/extensions/platform_apps/web_view/scrollable_embedder_and_guest/main.js View 1 2 3 4 5 6 7 1 chunk +49 lines, -0 lines 0 comments Download
A chrome/test/data/extensions/platform_apps/web_view/scrollable_embedder_and_guest/manifest.json View 1 chunk +23 lines, -0 lines 0 comments Download
A + chrome/test/data/extensions/platform_apps/web_view/scrollable_embedder_and_guest/test.js View 1 chunk +3 lines, -1 line 0 comments Download
M content/browser/browser_plugin/browser_plugin_guest.h View 1 2 3 4 5 6 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/browser_plugin/browser_plugin_guest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +31 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_guest.h View 1 2 3 2 chunks +7 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_guest.cc View 1 2 3 4 5 6 7 2 chunks +33 lines, -2 lines 0 comments Download
M content/browser/renderer_host/input/gesture_event_queue.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.h View 1 2 3 4 5 6 7 1 chunk +5 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +54 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura_unittest.cc View 1 2 3 4 5 6 7 7 chunks +20 lines, -7 lines 0 comments Download
M content/public/test/browser_test_utils.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +10 lines, -0 lines 0 comments Download
M content/public/test/browser_test_utils.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +43 lines, -0 lines 0 comments Download
M content/renderer/browser_plugin/browser_plugin.cc View 1 2 3 4 5 2 chunks +18 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 39 (15 generated)
wjmaclean
creis@ and rjkroege@ - I think this is ready for regular review now ... please ...
5 years, 3 months ago (2015-09-11 19:14:56 UTC) #2
Charlie Reis
Maybe kenrb@ would be a better reviewer than me? I'm not as deeply knowledgeable about ...
5 years, 3 months ago (2015-09-11 19:42:50 UTC) #4
wjmaclean
On 2015/09/11 19:42:50, Charlie Reis (slow till 9-14) wrote: > Maybe kenrb@ would be a ...
5 years, 3 months ago (2015-09-11 19:49:01 UTC) #5
kenrb
I can, but I probably can't finish this before Monday morning.
5 years, 3 months ago (2015-09-11 20:34:26 UTC) #6
wjmaclean
On 2015/09/11 20:34:26, kenrb wrote: > I can, but I probably can't finish this before ...
5 years, 3 months ago (2015-09-11 20:35:01 UTC) #7
kenrb
https://codereview.chromium.org/1308273003/diff/80001/content/browser/browser_plugin/browser_plugin_guest.cc File content/browser/browser_plugin/browser_plugin_guest.cc (right): https://codereview.chromium.org/1308273003/diff/80001/content/browser/browser_plugin/browser_plugin_guest.cc#newcode481 content/browser/browser_plugin/browser_plugin_guest.cc:481: RenderViewHost* rvh = embedder_web_contents()->GetRenderViewHost(); I would prefer if you ...
5 years, 3 months ago (2015-09-14 15:48:51 UTC) #8
wjmaclean
https://codereview.chromium.org/1308273003/diff/80001/content/browser/browser_plugin/browser_plugin_guest.cc File content/browser/browser_plugin/browser_plugin_guest.cc (right): https://codereview.chromium.org/1308273003/diff/80001/content/browser/browser_plugin/browser_plugin_guest.cc#newcode481 content/browser/browser_plugin/browser_plugin_guest.cc:481: RenderViewHost* rvh = embedder_web_contents()->GetRenderViewHost(); On 2015/09/14 15:48:51, kenrb wrote: ...
5 years, 3 months ago (2015-09-14 20:47:21 UTC) #9
kenrb
Yes I'm okay with it. lgtm
5 years, 3 months ago (2015-09-15 18:10:58 UTC) #10
wjmaclean
creis@ - I've uploaded the refactoring changes requested by kenrb@ ... can you please do ...
5 years, 3 months ago (2015-09-17 20:09:15 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/1308273003/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308273003/120001
5 years, 3 months ago (2015-09-17 20:09:58 UTC) #13
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: cast_shell_linux on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linux/builds/56009)
5 years, 3 months ago (2015-09-17 20:42:46 UTC) #15
Charlie Reis
Looks like there's some relevant test failures. Otherwise, I'll give a rubber stamp LGTM with ...
5 years, 3 months ago (2015-09-18 04:30:36 UTC) #16
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308273003/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308273003/140001
5 years, 3 months ago (2015-09-18 15:23:06 UTC) #18
wjmaclean
> Looks like there's some relevant test failures. Otherwise, > I'll give a rubber stamp ...
5 years, 3 months ago (2015-09-18 15:30:57 UTC) #19
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/105063)
5 years, 3 months ago (2015-09-18 15:58:01 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308273003/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308273003/160001
5 years, 3 months ago (2015-09-21 20:34:30 UTC) #23
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: win_chromium_x64_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/106819)
5 years, 3 months ago (2015-09-21 21:11:51 UTC) #25
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308273003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308273003/260001
5 years, 2 months ago (2015-09-24 20:06:19 UTC) #28
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/57321)
5 years, 2 months ago (2015-09-24 21:08:20 UTC) #30
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308273003/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308273003/280001
5 years, 2 months ago (2015-09-25 13:53:34 UTC) #32
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 2 months ago (2015-09-25 15:28:27 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1308273003/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1308273003/280001
5 years, 2 months ago (2015-09-25 15:51:10 UTC) #37
commit-bot: I haz the power
Committed patchset #14 (id:280001)
5 years, 2 months ago (2015-09-25 15:56:52 UTC) #38
commit-bot: I haz the power
5 years, 2 months ago (2015-09-25 15:57:43 UTC) #39
Message was sent while issue was closed.
Patchset 14 (id:??) landed as
https://crrev.com/73b15a29e89b0150b8ba5ed4b43af298d30bc3da
Cr-Commit-Position: refs/heads/master@{#350838}

Powered by Google App Engine
This is Rietveld 408576698