DescriptionImplement TouchSelectionEditing controls for OOPIF.
This CL revises the TouchSelection editing code to work with
cross-process iframes.
The basic design extends TouchSelectionControllerClientAura
to also implement TouchSelectionControllerManager, and it
multiplexes sub-frame's TouchSelectionControllerChildFrames
internally in a manner transparent to the
TouchSelectionController.
The manager defines an |active_client_| to be the most recent
RenderWidgetHostViewX to receive a selection bounds update in
its CompositorFrameMetadata, with the rules that and
active_client_ cannot be displayed by another view's update
if that update (i) sets the selection bounds to be empty, or (ii)
marks the bounds as !visible() (this occurs when the view loses
focus).
Since the tear-down order of the top-level RenderWidgetHostView
and its sub-frame views is not well defined, each sub-frame view
registers as an observer with the
TouchSelectionControllerClientManager and detaches itself if it
sees the manager is about to be destroyed.
At present, context menus still do not work in OOPIF subframes,
but this is being tracked in https://crbug.com/723799.
Design doc:
https://docs.google.com/a/chromium.org/document/d/1xQLL2Hlm5IXSGmPZBRdQY8bN1spIYo9Ra-bSUVYqP5g/edit?usp=sharing
BUG=470662
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
Review-Url: https://codereview.chromium.org/2883653002
Cr-Commit-Position: refs/heads/master@{#474680}
Committed: https://chromium.googlesource.com/chromium/src/+/9a65831b1415a39a1614783ab3cc2faa5caa3330
Patch Set 1 #Patch Set 2 : Fix GN file. #Patch Set 3 : Fix bugs, add test. #Patch Set 4 : Fix some broken tests. #Patch Set 5 : Fix unit test. #Patch Set 6 : Mark manager's observer as CONTENT_EXPORT. #
Total comments: 29
Patch Set 7 : Address kenrb@'s comments. #
Total comments: 2
Patch Set 8 : Move child frame client files to renderer_host/input. #Patch Set 9 : ChildFrame client uses root view's animation defaults. #
Total comments: 9
Patch Set 10 : Address nits, add test. #Patch Set 11 : Rebase to master@{#474649}. #
Total comments: 2
Depends on Patchset: Dependent Patchsets: Messages
Total messages: 57 (41 generated)
|