New issue
Advanced search Search tips

Issue 763378 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome
Pri: 1
Type: Bug

Blocking:
issue 470662



Sign in to add a comment

TouchSelection Handles in an OOPIF draw in the wrong position after a mainframe scroll.

Project Member Reported by wjmaclean@chromium.org, Sep 8 2017

Issue description

Prior to OOPIF, TouchSelection handle positions were updated through RenderWidgetHostViewAura::SubmitCompositorFrame(), and since this is guaranteed to be called for each frame of a mainframe scroll, the selection handle position was always correct at the end of a scroll.

However, if a TouchSelection in an OOPIF sub-frame has handles, and the mainframe is scrolled, the OOPIF's screen position changes *without* RenderWidgetHostViewChildFrame::SubmitCompositorFrame() being called, and  at the end of the scroll when the handles re-appear they are in the same place, which is wrong as the selection has moved in screen coordinates.

We need to add an update path for the child-frame's selection handles that detects when a change has occured and adjusts the position accordingly.
 
Blocking: 470662
Status: Started (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 27 2017

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

commit 37517c1e752f4b89101d59a032e5a57d7fa2b75e
Author: W. James MacLean <wjmaclean@chromium.org>
Date: Wed Sep 27 13:55:26 2017

Update child frame Selection after containing-frame scroll.

This CL ensures that an OOPIF child frame gets the opportunity to update
its selection position prior to the selection handles being made visible
again at the end of a mainframe (or any other frame for that matter)
scroll.

Bug:  763378 
Change-Id: If978dc86aa1b3cc5bc4f38a538065c4eed22e35b
Reviewed-on: https://chromium-review.googlesource.com/657564
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Charlie Reis (catching up) <creis@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: James MacLean <wjmaclean@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504652}
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/components/pdf/browser/pdf_web_contents_helper.cc
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/components/pdf/browser/pdf_web_contents_helper.h
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/renderer_host/input/touch_selection_controller_client_aura.cc
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/renderer_host/input/touch_selection_controller_client_aura.h
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.h
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/renderer_host/input/touch_selection_controller_client_manager_android.cc
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/renderer_host/input/touch_selection_controller_client_manager_android.h
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/renderer_host/render_widget_host_view_android.h
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/test/content_browser_test_utils_internal.cc
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/content/test/content_browser_test_utils_internal.h
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/ui/touch_selection/touch_selection_controller.h
[modify] https://crrev.com/37517c1e752f4b89101d59a032e5a57d7fa2b75e/ui/touch_selection/touch_selection_controller_unittest.cc

Status: Fixed (was: Started)

Sign in to add a comment