1/* 2 * Copyright (C) 2006, 2007, 2008, 2009 Apple 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 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26module window { 27 28 interface [ 29 CheckDomainSecurity, 30 CustomDefineGetter, 31 CustomDefineSetter, 32 CustomDeleteProperty, 33 CustomGetOwnPropertySlot, 34 CustomGetPropertyNames, 35 CustomLookupGetter, 36 CustomLookupSetter, 37 CustomMarkFunction, 38 CustomNativeConverter, 39 CustomPutFunction, 40 EventTarget, 41 ExtendsDOMGlobalObject, 42 GenerateNativeConverter, 43 ReplaceableConstructor, 44 LegacyParent=JSDOMWindowBase 45 ] DOMWindow { 46 // DOM Level 0 47 attribute [Replaceable] Screen screen; 48 attribute [Replaceable, DoNotCheckDomainSecurityOnGet, JSCCustomGetter] History history; 49 attribute [Replaceable] BarInfo locationbar; 50 attribute [Replaceable] BarInfo menubar; 51 attribute [Replaceable] BarInfo personalbar; 52 attribute [Replaceable] BarInfo scrollbars; 53 attribute [Replaceable] BarInfo statusbar; 54 attribute [Replaceable] BarInfo toolbar; 55 attribute [Replaceable] Navigator navigator; 56 attribute [Replaceable] Navigator clientInformation; 57 readonly attribute Crypto crypto; 58 attribute [DoNotCheckDomainSecurity, JSCCustom, V8CustomSetter, V8DisallowShadowing, CPPCustom] Location location; 59 60 attribute [Replaceable, CustomGetter, V8CustomSetter] Event event; 61 62 63 DOMSelection getSelection(); 64 65 readonly attribute [CheckNodeSecurity] Element frameElement; 66 67 [DoNotCheckDomainSecurity] void focus(); 68 [DoNotCheckDomainSecurity] void blur(); 69 [DoNotCheckDomainSecurity, CallWith=ScriptExecutionContext] void close(); 70 71 void print(); 72 void stop(); 73 74 [Custom] DOMWindow open(in DOMString url, 75 in DOMString name, 76 in [Optional] DOMString options); 77 78 [Custom] DOMObject showModalDialog(in DOMString url, 79 in [Optional] DOMObject dialogArgs, 80 in [Optional] DOMString featureArgs); 81 82 void alert(in DOMString message); 83 boolean confirm(in DOMString message); 84 [ConvertNullStringTo=Null] DOMString prompt(in DOMString message, 85 in [ConvertUndefinedOrNullToNullString] DOMString defaultValue); 86 87 boolean find(in DOMString string, 88 in boolean caseSensitive, 89 in boolean backwards, 90 in boolean wrap, 91 in boolean wholeWord, 92 in boolean searchInFrames, 93 in boolean showDialog); 94 95 attribute [Replaceable] boolean offscreenBuffering; 96 97 attribute [Replaceable] long outerHeight; 98 attribute [Replaceable] long outerWidth; 99 attribute [Replaceable] long innerHeight; 100 attribute [Replaceable] long innerWidth; 101 attribute [Replaceable] long screenX; 102 attribute [Replaceable] long screenY; 103 attribute [Replaceable] long screenLeft; 104 attribute [Replaceable] long screenTop; 105 attribute [Replaceable] long scrollX; 106 attribute [Replaceable] long scrollY; 107 readonly attribute long pageXOffset; 108 readonly attribute long pageYOffset; 109 110 [RequiresAllArguments] void scrollBy(in long x, in long y); 111 [RequiresAllArguments] void scrollTo(in long x, in long y); 112 [RequiresAllArguments] void scroll(in long x, in long y); 113 [RequiresAllArguments] void moveBy(in float x, in float y); // FIXME: this should take longs not floats. 114 [RequiresAllArguments] void moveTo(in float x, in float y); // FIXME: this should take longs not floats. 115 [RequiresAllArguments] void resizeBy(in float x, in float y); // FIXME: this should take longs not floats. 116 [RequiresAllArguments] void resizeTo(in float width, in float height); // FIXME: this should take longs not floats. 117 118 readonly attribute [DoNotCheckDomainSecurity] boolean closed; 119 120 attribute [Replaceable, DoNotCheckDomainSecurityOnGet] unsigned long length; 121 122 attribute DOMString name; 123 124 attribute DOMString status; 125 attribute DOMString defaultStatus; 126#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT 127 // This attribute is an alias of defaultStatus and is necessary for legacy uses. 128 attribute DOMString defaultstatus; 129#endif 130 131 // Self referential attributes 132 attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow self; 133 readonly attribute [DoNotCheckDomainSecurity, V8DisallowShadowing] DOMWindow window; 134 attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow frames; 135 136 attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8CustomSetter] DOMWindow opener; 137 attribute [Replaceable, DoNotCheckDomainSecurityOnGet] DOMWindow parent; 138 attribute [Replaceable, DoNotCheckDomainSecurityOnGet, V8DisallowShadowing, V8ReadOnly] DOMWindow top; 139 140 // DOM Level 2 AbstractView Interface 141 readonly attribute Document document; 142 143 // CSSOM View Module 144 MediaQueryList matchMedia(in DOMString query); 145 146 // styleMedia has been removed from the CSSOM View specification. 147 readonly attribute StyleMedia styleMedia; 148 149 // DOM Level 2 Style Interface 150 CSSStyleDeclaration getComputedStyle(in Element element, 151 in [ConvertUndefinedOrNullToNullString] DOMString pseudoElement); 152 153 // WebKit extensions 154#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT 155 CSSRuleList getMatchedCSSRules(in Element element, 156 in DOMString pseudoElement); 157#endif 158 159 attribute [Replaceable] double devicePixelRatio; 160 161 WebKitPoint webkitConvertPointFromPageToNode(in Node node, in WebKitPoint p); 162 WebKitPoint webkitConvertPointFromNodeToPage(in Node node, in WebKitPoint p); 163 164#if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS 165 readonly attribute [EnabledAtRuntime] DOMApplicationCache applicationCache; 166#endif 167#if defined(ENABLE_DATABASE) && ENABLE_DATABASE 168 [EnabledAtRuntime, RequiresAllArguments=Raise] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback) 169 raises(DOMException); 170#endif 171#if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE 172 readonly attribute [EnabledAtRuntime] Storage sessionStorage 173 getter raises(DOMException); 174 readonly attribute [EnabledAtRuntime] Storage localStorage 175 getter raises(DOMException); 176#endif 177#if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS 178 readonly attribute [EnabledAtRuntime] NotificationCenter webkitNotifications; 179#endif 180#if defined(ENABLE_INDEXED_DATABASE) && ENABLE_INDEXED_DATABASE 181 readonly attribute [EnabledAtRuntime] IDBFactory webkitIndexedDB; 182 183 attribute [EnabledAtRuntime] IDBCursorConstructor webkitIDBCursor; 184 attribute [EnabledAtRuntime] IDBDatabaseConstructor webkitIDBDatabase; 185 attribute [EnabledAtRuntime] IDBDatabaseErrorConstructor webkitIDBDatabaseError; 186 attribute [EnabledAtRuntime] IDBDatabaseExceptionConstructor webkitIDBDatabaseException; 187 attribute [EnabledAtRuntime] IDBFactoryConstructor webkitIDBFactory; 188 attribute [EnabledAtRuntime] IDBIndexConstructor webkitIDBIndex; 189 attribute [EnabledAtRuntime] IDBKeyRangeConstructor webkitIDBKeyRange; 190 attribute [EnabledAtRuntime] IDBObjectStoreConstructor webkitIDBObjectStore; 191 attribute [EnabledAtRuntime] IDBRequestConstructor webkitIDBRequest; 192 attribute [EnabledAtRuntime] IDBTransactionConstructor webkitIDBTransaction; 193#endif 194#if defined(ENABLE_FILE_SYSTEM) && ENABLE_FILE_SYSTEM 195 const unsigned short TEMPORARY = 0; 196 const unsigned short PERSISTENT = 1; 197 [EnabledAtRuntime=FileSystem] void webkitRequestFileSystem(in unsigned short type, in long long size, in [Callback, Optional] FileSystemCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback); 198 [EnabledAtRuntime=FileSystem] void webkitResolveLocalFileSystemURL(in DOMString url, in [Callback, Optional] EntryCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback); 199 200 attribute [EnabledAtRuntime=FileSystem] WebKitFlagsConstructor WebKitFlags; 201#endif 202 203#if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS 204 // This is the interface orientation in degrees. Some examples are: 205 // 0 is straight up; -90 is when the device is rotated 90 clockwise; 206 // 90 is when rotated counter clockwise. 207 readonly attribute long orientation; 208#endif 209 210 attribute [Replaceable] Console console; 211 212 // cross-document messaging 213#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT 214 [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin) 215 raises(DOMException); 216#else 217 // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port. 218 [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin) 219 raises(DOMException); 220#endif 221 222#if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING 223 attribute [Replaceable] Performance performance; 224#endif 225 226 // Timers 227 [Custom] long setTimeout(in TimeoutHandler handler, in long timeout); 228 // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...); 229 // [Custom] long setTimeout(in DOMString code, in long timeout); 230 void clearTimeout(in long handle); 231 [Custom] long setInterval(in TimeoutHandler handler, in long timeout); 232 // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...); 233 // [Custom] long setInterval(in DOMString code, in long timeout); 234 void clearInterval(in long handle); 235 236#if defined(ENABLE_REQUEST_ANIMATION_FRAME) 237 // WebKit animation extensions 238 long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback, in Element element); 239 void webkitCancelRequestAnimationFrame(in long id); 240#endif 241 242 // Base64 243 DOMString atob(in [ConvertNullToNullString] DOMString string) 244 raises(DOMException); 245 DOMString btoa(in [ConvertNullToNullString] DOMString string) 246 raises(DOMException); 247 248 // Events 249 attribute EventListener onabort; 250 attribute EventListener onbeforeunload; 251 attribute EventListener onblur; 252 attribute EventListener oncanplay; 253 attribute EventListener oncanplaythrough; 254 attribute EventListener onchange; 255 attribute EventListener onclick; 256 attribute EventListener oncontextmenu; 257 attribute EventListener ondblclick; 258 attribute EventListener ondrag; 259 attribute EventListener ondragend; 260 attribute EventListener ondragenter; 261 attribute EventListener ondragleave; 262 attribute EventListener ondragover; 263 attribute EventListener ondragstart; 264 attribute EventListener ondrop; 265 attribute EventListener ondurationchange; 266 attribute EventListener onemptied; 267 attribute EventListener onended; 268 attribute EventListener onerror; 269 attribute EventListener onfocus; 270 attribute EventListener onhashchange; 271 attribute EventListener oninput; 272 attribute EventListener oninvalid; 273 attribute EventListener onkeydown; 274 attribute EventListener onkeypress; 275 attribute EventListener onkeyup; 276 attribute EventListener onload; 277 attribute EventListener onloadeddata; 278 attribute EventListener onloadedmetadata; 279 attribute EventListener onloadstart; 280 attribute EventListener onmessage; 281 attribute EventListener onmousedown; 282 attribute EventListener onmousemove; 283 attribute EventListener onmouseout; 284 attribute EventListener onmouseover; 285 attribute EventListener onmouseup; 286 attribute EventListener onmousewheel; 287 attribute EventListener onoffline; 288 attribute EventListener ononline; 289 attribute EventListener onpagehide; 290 attribute EventListener onpageshow; 291 attribute EventListener onpause; 292 attribute EventListener onplay; 293 attribute EventListener onplaying; 294 attribute EventListener onpopstate; 295 attribute EventListener onprogress; 296 attribute EventListener onratechange; 297 attribute EventListener onresize; 298 attribute EventListener onscroll; 299 attribute EventListener onseeked; 300 attribute EventListener onseeking; 301 attribute EventListener onselect; 302 attribute EventListener onstalled; 303 attribute EventListener onstorage; 304 attribute EventListener onsubmit; 305 attribute EventListener onsuspend; 306 attribute EventListener ontimeupdate; 307 attribute EventListener onunload; 308 attribute EventListener onvolumechange; 309 attribute EventListener onwaiting; 310 311 // Not implemented yet. 312 // attribute EventListener onafterprint; 313 // attribute EventListener onbeforeprint; 314 // attribute EventListener onreadystatechange; 315 // attribute EventListener onredo; 316 // attribute EventListener onshow; 317 // attribute EventListener onundo; 318 319 // Webkit extensions 320 attribute EventListener onreset; 321 attribute EventListener onsearch; 322 attribute EventListener onwebkitanimationend; 323 attribute EventListener onwebkitanimationiteration; 324 attribute EventListener onwebkitanimationstart; 325 attribute EventListener onwebkittransitionend; 326#if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS 327 attribute EventListener onorientationchange; 328#endif 329 attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchstart; 330 attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchmove; 331 attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchend; 332 attribute [Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel; 333 334 attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent; 335 attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondevicemotion; 336 attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent; 337 attribute [Conditional=DEVICE_ORIENTATION,EnabledAtRuntime] EventListener ondeviceorientation; 338 339 // EventTarget interface 340 [Custom] void addEventListener(in DOMString type, 341 in EventListener listener, 342 in boolean useCapture); 343 [Custom] void removeEventListener(in DOMString type, 344 in EventListener listener, 345 in boolean useCapture); 346 boolean dispatchEvent(in Event evt) 347 raises(EventException); 348 349 [V8Custom=DOMWindowNOP] void captureEvents(/*in long eventFlags*/); 350 [V8Custom=DOMWindowNOP] void releaseEvents(/*in long eventFlags*/); 351 352#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT 353 // Global constructors 354 attribute StyleSheetConstructor StyleSheet; 355 attribute CSSStyleSheetConstructor CSSStyleSheet; 356 357 attribute CSSValueConstructor CSSValue; 358 attribute CSSPrimitiveValueConstructor CSSPrimitiveValue; 359 attribute CSSValueListConstructor CSSValueList; 360 attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue; 361 362 attribute CSSRuleConstructor CSSRule; 363 attribute CSSCharsetRuleConstructor CSSCharsetRule; 364 attribute CSSFontFaceRuleConstructor CSSFontFaceRule; 365 attribute CSSImportRuleConstructor CSSImportRule; 366 attribute CSSMediaRuleConstructor CSSMediaRule; 367 attribute CSSPageRuleConstructor CSSPageRule; 368 attribute CSSStyleRuleConstructor CSSStyleRule; 369 370 attribute CSSStyleDeclarationConstructor CSSStyleDeclaration; 371 attribute MediaListConstructor MediaList; 372 attribute CounterConstructor Counter; 373 attribute CSSRuleListConstructor CSSRuleList; 374 attribute RectConstructor Rect; 375 attribute RGBColorConstructor RGBColor; 376 attribute StyleSheetListConstructor StyleSheetList; 377 378 // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification. 379 attribute DOMCoreExceptionConstructor DOMException; 380 attribute DOMStringListConstructor DOMStringList; 381// attribute NameListConstructor NameList; 382// attribute DOMImplementationListConstructor DOMImplementationList; 383// attribute DOMImplementationSourceConstructor DOMImplementationSource; 384 attribute DOMImplementationConstructor DOMImplementation; 385 attribute DOMSettableTokenListConstructor DOMSettableTokenList; 386 attribute DOMTokenListConstructor DOMTokenList; 387 attribute DocumentFragmentConstructor DocumentFragment; 388 attribute DocumentConstructor Document; 389 attribute NodeConstructor Node; 390 attribute NodeListConstructor NodeList; 391 attribute NamedNodeMapConstructor NamedNodeMap; 392 attribute CharacterDataConstructor CharacterData; 393 attribute AttrConstructor Attr; 394 attribute ElementConstructor Element; 395 attribute TextConstructor Text; 396 attribute CommentConstructor Comment; 397// attribute TypeInfoConstructor TypeInfo; 398// attribute UserDataHandlerConstructor UserDataHandler; 399// attribute DOMErrorConstructor DOMError; 400// attribute DOMErrorHandlerConstructor DOMErrorHandler 401// attribute DOMLocatorConstructor DOMLocator; 402// attribute DOMConfigurationConstructor DOMConfiguration; 403 attribute CDATASectionConstructor CDATASection; 404 attribute DocumentTypeConstructor DocumentType; 405 attribute NotationConstructor Notation; 406 attribute EntityConstructor Entity; 407 attribute EntityReferenceConstructor EntityReference; 408 attribute ProcessingInstructionConstructor ProcessingInstruction; 409 410 attribute HTMLDocumentConstructor HTMLDocument; 411 412 attribute HTMLElementConstructor HTMLElement; 413 attribute HTMLAnchorElementConstructor HTMLAnchorElement; 414 attribute HTMLAppletElementConstructor HTMLAppletElement; 415 attribute HTMLAreaElementConstructor HTMLAreaElement; 416 attribute HTMLBRElementConstructor HTMLBRElement; 417 attribute HTMLBaseElementConstructor HTMLBaseElement; 418 attribute HTMLBaseFontElementConstructor HTMLBaseFontElement; 419 attribute HTMLBlockquoteElementConstructor HTMLBlockquoteElement; 420 attribute HTMLBodyElementConstructor HTMLBodyElement; 421 attribute HTMLButtonElementConstructor HTMLButtonElement; 422 attribute HTMLCanvasElementConstructor HTMLCanvasElement; 423 attribute HTMLDListElementConstructor HTMLDListElement; 424 attribute HTMLDirectoryElementConstructor HTMLDirectoryElement; 425 attribute HTMLDivElementConstructor HTMLDivElement; 426 attribute HTMLEmbedElementConstructor HTMLEmbedElement; 427 attribute HTMLFieldSetElementConstructor HTMLFieldSetElement; 428 attribute HTMLFontElementConstructor HTMLFontElement; 429 attribute HTMLFormElementConstructor HTMLFormElement; 430 attribute HTMLFrameElementConstructor HTMLFrameElement; 431 attribute HTMLFrameSetElementConstructor HTMLFrameSetElement; 432 attribute HTMLHRElementConstructor HTMLHRElement; 433 attribute HTMLHeadElementConstructor HTMLHeadElement; 434 attribute HTMLHeadingElementConstructor HTMLHeadingElement; 435 attribute HTMLHtmlElementConstructor HTMLHtmlElement; 436 attribute HTMLIFrameElementConstructor HTMLIFrameElement; 437 attribute HTMLImageElementConstructor HTMLImageElement; 438 attribute HTMLInputElementConstructor HTMLInputElement; 439 attribute HTMLIsIndexElementConstructor HTMLIsIndexElement; 440 attribute HTMLKeygenElementConstructor HTMLKeygenElement; 441 attribute HTMLLIElementConstructor HTMLLIElement; 442 attribute HTMLLabelElementConstructor HTMLLabelElement; 443 attribute HTMLLegendElementConstructor HTMLLegendElement; 444 attribute HTMLLinkElementConstructor HTMLLinkElement; 445 attribute HTMLMapElementConstructor HTMLMapElement; 446 attribute HTMLMarqueeElementConstructor HTMLMarqueeElement; 447 attribute HTMLMenuElementConstructor HTMLMenuElement; 448 attribute HTMLMetaElementConstructor HTMLMetaElement; 449#if defined(ENABLE_METER_TAG) && ENABLE_METER_TAG 450 attribute HTMLMeterElementConstructor HTMLMeterElement; 451#endif 452 attribute HTMLModElementConstructor HTMLModElement; 453 attribute HTMLOListElementConstructor HTMLOListElement; 454 attribute HTMLObjectElementConstructor HTMLObjectElement; 455 attribute HTMLOptGroupElementConstructor HTMLOptGroupElement; 456 attribute HTMLOptionElementConstructor HTMLOptionElement; 457 attribute HTMLOutputElementConstructor HTMLOutputElement; 458 attribute HTMLParagraphElementConstructor HTMLParagraphElement; 459 attribute HTMLParamElementConstructor HTMLParamElement; 460 attribute HTMLPreElementConstructor HTMLPreElement; 461#if defined(ENABLE_PROGRESS_TAG) && ENABLE_PROGRESS_TAG 462 attribute HTMLProgressElementConstructor HTMLProgressElement; 463#endif 464 attribute HTMLQuoteElementConstructor HTMLQuoteElement; 465 attribute HTMLScriptElementConstructor HTMLScriptElement; 466 attribute HTMLSelectElementConstructor HTMLSelectElement; 467 attribute HTMLStyleElementConstructor HTMLStyleElement; 468 attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement; 469 attribute HTMLTableCellElementConstructor HTMLTableCellElement; 470 attribute HTMLTableColElementConstructor HTMLTableColElement; 471 attribute HTMLTableElementConstructor HTMLTableElement; 472 attribute HTMLTableRowElementConstructor HTMLTableRowElement; 473 attribute HTMLTableSectionElementConstructor HTMLTableSectionElement; 474 attribute HTMLTextAreaElementConstructor HTMLTextAreaElement; 475 attribute HTMLTitleElementConstructor HTMLTitleElement; 476 attribute HTMLUListElementConstructor HTMLUListElement; 477 478 attribute HTMLCollectionConstructor HTMLCollection; 479 attribute HTMLAllCollectionConstructor HTMLAllCollection; 480 481 attribute [CustomGetter] HTMLImageElementConstructor Image; // Usable with new operator 482 attribute [CustomGetter] HTMLOptionElementConstructor Option; // Usable with new operator 483 484 attribute CanvasPatternConstructor CanvasPattern; 485 attribute CanvasGradientConstructor CanvasGradient; 486 attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D; 487 attribute ImageDataConstructor ImageData; 488 attribute [Conditional=WEBGL] WebGLActiveInfoConstructor WebGLActiveInfo; 489 attribute [Conditional=WEBGL] WebGLBufferConstructor WebGLBuffer; 490 attribute [Conditional=WEBGL] WebGLFramebufferConstructor WebGLFramebuffer; 491 attribute [Conditional=WEBGL] WebGLProgramConstructor WebGLProgram; 492 attribute [Conditional=WEBGL] WebGLRenderbufferConstructor WebGLRenderbuffer; 493 attribute [Conditional=WEBGL] WebGLRenderingContextConstructor WebGLRenderingContext; 494 attribute [Conditional=WEBGL] WebGLShaderConstructor WebGLShader; 495 attribute [Conditional=WEBGL] WebGLTextureConstructor WebGLTexture; 496 attribute [Conditional=WEBGL] WebGLUniformLocationConstructor WebGLUniformLocation; 497 attribute TextMetricsConstructor TextMetrics; 498 499 attribute DOMStringMapConstructor DOMStringMap; 500 501 attribute [JSCCustomGetter] ArrayBufferConstructor ArrayBuffer; // Usable with new operator 502 attribute [JSCCustomGetter] Int8ArrayConstructor Int8Array; // Usable with new operator 503 attribute [JSCCustomGetter] Uint8ArrayConstructor Uint8Array; // Usable with new operator 504 attribute [JSCCustomGetter] Int16ArrayConstructor Int16Array; // Usable with new operator 505 attribute [JSCCustomGetter] Uint16ArrayConstructor Uint16Array; // Usable with new operator 506 attribute [JSCCustomGetter] Int32ArrayConstructor Int32Array; // Usable with new operator 507 attribute [JSCCustomGetter] Uint32ArrayConstructor Uint32Array; // Usable with new operator 508 attribute [JSCCustomGetter] Float32ArrayConstructor Float32Array; // Usable with new operator 509 attribute [JSCCustomGetter] DataViewConstructor DataView; // Usable with new operator 510 511 attribute [JSCCustomGetter,Conditional=WEB_AUDIO,EnabledAtRuntime] AudioContextConstructor webkitAudioContext; // Usable with new operator 512 attribute [Conditional=WEB_AUDIO] AudioPannerNodeConstructor webkitAudioPannerNode; // Needed for panning model constants 513 514 attribute EventConstructor Event; 515 attribute BeforeLoadEventConstructor BeforeLoadEvent; 516 attribute HashChangeEventConstructor HashChangeEvent; 517 attribute KeyboardEventConstructor KeyboardEvent; 518 attribute MouseEventConstructor MouseEvent; 519 attribute MutationEventConstructor MutationEvent; 520 attribute OverflowEventConstructor OverflowEvent; 521 attribute PageTransitionEventConstructor PageTransitionEvent; 522 attribute ProgressEventConstructor ProgressEvent; 523 attribute TextEventConstructor TextEvent; 524 attribute UIEventConstructor UIEvent; 525 attribute WebKitAnimationEventConstructor WebKitAnimationEvent; 526 attribute WebKitTransitionEventConstructor WebKitTransitionEvent; 527 attribute WheelEventConstructor WheelEvent; 528 attribute MessageEventConstructor MessageEvent; 529 attribute EventExceptionConstructor EventException; 530 531 attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule; 532 attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule; 533 534 attribute [JSCCustomGetter] WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator 535 536 attribute [JSCCustomGetter] WebKitPointConstructor WebKitPoint; // Usable with new the operator 537 538 attribute ClipboardConstructor Clipboard; 539 540 attribute FileConstructor File; 541 attribute FileListConstructor FileList; 542 attribute BlobConstructor Blob; 543 544 attribute NodeFilterConstructor NodeFilter; 545 attribute RangeConstructor Range; 546 attribute RangeExceptionConstructor RangeException; 547 548#if ENABLE_EVENTSOURCE 549 attribute [JSCCustomGetter] EventSourceConstructor EventSource; // Usable with new the operator 550#endif 551 552 // Mozilla has a separate XMLDocument object for XML documents. 553 // We just use Document for this. 554 attribute DocumentConstructor XMLDocument; 555 556 attribute DOMParserConstructor DOMParser; 557 attribute XMLSerializerConstructor XMLSerializer; 558 559 attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator 560 attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload; 561 attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException; 562 563 attribute [JSCCustomGetter,Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator 564 565#if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING 566 attribute MessagePortConstructor MessagePort; 567 attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel; // Usable with the new operator 568#endif 569 570#if defined(ENABLE_WORKERS) && ENABLE_WORKERS 571 attribute [JSCCustomGetter] WorkerConstructor Worker; // Usable with the new operator 572#endif 573 574#if defined(ENABLE_SHARED_WORKERS) && ENABLE_SHARED_WORKERS 575 attribute [JSCCustomGetter, EnabledAtRuntime] SharedWorkerConstructor SharedWorker; // Usable with the new operator 576#endif 577 578#if defined(ENABLE_WEB_SOCKETS) && ENABLE_WEB_SOCKETS 579 attribute [JSCCustomGetter,EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator 580#endif 581 582 attribute DOMPluginConstructor Plugin; 583 attribute DOMPluginArrayConstructor PluginArray; 584 585 attribute DOMMimeTypeConstructor MimeType; 586 attribute DOMMimeTypeArrayConstructor MimeTypeArray; 587 588 attribute ClientRectConstructor ClientRect; 589 attribute ClientRectListConstructor ClientRectList; 590 591#if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE 592 attribute StorageConstructor Storage; 593 attribute StorageEventConstructor StorageEvent; 594#endif 595 596 attribute [CustomGetter, Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor Audio; // Usable with the new operator 597 attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement; 598 attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement; 599 attribute [Conditional=VIDEO, EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement; 600 attribute [Conditional=VIDEO, EnabledAtRuntime] MediaErrorConstructor MediaError; 601 attribute [Conditional=VIDEO, EnabledAtRuntime] TimeRangesConstructor TimeRanges; 602 603#if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API 604 attribute WebKitAnimationConstructor WebKitAnimation; 605 attribute WebKitAnimationListConstructor WebKitAnimationList; 606#endif 607 608#if defined(ENABLE_XPATH) && ENABLE_XPATH 609 attribute XPathEvaluatorConstructor XPathEvaluator; 610 attribute XPathResultConstructor XPathResult; 611 attribute XPathExceptionConstructor XPathException; 612#endif 613 614#if defined(ENABLE_SVG) && ENABLE_SVG 615 // Expose all implemented SVG 1.1 interfaces, excluding the SVG MI interfaces: 616 // SVGAnimatedPathData, SVGAnimatedPoints, SVGExternalResourcesRequired, 617 // SVGFilterPrimitiveStandardAttributes, SVGFitToViewBox, SVGLangSpace, SVGLocatable 618 // SVGStylable, SVGTests, SVGTransformable, SVGURIReference, SVGZoomAndPan 619 attribute SVGAElementConstructor SVGAElement; 620 attribute SVGAngleConstructor SVGAngle; 621 attribute SVGAnimatedAngleConstructor SVGAnimatedAngle; 622 attribute SVGAnimatedBooleanConstructor SVGAnimatedBoolean; 623 attribute SVGAnimatedEnumerationConstructor SVGAnimatedEnumeration; 624 attribute SVGAnimatedIntegerConstructor SVGAnimatedInteger; 625 attribute SVGAnimatedLengthConstructor SVGAnimatedLength; 626 attribute SVGAnimatedLengthListConstructor SVGAnimatedLengthList; 627 attribute SVGAnimatedNumberConstructor SVGAnimatedNumber; 628 attribute SVGAnimatedNumberListConstructor SVGAnimatedNumberList; 629 attribute SVGAnimatedPreserveAspectRatioConstructor SVGAnimatedPreserveAspectRatio; 630 attribute SVGAnimatedRectConstructor SVGAnimatedRect; 631 attribute SVGAnimatedStringConstructor SVGAnimatedString; 632 attribute SVGAnimatedTransformListConstructor SVGAnimatedTransformList; 633 attribute SVGCircleElementConstructor SVGCircleElement; 634 attribute SVGClipPathElementConstructor SVGClipPathElement; 635 attribute SVGColorConstructor SVGColor; 636 attribute SVGCursorElementConstructor SVGCursorElement; 637// attribute SVGCSSRuleConstructor SVGCSSRule; 638 attribute SVGDefsElementConstructor SVGDefsElement; 639 attribute SVGDescElementConstructor SVGDescElement; 640 attribute SVGDocumentConstructor SVGDocument; 641 attribute SVGElementConstructor SVGElement; 642 attribute SVGElementInstanceConstructor SVGElementInstance; 643 attribute SVGElementInstanceListConstructor SVGElementInstanceList; 644 attribute SVGEllipseElementConstructor SVGEllipseElement; 645 attribute SVGExceptionConstructor SVGException; 646 attribute SVGGElementConstructor SVGGElement; 647 attribute SVGGradientElementConstructor SVGGradientElement; 648 attribute SVGImageElementConstructor SVGImageElement; 649 attribute SVGLengthConstructor SVGLength; 650 attribute SVGLengthListConstructor SVGLengthList; 651 attribute SVGLinearGradientElementConstructor SVGLinearGradientElement; 652 attribute SVGLineElementConstructor SVGLineElement; 653 attribute SVGMarkerElementConstructor SVGMarkerElement; 654 attribute SVGMaskElementConstructor SVGMaskElement; 655 attribute SVGMatrixConstructor SVGMatrix; 656 attribute SVGMetadataElementConstructor SVGMetadataElement; 657 attribute SVGNumberConstructor SVGNumber; 658 attribute SVGNumberListConstructor SVGNumberList; 659 attribute SVGPaintConstructor SVGPaint; 660 attribute SVGPathElementConstructor SVGPathElement; 661 attribute SVGPathSegConstructor SVGPathSeg; 662 attribute SVGPathSegArcAbsConstructor SVGPathSegArcAbs; 663 attribute SVGPathSegArcRelConstructor SVGPathSegArcRel; 664 attribute SVGPathSegClosePathConstructor SVGPathSegClosePath; 665 attribute SVGPathSegCurvetoCubicAbsConstructor SVGPathSegCurvetoCubicAbs; 666 attribute SVGPathSegCurvetoCubicRelConstructor SVGPathSegCurvetoCubicRel; 667 attribute SVGPathSegCurvetoCubicSmoothAbsConstructor SVGPathSegCurvetoCubicSmoothAbs; 668 attribute SVGPathSegCurvetoCubicSmoothRelConstructor SVGPathSegCurvetoCubicSmoothRel; 669 attribute SVGPathSegCurvetoQuadraticAbsConstructor SVGPathSegCurvetoQuadraticAbs; 670 attribute SVGPathSegCurvetoQuadraticRelConstructor SVGPathSegCurvetoQuadraticRel; 671 attribute SVGPathSegCurvetoQuadraticSmoothAbsConstructor SVGPathSegCurvetoQuadraticSmoothAbs; 672 attribute SVGPathSegCurvetoQuadraticSmoothRelConstructor SVGPathSegCurvetoQuadraticSmoothRel; 673 attribute SVGPathSegLinetoAbsConstructor SVGPathSegLinetoAbs; 674 attribute SVGPathSegLinetoHorizontalAbsConstructor SVGPathSegLinetoHorizontalAbs; 675 attribute SVGPathSegLinetoHorizontalRelConstructor SVGPathSegLinetoHorizontalRel; 676 attribute SVGPathSegLinetoRelConstructor SVGPathSegLinetoRel; 677 attribute SVGPathSegLinetoVerticalAbsConstructor SVGPathSegLinetoVerticalAbs; 678 attribute SVGPathSegLinetoVerticalRelConstructor SVGPathSegLinetoVerticalRel; 679 attribute SVGPathSegListConstructor SVGPathSegList; 680 attribute SVGPathSegMovetoAbsConstructor SVGPathSegMovetoAbs; 681 attribute SVGPathSegMovetoRelConstructor SVGPathSegMovetoRel; 682 attribute SVGPatternElementConstructor SVGPatternElement; 683 attribute SVGPointConstructor SVGPoint; 684 attribute SVGPointListConstructor SVGPointList; 685 attribute SVGPolygonElementConstructor SVGPolygonElement; 686 attribute SVGPolylineElementConstructor SVGPolylineElement; 687 attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio; 688 attribute SVGRadialGradientElementConstructor SVGRadialGradientElement; 689 attribute SVGRectConstructor SVGRect; 690 attribute SVGRectElementConstructor SVGRectElement; 691 attribute SVGRenderingIntentConstructor SVGRenderingIntent; 692 attribute SVGScriptElementConstructor SVGScriptElement; 693 attribute SVGStopElementConstructor SVGStopElement; 694 attribute SVGStringListConstructor SVGStringList; 695 attribute SVGStyleElementConstructor SVGStyleElement; 696 attribute SVGSVGElementConstructor SVGSVGElement; 697 attribute SVGSwitchElementConstructor SVGSwitchElement; 698 attribute SVGSymbolElementConstructor SVGSymbolElement; 699 attribute SVGTextContentElementConstructor SVGTextContentElement; 700 attribute SVGTextElementConstructor SVGTextElement; 701 attribute SVGTextPathElementConstructor SVGTextPathElement; 702 attribute SVGTextPositioningElementConstructor SVGTextPositioningElement; 703 attribute SVGTitleElementConstructor SVGTitleElement; 704 attribute SVGTransformConstructor SVGTransform; 705 attribute SVGTransformListConstructor SVGTransformList; 706 attribute SVGTRefElementConstructor SVGTRefElement; 707 attribute SVGTSpanElementConstructor SVGTSpanElement; 708 attribute SVGUnitTypesConstructor SVGUnitTypes; 709 attribute SVGUseElementConstructor SVGUseElement; 710 attribute SVGViewElementConstructor SVGViewElement; 711// attribute SVGViewSpecConstructor SVGViewSpec; 712 attribute SVGZoomEventConstructor SVGZoomEvent; 713 714#if defined(ENABLE_SVG_ANIMATION) && ENABLE_SVG_ANIMATION 715 attribute SVGAnimateColorElementConstructor SVGAnimateColorElement; 716 attribute SVGAnimateElementConstructor SVGAnimateElement; 717// attribute SVGAnimateMotionElementConstructor SVGAnimateMotionElement; 718 attribute SVGAnimateTransformElementConstructor SVGAnimateTransformElement; 719// attribute SVGMPathElementConstructor SVGMPathElement; 720 attribute SVGSetElementConstructor SVGSetElement; 721#endif 722 723#if defined(ENABLE_SVG_FONTS) && ENABLE_SVG_FONTS 724// attribute SVGAltGlyphDefElementConstructor SVGAltGlyphDefElement; 725 attribute SVGAltGlyphElementConstructor SVGAltGlyphElement; 726// attribute SVGAltGlyphItemElementConstructor SVGAltGlyphItemElement; 727// attribute SVGDefinitionSrcElementConstructor SVGDefinitionSrcElement; 728 attribute SVGFontElementConstructor SVGFontElement; 729 attribute SVGFontFaceElementConstructor SVGFontFaceElement; 730 attribute SVGFontFaceFormatElementConstructor SVGFontFaceFormatElement; 731 attribute SVGFontFaceNameElementConstructor SVGFontFaceNameElement; 732 attribute SVGFontFaceSrcElementConstructor SVGFontFaceSrcElement; 733 attribute SVGFontFaceUriElementConstructor SVGFontFaceUriElement; 734 attribute SVGGlyphElementConstructor SVGGlyphElement; 735// attribute SVGGlyphRefElementConstructor SVGGlyphRefElement; 736 attribute SVGHKernElementConstructor SVGHKernElement; 737 attribute SVGMissingGlyphElementConstructor SVGMissingGlyphElement; 738 attribute SVGVKernElementConstructor SVGVKernElement; 739#endif 740 741#if defined(ENABLE_SVG_FOREIGN_OBJECT) && ENABLE_SVG_FOREIGN_OBJECT 742 attribute SVGForeignObjectElementConstructor SVGForeignObjectElement; 743#endif 744 745#if defined(ENABLE_FILTERS) && ENABLE_FILTERS 746 attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement; 747 attribute SVGFEBlendElementConstructor SVGFEBlendElement; 748 attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement; 749 attribute SVGFEComponentTransferElementConstructor SVGFEComponentTransferElement; 750 attribute SVGFECompositeElementConstructor SVGFECompositeElement; 751 attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement; 752 attribute SVGFEDiffuseLightingElementConstructor SVGFEDiffuseLightingElement; 753 attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement; 754 attribute SVGFEDistantLightElementConstructor SVGFEDistantLightElement; 755 attribute SVGFEDropShadowElementConstructor SVGFEDropShadowElement; 756 attribute SVGFEFloodElementConstructor SVGFEFloodElement; 757 attribute SVGFEFuncAElementConstructor SVGFEFuncAElement; 758 attribute SVGFEFuncBElementConstructor SVGFEFuncBElement; 759 attribute SVGFEFuncGElementConstructor SVGFEFuncGElement; 760 attribute SVGFEFuncRElementConstructor SVGFEFuncRElement; 761 attribute SVGFEGaussianBlurElementConstructor SVGFEGaussianBlurElement; 762 attribute SVGFEImageElementConstructor SVGFEImageElement; 763 attribute SVGFEMergeElementConstructor SVGFEMergeElement; 764 attribute SVGFEMergeNodeElementConstructor SVGFEMergeNodeElement; 765 attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement; 766 attribute SVGFEOffsetElementConstructor SVGFEOffsetElement; 767 attribute SVGFEPointLightElementConstructor SVGFEPointLightElement; 768 attribute SVGFESpecularLightingElementConstructor SVGFESpecularLightingElement; 769 attribute SVGFESpotLightElementConstructor SVGFESpotLightElement; 770 attribute SVGFETileElementConstructor SVGFETileElement; 771 attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement; 772 attribute SVGFilterElementConstructor SVGFilterElement; 773#endif 774#endif 775 776 attribute [Conditional=DATABASE] SQLExceptionConstructor SQLException; 777 778 attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent; 779 780 attribute DOMFormDataConstructor FormData; 781 782 attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError; 783 attribute [Conditional=BLOB] FileReaderConstructor FileReader; 784 785 attribute [Conditional=BLOB] WebKitBlobBuilderConstructor WebKitBlobBuilder; 786 787 readonly attribute [Conditional=BLOB] DOMURL webkitURL; 788 789#if defined(ENABLE_QUOTA) && ENABLE_QUOTA 790 readonly attribute [EnabledAtRuntime=Quota] StorageInfo webkitStorageInfo; 791#endif 792 793#endif // defined(LANGUAGE_JAVASCRIPT) 794 795#if defined(V8_BINDING) && V8_BINDING 796 // window.toString() requires special handling in V8 797 [V8DoNotCheckSignature, DoNotCheckDomainSecurity, Custom, DontEnum] DOMString toString(); 798#endif // defined(V8_BINDING) 799 }; 800 801} 802 803