Bindings.conf (53639B)
1 # -*- Mode:Python; tab-width:8; indent-tabs-mode:nil -*- */ 2 # vim: set ts=8 sts=4 et sw=4 tw=80: */ 3 # This Source Code Form is subject to the terms of the Mozilla Public 4 # License, v. 2.0. If a copy of the MPL was not distributed with this 5 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 7 # DOM Bindings Configuration. 8 # 9 # The WebIDL interfaces are defined in dom/webidl. For interfaces requiring 10 # special handling, there are corresponding entries in the configuration table 11 # below. The configuration table maps each interface name to a |descriptor|. 12 # 13 # Valid fields for all descriptors: 14 # * nativeType - The native type (concrete class or XPCOM interface) that 15 # instances of this interface will unwrap to. If not 16 # specified, defaults to 'nsIDOM' followed by the interface 17 # name for external interfaces and 18 # 'mozilla::dom::InterfaceName' for everything else. 19 # * headerFile - The file in which the nativeType is declared (defaults 20 # to an educated guess). 21 # * concrete - Indicates whether there exist JS objects with this interface as 22 # their primary interface (and hence whose prototype is this 23 # interface's prototype object). Always False for callback 24 # interfaces. Defaults to True for leaf interfaces and 25 # interfaces with constructors, false otherwise. 26 # * notflattened - The native type does not have nsIClassInfo, so when 27 # wrapping it the right IID needs to be passed in. 28 # Only relevant for callback interfaces. 29 # * register - True if this binding should be registered. Defaults to true. 30 # * wrapperCache: True if this object is a wrapper cache. Objects that are 31 # not can only be returned from a limited set of methods, 32 # cannot be prefable, and must ensure that they disallow 33 # XPConnect wrapping. Always false for callback interfaces. 34 # Defaults to true for non-callback descriptors. 35 # * implicitJSContext - Llist of names of attributes and methods specified in 36 # the .webidl file that require a JSContext as the first 37 # argument. 38 # 39 # The value for an interface is a dictionary which specifies the 40 # descriptor to use when generating that interface's binding. 41 42 import buildconfig 43 44 DOMInterfaces = { 45 46 'AbortSignal': { 47 'implicitJSContext': [ 'throwIfAborted' ], 48 'concrete': True, 49 }, 50 51 'AnonymousContent': { 52 'wrapperCache': False 53 }, 54 55 'AudioBuffer': { 56 'implicitJSContext': [ 'copyToChannel' ], 57 }, 58 59 'AudioBufferSourceNode': { 60 'implicitJSContext': [ 'buffer' ], 61 }, 62 63 'AudioWorkletGlobalScope': { 64 'implicitJSContext': [ 'registerProcessor' ], 65 }, 66 67 'BarProp': { 68 'headerFile': 'mozilla/dom/BarProps.h', 69 }, 70 71 'BaseAudioContext': { 72 'nativeType': 'mozilla::dom::AudioContext', 73 }, 74 75 'BatteryManager': { 76 'nativeType': 'mozilla::dom::battery::BatteryManager', 77 'headerFile': 'BatteryManager.h' 78 }, 79 80 'Blob': { 81 'implicitJSContext': [ 'stream' ], 82 }, 83 84 'BrowsingContext': { 85 'concrete': True, 86 }, 87 88 'Cache': { 89 'implicitJSContext': [ 'add', 'addAll', 'match', 'matchAll', 'put', 90 'delete', 'keys' ], 91 'nativeType': 'mozilla::dom::cache::Cache', 92 }, 93 94 'CacheStorage': { 95 'implicitJSContext': [ 'match' ], 96 'nativeType': 'mozilla::dom::cache::CacheStorage', 97 }, 98 99 'CanvasRenderingContext2D': { 100 'implicitJSContext': [ 101 'createImageData', 'getImageData', 'isPointInPath', 'isPointInStroke' 102 ], 103 }, 104 105 'CaretPosition' : { 106 'nativeType': 'nsDOMCaretPosition', 107 }, 108 109 'ChannelWrapper': { 110 'nativeType': 'mozilla::extensions::ChannelWrapper', 111 }, 112 113 'Client' : { 114 'concrete': True, 115 }, 116 117 'ClonedErrorHolder': { 118 'wrapperCache': False 119 }, 120 121 'console': { 122 'nativeType': 'mozilla::dom::Console', 123 }, 124 125 'ConsoleInstance': { 126 'implicitJSContext': ['clear', 'count', 'countReset', 'groupEnd', 'time', 'timeEnd'], 127 }, 128 129 'ConvolverNode': { 130 'implicitJSContext': [ 'buffer' ], 131 }, 132 133 'Credential' : { 134 'concrete': True, 135 }, 136 137 'Crypto' : { 138 'headerFile': 'Crypto.h' 139 }, 140 141 'CSSStyleProperties': { 142 'nativeType': 'nsDOMCSSDeclaration' 143 }, 144 145 'CSSColorValue': { 146 'concrete': True, 147 }, 148 149 'CSSPageDescriptors': { 150 'nativeType': 'mozilla::dom::CSSPageRuleDeclaration', 151 'headerFile': 'mozilla/dom/CSSPageRule.h', 152 }, 153 154 'CSSConditionRule': { 155 'nativeType': 'mozilla::css::ConditionRule', 156 'headerFile': 'mozilla/css/GroupRule.h', 157 }, 158 159 'CSSGroupingRule': { 160 'nativeType': 'mozilla::css::GroupRule', 161 }, 162 163 'CSSNumericValue': { 164 'concrete': True, 165 }, 166 167 'CSSRule': { 168 'nativeType': 'mozilla::css::Rule' 169 }, 170 171 'CSSStyleDeclaration': { 172 'nativeType': 'nsICSSDeclaration', 173 # Concrete because of the font-face mess. 174 'concrete': True, 175 }, 176 177 'CSSStyleSheet': { 178 'nativeType': 'mozilla::StyleSheet', 179 }, 180 181 'CSSStyleValue': { 182 'concrete': True, 183 }, 184 185 'CSSPositionTryDescriptors': { 186 'nativeType': 'mozilla::dom::CSSPositionTryRuleDeclaration', 187 'headerFile': 'mozilla/dom/CSSPositionTryRule.h', 188 }, 189 190 'CSSTransformComponent': { 191 'concrete': True, 192 }, 193 194 'CustomElementRegistry': { 195 'implicitJSContext': ['define', 'getName'], 196 }, 197 198 'DebuggerNotification': { 199 'concrete': True, 200 }, 201 'CallbackDebuggerNotification': { 202 'concrete': True, 203 }, 204 205 'DedicatedWorkerGlobalScope': { 206 'headerFile': 'mozilla/dom/WorkerScope.h', 207 }, 208 209 'DeviceAcceleration': { 210 'headerFile': 'mozilla/dom/DeviceMotionEvent.h', 211 }, 212 213 'DeviceRotationRate': { 214 'headerFile': 'mozilla/dom/DeviceMotionEvent.h', 215 }, 216 217 'DominatorTree': { 218 'nativeType': 'mozilla::devtools::DominatorTree' 219 }, 220 221 'DOMException': { 222 'implicitJSContext': [ 'filename', 'lineNumber', 'columnNumber', 'stack' ], 223 }, 224 225 'DOMMatrixReadOnly': { 226 'headerFile': 'mozilla/dom/DOMMatrix.h', 227 }, 228 229 'DOMPointReadOnly': { 230 'headerFile': 'mozilla/dom/DOMPoint.h', 231 }, 232 233 'DOMRectList': { 234 'headerFile': 'mozilla/dom/DOMRect.h', 235 }, 236 237 'DOMRectReadOnly': { 238 'headerFile': 'mozilla/dom/DOMRect.h', 239 }, 240 241 'DOMStringMap': { 242 'nativeType': 'nsDOMStringMap' 243 }, 244 245 'DOMTokenList': { 246 'nativeType': 'nsDOMTokenList', 247 }, 248 249 'Element': { 250 'concrete': True, 251 }, 252 253 'Event': { 254 'implicitJSContext': [ 'preventDefault' ], 255 }, 256 257 'EventTarget': { 258 'jsImplParent': 'mozilla::DOMEventTargetHelper', 259 }, 260 261 'Exception': { 262 'headerFile': 'mozilla/dom/DOMException.h', 263 'implicitJSContext': [ '__stringifier', 'filename', 'lineNumber', 'columnNumber', 'stack' ], 264 }, 265 266 'ExtendableEvent': { 267 'headerFile': 'mozilla/dom/ServiceWorkerEvents.h', 268 'implicitJSContext': [ 'waitUntil' ], 269 }, 270 271 'ExtendableMessageEvent': { 272 'headerFile': 'mozilla/dom/ServiceWorkerEvents.h', 273 }, 274 275 'FetchEvent': { 276 'headerFile': 'ServiceWorkerEvents.h', 277 'implicitJSContext': [ 'respondWith' ], 278 }, 279 280 'FileReader': { 281 'implicitJSContext': [ 'readAsArrayBuffer' ], 282 }, 283 284 'FileReaderSync': { 285 'wrapperCache': False, 286 }, 287 288 'FileSystemEntry': { 289 'concrete': True, 290 }, 291 292 'FileSystemHandle': { 293 'concrete': True, 294 }, 295 296 'FluentBundle': { 297 'nativeType': 'mozilla::intl::FluentBundle', 298 }, 299 300 'FluentBundleAsyncIterator': { 301 'headerFile': 'mozilla/intl/L10nRegistry.h', 302 'nativeType': 'mozilla::intl::FluentBundleAsyncIterator', 303 }, 304 305 'FluentBundleIterator': { 306 'headerFile': 'mozilla/intl/L10nRegistry.h', 307 'nativeType': 'mozilla::intl::FluentBundleIterator', 308 }, 309 310 'FluentPattern': { 311 'headerFile': 'mozilla/intl/FluentBundle.h', 312 'nativeType': 'mozilla::intl::FluentPattern', 313 }, 314 315 'FluentResource': { 316 'headerFile': 'mozilla/intl/FluentResource.h', 317 'nativeType': 'mozilla::intl::FluentResource', 318 }, 319 320 'FontFaceSet': { 321 'implicitJSContext': [ 'load' ], 322 }, 323 324 'FontFaceSetIterator': { 325 'wrapperCache': False, 326 }, 327 328 'FrameLoader': { 329 'nativeType': 'nsFrameLoader', 330 }, 331 332 'HeapSnapshot': { 333 'nativeType': 'mozilla::devtools::HeapSnapshot' 334 }, 335 336 'History': { 337 'implicitJSContext': [ 'go' ], 338 'headerFile': 'nsHistory.h', 339 'nativeType': 'nsHistory' 340 }, 341 342 'HTMLBaseElement': { 343 'nativeType': 'mozilla::dom::HTMLSharedElement' 344 }, 345 346 'HTMLCollection': { 347 'nativeType': 'nsIHTMLCollection', 348 # nsContentList.h pulls in nsIHTMLCollection.h 349 'headerFile': 'nsContentList.h', 350 'concrete': True, 351 }, 352 353 'HTMLDirectoryElement': { 354 'nativeType': 'mozilla::dom::HTMLSharedElement' 355 }, 356 357 'HTMLDListElement': { 358 'nativeType' : 'mozilla::dom::HTMLSharedListElement' 359 }, 360 361 'HTMLDocument': { 362 'nativeType': 'nsHTMLDocument', 363 'concrete': True, 364 }, 365 366 'HTMLElement': { 367 'nativeType': 'nsGenericHTMLElement', 368 }, 369 370 'HTMLHeadElement': { 371 'nativeType': 'mozilla::dom::HTMLSharedElement' 372 }, 373 374 'HTMLHtmlElement': { 375 'nativeType': 'mozilla::dom::HTMLSharedElement' 376 }, 377 378 'HTMLOListElement': { 379 'nativeType' : 'mozilla::dom::HTMLSharedListElement' 380 }, 381 382 'HTMLParamElement': { 383 'nativeType': 'mozilla::dom::HTMLSharedElement' 384 }, 385 386 'HTMLQuoteElement': { 387 'nativeType': 'mozilla::dom::HTMLSharedElement' 388 }, 389 390 'HTMLUListElement': { 391 'nativeType' : 'mozilla::dom::HTMLSharedListElement' 392 }, 393 394 'IDBCursor': { 395 'implicitJSContext': [ 'delete' ], 396 'concrete': True, 397 }, 398 399 'IDBCursorWithValue': { 400 'nativeType': 'mozilla::dom::IDBCursor', 401 }, 402 403 'IDBDatabase': { 404 'implicitJSContext': [ 'transaction' ], 405 }, 406 407 'IDBFactory': { 408 'implicitJSContext': [ 'open', 'deleteDatabase', 'databases', 409 'openForPrincipal', 'deleteForPrincipal' ], 410 }, 411 412 'IDBKeyRange': { 413 'wrapperCache': False, 414 'concrete': True, 415 }, 416 417 'IDBObjectStore': { 418 'implicitJSContext': [ 'clear' ], 419 }, 420 421 'IDBOpenDBRequest': { 422 'headerFile': 'IDBRequest.h' 423 }, 424 425 'IDBRequest': { 426 'concrete': True, 427 }, 428 429 'IDBVersionChangeEvent': { 430 'headerFile': 'IDBEvents.h', 431 }, 432 433 'IOUtils': { 434 'nativeType': 'mozilla::IOUtils', 435 'headerFile': 'mozilla/IOUtils.h', 436 }, 437 438 'InspectorFontFace': { 439 'wrapperCache': False, 440 }, 441 442 'InspectorCSSParser': { 443 'wrapperCache': False, 444 }, 445 446 'IntersectionObserver': { 447 'nativeType': 'mozilla::dom::DOMIntersectionObserver', 448 }, 449 450 'IntersectionObserverEntry': { 451 'nativeType': 'mozilla::dom::DOMIntersectionObserverEntry', 452 'headerFile': 'DOMIntersectionObserver.h', 453 }, 454 455 'KeyEvent' : { 456 'concrete': False, 457 }, 458 459 'L10nFileSource': { 460 'headerFile': 'mozilla/intl/FileSource.h', 461 'nativeType': 'mozilla::intl::L10nFileSource', 462 }, 463 464 'L10nRegistry': { 465 'nativeType': 'mozilla::intl::L10nRegistry', 466 }, 467 468 'LegacyMozTCPSocket': { 469 'headerFile': 'TCPSocket.h', 470 'wrapperCache': False, 471 }, 472 473 'Localization': { 474 'nativeType': 'mozilla::intl::Localization', 475 }, 476 477 'Location': { 478 'implicitJSContext': [ 'reload' ], 479 }, 480 481 'MatchGlob': { 482 'nativeType': 'mozilla::extensions::MatchGlob', 483 }, 484 485 'MatchPattern': { 486 'nativeType': 'mozilla::extensions::MatchPattern', 487 }, 488 489 'MatchPatternSet': { 490 'headerFile': 'mozilla/extensions/MatchPattern.h', 491 'nativeType': 'mozilla::extensions::MatchPatternSet', 492 }, 493 494 'MediaStream': { 495 'headerFile': 'DOMMediaStream.h', 496 'nativeType': 'mozilla::DOMMediaStream' 497 }, 498 499 'MediaRecorder': { 500 'headerFile': 'MediaRecorder.h', 501 }, 502 503 'MimeType': { 504 'headerFile' : 'nsMimeTypeArray.h', 505 'nativeType': 'nsMimeType', 506 }, 507 508 'MimeTypeArray': { 509 'nativeType': 'nsMimeTypeArray', 510 }, 511 512 'MozCanvasPrintState': { 513 'headerFile': 'mozilla/dom/HTMLCanvasElement.h', 514 'nativeType': 'mozilla::dom::HTMLCanvasPrintState', 515 }, 516 517 'MozChannel': { 518 'nativeType': 'nsIChannel', 519 'notflattened': True 520 }, 521 522 'MozDocumentMatcher': { 523 'nativeType': 'mozilla::extensions::MozDocumentMatcher', 524 'headerFile': 'mozilla/extensions/WebExtensionContentScript.h', 525 }, 526 527 'MozDocumentObserver': { 528 'nativeType': 'mozilla::extensions::DocumentObserver', 529 }, 530 531 'MozSharedMap': { 532 'nativeType': 'mozilla::dom::ipc::SharedMap', 533 'concrete': True, 534 }, 535 536 'MozWritableSharedMap': { 537 'headerFile': 'mozilla/dom/ipc/SharedMap.h', 538 'nativeType': 'mozilla::dom::ipc::WritableSharedMap', 539 }, 540 541 'MozSharedMapChangeEvent': { 542 'nativeType': 'mozilla::dom::ipc::SharedMapChangeEvent', 543 }, 544 545 'MozStorageAsyncStatementParams': { 546 'headerFile': 'mozilla/storage/mozStorageAsyncStatementParams.h', 547 'nativeType': 'mozilla::storage::AsyncStatementParams', 548 }, 549 550 'MozStorageStatementParams': { 551 'headerFile': 'mozilla/storage/mozStorageStatementParams.h', 552 'nativeType': 'mozilla::storage::StatementParams', 553 }, 554 555 'MozStorageStatementRow': { 556 'headerFile': 'mozilla/storage/mozStorageStatementRow.h', 557 'nativeType': 'mozilla::storage::StatementRow', 558 }, 559 560 'MozQueryInterface': { 561 'wrapperCache': False, 562 }, 563 564 'MutationObserver': { 565 'nativeType': 'nsDOMMutationObserver', 566 }, 567 568 'MutationRecord': { 569 'nativeType': 'nsDOMMutationRecord', 570 'headerFile': 'nsDOMMutationObserver.h', 571 }, 572 573 'NamedNodeMap': { 574 'nativeType': 'nsDOMAttributeMap', 575 }, 576 577 'NetworkInformation': { 578 'nativeType': 'mozilla::dom::network::Connection', 579 }, 580 581 'Node': { 582 'nativeType': 'nsINode', 583 # Some WebIDL APIs that return Node use nsIContent internally (which doesn't 584 # have a direct correspondence with any WebIDL interface), so we need to use 585 # nsIContent.h so that the compiler knows nsIContent and nsINode are related 586 # by inheritance. 587 'headerFile': 'nsIContent.h', 588 }, 589 590 'NodeIterator': { 591 'wrapperCache': False, 592 }, 593 594 'NodeList': { 595 'nativeType': 'nsINodeList', 596 'concrete': True, 597 }, 598 599 'OfflineAudioContext': { 600 'nativeType': 'mozilla::dom::AudioContext', 601 }, 602 603 'OffscreenCanvasRenderingContext2D': { 604 'implicitJSContext': [ 605 'createImageData', 'getImageData', 'isPointInPath', 'isPointInStroke' 606 ], 607 }, 608 609 'PaintRequestList': { 610 'headerFile': 'mozilla/dom/PaintRequest.h', 611 }, 612 613 'Path2D': { 614 'nativeType': 'mozilla::dom::CanvasPath', 615 'headerFile': 'CanvasPath.h' 616 }, 617 618 'PathUtils': { 619 'nativeType': 'mozilla::PathUtils', 620 'headerFile': 'mozilla/PathUtils.h', 621 }, 622 623 'Performance' : { 624 'implicitJSContext': [ 625 'mark' 626 ], 627 }, 628 629 'PerformanceResourceTiming' : { 630 'concrete': True, 631 }, 632 633 'TaskController' : { 634 'nativeType' : 'mozilla::dom::WebTaskController', 635 'headerFile' : 'mozilla/dom/WebTaskController.h' 636 }, 637 638 'TransformStreamDefaultController': { 639 'implicitJSContext': ['terminate'], 640 }, 641 642 'Plugin': { 643 'headerFile' : 'nsPluginArray.h', 644 'nativeType': 'nsPluginElement', 645 }, 646 647 'PluginArray': { 648 'nativeType': 'nsPluginArray', 649 }, 650 651 'PromiseNativeHandler': { 652 'wrapperCache': False, 653 }, 654 655 'PushEvent': { 656 'headerFile': 'ServiceWorkerEvents.h', 657 }, 658 659 'PushMessageData': { 660 'headerFile': 'ServiceWorkerEvents.h', 661 }, 662 663 'Range': { 664 'nativeType': 'nsRange', 665 }, 666 667 # Bug 1734174: We should validate ReadableStream usage of implicitJSContext. 668 'ReadableByteStreamController': { 669 'implicitJSContext': ['byobRequest', 'close', 'enqueue'], 670 }, 671 672 'ReadableStream': { 673 'implicitJSContext': ['tee'], 674 }, 675 676 'ReadableStreamBYOBRequest': { 677 'implicitJSContext': ['respond', 'respondWithNewView'], 678 }, 679 680 'ReadableStreamDefaultController': { 681 'implicitJSContext': ['close'], 682 }, 683 684 'Request': { 685 'implicitJSContext': [ 'arrayBuffer', 'blob', 'bytes', 'formData', 'json', 686 'text' ], 687 }, 688 689 'ResizeObserverEntry': { 690 'nativeType': 'mozilla::dom::ResizeObserverEntry', 691 'headerFile': 'mozilla/dom/ResizeObserver.h', 692 }, 693 694 'ResizeObserverSize': { 695 'nativeType': 'mozilla::dom::ResizeObserverSize', 696 'headerFile': 'mozilla/dom/ResizeObserver.h', 697 }, 698 699 'Response': { 700 'implicitJSContext': [ 'arrayBuffer', 'blob', 'bytes', 'body', 'formData', 701 'json', 'text', 'clone', 'cloneUnfiltered' ], 702 }, 703 704 'Scheduler': { 705 'nativeType': 'mozilla::dom::WebTaskScheduler', 706 'headerFile': 'mozilla/dom/WebTaskScheduler.h', 707 }, 708 709 'Screen': { 710 'nativeType': 'nsScreen', 711 }, 712 713 'ServiceWorkerGlobalScope': { 714 'headerFile': 'mozilla/dom/WorkerScope.h', 715 }, 716 717 'ServiceWorkerRegistration': { 718 'implicitJSContext': [ 'pushManager' ], 719 }, 720 721 'ShadowRealmGlobalScope': { 722 'hasOrdinaryObjectPrototype': True, 723 }, 724 725 'SharedWorkerGlobalScope': { 726 'headerFile': 'mozilla/dom/WorkerScope.h', 727 }, 728 729 'StreamFilter': { 730 'nativeType': 'mozilla::extensions::StreamFilter', 731 }, 732 733 'StreamFilterDataEvent': { 734 'nativeType': 'mozilla::extensions::StreamFilterDataEvent', 735 'headerFile': 'mozilla/extensions/StreamFilterEvents.h', 736 }, 737 738 'StructuredCloneHolder': { 739 'nativeType': 'mozilla::dom::StructuredCloneBlob', 740 'wrapperCache': False, 741 }, 742 743 'StylePropertyMapReadOnly': { 744 'concrete': True, 745 }, 746 747 'StyleSheet': { 748 'nativeType': 'mozilla::StyleSheet', 749 'headerFile': 'mozilla/StyleSheetInlines.h', 750 }, 751 752 'SVGAnimatedAngle': { 753 'nativeType': 'mozilla::dom::DOMSVGAnimatedAngle', 754 'headerFile': 'DOMSVGAnimatedAngle.h', 755 }, 756 757 'SVGAnimatedBoolean': { 758 'nativeType': 'mozilla::dom::DOMSVGAnimatedBoolean', 759 'headerFile': 'DOMSVGAnimatedBoolean.h', 760 }, 761 762 'SVGAnimatedEnumeration': { 763 'nativeType': 'mozilla::dom::DOMSVGAnimatedEnumeration', 764 'headerFile': 'DOMSVGAnimatedEnumeration.h', 765 }, 766 767 'SVGAnimatedInteger': { 768 'nativeType': 'mozilla::dom::DOMSVGAnimatedInteger', 769 'headerFile': 'DOMSVGAnimatedInteger.h', 770 }, 771 772 'SVGAnimatedPreserveAspectRatio': { 773 'nativeType': 'mozilla::dom::DOMSVGAnimatedPreserveAspectRatio', 774 'headerFile': 'SVGAnimatedPreserveAspectRatio.h' 775 }, 776 777 'SVGAnimatedLength': { 778 'nativeType': 'mozilla::dom::DOMSVGAnimatedLength', 779 'headerFile': 'DOMSVGAnimatedLength.h', 780 }, 781 782 'SVGAnimatedLengthList': { 783 'nativeType': 'mozilla::dom::DOMSVGAnimatedLengthList', 784 'headerFile': 'DOMSVGAnimatedLengthList.h', 785 }, 786 787 'SVGAnimatedNumber': { 788 'nativeType': 'mozilla::dom::DOMSVGAnimatedNumber', 789 'headerFile': 'DOMSVGAnimatedNumber.h', 790 }, 791 792 'SVGAnimatedNumberList': { 793 'nativeType': 'mozilla::dom::DOMSVGAnimatedNumberList', 794 'headerFile': 'DOMSVGAnimatedNumberList.h' 795 }, 796 797 'SVGAnimatedString': { 798 'nativeType': 'mozilla::dom::DOMSVGAnimatedString', 799 'headerFile': 'DOMSVGAnimatedString.h', 800 }, 801 802 'SVGAnimatedTransformList': { 803 'nativeType': 'mozilla::dom::DOMSVGAnimatedTransformList', 804 'headerFile': 'DOMSVGAnimatedTransformList.h' 805 }, 806 807 'SVGAngle': { 808 'nativeType': 'mozilla::dom::DOMSVGAngle', 809 'headerFile': 'DOMSVGAngle.h' 810 }, 811 812 'SVGElement': { 813 'concrete': True, 814 }, 815 816 'SVGFEFuncAElement': { 817 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h', 818 }, 819 820 'SVGFEFuncBElement': { 821 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h', 822 }, 823 824 'SVGFEFuncGElement': { 825 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h', 826 }, 827 828 'SVGFEFuncRElement': { 829 'headerFile': 'mozilla/dom/SVGComponentTransferFunctionElement.h', 830 }, 831 832 'SVGLength': { 833 'nativeType': 'mozilla::dom::DOMSVGLength', 834 'headerFile': 'DOMSVGLength.h' 835 }, 836 837 'SVGLengthList': { 838 'nativeType': 'mozilla::dom::DOMSVGLengthList', 839 'headerFile': 'DOMSVGLengthList.h' 840 }, 841 842 'SVGLinearGradientElement': { 843 'headerFile': 'mozilla/dom/SVGGradientElement.h', 844 }, 845 846 'SVGNumber': { 847 'nativeType': 'mozilla::dom::DOMSVGNumber', 848 'headerFile': 'DOMSVGNumber.h', 849 }, 850 851 'SVGNumberList': { 852 'nativeType': 'mozilla::dom::DOMSVGNumberList', 853 'headerFile': 'DOMSVGNumberList.h' 854 }, 855 856 'SVGPoint': { 857 'nativeType': 'mozilla::dom::DOMSVGPoint', 858 'headerFile': 'DOMSVGPoint.h' 859 }, 860 861 'SVGPointList': { 862 'nativeType': 'mozilla::dom::DOMSVGPointList', 863 'headerFile': 'DOMSVGPointList.h' 864 }, 865 866 'SVGPreserveAspectRatio': { 867 'nativeType': 'mozilla::dom::DOMSVGPreserveAspectRatio', 868 'headerFile': 'SVGPreserveAspectRatio.h' 869 }, 870 871 'SVGRadialGradientElement': { 872 'headerFile': 'mozilla/dom/SVGGradientElement.h', 873 }, 874 875 'SVGStringList': { 876 'nativeType': 'mozilla::dom::DOMSVGStringList', 877 'headerFile': 'DOMSVGStringList.h', 878 }, 879 880 'SVGTransform': { 881 'nativeType': 'mozilla::dom::DOMSVGTransform', 882 'headerFile': 'DOMSVGTransform.h', 883 }, 884 885 'SVGTransformList': { 886 'nativeType': 'mozilla::dom::DOMSVGTransformList', 887 'headerFile': 'DOMSVGTransformList.h' 888 }, 889 890 'SVGUnitTypes' : { 891 # Maybe should be a namespace. 892 'concrete': False, 893 }, 894 895 'SyncReadFile': { 896 'nativeType': 'mozilla::SyncReadFile', 897 'headerFile': 'mozilla/IOUtils.h', 898 }, 899 900 'Text': { 901 # Total hack to allow binding code to realize that nsTextNode can 902 # in fact be cast to Text. 903 'headerFile': 'nsTextNode.h', 904 }, 905 906 'TextDecoder': { 907 'wrapperCache': False 908 }, 909 910 'TextEncoder': { 911 'wrapperCache': False 912 }, 913 914 'TextMetrics': { 915 'wrapperCache': False 916 }, 917 918 'TouchList': { 919 'headerFile': 'mozilla/dom/TouchEvent.h', 920 }, 921 922 'TreeColumn': { 923 'nativeType': 'nsTreeColumn', 924 'headerFile': 'nsTreeColumns.h', 925 }, 926 927 'TreeColumns': { 928 'nativeType': 'nsTreeColumns', 929 }, 930 931 'TreeContentView': { 932 'nativeType': 'nsTreeContentView', 933 }, 934 935 'TreeWalker': { 936 'wrapperCache': False, 937 }, 938 939 'TrustedHTML': { 940 'wrapperCache': False, 941 }, 942 943 'TrustedScript': { 944 'wrapperCache': False, 945 }, 946 947 'TrustedScriptURL': { 948 'wrapperCache': False, 949 }, 950 951 'TrustedTypePolicyFactory': { 952 'implicitJSContext': ['createPolicy'], 953 }, 954 955 'UserInteraction': { 956 'nativeType': 'mozilla::telemetry::UserInteractionStopwatch', 957 'headerFile': 'mozilla/telemetry/Stopwatch.h', 958 }, 959 960 'VisualViewport': { 961 'nativeType': 'mozilla::dom::VisualViewport', 962 }, 963 964 'VTTCue': { 965 'nativeType': 'mozilla::dom::TextTrackCue' 966 }, 967 968 'VTTRegion': { 969 'nativeType': 'mozilla::dom::TextTrackRegion', 970 }, 971 972 'WakeLock': { 973 'nativeType': 'mozilla::dom::WakeLockJS' 974 }, 975 976 'WebExtensionContentScript': { 977 'nativeType': 'mozilla::extensions::WebExtensionContentScript', 978 }, 979 980 'WebExtensionPolicy': { 981 'nativeType': 'mozilla::extensions::WebExtensionPolicy', 982 }, 983 984 'WindowClient': { 985 'nativeType': 'mozilla::dom::Client', 986 }, 987 988 'WindowGlobalChild': { 989 'implicitJSContext': ['getActor'], 990 }, 991 992 'WindowGlobalParent': { 993 'implicitJSContext': ['getActor'], 994 }, 995 996 'WebGLActiveInfo': { 997 'nativeType': 'mozilla::WebGLActiveInfoJS', 998 'headerFile': 'ClientWebGLContext.h', 999 'wrapperCache': False 1000 }, 1001 1002 'WebGLBuffer': { 1003 'nativeType': 'mozilla::WebGLBufferJS', 1004 'headerFile': 'ClientWebGLContext.h' 1005 }, 1006 1007 'EXT_float_blend': { 1008 'nativeType': 'mozilla::ClientWebGLExtensionFloatBlend', 1009 'headerFile': 'ClientWebGLExtensions.h' 1010 }, 1011 1012 'EXT_texture_compression_bptc': { 1013 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureBPTC', 1014 'headerFile': 'ClientWebGLExtensions.h' 1015 }, 1016 1017 'EXT_texture_compression_rgtc': { 1018 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureRGTC', 1019 'headerFile': 'ClientWebGLExtensions.h' 1020 }, 1021 1022 'EXT_texture_norm16': { 1023 'nativeType': 'mozilla::ClientWebGLExtensionTextureNorm16', 1024 'headerFile': 'ClientWebGLExtensions.h' 1025 }, 1026 1027 'OES_fbo_render_mipmap': { 1028 'nativeType': 'mozilla::ClientWebGLExtensionFBORenderMipmap', 1029 'headerFile': 'ClientWebGLExtensions.h' 1030 }, 1031 1032 'OVR_multiview2': { 1033 'nativeType': 'mozilla::ClientWebGLExtensionMultiview', 1034 'headerFile': 'ClientWebGLExtensions.h' 1035 }, 1036 1037 'WEBGL_compressed_texture_astc': { 1038 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureASTC', 1039 'headerFile': 'ClientWebGLExtensions.h' 1040 }, 1041 1042 'WEBGL_compressed_texture_etc': { 1043 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureES3', 1044 'headerFile': 'ClientWebGLExtensions.h' 1045 }, 1046 1047 'WEBGL_compressed_texture_etc1': { 1048 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureETC1', 1049 'headerFile': 'ClientWebGLExtensions.h' 1050 }, 1051 1052 'WEBGL_compressed_texture_pvrtc': { 1053 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTexturePVRTC', 1054 'headerFile': 'ClientWebGLExtensions.h' 1055 }, 1056 1057 'WEBGL_compressed_texture_s3tc': { 1058 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureS3TC', 1059 'headerFile': 'ClientWebGLExtensions.h' 1060 }, 1061 1062 'WEBGL_compressed_texture_s3tc_srgb': { 1063 'nativeType': 'mozilla::ClientWebGLExtensionCompressedTextureS3TC_SRGB', 1064 'headerFile': 'ClientWebGLExtensions.h' 1065 }, 1066 1067 'WEBGL_depth_texture': { 1068 'nativeType': 'mozilla::ClientWebGLExtensionDepthTexture', 1069 'headerFile': 'ClientWebGLExtensions.h' 1070 }, 1071 1072 'WEBGL_debug_renderer_info': { 1073 'nativeType': 'mozilla::ClientWebGLExtensionDebugRendererInfo', 1074 'headerFile': 'ClientWebGLExtensions.h' 1075 }, 1076 1077 'WEBGL_debug_shaders': { 1078 'nativeType': 'mozilla::ClientWebGLExtensionDebugShaders', 1079 'headerFile': 'ClientWebGLExtensions.h' 1080 }, 1081 1082 'WEBGL_explicit_present': { 1083 'nativeType': 'mozilla::ClientWebGLExtensionExplicitPresent', 1084 'headerFile': 'ClientWebGLExtensions.h' 1085 }, 1086 1087 'WEBGL_provoking_vertex': { 1088 'nativeType': 'mozilla::ClientWebGLExtensionProvokingVertex', 1089 'headerFile': 'ClientWebGLExtensions.h' 1090 }, 1091 1092 'OES_draw_buffers_indexed': { 1093 'nativeType': 'mozilla::ClientWebGLExtensionDrawBuffersIndexed', 1094 'headerFile': 'ClientWebGLExtensions.h' 1095 }, 1096 1097 'OES_element_index_uint': { 1098 'nativeType': 'mozilla::ClientWebGLExtensionElementIndexUint', 1099 'headerFile': 'ClientWebGLExtensions.h' 1100 }, 1101 1102 'EXT_frag_depth': { 1103 'nativeType': 'mozilla::ClientWebGLExtensionFragDepth', 1104 'headerFile': 'ClientWebGLExtensions.h' 1105 }, 1106 1107 'WEBGL_lose_context': { 1108 'nativeType': 'mozilla::ClientWebGLExtensionLoseContext', 1109 'headerFile': 'ClientWebGLExtensions.h' 1110 }, 1111 1112 'EXT_sRGB': { 1113 'nativeType': 'mozilla::ClientWebGLExtensionSRGB', 1114 'headerFile': 'ClientWebGLExtensions.h' 1115 }, 1116 1117 'OES_standard_derivatives': { 1118 'nativeType': 'mozilla::ClientWebGLExtensionStandardDerivatives', 1119 'headerFile': 'ClientWebGLExtensions.h' 1120 }, 1121 1122 'EXT_shader_texture_lod': { 1123 'nativeType': 'mozilla::ClientWebGLExtensionShaderTextureLod', 1124 'headerFile': 'ClientWebGLExtensions.h' 1125 }, 1126 1127 'EXT_texture_filter_anisotropic': { 1128 'nativeType': 'mozilla::ClientWebGLExtensionTextureFilterAnisotropic', 1129 'headerFile': 'ClientWebGLExtensions.h' 1130 }, 1131 1132 'OES_texture_float': { 1133 'nativeType': 'mozilla::ClientWebGLExtensionTextureFloat', 1134 'headerFile': 'ClientWebGLExtensions.h' 1135 }, 1136 1137 'OES_texture_float_linear': { 1138 'nativeType': 'mozilla::ClientWebGLExtensionTextureFloatLinear', 1139 'headerFile': 'ClientWebGLExtensions.h' 1140 }, 1141 1142 'OES_texture_half_float': { 1143 'nativeType': 'mozilla::ClientWebGLExtensionTextureHalfFloat', 1144 'headerFile': 'ClientWebGLExtensions.h' 1145 }, 1146 1147 'OES_texture_half_float_linear': { 1148 'nativeType': 'mozilla::ClientWebGLExtensionTextureHalfFloatLinear', 1149 'headerFile': 'ClientWebGLExtensions.h' 1150 }, 1151 1152 'WEBGL_color_buffer_float': { 1153 'nativeType': 'mozilla::ClientWebGLExtensionColorBufferFloat', 1154 'headerFile': 'ClientWebGLExtensions.h' 1155 }, 1156 1157 'EXT_color_buffer_half_float': { 1158 'nativeType': 'mozilla::ClientWebGLExtensionColorBufferHalfFloat', 1159 'headerFile': 'ClientWebGLExtensions.h' 1160 }, 1161 1162 'EXT_color_buffer_float': { 1163 'nativeType': 'mozilla::ClientWebGLExtensionEXTColorBufferFloat', 1164 'headerFile': 'ClientWebGLExtensions.h' 1165 }, 1166 1167 'WEBGL_draw_buffers': { 1168 'nativeType': 'mozilla::ClientWebGLExtensionDrawBuffers', 1169 'headerFile': 'ClientWebGLExtensions.h' 1170 }, 1171 1172 'OES_vertex_array_object': { 1173 'nativeType': 'mozilla::ClientWebGLExtensionVertexArray', 1174 'headerFile': 'ClientWebGLExtensions.h' 1175 }, 1176 1177 'ANGLE_instanced_arrays': { 1178 'nativeType': 'mozilla::ClientWebGLExtensionInstancedArrays', 1179 'headerFile': 'ClientWebGLExtensions.h' 1180 }, 1181 1182 'EXT_blend_minmax': { 1183 'nativeType': 'mozilla::ClientWebGLExtensionBlendMinMax', 1184 'headerFile': 'ClientWebGLExtensions.h' 1185 }, 1186 1187 'EXT_depth_clamp': { 1188 'nativeType': 'mozilla::ClientWebGLExtensionDepthClamp', 1189 'headerFile': 'ClientWebGLExtensions.h' 1190 }, 1191 1192 'EXT_disjoint_timer_query': { 1193 'nativeType': 'mozilla::ClientWebGLExtensionDisjointTimerQuery', 1194 'headerFile': 'ClientWebGLExtensions.h' 1195 }, 1196 1197 'MOZ_debug': { 1198 'nativeType': 'mozilla::ClientWebGLExtensionMOZDebug', 1199 'headerFile': 'ClientWebGLExtensions.h' 1200 }, 1201 1202 'WebGLFramebuffer': { 1203 'nativeType': 'mozilla::WebGLFramebufferJS', 1204 'headerFile': 'ClientWebGLContext.h' 1205 }, 1206 1207 'WebGLProgram': { 1208 'nativeType': 'mozilla::WebGLProgramJS', 1209 'headerFile': 'ClientWebGLContext.h' 1210 }, 1211 1212 'WebGLQuery': { 1213 'nativeType': 'mozilla::WebGLQueryJS', 1214 'headerFile': 'ClientWebGLContext.h' 1215 }, 1216 1217 'WebGLRenderbuffer': { 1218 'nativeType': 'mozilla::WebGLRenderbufferJS', 1219 'headerFile': 'ClientWebGLContext.h' 1220 }, 1221 1222 'WebGLRenderingContext': { 1223 'nativeType': 'mozilla::ClientWebGLContext', 1224 'headerFile': 'ClientWebGLContext.h', 1225 }, 1226 1227 'WebGL2RenderingContext': { 1228 'nativeType': 'mozilla::ClientWebGLContext', 1229 'headerFile': 'ClientWebGLContext.h', 1230 }, 1231 1232 'WebGLSampler': { 1233 'nativeType': 'mozilla::WebGLSamplerJS', 1234 'headerFile': 'ClientWebGLContext.h' 1235 }, 1236 1237 'WebGLShader': { 1238 'nativeType': 'mozilla::WebGLShaderJS', 1239 'headerFile': 'ClientWebGLContext.h' 1240 }, 1241 1242 'WebGLShaderPrecisionFormat': { 1243 'nativeType': 'mozilla::WebGLShaderPrecisionFormatJS', 1244 'headerFile': 'ClientWebGLContext.h', 1245 'wrapperCache': False 1246 }, 1247 1248 'WebGLSync': { 1249 'nativeType': 'mozilla::WebGLSyncJS', 1250 'headerFile': 'ClientWebGLContext.h' 1251 }, 1252 1253 'WebGLTexture': { 1254 'nativeType': 'mozilla::WebGLTextureJS', 1255 'headerFile': 'ClientWebGLContext.h' 1256 }, 1257 1258 'WebGLTransformFeedback': { 1259 'nativeType': 'mozilla::WebGLTransformFeedbackJS', 1260 'headerFile': 'ClientWebGLContext.h' 1261 }, 1262 1263 'WebGLUniformLocation': { 1264 'nativeType': 'mozilla::WebGLUniformLocationJS', 1265 'headerFile': 'ClientWebGLContext.h' 1266 }, 1267 1268 'WebGLVertexArrayObject': { 1269 'nativeType': 'mozilla::WebGLVertexArrayJS', 1270 'headerFile': 'ClientWebGLContext.h' 1271 }, 1272 1273 # WebGPU 1274 1275 'GPU': { 1276 'nativeType': 'mozilla::webgpu::Instance', 1277 }, 1278 'GPUAdapter': { 1279 'nativeType': 'mozilla::webgpu::Adapter', 1280 }, 1281 'GPUAdapterInfo': { 1282 'nativeType': 'mozilla::webgpu::AdapterInfo', 1283 'headerFile': 'mozilla/webgpu/Adapter.h', 1284 }, 1285 'GPUBindGroup': { 1286 'nativeType': 'mozilla::webgpu::BindGroup', 1287 }, 1288 'GPUBindGroupLayout': { 1289 'nativeType': 'mozilla::webgpu::BindGroupLayout', 1290 }, 1291 'GPUBuffer': { 1292 'nativeType': 'mozilla::webgpu::Buffer', 1293 'implicitJSContext': [ 'unmap', 'destroy' ], 1294 }, 1295 'GPUCanvasContext': { 1296 'nativeType': 'mozilla::webgpu::CanvasContext', 1297 }, 1298 'GPUCommandBuffer': { 1299 'nativeType': 'mozilla::webgpu::CommandBuffer', 1300 }, 1301 'GPUCommandEncoder': { 1302 'nativeType': 'mozilla::webgpu::CommandEncoder', 1303 }, 1304 'GPUCompilationInfo': { 1305 'nativeType': 'mozilla::webgpu::CompilationInfo', 1306 }, 1307 'GPUCompilationMessage': { 1308 'nativeType': 'mozilla::webgpu::CompilationMessage', 1309 }, 1310 'GPUComputePassEncoder': { 1311 'nativeType': 'mozilla::webgpu::ComputePassEncoder', 1312 }, 1313 'GPUComputePipeline': { 1314 'nativeType': 'mozilla::webgpu::ComputePipeline', 1315 }, 1316 'GPUDevice': { 1317 'nativeType': 'mozilla::webgpu::Device', 1318 }, 1319 'GPUDeviceLostInfo': { 1320 'nativeType': 'mozilla::webgpu::DeviceLostInfo', 1321 }, 1322 'GPUError': { 1323 'nativeType': 'mozilla::webgpu::Error', 1324 }, 1325 'GPUExternalTexture': { 1326 'nativeType': 'mozilla::webgpu::ExternalTexture', 1327 }, 1328 'GPUInternalError': { 1329 'nativeType': 'mozilla::webgpu::InternalError', 1330 }, 1331 'GPUOutOfMemoryError': { 1332 'nativeType': 'mozilla::webgpu::OutOfMemoryError', 1333 }, 1334 'GPUPipelineError': { 1335 'nativeType': 'mozilla::webgpu::PipelineError', 1336 }, 1337 'GPUPipelineLayout': { 1338 'nativeType': 'mozilla::webgpu::PipelineLayout', 1339 }, 1340 'GPUQuerySet': { 1341 'nativeType': 'mozilla::webgpu::QuerySet', 1342 }, 1343 'GPUQueue': { 1344 'nativeType': 'mozilla::webgpu::Queue', 1345 }, 1346 'GPURenderBundle': { 1347 'nativeType': 'mozilla::webgpu::RenderBundle', 1348 }, 1349 'GPURenderBundleEncoder': { 1350 'nativeType': 'mozilla::webgpu::RenderBundleEncoder', 1351 }, 1352 'GPURenderPassEncoder': { 1353 'nativeType': 'mozilla::webgpu::RenderPassEncoder', 1354 }, 1355 'GPURenderPipeline': { 1356 'nativeType': 'mozilla::webgpu::RenderPipeline', 1357 }, 1358 'GPUSampler': { 1359 'nativeType': 'mozilla::webgpu::Sampler', 1360 }, 1361 'GPUShaderModule': { 1362 'nativeType': 'mozilla::webgpu::ShaderModule', 1363 }, 1364 'GPUSupportedFeatures': { 1365 'nativeType': 'mozilla::webgpu::SupportedFeatures', 1366 }, 1367 'GPUSupportedLimits': { 1368 'nativeType': 'mozilla::webgpu::SupportedLimits', 1369 }, 1370 'GPUTexture': { 1371 'nativeType': 'mozilla::webgpu::Texture', 1372 }, 1373 'GPUTextureView': { 1374 'nativeType': 'mozilla::webgpu::TextureView', 1375 }, 1376 'GPUValidationError': { 1377 'nativeType': 'mozilla::webgpu::ValidationError', 1378 }, 1379 1380 'GPUBufferUsage': { 1381 'concrete': False, 1382 }, 1383 'GPUColorWrite': { 1384 'concrete': False, 1385 }, 1386 'GPUMapMode': { 1387 'concrete': False, 1388 }, 1389 'GPUShaderStage': { 1390 'concrete': False, 1391 }, 1392 'GPUTextureUsage': { 1393 'concrete': False, 1394 }, 1395 'WGSLLanguageFeatures': { 1396 'nativeType': 'mozilla::webgpu::WGSLLanguageFeatures', 1397 'headerFile': 'mozilla/webgpu/Instance.h', 1398 }, 1399 1400 # Glean 1401 1402 'GleanImpl': { 1403 'nativeType': 'mozilla::glean::Glean', 1404 'headerFile': 'mozilla/glean/bindings/Glean.h', 1405 }, 1406 'GleanCategory': { 1407 'nativeType': 'mozilla::glean::Category', 1408 'headerFile': 'mozilla/glean/bindings/Category.h', 1409 }, 1410 'GleanPingsImpl': { 1411 'nativeType': 'mozilla::glean::GleanPings', 1412 'headerFile': 'mozilla/glean/bindings/GleanPings.h', 1413 }, 1414 'GleanLabeled': { 1415 'nativeType': 'mozilla::glean::GleanLabeled', 1416 'headerFile': 'mozilla/glean/bindings/Labeled.h', 1417 }, 1418 'GleanMetric': { 1419 'nativeType': 'mozilla::glean::GleanMetric', 1420 'headerFile': 'mozilla/glean/bindings/GleanMetric.h', 1421 }, 1422 'GleanBoolean': { 1423 'nativeType': 'mozilla::glean::GleanBoolean', 1424 'headerFile': 'mozilla/glean/bindings/Boolean.h', 1425 }, 1426 'GleanCounter': { 1427 'nativeType': 'mozilla::glean::GleanCounter', 1428 'headerFile': 'mozilla/glean/bindings/Counter.h', 1429 }, 1430 'GleanCustomDistribution': { 1431 'nativeType': 'mozilla::glean::GleanCustomDistribution', 1432 'headerFile': 'mozilla/glean/bindings/CustomDistribution.h', 1433 }, 1434 'GleanDatetime': { 1435 'nativeType': 'mozilla::glean::GleanDatetime', 1436 'headerFile': 'mozilla/glean/bindings/Datetime.h', 1437 }, 1438 'GleanString': { 1439 'nativeType': 'mozilla::glean::GleanString', 1440 'headerFile': 'mozilla/glean/bindings/String.h', 1441 }, 1442 'GleanStringList': { 1443 'nativeType': 'mozilla::glean::GleanStringList', 1444 'headerFile': 'mozilla/glean/bindings/StringList.h', 1445 }, 1446 'GleanTimespan': { 1447 'nativeType': 'mozilla::glean::GleanTimespan', 1448 'headerFile': 'mozilla/glean/bindings/Timespan.h', 1449 }, 1450 'GleanUuid': { 1451 'nativeType': 'mozilla::glean::GleanUuid', 1452 'headerFile': 'mozilla/glean/bindings/Uuid.h', 1453 }, 1454 'GleanEvent': { 1455 'nativeType': 'mozilla::glean::GleanEvent', 1456 'headerFile': 'mozilla/glean/bindings/Event.h', 1457 }, 1458 'GleanQuantity': { 1459 'nativeType': 'mozilla::glean::GleanQuantity', 1460 'headerFile': 'mozilla/glean/bindings/Quantity.h', 1461 }, 1462 'GleanUrl': { 1463 'nativeType': 'mozilla::glean::GleanUrl', 1464 'headerFile': 'mozilla/glean/bindings/Url.h', 1465 }, 1466 'GleanTimingDistribution': { 1467 'nativeType': 'mozilla::glean::GleanTimingDistribution', 1468 'headerFile': 'mozilla/glean/bindings/TimingDistribution.h', 1469 }, 1470 'GleanMemoryDistribution': { 1471 'nativeType': 'mozilla::glean::GleanMemoryDistribution', 1472 'headerFile': 'mozilla/glean/bindings/MemoryDistribution.h', 1473 }, 1474 'GleanNumerator': { 1475 'nativeType': 'mozilla::glean::GleanNumerator', 1476 'headerFile': 'mozilla/glean/bindings/Numerator.h', 1477 }, 1478 'GleanDenominator': { 1479 'nativeType': 'mozilla::glean::GleanDenominator', 1480 'headerFile': 'mozilla/glean/bindings/Denominator.h', 1481 }, 1482 'GleanRate': { 1483 'nativeType': 'mozilla::glean::GleanRate', 1484 'headerFile': 'mozilla/glean/bindings/Rate.h', 1485 }, 1486 'GleanText': { 1487 'nativeType': 'mozilla::glean::GleanText', 1488 'headerFile': 'mozilla/glean/bindings/Text.h', 1489 }, 1490 'GleanObject': { 1491 'nativeType': 'mozilla::glean::GleanObject', 1492 'headerFile': 'mozilla/glean/bindings/Object.h', 1493 }, 1494 'GleanDualLabeledCounter': { 1495 'nativeType': 'mozilla::glean::GleanDualLabeledCounter', 1496 'headerFile': 'mozilla/glean/bindings/DualLabeledCounter.h', 1497 }, 1498 1499 'Window': { 1500 'nativeType': 'nsGlobalWindowInner', 1501 'headerFile': 'nsGlobalWindowInner.h', 1502 'implicitJSContext': [ 1503 'requestIdleCallback', 'indexedDB' 1504 ], 1505 }, 1506 1507 'WindowContext': { 1508 'concrete': True 1509 }, 1510 1511 'WindowProxy': { 1512 'nativeType': 'mozilla::dom::WindowProxyHolder', 1513 'headerFile': 'mozilla/dom/WindowProxyHolder.h', 1514 'concrete': False 1515 }, 1516 1517 'WindowRoot': { 1518 'nativeType': 'nsWindowRoot' 1519 }, 1520 1521 'WorkerDebuggerGlobalScope': { 1522 'headerFile': 'mozilla/dom/WorkerScope.h', 1523 'implicitJSContext': [ 1524 'dump', 'clearConsoleEvents', 'reportError', 'setConsoleEventHandler', 1525 ], 1526 }, 1527 1528 'WorkerGlobalScope': { 1529 'headerFile': 'mozilla/dom/WorkerScope.h', 1530 'implicitJSContext': [ 'importScripts', 'indexedDB' ], 1531 }, 1532 1533 'Worklet': { 1534 # Paint worklets just use the Worklet interface. 1535 'concrete': True, 1536 'implicitJSContext': [ 'addModule' ], 1537 }, 1538 1539 # Bug 1734174: We should validate ReadableStream usage of implicitJSContext. 1540 'WritableStream': { 1541 'implicitJSContext': ['close'], 1542 }, 1543 1544 'WritableStreamDefaultWriter': { 1545 'implicitJSContext': ['close', 'releaseLock'], 1546 }, 1547 1548 'XMLSerializer': { 1549 'nativeType': 'nsDOMSerializer', 1550 'wrapperCache': False 1551 }, 1552 1553 'XPathEvaluator': { 1554 'wrapperCache': False, 1555 }, 1556 1557 'XPathExpression': { 1558 'wrapperCache': False, 1559 }, 1560 1561 'XRPose': { 1562 'concrete': True, 1563 }, 1564 1565 'XRReferenceSpace': { 1566 'concrete': True, 1567 }, 1568 1569 'XRSpace': { 1570 'concrete': True, 1571 }, 1572 1573 'XSLTProcessor': { 1574 'nativeType': 'txMozillaXSLTProcessor', 1575 }, 1576 1577 'XULElement': { 1578 'nativeType': 'nsXULElement', 1579 }, 1580 1581 # WebExtension API 1582 1583 'ExtensionBrowser': { 1584 'headerFile': 'mozilla/extensions/ExtensionBrowser.h', 1585 'nativeType': 'mozilla::extensions::ExtensionBrowser', 1586 }, 1587 1588 'ExtensionMockAPI': { 1589 'headerFile': 'mozilla/extensions/ExtensionMockAPI.h', 1590 'nativeType': 'mozilla::extensions::ExtensionMockAPI', 1591 }, 1592 1593 'ExtensionBrowserSettings': { 1594 'headerFile': 'mozilla/extensions/ExtensionBrowserSettings.h', 1595 'nativeType': 'mozilla::extensions::ExtensionBrowserSettings', 1596 }, 1597 1598 'ExtensionBrowserSettingsColorManagement': { 1599 'headerFile': 'mozilla/extensions/ExtensionBrowserSettingsColorManagement.h', 1600 'nativeType': 'mozilla::extensions::ExtensionBrowserSettingsColorManagement', 1601 }, 1602 1603 'ExtensionDns': { 1604 'headerFile': 'mozilla/extensions/ExtensionDns.h', 1605 'nativeType': 'mozilla::extensions::ExtensionDns', 1606 }, 1607 1608 'ExtensionEventManager': { 1609 'headerFile': 'mozilla/extensions/ExtensionEventManager.h', 1610 'nativeType': 'mozilla::extensions::ExtensionEventManager', 1611 }, 1612 1613 'ExtensionPort': { 1614 'headerFile': 'mozilla/extensions/ExtensionPort.h', 1615 'nativeType': 'mozilla::extensions::ExtensionPort', 1616 }, 1617 1618 'ExtensionProxy': { 1619 'headerFile': 'mozilla/extensions/ExtensionProxy.h', 1620 'nativeType': 'mozilla::extensions::ExtensionProxy', 1621 }, 1622 1623 'ExtensionRuntime': { 1624 'headerFile': 'mozilla/extensions/ExtensionRuntime.h', 1625 'nativeType': 'mozilla::extensions::ExtensionRuntime', 1626 }, 1627 1628 'ExtensionScripting': { 1629 'headerFile': 'mozilla/extensions/ExtensionScripting.h', 1630 'nativeType': 'mozilla::extensions::ExtensionScripting', 1631 }, 1632 1633 'ExtensionSetting': { 1634 'headerFile': 'mozilla/extensions/ExtensionSetting.h', 1635 'nativeType': 'mozilla::extensions::ExtensionSetting', 1636 }, 1637 1638 'ExtensionTest': { 1639 'headerFile': 'mozilla/extensions/ExtensionTest.h', 1640 'nativeType': 'mozilla::extensions::ExtensionTest', 1641 }, 1642 1643 'ExtensionAlarms': { 1644 'headerFile': 'mozilla/extensions/ExtensionAlarms.h', 1645 'nativeType': 'mozilla::extensions::ExtensionAlarms', 1646 }, 1647 1648 } 1649 1650 if buildconfig.substs.get("MOZ_WEBRTC", False): 1651 DOMInterfaces.update({ 1652 1653 'PeerConnectionImpl': { 1654 'nativeType': 'mozilla::PeerConnectionImpl', 1655 'headerFile': 'PeerConnectionImpl.h', 1656 }, 1657 1658 'WebrtcGlobalInformation': { 1659 'headerFile': 'WebrtcGlobalInformation.h', 1660 }, 1661 1662 }) 1663 1664 #################################### 1665 # Test Interfaces of various sorts # 1666 #################################### 1667 1668 if buildconfig.substs.get("ENABLE_TESTS", False): 1669 DOMInterfaces.update({ 1670 1671 'OnlyForUseInConstructor' : { 1672 'headerFile': 'TestBindingHeader.h', 1673 'register': False, 1674 }, 1675 1676 'TestAttributesOnTypes' : { 1677 'headerFile': 'TestBindingHeader.h', 1678 'register': False, 1679 }, 1680 1681 'TestCEReactionsInterface' : { 1682 'headerFile': 'TestBindingHeader.h', 1683 'register': False, 1684 }, 1685 1686 'TestChildInterface' : { 1687 'headerFile': 'TestBindingHeader.h', 1688 'register': False, 1689 }, 1690 1691 'TestCImplementedInterface' : { 1692 'headerFile': 'TestCImplementedInterface.h', 1693 'register': False, 1694 }, 1695 1696 'TestCImplementedInterface2' : { 1697 'headerFile': 'TestCImplementedInterface.h', 1698 'register': False, 1699 }, 1700 1701 'TestConstructorForFuncInterface' : { 1702 'headerFile': 'TestBindingHeader.h', 1703 'register': False, 1704 }, 1705 1706 'TestConstructorForPrefInterface' : { 1707 'headerFile': 'TestBindingHeader.h', 1708 'register': False, 1709 }, 1710 1711 'TestConstructorForSCInterface' : { 1712 'headerFile': 'TestBindingHeader.h', 1713 'register': False, 1714 }, 1715 1716 'TestCppKeywordNamedMethodsInterface' : { 1717 'headerFile': 'TestBindingHeader.h', 1718 'register': False, 1719 }, 1720 1721 'TestDeprecatedInterface' : { 1722 # Keep this in sync with TestExampleInterface 1723 'headerFile': 'TestBindingHeader.h', 1724 'register': False, 1725 }, 1726 1727 'TestExampleInterface' : { 1728 # Keep this in sync with TestInterface 1729 'headerFile': 'TestExampleInterface-example.h', 1730 'register': False, 1731 }, 1732 1733 'TestExampleProxyInterface' : { 1734 'headerFile': 'TestExampleProxyInterface-example.h', 1735 'register': False, 1736 }, 1737 1738 'TestExampleThrowingConstructorInterface' : { 1739 'headerFile': 'TestExampleThrowingConstructorInterface-example.h', 1740 'register': False, 1741 }, 1742 1743 'TestExampleWorkerInterface' : { 1744 'headerFile': 'TestExampleWorkerInterface-example.h', 1745 'register': False, 1746 }, 1747 1748 'TestExternalInterface' : { 1749 'nativeType': 'mozilla::dom::TestExternalInterface', 1750 'headerFile': 'TestBindingHeader.h', 1751 'register': False, 1752 }, 1753 1754 'TestFuncConstructorForDifferentFuncInterface' : { 1755 'headerFile': 'TestBindingHeader.h', 1756 'register': False, 1757 }, 1758 1759 'TestFuncConstructorForInterface' : { 1760 'headerFile': 'TestBindingHeader.h', 1761 'register': False, 1762 }, 1763 1764 'TestHTMLConstructorInterface' : { 1765 'headerFile': 'TestBindingHeader.h', 1766 'register': False, 1767 }, 1768 1769 'TestIndexedAndNamedGetterInterface' : { 1770 'headerFile': 'TestBindingHeader.h', 1771 'register': False, 1772 }, 1773 1774 'TestIndexedAndNamedGetterAndSetterInterface' : { 1775 'headerFile': 'TestBindingHeader.h', 1776 'register': False, 1777 }, 1778 1779 'TestIndexedAndNamedSetterInterface' : { 1780 'headerFile': 'TestBindingHeader.h', 1781 'register': False, 1782 }, 1783 1784 'TestIndexedGetterAndSetterAndNamedGetterInterface' : { 1785 'headerFile': 'TestBindingHeader.h', 1786 'register': False, 1787 }, 1788 1789 'TestIndexedGetterInterface' : { 1790 'headerFile': 'TestBindingHeader.h', 1791 'register': False, 1792 }, 1793 1794 'TestIndexedSetterInterface' : { 1795 'headerFile': 'TestBindingHeader.h', 1796 'register': False, 1797 }, 1798 1799 'TestInterface' : { 1800 # Keep this in sync with TestExampleInterface 1801 'headerFile': 'TestBindingHeader.h', 1802 'register': False, 1803 }, 1804 1805 'TestInterfaceWithPromiseConstructorArg' : { 1806 'headerFile': 'TestBindingHeader.h', 1807 'register': False, 1808 }, 1809 1810 'TestJSImplInterface' : { 1811 # Keep this in sync with TestExampleInterface 1812 'headerFile': 'TestJSImplGenBinding.h', 1813 'register': False, 1814 }, 1815 1816 'TestJSImplInterface2' : { 1817 'headerFile': 'TestJSImplGenBinding.h', 1818 'register': False, 1819 }, 1820 1821 'TestJSImplInterface3' : { 1822 'headerFile': 'TestJSImplGenBinding.h', 1823 'register': False, 1824 }, 1825 1826 'TestJSImplInterface4' : { 1827 'headerFile': 'TestJSImplGenBinding.h', 1828 'register': False, 1829 }, 1830 1831 'TestJSImplInterface5' : { 1832 'headerFile': 'TestJSImplGenBinding.h', 1833 'register': False, 1834 }, 1835 1836 'TestJSImplInterface6' : { 1837 'headerFile': 'TestJSImplGenBinding.h', 1838 'register': False, 1839 }, 1840 1841 'TestLegacyFactoryFunctionInterface' : { 1842 'headerFile': 'TestBindingHeader.h', 1843 'register': False, 1844 }, 1845 1846 'TestLegacyFactoryFunctionInterface2' : { 1847 'headerFile': 'TestBindingHeader.h', 1848 'register': False, 1849 }, 1850 1851 'TestNamedDeleterInterface' : { 1852 'headerFile': 'TestBindingHeader.h', 1853 'register': False, 1854 }, 1855 1856 'TestNamedDeleterWithRetvalInterface' : { 1857 'headerFile': 'TestBindingHeader.h', 1858 'register': False, 1859 }, 1860 1861 'TestNamedGetterInterface' : { 1862 'headerFile': 'TestBindingHeader.h', 1863 'register': False, 1864 }, 1865 1866 'TestNamedSetterInterface' : { 1867 'headerFile': 'TestBindingHeader.h', 1868 'register': False, 1869 }, 1870 1871 'TestNamespace' : { 1872 'headerFile': 'TestBindingHeader.h', 1873 'register': False, 1874 }, 1875 1876 'TestNonWrapperCacheInterface' : { 1877 'headerFile': 'TestBindingHeader.h', 1878 'register': False, 1879 'wrapperCache': False, 1880 }, 1881 1882 'TestParentInterface' : { 1883 'headerFile': 'TestBindingHeader.h', 1884 'register': False, 1885 }, 1886 1887 'TestPrefChromeOnlySCFuncConstructorForInterface' : { 1888 'headerFile': 'TestBindingHeader.h', 1889 'register': False, 1890 }, 1891 1892 'TestPrefConstructorForDifferentPrefInterface' : { 1893 'headerFile': 'TestBindingHeader.h', 1894 'register': False, 1895 }, 1896 1897 'TestPrefConstructorForInterface' : { 1898 'headerFile': 'TestBindingHeader.h', 1899 'register': False, 1900 }, 1901 1902 'TestProtoObjectHackedNamespace' : { 1903 'headerFile': 'TestBindingHeader.h', 1904 'register': False, 1905 }, 1906 1907 'TestRenamedInterface' : { 1908 'headerFile': 'TestBindingHeader.h', 1909 'register': False, 1910 'nativeType': 'nsRenamedInterface' 1911 }, 1912 1913 'TestRenamedNamespace' : { 1914 'headerFile': 'TestBindingHeader.h', 1915 'register': False, 1916 }, 1917 1918 'TestSCConstructorForInterface' : { 1919 'headerFile': 'TestBindingHeader.h', 1920 'register': False, 1921 }, 1922 1923 'TestSecureContextInterface' : { 1924 # Keep this in sync with TestExampleInterface 1925 'headerFile': 'TestBindingHeader.h', 1926 'register': False, 1927 }, 1928 1929 'TestThrowingConstructorInterface' : { 1930 'headerFile': 'TestBindingHeader.h', 1931 'register': False, 1932 }, 1933 1934 'TestWorkerExposedInterface' : { 1935 'headerFile': 'TestBindingHeader.h', 1936 'register': False, 1937 }, 1938 1939 'TestCallbackDictUnionOverload' : { 1940 'headerFile': 'TestBindingHeader.h', 1941 'register': False, 1942 }, 1943 1944 }) 1945 1946 if buildconfig.substs.get("MOZ_DEBUG", False): 1947 DOMInterfaces.update({ 1948 1949 'TestFunctions': { 1950 'wrapperCache': False, 1951 }, 1952 1953 'TestChromeOnlyInterface': { 1954 'headerFile': 'TestFunctions.h', 1955 }, 1956 1957 }) 1958 1959 1960 # These probably won't be converted to use new DOM bindings 1961 def addExternalIface(iface, nativeType=None, headerFile=None, 1962 notflattened=False): 1963 if iface in DOMInterfaces: 1964 raise Exception('Interface declared both as WebIDL and External interface') 1965 domInterface = { 1966 'concrete': False 1967 } 1968 if not nativeType is None: 1969 domInterface['nativeType'] = nativeType 1970 if not headerFile is None: 1971 domInterface['headerFile'] = headerFile 1972 domInterface['notflattened'] = notflattened 1973 DOMInterfaces[iface] = domInterface 1974 1975 addExternalIface('Cookie', nativeType='nsICookie', 1976 headerFile='nsICookie.h', notflattened=True) 1977 addExternalIface('ContentSecurityPolicy', nativeType='nsIContentSecurityPolicy', 1978 notflattened=True) 1979 addExternalIface('PolicyContainer', nativeType='nsIPolicyContainer', 1980 notflattened=True) 1981 addExternalIface('imgINotificationObserver', nativeType='imgINotificationObserver') 1982 addExternalIface('imgIRequest', nativeType='imgIRequest', notflattened=True) 1983 addExternalIface('LoadContext', nativeType='nsILoadContext', notflattened=True) 1984 addExternalIface('LoadInfo', nativeType='nsILoadInfo', 1985 headerFile='nsILoadInfo.h', notflattened=True) 1986 addExternalIface('XULControllers', nativeType='nsIControllers', notflattened=True) 1987 addExternalIface('MozTreeView', nativeType='nsITreeView', 1988 headerFile='nsITreeView.h', notflattened=True) 1989 addExternalIface('nsIBrowserDOMWindow', nativeType='nsIBrowserDOMWindow', 1990 notflattened=True) 1991 addExternalIface('nsIDOMWindowUtils', nativeType='nsIDOMWindowUtils', notflattened=True) 1992 addExternalIface('nsIEventTarget', nativeType='nsIEventTarget', notflattened=True) 1993 addExternalIface('nsIFile', nativeType='nsIFile', notflattened=True) 1994 addExternalIface('nsILoadGroup', nativeType='nsILoadGroup', 1995 headerFile='nsILoadGroup.h', notflattened=True) 1996 addExternalIface('nsIMediaDevice', nativeType='nsIMediaDevice', 1997 notflattened=True) 1998 addExternalIface('nsIPrintSettings', nativeType='nsIPrintSettings', 1999 notflattened=True) 2000 addExternalIface('nsISelectionListener', nativeType='nsISelectionListener') 2001 addExternalIface('nsIStreamListener', nativeType='nsIStreamListener', notflattened=True) 2002 addExternalIface('nsISocketTransport', nativeType='nsISocketTransport', 2003 notflattened=True) 2004 addExternalIface('nsITransportProvider', nativeType='nsITransportProvider') 2005 addExternalIface('nsITreeSelection', nativeType='nsITreeSelection', 2006 notflattened=True) 2007 addExternalIface('nsISupports', nativeType='nsISupports') 2008 addExternalIface('nsIDocShell', nativeType='nsIDocShell', notflattened=True) 2009 addExternalIface('nsIDOMProcessChild', nativeType='nsIDOMProcessChild', notflattened=True) 2010 addExternalIface('nsIDOMProcessParent', nativeType='nsIDOMProcessParent', notflattened=True) 2011 addExternalIface('nsIContentParentKeepAlive', nativeType='nsIContentParentKeepAlive', notflattened=True) 2012 addExternalIface('nsIReferrerInfo', nativeType='nsIReferrerInfo', notflattened=True) 2013 addExternalIface('nsISecureBrowserUI', nativeType='nsISecureBrowserUI', notflattened=True) 2014 addExternalIface('nsIWebProgress', nativeType='nsIWebProgress', notflattened=True) 2015 addExternalIface('nsIDOMGeoPosition', nativeType='nsIDOMGeoPosition', notflattened=True) 2016 addExternalIface('nsIWebNavigation', nativeType='nsIWebNavigation', notflattened=True) 2017 addExternalIface('nsIEditor', nativeType='nsIEditor', notflattened=True) 2018 addExternalIface('nsIWebBrowserPersistDocumentReceiver', 2019 nativeType='nsIWebBrowserPersistDocumentReceiver', 2020 headerFile='nsIWebBrowserPersistDocument.h', 2021 notflattened=True) 2022 addExternalIface('nsIWebProgressListener', nativeType='nsIWebProgressListener', 2023 notflattened=True) 2024 addExternalIface('OutputStream', nativeType='nsIOutputStream', 2025 notflattened=True) 2026 addExternalIface('Principal', nativeType='nsIPrincipal', 2027 headerFile='nsIPrincipal.h', notflattened=True) 2028 addExternalIface('StackFrame', nativeType='nsIStackFrame', 2029 headerFile='nsIException.h', notflattened=True) 2030 addExternalIface('RemoteTab', nativeType='nsIRemoteTab', 2031 notflattened=True) 2032 addExternalIface('URI', nativeType='nsIURI', headerFile='nsIURI.h', 2033 notflattened=True) 2034 addExternalIface('XULCommandDispatcher', notflattened=True) 2035 addExternalIface('nsISHistory', nativeType='nsISHistory', notflattened=True) 2036 addExternalIface('nsISHEntry', nativeType='nsISHEntry', notflattened=True) 2037 addExternalIface('ReferrerInfo', nativeType='nsIReferrerInfo') 2038 addExternalIface('nsIPermissionDelegateHandler', 2039 nativeType='nsIPermissionDelegateHandler', 2040 notflattened=True) 2041 addExternalIface('nsIOpenWindowInfo', nativeType='nsIOpenWindowInfo', 2042 notflattened=True) 2043 addExternalIface('nsICookieJarSettings', nativeType='nsICookieJarSettings', 2044 notflattened=True) 2045 addExternalIface('nsIGleanPing', headerFile='mozilla/glean/bindings/Ping.h', 2046 nativeType='nsIGleanPing', notflattened=True) 2047 addExternalIface('nsISessionStoreRestoreData', 2048 nativeType='nsISessionStoreRestoreData', 2049 headerFile='nsISessionStoreRestoreData.h', notflattened=True) 2050 addExternalIface('nsIScreen', nativeType='nsIScreen', 2051 headerFile='nsIScreen.h', notflattened=True) 2052 addExternalIface('InputStream', 2053 nativeType='nsIInputStream', notflattened=True) 2054 addExternalIface('nsIRFPTargetSetIDL', nativeType='nsIRFPTargetSetIDL') 2055 2056 # The TemplatedAttributes dictionary has the interface name where the template 2057 # should be generated as the key. The values are lists of dictionaries, where 2058 # each dictionary corresponds to one template. The dictionary contains: 2059 # 2060 # template the template's name 2061 # getter the name for the native getter to call 2062 # setter the name for the native setter to call 2063 # argument a tuple for the additional argument that should be passed to the 2064 # native getter and setter, containing the type for the argument 2065 # and a name for the argument. The value will be supplied by the 2066 # [BindingTemplate] extended attribute. 2067 # attrName a string which in the generated C++ code would yield a 2068 # |const char*| that contains the attribute's name 2069 2070 TemplatedAttributes = { 2071 2072 'CSSStyleProperties': [ 2073 { 2074 'template': 'CSS2Property', 2075 'getter': 'GetPropertyValue', 2076 'setter': 'SetPropertyValue', 2077 'argument': ('NonCustomCSSPropertyId', 'id'), 2078 'attrName': 'nsCSSProps::PropertyIDLName(id)', 2079 }, 2080 ], 2081 2082 'CSSPageDescriptors': [ 2083 { 2084 'template': 'CSSPageDescriptor', 2085 'getter': 'GetPropertyValue', 2086 'setter': 'SetPropertyValue', 2087 'argument': ('NonCustomCSSPropertyId', 'id'), 2088 'attrName': 'nsCSSProps::PropertyIDLName(id)', 2089 }, 2090 ], 2091 2092 'CSSPositionTryDescriptors': [ 2093 { 2094 'template': 'CSSPositionTryDescriptor', 2095 'getter': 'GetPropertyValue', 2096 'setter': 'SetPropertyValue', 2097 'argument': ('NonCustomCSSPropertyId', 'id'), 2098 'attrName': 'nsCSSProps::PropertyIDLName(id)', 2099 }, 2100 ], 2101 2102 }