Coordinate SetCursor updates from multiple renderers |
||||
Issue descriptionIn a discussion with rbyers@, he observed that we could receive cursor updates from different renderers out of order as a mouse cursor is dragged across frames in different processes. This could result in the 'new' cursor update being discarded as the 'old' one supersedes it. To fix this, the browser process needs to track cursor state between different renderers, similar to what is currently being done for text input state.
,
Jul 19 2016
,
Mar 21 2017
,
Apr 11 2017
ekaramad@ - This looks like it may have a solution similar to your IME work ... would you be able to take a look at it?
,
Apr 12 2017
I might be able to take a look at this later. I am trying to refactor the TextInputManager to use frame focus for tracking. Maybe the result of that could be used here as well.
,
Jul 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/520f29cc67770a30264d53943e52629850c32244 commit 520f29cc67770a30264d53943e52629850c32244 Author: Ken Buchanan <kenrb@chromium.org> Date: Thu Jul 13 23:29:51 2017 Coordinate cursor updates from multiple renderers on a single page Currently each RenderWidget sends cursor update messages independently based on its last seen mouse position, with no awareness of other RenderWidgets overriding the mouse cursor. This causes problem due to race conditions where RenderWidgets in multiple renderer processes are changing the cursor graphic as the user moves the mouse, and also creates inconsistency because a RenderWidget does not know that a different RenderWidget has modified the cursor. This CL adds a CursorManager class to content, which tracks the last cursor update received by each RenderWidgetHostView, and signals the root RWHV to show the correct cursor for the view that the mouse is currently over. Bug: 614540 , 545237 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation Change-Id: Id7355b69f13f9e13a5113b5f63228ddf067352ed Reviewed-on: https://chromium-review.googlesource.com/558271 Commit-Queue: Ken Buchanan <kenrb@chromium.org> Reviewed-by: Alex Moshchuk <alexmos@chromium.org> Cr-Commit-Position: refs/heads/master@{#486528} [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/BUILD.gn [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/frame_host/cross_process_frame_connector.cc [add] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/cursor_manager.cc [add] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/cursor_manager.h [add] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/cursor_manager_unittest.cc [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/render_widget_host_view_aura.cc [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/render_widget_host_view_aura.h [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/render_widget_host_view_base.cc [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/render_widget_host_view_base.h [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/render_widget_host_view_mac.h [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/renderer_host/render_widget_host_view_mac.mm [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/browser/site_per_process_browsertest.cc [modify] https://crrev.com/520f29cc67770a30264d53943e52629850c32244/content/test/BUILD.gn
,
Jul 14 2017
|
||||
►
Sign in to add a comment |
||||
Comment 1 by kenrb@chromium.org
, Jun 1 2016