c100d24790fe6866ad9468428361898882111c77
[WebKit-https.git] / Source / WebCore / inspector / front-end / externs.js
1 /*
2  * Copyright (C) 2011 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  *     * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *     * Redistributions in binary form must reproduce the above
11  * copyright notice, this list of conditions and the following disclaimer
12  * in the documentation and/or other materials provided with the
13  * distribution.
14  *     * Neither the name of Google Inc. nor the names of its
15  * contributors may be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30
31 // WebKit Web Facing API
32 var console = {}
33 /** @param {...*} vararg */
34 console.warn = function(vararg) {}
35 /** @param {...*} vararg */
36 console.assert = function(vararg) {}
37 /** @param {...*} vararg */
38 console.error = function(vararg) {}
39 console.trace = function() {}
40
41 var JSON = {}
42 /** @param {string} str */
43 JSON.parse = function(str) {}
44 /**
45  * @param {*} obj
46  * @param {Function=} replacer
47  * @param {number=} space
48  * @return {string}
49  */
50 JSON.stringify = function(obj, replacer, space) {}
51
52 /** @param {boolean=} param */
53 Element.prototype.scrollIntoViewIfNeeded = function(param) {}
54 /** @type {boolean} */
55 Event.prototype.isMetaOrCtrlForTest = false;
56 /** @param {...*} vararg */
57 Event.prototype.initWebKitWheelEvent = function(vararg) {}
58 Event.prototype.stopImmediatePropagation = function() {}
59
60 /** @param {Element} element */
61 window.getComputedStyle = function(element) {}
62 /** @param {*} message */
63 function postMessage(message) {}
64
65 /** @type {*} */
66 window.testRunner = null;
67
68 /**
69  * @constructor
70  */
71 function WebKitMutation(callback)
72 {
73     this.type = "";
74     /** @type {Node} */ this.target = null;
75     /** @type {Array.<Node>} */ this.addedNodes = [];
76     /** @type {Array.<Node>} */ this.removedNodes = [];
77 }
78
79 /**
80  * @constructor
81  * @param {function(Array.<WebKitMutation>)} callback
82  */
83 function WebKitMutationObserver(callback) {}
84 /** 
85  * @param {Node} container
86  * @param {Object} options
87  */
88 WebKitMutationObserver.prototype.observe = function(container, options) {}
89 WebKitMutationObserver.prototype.disconnect = function() {}
90
91 /**
92  * @param {string} eventName
93  * @param {Function} listener
94  * @param {boolean=} capturing
95  */
96 function addEventListener(eventName, listener, capturing) {}
97
98 /** @param {boolean=} onlyFirst */
99 Array.prototype.remove = function(obj, onlyFirst) {}
100 Array.prototype.keySet = function() {}
101 /** @return {number} */
102 Array.prototype.upperBound = function(anchor) {}
103 /** @return {number} */
104 Array.prototype.binaryIndexOf = function(anchor) {}
105 Array.prototype.sortRange = function(comparator, leftBound, rightBound, k) {}
106
107 /**
108  * @this {Array.<number>}
109  * @param {function(number,number):boolean} comparator
110  * @param {number} left
111  * @param {number} right
112  * @param {number} pivotIndex
113  * @return {number}
114  */
115 Array.prototype.partition = function(comparator, left, right, pivotIndex) {}
116
117 /**
118  * @this {Array.<number>}
119  * @param {number} k
120  * @param {function(number,number):boolean=} comparator
121  * @return {number}
122  */
123 Array.prototype.qselect = function(k, comparator) {}
124
125 /**
126  * @this {Array.<*>}
127  * @param {string} field
128  * @return {Array.<*>}
129  */
130 Array.prototype.select = function(field) {}
131
132 /**
133  * @this {Array.<*>}
134  * @return {*}
135  */
136 Array.prototype.peekLast = function() {}
137
138 DOMApplicationCache.prototype.UNCACHED = 0;
139 DOMApplicationCache.prototype.IDLE = 1;
140 DOMApplicationCache.prototype.CHECKING = 2;
141 DOMApplicationCache.prototype.DOWNLOADING = 3;
142 DOMApplicationCache.prototype.UPDATEREADY = 4;
143 DOMApplicationCache.prototype.OBSOLETE = 5;
144
145 // File System API
146 /**
147  * @constructor
148  */
149 function DOMFileSystem() {}
150
151 /**
152  * @type {DirectoryEntry}
153  */
154 DOMFileSystem.prototype.root = null;
155
156 /** @type {Node} */
157 Range.prototype.startContainer;
158
159 // Inspector Backend
160 var InspectorBackend = {}
161 InspectorBackend.runAfterPendingDispatches = function(message) {}
162
163 /** @interface */
164 function InspectorFrontendHostAPI() {}
165 InspectorFrontendHostAPI.prototype.platform = function() {}
166 InspectorFrontendHostAPI.prototype.port = function() {}
167 InspectorFrontendHostAPI.prototype.bringToFront = function() {}
168 InspectorFrontendHostAPI.prototype.closeWindow = function() {}
169 InspectorFrontendHostAPI.prototype.requestSetDockSide = function(dockSide) {}
170 InspectorFrontendHostAPI.prototype.setAttachedWindowHeight = function(height) {}
171 InspectorFrontendHostAPI.prototype.moveWindowBy = function(x, y) {}
172 InspectorFrontendHostAPI.prototype.setInjectedScriptForOrigin = function(origin, script) {}
173 InspectorFrontendHostAPI.prototype.loaded = function() {}
174 InspectorFrontendHostAPI.prototype.localizedStringsURL = function() {}
175 InspectorFrontendHostAPI.prototype.hiddenPanels = function() {}
176 InspectorFrontendHostAPI.prototype.inspectedURLChanged = function(url) {}
177 InspectorFrontendHostAPI.prototype.documentCopy = function(event) {}
178 InspectorFrontendHostAPI.prototype.copyText = function(text) {}
179 InspectorFrontendHostAPI.prototype.openInNewTab = function(url) {}
180 InspectorFrontendHostAPI.prototype.canSave = function() {}
181 InspectorFrontendHostAPI.prototype.save = function(url, content, forceSaveAs) {}
182 InspectorFrontendHostAPI.prototype.close = function(url) {}
183 InspectorFrontendHostAPI.prototype.append = function(url, content) {}
184 InspectorFrontendHostAPI.prototype.sendMessageToBackend = function(message) {}
185 InspectorFrontendHostAPI.prototype.recordActionTaken = function(actionCode) {}
186 InspectorFrontendHostAPI.prototype.recordPanelShown = function(panelCode) {}
187 InspectorFrontendHostAPI.prototype.recordSettingChanged = function(settingCode) {}
188 InspectorFrontendHostAPI.prototype.loadResourceSynchronously = function(url) {}
189 InspectorFrontendHostAPI.prototype.supportsFileSystems = function() {}
190 InspectorFrontendHostAPI.prototype.requestFileSystems = function() {}
191 InspectorFrontendHostAPI.prototype.addFileSystem = function() {}
192 InspectorFrontendHostAPI.prototype.removeFileSystem = function(fileSystemPath) {}
193 InspectorFrontendHostAPI.prototype.isolatedFileSystem = function(fileSystemId, registeredName) {}
194 InspectorFrontendHostAPI.prototype.setZoomFactor = function(zoom) {}
195 InspectorFrontendHostAPI.prototype.canInspectWorkers = function() {}
196 /** @type {InspectorFrontendHostAPI} */
197 var InspectorFrontendHost;
198
199 /** @constructor */
200 function SourceMapV3()
201 {
202     /** @type {number} */ this.version;
203     /** @type {string} */ this.file;
204     /** @type {Array.<string>} */ this.sources;
205     /** @type {Array.<SourceMapV3.Section>} */ this.sections;
206     /** @type {string} */ this.mappings
207 }
208
209 /** @constructor */
210 SourceMapV3.Section = function()
211 {
212     /** @type {SourceMapV3} */ this.map;
213     /** @type {SourceMapV3.Offset} */ this.offset;
214 }
215
216 /** @constructor */
217 SourceMapV3.Offset = function()
218 {
219     /** @type {number} */ this.line;
220     /** @type {number} */ this.column;
221 }
222
223 // FIXME: remove everything below.
224 var WebInspector = {}
225
226 WebInspector.queryParamsObject = {}
227 WebInspector.toggleSearchingForNode = function() {}
228 WebInspector.panels = {};
229
230 /**
231  * @param {Element} element
232  * @param {function()=} onclose
233  */
234 WebInspector.showViewInDrawer = function(element, view, onclose) {}
235
236 WebInspector.closeViewInDrawer = function() {}
237
238 /**
239  * @param {string=} messageLevel
240  * @param {boolean=} showConsole
241  */
242 WebInspector.log = function(message, messageLevel, showConsole) {}
243
244 WebInspector.showErrorMessage = function(error) {}
245
246 WebInspector.addMainEventListeners = function(doc) {}
247
248 WebInspector.openResource = function(url, external) {}
249
250 WebInspector.showConsole = function() {}
251
252 /**
253  * @param {string} expression
254  * @param {boolean=} showResultOnly
255  */
256 WebInspector.evaluateInConsole = function(expression, showResultOnly) {}
257
258 WebInspector.queryParamsObject = {}
259
260 WebInspector.Events = {
261     InspectorLoaded: "InspectorLoaded",
262     InspectorClosing: "InspectorClosing"
263 }
264
265 /** Extensions API */
266
267 /** @constructor */
268 function AuditCategory() {}
269 /** @constructor */
270 function AuditResult() {}
271 /** @constructor */
272 function EventSink() {}
273 /** @constructor */
274 function ExtensionSidebarPane() {}
275 /** @constructor */
276 function Panel() {}
277 /** @constructor */
278 function PanelWithSidebar() {}
279 /** @constructor */
280 function Request() {}
281 /** @constructor */
282 function Resource() {}
283 /** @constructor */
284 function Timeline() {}
285
286 var extensionServer;
287
288 /** @type {string} */
289 Location.prototype.origin = "";
290
291 /**
292  * @constructor
293  */
294 function ExtensionDescriptor() {
295     this.startPage = "";
296     this.name = "";
297 }
298
299 /**
300  * @constructor
301  */
302 function ExtensionReloadOptions() {
303     this.ignoreCache = false;
304     this.injectedScript = "";
305     this.userAgent = "";
306 }
307
308 WebInspector.showPanel = function(panel)
309 {
310 }
311
312 /**
313  * @type {string} 
314  */
315 WebInspector.inspectedPageDomain;
316
317 WebInspector.SourceJavaScriptTokenizer = {}
318 WebInspector.SourceJavaScriptTokenizer.Keywords = {}
319
320 var InspectorTest = {}
321
322 /* jsdifflib API */
323 var difflib = {};
324 difflib.stringAsLines = function(text) { return []; }
325 /** @constructor */
326 difflib.SequenceMatcher = function(baseText, newText) { }
327 difflib.SequenceMatcher.prototype.get_opcodes = function() { return []; }
328
329 /** @constructor */
330 WebInspector.CodeMirrorTextEditor = function(url, delegate) { }
331
332 /** @constructor */
333 WebInspector.AceTextEditor = function(url, delegate) { }
334
335 WebInspector.suggestReload = function() { }
336 WebInspector.reload = function() { }
337
338 /** @type {boolean} */
339 window.dispatchStandaloneTestRunnerMessages;