• Albert Chaulk's avatar
    Implement cast javascript channels for webviews · d7ead40f
    Albert Chaulk authored
    Cast javascript channels add a window.<foo>.postMessage(message)
    method to selected RenderFrame instances to allow renderers to push
    data to the embedder.
    
    The usage looks like this:
    Browser: add interface during init
    Renderer: bind JsChannelBindingProvider, call Register, provide JsChannelClient
    Browser: stick the pid/route/channel in a list
    
    Embedder: AddJavascriptChannels
    Browser: lookup current RenderFrame and corresponding channel, call
        JsChannelClient::CreateChannel, provide JsChannel
    Renderer: create JS bindings
    
    <script>: call function
    Renderer: JsChannel::PostMessage
    Browser: send message to embedder
    
    Bug: b/141864193
    Test: desktop cast_shell build + custom html
    Change-Id: I1425cb115f679b876a8b9cb75c418b9d2a7a1506
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863073Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
    Reviewed-by: default avatarDaniel Nicoara <dnicoara@chromium.org>
    Commit-Queue: Daniel Nicoara <dnicoara@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#708846}
    d7ead40f
webview_controller.cc 7.33 KB