Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / devtools / front_end / common / ModuleExtensionInterfaces.js
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6  * @interface
7  */
8 WebInspector.Renderer = function()
9 {
10 }
11
12 WebInspector.Renderer.prototype = {
13     /**
14      * @param {!Object} object
15      * @return {!Promise.<!Element>}
16      */
17     render: function(object) {}
18 }
19
20 /**
21  * @param {!Object} object
22  * @return {!Promise.<!Element>}
23  */
24 WebInspector.Renderer.renderPromise = function(object)
25 {
26     if (!object)
27         return Promise.rejectWithError("Can't render " + object);
28
29     return self.runtime.instancePromise(WebInspector.Renderer, object).then(render);
30
31     /**
32      * @param {!WebInspector.Renderer} renderer
33      */
34     function render(renderer)
35     {
36         return renderer.render(object);
37     }
38 }
39
40 /**
41  * @interface
42  */
43 WebInspector.Revealer = function()
44 {
45 }
46
47 /**
48  * @param {!Object} revealable
49  * @param {number=} lineNumber
50  */
51 WebInspector.Revealer.reveal = function(revealable, lineNumber)
52 {
53     WebInspector.Revealer.revealPromise(revealable, lineNumber).done();
54 }
55
56 /**
57  * @param {!Object} revealable
58  * @param {number=} lineNumber
59  * @return {!Promise}
60  */
61 WebInspector.Revealer.revealPromise = function(revealable, lineNumber)
62 {
63     if (!revealable)
64         return Promise.rejectWithError("Can't reveal " + revealable);
65
66     return self.runtime.instancesPromise(WebInspector.Revealer, revealable).then(reveal);
67
68     /**
69      * @param {!Array.<!WebInspector.Revealer>} revealers
70      * @return {!Promise}
71      */
72     function reveal(revealers)
73     {
74         var promises = [];
75         for (var i = 0; i < revealers.length; ++i)
76             promises.push(revealers[i].reveal(revealable, lineNumber));
77         return Promise.race(promises);
78     }
79 }
80
81 WebInspector.Revealer.prototype = {
82     /**
83      * @param {!Object} object
84      * @param {number=} lineNumber
85      * @return {!Promise}
86      */
87     reveal: function(object, lineNumber) {}
88 }