New issue
Advanced search Search tips

Issue 809621 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 1
Type: Bug

Blocking:
issue 807088



Sign in to add a comment

Scroll events failing to bubble on Youtube page

Project Member Reported by kenrb@chromium.org, Feb 6 2018

Issue description

Chrome Version: Canary (66) and ToT
OS: Desktop AFAIK

What steps will reproduce the problem?
(1) Launch Chrome with --site-per-process, ensure scroll latching is enabled
(2) Visit https://www.youtube.com/unboxed
(3) Scroll the iframe so that it is at the bottom of its extent but the large video is still in the Window
(4) With the mouse cursor over the video, try to scroll downward, so that it should bubble the scroll to the outer frame.

What is the expected result?
Scroll bubbles out and the outer frame moves.

What happens instead?
No bubble, no scroll movement.


This could be related to issue 807683 in that it appears to affect the same versions and has the same preconditions (i.e. scroll latching and OOPIFs). However, in that one the iframe is failing to scroll, and this is specifically about bubbling.

In earlier investigation it appears that the scroll events were indeed bubbling out through the browser process, but I couldn't see why it wasn't doing anything in the main frame renderer process.

 

Comment 1 by kenrb@chromium.org, Feb 13 2018

Labels: M-66
sahel@: Last week it looked like you had a potential fix for this in a WIP CL, is this something that can be landed soon?

Comment 2 by sahel@chromium.org, Feb 13 2018

Yes, I have a fix. But youtube page doesn't have overflow:hidden for the body of the document embedded in the iframe anymore and the issue is resolved.
Do you still want the fix? I am working on writing a browser test but I haven't been able to write one that passes with my fix and fails otherwise.

Comment 3 by kenrb@chromium.org, Feb 13 2018

I think we still want to land a fix, although I understand the problem with getting a repro working for a test. I had tried earlier and wasn't able to figure it out either.

Out of curiosity, I think I forgot to test without --site-per-process. With scroll latching enabled and no OOPIFs, would this still problem still be visible?

Comment 4 by sahel@chromium.org, Feb 13 2018

Right now it is not reproducible on the page since it is fixed.
But before the style fix it was only reproducible with oopif, disabling --site-per-process would fix the issue. In fact that's why I cannot write a test.
I can have a nested iframe which has a source with body overflow hidden. But I cannot force it to be oopif and that's why the test passes even without my fix.

Comment 5 by kenrb@chromium.org, Feb 13 2018

If you write the test as a SitePerProcessBrowserTest it can easily force OOPIFs. Pretty much all the tests in content/browser/site_per_process_browser_tests.cc provide examples of how to do that. There is already a nested scroll test in that file that tests cross-process bubbling, so potentially you could just copy and/or modify that.

Comment 6 by sahel@chromium.org, Feb 14 2018

Cc: bokan@chromium.org sahel@chromium.org
 Issue 811776  has been merged into this issue.

Comment 7 by kenrb@chromium.org, Feb 20 2018

sahel@: What's the status on this?
Project Member

Comment 8 by bugdroid1@chromium.org, Feb 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/53a3545b3f538d5dcd2f159cb030cc1b578d7e60

commit 53a3545b3f538d5dcd2f159cb030cc1b578d7e60
Author: Sahel Sharify <sahel@chromium.org>
Date: Tue Feb 27 18:02:14 2018

Fix Scroll events failing to bubble on Youtube page.

The problem with Youtube page in oopif is that the Body element of the
iframe is vertically scrollable by a few pixels (ClampScrollOffset doesn't
shirnk the vertical scroll delta to zero) but
UserInputScrollable(kVerticalScrollbar) is false for its scrollablearea.

This cl uses the latter function in addition to ClampScrollOffset to
calculate the clamped scroll delta in ScrollManager::CanScroll.

Bug:  809621 
Test: SitePerProcessBrowserTest.ScrollBubblingFromOOPIFWithBodyOverflowHidden
Change-Id: Id7c722331bc4e65cf4808aa7bb18b3cbf3f71808
Reviewed-on: https://chromium-review.googlesource.com/905473
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Commit-Queue: Sahel Sharifymoghaddam <sahel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539496}
[modify] https://crrev.com/53a3545b3f538d5dcd2f159cb030cc1b578d7e60/content/browser/site_per_process_browsertest.cc
[add] https://crrev.com/53a3545b3f538d5dcd2f159cb030cc1b578d7e60/content/test/data/body_overflow_hidden.html
[add] https://crrev.com/53a3545b3f538d5dcd2f159cb030cc1b578d7e60/content/test/data/scrollable_page_with_iframe.html
[modify] https://crrev.com/53a3545b3f538d5dcd2f159cb030cc1b578d7e60/testing/buildbot/filters/mojo.fyi.viz.content_browsertests.filter
[modify] https://crrev.com/53a3545b3f538d5dcd2f159cb030cc1b578d7e60/testing/buildbot/filters/viz.content_browsertests.filter
[modify] https://crrev.com/53a3545b3f538d5dcd2f159cb030cc1b578d7e60/third_party/WebKit/Source/core/input/ScrollManager.cpp

Comment 9 by sahel@chromium.org, Feb 27 2018

Status: Fixed (was: Assigned)

Sign in to add a comment