// 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); };