New issue
Advanced search Search tips

Issue 808587 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

cannot tap links at bottom of screen

Project Member Reported by bokan@chromium.org, Feb 2 2018

Issue description

Chrome Version       : 66.0.3336.4
OS Version: Android 
URLs (if applicable) :
Other browsers tested:
  Add OK or FAIL after other browsers where you have tested this issue:
     Safari:
    Firefox:
    IE/Edge:

What steps will reproduce the problem?
1. Launch chrome with --root-layer-scrolls
2. Visit reddit.com 
3. Scroll to the bottom of the page such that url bar is hidden, tap next

What is the expected result?
Navigate to next page

What happens instead of that?
Nothing

Looks like top control clipping issue. Works OK if the url bar is shown (e.g scroll down quickly before we activate url bar hiding). 

 

Comment 1 by bokan@chromium.org, Feb 2 2018

Blocking: 417782

Comment 2 by bokan@chromium.org, Feb 2 2018

Owner: bokan@chromium.org
Status: Assigned (was: Unconfirmed)

Comment 3 by bokan@chromium.org, Feb 2 2018

Cc: chrishtr@chromium.org
Status: Started (was: Assigned)
This is analogous to the work I did to make this work correctly for document.rootScroller since RLS means we're making a PaintLayer the rootScroller and so it need to know how to handle the URL bar clipping adjustment. There's simplified cases in RootScrollerTest.cpp in RootScrollerHitTest tests.

It looks like one of them was disabled when landing https://crrev.com/c/843418 with a note that it's broken for rootScroller. That means there's a decent chance it's broken for root-layer-scrolls too so that's a good place to start looking.

Comment 4 by bokan@chromium.org, Feb 7 2018

Cc: sahel@chromium.org
Labels: ReleaseBlock-Beta
Summary: cannot tap links at bottom of screen (was: [root layer scrolls] cannot tap links at bottom of screen )
This isn't actually related to RLS and repros without the flag. I've tracked it down to https://chromium-review.googlesource.com/c/chromium/src/+/879359

It looks like we don't get a resize message after the URL bar is shown or hidden. I'm guessing that's somehow triggered by a ScrollEnd but I'm not sure where yet.

Comment 5 by bokan@chromium.org, Feb 7 2018

Blocking: -417782

Comment 6 by bokan@chromium.org, Feb 7 2018

Cc: -sahel@chromium.org bokan@chromium.org
Owner: sahel@chromium.org
sahel@, we used to call DidStopFlinging with this stack trace:

  000f5661  base::debug::StackTrace::StackTrace()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    /home/bokan/chrome/src/base/debug/stack_trace.cc:199:28
  01761dad  content::ContentViewCore::DidStopFlinging()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /home/bokan/chrome/src/content/browser/android/content_view_core.cc:491:27
  01794cd5  content::RenderWidgetHostViewAndroid::DidStopFlinging()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  /home/bokan/chrome/src/content/browser/renderer_host/render_widget_host_view_android.cc:2078:25
  015bf3b7  content::RenderWidgetHostImpl::DidStopFlinging()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         /home/bokan/chrome/src/content/browser/renderer_host/render_widget_host_impl.cc:2314:12
  0150062b  content::InputRouterImpl::DidStopFlinging()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /home/bokan/chrome/src/content/browser/renderer_host/input/input_router_impl.cc:243:12
  00ac9061  content::mojom::WidgetInputHandlerHostStubDispatch::Accept(content::mojom::WidgetInputHandlerHost*, mojo::Message*)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      /home/bokan/chrome/src/out/ClankDebug/gen/content/common/input/input_handler.mojom.cc:805:13
  01501a8f  content::mojom::WidgetInputHandlerHostStub<mojo::RawPtrImplRefTraits<content::mojom::WidgetInputHandlerHost> >::Accept(mojo::Message*)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   /home/bokan/chrome/src/out/ClankDebug/gen/content/common/input/input_handler.mojom.h:553:12
  000227e9  mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    /home/bokan/chrome/src/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:419:32
  00021dd1  mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept(mojo::Message*)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /home/bokan/chrome/src/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc:133:18
  0002124b  mojo::FilterChain::Accept(mojo::Message*)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /home/bokan/chrome/src/mojo/public/cpp/bindings/lib/filter_chain.cc:40:17


With the CL in #4 we no longer do. This would eventually call through in Java to CompositorViewHolder.setSize with a changed controlsHeight which is what kicks off the resize down the line.

