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