gecko_dom.js (25671B)
1 /* 2 * Copyright 2008 The Closure Compiler Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 /** 18 * @fileoverview Definitions for all the extensions over 19 * W3C's DOM specification by Gecko. This file depends on 20 * w3c_dom2.js. 21 * 22 * When a non-standard extension appears in both Gecko and IE, we put 23 * it in gecko_dom.js 24 * 25 * @externs 26 */ 27 28 // TODO: Almost all of it has not been annotated with types. 29 30 // Gecko DOM; 31 32 /** 33 * Mozilla only??? 34 * @constructor 35 * @extends {HTMLElement} 36 */ 37 function HTMLSpanElement() {} 38 39 /** 40 * @see https://developer.mozilla.org/en/Components_object 41 */ 42 Window.prototype.Components; 43 44 /** 45 * @type Window 46 * @see https://developer.mozilla.org/en/DOM/window.content 47 */ 48 Window.prototype.content; 49 50 /** 51 * @type {boolean} 52 * @see https://developer.mozilla.org/en/DOM/window.closed 53 */ 54 Window.prototype.closed; 55 56 /** @see https://developer.mozilla.org/en/DOM/window.controllers */ 57 Window.prototype.controllers; 58 59 /** @see https://developer.mozilla.org/en/DOM/window.crypto */ 60 Window.prototype.crypto; 61 62 /** 63 * Gets/sets the status bar text for the given window. 64 * @type {string} 65 * @see https://developer.mozilla.org/en/DOM/window.defaultStatus 66 */ 67 Window.prototype.defaultStatus; 68 69 /** @see https://developer.mozilla.org/en/DOM/window.dialogArguments */ 70 Window.prototype.dialogArguments; 71 72 /** @see https://developer.mozilla.org/en/DOM/window.directories */ 73 Window.prototype.directories; 74 75 /** 76 * @type {HTMLObjectElement|HTMLIFrameElement|null} 77 * @see https://developer.mozilla.org/en/DOM/window.frameElement 78 */ 79 Window.prototype.frameElement; 80 81 /** 82 * Allows lookup of frames by index or by name. 83 * @type {?Object} 84 * @see https://developer.mozilla.org/en/DOM/window.frames 85 */ 86 Window.prototype.frames; 87 88 /** 89 * @type {boolean} 90 * @see https://developer.mozilla.org/en/DOM/window.fullScreen 91 */ 92 Window.prototype.fullScreen; 93 94 /** 95 * @see https://developer.mozilla.org/en/DOM/Storage#globalStorage 96 */ 97 Window.prototype.globalStorage; 98 99 /** 100 * @type {!History} 101 * @see https://developer.mozilla.org/en/DOM/window.history 102 */ 103 Window.prototype.history; 104 105 /** 106 * Returns the number of frames (either frame or iframe elements) in the 107 * window. 108 * 109 * @type {number} 110 * @see https://developer.mozilla.org/en/DOM/window.length 111 */ 112 Window.prototype.length; 113 114 /** 115 * @type {!Location} 116 * @implicitCast 117 * @see https://developer.mozilla.org/en/DOM/window.location 118 */ 119 Window.prototype.location; 120 121 /** 122 * @see https://developer.mozilla.org/en/DOM/window.locationbar 123 */ 124 Window.prototype.locationbar; 125 126 /** 127 * @see https://developer.mozilla.org/en/DOM/window.menubar 128 */ 129 Window.prototype.menubar; 130 131 /** 132 * @type {string} 133 * @see https://developer.mozilla.org/en/DOM/window.name 134 */ 135 Window.prototype.name; 136 137 /** 138 * @type {Navigator} 139 * @see https://developer.mozilla.org/en/DOM/window.navigator 140 */ 141 Window.prototype.navigator; 142 143 /** 144 * @type {?Window} 145 * @see https://developer.mozilla.org/en/DOM/window.opener 146 */ 147 Window.prototype.opener; 148 149 /** 150 * @type {!Window} 151 * @see https://developer.mozilla.org/en/DOM/window.parent 152 */ 153 Window.prototype.parent; 154 155 /** @see https://developer.mozilla.org/en/DOM/window.personalbar */ 156 Window.prototype.personalbar; 157 158 /** @see https://developer.mozilla.org/en/DOM/window.pkcs11 */ 159 Window.prototype.pkcs11; 160 161 /** @see https://developer.mozilla.org/en/DOM/window */ 162 Window.prototype.returnValue; 163 164 /** @see https://developer.mozilla.org/en/DOM/window.scrollbars */ 165 Window.prototype.scrollbars; 166 167 /** 168 * @type {number} 169 * @see https://developer.mozilla.org/En/DOM/window.scrollMaxX 170 */ 171 Window.prototype.scrollMaxX; 172 173 /** 174 * @type {number} 175 * @see https://developer.mozilla.org/En/DOM/window.scrollMaxY 176 */ 177 Window.prototype.scrollMaxY; 178 179 /** 180 * @type {!Window} 181 * @see https://developer.mozilla.org/en/DOM/window.self 182 */ 183 Window.prototype.self; 184 185 /** @see https://developer.mozilla.org/en/DOM/Storage#sessionStorage */ 186 Window.prototype.sessionStorage; 187 188 /** @see https://developer.mozilla.org/en/DOM/window.sidebar */ 189 Window.prototype.sidebar; 190 191 /** 192 * @type {?string} 193 * @see https://developer.mozilla.org/en/DOM/window.status 194 */ 195 Window.prototype.status; 196 197 /** @see https://developer.mozilla.org/en/DOM/window.statusbar */ 198 Window.prototype.statusbar; 199 200 /** @see https://developer.mozilla.org/en/DOM/window.toolbar */ 201 Window.prototype.toolbar; 202 203 /** 204 * @type {!Window} 205 * @see https://developer.mozilla.org/en/DOM/window.self 206 */ 207 Window.prototype.top; 208 209 /** 210 * @type {!Window} 211 * @see https://developer.mozilla.org/en/DOM/window.self 212 */ 213 Window.prototype.window; 214 215 /** 216 * @param {*} message 217 * @see https://developer.mozilla.org/en/DOM/window.alert 218 */ 219 Window.prototype.alert = function(message) {}; 220 221 /** 222 * Decodes a string of data which has been encoded using base-64 encoding. 223 * 224 * @param {string} encodedData 225 * @return {string} 226 * @see https://developer.mozilla.org/en/DOM/window.atob 227 * @nosideeffects 228 */ 229 function atob(encodedData) {} 230 231 /** @see https://developer.mozilla.org/en/DOM/window.back */ 232 Window.prototype.back = function() {}; 233 234 /** @see https://developer.mozilla.org/en/DOM/window.blur */ 235 Window.prototype.blur = function() {}; 236 237 /** 238 * @param {string} stringToEncode 239 * @return {string} 240 * @see https://developer.mozilla.org/en/DOM/window.btoa 241 * @nosideeffects 242 */ 243 function btoa(stringToEncode) {} 244 245 /** @deprecated */ 246 Window.prototype.captureEvents; 247 248 /** @see https://developer.mozilla.org/en/DOM/window.close */ 249 Window.prototype.close = function() {}; 250 251 /** @see https://developer.mozilla.org/en/DOM/window.find */ 252 Window.prototype.find; 253 254 /** @see https://developer.mozilla.org/en/DOM/window.focus */ 255 Window.prototype.focus = function() {}; 256 257 /** @see https://developer.mozilla.org/en/DOM/window.forward */ 258 Window.prototype.forward = function() {}; 259 260 /** @see https://developer.mozilla.org/en/DOM/window.getAttention */ 261 Window.prototype.getAttention = function() {}; 262 263 /** 264 * @return {Selection} 265 * @see https://developer.mozilla.org/en/DOM/window.getSelection 266 * @nosideeffects 267 */ 268 Window.prototype.getSelection = function() {}; 269 270 /** @see https://developer.mozilla.org/en/DOM/window.home */ 271 Window.prototype.home = function() {}; 272 273 Window.prototype.openDialog; 274 Window.prototype.releaseEvents; 275 Window.prototype.scrollByLines; 276 Window.prototype.scrollByPages; 277 278 /** 279 * @param {string} uri 280 * @param {?=} opt_arguments 281 * @param {string=} opt_options 282 * @see https://developer.mozilla.org/en/DOM/window.showModalDialog 283 */ 284 Window.prototype.showModalDialog; 285 286 Window.prototype.sizeToContent; 287 288 /** 289 * @see http://msdn.microsoft.com/en-us/library/ms536769(VS.85).aspx 290 */ 291 Window.prototype.stop = function() {}; 292 293 Window.prototype.updateCommands; 294 295 // properties of Document 296 297 /** 298 * @see https://developer.mozilla.org/en/DOM/document.alinkColor 299 * @type {string} 300 */ 301 Document.prototype.alinkColor; 302 303 /** 304 * @see https://developer.mozilla.org/en/DOM/document.anchors 305 * @type {HTMLCollection} 306 */ 307 Document.prototype.anchors; 308 309 /** 310 * @see https://developer.mozilla.org/en/DOM/document.applets 311 * @type {HTMLCollection} 312 */ 313 Document.prototype.applets; 314 /** @type {boolean} */ Document.prototype.async; 315 /** @type {string?} */ Document.prototype.baseURI; 316 Document.prototype.baseURIObject; 317 318 /** 319 * @see https://developer.mozilla.org/en/DOM/document.bgColor 320 * @type {string} 321 */ 322 Document.prototype.bgColor; 323 324 /** @type {HTMLBodyElement} */ Document.prototype.body; 325 Document.prototype.characterSet; 326 327 /** 328 * @see https://developer.mozilla.org/en/DOM/document.compatMode 329 * @type {string} 330 */ 331 Document.prototype.compatMode; 332 333 Document.prototype.contentType; 334 /** @type {string} */ Document.prototype.cookie; 335 Document.prototype.defaultView; 336 337 /** 338 * @see https://developer.mozilla.org/en/DOM/document.designMode 339 * @type {string} 340 */ 341 Document.prototype.designMode; 342 343 Document.prototype.documentURIObject; 344 345 /** 346 * @see https://developer.mozilla.org/en/DOM/document.domain 347 * @type {string} 348 */ 349 Document.prototype.domain; 350 351 /** 352 * @see https://developer.mozilla.org/en/DOM/document.embeds 353 * @type {HTMLCollection} 354 */ 355 Document.prototype.embeds; 356 357 /** 358 * @see https://developer.mozilla.org/en/DOM/document.fgColor 359 * @type {string} 360 */ 361 Document.prototype.fgColor; 362 363 /** @type {Element} */ Document.prototype.firstChild; 364 365 /** 366 * @see https://developer.mozilla.org/en/DOM/document.forms 367 * @type {HTMLCollection} 368 */ 369 Document.prototype.forms; 370 371 /** @type {number} */ Document.prototype.height; 372 /** @type {HTMLCollection} */ Document.prototype.images; 373 374 /** 375 * @type {string} 376 * @see https://developer.mozilla.org/en/DOM/document.lastModified 377 */ 378 Document.prototype.lastModified; 379 380 /** 381 * @type {string} 382 * @see https://developer.mozilla.org/en/DOM/document.linkColor 383 */ 384 Document.prototype.linkColor; 385 386 /** 387 * @see https://developer.mozilla.org/en/DOM/document.links 388 * @type {HTMLCollection} 389 */ 390 Document.prototype.links; 391 392 /** 393 * @type {!Location} 394 * @implicitCast 395 */ 396 Document.prototype.location; 397 398 Document.prototype.namespaceURI; 399 Document.prototype.nodePrincipal; 400 Document.prototype.plugins; 401 Document.prototype.popupNode; 402 403 /** 404 * @type {string} 405 * @see https://developer.mozilla.org/en/DOM/document.referrer 406 */ 407 Document.prototype.referrer; 408 409 /** 410 * @type {StyleSheetList} 411 * @see https://developer.mozilla.org/en/DOM/document.styleSheets 412 */ 413 Document.prototype.styleSheets; 414 415 /** @type {?string} */ Document.prototype.title; 416 Document.prototype.tooltipNode; 417 /** @type {string} */ Document.prototype.URL; 418 419 /** 420 * @type {string} 421 * @see https://developer.mozilla.org/en/DOM/document.vlinkColor 422 */ 423 Document.prototype.vlinkColor; 424 425 /** @type {number} */ Document.prototype.width; 426 427 // Methods of Document 428 /** 429 * @see https://developer.mozilla.org/en/DOM/document.clear 430 */ 431 Document.prototype.clear = function() {}; 432 433 /** 434 * @see https://developer.mozilla.org/en/DOM/document.close 435 */ 436 Document.prototype.close; 437 438 /** 439 * @see https://developer.mozilla.org/en-US/docs/Web/API/document.createElementNS 440 * @see http://w3c.github.io/webcomponents/spec/custom/#extensions-to-document-interface-to-instantiate 441 * @param {?string} namespaceURI 442 * @param {string} qualifiedName 443 * @param {string=} opt_typeExtension 444 * @return {!Element} 445 */ 446 Document.prototype.createElementNS = 447 function(namespaceURI, qualifiedName, opt_typeExtension) {}; 448 449 /** 450 * @param {string} type 451 * @return {Event} 452 */ 453 Document.prototype.createEvent = function(type) {}; 454 Document.prototype.createNSResolver; 455 /** @return {Range} */ Document.prototype.createRange = function() {}; 456 Document.prototype.createTreeWalker; 457 458 Document.prototype.evaluate; 459 460 /** 461 * @param {string} commandName 462 * @param {?boolean=} opt_showUi 463 * @param {*=} opt_value 464 * @see https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla#Executing_Commands 465 */ 466 Document.prototype.execCommand; 467 468 /** 469 * @param {string} s id. 470 * @return {HTMLElement} 471 * @nosideeffects 472 * @see https://developer.mozilla.org/en/DOM/document.getElementById 473 */ 474 Document.prototype.getElementById = function(s) {}; 475 476 /** 477 * @param {string} name 478 * @return {!NodeList} 479 * @nosideeffects 480 * @see https://developer.mozilla.org/en/DOM/document.getElementsByClassName 481 */ 482 Document.prototype.getElementsByClassName = function(name) {}; 483 484 /** 485 * @param {string} name 486 * @return {!NodeList} 487 * @nosideeffects 488 * @see https://developer.mozilla.org/en/DOM/document.getElementsByName 489 */ 490 Document.prototype.getElementsByName = function(name) {}; 491 492 /** 493 * @param {string} namespace 494 * @param {string} name 495 * @return {!NodeList} 496 * @nosideeffects 497 * @see https://developer.mozilla.org/en/DOM/document.getElementsByTagNameNS 498 */ 499 Document.prototype.getElementsByTagNameNS = function(namespace, name) {}; 500 501 /** 502 * @param {Node} externalNode 503 * @param {boolean} deep 504 * @return {Node} 505 */ 506 Document.prototype.importNode = function(externalNode, deep) {}; 507 508 /** @param {string} uri */ 509 Document.prototype.load = function(uri) {}; 510 Document.prototype.loadOverlay; 511 512 /** 513 * @see https://developer.mozilla.org/en/DOM/document.open 514 */ 515 Document.prototype.open; 516 517 /** 518 * @see https://developer.mozilla.org/en/Midas 519 * @see http://msdn.microsoft.com/en-us/library/ms536676(VS.85).aspx 520 */ 521 Document.prototype.queryCommandEnabled; 522 523 /** 524 * @see https://developer.mozilla.org/en/Midas 525 * @see http://msdn.microsoft.com/en-us/library/ms536678(VS.85).aspx 526 */ 527 Document.prototype.queryCommandIndeterm; 528 529 /** 530 * @see https://developer.mozilla.org/en/Midas 531 * @see http://msdn.microsoft.com/en-us/library/ms536679(VS.85).aspx 532 */ 533 Document.prototype.queryCommandState; 534 535 /** 536 * @see https://developer.mozilla.org/en/DOM/document.queryCommandSupported 537 * @see http://msdn.microsoft.com/en-us/library/ms536681(VS.85).aspx 538 * @param {string} command 539 * @return {?} Implementation-specific. 540 */ 541 Document.prototype.queryCommandSupported; 542 543 /** 544 * @see https://developer.mozilla.org/en/Midas 545 * @see http://msdn.microsoft.com/en-us/library/ms536683(VS.85).aspx 546 */ 547 Document.prototype.queryCommandValue; 548 549 /** 550 * @see https://developer.mozilla.org/en/DOM/document.write 551 * @param {string} text 552 */ 553 Document.prototype.write = function(text) {}; 554 555 /** 556 * @see https://developer.mozilla.org/en/DOM/document.writeln 557 * @param {string} text 558 */ 559 Document.prototype.writeln = function(text) {}; 560 561 Document.prototype.ononline; 562 Document.prototype.onoffline; 563 564 // XUL 565 /** 566 * @see http://developer.mozilla.org/en/DOM/document.getBoxObjectFor 567 * @return {BoxObject} 568 * @nosideeffects 569 */ 570 Document.prototype.getBoxObjectFor = function(element) {}; 571 572 // From: 573 // http://lxr.mozilla.org/mozilla1.8/source/dom/public/idl/range/nsIDOMNSRange.idl 574 575 /** 576 * @param {string} tag 577 * @return {DocumentFragment} 578 */ 579 Range.prototype.createContextualFragment; 580 581 /** 582 * @param {Node} parent 583 * @param {number} offset 584 * @return {boolean} 585 * @nosideeffects 586 */ 587 Range.prototype.isPointInRange; 588 589 /** 590 * @param {Node} parent 591 * @param {number} offset 592 * @return {number} 593 * @nosideeffects 594 */ 595 Range.prototype.comparePoint; 596 597 /** 598 * @param {Node} n 599 * @return {boolean} 600 * @nosideeffects 601 */ 602 Range.prototype.intersectsNode; 603 604 /** 605 * @param {Node} n 606 * @return {number} 607 * @nosideeffects 608 */ 609 Range.prototype.compareNode; 610 611 612 /** @constructor */ 613 function Selection() {} 614 615 /** 616 * @type {Node} 617 * @see https://developer.mozilla.org/en/DOM/Selection/anchorNode 618 */ 619 Selection.prototype.anchorNode; 620 621 /** 622 * @type {number} 623 * @see https://developer.mozilla.org/en/DOM/Selection/anchorOffset 624 */ 625 Selection.prototype.anchorOffset; 626 627 /** 628 * @type {Node} 629 * @see https://developer.mozilla.org/en/DOM/Selection/focusNode 630 */ 631 Selection.prototype.focusNode; 632 633 /** 634 * @type {number} 635 * @see https://developer.mozilla.org/en/DOM/Selection/focusOffset 636 */ 637 Selection.prototype.focusOffset; 638 639 /** 640 * @type {boolean} 641 * @see https://developer.mozilla.org/en/DOM/Selection/isCollapsed 642 */ 643 Selection.prototype.isCollapsed; 644 645 /** 646 * @type {number} 647 * @see https://developer.mozilla.org/en/DOM/Selection/rangeCount 648 */ 649 Selection.prototype.rangeCount; 650 651 /** 652 * @param {Range} range 653 * @return {undefined} 654 * @see https://developer.mozilla.org/en/DOM/Selection/addRange 655 */ 656 Selection.prototype.addRange = function(range) {}; 657 658 /** 659 * @param {number} index 660 * @return {Range} 661 * @see https://developer.mozilla.org/en/DOM/Selection/getRangeAt 662 * @nosideeffects 663 */ 664 Selection.prototype.getRangeAt = function(index) {}; 665 666 /** 667 * @param {Node} node 668 * @param {number} index 669 * @return {undefined} 670 * @see https://developer.mozilla.org/en/DOM/Selection/collapse 671 */ 672 Selection.prototype.collapse = function(node, index) {}; 673 674 /** 675 * @return {undefined} 676 * @see https://developer.mozilla.org/en/DOM/Selection/collapseToEnd 677 */ 678 Selection.prototype.collapseToEnd = function() {}; 679 680 /** 681 * @return {undefined} 682 * @see https://developer.mozilla.org/en/DOM/Selection/collapseToStart 683 */ 684 Selection.prototype.collapseToStart = function() {}; 685 686 /** 687 * @param {Node} node 688 * @param {boolean} partlyContained 689 * @return {boolean} 690 * @see https://developer.mozilla.org/en/DOM/Selection/containsNode 691 * @nosideeffects 692 */ 693 Selection.prototype.containsNode = function(node, partlyContained) {}; 694 695 /** 696 * @see https://developer.mozilla.org/en/DOM/Selection/deleteFromDocument 697 */ 698 Selection.prototype.deleteFromDocument = function() {}; 699 700 /** 701 * @param {Node} parentNode 702 * @param {number} offset 703 * @see https://developer.mozilla.org/en/DOM/Selection/extend 704 */ 705 Selection.prototype.extend = function(parentNode, offset) {}; 706 707 /** 708 * @see https://developer.mozilla.org/en/DOM/Selection/removeAllRanges 709 */ 710 Selection.prototype.removeAllRanges = function() {}; 711 712 /** 713 * @param {Range} range 714 * @see https://developer.mozilla.org/en/DOM/Selection/removeRange 715 */ 716 Selection.prototype.removeRange = function(range) {}; 717 718 /** 719 * @param {Node} parentNode 720 * @see https://developer.mozilla.org/en/DOM/Selection/selectAllChildren 721 */ 722 Selection.prototype.selectAllChildren; 723 724 /** 725 * @see https://developer.mozilla.org/en/DOM/Selection/selectionLanguageChange 726 */ 727 Selection.prototype.selectionLanguageChange; 728 729 /** @type {NamedNodeMap} */ Element.prototype.attributes; 730 Element.prototype.baseURIObject; 731 /** @type {!NodeList} */ Element.prototype.childNodes; 732 733 /** 734 * @type {!NodeList} 735 * @see https://developer.mozilla.org/en/DOM/element.children 736 */ 737 Element.prototype.children; 738 739 /** 740 * @type {string} 741 * @implicitCast 742 */ 743 Element.prototype.className; 744 /** @type {string} */ Element.prototype.dir; 745 746 /** 747 * Firebug sets this property on elements it is inserting into the DOM. 748 * @type {boolean} 749 */ 750 Element.prototype.firebugIgnore; 751 752 /** @type {Node} */ Element.prototype.firstChild; 753 /** 754 * @type {string} 755 * @implicitCast 756 */ 757 Element.prototype.id; 758 /** 759 * @type {string} 760 * @implicitCast 761 */ 762 Element.prototype.innerHTML; 763 /** @type {string} */ Element.prototype.lang; 764 /** @type {Node} */ Element.prototype.lastChild; 765 Element.prototype.localName; 766 Element.prototype.name; 767 Element.prototype.namespaceURI; 768 /** @type {Node} */ Element.prototype.nextSibling; 769 Element.prototype.nodeName; 770 Element.prototype.nodePrincipal; 771 /** @type {number} */ Element.prototype.nodeType; 772 Element.prototype.nodeValue; 773 /** @type {Document} */ Element.prototype.ownerDocument; 774 /** @type {Node} */ Element.prototype.parentNode; 775 Element.prototype.prefix; 776 /** @type {Node} */ Element.prototype.previousSibling; 777 /** @type {!CSSStyleDeclaration} */ Element.prototype.style; 778 /** 779 * @type {number} 780 * @implicitCast 781 */ 782 Element.prototype.tabIndex; 783 784 /** 785 * @type {string} 786 * @implicitCast 787 */ 788 Element.prototype.textContent; 789 /** @type {string} */ Element.prototype.title; 790 791 /** 792 * @param {Node} child 793 * @return {Node} appendedElement. 794 * @override 795 */ 796 Element.prototype.appendChild = function(child) {}; 797 798 /** 799 * @override 800 * @return {!Element} 801 */ 802 Element.prototype.cloneNode = function(deep) {}; 803 804 /** @override */ 805 Element.prototype.dispatchEvent = function(event) {}; 806 807 /** @return {undefined} */ 808 Element.prototype.blur = function() {}; 809 810 /** @return {undefined} */ 811 Element.prototype.click = function() {}; 812 813 /** @return {undefined} */ 814 Element.prototype.focus = function() {}; 815 816 /** 817 * @return {boolean} 818 * @override 819 * @nosideeffects 820 */ 821 Element.prototype.hasAttributes = function() {}; 822 823 /** 824 * @return {boolean} 825 * @override 826 * @nosideeffects 827 */ 828 Element.prototype.hasChildNodes = function() {}; 829 830 /** @override */ 831 Element.prototype.insertBefore = function(insertedNode, adjacentNode) {}; 832 833 /** 834 * @return {undefined} 835 * @override 836 */ 837 Element.prototype.normalize = function() {}; 838 839 /** 840 * @param {Node} removedNode 841 * @return {!Node} 842 * @override 843 */ 844 Element.prototype.removeChild = function(removedNode) {}; 845 846 /** 847 * @param {boolean=} opt_useCapture 848 * @override 849 */ 850 Element.prototype.removeEventListener = function(type, handler, opt_useCapture) 851 {}; 852 853 /** @override */ 854 Element.prototype.replaceChild = function(insertedNode, replacedNode) {}; 855 856 /** @type {number} */ 857 HTMLInputElement.prototype.selectionStart; 858 859 /** @type {number} */ 860 HTMLInputElement.prototype.selectionEnd; 861 862 /** 863 * @param {number} selectionStart 864 * @param {number} selectionEnd 865 * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#dom-textarea/input-setselectionrange 866 */ 867 HTMLInputElement.prototype.setSelectionRange = 868 function(selectionStart, selectionEnd) {}; 869 870 /** @type {number} */ 871 HTMLTextAreaElement.prototype.selectionStart; 872 873 /** @type {number} */ 874 HTMLTextAreaElement.prototype.selectionEnd; 875 876 /** 877 * @param {number} selectionStart 878 * @param {number} selectionEnd 879 * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#dom-textarea/input-setselectionrange 880 */ 881 HTMLTextAreaElement.prototype.setSelectionRange = 882 function(selectionStart, selectionEnd) {}; 883 884 /** @constructor */ 885 function Navigator() {} 886 887 /** 888 * @type {string} 889 * @see https://developer.mozilla.org/en/Navigator.appCodeName 890 */ 891 Navigator.prototype.appCodeName; 892 893 /** 894 * @type {string} 895 * @see https://developer.mozilla.org/en/Navigator.appVersion 896 */ 897 Navigator.prototype.appName; 898 899 /** 900 * @type {string} 901 * @see https://developer.mozilla.org/en/Navigator.appVersion 902 */ 903 Navigator.prototype.appVersion; 904 905 /** 906 * @type {string} 907 * @see https://developer.mozilla.org/en/Navigator.buildID 908 */ 909 Navigator.prototype.buildID; 910 911 /** 912 * @type {boolean} 913 * @see https://developer.mozilla.org/en/Navigator.cookieEnabled 914 */ 915 Navigator.prototype.cookieEnabled; 916 917 /** 918 * @type {string} 919 * @see https://developer.mozilla.org/en/Navigator.language 920 */ 921 Navigator.prototype.language; 922 923 /** 924 * @type {MimeTypeArray} 925 * @see https://developer.mozilla.org/en/Navigator.mimeTypes 926 */ 927 Navigator.prototype.mimeTypes; 928 929 /** 930 * @type {boolean} 931 * @see https://developer.mozilla.org/en/Navigator.onLine 932 */ 933 Navigator.prototype.onLine; 934 935 /** 936 * @type {string} 937 * @see https://developer.mozilla.org/en/Navigator.oscpu 938 */ 939 Navigator.prototype.oscpu; 940 941 /** 942 * @type {string} 943 * @see https://developer.mozilla.org/en/Navigator.platform 944 */ 945 Navigator.prototype.platform; 946 947 /** 948 * @type {PluginArray} 949 * @see https://developer.mozilla.org/en/Navigator.plugins 950 */ 951 Navigator.prototype.plugins; 952 953 /** 954 * @type {string} 955 * @see https://developer.mozilla.org/en/Navigator.product 956 */ 957 Navigator.prototype.product; 958 959 /** 960 * @type {string} 961 * @see https://developer.mozilla.org/en/Navigator.productSub 962 */ 963 Navigator.prototype.productSub; 964 965 /** 966 * @type {string} 967 * @see https://developer.mozilla.org/en/Navigator.securityPolicy 968 */ 969 Navigator.prototype.securityPolicy; 970 971 /** 972 * @param {string} url 973 * @param {ArrayBufferView|Blob|string|FormData=} opt_data 974 * @return {boolean} 975 * @see https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon 976 */ 977 Navigator.prototype.sendBeacon = function(url, opt_data) {}; 978 979 /** 980 * @type {string} 981 * @see https://developer.mozilla.org/en/Navigator.userAgent 982 */ 983 Navigator.prototype.userAgent; 984 985 /** 986 * @type {string} 987 * @see https://developer.mozilla.org/en/Navigator.vendor 988 */ 989 Navigator.prototype.vendor; 990 991 /** 992 * @type {string} 993 * @see https://developer.mozilla.org/en/Navigator.vendorSub 994 */ 995 Navigator.prototype.vendorSub; 996 997 /** 998 * @type {function(): boolean} 999 * @see https://developer.mozilla.org/en/Navigator.javaEnabled 1000 * @nosideeffects 1001 */ 1002 Navigator.prototype.javaEnabled = function() {}; 1003 1004 /** 1005 * @constructor 1006 * @see https://developer.mozilla.org/en/DOM/PluginArray 1007 */ 1008 function PluginArray() {} 1009 1010 /** @type {number} */ 1011 PluginArray.prototype.length; 1012 1013 /** 1014 * @param {number} index 1015 * @return {Plugin} 1016 */ 1017 PluginArray.prototype.item = function(index) {}; 1018 1019 /** 1020 * @param {string} name 1021 * @return {Plugin} 1022 */ 1023 PluginArray.prototype.namedItem = function(name) {}; 1024 1025 /** @param {boolean=} reloadDocuments */ 1026 PluginArray.prototype.refresh = function(reloadDocuments) {}; 1027 1028 /** @constructor */ 1029 function MimeTypeArray() {} 1030 1031 /** 1032 * @param {number} index 1033 * @return {MimeType} 1034 */ 1035 MimeTypeArray.prototype.item = function(index) {}; 1036 1037 /** 1038 * @type {number} 1039 * @see https://developer.mozilla.org/en/DOM/window.navigator.mimeTypes 1040 */ 1041 MimeTypeArray.prototype.length; 1042 1043 /** 1044 * @param {string} name 1045 * @return {MimeType} 1046 */ 1047 MimeTypeArray.prototype.namedItem = function(name) {}; 1048 1049 /** @constructor */ 1050 function MimeType() {} 1051 1052 /** @type {string} */ 1053 MimeType.prototype.description; 1054 1055 /** @type {Plugin} */ 1056 MimeType.prototype.enabledPlugin; 1057 1058 /** @type {string} */ 1059 MimeType.prototype.suffixes; 1060 1061 /** @type {string} */ 1062 MimeType.prototype.type; 1063 1064 /** @constructor */ 1065 function Plugin() {} 1066 1067 /** @type {string} */ 1068 Plugin.prototype.description; 1069 1070 /** @type {string} */ 1071 Plugin.prototype.filename; 1072 1073 /** @type {number} */ 1074 Plugin.prototype.length; 1075 1076 /** @type {string} */ 1077 Plugin.prototype.name; 1078 1079 /** @constructor */ 1080 function BoxObject() {} 1081 1082 /** @type {Element} */ 1083 BoxObject.prototype.element; 1084 1085 /** @type {number} */ 1086 BoxObject.prototype.screenX; 1087 1088 /** @type {number} */ 1089 BoxObject.prototype.screenY; 1090 1091 /** @type {number} */ 1092 BoxObject.prototype.x; 1093 1094 /** @type {number} */ 1095 BoxObject.prototype.y; 1096 1097 /** @type {number} */ 1098 BoxObject.prototype.width; 1099 1100 1101 /** 1102 * @type {number} 1103 * @see http://www.google.com/codesearch/p?hl=en#eksvcKKj5Ng/mozilla/dom/public/idl/html/nsIDOMNSHTMLImageElement.idl&q=naturalWidth 1104 */ 1105 HTMLImageElement.prototype.naturalWidth; 1106 1107 /** 1108 * @type {number} 1109 * @see http://www.google.com/codesearch/p?hl=en#eksvcKKj5Ng/mozilla/dom/public/idl/html/nsIDOMNSHTMLImageElement.idl&q=naturalHeight 1110 */ 1111 HTMLImageElement.prototype.naturalHeight; 1112 1113 1114 /** 1115 * @param {Element} element 1116 * @param {?string=} pseudoElt 1117 * @return {CSSStyleDeclaration} 1118 * @nosideeffects 1119 */ 1120 function getComputedStyle(element, pseudoElt) {}