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