// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library chromium.cast;

using fuchsia.mem;
using fuchsia.web;

/// Provides Cast platform API binding scripts and methods for connecting those
/// scripts with Agent backends.
[Discoverable]
protocol ApiBindings {
    /// Gets the list of bindings to early-inject into the page at load time.
    GetAll() -> (vector<ApiBinding> bindings);

    /// Should be invoked when a connecting a named MessagePort to a native
    /// bindings backend.
    Connect(string port_name, fuchsia.web.MessagePort message_port);
};

table ApiBinding {
    /// Script to execute before the load of a web document.
    1: fuchsia.mem.Buffer before_load_script;
};
