blob: 93b682b36de965767ca46d41533a29544e132087 [file] [log] [blame]
// Copyright 2017 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 blink.mojom;
// Provides extra capabilities required for DevTools frontend to function.
// This includes communication channel from/to inspected target which implements
// remote debugging protocol. Protocol messages go through browser process.
//
// Instances of this interface must be associated with navigation-related
// interface, since we should setup DevToolsFrontend before the navigation
// commits in the frame.
interface DevToolsFrontend {
// Sets up a main frame as a DevTools frontend. This exposes DevToolsHost
// object (see DevToolsHost.idl for details). The |api_script| is executed
// on each navigation in the frame before the DevTools frontend starts
// loading. It makes use of DevToolsHost to expose embedder capabilities to
// DevTools (e.g. connection to the inspected target).
SetupDevToolsFrontend(string api_script,
pending_associated_remote<DevToolsFrontendHost> host);
// Sets up a child frame to expose DevTools extension API by executing script
// |extension_api| on each navigation in the frame. This script provides
// required capabilities for DevTools extensions to function, implementing
// chrome.devtools extension API.
SetupDevToolsExtensionAPI(string extension_api);
};
// Provides embedder functionality to a frame serving as DevTools frontend.
interface DevToolsFrontendHost {
// Sends a message to DevTools frontend embedder.
DispatchEmbedderMessage(string message);
};