blob: affcff1f5cbb82374823444bcbd30a46388c8e84 [file] [log] [blame]
// Copyright 2014 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.
module content.mojom;
import "services/service_manager/public/interfaces/interface_provider.mojom";
// The name of the InterfaceProviderSpec in service manifests used by the
// frame tree to expose frame-specific interfaces between renderer and browser.
const string kNavigation_FrameSpec = "navigation:frame";
// Implemented by the frame provider (e.g. renderer processes).
interface Frame {
GetInterfaceProvider(service_manager.mojom.InterfaceProvider& interfaces);
};
// Implemented by the frame (e.g. renderer processes).
// Instances of this interface must be associated with (i.e., FIFO with) the
// legacy IPC channel.
interface FrameBindingsControl {
// Used to tell a render frame whether it should expose various bindings
// that allow JS content extended privileges. See BindingsPolicy for valid
// flag values.
AllowBindings(int32 enabled_bindings_flags);
};
// Implemented by the frame server (i.e. the browser process).
interface FrameHost {
GetInterfaceProvider(service_manager.mojom.InterfaceProvider& interfaces);
};
// Implemented by a service that provides implementations of the Frame
// interface. (e.g. renderer processes).
interface FrameFactory {
CreateFrame(int32 frame_routing_id, Frame& frame, FrameHost host);
};