Issue metadata
Sign in to add a comment
|
Cannot touchscreen fling from an OOPIF |
||||||||||||||||||||||||||||
Issue descriptionChrome Version: 70.0.3538.17 What steps will reproduce the problem? (1) Enable site isolation (2) Visit a scrollable page with an OOPIF (e.g. I noticed on https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/, the comments section is in an OOPIF) (3) With a touchscreen, scroll an OOPIF such that the scroll bubbles to the parent frame (4) Fling What is the expected result? The fling scrolls the parent frame What happens instead? Scrolling stops This worked in 68.0.3440.91.
,
Sep 17
,
Sep 17
Bisected to https://chromium.googlesource.com/chromium/src/+/49d91137f863ad41e769ac4eb8f3ce5296c98fd9
,
Sep 17
mcnee@ Thanks for the bisect
,
Sep 17
Thanks for spotting! r577337 landed in 70.0.3501.0, so we should target M70 if possible.
,
Sep 24
sahel@: Do you have time to take a look at this one? M70 is coming up soon. Thanks!
,
Sep 25
,
Oct 2
Issue 891547 has been merged into this issue.
,
Oct 3
sahel@, any updates on this issue? We're hitting this in practice on Android with AMP pages and site isolation enabled.
,
Oct 3
I have a WIP and I am working on the failing test: https://chromium-review.googlesource.com/c/chromium/src/+/1252621
,
Oct 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d5861294468c74b20335fe93ec01086ea21acec6 commit d5861294468c74b20335fe93ec01086ea21acec6 Author: Sahel Sharify <sahel@chromium.org> Date: Thu Oct 04 16:19:55 2018 Fix the regression for fling bubbling from oopif. Calling PrgoressFling right after Processing GFS which landed in https://chromium-review.googlesource.com/1140912 was the root cause of this regression. This cl changes the fling controller logic to wait for the scheduler to call progress fling. The following browser tests are also added to make sure that the regression won't happen in the future. Bug: 884728 , 249063 Test: BrowserSideFlingBrowserTest.[Touchpad|Touchscreen]FlingBubblesFromOOPIF Change-Id: I3018b32c9d40d36406b4f532dcab6cccf3ee3b97 Reviewed-on: https://chromium-review.googlesource.com/c/1252621 Commit-Queue: Sahel Sharify <sahel@chromium.org> Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org> Cr-Commit-Position: refs/heads/master@{#596696} [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/fling_browsertest.cc [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/fling_controller.cc [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/fling_controller.h [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/fling_controller_unittest.cc [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/fling_scheduler.cc [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/fling_scheduler.h [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/fling_scheduler_android.cc [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/fling_scheduler_android.h [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/gesture_event_queue_unittest.cc [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/mock_input_router_client.cc [modify] https://crrev.com/d5861294468c74b20335fe93ec01086ea21acec6/content/browser/renderer_host/input/mock_input_router_client.h
,
Oct 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0528108bb9a5b54b67af1d46ba708efff9f4f534 commit 0528108bb9a5b54b67af1d46ba708efff9f4f534 Author: Marijn Kruisselbrink <mek@chromium.org> Date: Thu Oct 04 19:11:11 2018 Revert "Fix the regression for fling bubbling from oopif." This reverts commit d5861294468c74b20335fe93ec01086ea21acec6. Reason for revert: New browser tests are flaky. Original change's description: > Fix the regression for fling bubbling from oopif. > > Calling PrgoressFling right after Processing GFS which landed in > https://chromium-review.googlesource.com/1140912 was the root cause of this > regression. > > This cl changes the fling controller logic to wait for the scheduler to > call progress fling. The following browser tests are also added to make sure > that the regression won't happen in the future. > > Bug: 884728 , 249063 > Test: BrowserSideFlingBrowserTest.[Touchpad|Touchscreen]FlingBubblesFromOOPIF > Change-Id: I3018b32c9d40d36406b4f532dcab6cccf3ee3b97 > Reviewed-on: https://chromium-review.googlesource.com/c/1252621 > Commit-Queue: Sahel Sharify <sahel@chromium.org> > Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#596696} TBR=nzolghadr@chromium.org,sahel@chromium.org Change-Id: I7453b56f9ed1452839674e7d70d172e60c1440b4 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 884728 , 249063 , 892285 Reviewed-on: https://chromium-review.googlesource.com/c/1262428 Reviewed-by: Marijn Kruisselbrink <mek@chromium.org> Commit-Queue: Marijn Kruisselbrink <mek@chromium.org> Cr-Commit-Position: refs/heads/master@{#596793} [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/fling_browsertest.cc [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/fling_controller.cc [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/fling_controller.h [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/fling_controller_unittest.cc [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/fling_scheduler.cc [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/fling_scheduler.h [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/fling_scheduler_android.cc [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/fling_scheduler_android.h [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/gesture_event_queue_unittest.cc [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/mock_input_router_client.cc [modify] https://crrev.com/0528108bb9a5b54b67af1d46ba708efff9f4f534/content/browser/renderer_host/input/mock_input_router_client.h
,
Oct 11
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a12ef847a57f4aa0282ca47b555c04da18b00f9e commit a12ef847a57f4aa0282ca47b555c04da18b00f9e Author: Sahel Sharify <sahel@chromium.org> Date: Thu Oct 11 23:04:02 2018 Fling bubbles from OOPIF properly. While we are bubbling a scroll sequence GFS is sent to the fling controllers of both the oopif and the bubbling target. The fling controller of the oopif calls progressFling and generates a GSU with inertial phase, the GSU gets acked immediately before getting sent to the renderer since we are in bubbling mode. Then the oopif's fling controller receives the unconsumed GSU ack and generates a GSE to complete the scrolling sequence on the oopif. The bubbling target's fling controller receives and processes the GFS and generates GSUs which are sent to the target's renderer. If the GSE generated by the oopif's fling controller gets bubbled before the GFS, the bubbling target gets reset and the target does not receive the GFS. This cl fixes the issue by making sure that the events generated by the oopif's fling controller are not bubbled to the target. Also in case of GFS bubbling, the GFC should also get sent to the bubbling target to make sure that the fling controller in charge of flinging receives the GFC. Bug: 884728 , 249063 Test: BrowserSideFlingBrowserTest.[Touchpad|Touchscreen]FlingBubblesFromOOPIF Change-Id: I064944f125bebcb746f329af4cfb117f3be94ff0 Reviewed-on: https://chromium-review.googlesource.com/c/1274193 Reviewed-by: Kevin McNee <mcnee@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Commit-Queue: Charlie Reis <creis@chromium.org> Cr-Commit-Position: refs/heads/master@{#599001} [modify] https://crrev.com/a12ef847a57f4aa0282ca47b555c04da18b00f9e/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/a12ef847a57f4aa0282ca47b555c04da18b00f9e/content/browser/renderer_host/input/fling_browsertest.cc [modify] https://crrev.com/a12ef847a57f4aa0282ca47b555c04da18b00f9e/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/a12ef847a57f4aa0282ca47b555c04da18b00f9e/content/browser/renderer_host/render_widget_host_input_event_router.h [modify] https://crrev.com/a12ef847a57f4aa0282ca47b555c04da18b00f9e/content/browser/renderer_host/render_widget_host_view_child_frame.cc
,
Oct 12
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bb03212f2a4bd93f4f87da036a5f9eaeb2256466 commit bb03212f2a4bd93f4f87da036a5f9eaeb2256466 Author: Findit <findit-for-me@appspot.gserviceaccount.com> Date: Fri Oct 12 04:21:38 2018 Revert "Fling bubbles from OOPIF properly." This reverts commit a12ef847a57f4aa0282ca47b555c04da18b00f9e. Reason for revert: Findit (https://goo.gl/kROfz5) identified CL at revision 599001 as the culprit for flakes in the build cycles as shown on: https://findit-for-me.appspot.com/waterfall/flake/flake-culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyQwsSDEZsYWtlQ3VscHJpdCIxY2hyb21pdW0vYTEyZWY4NDdhNTdmNGFhMDI4MmNhNDdiNTU1YzA0ZGExOGIwMGY5ZQw Sample Failed Build: https://ci.chromium.org/buildbot/chromium.memory/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/29516 Sample Failed Step: content_browsertests Sample Flaky Test: BrowserSideFlingBrowserTest.TouchscreenFlingBubblesFromOOPIF Original change's description: > Fling bubbles from OOPIF properly. > > While we are bubbling a scroll sequence GFS is sent to the fling controllers > of both the oopif and the bubbling target. The fling controller of the oopif > calls progressFling and generates a GSU with inertial phase, the GSU gets acked > immediately before getting sent to the renderer since we are in bubbling mode. > Then the oopif's fling controller receives the unconsumed GSU ack and generates > a GSE to complete the scrolling sequence on the oopif. The bubbling target's > fling controller receives and processes the GFS and generates GSUs which are > sent to the target's renderer. > > If the GSE generated by the oopif's fling controller gets bubbled before > the GFS, the bubbling target gets reset and the target does not receive the > GFS. This cl fixes the issue by making sure that the events generated by the > oopif's fling controller are not bubbled to the target. Also in case of > GFS bubbling, the GFC should also get sent to the bubbling target to make > sure that the fling controller in charge of flinging receives the GFC. > > > Bug: 884728 , 249063 > Test: BrowserSideFlingBrowserTest.[Touchpad|Touchscreen]FlingBubblesFromOOPIF > Change-Id: I064944f125bebcb746f329af4cfb117f3be94ff0 > Reviewed-on: https://chromium-review.googlesource.com/c/1274193 > Reviewed-by: Kevin McNee <mcnee@chromium.org> > Reviewed-by: Charlie Reis <creis@chromium.org> > Commit-Queue: Charlie Reis <creis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#599001} Change-Id: Ie8178e456d50cdd43fdeb86939180d20b96bcc36 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 884728 , 249063 , 894703 Reviewed-on: https://chromium-review.googlesource.com/c/1278536 Cr-Commit-Position: refs/heads/master@{#599094} [modify] https://crrev.com/bb03212f2a4bd93f4f87da036a5f9eaeb2256466/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/bb03212f2a4bd93f4f87da036a5f9eaeb2256466/content/browser/renderer_host/input/fling_browsertest.cc [modify] https://crrev.com/bb03212f2a4bd93f4f87da036a5f9eaeb2256466/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/bb03212f2a4bd93f4f87da036a5f9eaeb2256466/content/browser/renderer_host/render_widget_host_input_event_router.h [modify] https://crrev.com/bb03212f2a4bd93f4f87da036a5f9eaeb2256466/content/browser/renderer_host/render_widget_host_view_child_frame.cc
,
Oct 12
Looks like r599001 made it into the 71.0.3578.0 Canary before being reverted in r599094, and that it caused some crashes in issue 894798. We'll want to get the flaky tests and crashes resolved to reland it. I'm guessing we'll need to target M71 for the fix now, which might be ok. IIUC, this has only been reported by Chrome developers, and it's an annoyance but scrolling these frames still works, just without fling. I'll double check with Sahel, but let me know if any of that sounds incorrect. Thanks!
,
Oct 12
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/21ba6121d2ba5821515bcb9f3fdf768204425061 commit 21ba6121d2ba5821515bcb9f3fdf768204425061 Author: Sahel Sharify <sahel@chromium.org> Date: Fri Oct 12 21:27:45 2018 Reland "Fling bubbles from OOPIF properly." This is a reland of a12ef847a57f4aa0282ca47b555c04da18b00f9e The reland has the following two fixes: 1- In the added tests, we wait for the ack of the GSB from the parent view to make sure that GFS is processed after GSB has been bubbled to avoid the flakiness. 2- Early return in BubbleScrollEvent to avoid crbug.com/828422 Original change's description: > Fling bubbles from OOPIF properly. > > While we are bubbling a scroll sequence GFS is sent to the fling controllers > of both the oopif and the bubbling target. The fling controller of the oopif > calls progressFling and generates a GSU with inertial phase, the GSU gets acked > immediately before getting sent to the renderer since we are in bubbling mode. > Then the oopif's fling controller receives the unconsumed GSU ack and generates > a GSE to complete the scrolling sequence on the oopif. The bubbling target's > fling controller receives and processes the GFS and generates GSUs which are > sent to the target's renderer. > > If the GSE generated by the oopif's fling controller gets bubbled before > the GFS, the bubbling target gets reset and the target does not receive the > GFS. This cl fixes the issue by making sure that the events generated by the > oopif's fling controller are not bubbled to the target. Also in case of > GFS bubbling, the GFC should also get sent to the bubbling target to make > sure that the fling controller in charge of flinging receives the GFC. > > > Bug: 884728 , 249063 > Test: BrowserSideFlingBrowserTest.[Touchpad|Touchscreen]FlingBubblesFromOOPIF > Change-Id: I064944f125bebcb746f329af4cfb117f3be94ff0 > Reviewed-on: https://chromium-review.googlesource.com/c/1274193 > Reviewed-by: Kevin McNee <mcnee@chromium.org> > Reviewed-by: Charlie Reis <creis@chromium.org> > Commit-Queue: Charlie Reis <creis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#599001} Bug: 884728 , 249063 Change-Id: I1528d904e84ff85f7828392c2b0178a42869d529 Reviewed-on: https://chromium-review.googlesource.com/c/1278963 Reviewed-by: Kevin McNee <mcnee@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Commit-Queue: Sahel Sharify <sahel@chromium.org> Cr-Commit-Position: refs/heads/master@{#599360} [modify] https://crrev.com/21ba6121d2ba5821515bcb9f3fdf768204425061/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/21ba6121d2ba5821515bcb9f3fdf768204425061/content/browser/renderer_host/input/fling_browsertest.cc [modify] https://crrev.com/21ba6121d2ba5821515bcb9f3fdf768204425061/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/21ba6121d2ba5821515bcb9f3fdf768204425061/content/browser/renderer_host/render_widget_host_input_event_router.h [modify] https://crrev.com/21ba6121d2ba5821515bcb9f3fdf768204425061/content/browser/renderer_host/render_widget_host_view_child_frame.cc
,
Oct 13
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/621e5c1c2e0a840308a15e58272228537fe482ab commit 621e5c1c2e0a840308a15e58272228537fe482ab Author: Findit <findit-for-me@appspot.gserviceaccount.com> Date: Sat Oct 13 03:54:15 2018 Revert "Reland "Fling bubbles from OOPIF properly."" This reverts commit 21ba6121d2ba5821515bcb9f3fdf768204425061. Reason for revert: Findit (https://goo.gl/kROfz5) identified CL at revision 599360 as the culprit for flakes in the build cycles as shown on: https://findit-for-me.appspot.com/waterfall/flake/flake-culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyQwsSDEZsYWtlQ3VscHJpdCIxY2hyb21pdW0vMjFiYTYxMjFkMmJhNTgyMTUxNWJjYjlmM2ZkZjc2ODIwNDQyNTA2MQw Sample Failed Build: https://ci.chromium.org/buildbot/chromium.chromiumos/linux-chromeos-rel/14616 Sample Failed Step: viz_content_browsertests Sample Flaky Test: BrowserSideFlingBrowserTest.GFCGetsBubbledFromOOPIF Original change's description: > Reland "Fling bubbles from OOPIF properly." > > This is a reland of a12ef847a57f4aa0282ca47b555c04da18b00f9e > > The reland has the following two fixes: > 1- In the added tests, we wait for the ack of the GSB from the parent view to make > sure that GFS is processed after GSB has been bubbled to avoid the flakiness. > 2- Early return in BubbleScrollEvent to avoid crbug.com/828422 > > Original change's description: > > Fling bubbles from OOPIF properly. > > > > While we are bubbling a scroll sequence GFS is sent to the fling controllers > > of both the oopif and the bubbling target. The fling controller of the oopif > > calls progressFling and generates a GSU with inertial phase, the GSU gets acked > > immediately before getting sent to the renderer since we are in bubbling mode. > > Then the oopif's fling controller receives the unconsumed GSU ack and generates > > a GSE to complete the scrolling sequence on the oopif. The bubbling target's > > fling controller receives and processes the GFS and generates GSUs which are > > sent to the target's renderer. > > > > If the GSE generated by the oopif's fling controller gets bubbled before > > the GFS, the bubbling target gets reset and the target does not receive the > > GFS. This cl fixes the issue by making sure that the events generated by the > > oopif's fling controller are not bubbled to the target. Also in case of > > GFS bubbling, the GFC should also get sent to the bubbling target to make > > sure that the fling controller in charge of flinging receives the GFC. > > > > > > Bug: 884728 , 249063 > > Test: BrowserSideFlingBrowserTest.[Touchpad|Touchscreen]FlingBubblesFromOOPIF > > Change-Id: I064944f125bebcb746f329af4cfb117f3be94ff0 > > Reviewed-on: https://chromium-review.googlesource.com/c/1274193 > > Reviewed-by: Kevin McNee <mcnee@chromium.org> > > Reviewed-by: Charlie Reis <creis@chromium.org> > > Commit-Queue: Charlie Reis <creis@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#599001} > > Bug: 884728 , 249063 > Change-Id: I1528d904e84ff85f7828392c2b0178a42869d529 > Reviewed-on: https://chromium-review.googlesource.com/c/1278963 > Reviewed-by: Kevin McNee <mcnee@chromium.org> > Reviewed-by: Charlie Reis <creis@chromium.org> > Commit-Queue: Sahel Sharify <sahel@chromium.org> > Cr-Commit-Position: refs/heads/master@{#599360} Change-Id: I5553104cdf30a18fb9399b486d5c403a67dda409 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 884728 , 249063 , 895059 Reviewed-on: https://chromium-review.googlesource.com/c/1279943 Cr-Commit-Position: refs/heads/master@{#599483} [modify] https://crrev.com/621e5c1c2e0a840308a15e58272228537fe482ab/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/621e5c1c2e0a840308a15e58272228537fe482ab/content/browser/renderer_host/input/fling_browsertest.cc [modify] https://crrev.com/621e5c1c2e0a840308a15e58272228537fe482ab/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/621e5c1c2e0a840308a15e58272228537fe482ab/content/browser/renderer_host/render_widget_host_input_event_router.h [modify] https://crrev.com/621e5c1c2e0a840308a15e58272228537fe482ab/content/browser/renderer_host/render_widget_host_view_child_frame.cc
,
Oct 15
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1e82d7b7509c3b9297efff38ec22a39cc91b1eee commit 1e82d7b7509c3b9297efff38ec22a39cc91b1eee Author: Findit <findit-for-me@appspot.gserviceaccount.com> Date: Mon Oct 15 14:54:46 2018 Revert "Fling bubbles from OOPIF properly." This reverts commit a12ef847a57f4aa0282ca47b555c04da18b00f9e. Reason for revert: Findit (https://goo.gl/kROfz5) identified CL at revision 599001 as the culprit for flakes in the build cycles as shown on: https://findit-for-me.appspot.com/waterfall/flake/flake-culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyQwsSDEZsYWtlQ3VscHJpdCIxY2hyb21pdW0vYTEyZWY4NDdhNTdmNGFhMDI4MmNhNDdiNTU1YzA0ZGExOGIwMGY5ZQw Sample Failed Build: https://ci.chromium.org/buildbot/chromium.memory/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/29516 Sample Failed Step: content_browsertests Sample Flaky Test: BrowserSideFlingBrowserTest.TouchscreenFlingBubblesFromOOPIF Original change's description: > Fling bubbles from OOPIF properly. > > While we are bubbling a scroll sequence GFS is sent to the fling controllers > of both the oopif and the bubbling target. The fling controller of the oopif > calls progressFling and generates a GSU with inertial phase, the GSU gets acked > immediately before getting sent to the renderer since we are in bubbling mode. > Then the oopif's fling controller receives the unconsumed GSU ack and generates > a GSE to complete the scrolling sequence on the oopif. The bubbling target's > fling controller receives and processes the GFS and generates GSUs which are > sent to the target's renderer. > > If the GSE generated by the oopif's fling controller gets bubbled before > the GFS, the bubbling target gets reset and the target does not receive the > GFS. This cl fixes the issue by making sure that the events generated by the > oopif's fling controller are not bubbled to the target. Also in case of > GFS bubbling, the GFC should also get sent to the bubbling target to make > sure that the fling controller in charge of flinging receives the GFC. > > > Bug: 884728 , 249063 > Test: BrowserSideFlingBrowserTest.[Touchpad|Touchscreen]FlingBubblesFromOOPIF > Change-Id: I064944f125bebcb746f329af4cfb117f3be94ff0 > Reviewed-on: https://chromium-review.googlesource.com/c/1274193 > Reviewed-by: Kevin McNee <mcnee@chromium.org> > Reviewed-by: Charlie Reis <creis@chromium.org> > Commit-Queue: Charlie Reis <creis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#599001} Change-Id: Ie8178e456d50cdd43fdeb86939180d20b96bcc36 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 884728 , 249063 , 894703 Reviewed-on: https://chromium-review.googlesource.com/c/1278536 Cr-Original-Commit-Position: refs/heads/master@{#599094}(cherry picked from commit bb03212f2a4bd93f4f87da036a5f9eaeb2256466) Reviewed-on: https://chromium-review.googlesource.com/c/1280621 Reviewed-by: Sahel Sharify <sahel@chromium.org> Cr-Commit-Position: refs/branch-heads/3578@{#21} Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034} [modify] https://crrev.com/1e82d7b7509c3b9297efff38ec22a39cc91b1eee/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/1e82d7b7509c3b9297efff38ec22a39cc91b1eee/content/browser/renderer_host/input/fling_browsertest.cc [modify] https://crrev.com/1e82d7b7509c3b9297efff38ec22a39cc91b1eee/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/1e82d7b7509c3b9297efff38ec22a39cc91b1eee/content/browser/renderer_host/render_widget_host_input_event_router.h [modify] https://crrev.com/1e82d7b7509c3b9297efff38ec22a39cc91b1eee/content/browser/renderer_host/render_widget_host_view_child_frame.cc
,
Oct 15
,
Oct 15
sahel@ thanks for the fix! few questions: 1) How prevalent is this scenario?
,
Oct 15
oops hit enter too early 2) Seems like this is affecting Chrome OS primarily, but can we please confirm if this is impacting Windows and other touchable devices? (mano@) 3) how safe is this fix? It just landed in trunk few days ago and reverted due to flaky tests. Are you confident this won't break anything else?
,
Oct 15
1-The scenario happens on the pages that contain ads, if the user scrolls on ads or any oopifs that are not scrollable, the page should scroll instead, the scrolling still happens but the fling (inertial part of the scroll) won't happen. mcnee@ or creis@ might have a better statistics of how common is oopif 2- All device with touchscreen are affected, this is not platform specific, on ChromeOS touchpad is also affected 3- Both me and mcnee@ (The reporter and the reviewer of the fix) have checked it locally, but since the tests are flaky I am not 100% confident
,
Oct 15
,
Oct 15
There's a lot of relands and reverts here, so it's probably worth having an overview of the current status (after the previous one in comment 15). The fix in r599001 (71.0.3578.0, comment 13) was reverted in r599094 (72.0.3579.0, comment 14). Those were on either sides of the M72 branch, so comment 18 is about reverting that CL from the M71 branch as well. Separately, an updated fix that addressed the crashes in issue 828422 and tried to fix the flakiness landed in r599360 (72.0.3579.0, comment 16) but was reverted again for flaky tests in r599483 (72.0.3580.0, comment 17). This means that there is no fix for this bug on any branch at the moment, but maybe it's possible to fix the flaky tests and land again. In terms of severity, Sahel shared with me that many users are complaining about this issue on the forums. OOPIFs are quite common now that Site Isolation has shipped. Thus, contrary to what I said in comment 15, it may be important to get some kind of fix for this in M70. (On the flip side, scrolling still works, it's just that fling does not.) From a chat with Sahel, it sounds like the options are: 1) Revert part of Sahel's r577337 from M70, since that introduced the bug. It used to be racy behavior in M69 (i.e., only sometimes worked), and that would get us back to that state until the bug can be fixed properly. 2) Fix the flakiness in these tests, reland r599360 in M72, and merge it to both M71 and M70. 3) Leave the problem in M70 and get a fix merged to M71. Sahel, what would you recommend as the best option here?
,
Oct 15
Thanks for the clarification and the whole picture creis@ I add another option to the list in comment #24 and I think this is the best way forward: -I will land the fix in r599360 without the tests to give it more time to bake and merge it to 70 after a few days on ToT. In the meanwhile debug the flaky tests and hopefully reland them but in a separate cl so that the fix does not get reverted again. WDYT?
,
Oct 15
Comment 25: If you're confident that the test flakiness is not indicative of a problem in practice and is just an issue with the tests, then I agree with the plan. Let's get it into M72 today. If it looks good tomorrow, we can merge it to M71 on Tuesday before Wednesday's M71 Dev. That will let us verify it there before requesting a merge to M70. Thanks!
,
Oct 15
Sounds good, thank you creis@ and sahel@. CROS stable release is next week. We will continue with M70 stable desktop (windows, mac, linux) release tomorrow, and consider this fix for the next respin.
,
Oct 15
,
Oct 15
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/abad21884e5be40e670eab118997d665be5a7618 commit abad21884e5be40e670eab118997d665be5a7618 Author: Sahel Sharify <sahel@chromium.org> Date: Mon Oct 15 23:38:58 2018 Reland "Fling bubbles from OOPIF properly" without the tests. This cl relands the following cl after excluding the added tests. https://chromium-review.googlesource.com/c/chromium/src/+/1278963 This gives the solution more time to bake on ToT without getting reverted due to flaky tests. Meanwhile I will work on the tests to deflake them. TBR=mcnee@chromium.org,creis@chromium.org Bug: 884728 , 249063 Change-Id: Icc1e32ffe493f85d0ee74b0aff37ccdf078d0e8f Reviewed-on: https://chromium-review.googlesource.com/c/1281687 Commit-Queue: Charlie Reis <creis@chromium.org> Reviewed-by: Kevin McNee <mcnee@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Cr-Commit-Position: refs/heads/master@{#599781} [modify] https://crrev.com/abad21884e5be40e670eab118997d665be5a7618/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/abad21884e5be40e670eab118997d665be5a7618/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/abad21884e5be40e670eab118997d665be5a7618/content/browser/renderer_host/render_widget_host_input_event_router.h [modify] https://crrev.com/abad21884e5be40e670eab118997d665be5a7618/content/browser/renderer_host/render_widget_host_view_child_frame.cc
,
Oct 15
r599781 should have the fix without the flaky test. Hopefully that makes it into Tuesday's Canary. If we can verify the fix in Canary and don't see crashes from it, let's request merge to M71 in time for Wednesday's Dev build.
,
Oct 15
Pls update bug with canary result tomorrow morning. Thank you.
,
Oct 16
The NextAction date has arrived: 2018-10-16
,
Oct 16
Tested this issue on Windows 10 and Ubuntu 17.10 using Touchscreen laptop on the reported version 70.0.3538.17 and unable to reproduce the issue by following the below steps. 1. Launched Chrome and enabled #enable-site-per-process flag. 2. Navigated to the link https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/ and could scroll through the comments section using touchscreen without any issues. Attached is the screen cast for reference. sahel@ Request you to check and confirm if anything is missed from our end in verifying the issue and help us in verifying the fix on the latest M-72 build. Thanks.
,
Oct 16
recomment #33: The regression is only related to fling (the inertial part of the scroll when the user has lifted their fingers but the screen is still scrolling). From the video or the repo steps it is not clear to me if it was scrolling all the time or flinging as well. I confirm the fix on the latest canary (72.0.3582.0), and ToT by trying different sites that have oopif and site isolation flag enabled.
,
Oct 16
Pls request a merge for r599781 to M71 if it is safe to merge now. Thank you.
,
Oct 16
I tested the fix on M70 and M71 as well by locally cherry picking. Canary does not show any crashes related to the fix. merge request for r599781 to M71
,
Oct 16
Approving merge to M71 branch 3578 based on comment #36.
,
Oct 16
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a2dbce67726c6c38d98bac84a35c85ea09331311 commit a2dbce67726c6c38d98bac84a35c85ea09331311 Author: Sahel Sharify <sahel@chromium.org> Date: Tue Oct 16 19:12:05 2018 Reland "Fling bubbles from OOPIF properly" without the tests. This cl relands the following cl after excluding the added tests. https://chromium-review.googlesource.com/c/chromium/src/+/1278963 This gives the solution more time to bake on ToT without getting reverted due to flaky tests. Meanwhile I will work on the tests to deflake them. TBR=mcnee@chromium.org,creis@chromium.org Bug: 884728 , 249063 Change-Id: Icc1e32ffe493f85d0ee74b0aff37ccdf078d0e8f Reviewed-on: https://chromium-review.googlesource.com/c/1281687 Commit-Queue: Charlie Reis <creis@chromium.org> Reviewed-by: Kevin McNee <mcnee@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#599781}(cherry picked from commit abad21884e5be40e670eab118997d665be5a7618) Reviewed-on: https://chromium-review.googlesource.com/c/1284066 Reviewed-by: Sahel Sharify <sahel@chromium.org> Cr-Commit-Position: refs/branch-heads/3578@{#55} Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034} [modify] https://crrev.com/a2dbce67726c6c38d98bac84a35c85ea09331311/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/a2dbce67726c6c38d98bac84a35c85ea09331311/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/a2dbce67726c6c38d98bac84a35c85ea09331311/content/browser/renderer_host/render_widget_host_input_event_router.h [modify] https://crrev.com/a2dbce67726c6c38d98bac84a35c85ea09331311/content/browser/renderer_host/render_widget_host_view_child_frame.cc
,
Oct 16
Let's wait for a few more days before merging to M70 since it is at stable now.
,
Oct 16
Note: afakhry@ and oshima@ may have discovered a regression in gesture fling behavior, possibly due to r599781. Let's confirm whether it's related before deciding on the merge to M70. afakhry@ / oshima@: Can you check whether reverting r599781 makes the problem go away? (Or test on 72.0.3581.0, which doesn't contain that CL?) Thanks!
,
Oct 17
Reverting r599781 doesn't help.
,
Oct 18
Just to update after comments 40-41: that issue is a separate problem tracked in issue 896074 which also exists in M70 and M71 (and possibly earlier). Thus, it's not a regression caused by r599781, and we're still on track for the M70 merge. Sahel, when you get a chance, can you verify that the fix is working as expected on yesterday's 71.0.3578.10 Dev channel?
,
Oct 18
I confirm the fix on Dev 71.0.3578.13 is that ok?
,
Oct 18
I also confirm the fix on 71.0.3578.10 (Official Build) dev (64-bit) (cohort: Dev), Win 10
,
Oct 19
The NextAction date has arrived: 2018-10-19
,
Oct 19
Merge request for r599781 to M70. The fix has been merged to 71 on Tuesday and been confirmed on ToT, Canary, and 71.0.3578.10 Dev. The end to end tests are re-landed yesterday: https://chromium-review.googlesource.com/c/chromium/src/+/1289515 and based on flakiness dashboard the tests are not flaky anymore: https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=content_browsertests&tests=browserSideFlingBrowsertest
,
Oct 19
This bug requires manual review: Request affecting a post-stable build Please contact the milestone owner if you have questions. Owners: benmason@(Android), kariahda@(iOS), geohsu@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 19
,
Oct 22
,
Oct 22
Setting to rejected for M70. We need further investigations on this issue.
,
Oct 22
Re-aaproving for ChromeOS M70. Per offline chat, this is a common use case for users and without the fix we will have usability issues.
,
Oct 22
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e8259922112c02c7911960f5583d1b73a6da3167 commit e8259922112c02c7911960f5583d1b73a6da3167 Author: Sahel Sharify <sahel@chromium.org> Date: Mon Oct 22 23:01:38 2018 GSU events with touchpad source and inertial phase should get bubbled. This cl is a fix for the following cl: https://chromium-review.googlesource.com/c/chromium/src/+/1281687 The original cl fixes the crbug.com/884728 by making sure that the GSU/GSE events with inertial phase are not bubbled to the parent. In the original cl Mac is an exception since on this platform the GSU events with inertial phase are received from the OS rather than being generated by the fling controller. What the original cl is missing is that Mac is not the only platform on which we receive GSU events with inertial phase from OS. On Windows devices with high precision touchpad the same thing happens. This cl makes sure that we only stop bubbling the GSU/GSE events that are generated from the fling controller: i.e. GSU/GSE events with inertial phase that are either from touchscreen source or from touchpad source but on ChromeOS only. (touchpad fling happens on chromeOS only, and on Mac and on Windows(high precision touchpad) GSU events with inertial phase are not generated by the fling controller.) Bug: 884728 , 897901 Change-Id: I5d620cc147707f1727c938a868a4082639095568 Reviewed-on: https://chromium-review.googlesource.com/c/1294398 Commit-Queue: Sahel Sharify <sahel@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org> Reviewed-by: Kevin McNee <mcnee@chromium.org> Cr-Commit-Position: refs/heads/master@{#601765} [modify] https://crrev.com/e8259922112c02c7911960f5583d1b73a6da3167/content/browser/renderer_host/input/fling_browsertest.cc [modify] https://crrev.com/e8259922112c02c7911960f5583d1b73a6da3167/content/browser/renderer_host/render_widget_host_view_child_frame.cc
,
Oct 23
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1e82d7b7509c3b9297efff38ec22a39cc91b1eee Commit: 1e82d7b7509c3b9297efff38ec22a39cc91b1eee Author: findit-for-me@appspot.gserviceaccount.com Commiter: sahel@chromium.org Date: 2018-10-15 14:54:46 +0000 UTC Revert "Fling bubbles from OOPIF properly." This reverts commit a12ef847a57f4aa0282ca47b555c04da18b00f9e. Reason for revert: Findit (https://goo.gl/kROfz5) identified CL at revision 599001 as the culprit for flakes in the build cycles as shown on: https://findit-for-me.appspot.com/waterfall/flake/flake-culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyQwsSDEZsYWtlQ3VscHJpdCIxY2hyb21pdW0vYTEyZWY4NDdhNTdmNGFhMDI4MmNhNDdiNTU1YzA0ZGExOGIwMGY5ZQw Sample Failed Build: https://ci.chromium.org/buildbot/chromium.memory/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/29516 Sample Failed Step: content_browsertests Sample Flaky Test: BrowserSideFlingBrowserTest.TouchscreenFlingBubblesFromOOPIF Original change's description: > Fling bubbles from OOPIF properly. > > While we are bubbling a scroll sequence GFS is sent to the fling controllers > of both the oopif and the bubbling target. The fling controller of the oopif > calls progressFling and generates a GSU with inertial phase, the GSU gets acked > immediately before getting sent to the renderer since we are in bubbling mode. > Then the oopif's fling controller receives the unconsumed GSU ack and generates > a GSE to complete the scrolling sequence on the oopif. The bubbling target's > fling controller receives and processes the GFS and generates GSUs which are > sent to the target's renderer. > > If the GSE generated by the oopif's fling controller gets bubbled before > the GFS, the bubbling target gets reset and the target does not receive the > GFS. This cl fixes the issue by making sure that the events generated by the > oopif's fling controller are not bubbled to the target. Also in case of > GFS bubbling, the GFC should also get sent to the bubbling target to make > sure that the fling controller in charge of flinging receives the GFC. > > > Bug: 884728 , 249063 > Test: BrowserSideFlingBrowserTest.[Touchpad|Touchscreen]FlingBubblesFromOOPIF > Change-Id: I064944f125bebcb746f329af4cfb117f3be94ff0 > Reviewed-on: https://chromium-review.googlesource.com/c/1274193 > Reviewed-by: Kevin McNee <mcnee@chromium.org> > Reviewed-by: Charlie Reis <creis@chromium.org> > Commit-Queue: Charlie Reis <creis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#599001} Change-Id: Ie8178e456d50cdd43fdeb86939180d20b96bcc36 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 884728 , 249063 , 894703 Reviewed-on: https://chromium-review.googlesource.com/c/1278536 Cr-Original-Commit-Position: refs/heads/master@{#599094}(cherry picked from commit bb03212f2a4bd93f4f87da036a5f9eaeb2256466) Reviewed-on: https://chromium-review.googlesource.com/c/1280621 Reviewed-by: Sahel Sharify <sahel@chromium.org> Cr-Commit-Position: refs/branch-heads/3578@{#21} Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034}
,
Oct 23
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/08faf47aee6ba297966cd702d45e3e67f6a98fd8 commit 08faf47aee6ba297966cd702d45e3e67f6a98fd8 Author: Sahel Sharify <sahel@chromium.org> Date: Tue Oct 23 15:56:36 2018 Reland "Fling bubbles from OOPIF properly" without the tests. This cl relands the following cl after excluding the added tests. https://chromium-review.googlesource.com/c/chromium/src/+/1278963 This gives the solution more time to bake on ToT without getting reverted due to flaky tests. Meanwhile I will work on the tests to deflake them. TBR=mcnee@chromium.org,creis@chromium.org Bug: 884728 , 249063 Change-Id: Icc1e32ffe493f85d0ee74b0aff37ccdf078d0e8f Reviewed-on: https://chromium-review.googlesource.com/c/1281687 Commit-Queue: Charlie Reis <creis@chromium.org> Reviewed-by: Kevin McNee <mcnee@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#599781}(cherry picked from commit abad21884e5be40e670eab118997d665be5a7618) Reviewed-on: https://chromium-review.googlesource.com/c/1292607 Reviewed-by: Sahel Sharify <sahel@chromium.org> Cr-Commit-Position: refs/branch-heads/3538@{#1034} Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811} [modify] https://crrev.com/08faf47aee6ba297966cd702d45e3e67f6a98fd8/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/08faf47aee6ba297966cd702d45e3e67f6a98fd8/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/08faf47aee6ba297966cd702d45e3e67f6a98fd8/content/browser/renderer_host/render_widget_host_input_event_router.h [modify] https://crrev.com/08faf47aee6ba297966cd702d45e3e67f6a98fd8/content/browser/renderer_host/render_widget_host_view_child_frame.cc
,
Oct 23
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/08faf47aee6ba297966cd702d45e3e67f6a98fd8 Commit: 08faf47aee6ba297966cd702d45e3e67f6a98fd8 Author: sahel@chromium.org Commiter: sahel@chromium.org Date: 2018-10-23 15:56:36 +0000 UTC Reland "Fling bubbles from OOPIF properly" without the tests. This cl relands the following cl after excluding the added tests. https://chromium-review.googlesource.com/c/chromium/src/+/1278963 This gives the solution more time to bake on ToT without getting reverted due to flaky tests. Meanwhile I will work on the tests to deflake them. TBR=mcnee@chromium.org,creis@chromium.org Bug: 884728 , 249063 Change-Id: Icc1e32ffe493f85d0ee74b0aff37ccdf078d0e8f Reviewed-on: https://chromium-review.googlesource.com/c/1281687 Commit-Queue: Charlie Reis <creis@chromium.org> Reviewed-by: Kevin McNee <mcnee@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#599781}(cherry picked from commit abad21884e5be40e670eab118997d665be5a7618) Reviewed-on: https://chromium-review.googlesource.com/c/1292607 Reviewed-by: Sahel Sharify <sahel@chromium.org> Cr-Commit-Position: refs/branch-heads/3538@{#1034} Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811}
,
Oct 23
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a2dbce67726c6c38d98bac84a35c85ea09331311 Commit: a2dbce67726c6c38d98bac84a35c85ea09331311 Author: sahel@chromium.org Commiter: sahel@chromium.org Date: 2018-10-16 19:12:05 +0000 UTC Reland "Fling bubbles from OOPIF properly" without the tests. This cl relands the following cl after excluding the added tests. https://chromium-review.googlesource.com/c/chromium/src/+/1278963 This gives the solution more time to bake on ToT without getting reverted due to flaky tests. Meanwhile I will work on the tests to deflake them. TBR=mcnee@chromium.org,creis@chromium.org Bug: 884728 , 249063 Change-Id: Icc1e32ffe493f85d0ee74b0aff37ccdf078d0e8f Reviewed-on: https://chromium-review.googlesource.com/c/1281687 Commit-Queue: Charlie Reis <creis@chromium.org> Reviewed-by: Kevin McNee <mcnee@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#599781}(cherry picked from commit abad21884e5be40e670eab118997d665be5a7618) Reviewed-on: https://chromium-review.googlesource.com/c/1284066 Reviewed-by: Sahel Sharify <sahel@chromium.org> Cr-Commit-Position: refs/branch-heads/3578@{#55} Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034}
,
Oct 23
Pls make sure to merge all necessary merges to M71 as well if not already.
,
Oct 23
This is already merged to M71
,
Oct 23
,
Oct 24
I confirm the fix on today's stable(70.0.3538.77)
,
Oct 24
sahel@, thank you so much for the quick help with verification.
,
Oct 26
Android: Works as per expected behavior that is fling scrolls the parent frame Issue verified on 70.0.3538.80 and 71.0.3578.24
,
Jan 9
Adding label just to track that this fixed bug was important to fix for launching site isolation on Android. |
|||||||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||||||
Comment 1 by mcnee@chromium.org
, Sep 17