The same flow occurs for GestureScrollEnd in GestureListenerManager::GestureEventAck. It appears at the end of a fling we now call this instead of receiving the DidStopFlinging.

Both GestureScrollEnd and DidStopFlinging call ChromeFullscreenManager.onContentViewScrollingStateChanged but it looks like the scrolling bit is incorrectly set to true now so we never call updateVisuals.

PTAL.

Comment 7 by sahel@chromium.org, Feb 7 2018

Issue 809904 has been merged into this issue.
Project Member

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

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

commit 7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2
Author: Sahel Sharify <sahel@chromium.org>
Date: Wed Feb 07 21:33:00 2018

Fling controller notifies the client after fling cancellation.

Android relies on getting the notification when a fling cancels/stops.
This cl calls client_->DidStopFlinging() in input_router_impl which
used to get called after a DidStopFlinging message from renderer.

Bug:  808587 
Test: FlingControllerTest.ControllerNotifiesTheClientAfterFlingStart
Change-Id: Icfd7966c19b8f4c770163bb4973548ddc50b35dc
Reviewed-on: https://chromium-review.googlesource.com/907412
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Sahel Sharifymoghaddam <sahel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535147}
[modify] https://crrev.com/7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2/content/browser/renderer_host/input/fling_controller.cc
[modify] https://crrev.com/7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2/content/browser/renderer_host/input/fling_controller.h
[modify] https://crrev.com/7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2/content/browser/renderer_host/input/fling_controller_unittest.cc
[modify] https://crrev.com/7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2/content/browser/renderer_host/input/gesture_event_queue_unittest.cc
[modify] https://crrev.com/7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2/content/browser/renderer_host/input/input_router_impl.cc
[modify] https://crrev.com/7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2/content/browser/renderer_host/input/input_router_impl.h
[modify] https://crrev.com/7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2/content/browser/renderer_host/input/legacy_input_router_impl.cc
[modify] https://crrev.com/7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2/content/browser/renderer_host/input/legacy_input_router_impl.h

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

Status: Fixed (was: Started)
Project Member

Comment 10 by bugdroid1@chromium.org, Feb 9 2018

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

commit b1822bf3805fceac699aa0d468c8a62d841d213f
Author: Sahel Sharify <sahel@chromium.org>
Date: Fri Feb 09 14:50:34 2018

Revert touchscreen browser side fling cls in stack order to avoid conflicts.

Revert "Touchscreen fling handled on browser."
This reverts commit ef3f05dd13ef8e10c3084e216472622912cdb1a1.

Revert "TouchStart should be uncancelable during an active touchscreen fling."
This reverts commit 7460a67e494251d321579e1b4fc6c8298408ad7c.

Revert "Fling controller notifies the client after fling cancellation."
This reverts commit 7b1d8bcc2db94ce1acf6cb267f2df87c61d9d4c2.

Revert "Browser side fling works properly with oopif."
This reverts commit 10bc4d47f4568374d5ff1a1ec211bf14c965852d.

The cls are reverted since browser side touchscreen fling breaks
android webview's synchronous input animation.

TBR=alexmos@chromium.org

Bug: 808929,  249063 ,  809069 ,  808587 
Change-Id: I35e1fd34317c0979cf05780a43426c2d76e85578
Reviewed-on: https://chromium-review.googlesource.com/909699
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535708}
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/fling_controller.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/fling_controller.h
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/fling_controller_unittest.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/gesture_event_queue.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/gesture_event_queue.h
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/gesture_event_queue_unittest.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/input_router.h
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/input_router_impl.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/input_router_impl.h
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/input_router_impl_unittest.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/legacy_input_router_impl.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/legacy_input_router_impl.h
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/legacy_input_router_impl_unittest.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/non_blocking_event_browsertest.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/passthrough_touch_event_queue.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/passthrough_touch_event_queue.h
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/render_widget_host_unittest.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/common/input/gesture_event_stream_validator.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/common/input/gesture_event_stream_validator.h
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/common/input/input_event_stream_validator.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/content/common/input/input_event_stream_validator.h
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/testing/buildbot/filters/mojo.fyi.viz.content_browsertests.filter
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/testing/buildbot/filters/viz.content_browsertests.filter
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/ui/events/blink/input_handler_proxy.cc
[modify] https://crrev.com/b1822bf3805fceac699aa0d468c8a62d841d213f/ui/events/blink/input_handler_proxy_unittest.cc

Sign in to add a comment