• Daniel Nicoara's avatar
    cast: webview: Add window manager to handle EXO windows · 11a39b97
    Daniel Nicoara authored
    The Webview WebContents and the aura::Window it attaches to are not
    created in the same place and there is a disconnect between how the EXO
    window is created and how the Webview is created.
    
    Webview creation event results in a request to create an EXO window.
    Thus WebviewRpcInstance doesn't have a window to display in until the
    client creates an EXO window with the appropriate ID. There needs
    to be a way to listen for window events to discover the EXO window
    hosting the Webview. WebviewWindowManager listens for new
    aura::Windows to be created and registers as an observer on them to
    find windows with the exo::kClientSurfaceIdKey property. The ID is then
    used to find the Webview that will be attached to the window.
    
    BUG=b/132811925
    TEST=Compiled
    
    Change-Id: I053e2b792b311f0c95e791ef5c70a9e18b24f5ba
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803957
    Commit-Queue: Daniel Nicoara <dnicoara@chromium.org>
    Reviewed-by: default avatarAlex Sakhartchouk <alexst@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#696906}
    11a39b97
webview_window_manager.h 1.63 KB