chromium/fuchsia_web/runners/cast/fidl/application_controller.fidl

// Copyright 2019 The Chromium Authors
// 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.media.sessions2;

/// Allows clients to access and modify certain aspects of the Cast receiver
/// application runtime.
closed protocol ApplicationController {
    /// Enables or disables touch event processing.
    strict SetTouchInputEnabled(struct {
        enable bool;
    });

    /// Sets whether to block all HTMLMediaElements in the frame from fetching and
    /// loading media resources.
    /// See fuchsia.web.Frame for usage details.
    strict SetBlockMediaLoading(struct {
        blocked bool;
    });

    /// Connects to the application's media control & observation API.
    strict GetMediaPlayer(resource struct {
        request server_end:fuchsia.media.sessions2.Player;
    });

    /// Gets the private memory footprint of the application's main frame.
    strict GetPrivateMemorySize() -> (struct {
        size_bytes uint64;
    });
};