blob: c1e5276f8888c74f86e9b918b7d55705bd0de3ad [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.
/**
* @interface
*/
WebInspector.Renderer = function()
{
}
WebInspector.Renderer.prototype = {
/**
* @param {!Object} object
* @return {!Promise.<!Element>}
*/
render: function(object) {}
}
/**
* @param {!Object} object
* @return {!Promise.<!Element>}
*/
WebInspector.Renderer.renderPromise = function(object)
{
if (!object)
return Promise.reject(new Error("Can't render " + object));
return self.runtime.instancePromise(WebInspector.Renderer, object).then(render);
/**
* @param {!WebInspector.Renderer} renderer
*/
function render(renderer)
{
return renderer.render(object);
}
}
/**
* @interface
*/
WebInspector.Revealer = function()
{
}
/**
* @param {?Object} revealable
* @param {number=} lineNumber
*/
WebInspector.Revealer.reveal = function(revealable, lineNumber)
{
WebInspector.Revealer.revealPromise(revealable, lineNumber);
}
/**
* @param {?Object} revealable
* @param {number=} lineNumber
* @return {!Promise.<undefined>}
*/
WebInspector.Revealer.revealPromise = function(revealable, lineNumber)
{
if (!revealable)
return Promise.reject(new Error("Can't reveal " + revealable));
return self.runtime.instancesPromise(WebInspector.Revealer, revealable).then(reveal);
/**
* @param {!Array.<!WebInspector.Revealer>} revealers
* @return {!Promise.<undefined>}
*/
function reveal(revealers)
{
var promises = [];
for (var i = 0; i < revealers.length; ++i)
promises.push(revealers[i].reveal(/** @type {!Object} */ (revealable), lineNumber));
return Promise.race(promises);
}
}
WebInspector.Revealer.prototype = {
/**
* @param {!Object} object
* @param {number=} lineNumber
* @return {!Promise}
*/
reveal: function(object, lineNumber) {}
}
/**
* @interface
*/
WebInspector.App = function()
{
}
WebInspector.App.prototype = {
/**
* @param {!Document} document
* @param {function()} callback
*/
presentUI: function(document, callback) { }
}
/**
* @interface
*/
WebInspector.AppProvider = function()
{
}
WebInspector.AppProvider.prototype = {
/**
* @return {!WebInspector.App}
*/
createApp: function() { }
}
/**
* @interface
*/
WebInspector.QueryParamHandler = function()
{
}
WebInspector.QueryParamHandler.prototype = {
/**
* @param {string} value
*/
handleQueryParam: function(value) { }
}