Rewrite AndroidSyncSettings to be significantly simpler.
[chromium-blink-merge.git] / remoting / webapp / js_proto / chrome_proto.js
blobafa0d036e2fe17ee6fc80d1b019a96e3d4022ace
1 // Copyright (c) 2012 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.
5 // This file contains various hacks needed to inform JSCompiler of various
6 // WebKit- and Chrome-specific properties and methods. It is used only with
7 // JSCompiler to verify the type-correctness of our code.
9 /** @constructor */
10 chrome.Event = function() {};
12 /** @param {Function} callback */
13 chrome.Event.prototype.addListener = function(callback) {};
15 /** @param {Function} callback */
16 chrome.Event.prototype.removeListener = function(callback) {};
18 /** @type {Object} */
19 chrome.app = {};
21 /** @type {Object} */
22 chrome.app.runtime = {
23   /** @type {chrome.Event} */
24   onLaunched: null
28 /** @type {Object} */
29 chrome.app.window = {
30   /**
31    * @param {string} name
32    * @param {Object} parameters
33    * @param {function(AppWindow)=} opt_callback
34    */
35   create: function(name, parameters, opt_callback) {},
36   /**
37    * @return {AppWindow}
38    */
39   current: function() {},
40   /**
41    * @param {string} id
42    * @return {AppWindow}
43    */
44   get: function(id) {},
45   /**
46    * @return {Array<AppWindow>}
47    */
48   getAll: function() {}
52 /** @type {Object} */
53 chrome.runtime = {
54   /** @type {Object} */
55   lastError: {
56     /** @type {string} */
57     message: ''
58   },
59   /** @type {string} */
60   id: '',
61   /** @return {{name: string, version: string, app: {background: Object}}} */
62   getManifest: function() {},
63   /** @param {function(Window):void} callback */
64   getBackgroundPage: function(callback) {},
65   /** @type {chrome.Event} */
66   onSuspend: null,
67   /** @type {chrome.Event} */
68   onSuspendCanceled: null,
69   /** @type {chrome.Event} */
70   onConnect: null,
71   /** @type {chrome.Event} */
72   onConnectExternal: null,
73   /** @type {chrome.Event} */
74   onMessage: null,
75   /** @type {chrome.Event} */
76   onMessageExternal: null
79 /**
80  * @type {?function(string):chrome.runtime.Port}
81  */
82 chrome.runtime.connectNative = function(name) {};
84 /**
85  * @param {{ name: string}} config
86  * @return {chrome.runtime.Port}
87  */
88 chrome.runtime.connect = function(config) {};
90 /**
91  * @param {string?} extensionId
92  * @param {*} message
93  * @param {Object=} opt_options
94  * @param {function(*)=} opt_callback
95  */
96 chrome.runtime.sendMessage = function(
97     extensionId, message, opt_options, opt_callback) {};
99 /** @constructor */
100 chrome.runtime.MessageSender = function(){
101   /** @type {chrome.Tab} */
102   this.tab = null;
103   /** @type {string} */
104   this.id = '';
105   /** @type {string} */
106   this.url = '';
109 /** @constructor */
110 chrome.runtime.Port = function() {
111   this.onMessage = new chrome.Event();
112   this.onDisconnect = new chrome.Event();
114   /** @type {string} */
115   this.name = '';
117   /** @type {chrome.runtime.MessageSender} */
118   this.sender = null;
121 /** @type {chrome.Event} */
122 chrome.runtime.Port.prototype.onMessage = null;
124 /** @type {chrome.Event} */
125 chrome.runtime.Port.prototype.onDisconnect = null;
127 chrome.runtime.Port.prototype.disconnect = function() {};
130  * @param {Object} message
131  */
132 chrome.runtime.Port.prototype.postMessage = function(message) {};
135 /** @type {Object} */
136 chrome.extension = {};
139  * @param {*} message
140  * @param {function(*)=} opt_callback
141  */
142 chrome.extension.sendMessage = function(message, opt_callback) {};
144 /** @type {chrome.Event} */
145 chrome.extension.onMessage;
148 /** @type {Object} */
149 chrome.i18n = {};
152  * @param {string} messageName
153  * @param {(string|Array<string>)=} opt_args
154  * @return {string}
155  */
156 chrome.i18n.getMessage = function(messageName, opt_args) {};
159  * @return {string}
160  */
161 chrome.i18n.getUILanguage = function() {};
164 /** @type {Object} */
165 chrome.storage = {};
167 /** @type {chrome.Storage} */
168 chrome.storage.local;
170 /** @type {chrome.Storage} */
171 chrome.storage.sync;
173 /** @constructor */
174 chrome.Storage = function() {};
177  * @param {string|Array<string>|Object<string>} items
178  * @param {function(Object<string>):void} callback
179  * @return {void}
180  */
181 chrome.Storage.prototype.get = function(items, callback) {};
184  * @param {Object<string>} items
185  * @param {function():void=} opt_callback
186  * @return {void}
187  */
188 chrome.Storage.prototype.set = function(items, opt_callback) {};
191  * @param {string|Array<string>} items
192  * @param {function():void=} opt_callback
193  * @return {void}
194  */
195 chrome.Storage.prototype.remove = function(items, opt_callback) {};
198  * @param {function():void=} opt_callback
199  * @return {void}
200  */
201 chrome.Storage.prototype.clear = function(opt_callback) {};
205  * @type {Object}
206  * src/chrome/common/extensions/api/context_menus.json
207  */
208 chrome.contextMenus = {};
209 /** @type {chrome.Event} */
210 chrome.contextMenus.onClicked;
212  * @param {!Object} createProperties
213  * @param {function()=} opt_callback
214  */
215 chrome.contextMenus.create = function(createProperties, opt_callback) {};
217  * @param {string|number} id
218  * @param {!Object} updateProperties
219  * @param {function()=} opt_callback
220  */
221 chrome.contextMenus.update = function(id, updateProperties, opt_callback) {};
223  * @param {string|number} menuItemId
224  * @param {function()=} opt_callback
225  */
226 chrome.contextMenus.remove = function(menuItemId, opt_callback) {};
228  * @param {function()=} opt_callback
229  */
230 chrome.contextMenus.removeAll = function(opt_callback) {};
232 /** @constructor */
233 function OnClickData() {};
234 /** @type {string|number} */
235 OnClickData.prototype.menuItemId;
236 /** @type {string|number} */
237 OnClickData.prototype.parentMenuItemId;
238 /** @type {string} */
239 OnClickData.prototype.mediaType;
240 /** @type {string} */
241 OnClickData.prototype.linkUrl;
242 /** @type {string} */
243 OnClickData.prototype.srcUrl;
244 /** @type {string} */
245 OnClickData.prototype.pageUrl;
246 /** @type {string} */
247 OnClickData.prototype.frameUrl;
248 /** @type {string} */
249 OnClickData.prototype.selectionText;
250 /** @type {boolean} */
251 OnClickData.prototype.editable;
252 /** @type {boolean} */
253 OnClickData.prototype.wasChecked;
254 /** @type {boolean} */
255 OnClickData.prototype.checked;
258 /** @type {Object} */
259 chrome.fileSystem = {
260   /**
261    * @param {Object<string>?} options
262    * @param {function(Entry, Array<FileEntry>):void} callback
263    */
264   chooseEntry: function(options, callback) {},
265   /**
266    * @param {Entry} entry
267    * @param {function(string):void} callback
268    */
269   getDisplayPath: function(entry, callback) {}
272 /** @param {function(FileWriter):void} callback */
273 Entry.prototype.createWriter = function(callback) {};
275 /** @type {Object} */
276 chrome.identity = {
277   /**
278    * @param {Object<string>} parameters
279    * @param {function(string):void} callback
280    */
281   getAuthToken: function(parameters, callback) {},
282   /**
283    * @param {Object<string>} parameters
284    * @param {function():void} callback
285    */
286   removeCachedAuthToken: function(parameters, callback) {},
287   /**
288    * @param {Object<string>} parameters
289    * @param {function(string):void} callback
290    */
291   launchWebAuthFlow: function(parameters, callback) {}
295 /** @type {Object} */
296 chrome.permissions = {
297   /**
298    * @param {Object<string>} permissions
299    * @param {function(boolean):void} callback
300    */
301   contains: function(permissions, callback) {},
302   /**
303    * @param {Object<string>} permissions
304    * @param {function(boolean):void} callback
305    */
306   request: function(permissions, callback) {}
310 /** @type {Object} */
311 chrome.tabs = {};
313 /** @param {function(chrome.Tab):void} callback */
314 chrome.tabs.getCurrent = function(callback) {};
317  * @param {Object?} options
318  * @param {function(chrome.Tab)=} opt_callback
319  */
320 chrome.tabs.create = function(options, opt_callback) {};
323  * @param {string} id
324  * @param {function(chrome.Tab)} callback
325  */
326 chrome.tabs.get = function(id, callback) {};
329  * @param {string} id
330  * @param {function(*=):void=} opt_callback
331  */
332 chrome.tabs.remove = function(id, opt_callback) {};
335 /** @constructor */
336 chrome.Tab = function() {
337   /** @type {boolean} */
338   this.pinned = false;
339   /** @type {number} */
340   this.windowId = 0;
341   /** @type {string} */
342   this.id = '';
346 /** @type {Object} */
347 chrome.windows = {};
349 /** @param {number} id
350  *  @param {Object?} getInfo
351  *  @param {function(chrome.Window):void} callback */
352 chrome.windows.get = function(id, getInfo, callback) {};
354 /** @constructor */
355 chrome.Window = function() {
356   /** @type {string} */
357   this.state = '';
358   /** @type {string} */
359   this.type = '';
362 /** @constructor */
363 var AppWindow = function() {
364   /** @type {Window} */
365   this.contentWindow = null;
366   /** @type {chrome.Event} */
367   this.onClosed = null;
368   /** @type {chrome.Event} */
369   this.onRestored = null;
370   /** @type {chrome.Event} */
371   this.onMaximized = null;
372   /** @type {chrome.Event} */
373   this.onMinimized = null;
374   /** @type {chrome.Event} */
375   this.onFullscreened = null;
376   /** @type {string} */
377   this.id = '';
378   /** @type {Bounds} */
379   this.outerBounds = null;
380   /** @type {Bounds} */
381   this.innerBounds = null;
384 AppWindow.prototype.close = function() {};
385 AppWindow.prototype.drawAttention = function() {};
386 AppWindow.prototype.focus = function() {};
387 AppWindow.prototype.maximize = function() {};
388 AppWindow.prototype.minimize = function() {};
390  * @param {number} left
391  * @param {number} top
392  */
393 AppWindow.prototype.moveTo = function(left, top) {};
395  * @param {number} width
396  * @param {number} height
397  */
398 AppWindow.prototype.resizeTo = function(width, height) {};
400 AppWindow.prototype.restore = function() {};
401 AppWindow.prototype.show = function() {};
402 /** @return {boolean} */
403 AppWindow.prototype.isMinimized = function() {};
404 AppWindow.prototype.fullscreen = function() {};
405 /** @return {boolean} */
406 AppWindow.prototype.isFullscreen = function() {};
407 /** @return {boolean} */
408 AppWindow.prototype.isMaximized = function() {};
411  * @param {{rects: Array<ClientRect>}} rects
412  */
413 AppWindow.prototype.setShape = function(rects) {};
416  * @param {{rects: Array<ClientRect>}} rects
417  */
418 AppWindow.prototype.setInputRegion = function(rects) {};
420 /** @constructor */
421 var LaunchData = function() {
422   /** @type {string} */
423   this.id = '';
424   /** @type {Array<{type: string, entry: FileEntry}>} */
425   this.items = [];
428 /** @constructor */
429 function Bounds() {
430   /** @type {number} */
431   this.left = 0;
432   /** @type {number} */
433   this.top = 0;
434   /** @type {number} */
435   this.width = 0;
436   /** @type {number} */
437   this.height = 0;
440 /** @type {Object} */
441 chrome.cast = {};
443 /** @constructor */
444 chrome.cast.AutoJoinPolicy = function() {};
446 /** @type {chrome.cast.AutoJoinPolicy} */
447 chrome.cast.AutoJoinPolicy.PAGE_SCOPED;
449 /** @type {chrome.cast.AutoJoinPolicy} */
450 chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED;
452 /** @type {chrome.cast.AutoJoinPolicy} */
453 chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED;
455 /** @constructor */
456 chrome.cast.DefaultActionPolicy = function() {};
458 /** @type {chrome.cast.DefaultActionPolicy} */
459 chrome.cast.DefaultActionPolicy.CAST_THIS_TAB;
461 /** @type {chrome.cast.DefaultActionPolicy} */
462 chrome.cast.DefaultActionPolicy.CREATE_SESSION;
464 /** @constructor */
465 chrome.cast.Error = function() {};
467 /** @constructor */
468 chrome.cast.ReceiverAvailability = function() {};
470 /** @type {chrome.cast.ReceiverAvailability} */
471 chrome.cast.ReceiverAvailability.AVAILABLE;
473 /** @type {chrome.cast.ReceiverAvailability} */
474 chrome.cast.ReceiverAvailability.UNAVAILABLE;
476 /** @type {Object} */
477 chrome.cast.media = {};
479 /** @constructor */
480 chrome.cast.media.Media = function() {
481   /** @type {number} */
482   this.mediaSessionId = 0;
485 /** @constructor */
486 chrome.cast.Session = function() {
487   /** @type {Array<chrome.cast.media.Media>} */
488   this.media = [];
490   /** @type {string} */
491   this.sessionId = '';
495  * @param {string} namespace
496  * @param {Object} message
497  * @param {function():void} successCallback
498  * @param {function(chrome.cast.Error):void} errorCallback
499  */
500 chrome.cast.Session.prototype.sendMessage =
501     function(namespace, message, successCallback, errorCallback) {};
504  * @param {function(chrome.cast.media.Media):void} listener
505  */
506 chrome.cast.Session.prototype.addMediaListener = function(listener) {};
509  * @param {function(boolean):void} listener
510  */
511 chrome.cast.Session.prototype.addUpdateListener = function(listener) {};
514  * @param {string} namespace
515  * @param {function(string, string):void} listener
516  */
517 chrome.cast.Session.prototype.addMessageListener =
518     function(namespace, listener){};
521  * @param {function():void} successCallback
522  * @param {function(chrome.cast.Error):void} errorCallback
523  */
524 chrome.cast.Session.prototype.stop =
525     function(successCallback, errorCallback) {};
528  * @constructor
529  * @param {string} applicationID
530  */
531 chrome.cast.SessionRequest = function(applicationID) {};
534  * @constructor
535  * @param {chrome.cast.SessionRequest} sessionRequest
536  * @param {function(chrome.cast.Session):void} sessionListener
537  * @param {function(chrome.cast.ReceiverAvailability):void} receiverListener
538  * @param {chrome.cast.AutoJoinPolicy=} opt_autoJoinPolicy
539  * @param {chrome.cast.DefaultActionPolicy=} opt_defaultActionPolicy
540  */
541 chrome.cast.ApiConfig = function(sessionRequest,
542                                  sessionListener,
543                                  receiverListener,
544                                  opt_autoJoinPolicy,
545                                  opt_defaultActionPolicy) {};
548  * @param {chrome.cast.ApiConfig} apiConfig
549  * @param {function():void} onInitSuccess
550  * @param {function(chrome.cast.Error):void} onInitError
551  */
552 chrome.cast.initialize =
553     function(apiConfig, onInitSuccess, onInitError) {};
556  * @param {function(chrome.cast.Session):void} successCallback
557  * @param {function(chrome.cast.Error):void} errorCallback
558  */
559 chrome.cast.requestSession =
560     function(successCallback, errorCallback) {};
562 /** @type {Object} */
563 chrome.sockets = {};
565 /** @type {Object} */
566 chrome.sockets.tcp = {};
568 /** @constructor */
569 chrome.sockets.tcp.CreateInfo = function() {
570   /** @type {number} */
571   this.socketId = 0;
575  * @param {Object} properties
576  * @param {function(chrome.sockets.tcp.CreateInfo):void} callback
577  */
578 chrome.sockets.tcp.create = function(properties, callback) {};
581 /** @constructor */
582 chrome.sockets.tcp.ConnectInfo = function() {
583   /** @type {number} */
584   this.result = 0;
588  * @param {number} socketId
589  * @param {string} peerAddress
590  * @param {number} peerPort
591  * @param {function(chrome.sockets.tcp.ConnectInfo):void} callback
592  */
593 chrome.sockets.tcp.connect =
594     function(socketId, peerAddress, peerPort, callback) {};
597 /** @constructor */
598 chrome.sockets.tcp.SendInfo = function() {
599   /** @type {number} */
600   this.resultCode = 0;
602   /** @type {number} */
603   this.bytesSent = 0;
607  * @param {number} socketId
608  * @param {ArrayBuffer} data
609  * @param {function(chrome.sockets.tcp.SendInfo):void} callback
610  */
611 chrome.sockets.tcp.send = function(socketId, data, callback) {};
615  * @param {number} socketId
616  */
617 chrome.sockets.tcp.close = function(socketId) {};
620  * @param {number} socketId
621  * @param {Object} options
622  * @param {function(number):void} callback
623  */
624 chrome.sockets.tcp.secure = function(socketId, options, callback) {};
626 /** @constructor */
627 chrome.sockets.tcp.ReceiveInfo = function() {
628   /** @type {number} */
629   this.socketId = 0;
631   /** @type {ArrayBuffer} */
632   this.data = null;
635 /** @type {chrome.Event} */
636 chrome.sockets.tcp.onReceive = null;
638 /** @constructor */
639 chrome.sockets.tcp.ReceiveErrorInfo = function() {
640   /** @type {number} */
641   this.socketId = 0;
643   /** @type {number} */
644   this.resultCode = 0;
647 /** @type {chrome.Event} */
648 chrome.sockets.tcp.onReceiveError = null;
650 /** @type {Object} */
651 chrome.socket = {};
653 /** @constructor */
654 chrome.socket.CreateInfo = function() {
655   /** @type {number} */
656   this.socketId = 0;
660  * @param {string} socketType
661  * @param {Object} options
662  * @param {function(chrome.socket.CreateInfo):void} callback
663  */
664 chrome.socket.create = function(socketType, options, callback) {};
667  * @param {number} socketId
668  * @param {string} hostname
669  * @param {number} port
670  * @param {function(number):void} callback
671  */
672 chrome.socket.connect =
673     function(socketId, hostname, port, callback) {};
675 /** @constructor */
676 chrome.socket.WriteInfo = function() {
677   /** @type {number} */
678   this.bytesWritten = 0;
682  * @param {number} socketId
683  * @param {ArrayBuffer} data
684  * @param {function(chrome.socket.WriteInfo):void} callback
685  */
686 chrome.socket.write = function(socketId, data, callback) {};
688 /** @constructor */
689 chrome.socket.ReadInfo = function() {
690   /** @type {number} */
691   this.resultCode = 0;
693   /** @type {ArrayBuffer} */
694   this.data = null;
698  * @param {number} socketId
699  * @param {function(chrome.socket.ReadInfo):void} callback
700  */
701 chrome.socket.read = function(socketId, callback) {};
704  * @param {number} socketId
705  */
706 chrome.socket.destroy = function(socketId) {};
709  * @param {number} socketId
710  * @param {Object} options
711  * @param {function(number):void} callback
712  */
713 chrome.socket.secure = function(socketId, options, callback) {};