Home | History | Annotate | Download | only in js_proto
      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.
      4 
      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.
      8 
      9 /** @type {HTMLElement} */
     10 Document.prototype.activeElement;
     11 
     12 /** @type {Array.<HTMLElement>} */
     13 Document.prototype.all;
     14 
     15 /** @type {boolean} */
     16 Document.prototype.hidden;
     17 
     18 /** @type {function(string): void} */
     19 Document.prototype.execCommand = function(command) {};
     20 
     21 /** @return {void} Nothing. */
     22 Document.prototype.webkitCancelFullScreen = function() {};
     23 
     24 /** @type {boolean} */
     25 Document.prototype.webkitIsFullScreen;
     26 
     27 /** @type {boolean} */
     28 Document.prototype.webkitHidden;
     29 
     30 /** @type {Element} */
     31 Document.prototype.firstElementChild;
     32 
     33 /** @type {number} */
     34 Element.ALLOW_KEYBOARD_INPUT;
     35 
     36 /** @param {number} flags
     37 /** @return {void} Nothing. */
     38 Element.prototype.webkitRequestFullScreen = function(flags) {};
     39 
     40 /** @type {boolean} */
     41 Element.prototype.hidden;
     42 
     43 /** @type {string} */
     44 Element.prototype.localName;
     45 
     46 /** @type {string} */
     47 Element.prototype.textContent;
     48 
     49 
     50 /** @constructor
     51     @extends {HTMLElement} */
     52 var HTMLEmbedElement = function() { };
     53 
     54 /** @type {number} */
     55 HTMLEmbedElement.prototype.height;
     56 
     57 /** @type {number} */
     58 HTMLEmbedElement.prototype.width;
     59 
     60 /** @type {Window} */
     61 HTMLIFrameElement.prototype.contentWindow;
     62 
     63 
     64 /** @type {Object} */
     65 var JSON = {};
     66 
     67 /**
     68  * @param {string} jsonStr The string to parse.
     69  * @param {(function(string, *) : *)=} opt_reviver
     70  * @return {*} The JSON object.
     71  */
     72 JSON.parse = function(jsonStr, opt_reviver) {};
     73 
     74 /**
     75  * @param {*} jsonObj Input object.
     76  * @param {(Array.<string>|(function(string, *) : *)|null)=} opt_replacer
     77  * @param {(number|string)=} opt_space
     78  * @return {string} json string which represents jsonObj.
     79  */
     80 JSON.stringify = function(jsonObj, opt_replacer, opt_space) {};
     81 
     82 
     83 /**
     84  * @param {string} name
     85  * @return {string}
     86  */
     87 Node.prototype.getAttribute = function(name) { };
     88 
     89 /** @type {string} */
     90 Node.prototype.value;
     91 
     92 /** @type {{top: string, left: string, bottom: string, right: string}} */
     93 Node.prototype.style;
     94 
     95 
     96 /**
     97  * @constructor
     98  * @param {function(Array.<MutationRecord>):void} callback
     99  */
    100 var MutationObserver = function(callback) {};
    101 
    102 /**
    103  * @param {Element} element
    104  * @param {Object} options
    105  */
    106 MutationObserver.prototype.observe = function(element, options) {};
    107 
    108 
    109 /** @constructor */
    110 var MutationRecord = function() {};
    111 
    112 /** @type {string} */
    113 MutationRecord.prototype.attributeName;
    114 
    115 /** @type {Element} */
    116 MutationRecord.prototype.target;
    117 
    118 /** @type {string} */
    119 MutationRecord.prototype.type;
    120 
    121 
    122 /** @type {{getRandomValues: function((Uint16Array|Uint8Array)):void}} */
    123 Window.prototype.crypto;
    124 
    125 
    126 /**
    127  * @constructor
    128  * @implements {EventTarget} */
    129 var EventTargetStub = function() {};
    130 
    131 /**
    132  * @param {string} type
    133  * @param {(EventListener|function(Event): (boolean|undefined|null))} listener
    134  * @param {boolean=} opt_useCapture
    135  */
    136 EventTargetStub.prototype.addEventListener =
    137     function(type, listener, opt_useCapture) {}
    138 
    139 /**
    140  * @param {string} type
    141  * @param {(EventListener|function(Event): (boolean|undefined|null))} listener
    142  * @param {boolean=} opt_useCapture
    143  */
    144 EventTargetStub.prototype.removeEventListener =
    145     function(type, listener, opt_useCapture) {}
    146 
    147 /**
    148  * @param {Event} event
    149  */
    150 EventTargetStub.prototype.dispatchEvent =
    151     function(event) {}
    152 
    153 /**
    154  * @constructor
    155  * @extends {EventTargetStub}
    156  */
    157 var SourceBuffer = function() {}
    158 
    159 /** @type {boolean} */
    160 SourceBuffer.prototype.updating;
    161 
    162 /** @type {TimeRanges} */
    163 SourceBuffer.prototype.buffered;
    164 
    165 /**
    166  * @param {ArrayBuffer} buffer
    167  */
    168 SourceBuffer.prototype.appendBuffer = function(buffer) {}
    169 
    170 /**
    171  * @param {number} start
    172  * @param {number} end
    173  */
    174 SourceBuffer.prototype.remove = function(start, end) {}
    175 
    176 /**
    177  * @constructor
    178  * @extends {EventTargetStub}
    179  */
    180 var MediaSource = function() {}
    181 
    182 /**
    183  * @param {string} format
    184  * @return {SourceBuffer}
    185  */
    186 MediaSource.prototype.addSourceBuffer = function(format) {}
    187 
    188 /**
    189  * @constructor
    190  * @param {function(function(*), function(*)) : void} init
    191  */
    192 var Promise = function (init) {};
    193 
    194 /**
    195  * @param {function(?=) : (Promise|void)} onFulfill
    196  * @param {function(?=) : (Promise|void)=} onReject
    197  * @return {Promise}
    198  */
    199 Promise.prototype.then = function (onFulfill, onReject) {};
    200 
    201 /**
    202  * @param {function(*) : void} onReject
    203  * @return {Promise}
    204  */
    205 Promise.prototype['catch'] = function (onReject) {};
    206 
    207 /**
    208  * @param {Array.<Promise>} promises
    209  * @return {Promise}
    210  */
    211 Promise.prototype.race = function (promises) {}
    212 
    213 /**
    214  * @param {Array.<Promise>} promises
    215  * @return {Promise}
    216  */
    217 Promise.prototype.all = function (promises) {};
    218 
    219 /**
    220  * @param {*=} reason
    221  * @return {Promise}
    222  */
    223 Promise.reject = function (reason) {};
    224 
    225 /**
    226  * @param {*=} value
    227  * @return {Promise}
    228  */
    229 Promise.resolve = function (value) {};
    230 
    231 /**
    232  * @param {string} type
    233  * @param {boolean} canBubble
    234  * @param {boolean} cancelable
    235  * @param {Window} view
    236  * @param {number} detail
    237  * @param {number} screenX
    238  * @param {number} screenY
    239  * @param {number} clientX
    240  * @param {number} clientY
    241  * @param {boolean} ctrlKey
    242  * @param {boolean} altKey
    243  * @param {boolean} shiftKey
    244  * @param {boolean} metaKey
    245  * @param {number} button
    246  * @param {EventTarget} relatedTarget
    247  */
    248 Event.prototype.initMouseEvent = function(
    249     type, canBubble, cancelable, view, detail,
    250     screenX, screenY, clientX, clientY,
    251     ctrlKey, altKey, shiftKey, metaKey,
    252     button, relatedTarget) {};
    253 
    254 /**
    255  * @param {number} begin
    256  * @param {number=} end
    257  * @return {ArrayBuffer}
    258  */
    259 ArrayBuffer.prototype.slice = function(begin, end) {};
    260