• Christopher Cameron's avatar
    RemoteMacViews: Unify views::View to content::WebContentsView interfaces · 0502abaf
    Christopher Cameron authored
    There exist two interface through which a views::View is stitched to
    a content::WebContentsView
    - the ui::Layer is attached via a cr_setParentUiLayer method
    - accessibility is attached via the accesibilityHostable protocol
    
    Lifetimes of the embedding are slightly unclear because the attached
    WebContentsView may be destroyed the NativeViewHost detaches it.
    
    Replace the AccessibilityHostable protocol with a ViewsHostable
    protocol, and add a C++ interface, ui::ViewsHostableView, which provides
    a single place through which a views::View and a content::WebContentsView
    are stitched together
    - have content::WebContentsViewMac implement ui::ViewsHostableView
    - have views::NativeWidgetHost implement ui::ViewsHostableView::Host
    
    Use this explicit interface to ensure that the views::NativeWidgetHost
    detaches from the content::WebContentsViewMac before it is destroyed.
    
    Additional parameters and method will be added to the
    ui::ViewsHostableView interface to enable stitching together
    out-of-process NSViews.
    
    R=lgrey
    TBR=avi (content/ OWNERship)
    
    Bug: 821561
    Change-Id: Iddc46278cd06b9e27d3f12aa5a9e830273f3b562
    Reviewed-on: https://chromium-review.googlesource.com/1252641
    Commit-Queue: ccameron <ccameron@chromium.org>
    Reviewed-by: default avatarLeonard Grey <lgrey@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#595521}
    0502abaf
native_view_host_mac.h 2.27 KB