Changeset 149796 in webkit


Ignore:
Timestamp:
May 9, 2013 12:38:21 AM (11 years ago)
Author:
Christophe Dumez
Message:

Add support for [NoInterfaceObject] Web IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=115714

Reviewed by Kentaro Hara.

.:

Update GENERATE_BINDINGS macro to take an additional _window_constructors_file
optional argument.

  • Source/cmake/WebKitMacros.cmake:

Source/WebCore:

*Constructor attributes on the global DOMWindow object are now automatically
generated for each non-callback interface that is not declared with the
[NoInterfaceObject] extended attribute. It is thus no longer needed for
developers to manually add *Constructor attributes for their new interfaces
unless they wish to register an "extra" constructor for their interface.

This patch does not modify at all the behavior on JS side. To achieve this,
[NoInterfaceObject] extended attribute is added to interfaces that should
not have it according to specification (e.g. History, Location, ...).
This can be improved later as the behavior should not change with this
patch.

No new tests, no behavior change.

  • CMakeLists.txt:
  • DerivedSources.make:
  • DerivedSources.pri:
  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • Modules/battery/BatteryManager.idl:
  • Modules/encryptedmedia/MediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/MediaKeyNeededEvent.idl:
  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/filesystem/DOMFileSystem.idl:
  • Modules/filesystem/DOMFileSystemSync.idl:
  • Modules/filesystem/DirectoryEntry.idl:
  • Modules/filesystem/DirectoryEntrySync.idl:
  • Modules/filesystem/DirectoryReader.idl:
  • Modules/filesystem/DirectoryReaderSync.idl:
  • Modules/filesystem/Entry.idl:
  • Modules/filesystem/EntryArray.idl:
  • Modules/filesystem/EntryArraySync.idl:
  • Modules/filesystem/EntrySync.idl:
  • Modules/filesystem/FileEntry.idl:
  • Modules/filesystem/FileEntrySync.idl:
  • Modules/filesystem/FileWriter.idl:
  • Modules/filesystem/FileWriterSync.idl:
  • Modules/filesystem/Metadata.idl:
  • Modules/gamepad/Gamepad.idl:
  • Modules/gamepad/GamepadList.idl:
  • Modules/geolocation/Coordinates.idl:
  • Modules/geolocation/Geolocation.idl:
  • Modules/geolocation/Geoposition.idl:
  • Modules/geolocation/PositionError.idl:
  • Modules/indexeddb/DOMWindowIndexedDatabase.idl:
  • Modules/indexeddb/IDBAny.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediasource/SourceBufferList.idl:
  • Modules/mediastream/DOMWindowMediaStream.idl: Removed.
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/MediaStreamTrack.idl:
  • Modules/mediastream/MediaStreamTrackEvent.idl:
  • Modules/mediastream/NavigatorUserMediaError.idl:
  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCDTMFToneChangeEvent.idl:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCDataChannelEvent.idl:
  • Modules/mediastream/RTCIceCandidateEvent.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCStatsReport.idl:
  • Modules/mediastream/RTCStatsResponse.idl:
  • Modules/networkinfo/NetworkInfoConnection.idl:
  • Modules/notifications/DOMWindowNotifications.idl:
  • Modules/notifications/NotificationCenter.idl:
  • Modules/quota/StorageInfo.idl:
  • Modules/quota/StorageQuota.idl:
  • Modules/speech/DOMWindowSpeech.idl: Removed.
  • Modules/speech/DOMWindowSpeechSynthesis.idl:
  • Modules/speech/SpeechGrammar.idl:
  • Modules/speech/SpeechGrammarList.idl:
  • Modules/speech/SpeechRecognition.idl:
  • Modules/speech/SpeechRecognitionAlternative.idl:
  • Modules/speech/SpeechRecognitionError.idl:
  • Modules/speech/SpeechRecognitionEvent.idl:
  • Modules/speech/SpeechRecognitionResult.idl:
  • Modules/speech/SpeechRecognitionResultList.idl:
  • Modules/speech/SpeechSynthesis.idl:
  • Modules/speech/SpeechSynthesisVoice.idl:
  • Modules/webaudio/AnalyserNode.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioDestinationNode.idl:
  • Modules/webaudio/AudioListener.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/AudioSourceNode.idl:
  • Modules/webaudio/BiquadFilterNode.idl:
  • Modules/webaudio/ChannelMergerNode.idl:
  • Modules/webaudio/ChannelSplitterNode.idl:
  • Modules/webaudio/ConvolverNode.idl:
  • Modules/webaudio/DOMWindowWebAudio.idl: Removed.
  • Modules/webaudio/DelayNode.idl:
  • Modules/webaudio/DynamicsCompressorNode.idl:
  • Modules/webaudio/GainNode.idl:
  • Modules/webaudio/MediaElementAudioSourceNode.idl:
  • Modules/webaudio/MediaStreamAudioDestinationNode.idl:
  • Modules/webaudio/MediaStreamAudioSourceNode.idl:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webaudio/OscillatorNode.idl:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webaudio/ScriptProcessorNode.idl:
  • Modules/webaudio/WaveShaperNode.idl:
  • Modules/webaudio/WaveTable.idl:
  • Modules/webdatabase/DOMWindowWebDatabase.idl:
  • Modules/webdatabase/Database.idl:
  • Modules/webdatabase/DatabaseSync.idl:
  • Modules/webdatabase/SQLError.idl:
  • Modules/webdatabase/SQLResultSet.idl:
  • Modules/webdatabase/SQLResultSetRowList.idl:
  • Modules/webdatabase/SQLTransaction.idl:
  • Modules/webdatabase/SQLTransactionSync.idl:
  • Modules/websockets/DOMWindowWebSocket.idl: Removed.
  • Modules/websockets/WebSocket.idl:
  • PlatformBlackBerry.cmake:
  • UseJSC.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/IDLParser.pm:

(parseTypedef):

  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttribute):
(getFileContents):
(getPartialInterfaceNameFromIDL):
(isCallbackInterfaceFromIDL):
(trim):
(getInterfaceExtendedAttributesFromIDL):

  • css/CSSFontFaceLoadEvent.idl:
  • css/CSSFontFaceRule.idl:
  • css/CSSSupportsRule.idl:
  • css/CSSUnknownRule.idl:
  • css/DOMWindowCSS.idl:
  • css/FontLoader.idl:
  • css/MediaQueryList.idl:
  • css/MediaQueryListListener.idl:
  • css/StyleMedia.idl:
  • dom/CustomElementConstructor.idl:
  • dom/DOMError.idl:
  • dom/DOMNamedFlowCollection.idl:
  • dom/DataTransferItem.idl:
  • dom/DataTransferItemList.idl:
  • dom/EventListener.idl:
  • dom/EventTarget.idl:
  • dom/NodeIterator.idl:
  • dom/ShadowRoot.idl:
  • dom/TreeWalker.idl:
  • dom/WebKitNamedFlow.idl:
  • fileapi/FileException.idl:
  • fileapi/FileReaderSync.idl:
  • html/HTMLAudioElement.idl:
  • html/HTMLDetailsElement.idl:
  • html/HTMLOptionElement.idl:
  • html/MediaError.idl:
  • html/MediaKeyError.idl:
  • html/MicroDataItemValue.idl:
  • html/RadioNodeList.idl:
  • html/ValidityState.idl:
  • html/canvas/CanvasRenderingContext.idl:
  • html/canvas/DOMPath.idl:
  • html/canvas/EXTDrawBuffers.idl:
  • html/canvas/EXTTextureFilterAnisotropic.idl:
  • html/canvas/OESElementIndexUint.idl:
  • html/canvas/OESStandardDerivatives.idl:
  • html/canvas/OESTextureFloat.idl:
  • html/canvas/OESTextureHalfFloat.idl:
  • html/canvas/OESVertexArrayObject.idl:
  • html/canvas/WebGLCompressedTextureATC.idl:
  • html/canvas/WebGLCompressedTexturePVRTC.idl:
  • html/canvas/WebGLCompressedTextureS3TC.idl:
  • html/canvas/WebGLContextAttributes.idl:
  • html/canvas/WebGLDebugRendererInfo.idl:
  • html/canvas/WebGLDebugShaders.idl:
  • html/canvas/WebGLDepthTexture.idl:
  • html/canvas/WebGLLoseContext.idl:
  • html/canvas/WebGLVertexArrayObjectOES.idl:
  • html/track/AudioTrack.idl:
  • html/track/AudioTrackList.idl:
  • html/track/TextTrackRegionList.idl:
  • html/track/VideoTrack.idl:
  • html/track/VideoTrackList.idl:
  • inspector/InjectedScriptHost.idl:
  • inspector/InspectorFrontendHost.idl:
  • inspector/JavaScriptCallFrame.idl:
  • inspector/ScriptProfile.idl:
  • inspector/ScriptProfileNode.idl:
  • loader/appcache/DOMApplicationCache.idl:
  • page/AbstractView.idl:
  • page/BarInfo.idl:
  • page/Console.idl:
  • page/Crypto.idl:
  • page/DOMSecurityPolicy.idl:
  • page/DOMWindow.idl:
  • page/History.idl:
  • page/Location.idl:
  • page/MemoryInfo.idl:
  • page/Navigator.idl:
  • page/PagePopupController.idl:
  • page/Performance.idl:
  • page/PerformanceEntry.idl:
  • page/PerformanceEntryList.idl:
  • page/PerformanceMark.idl:
  • page/PerformanceMeasure.idl:
  • page/PerformanceNavigation.idl:
  • page/PerformanceResourceTiming.idl:
  • page/PerformanceTiming.idl:
  • page/Screen.idl:
  • page/SpeechInputResult.idl:
  • page/SpeechInputResultList.idl:
  • page/WorkerNavigator.idl:
  • page/make_settings.pl:

(generateInternalSettingsIdlFile):

  • svg/ElementTimeControl.idl:
  • svg/SVGAnimationElement.idl:
  • svg/SVGExternalResourcesRequired.idl:
  • svg/SVGFilterPrimitiveStandardAttributes.idl:
  • svg/SVGFitToViewBox.idl:
  • svg/SVGLangSpace.idl:
  • svg/SVGLocatable.idl:
  • svg/SVGStyledElement.idl:
  • svg/SVGTests.idl:
  • svg/SVGTransformable.idl:
  • svg/SVGURIReference.idl:
  • testing/InternalSettings.idl:
  • testing/Internals.idl:
  • testing/MallocStatistics.idl:
  • testing/TypeConversions.idl:
  • workers/AbstractWorker.idl:
  • workers/DedicatedWorkerContext.idl:
  • workers/SharedWorker.idl:
  • workers/SharedWorkerContext.idl:
  • workers/WorkerContext.idl:
  • workers/WorkerLocation.idl:
  • xml/XPathExpression.idl:
  • xml/XPathNSResolver.idl:

Tools:

Update BindingsTests.generate_supplemental_dependency() to pass an
additional windowConstructorsFile argument to preprocess-idls.pl.

  • Scripts/webkitpy/bindings/main.py:

(BindingsTests.generate_supplemental_dependency):
(BindingsTests.main):

Location:
trunk
Files:
4 deleted
215 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r149759 r149796  
     12013-05-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
     2
     3        Add support for [NoInterfaceObject] Web IDL extended attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=115714
     5
     6        Reviewed by Kentaro Hara.
     7
     8        Update GENERATE_BINDINGS macro to take an additional _window_constructors_file
     9        optional argument.
     10
     11        * Source/cmake/WebKitMacros.cmake:
     12
    1132013-05-08  José Dapena Paz  <jdapena@igalia.com> and Zan Dobersek  <zdobersek@igalia.com>
    214
  • trunk/Source/WebCore/CMakeLists.txt

    r149708 r149796  
    207207    Modules/mediasource/SourceBufferList.idl
    208208
    209     Modules/mediastream/DOMWindowMediaStream.idl
    210209    Modules/mediastream/LocalMediaStream.idl
    211210    Modules/mediastream/MediaStream.idl
     
    262261    Modules/webaudio/BiquadFilterNode.idl
    263262    Modules/webaudio/ConvolverNode.idl
    264     Modules/webaudio/DOMWindowWebAudio.idl
    265263    Modules/webaudio/DelayNode.idl
    266264    Modules/webaudio/DynamicsCompressorNode.idl
     
    292290
    293291    Modules/websockets/CloseEvent.idl
    294     Modules/websockets/DOMWindowWebSocket.idl
    295292    Modules/websockets/WebSocket.idl
    296293    Modules/websockets/WorkerContextWebSocket.idl
     
    29492946set(IDL_FILES_TMP ${DERIVED_SOURCES_WEBCORE_DIR}/idl_files.tmp)
    29502947set(SUPPLEMENTAL_DEPENDENCY_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/supplemental_dependency.tmp)
     2948set(WINDOW_CONSTRUCTORS_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/DOMWindowConstructors.idl)
    29512949set(IDL_ATTRIBUTES_FILE ${WEBCORE_DIR}/bindings/scripts/IDLAttributes.txt)
    29522950
  • trunk/Source/WebCore/ChangeLog

    r149795 r149796  
     12013-05-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
     2
     3        Add support for [NoInterfaceObject] Web IDL extended attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=115714
     5
     6        Reviewed by Kentaro Hara.
     7
     8        *Constructor attributes on the global DOMWindow object are now automatically
     9        generated for each non-callback interface that is not declared with the
     10        [NoInterfaceObject] extended attribute. It is thus no longer needed for
     11        developers to manually add *Constructor attributes for their new interfaces
     12        unless they wish to register an "extra" constructor for their interface.
     13
     14        This patch does not modify at all the behavior on JS side. To achieve this,
     15        [NoInterfaceObject] extended attribute is added to interfaces that should
     16        not have it according to specification (e.g. History, Location, ...).
     17        This can be improved later as the behavior should not change with this
     18        patch.
     19
     20        No new tests, no behavior change.
     21
     22        * CMakeLists.txt:
     23        * DerivedSources.make:
     24        * DerivedSources.pri:
     25        * GNUmakefile.am:
     26        * GNUmakefile.list.am:
     27        * Modules/battery/BatteryManager.idl:
     28        * Modules/encryptedmedia/MediaKeyMessageEvent.idl:
     29        * Modules/encryptedmedia/MediaKeyNeededEvent.idl:
     30        * Modules/encryptedmedia/MediaKeySession.idl:
     31        * Modules/encryptedmedia/MediaKeys.idl:
     32        * Modules/filesystem/DOMFileSystem.idl:
     33        * Modules/filesystem/DOMFileSystemSync.idl:
     34        * Modules/filesystem/DirectoryEntry.idl:
     35        * Modules/filesystem/DirectoryEntrySync.idl:
     36        * Modules/filesystem/DirectoryReader.idl:
     37        * Modules/filesystem/DirectoryReaderSync.idl:
     38        * Modules/filesystem/Entry.idl:
     39        * Modules/filesystem/EntryArray.idl:
     40        * Modules/filesystem/EntryArraySync.idl:
     41        * Modules/filesystem/EntrySync.idl:
     42        * Modules/filesystem/FileEntry.idl:
     43        * Modules/filesystem/FileEntrySync.idl:
     44        * Modules/filesystem/FileWriter.idl:
     45        * Modules/filesystem/FileWriterSync.idl:
     46        * Modules/filesystem/Metadata.idl:
     47        * Modules/gamepad/Gamepad.idl:
     48        * Modules/gamepad/GamepadList.idl:
     49        * Modules/geolocation/Coordinates.idl:
     50        * Modules/geolocation/Geolocation.idl:
     51        * Modules/geolocation/Geoposition.idl:
     52        * Modules/geolocation/PositionError.idl:
     53        * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
     54        * Modules/indexeddb/IDBAny.idl:
     55        * Modules/mediasource/MediaSource.idl:
     56        * Modules/mediasource/SourceBuffer.idl:
     57        * Modules/mediasource/SourceBufferList.idl:
     58        * Modules/mediastream/DOMWindowMediaStream.idl: Removed.
     59        * Modules/mediastream/MediaStream.idl:
     60        * Modules/mediastream/MediaStreamTrack.idl:
     61        * Modules/mediastream/MediaStreamTrackEvent.idl:
     62        * Modules/mediastream/NavigatorUserMediaError.idl:
     63        * Modules/mediastream/RTCDTMFSender.idl:
     64        * Modules/mediastream/RTCDTMFToneChangeEvent.idl:
     65        * Modules/mediastream/RTCDataChannel.idl:
     66        * Modules/mediastream/RTCDataChannelEvent.idl:
     67        * Modules/mediastream/RTCIceCandidateEvent.idl:
     68        * Modules/mediastream/RTCPeerConnection.idl:
     69        * Modules/mediastream/RTCStatsReport.idl:
     70        * Modules/mediastream/RTCStatsResponse.idl:
     71        * Modules/networkinfo/NetworkInfoConnection.idl:
     72        * Modules/notifications/DOMWindowNotifications.idl:
     73        * Modules/notifications/NotificationCenter.idl:
     74        * Modules/quota/StorageInfo.idl:
     75        * Modules/quota/StorageQuota.idl:
     76        * Modules/speech/DOMWindowSpeech.idl: Removed.
     77        * Modules/speech/DOMWindowSpeechSynthesis.idl:
     78        * Modules/speech/SpeechGrammar.idl:
     79        * Modules/speech/SpeechGrammarList.idl:
     80        * Modules/speech/SpeechRecognition.idl:
     81        * Modules/speech/SpeechRecognitionAlternative.idl:
     82        * Modules/speech/SpeechRecognitionError.idl:
     83        * Modules/speech/SpeechRecognitionEvent.idl:
     84        * Modules/speech/SpeechRecognitionResult.idl:
     85        * Modules/speech/SpeechRecognitionResultList.idl:
     86        * Modules/speech/SpeechSynthesis.idl:
     87        * Modules/speech/SpeechSynthesisVoice.idl:
     88        * Modules/webaudio/AnalyserNode.idl:
     89        * Modules/webaudio/AudioBuffer.idl:
     90        * Modules/webaudio/AudioBufferSourceNode.idl:
     91        * Modules/webaudio/AudioContext.idl:
     92        * Modules/webaudio/AudioDestinationNode.idl:
     93        * Modules/webaudio/AudioListener.idl:
     94        * Modules/webaudio/AudioNode.idl:
     95        * Modules/webaudio/AudioParam.idl:
     96        * Modules/webaudio/AudioSourceNode.idl:
     97        * Modules/webaudio/BiquadFilterNode.idl:
     98        * Modules/webaudio/ChannelMergerNode.idl:
     99        * Modules/webaudio/ChannelSplitterNode.idl:
     100        * Modules/webaudio/ConvolverNode.idl:
     101        * Modules/webaudio/DOMWindowWebAudio.idl: Removed.
     102        * Modules/webaudio/DelayNode.idl:
     103        * Modules/webaudio/DynamicsCompressorNode.idl:
     104        * Modules/webaudio/GainNode.idl:
     105        * Modules/webaudio/MediaElementAudioSourceNode.idl:
     106        * Modules/webaudio/MediaStreamAudioDestinationNode.idl:
     107        * Modules/webaudio/MediaStreamAudioSourceNode.idl:
     108        * Modules/webaudio/OfflineAudioContext.idl:
     109        * Modules/webaudio/OscillatorNode.idl:
     110        * Modules/webaudio/PannerNode.idl:
     111        * Modules/webaudio/ScriptProcessorNode.idl:
     112        * Modules/webaudio/WaveShaperNode.idl:
     113        * Modules/webaudio/WaveTable.idl:
     114        * Modules/webdatabase/DOMWindowWebDatabase.idl:
     115        * Modules/webdatabase/Database.idl:
     116        * Modules/webdatabase/DatabaseSync.idl:
     117        * Modules/webdatabase/SQLError.idl:
     118        * Modules/webdatabase/SQLResultSet.idl:
     119        * Modules/webdatabase/SQLResultSetRowList.idl:
     120        * Modules/webdatabase/SQLTransaction.idl:
     121        * Modules/webdatabase/SQLTransactionSync.idl:
     122        * Modules/websockets/DOMWindowWebSocket.idl: Removed.
     123        * Modules/websockets/WebSocket.idl:
     124        * PlatformBlackBerry.cmake:
     125        * UseJSC.cmake:
     126        * WebCore.xcodeproj/project.pbxproj:
     127        * bindings/scripts/IDLAttributes.txt:
     128        * bindings/scripts/IDLParser.pm:
     129        (parseTypedef):
     130        * bindings/scripts/preprocess-idls.pl:
     131        (GenerateConstructorAttribute):
     132        (getFileContents):
     133        (getPartialInterfaceNameFromIDL):
     134        (isCallbackInterfaceFromIDL):
     135        (trim):
     136        (getInterfaceExtendedAttributesFromIDL):
     137        * css/CSSFontFaceLoadEvent.idl:
     138        * css/CSSFontFaceRule.idl:
     139        * css/CSSSupportsRule.idl:
     140        * css/CSSUnknownRule.idl:
     141        * css/DOMWindowCSS.idl:
     142        * css/FontLoader.idl:
     143        * css/MediaQueryList.idl:
     144        * css/MediaQueryListListener.idl:
     145        * css/StyleMedia.idl:
     146        * dom/CustomElementConstructor.idl:
     147        * dom/DOMError.idl:
     148        * dom/DOMNamedFlowCollection.idl:
     149        * dom/DataTransferItem.idl:
     150        * dom/DataTransferItemList.idl:
     151        * dom/EventListener.idl:
     152        * dom/EventTarget.idl:
     153        * dom/NodeIterator.idl:
     154        * dom/ShadowRoot.idl:
     155        * dom/TreeWalker.idl:
     156        * dom/WebKitNamedFlow.idl:
     157        * fileapi/FileException.idl:
     158        * fileapi/FileReaderSync.idl:
     159        * html/HTMLAudioElement.idl:
     160        * html/HTMLDetailsElement.idl:
     161        * html/HTMLOptionElement.idl:
     162        * html/MediaError.idl:
     163        * html/MediaKeyError.idl:
     164        * html/MicroDataItemValue.idl:
     165        * html/RadioNodeList.idl:
     166        * html/ValidityState.idl:
     167        * html/canvas/CanvasRenderingContext.idl:
     168        * html/canvas/DOMPath.idl:
     169        * html/canvas/EXTDrawBuffers.idl:
     170        * html/canvas/EXTTextureFilterAnisotropic.idl:
     171        * html/canvas/OESElementIndexUint.idl:
     172        * html/canvas/OESStandardDerivatives.idl:
     173        * html/canvas/OESTextureFloat.idl:
     174        * html/canvas/OESTextureHalfFloat.idl:
     175        * html/canvas/OESVertexArrayObject.idl:
     176        * html/canvas/WebGLCompressedTextureATC.idl:
     177        * html/canvas/WebGLCompressedTexturePVRTC.idl:
     178        * html/canvas/WebGLCompressedTextureS3TC.idl:
     179        * html/canvas/WebGLContextAttributes.idl:
     180        * html/canvas/WebGLDebugRendererInfo.idl:
     181        * html/canvas/WebGLDebugShaders.idl:
     182        * html/canvas/WebGLDepthTexture.idl:
     183        * html/canvas/WebGLLoseContext.idl:
     184        * html/canvas/WebGLVertexArrayObjectOES.idl:
     185        * html/track/AudioTrack.idl:
     186        * html/track/AudioTrackList.idl:
     187        * html/track/TextTrackRegionList.idl:
     188        * html/track/VideoTrack.idl:
     189        * html/track/VideoTrackList.idl:
     190        * inspector/InjectedScriptHost.idl:
     191        * inspector/InspectorFrontendHost.idl:
     192        * inspector/JavaScriptCallFrame.idl:
     193        * inspector/ScriptProfile.idl:
     194        * inspector/ScriptProfileNode.idl:
     195        * loader/appcache/DOMApplicationCache.idl:
     196        * page/AbstractView.idl:
     197        * page/BarInfo.idl:
     198        * page/Console.idl:
     199        * page/Crypto.idl:
     200        * page/DOMSecurityPolicy.idl:
     201        * page/DOMWindow.idl:
     202        * page/History.idl:
     203        * page/Location.idl:
     204        * page/MemoryInfo.idl:
     205        * page/Navigator.idl:
     206        * page/PagePopupController.idl:
     207        * page/Performance.idl:
     208        * page/PerformanceEntry.idl:
     209        * page/PerformanceEntryList.idl:
     210        * page/PerformanceMark.idl:
     211        * page/PerformanceMeasure.idl:
     212        * page/PerformanceNavigation.idl:
     213        * page/PerformanceResourceTiming.idl:
     214        * page/PerformanceTiming.idl:
     215        * page/Screen.idl:
     216        * page/SpeechInputResult.idl:
     217        * page/SpeechInputResultList.idl:
     218        * page/WorkerNavigator.idl:
     219        * page/make_settings.pl:
     220        (generateInternalSettingsIdlFile):
     221        * svg/ElementTimeControl.idl:
     222        * svg/SVGAnimationElement.idl:
     223        * svg/SVGExternalResourcesRequired.idl:
     224        * svg/SVGFilterPrimitiveStandardAttributes.idl:
     225        * svg/SVGFitToViewBox.idl:
     226        * svg/SVGLangSpace.idl:
     227        * svg/SVGLocatable.idl:
     228        * svg/SVGStyledElement.idl:
     229        * svg/SVGTests.idl:
     230        * svg/SVGTransformable.idl:
     231        * svg/SVGURIReference.idl:
     232        * testing/InternalSettings.idl:
     233        * testing/Internals.idl:
     234        * testing/MallocStatistics.idl:
     235        * testing/TypeConversions.idl:
     236        * workers/AbstractWorker.idl:
     237        * workers/DedicatedWorkerContext.idl:
     238        * workers/SharedWorker.idl:
     239        * workers/SharedWorkerContext.idl:
     240        * workers/WorkerContext.idl:
     241        * workers/WorkerLocation.idl:
     242        * xml/XPathExpression.idl:
     243        * xml/XPathNSResolver.idl:
     244
    12452013-05-09  ChangSeok Oh  <changseok.oh@collabora.com>
    2246
  • trunk/Source/WebCore/DerivedSources.make

    r149569 r149796  
    148148    $(WebCore)/Modules/webaudio/BiquadFilterNode.idl \
    149149    $(WebCore)/Modules/webaudio/ConvolverNode.idl \
    150     $(WebCore)/Modules/webaudio/DOMWindowWebAudio.idl \
    151150    $(WebCore)/Modules/webaudio/DelayNode.idl \
    152151    $(WebCore)/Modules/webaudio/DynamicsCompressorNode.idl \
     
    177176    $(WebCore)/Modules/webdatabase/WorkerContextWebDatabase.idl \
    178177    $(WebCore)/Modules/websockets/CloseEvent.idl \
    179     $(WebCore)/Modules/websockets/DOMWindowWebSocket.idl \
    180178    $(WebCore)/Modules/websockets/WebSocket.idl \
    181179    $(WebCore)/Modules/websockets/WorkerContextWebSocket.idl \
     
    663661all : \
    664662    $(SUPPLEMENTAL_DEPENDENCY_FILE) \
     663    $(WINDOW_CONSTRUCTORS_FILE) \
    665664    $(JS_DOM_HEADERS) \
    666665    $(WEB_DOM_HEADERS) \
     
    10031002SUPPLEMENTAL_DEPENDENCY_FILE = ./SupplementalDependencies.txt
    10041003SUPPLEMENTAL_MAKEFILE_DEPS = ./SupplementalDependencies.dep
     1004WINDOW_CONSTRUCTORS_FILE = ./DOMWindowConstructors.idl
    10051005IDL_FILES_TMP = ./idl_files.tmp
    10061006ADDITIONAL_IDLS = $(WebCore)/inspector/JavaScriptCallFrame.idl
     
    10141014$(SUPPLEMENTAL_MAKEFILE_DEPS) : $(PREPROCESS_IDLS_SCRIPTS) $(BINDING_IDLS) $(ADDITIONAL_IDLS)
    10151015        printf "$(subst $(space),,$(patsubst %,%\n,$(BINDING_IDLS) $(ADDITIONAL_IDLS)))" > $(IDL_FILES_TMP)
    1016         $(call preprocess_idls_script, $(PREPROCESS_IDLS_SCRIPTS)) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) --supplementalMakefileDeps $@
     1016        $(call preprocess_idls_script, $(PREPROCESS_IDLS_SCRIPTS)) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) --windowConstructorsFile $(WINDOW_CONSTRUCTORS_FILE) --supplementalMakefileDeps $@
    10171017        rm -f $(IDL_FILES_TMP)
    10181018
    1019 JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE)
     1019JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(WINDOW_CONSTRUCTORS_FILE)
    10201020        $(call generator_script, $(JS_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --idlAttributesFile $(IDL_ATTRIBUTES_FILE) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) $<
    10211021
  • trunk/Source/WebCore/DerivedSources.pri

    r149569 r149796  
    162162    $$PWD/Modules/webaudio/ConvolverNode.idl \
    163163    $$PWD/Modules/webaudio/DelayNode.idl \
    164     $$PWD/Modules/webaudio/DOMWindowWebAudio.idl \
    165164    $$PWD/Modules/webaudio/DynamicsCompressorNode.idl \
    166165    $$PWD/Modules/webaudio/ScriptProcessorNode.idl \
     
    190189    $$PWD/Modules/webdatabase/WorkerContextWebDatabase.idl \
    191190    $$PWD/Modules/websockets/CloseEvent.idl \
    192     $$PWD/Modules/websockets/DOMWindowWebSocket.idl \
    193191    $$PWD/Modules/websockets/WebSocket.idl \
    194192    $$PWD/Modules/websockets/WorkerContextWebSocket.idl \
     
    734732# GENERATOR 0: Resolve [Supplemental] dependency in IDLs
    735733SUPPLEMENTAL_DEPENDENCY_FILE = supplemental_dependency.tmp
     734WINDOW_CONSTRUCTORS_FILE = DOMWindowConstructors.idl
    736735IDL_FILES_TMP = ${QMAKE_FUNC_FILE_OUT_PATH}/idl_files.tmp
    737736PREPROCESS_IDLS_SCRIPT = $$PWD/bindings/scripts/preprocess-idls.pl
     
    751750                               --defines \"$$javascriptFeatureDefines()\" \
    752751                               --idlFilesList $$IDL_FILES_TMP \
    753                                --supplementalDependencyFile ${QMAKE_FUNC_FILE_OUT_PATH}/$$SUPPLEMENTAL_DEPENDENCY_FILE
    754 preprocessIdls.output = $$SUPPLEMENTAL_DEPENDENCY_FILE
     752                               --supplementalDependencyFile ${QMAKE_FUNC_FILE_OUT_PATH}/$$SUPPLEMENTAL_DEPENDENCY_FILE \
     753                               --windowConstructorsFile ${QMAKE_FUNC_FILE_OUT_PATH}/$$WINDOW_CONSTRUCTORS_FILE
     754preprocessIdls.output = $$SUPPLEMENTAL_DEPENDENCY_FILE $$WINDOW_CONSTRUCTORS_FILE
    755755preprocessIdls.add_output_to_sources = false
    756756preprocessIdls.depends = $$IDL_BINDINGS
  • trunk/Source/WebCore/GNUmakefile.am

    r149759 r149796  
    408408
    409409supplemental_dependency_file = $(top_builddir)/DerivedSources/WebCore/idl_supplemental_dependencies
     410window_constructors_file = $(top_builddir)/DerivedSources/WebCore/DOMWindowConstructors.idl
    410411idl_files_list = $(top_builddir)/DerivedSources/WebCore/idl_files_list
    411412idl_attributes_file = $(WebCore)/bindings/scripts/IDLAttributes.txt
     
    416417        $(AM_V_at)echo -n > $(idl_files_list)
    417418        $(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) echo -n) >> $(idl_files_list)
    418         $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --idlFilesList $(idl_files_list) --supplementalDependencyFile $@
     419        $(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --idlFilesList $(idl_files_list) --windowConstructorsFile $(window_constructors_file) --supplementalDependencyFile $@
    419420
    420421# This does not appear to work correctly with gnumake unless
     
    423424
    424425.SECONDARY:
    425 DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file)
     426DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file) $(window_constructors_file)
    426427        $(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(feature_defines)" --generator JS --idlAttributesFile $(idl_attributes_file) --supplementalDependencyFile $(supplemental_dependency_file) $<
    427428
  • trunk/Source/WebCore/GNUmakefile.list.am

    r149759 r149796  
    12701270        $(WebCore)/Modules/mediasource/SourceBuffer.idl \
    12711271        $(WebCore)/Modules/mediasource/SourceBufferList.idl \
    1272         $(WebCore)/Modules/mediastream/DOMWindowMediaStream.idl \
    12731272        $(WebCore)/Modules/mediastream/LocalMediaStream.idl \
    12741273        $(WebCore)/Modules/mediastream/MediaStream.idl \
     
    13251324        $(WebCore)/Modules/webaudio/ConvolverNode.idl \
    13261325        $(WebCore)/Modules/webaudio/DelayNode.idl \
    1327         $(WebCore)/Modules/webaudio/DOMWindowWebAudio.idl \
    13281326        $(WebCore)/Modules/webaudio/DynamicsCompressorNode.idl \
    13291327        $(WebCore)/Modules/webaudio/ScriptProcessorNode.idl \
     
    13531351        $(WebCore)/Modules/webdatabase/WorkerContextWebDatabase.idl \
    13541352        $(WebCore)/Modules/websockets/CloseEvent.idl \
    1355         $(WebCore)/Modules/websockets/DOMWindowWebSocket.idl \
    13561353        $(WebCore)/Modules/websockets/WebSocket.idl \
    13571354        $(WebCore)/Modules/websockets/WorkerContextWebSocket.idl \
  • trunk/Source/WebCore/Modules/battery/BatteryManager.idl

    r149368 r149796  
    2020// http://dev.w3.org/2009/dap/system-info/battery-status.html
    2121[
     22    NoInterfaceObject,
    2223    Conditional=BATTERY_STATUS,
    2324    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.idl

    r148480 r149796  
    2424 */
    2525
    26 interface [
     26[
    2727    Conditional=ENCRYPTED_MEDIA_V2,
    2828    ConstructorTemplate=Event
    29 ] MediaKeyMessageEvent : Event {
     29] interface MediaKeyMessageEvent : Event {
    3030    readonly attribute Uint8Array message;
    3131    readonly attribute [InitializedByEventConstructor] DOMString destinationURL;
  • trunk/Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.idl

    r148480 r149796  
    2424 */
    2525
    26 interface [
     26[
    2727    Conditional=ENCRYPTED_MEDIA_V2,
    2828    ConstructorTemplate=Event
    29 ] MediaKeyNeededEvent : Event {
     29] interface MediaKeyNeededEvent : Event {
    3030    readonly attribute Uint8Array initData;
    3131};
  • trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl

    r149368 r149796  
    2424     */
    2525
    26 interface [
     26[
    2727    Conditional=ENCRYPTED_MEDIA_V2,
    2828    EventTarget,
    29 ] MediaKeySession {
     29] interface MediaKeySession {
    3030    // error state
    3131    readonly attribute MediaKeyError error;
  • trunk/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl

    r149368 r149796  
    2424 */
    2525 
    26 interface [
     26[
    2727    Conditional=ENCRYPTED_MEDIA_V2,
    2828    Constructor(DOMString keySystem),
    2929    ConstructorRaisesException,
    30 ] MediaKeys {
     30] interface MediaKeys {
    3131    [CallWith=ScriptExecutionContext] MediaKeySession createSession([Default=Undefined] optional DOMString type, [Default=Undefined] optional Uint8Array initData)
    3232        raises(DOMException);
  • trunk/Source/WebCore/Modules/filesystem/DOMFileSystem.idl

    r131172 r149796  
    3131
    3232[
     33    NoInterfaceObject,
    3334    Conditional=FILE_SYSTEM,
    3435    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/filesystem/DOMFileSystemSync.idl

    r131172 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    JSNoStaticTables
  • trunk/Source/WebCore/Modules/filesystem/DirectoryEntry.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    JSGenerateToNativeObject,
  • trunk/Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    JSGenerateToNativeObject,
  • trunk/Source/WebCore/Modules/filesystem/DirectoryReader.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    JSNoStaticTables,
  • trunk/Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl

    r141034 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    JSNoStaticTables,
  • trunk/Source/WebCore/Modules/filesystem/Entry.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    CustomToJSObject,
  • trunk/Source/WebCore/Modules/filesystem/EntryArray.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    IndexedGetter,
  • trunk/Source/WebCore/Modules/filesystem/EntryArraySync.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    IndexedGetter,
  • trunk/Source/WebCore/Modules/filesystem/EntrySync.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    CustomToJSObject,
  • trunk/Source/WebCore/Modules/filesystem/FileEntry.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    JSGenerateToNativeObject,
  • trunk/Source/WebCore/Modules/filesystem/FileEntrySync.idl

    r131172 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    JSGenerateToNativeObject,
  • trunk/Source/WebCore/Modules/filesystem/FileWriter.idl

    r149368 r149796  
    3131
    3232[
     33    NoInterfaceObject,
    3334    Conditional=FILE_SYSTEM,
    3435    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/filesystem/FileWriterSync.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    JSNoStaticTables
  • trunk/Source/WebCore/Modules/filesystem/Metadata.idl

    r141034 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FILE_SYSTEM,
    3334    JSNoStaticTables,
  • trunk/Source/WebCore/Modules/gamepad/Gamepad.idl

    r141034 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=GAMEPAD,
    2829    ImplementationLacksVTable
  • trunk/Source/WebCore/Modules/gamepad/GamepadList.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=GAMEPAD,
    2829    IndexedGetter,
  • trunk/Source/WebCore/Modules/geolocation/Coordinates.idl

    r146645 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=GEOLOCATION,
    2829    OmitConstructor,
  • trunk/Source/WebCore/Modules/geolocation/Geolocation.idl

    r149368 r149796  
    2626// http://www.w3.org/TR/geolocation-API/#geolocation_interface
    2727[
     28    NoInterfaceObject,
    2829    Conditional=GEOLOCATION,
    2930    GenerateIsReachable=ImplFrame,
  • trunk/Source/WebCore/Modules/geolocation/Geoposition.idl

    r141034 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=GEOLOCATION,
    2829    OmitConstructor,
  • trunk/Source/WebCore/Modules/geolocation/PositionError.idl

    r141034 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=GEOLOCATION,
    2829    ImplementationLacksVTable
  • trunk/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl

    r149170 r149796  
    3030    [ImplementedAs=indexedDB] readonly attribute IDBFactory webkitIndexedDB;
    3131
    32     attribute IDBCursorConstructor webkitIDBCursor;
    33     attribute IDBDatabaseConstructor webkitIDBDatabase;
    34     attribute IDBFactoryConstructor webkitIDBFactory;
    35     attribute IDBIndexConstructor webkitIDBIndex;
    36     attribute IDBKeyRangeConstructor webkitIDBKeyRange;
    37     attribute IDBObjectStoreConstructor webkitIDBObjectStore;
    38     attribute IDBRequestConstructor webkitIDBRequest;
    39     attribute IDBTransactionConstructor webkitIDBTransaction;
    40 
    4132    readonly attribute IDBFactory indexedDB;
    42 
    43     attribute IDBCursorConstructor IDBCursor;
    44     attribute IDBCursorWithValueConstructor IDBCursorWithValue;
    45     attribute IDBDatabaseConstructor IDBDatabase;
    46     attribute IDBFactoryConstructor IDBFactory;
    47     attribute IDBIndexConstructor IDBIndex;
    48     attribute IDBKeyRangeConstructor IDBKeyRange;
    49     attribute IDBObjectStoreConstructor IDBObjectStore;
    50     attribute IDBOpenDBRequestConstructor IDBOpenDBRequest;
    51     attribute IDBRequestConstructor IDBRequest;
    52     attribute IDBTransactionConstructor IDBTransaction;
    53     attribute IDBVersionChangeEventConstructor IDBVersionChangeEvent;
    5433};
    5534
  • trunk/Source/WebCore/Modules/indexeddb/IDBAny.idl

    r148480 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=INDEXED_DATABASE,
    2829    CustomToJSObject,
  • trunk/Source/WebCore/Modules/mediasource/MediaSource.idl

    r149368 r149796  
    3030 
    3131[
     32    NoInterfaceObject,
    3233    Conditional=MEDIA_SOURCE,
    3334    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/mediasource/SourceBuffer.idl

    r149368 r149796  
    3030 
    3131[
     32    NoInterfaceObject,
    3233    Conditional=MEDIA_SOURCE
    3334] interface SourceBuffer {
  • trunk/Source/WebCore/Modules/mediasource/SourceBufferList.idl

    r149368 r149796  
    3030 
    3131[
     32    NoInterfaceObject,
    3233    Conditional=MEDIA_SOURCE,
    3334    IndexedGetter,
  • trunk/Source/WebCore/Modules/mediastream/MediaStream.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=MEDIA_STREAM,
    2728    EventTarget,
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=MEDIA_STREAM,
    2728    EventTarget,
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.idl

    r131172 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=MEDIA_STREAM,
    2728] interface MediaStreamTrackEvent : Event {
  • trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl

    r131172 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=MEDIA_STREAM
    2728] interface NavigatorUserMediaError {
  • trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=MEDIA_STREAM,
    2829    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.idl

    r141984 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=MEDIA_STREAM,
    2829    ConstructorTemplate=Event
  • trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=MEDIA_STREAM,
    2728    EventTarget
  • trunk/Source/WebCore/Modules/mediastream/RTCDataChannelEvent.idl

    r131372 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=MEDIA_STREAM,
    2728] interface RTCDataChannelEvent : Event {
  • trunk/Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.idl

    r131172 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=MEDIA_STREAM,
    2728] interface RTCIceCandidateEvent : Event {
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=MEDIA_STREAM,
    3334    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/mediastream/RTCStatsReport.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=MEDIA_STREAM,
    2728    ImplementationLacksVTable
  • trunk/Source/WebCore/Modules/mediastream/RTCStatsResponse.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=MEDIA_STREAM,
    2728    NamedGetter
  • trunk/Source/WebCore/Modules/networkinfo/NetworkInfoConnection.idl

    r149368 r149796  
    2222// http://dvcs.w3.org/hg/dap/raw-file/tip/network-api/index.html
    2323[
     24    NoInterfaceObject,
    2425    Conditional=NETWORK_INFO,
    2526    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/notifications/DOMWindowNotifications.idl

    r149170 r149796  
    3131    readonly attribute NotificationCenter webkitNotifications;
    3232#endif
    33 #if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
    34     attribute NotificationConstructor Notification;
    35 #endif
    3633};
    3734
  • trunk/Source/WebCore/Modules/notifications/NotificationCenter.idl

    r149368 r149796  
    3131
    3232[
     33    NoInterfaceObject,
    3334    Conditional=LEGACY_NOTIFICATIONS,
    3435    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/quota/StorageInfo.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=QUOTA,
    2829    OmitConstructor,
  • trunk/Source/WebCore/Modules/quota/StorageQuota.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=QUOTA,
    2829    OmitConstructor,
  • trunk/Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl

    r149170 r149796  
    2929
    3030    readonly attribute SpeechSynthesis speechSynthesis;
    31     attribute SpeechSynthesisEventConstructor SpeechSynthesisEvent;
    32     attribute SpeechSynthesisUtteranceConstructor SpeechSynthesisUtterance;
    3331};
  • trunk/Source/WebCore/Modules/speech/SpeechGrammar.idl

    r141034 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SCRIPTED_SPEECH,
    2829    Constructor,
  • trunk/Source/WebCore/Modules/speech/SpeechGrammarList.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SCRIPTED_SPEECH,
    2829    IndexedGetter,
  • trunk/Source/WebCore/Modules/speech/SpeechRecognition.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SCRIPTED_SPEECH,
    2829    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl

    r141034 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SCRIPTED_SPEECH,
    2829    ImplementationLacksVTable
  • trunk/Source/WebCore/Modules/speech/SpeechRecognitionError.idl

    r136846 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SCRIPTED_SPEECH,
    2829    ConstructorTemplate=Event
  • trunk/Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl

    r146601 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SCRIPTED_SPEECH,
    2829    ConstructorTemplate=Event,
  • trunk/Source/WebCore/Modules/speech/SpeechRecognitionResult.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SCRIPTED_SPEECH,
    2829    IndexedGetter,
  • trunk/Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SCRIPTED_SPEECH,
    2829    IndexedGetter,
  • trunk/Source/WebCore/Modules/speech/SpeechSynthesis.idl

    r139918 r149796  
    2525 
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SPEECH_SYNTHESIS
    2829] interface SpeechSynthesis  {
  • trunk/Source/WebCore/Modules/speech/SpeechSynthesisVoice.idl

    r139918 r149796  
    2525 
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SPEECH_SYNTHESIS
    2829] interface SpeechSynthesisVoice {
  • trunk/Source/WebCore/Modules/webaudio/AnalyserNode.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/AudioBuffer.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=WEB_AUDIO,
    3132    ImplementationLacksVTable
  • trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl

    r149368 r149796  
    2525// A cached (non-streamed), memory-resident audio source
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEB_AUDIO,
    2829    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/AudioContext.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEB_AUDIO,
    2829    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl

    r148257 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    JSGenerateToJSObject,
  • trunk/Source/WebCore/Modules/webaudio/AudioListener.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=WEB_AUDIO,
    3132    ImplementationLacksVTable
  • trunk/Source/WebCore/Modules/webaudio/AudioNode.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO
    2728] interface AudioNode {
  • trunk/Source/WebCore/Modules/webaudio/AudioParam.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=WEB_AUDIO
    3132] interface AudioParam {
  • trunk/Source/WebCore/Modules/webaudio/AudioSourceNode.idl

    r141034 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=WEB_AUDIO,
    3132    ImplementationLacksVTable
  • trunk/Source/WebCore/Modules/webaudio/BiquadFilterNode.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.idl

    r142848 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=WEB_AUDIO,
    3132    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.idl

    r142848 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/ConvolverNode.idl

    r131172 r149796  
    2525// A linear convolution effect
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEB_AUDIO,
    2829    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/DelayNode.idl

    r131172 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.idl

    r131172 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/GainNode.idl

    r146486 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl

    r131172 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO&VIDEO,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.idl

    r135985 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO&MEDIA_STREAM,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.idl

    r131172 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO&MEDIA_STREAM,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    EventTarget,
  • trunk/Source/WebCore/Modules/webaudio/OscillatorNode.idl

    r149368 r149796  
    2525// OscillatorNode is an audio generator of periodic waveforms.
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEB_AUDIO,
    2829    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/PannerNode.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.idl

    r146040 r149796  
    2525// For real-time audio stream synthesis/processing in JavaScript
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEB_AUDIO,
    2829    JSGenerateToJSObject,
  • trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.idl

    r131172 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=WEB_AUDIO,
    2728    JSGenerateToJSObject
  • trunk/Source/WebCore/Modules/webaudio/WaveTable.idl

    r141034 r149796  
    2525// WaveTable represents a periodic audio waveform given by its Fourier coefficients.
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEB_AUDIO,
    2829    ImplementationLacksVTable
  • trunk/Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl

    r149368 r149796  
    3030    Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback)
    3131        raises(DOMException);
    32 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
    33     attribute SQLExceptionConstructor SQLException;
    34 #endif
    3532};
    3633
  • trunk/Source/WebCore/Modules/webdatabase/Database.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=SQL_DATABASE,
    3132    OmitConstructor,
  • trunk/Source/WebCore/Modules/webdatabase/DatabaseSync.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=SQL_DATABASE,
    3334    OmitConstructor,
  • trunk/Source/WebCore/Modules/webdatabase/SQLError.idl

    r141034 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=SQL_DATABASE,
    3132    OmitConstructor,
  • trunk/Source/WebCore/Modules/webdatabase/SQLResultSet.idl

    r141034 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=SQL_DATABASE,
    3132    OmitConstructor,
  • trunk/Source/WebCore/Modules/webdatabase/SQLResultSetRowList.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=SQL_DATABASE,
    3132    OmitConstructor,
  • trunk/Source/WebCore/Modules/webdatabase/SQLTransaction.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=SQL_DATABASE,
    3132    OmitConstructor,
  • trunk/Source/WebCore/Modules/webdatabase/SQLTransactionSync.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=SQL_DATABASE,
    3334    OmitConstructor,
  • trunk/Source/WebCore/Modules/websockets/WebSocket.idl

    r149368 r149796  
    3131
    3232[
     33    NoInterfaceObject,
    3334    Conditional=WEB_SOCKETS,
    3435    ActiveDOMObject,
  • trunk/Source/WebCore/PlatformBlackBerry.cmake

    r149638 r149796  
    308308
    309309add_custom_command(
    310     OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE}
     310    OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE} ${WINDOW_CONSTRUCTORS_FILE}
    311311    DEPENDS ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl ${SCRIPTS_RESOLVE_SUPPLEMENTAL} ${WebCore_CPP_IDL_FILES} ${IDL_ATTRIBUTES_FILE}
    312     COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --idlFilesList ${IDL_FILES_TMP} --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE} --idlAttributesFile ${IDL_ATTRIBUTES_FILE}
     312    COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --idlFilesList ${IDL_FILES_TMP} --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE} --idlAttributesFile ${IDL_ATTRIBUTES_FILE} --windowConstructorsFile ${WINDOW_CONSTRUCTORS_FILE}
    313313    VERBATIM)
    314314
     
    319319    "${FEATURE_DEFINES_WEBCORE}"
    320320    ${DERIVED_SOURCES_WEBCORE_DIR} WebDOM CPP
    321     ${SUPPLEMENTAL_DEPENDENCY_FILE})
     321    ${SUPPLEMENTAL_DEPENDENCY_FILE}
     322    ${WINDOW_CONSTRUCTORS_FILE})
    322323
    323324# Generate contents for PopupPicker.cpp
  • trunk/Source/WebCore/UseJSC.cmake

    r148785 r149796  
    307307
    308308add_custom_command(
    309     OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE}
     309    OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE} ${WINDOW_CONSTRUCTORS_FILE}
    310310    DEPENDS ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl ${SCRIPTS_PREPROCESS_IDLS} ${WebCore_IDL_FILES} ${WebCoreTestSupport_IDL_FILES}
    311     COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --idlFilesList ${IDL_FILES_TMP} --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE}
     311    COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl --defines "${FEATURE_DEFINES_JAVASCRIPT}" --idlFilesList ${IDL_FILES_TMP} --supplementalDependencyFile ${SUPPLEMENTAL_DEPENDENCY_FILE} --windowConstructorsFile ${WINDOW_CONSTRUCTORS_FILE}
    312312    VERBATIM)
    313313
     
    319319    ${DERIVED_SOURCES_WEBCORE_DIR} JS JS
    320320    ${IDL_ATTRIBUTES_FILE}
    321     ${SUPPLEMENTAL_DEPENDENCY_FILE})
     321    ${SUPPLEMENTAL_DEPENDENCY_FILE}
     322    ${WINDOW_CONSTRUCTORS_FILE})
    322323
    323324GENERATE_BINDINGS(WebCoreTestSupport_SOURCES
     
    328329    ${DERIVED_SOURCES_WEBCORE_DIR} JS JS
    329330    ${IDL_ATTRIBUTES_FILE}
    330     ${SUPPLEMENTAL_DEPENDENCY_FILE})
     331    ${SUPPLEMENTAL_DEPENDENCY_FILE}
     332    ${WINDOW_CONSTRUCTORS_FILE})
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r149708 r149796  
    96289628                97AABCF814FA09D5007457AE /* CloseEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CloseEvent.h; path = Modules/websockets/CloseEvent.h; sourceTree = "<group>"; };
    96299629                97AABCF914FA09D5007457AE /* CloseEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CloseEvent.idl; path = Modules/websockets/CloseEvent.idl; sourceTree = "<group>"; };
    9630                 97AABCFA14FA09D5007457AE /* DOMWindowWebSocket.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = DOMWindowWebSocket.idl; path = Modules/websockets/DOMWindowWebSocket.idl; sourceTree = "<group>"; };
    96319630                97AABCFB14FA09D5007457AE /* ThreadableWebSocketChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadableWebSocketChannel.cpp; path = Modules/websockets/ThreadableWebSocketChannel.cpp; sourceTree = "<group>"; };
    96329631                97AABCFC14FA09D5007457AE /* ThreadableWebSocketChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ThreadableWebSocketChannel.h; path = Modules/websockets/ThreadableWebSocketChannel.h; sourceTree = "<group>"; };
     
    1635916358                                97AABCF814FA09D5007457AE /* CloseEvent.h */,
    1636016359                                97AABCF914FA09D5007457AE /* CloseEvent.idl */,
    16361                                 97AABCFA14FA09D5007457AE /* DOMWindowWebSocket.idl */,
    1636216360                                97AABCFB14FA09D5007457AE /* ThreadableWebSocketChannel.cpp */,
    1636316361                                97AABCFC14FA09D5007457AE /* ThreadableWebSocketChannel.h */,
  • trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt

    r149729 r149796  
    8484NamedConstructor=*
    8585NamedGetter
     86NoInterfaceObject
    8687NotEnumerable
    8788NumericIndexedGetter
  • trunk/Source/WebCore/bindings/scripts/IDLParser.pm

    r149679 r149796  
    843843        $self->assertTokenValue($self->getToken(), ";", __LINE__);
    844844        my $name = $nameToken->value();
    845         die "typedef redefinition for " . $name . " at " . $self->{Line} if exists $typedefs{$name};
     845        die "typedef redefinition for " . $name . " at " . $self->{Line} if (exists $typedefs{$name} && $typedef->type ne $typedefs{$name}->type);
    846846        $typedefs{$name} = $typedef;
    847847        return;
  • trunk/Source/WebCore/bindings/scripts/preprocess-idls.pl

    r149170 r149796  
    2929my $idlFilesList;
    3030my $supplementalDependencyFile;
     31my $windowConstructorsFile;
    3132my $supplementalMakefileDeps;
    3233
     
    3536           'idlFilesList=s' => \$idlFilesList,
    3637           'supplementalDependencyFile=s' => \$supplementalDependencyFile,
     38           'windowConstructorsFile=s' => \$windowConstructorsFile,
    3739           'supplementalMakefileDeps=s' => \$supplementalMakefileDeps);
    3840
    3941die('Must specify #define macros using --defines.') unless defined($defines);
    4042die('Must specify an output file using --supplementalDependencyFile.') unless defined($supplementalDependencyFile);
     43die('Must specify an output file using --windowConstructorsFile.') unless defined($windowConstructorsFile);
    4144die('Must specify the file listing all IDLs using --idlFilesList.') unless defined($idlFilesList);
    4245
     
    5154my %supplementalDependencies;
    5255my %supplementals;
    53 foreach my $idlFile (@idlFiles) {
     56my $constructorAttributesCode = "";
     57# Get rid of duplicates in idlFiles array.
     58my %idlFileHash = map { $_, 1 } @idlFiles;
     59foreach my $idlFile (keys %idlFileHash) {
    5460    my $fullPath = Cwd::realpath($idlFile);
    55     my $partialInterfaceName = getPartialInterfaceNameFromIDLFile($fullPath);
     61    my $idlFileContents = getFileContents($fullPath);
     62    my $partialInterfaceName = getPartialInterfaceNameFromIDL($idlFileContents);
    5663    if ($partialInterfaceName) {
    5764        $supplementalDependencies{$fullPath} = $partialInterfaceName;
     65        next;
    5866    }
    5967    my $interfaceName = fileparse(basename($idlFile), ".idl");
     68    unless (isCallbackInterfaceFromIDL($idlFileContents)) {
     69        my $extendedAttributes = getInterfaceExtendedAttributesFromIDL($idlFileContents);
     70        unless ($extendedAttributes->{"NoInterfaceObject"}) {
     71            $constructorAttributesCode .= GenerateConstructorAttribute($interfaceName, $extendedAttributes);
     72        }
     73    }
    6074    $interfaceNameToIdlFile{$interfaceName} = $fullPath;
    6175    $idlFileToInterfaceName{$fullPath} = $interfaceName;
    6276    $supplementals{$fullPath} = [];
    6377}
     78
     79# Generate DOMWindow Constructors partial interface.
     80open PARTIAL_WINDOW_FH, "> $windowConstructorsFile" or die "Cannot open $windowConstructorsFile\n";
     81print PARTIAL_WINDOW_FH "partial interface DOMWindow {\n";
     82print PARTIAL_WINDOW_FH $constructorAttributesCode;
     83print PARTIAL_WINDOW_FH "};\n";
     84close PARTIAL_WINDOW_FH;
     85my $fullPath = Cwd::realpath($windowConstructorsFile);
     86$supplementalDependencies{$fullPath} = "DOMWindow" if $interfaceNameToIdlFile{"DOMWindow"};
    6487
    6588# Resolves partial interfaces dependencies.
     
    110133}
    111134
    112 
    113 sub getPartialInterfaceNameFromIDLFile
     135sub GenerateConstructorAttribute
     136{
     137    my $interfaceName = shift;
     138    my $extendedAttributes = shift;
     139
     140    my $code = "    ";
     141    my @extendedAttributesList;
     142    foreach my $attributeName (keys %{$extendedAttributes}) {
     143      next unless ($attributeName eq "Conditional" || $attributeName eq "EnabledAtRuntime" || $attributeName eq "EnabledPerContext");
     144      my $extendedAttribute = $attributeName;
     145      $extendedAttribute .= "=" . $extendedAttributes->{$attributeName} unless $extendedAttributes->{$attributeName} eq "VALUE_IS_MISSING";
     146      push(@extendedAttributesList, $extendedAttribute);
     147    }
     148    $code .= "[" . join(', ', @extendedAttributesList) . "] " if @extendedAttributesList;
     149
     150    my $originalInterfaceName = $interfaceName;
     151    $interfaceName = $extendedAttributes->{"InterfaceName"} if $extendedAttributes->{"InterfaceName"};
     152    $code .= "attribute " . $originalInterfaceName . "Constructor $interfaceName;\n";
     153
     154    # In addition to the regular property, for every [NamedConstructor] extended attribute on an interface,
     155    # a corresponding property MUST exist on the ECMAScript global object.
     156    if ($extendedAttributes->{"NamedConstructor"}) {
     157        my $constructorName = $extendedAttributes->{"NamedConstructor"};
     158        $constructorName =~ s/\(.*//g; # Extract function name.
     159        $code .= "    ";
     160        $code .= "[" . join(', ', @extendedAttributesList) . "] " if @extendedAttributesList;
     161        $code .= "attribute " . $originalInterfaceName . "ConstructorConstructor $constructorName;\n";
     162    }
     163    return $code;
     164}
     165
     166sub getFileContents
    114167{
    115168    my $idlFile = shift;
     
    119172    close FILE;
    120173
    121     my $fileContents = join('', @lines);
     174    # Filter out preprocessor lines.
     175    @lines = grep(!/^\s*#/, @lines);
     176
     177    return join('', @lines);
     178}
     179
     180sub getPartialInterfaceNameFromIDL
     181{
     182    my $fileContents = shift;
     183
    122184    if ($fileContents =~ /partial\s+interface\s+(\w+)/gs) {
    123185        return $1;
    124186    }
    125187}
     188
     189sub isCallbackInterfaceFromIDL
     190{
     191    my $fileContents = shift;
     192    return ($fileContents =~ /callback\s+interface\s+\w+/gs);
     193}
     194
     195sub trim
     196{
     197    my $string = shift;
     198    $string =~ s/^\s+|\s+$//g;
     199    return $string;
     200}
     201
     202sub getInterfaceExtendedAttributesFromIDL
     203{
     204    my $fileContents = shift;
     205
     206    my $extendedAttributes = {};
     207
     208    if ($fileContents =~ /\[(.*)\]\s+(interface|exception)\s+(\w+)/gs) {
     209        my @parts = split(',', $1);
     210        foreach my $part (@parts) {
     211            my @keyValue = split('=', $part);
     212            my $key = trim($keyValue[0]);
     213            next unless length($key);
     214            my $value = "VALUE_IS_MISSING";
     215            $value = trim($keyValue[1]) if @keyValue > 1;
     216            $extendedAttributes->{$key} = $value;
     217        }
     218    }
     219
     220    return $extendedAttributes;
     221}
  • trunk/Source/WebCore/css/CSSFontFaceLoadEvent.idl

    r147857 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FONT_LOAD_EVENTS,
    3334    JSNoStaticTables,
  • trunk/Source/WebCore/css/CSSFontFaceRule.idl

    r145787 r149796  
    2020
    2121// Introduced in DOM Level 2:
    22 interface [
     22[
    2323    JSGenerateToJSObject,
    2424    JSGenerateToNativeObject,
    25 ] CSSFontFaceRule : CSSRule {
     25] interface CSSFontFaceRule : CSSRule {
    2626    readonly attribute CSSStyleDeclaration style;
    2727};
  • trunk/Source/WebCore/css/CSSSupportsRule.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=CSS3_CONDITIONAL_RULES
    3132] interface CSSSupportsRule : CSSRule {
  • trunk/Source/WebCore/css/CSSUnknownRule.idl

    r131172 r149796  
    2121// Introduced in DOM Level 2:
    2222[
     23    NoInterfaceObject,
    2324    OmitConstructor
    2425] interface CSSUnknownRule : CSSRule {
  • trunk/Source/WebCore/css/DOMWindowCSS.idl

    r142739 r149796  
    2929
    3030[
     31    NoInterfaceObject,
    3132    InterfaceName=CSS,
    3233    Conditional=CSS3_CONDITIONAL_RULES
  • trunk/Source/WebCore/css/FontLoader.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=FONT_LOAD_EVENTS,
    3334    ActiveDOMObject,
  • trunk/Source/WebCore/css/MediaQueryList.idl

    r149368 r149796  
    1818 */
    1919[
     20    NoInterfaceObject,
    2021    ImplementationLacksVTable
    2122] interface MediaQueryList {
  • trunk/Source/WebCore/css/MediaQueryListListener.idl

    r149368 r149796  
    1919
    2020[
     21    NoInterfaceObject,
    2122    JSNoStaticTables,
    2223    ObjCProtocol,
  • trunk/Source/WebCore/css/StyleMedia.idl

    r149368 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    GenerateIsReachable=ImplFrame
    2930] interface StyleMedia {
  • trunk/Source/WebCore/dom/CustomElementConstructor.idl

    r147857 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=CUSTOM_ELEMENTS,
    2728    CustomCall
  • trunk/Source/WebCore/dom/DOMError.idl

    r141034 r149796  
    2727 */
    2828[
     29    NoInterfaceObject,
    2930    ImplementationLacksVTable
    3031] interface  DOMError {
  • trunk/Source/WebCore/dom/DOMNamedFlowCollection.idl

    r149368 r149796  
    2929
    3030[
     31    NoInterfaceObject,
    3132    Conditional=CSS_REGIONS,
    3233    InterfaceName=WebKitNamedFlowCollection,
  • trunk/Source/WebCore/dom/DataTransferItem.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=DATA_TRANSFER_ITEMS,
    3334    ImplementationLacksVTable
  • trunk/Source/WebCore/dom/DataTransferItemList.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=DATA_TRANSFER_ITEMS,
    3334    IndexedGetter,
  • trunk/Source/WebCore/dom/EventListener.idl

    r149368 r149796  
    2121// Introduced in DOM Level 2:
    2222[
     23    NoInterfaceObject,
    2324    JSNoStaticTables,
    2425    ObjCProtocol,
  • trunk/Source/WebCore/dom/EventTarget.idl

    r149368 r149796  
    2121// Introduced in DOM Level 2:
    2222[
     23    NoInterfaceObject,
    2324    ObjCProtocol,
    2425    CPPPureInterface,
  • trunk/Source/WebCore/dom/NodeIterator.idl

    r141034 r149796  
    2121// Introduced in DOM Level 2:
    2222[
     23    NoInterfaceObject,
    2324    JSCustomMarkFunction,
    2425    ImplementationLacksVTable
  • trunk/Source/WebCore/dom/ShadowRoot.idl

    r149368 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SHADOW_DOM,
    2930    JSGenerateToJSObject
  • trunk/Source/WebCore/dom/TreeWalker.idl

    r141034 r149796  
    2121// Introduced in DOM Level 2:
    2222[
     23    NoInterfaceObject,
    2324    JSCustomMarkFunction,
    2425    ImplementationLacksVTable
  • trunk/Source/WebCore/dom/WebKitNamedFlow.idl

    r149368 r149796  
    2929
    3030[
     31    NoInterfaceObject,
    3132    EventTarget,
    3233    JSGenerateToJSObject,
  • trunk/Source/WebCore/fileapi/FileException.idl

    r141034 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=BLOB|FILE_SYSTEM,
    3334    DoNotCheckConstants,
  • trunk/Source/WebCore/fileapi/FileReaderSync.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=BLOB,
    3334    Constructor,
  • trunk/Source/WebCore/html/HTMLAudioElement.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=VIDEO,
    2829    NamedConstructor=Audio([Default=NullString] optional DOMString src)
  • trunk/Source/WebCore/html/HTMLDetailsElement.idl

    r131172 r149796  
    1919
    2020[
     21    NoInterfaceObject,
    2122    Conditional=DETAILS_ELEMENT
    2223] interface HTMLDetailsElement : HTMLElement {
  • trunk/Source/WebCore/html/HTMLOptionElement.idl

    r149368 r149796  
    2020
    2121[
     22    NoInterfaceObject,
    2223    JSGenerateToNativeObject,
    2324    NamedConstructor=Option([Default=NullString] optional DOMString data, [Default=NullString] optional DOMString value, [Default=Undefined] optional boolean defaultSelected, [Default=Undefined] optional boolean selected),
  • trunk/Source/WebCore/html/MediaError.idl

    r142327 r149796  
    2424 */
    2525
    26 interface [
     26[
    2727    Conditional=VIDEO,
    2828    ImplementationLacksVTable
    29 ] MediaError {
     29] interface MediaError {
    3030      const unsigned short MEDIA_ERR_ABORTED = 1;
    3131      const unsigned short MEDIA_ERR_NETWORK = 2;
  • trunk/Source/WebCore/html/MediaKeyError.idl

    r147857 r149796  
    2424 */
    2525
    26 interface [
     26[
    2727    Conditional=ENCRYPTED_MEDIA|ENCRYPTED_MEDIA_V2,
    2828    ImplementationLacksVTable
    29 ] MediaKeyError {
     29] interface MediaKeyError {
    3030    const unsigned short MEDIA_KEYERR_UNKNOWN = 1;
    3131    const unsigned short MEDIA_KEYERR_CLIENT = 2;
  • trunk/Source/WebCore/html/MicroDataItemValue.idl

    r147857 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=MICRODATA,
    3334    CustomToJSObject,
  • trunk/Source/WebCore/html/RadioNodeList.idl

    r131172 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    JSGenerateToJSObject,
    2829    IndexedGetter,
  • trunk/Source/WebCore/html/ValidityState.idl

    r141034 r149796  
    2222
    2323[
     24    NoInterfaceObject,
    2425    OmitConstructor,
    2526    ImplementationLacksVTable
  • trunk/Source/WebCore/html/canvas/CanvasRenderingContext.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    JSCustomMarkFunction,
    2829    GenerateIsReachable,
  • trunk/Source/WebCore/html/canvas/DOMPath.idl

    r149368 r149796  
    2727 */
    2828
    29 interface [
     29[
    3030    Constructor,
    3131    Constructor(DOMPath path),
     
    3535    Conditional=CANVAS_PATH,
    3636    InterfaceName=Path
    37 ] DOMPath {
     37] interface DOMPath {
    3838
    3939    // FIXME: These methods should be shared with CanvasRenderingContext2D in the CanvasPathMethods interface.
  • trunk/Source/WebCore/html/canvas/EXTDrawBuffers.idl

    r149368 r149796  
    2727
    2828[
     29    NoInterfaceObject,
    2930    Conditional=WEBGL,
    3031    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/OESElementIndexUint.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/OESStandardDerivatives.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/OESTextureFloat.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/OESTextureHalfFloat.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/OESVertexArrayObject.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/WebGLContextAttributes.idl

    r131172 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=WEBGL,
    2930    OmitConstructor
  • trunk/Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/WebGLDebugShaders.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/WebGLDepthTexture.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/WebGLLoseContext.idl

    r148593 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL,
    2829    GenerateIsReachable=ImplContext,
  • trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl

    r131172 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=WEBGL
    2829] interface WebGLVertexArrayObjectOES {
  • trunk/Source/WebCore/html/track/AudioTrack.idl

    r148785 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=VIDEO_TRACK,
    2829    GenerateIsReachable=ImplElementRoot,
  • trunk/Source/WebCore/html/track/AudioTrackList.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=VIDEO_TRACK,
    2829    GenerateIsReachable=ImplElementRoot,
  • trunk/Source/WebCore/html/track/TextTrackRegionList.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=VIDEO_TRACK & WEBVTT_REGIONS,
    2829    IndexedGetter,
  • trunk/Source/WebCore/html/track/VideoTrack.idl

    r148785 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=VIDEO_TRACK,
    2829    GenerateIsReachable=ImplElementRoot,
  • trunk/Source/WebCore/html/track/VideoTrackList.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=VIDEO_TRACK,
    2829    GenerateIsReachable=ImplElementRoot,
  • trunk/Source/WebCore/inspector/InjectedScriptHost.idl

    r149368 r149796  
    3232
    3333[
     34    NoInterfaceObject,
    3435    Conditional=INSPECTOR,
    3536    ImplementationLacksVTable
  • trunk/Source/WebCore/inspector/InspectorFrontendHost.idl

    r149368 r149796  
    3232
    3333[
     34    NoInterfaceObject,
    3435    Conditional=INSPECTOR,
    3536    ImplementationLacksVTable
  • trunk/Source/WebCore/inspector/JavaScriptCallFrame.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=JAVASCRIPT_DEBUGGER,
    2829    OmitConstructor,
  • trunk/Source/WebCore/inspector/ScriptProfile.idl

    r140295 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=JAVASCRIPT_DEBUGGER,
    2930    OmitConstructor
  • trunk/Source/WebCore/inspector/ScriptProfileNode.idl

    r148257 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=JAVASCRIPT_DEBUGGER,
    2930    OmitConstructor,
  • trunk/Source/WebCore/loader/appcache/DOMApplicationCache.idl

    r149368 r149796  
    2525 
    2626[
     27    NoInterfaceObject,
    2728    EventTarget,
    2829    OmitConstructor,
  • trunk/Source/WebCore/page/AbstractView.idl

    r131172 r149796  
    2727// Introduced in DOM Level 2:
    2828[
     29    NoInterfaceObject,
    2930    ObjCCustomImplementation,
    3031    OmitConstructor
  • trunk/Source/WebCore/page/BarInfo.idl

    r148593 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    GenerateIsReachable=ImplFrame,
    3132    OmitConstructor
  • trunk/Source/WebCore/page/Console.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    GenerateIsReachable=ImplFrame,
    3132    OmitConstructor
  • trunk/Source/WebCore/page/Crypto.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    OmitConstructor,
    3132    ImplementationLacksVTable
  • trunk/Source/WebCore/page/DOMSecurityPolicy.idl

    r149368 r149796  
    2424
    2525[
     26    NoInterfaceObject,
    2627    Conditional=CSP_NEXT,
    2728    OmitConstructor,
  • trunk/Source/WebCore/page/DOMWindow.idl

    r149660 r149796  
    321321
    322322#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
    323     // Global constructors
    324     attribute StyleSheetConstructor StyleSheet;
    325     attribute CSSStyleSheetConstructor CSSStyleSheet;
    326 
    327     attribute CSSValueConstructor CSSValue;
    328     attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
    329     attribute CSSValueListConstructor CSSValueList;
    330     attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
    331 
    332 #if defined(ENABLE_CSS_SHADERS) && ENABLE_CSS_SHADERS
    333     attribute WebKitCSSFilterRuleConstructor WebKitCSSFilterRule;
    334     attribute WebKitCSSMixFunctionValueConstructor WebKitCSSMixFunctionValue;
    335 #endif
    336 
    337 #if defined(ENABLE_CSS_FILTERS) && ENABLE_CSS_FILTERS
    338     attribute WebKitCSSFilterValueConstructor WebKitCSSFilterValue;
    339 #endif
    340 
    341 #if defined(ENABLE_CSS_DEVICE_ADAPTATION) && ENABLE_CSS_DEVICE_ADAPTATION
    342     attribute WebKitCSSViewportRuleConstructor WebKitCSSViewportRule;
    343 #endif
    344 
    345     attribute CSSRuleConstructor CSSRule;
    346     attribute CSSCharsetRuleConstructor CSSCharsetRule;
    347     attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
    348 #if defined(ENABLE_SHADOW_DOM) && ENABLE_SHADOW_DOM
    349     attribute CSSHostRuleConstructor CSSHostRule;
    350 #endif
    351     attribute CSSImportRuleConstructor CSSImportRule;
    352     attribute CSSMediaRuleConstructor CSSMediaRule;
    353     attribute CSSPageRuleConstructor CSSPageRule;
    354     attribute CSSStyleRuleConstructor CSSStyleRule;
    355    
    356     attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
    357     attribute MediaListConstructor MediaList;
    358     attribute CounterConstructor Counter;
    359     attribute CSSRuleListConstructor CSSRuleList;
    360     attribute RectConstructor Rect;
    361     attribute RGBColorConstructor RGBColor;
    362     attribute StyleSheetListConstructor StyleSheetList;
    363 
    364     // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
    365     attribute DOMCoreExceptionConstructor DOMException;
    366     attribute DOMStringListConstructor DOMStringList;
    367 //        attribute NameListConstructor NameList;
    368 //        attribute DOMImplementationListConstructor DOMImplementationList;
    369 //        attribute DOMImplementationSourceConstructor DOMImplementationSource;
    370     attribute DOMImplementationConstructor DOMImplementation;
    371     attribute DOMSettableTokenListConstructor DOMSettableTokenList;
    372     attribute DOMTokenListConstructor DOMTokenList;
    373     attribute DocumentFragmentConstructor DocumentFragment;
    374     attribute DocumentConstructor Document;
    375     attribute NodeConstructor Node;
    376     attribute NodeListConstructor NodeList;
    377     [Conditional=MICRODATA] attribute PropertyNodeListConstructor PropertyNodeList;
    378     attribute NamedNodeMapConstructor NamedNodeMap;
    379     attribute CharacterDataConstructor CharacterData;
    380     attribute AttrConstructor Attr;
    381     attribute ElementConstructor Element;
    382     attribute TextConstructor Text;
    383     attribute CommentConstructor Comment;
    384 //        attribute TypeInfoConstructor TypeInfo;
    385 //        attribute UserDataHandlerConstructor UserDataHandler;
    386 //        attribute DOMErrorConstructor DOMError;
    387 //        attribute DOMErrorHandlerConstructor DOMErrorHandler
    388 //        attribute DOMLocatorConstructor DOMLocator;
    389 //        attribute DOMConfigurationConstructor DOMConfiguration;
    390     attribute CDATASectionConstructor CDATASection;
    391     attribute DocumentTypeConstructor DocumentType;
    392     attribute NotationConstructor Notation;
    393     attribute EntityConstructor Entity;
    394     attribute EntityReferenceConstructor EntityReference;
    395     [Conditional=CANVAS_PATH] attribute DOMPathConstructor Path;
    396     attribute ProcessingInstructionConstructor ProcessingInstruction;
    397     [Conditional=SHADOW_DOM] attribute ShadowRootConstructor WebKitShadowRoot;
    398     [Conditional=SHADOW_DOM] attribute HTMLContentElementConstructor HTMLContentElement;
    399 
    400     attribute DOMSelectionConstructor Selection;
    401     attribute DOMWindowConstructor Window;
    402 
    403     attribute HTMLDocumentConstructor HTMLDocument;
    404     attribute HTMLElementConstructor HTMLElement;
    405     attribute HTMLAnchorElementConstructor HTMLAnchorElement;
    406     attribute HTMLAppletElementConstructor HTMLAppletElement;
    407     attribute HTMLAreaElementConstructor HTMLAreaElement;
    408     attribute HTMLBRElementConstructor HTMLBRElement;
    409     attribute HTMLBaseElementConstructor HTMLBaseElement;
    410     attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
    411     attribute HTMLBodyElementConstructor HTMLBodyElement;
    412     attribute HTMLButtonElementConstructor HTMLButtonElement;
    413     attribute HTMLCanvasElementConstructor HTMLCanvasElement;
    414     attribute HTMLDListElementConstructor HTMLDListElement;
    415     [Conditional=DATALIST_ELEMENT] attribute HTMLDataListElementConstructor HTMLDataListElement;
    416     [Conditional=DIALOG_ELEMENT] attribute HTMLDialogElementConstructor HTMLDialogElement;
    417     attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
    418     attribute HTMLDivElementConstructor HTMLDivElement;
    419     attribute HTMLEmbedElementConstructor HTMLEmbedElement;
    420     attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
    421     attribute HTMLFontElementConstructor HTMLFontElement;
    422     attribute HTMLFormElementConstructor HTMLFormElement;
    423     attribute HTMLFrameElementConstructor HTMLFrameElement;
    424     attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
    425     attribute HTMLHRElementConstructor HTMLHRElement;
    426     attribute HTMLHeadElementConstructor HTMLHeadElement;
    427     attribute HTMLHeadingElementConstructor HTMLHeadingElement;
    428     attribute HTMLHtmlElementConstructor HTMLHtmlElement;
    429     attribute HTMLIFrameElementConstructor HTMLIFrameElement;
    430     attribute HTMLImageElementConstructor HTMLImageElement;
    431     attribute HTMLInputElementConstructor HTMLInputElement;
    432     attribute HTMLKeygenElementConstructor HTMLKeygenElement;
    433     attribute HTMLLIElementConstructor HTMLLIElement;
    434     attribute HTMLLabelElementConstructor HTMLLabelElement;
    435     attribute HTMLLegendElementConstructor HTMLLegendElement;
    436     attribute HTMLLinkElementConstructor HTMLLinkElement;
    437     attribute HTMLMapElementConstructor HTMLMapElement;
    438     attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
    439     attribute HTMLMenuElementConstructor HTMLMenuElement;
    440     attribute HTMLMetaElementConstructor HTMLMetaElement;
    441 #if defined(ENABLE_METER_ELEMENT) && ENABLE_METER_ELEMENT
    442     attribute HTMLMeterElementConstructor HTMLMeterElement;
    443 #endif
    444     attribute HTMLModElementConstructor HTMLModElement;
    445     attribute HTMLOListElementConstructor HTMLOListElement;
    446     attribute HTMLObjectElementConstructor HTMLObjectElement;
    447     attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
    448     attribute HTMLOptionElementConstructor HTMLOptionElement;
    449     attribute HTMLOutputElementConstructor HTMLOutputElement;
    450     attribute HTMLParagraphElementConstructor HTMLParagraphElement;
    451     attribute HTMLParamElementConstructor HTMLParamElement;
    452     attribute HTMLPreElementConstructor HTMLPreElement;
    453 #if defined(ENABLE_PROGRESS_ELEMENT) && ENABLE_PROGRESS_ELEMENT
    454     attribute HTMLProgressElementConstructor HTMLProgressElement;
    455 #endif
    456     attribute HTMLQuoteElementConstructor HTMLQuoteElement;
    457     attribute HTMLScriptElementConstructor HTMLScriptElement;
    458     attribute HTMLSelectElementConstructor HTMLSelectElement;
    459     attribute HTMLSpanElementConstructor HTMLSpanElement;
    460     attribute HTMLStyleElementConstructor HTMLStyleElement;
    461     attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
    462     attribute HTMLTableCellElementConstructor HTMLTableCellElement;
    463     attribute HTMLTableColElementConstructor HTMLTableColElement;
    464     attribute HTMLTableElementConstructor HTMLTableElement;
    465     attribute HTMLTableRowElementConstructor HTMLTableRowElement;
    466     attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
    467     attribute [Conditional=TEMPLATE_ELEMENT] HTMLTemplateElementConstructor HTMLTemplateElement;
    468     attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
    469     attribute HTMLTitleElementConstructor HTMLTitleElement;
    470     attribute HTMLUListElementConstructor HTMLUListElement;
    471 
    472     attribute HTMLCollectionConstructor HTMLCollection;
    473     attribute HTMLAllCollectionConstructor HTMLAllCollection;
    474     attribute HTMLFormControlsCollectionConstructor HTMLFormControlsCollection;
    475     attribute HTMLOptionsCollectionConstructor HTMLOptionsCollection;
    476     [Conditional=MICRODATA] attribute HTMLPropertiesCollectionConstructor HTMLPropertiesCollection;
    477     attribute HTMLUnknownElementConstructor HTMLUnknownElement;
    478 
     323    // Additional constructors.
    479324    [CustomGetter, CustomConstructor] attribute HTMLImageElementConstructorConstructor Image; // Usable with new operator
    480325    [CustomGetter] attribute HTMLOptionElementConstructorConstructor Option; // Usable with new operator
    481 
    482     [Conditional=ENCRYPTED_MEDIA] attribute MediaKeyEventConstructor MediaKeyEvent;
    483     attribute [Conditional=ENCRYPTED_MEDIA_V2] MediaKeysConstructor MediaKeys;
    484     attribute [Conditional=ENCRYPTED_MEDIA_V2|ENCRYPTED_MEDIA] MediaKeyErrorConstructor MediaKeyError;
    485     attribute [Conditional=ENCRYPTED_MEDIA_V2] MediaKeyMessageEventConstructor MediaKeyMessageEvent;
    486     attribute [Conditional=ENCRYPTED_MEDIA_V2] MediaKeyNeededEventConstructor MediaKeyNeededEvent;
    487 
    488     [Conditional=VIDEO_TRACK] attribute HTMLTrackElementConstructor HTMLTrackElement;
    489     [Conditional=VIDEO_TRACK] attribute TextTrackConstructor TextTrack;
    490     [Conditional=VIDEO_TRACK] attribute TextTrackCueConstructor TextTrackCue; // Usable with the new operator
    491     [Conditional=VIDEO_TRACK] attribute TextTrackCueListConstructor TextTrackCueList;
    492     [Conditional=VIDEO_TRACK] attribute TextTrackListConstructor TextTrackList;
    493     [Conditional=VIDEO_TRACK & WEBVTT_REGIONS] attribute TextTrackRegionConstructor TextTrackRegion; // Usable with the new operator
    494     [Conditional=VIDEO_TRACK] attribute TrackEventConstructor TrackEvent;
    495 
     326    attribute HTMLOptionElementConstructor HTMLOptionElement;
    496327    [CustomGetter, Conditional=VIDEO] attribute HTMLAudioElementConstructorConstructor Audio; // Usable with the new operator
    497328    [Conditional=VIDEO] attribute HTMLAudioElementConstructor HTMLAudioElement;
    498     [Conditional=VIDEO] attribute HTMLMediaElementConstructor HTMLMediaElement;
    499     [Conditional=VIDEO] attribute HTMLVideoElementConstructor HTMLVideoElement;
    500     [Conditional=VIDEO] attribute MediaErrorConstructor MediaError;
    501     [Conditional=VIDEO] attribute TimeRangesConstructor TimeRanges;
    502     [Conditional=VIDEO] attribute HTMLSourceElementConstructor HTMLSourceElement;
    503     [Conditional=VIDEO] attribute MediaControllerConstructor MediaController;
    504 
    505     attribute CanvasPatternConstructor CanvasPattern;
    506     attribute CanvasGradientConstructor CanvasGradient;
    507     attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
    508 
    509     attribute ImageDataConstructor ImageData;
    510     attribute TextMetricsConstructor TextMetrics;
    511 
    512     [Conditional=WEBGL] attribute WebGLActiveInfoConstructor WebGLActiveInfo;
    513     [Conditional=WEBGL] attribute WebGLBufferConstructor WebGLBuffer;
    514     [Conditional=WEBGL] attribute WebGLFramebufferConstructor WebGLFramebuffer;
    515     [Conditional=WEBGL] attribute WebGLProgramConstructor WebGLProgram;
    516     [Conditional=WEBGL] attribute WebGLRenderbufferConstructor WebGLRenderbuffer;
    517     [Conditional=WEBGL] attribute WebGLRenderingContextConstructor WebGLRenderingContext;
    518     [Conditional=WEBGL] attribute WebGLShaderConstructor WebGLShader;
    519     [Conditional=WEBGL] attribute WebGLShaderPrecisionFormatConstructor WebGLShaderPrecisionFormat;
    520     [Conditional=WEBGL] attribute WebGLTextureConstructor WebGLTexture;
    521     [Conditional=WEBGL] attribute WebGLUniformLocationConstructor WebGLUniformLocation;
    522 
    523     attribute DOMStringMapConstructor DOMStringMap;
    524 
    525     attribute ArrayBufferConstructor ArrayBuffer; // Usable with new operator
    526     attribute ArrayBufferViewConstructor ArrayBufferView;
    527     attribute Int8ArrayConstructor Int8Array; // Usable with new operator
    528     attribute Uint8ArrayConstructor Uint8Array; // Usable with new operator
    529     attribute Uint8ClampedArrayConstructor Uint8ClampedArray; // Usable with new operator
    530     attribute Int16ArrayConstructor Int16Array; // Usable with new operator
    531     attribute Uint16ArrayConstructor Uint16Array; // Usable with new operator
    532     attribute Int32ArrayConstructor Int32Array; // Usable with new operator
    533     attribute Uint32ArrayConstructor Uint32Array; // Usable with new operator
    534     attribute Float32ArrayConstructor Float32Array; // Usable with new operator
    535     attribute Float64ArrayConstructor Float64Array; // Usable with new operator
    536     attribute DataViewConstructor DataView; // Usable with new operator
    537 
    538     // Event Constructors
    539     attribute EventConstructor Event;
    540     attribute BeforeLoadEventConstructor BeforeLoadEvent;
    541     attribute CompositionEventConstructor CompositionEvent;
    542     attribute CustomEventConstructor CustomEvent;
    543     attribute ErrorEventConstructor ErrorEvent;
    544     attribute FocusEventConstructor FocusEvent;
    545     attribute HashChangeEventConstructor HashChangeEvent;
    546     attribute KeyboardEventConstructor KeyboardEvent;
    547     attribute MessageEventConstructor MessageEvent;
    548     attribute MouseEventConstructor MouseEvent;
    549     attribute MutationEventConstructor MutationEvent;
    550     attribute OverflowEventConstructor OverflowEvent;
    551     attribute PopStateEventConstructor PopStateEvent;
    552     attribute PageTransitionEventConstructor PageTransitionEvent;
    553     attribute ProgressEventConstructor ProgressEvent;
    554     attribute TextEventConstructor TextEvent;
    555     attribute TransitionEventConstructor TransitionEvent;
    556     attribute UIEventConstructor UIEvent;
    557     attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
    558     attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
    559     attribute WheelEventConstructor WheelEvent;
    560     attribute XMLHttpRequestProgressEventConstructor XMLHttpRequestProgressEvent;
    561     [Conditional=DEVICE_ORIENTATION] attribute DeviceMotionEventConstructor DeviceMotionEvent;
    562     [Conditional=DEVICE_ORIENTATION] attribute DeviceOrientationEventConstructor DeviceOrientationEvent;
    563     [Conditional=TOUCH_EVENTS] attribute TouchConstructor Touch;
    564     [Conditional=TOUCH_EVENTS] attribute TouchEventConstructor TouchEvent;
    565     [Conditional=TOUCH_EVENTS] attribute TouchListConstructor TouchList;
    566     attribute StorageEventConstructor StorageEvent;
    567     [Conditional=INPUT_SPEECH] attribute SpeechInputEventConstructor SpeechInputEvent;
    568     [Conditional=WEBGL] attribute WebGLContextEventConstructor WebGLContextEvent;
    569     [Conditional=PROXIMITY_EVENTS] attribute DeviceProximityEventConstructor DeviceProximityEvent;
    570     [Conditional=CSP_NEXT] attribute SecurityPolicyViolationEventConstructor SecurityPolicyViolationEvent;
    571 
    572     attribute EventExceptionConstructor EventException;
    573 
    574     attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
    575     attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
    576     [Conditional=CSS_REGIONS] attribute WebKitCSSRegionRuleConstructor WebKitCSSRegionRule;
    577 
    578     attribute WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
    579 
    580     attribute WebKitPointConstructor WebKitPoint; // Usable with new the operator
    581 
    582     attribute ClipboardConstructor Clipboard;
    583 
    584     [Conditional=WORKERS] attribute WorkerConstructor Worker; // Usable with the new operator
     329    [CustomGetter] attribute WebSocketConstructor WebSocket;
    585330    [Conditional=SHARED_WORKERS, CustomGetter] attribute SharedWorkerConstructor SharedWorker; // Usable with the new operator
    586 
    587     attribute FileConstructor File;
    588     attribute FileListConstructor FileList;
    589     attribute BlobConstructor Blob;
    590 
    591     attribute NodeFilterConstructor NodeFilter;
    592     attribute RangeConstructor Range;
    593     attribute RangeExceptionConstructor RangeException;
    594 
    595     attribute EventSourceConstructor EventSource; // Usable with new the operator
    596 
    597     // Mozilla has a separate XMLDocument object for XML documents.
     331    // Mozilla has a separate XMLDocument object for XML documents.
    598332    // We just use Document for this.
    599333    attribute DocumentConstructor XMLDocument;
    600     attribute DOMParserConstructor DOMParser;
    601     attribute XMLSerializerConstructor XMLSerializer;
    602     attribute XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
    603     attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
    604     attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
    605     [Conditional=XSLT] attribute XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
    606 
    607     [Conditional=CHANNEL_MESSAGING] attribute MessagePortConstructor MessagePort;
    608     [Conditional=CHANNEL_MESSAGING] attribute MessageChannelConstructor MessageChannel; // Usable with the new operator
    609 
    610     attribute DOMPluginConstructor Plugin;
    611     attribute DOMPluginArrayConstructor PluginArray;
    612 
    613     attribute DOMMimeTypeConstructor MimeType;
    614     attribute DOMMimeTypeArrayConstructor MimeTypeArray;
    615 
    616     attribute ClientRectConstructor ClientRect;
    617     attribute ClientRectListConstructor ClientRectList;
    618 
    619     attribute StorageConstructor Storage;
    620 
    621     attribute XPathEvaluatorConstructor XPathEvaluator;
    622     attribute XPathResultConstructor XPathResult;
    623     attribute XPathExceptionConstructor XPathException;
    624 
    625     [Conditional=SVG] attribute SVGZoomEventConstructor SVGZoomEvent;
    626 
    627 #if defined(ENABLE_SVG) && ENABLE_SVG
    628     // Expose all implemented SVG 1.1 interfaces, excluding the SVG MI interfaces:
    629     // SVGAnimatedPathData, SVGAnimatedPoints, SVGExternalResourcesRequired,
    630     // SVGFilterPrimitiveStandardAttributes, SVGFitToViewBox, SVGLangSpace, SVGLocatable
    631     // SVGTests, SVGTransformable, SVGURIReference, SVGZoomAndPan
    632     attribute SVGAElementConstructor SVGAElement;
    633     attribute SVGAngleConstructor SVGAngle;
    634     attribute SVGAnimatedAngleConstructor SVGAnimatedAngle;
    635     attribute SVGAnimatedBooleanConstructor SVGAnimatedBoolean;
    636     attribute SVGAnimatedEnumerationConstructor SVGAnimatedEnumeration;
    637     attribute SVGAnimatedIntegerConstructor SVGAnimatedInteger;
    638     attribute SVGAnimatedLengthConstructor SVGAnimatedLength;
    639     attribute SVGAnimatedLengthListConstructor SVGAnimatedLengthList;
    640     attribute SVGAnimatedNumberConstructor SVGAnimatedNumber;
    641     attribute SVGAnimatedNumberListConstructor SVGAnimatedNumberList;
    642     attribute SVGAnimatedPreserveAspectRatioConstructor SVGAnimatedPreserveAspectRatio;
    643     attribute SVGAnimatedRectConstructor SVGAnimatedRect;
    644     attribute SVGAnimatedStringConstructor SVGAnimatedString;
    645     attribute SVGAnimatedTransformListConstructor SVGAnimatedTransformList;
    646     attribute SVGCircleElementConstructor SVGCircleElement;
    647     attribute SVGClipPathElementConstructor SVGClipPathElement;
    648     attribute SVGColorConstructor SVGColor;
    649     attribute SVGCursorElementConstructor SVGCursorElement;
    650 //      attribute SVGCSSRuleConstructor SVGCSSRule;
    651     attribute SVGDefsElementConstructor SVGDefsElement;
    652     attribute SVGDescElementConstructor SVGDescElement;
    653     attribute SVGDocumentConstructor SVGDocument;
    654     attribute SVGElementConstructor SVGElement;
    655     attribute SVGElementInstanceConstructor SVGElementInstance;
    656     attribute SVGElementInstanceListConstructor SVGElementInstanceList;
    657     attribute SVGEllipseElementConstructor SVGEllipseElement;
    658     attribute SVGForeignObjectElementConstructor SVGForeignObjectElement;
    659     attribute SVGExceptionConstructor SVGException;
    660     attribute SVGGElementConstructor SVGGElement;
    661     attribute SVGGradientElementConstructor SVGGradientElement;
    662     attribute SVGImageElementConstructor SVGImageElement;
    663     attribute SVGLengthConstructor SVGLength;
    664     attribute SVGLengthListConstructor SVGLengthList;
    665     attribute SVGLinearGradientElementConstructor SVGLinearGradientElement;
    666     attribute SVGLineElementConstructor SVGLineElement;
    667     attribute SVGMarkerElementConstructor SVGMarkerElement;
    668     attribute SVGMaskElementConstructor SVGMaskElement;
    669     attribute SVGMatrixConstructor SVGMatrix;
    670     attribute SVGMetadataElementConstructor SVGMetadataElement;
    671     attribute SVGNumberConstructor SVGNumber;
    672     attribute SVGNumberListConstructor SVGNumberList;
    673     attribute SVGPaintConstructor SVGPaint;
    674     attribute SVGPathElementConstructor SVGPathElement;
    675     attribute SVGPathSegConstructor SVGPathSeg;
    676     attribute SVGPathSegArcAbsConstructor SVGPathSegArcAbs;
    677     attribute SVGPathSegArcRelConstructor SVGPathSegArcRel;
    678     attribute SVGPathSegClosePathConstructor SVGPathSegClosePath;
    679     attribute SVGPathSegCurvetoCubicAbsConstructor SVGPathSegCurvetoCubicAbs;
    680     attribute SVGPathSegCurvetoCubicRelConstructor SVGPathSegCurvetoCubicRel;
    681     attribute SVGPathSegCurvetoCubicSmoothAbsConstructor SVGPathSegCurvetoCubicSmoothAbs;
    682     attribute SVGPathSegCurvetoCubicSmoothRelConstructor SVGPathSegCurvetoCubicSmoothRel;
    683     attribute SVGPathSegCurvetoQuadraticAbsConstructor SVGPathSegCurvetoQuadraticAbs;
    684     attribute SVGPathSegCurvetoQuadraticRelConstructor SVGPathSegCurvetoQuadraticRel;
    685     attribute SVGPathSegCurvetoQuadraticSmoothAbsConstructor SVGPathSegCurvetoQuadraticSmoothAbs;
    686     attribute SVGPathSegCurvetoQuadraticSmoothRelConstructor SVGPathSegCurvetoQuadraticSmoothRel;
    687     attribute SVGPathSegLinetoAbsConstructor SVGPathSegLinetoAbs;
    688     attribute SVGPathSegLinetoHorizontalAbsConstructor SVGPathSegLinetoHorizontalAbs;
    689     attribute SVGPathSegLinetoHorizontalRelConstructor SVGPathSegLinetoHorizontalRel;
    690     attribute SVGPathSegLinetoRelConstructor SVGPathSegLinetoRel;
    691     attribute SVGPathSegLinetoVerticalAbsConstructor SVGPathSegLinetoVerticalAbs;
    692     attribute SVGPathSegLinetoVerticalRelConstructor SVGPathSegLinetoVerticalRel;
    693     attribute SVGPathSegListConstructor SVGPathSegList;
    694     attribute SVGPathSegMovetoAbsConstructor SVGPathSegMovetoAbs;
    695     attribute SVGPathSegMovetoRelConstructor SVGPathSegMovetoRel;
    696     attribute SVGPatternElementConstructor SVGPatternElement;
    697     attribute SVGPointConstructor SVGPoint;
    698     attribute SVGPointListConstructor SVGPointList;
    699     attribute SVGPolygonElementConstructor SVGPolygonElement;
    700     attribute SVGPolylineElementConstructor SVGPolylineElement;
    701     attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
    702     attribute SVGRadialGradientElementConstructor SVGRadialGradientElement;
    703     attribute SVGRectConstructor SVGRect;
    704     attribute SVGRectElementConstructor SVGRectElement;
    705     attribute SVGRenderingIntentConstructor SVGRenderingIntent;
    706     attribute SVGScriptElementConstructor SVGScriptElement;
    707     attribute SVGStopElementConstructor SVGStopElement;
    708     attribute SVGStringListConstructor SVGStringList;
    709     attribute SVGStyleElementConstructor SVGStyleElement;
    710     attribute SVGSVGElementConstructor SVGSVGElement;
    711     attribute SVGSwitchElementConstructor SVGSwitchElement;
    712     attribute SVGSymbolElementConstructor SVGSymbolElement;
    713     attribute SVGTextContentElementConstructor SVGTextContentElement;
    714     attribute SVGTextElementConstructor SVGTextElement;
    715     attribute SVGTextPathElementConstructor SVGTextPathElement;
    716     attribute SVGTextPositioningElementConstructor SVGTextPositioningElement;
    717     attribute SVGTitleElementConstructor SVGTitleElement;
    718     attribute SVGTransformConstructor SVGTransform;
    719     attribute SVGTransformListConstructor SVGTransformList;
    720     attribute SVGTRefElementConstructor SVGTRefElement;
    721     attribute SVGTSpanElementConstructor SVGTSpanElement;
    722     attribute SVGUnitTypesConstructor SVGUnitTypes;
    723     attribute SVGUseElementConstructor SVGUseElement;
    724     attribute SVGViewElementConstructor SVGViewElement;
    725     attribute SVGViewSpecConstructor SVGViewSpec;
    726     attribute SVGZoomAndPanConstructor SVGZoomAndPan;
    727 
    728     attribute SVGAnimateColorElementConstructor SVGAnimateColorElement;
    729     attribute SVGAnimateElementConstructor SVGAnimateElement;
    730     attribute SVGAnimateMotionElementConstructor SVGAnimateMotionElement;
    731     attribute SVGAnimateTransformElementConstructor SVGAnimateTransformElement;
    732     attribute SVGMPathElementConstructor SVGMPathElement;
    733     attribute SVGSetElementConstructor SVGSetElement;
    734 
    735 #if defined(ENABLE_SVG_FONTS) && ENABLE_SVG_FONTS
    736     attribute SVGAltGlyphDefElementConstructor SVGAltGlyphDefElement;
    737     attribute SVGAltGlyphElementConstructor SVGAltGlyphElement;
    738     attribute SVGAltGlyphItemElementConstructor SVGAltGlyphItemElement;
    739 //      attribute SVGDefinitionSrcElementConstructor SVGDefinitionSrcElement;
    740     attribute SVGFontElementConstructor SVGFontElement;
    741     attribute SVGFontFaceElementConstructor SVGFontFaceElement;
    742     attribute SVGFontFaceFormatElementConstructor SVGFontFaceFormatElement;
    743     attribute SVGFontFaceNameElementConstructor SVGFontFaceNameElement;
    744     attribute SVGFontFaceSrcElementConstructor SVGFontFaceSrcElement;
    745     attribute SVGFontFaceUriElementConstructor SVGFontFaceUriElement;
    746     attribute SVGGlyphElementConstructor SVGGlyphElement;
    747     attribute SVGGlyphRefElementConstructor SVGGlyphRefElement;
    748     attribute SVGHKernElementConstructor SVGHKernElement;
    749     attribute SVGMissingGlyphElementConstructor SVGMissingGlyphElement;
    750     attribute SVGVKernElementConstructor SVGVKernElement;
    751 #endif
    752 
    753 #if defined(ENABLE_FILTERS) && ENABLE_FILTERS
    754     attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
    755     attribute SVGFEBlendElementConstructor SVGFEBlendElement;
    756     attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
    757     attribute SVGFEComponentTransferElementConstructor SVGFEComponentTransferElement;
    758     attribute SVGFECompositeElementConstructor SVGFECompositeElement;
    759     attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
    760     attribute SVGFEDiffuseLightingElementConstructor SVGFEDiffuseLightingElement;
    761     attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
    762     attribute SVGFEDistantLightElementConstructor SVGFEDistantLightElement;
    763     attribute SVGFEDropShadowElementConstructor SVGFEDropShadowElement;
    764     attribute SVGFEFloodElementConstructor SVGFEFloodElement;
    765     attribute SVGFEFuncAElementConstructor SVGFEFuncAElement;
    766     attribute SVGFEFuncBElementConstructor SVGFEFuncBElement;
    767     attribute SVGFEFuncGElementConstructor SVGFEFuncGElement;
    768     attribute SVGFEFuncRElementConstructor SVGFEFuncRElement;
    769     attribute SVGFEGaussianBlurElementConstructor SVGFEGaussianBlurElement;
    770     attribute SVGFEImageElementConstructor SVGFEImageElement;
    771     attribute SVGFEMergeElementConstructor SVGFEMergeElement;
    772     attribute SVGFEMergeNodeElementConstructor SVGFEMergeNodeElement;
    773     attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
    774     attribute SVGFEOffsetElementConstructor SVGFEOffsetElement;
    775     attribute SVGFEPointLightElementConstructor SVGFEPointLightElement;
    776     attribute SVGFESpecularLightingElementConstructor SVGFESpecularLightingElement;
    777     attribute SVGFESpotLightElementConstructor SVGFESpotLightElement;
    778     attribute SVGFETileElementConstructor SVGFETileElement;
    779     attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
    780     attribute SVGFilterElementConstructor SVGFilterElement;
    781 #endif
    782 #endif
    783 
    784     attribute DOMFormDataConstructor FormData;
    785 
    786     [Conditional=BLOB|FILE_SYSTEM] attribute FileErrorConstructor FileError;
    787     [Conditional=BLOB] attribute FileReaderConstructor FileReader;
    788 
    789     [Conditional=BLOB] attribute DOMURLConstructor URL;
    790334    [Conditional=BLOB] attribute DOMURLConstructor webkitURL; // FIXME: deprecate this.
    791 
    792335    attribute MutationObserverConstructor WebKitMutationObserver; // FIXME: Add metrics to determine when we can remove this.
    793     attribute MutationObserverConstructor MutationObserver;
    794     attribute MutationRecordConstructor MutationRecord;
    795 
     336    [Conditional=INDEXED_DATABASE] attribute IDBCursorConstructor webkitIDBCursor;
     337    [Conditional=INDEXED_DATABASE] attribute IDBDatabaseConstructor webkitIDBDatabase;
     338    [Conditional=INDEXED_DATABASE] attribute IDBFactoryConstructor webkitIDBFactory;
     339    [Conditional=INDEXED_DATABASE] attribute IDBIndexConstructor webkitIDBIndex;
     340    [Conditional=INDEXED_DATABASE] attribute IDBKeyRangeConstructor webkitIDBKeyRange;
     341    [Conditional=INDEXED_DATABASE] attribute IDBObjectStoreConstructor webkitIDBObjectStore;
     342    [Conditional=INDEXED_DATABASE] attribute IDBRequestConstructor webkitIDBRequest;
     343    [Conditional=INDEXED_DATABASE] attribute IDBTransactionConstructor webkitIDBTransaction;
     344
     345    // Constructors whose name does not match the interface name.
     346    // FIXME: Remove these once [ImplementedAs] is used and once constructor names match interface names.
     347    [Conditional=SHADOW_DOM] attribute ShadowRootConstructor WebKitShadowRoot;
    796348    [Conditional=MEDIA_SOURCE] attribute MediaSourceConstructor WebKitMediaSource;
    797349    [Conditional=MEDIA_SOURCE] attribute SourceBufferConstructor WebKitSourceBuffer;
    798350    [Conditional=MEDIA_SOURCE] attribute SourceBufferListConstructor WebKitSourceBufferList;
     351    [Conditional=WEB_AUDIO, CustomGetter] attribute AudioContextConstructor webkitAudioContext;
     352    [Conditional=WEB_AUDIO] attribute OfflineAudioContextConstructor webkitOfflineAudioContext;
     353    [Conditional=WEB_AUDIO] attribute PannerNodeConstructor webkitAudioPannerNode;
     354    [Conditional=MEDIA_STREAM] attribute MediaStreamConstructor webkitMediaStream;
     355    [Conditional=MEDIA_STREAM] attribute RTCPeerConnectionConstructor webkitRTCPeerConnection;
     356    [Conditional=SCRIPTED_SPEECH] attribute SpeechGrammarConstructor webkitSpeechGrammar;
     357    [Conditional=SCRIPTED_SPEECH] attribute SpeechGrammarListConstructor webkitSpeechGrammarList;
     358    [Conditional=SCRIPTED_SPEECH] attribute SpeechRecognitionConstructor webkitSpeechRecognition;
     359    [Conditional=SCRIPTED_SPEECH] attribute SpeechRecognitionErrorConstructor webkitSpeechRecognitionError;
     360    [Conditional=SCRIPTED_SPEECH] attribute SpeechRecognitionEventConstructor webkitSpeechRecognitionEvent;
    799361
    800362#endif // defined(LANGUAGE_JAVASCRIPT)
  • trunk/Source/WebCore/page/History.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    JSCustomGetOwnPropertySlotAndDescriptor,
    2829    CustomNamedSetter,
  • trunk/Source/WebCore/page/Location.idl

    r149368 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    JSCustomGetOwnPropertySlotAndDescriptor,
    3132    CustomNamedSetter,
  • trunk/Source/WebCore/page/MemoryInfo.idl

    r148593 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    OmitConstructor,
    3334    ImplementationLacksVTable
  • trunk/Source/WebCore/page/Navigator.idl

    r148593 r149796  
    1919
    2020[
     21    NoInterfaceObject,
    2122    GenerateIsReachable=ImplFrame,
    2223    OmitConstructor
  • trunk/Source/WebCore/page/PagePopupController.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=PAGE_POPUP,
    3334    ImplementationLacksVTable
  • trunk/Source/WebCore/page/Performance.idl

    r149368 r149796  
    3232// See: http://dev.w3.org/2006/webapi/WebTiming/
    3333[
     34    NoInterfaceObject,
    3435    Conditional=WEB_TIMING|WEB_TIMING_MINIMAL,
    3536    EventTarget,
  • trunk/Source/WebCore/page/PerformanceEntry.idl

    r131172 r149796  
    3131// See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
    3232[
     33    NoInterfaceObject,
    3334    Conditional=WEB_TIMING,
    3435    Conditional=PERFORMANCE_TIMELINE,
  • trunk/Source/WebCore/page/PerformanceEntryList.idl

    r149368 r149796  
    3131// See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
    3232[
     33    NoInterfaceObject,
    3334    Conditional=WEB_TIMING,
    3435    Conditional=PERFORMANCE_TIMELINE,
  • trunk/Source/WebCore/page/PerformanceMark.idl

    r134798 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=USER_TIMING,
    2829    OmitConstructor
  • trunk/Source/WebCore/page/PerformanceMeasure.idl

    r134798 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=USER_TIMING,
    2829    OmitConstructor
  • trunk/Source/WebCore/page/PerformanceNavigation.idl

    r131172 r149796  
    3131// See: http://www.w3.org/TR/navigation-timing/
    3232[
     33    NoInterfaceObject,
    3334    Conditional=WEB_TIMING,
    3435    OmitConstructor
  • trunk/Source/WebCore/page/PerformanceResourceTiming.idl

    r131172 r149796  
    3131// See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/ResourceTiming/Overview.html
    3232[
     33    NoInterfaceObject,
    3334    Conditional=RESOURCE_TIMING,
    3435    OmitConstructor
  • trunk/Source/WebCore/page/PerformanceTiming.idl

    r131172 r149796  
    3131// See: http://dev.w3.org/2006/webapi/WebTiming/
    3232[
     33    NoInterfaceObject,
    3334    Conditional=WEB_TIMING,
    3435    OmitConstructor
  • trunk/Source/WebCore/page/Screen.idl

    r148593 r149796  
    2929
    3030[
     31    NoInterfaceObject,
    3132    GenerateIsReachable=ImplFrame,
    3233    OmitConstructor
  • trunk/Source/WebCore/page/SpeechInputResult.idl

    r141034 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=INPUT_SPEECH,
    2829    ImplementationLacksVTable
  • trunk/Source/WebCore/page/SpeechInputResultList.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    IndexedGetter,
    2829    Conditional=INPUT_SPEECH,
  • trunk/Source/WebCore/page/WorkerNavigator.idl

    r148593 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=WORKERS,
    3132    GenerateIsReachable=Impl,
  • trunk/Source/WebCore/page/make_settings.pl

    r143652 r149796  
    353353
    354354    print $file "[\n";
     355    print $file "    NoInterfaceObject,\n";
    355356    print $file "    OmitConstructor\n";
    356357    print $file "] interface InternalSettingsGenerated {\n";
  • trunk/Source/WebCore/svg/ElementTimeControl.idl

    r149368 r149796  
    2626 
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SVG,
    2930    ObjCProtocol,
  • trunk/Source/WebCore/svg/SVGAnimationElement.idl

    r131172 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    Conditional=SVG,
    2829    OmitConstructor
  • trunk/Source/WebCore/svg/SVGExternalResourcesRequired.idl

    r131172 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SVG,
    2930    ObjCProtocol,
  • trunk/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl

    r140265 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SVG,
    2930    ObjCProtocol
  • trunk/Source/WebCore/svg/SVGFitToViewBox.idl

    r131172 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SVG,
    2930    ObjCProtocol,
  • trunk/Source/WebCore/svg/SVGLangSpace.idl

    r131172 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SVG,
    2930    ObjCProtocol,
  • trunk/Source/WebCore/svg/SVGLocatable.idl

    r149368 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SVG,
    2930    ObjCProtocol,
  • trunk/Source/WebCore/svg/SVGStyledElement.idl

    r149368 r149796  
    2727
    2828[
     29    NoInterfaceObject,
    2930    Conditional=SVG
    3031] interface SVGStyledElement : SVGElement {
  • trunk/Source/WebCore/svg/SVGTests.idl

    r149368 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SVG,
    2930    ObjCProtocol,
  • trunk/Source/WebCore/svg/SVGTransformable.idl

    r131172 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SVG,
    2930    ObjCProtocol,
  • trunk/Source/WebCore/svg/SVGURIReference.idl

    r131172 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=SVG,
    2930    ObjCProtocol,
  • trunk/Source/WebCore/testing/InternalSettings.idl

    r149368 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    OmitConstructor,
    2829    JSGenerateToJSObject
  • trunk/Source/WebCore/testing/Internals.idl

    r149708 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    OmitConstructor
    2930] interface Internals {
  • trunk/Source/WebCore/testing/MallocStatistics.idl

    r141034 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    OmitConstructor,
    2829    ImplementationLacksVTable
  • trunk/Source/WebCore/testing/TypeConversions.idl

    r145929 r149796  
    2525
    2626[
     27    NoInterfaceObject,
    2728    OmitConstructor,
    2829    ImplementationLacksVTable
  • trunk/Source/WebCore/workers/AbstractWorker.idl

    r149368 r149796  
    3131
    3232[
     33    NoInterfaceObject,
    3334    Conditional=WORKERS,
    3435    ActiveDOMObject,
  • trunk/Source/WebCore/workers/DedicatedWorkerContext.idl

    r149368 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=WORKERS,
    3334    ExtendsDOMGlobalObject,
  • trunk/Source/WebCore/workers/SharedWorker.idl

    r149368 r149796  
    3131
    3232[
     33    NoInterfaceObject,
    3334    Conditional=SHARED_WORKERS,
    3435    CustomConstructor,
  • trunk/Source/WebCore/workers/SharedWorkerContext.idl

    r131172 r149796  
    3030
    3131[
     32    NoInterfaceObject,
    3233    Conditional=SHARED_WORKERS,
    3334    ExtendsDOMGlobalObject,
  • trunk/Source/WebCore/workers/WorkerContext.idl

    r149368 r149796  
    2626
    2727[
     28    NoInterfaceObject,
    2829    Conditional=WORKERS,
    2930    JSCustomMarkFunction,
  • trunk/Source/WebCore/workers/WorkerLocation.idl

    r148593 r149796  
    2828
    2929[
     30    NoInterfaceObject,
    3031    Conditional=WORKERS,
    3132    GenerateIsReachable=Impl,
  • trunk/Source/WebCore/xml/XPathExpression.idl

    r149368 r149796  
    1919 */
    2020[
    21      ImplementationLacksVTable
     21    NoInterfaceObject,
     22    ImplementationLacksVTable
    2223] interface XPathExpression {
    2324    [ObjCLegacyUnnamedParameters] XPathResult evaluate([Default=Undefined] optional Node contextNode,
  • trunk/Source/WebCore/xml/XPathNSResolver.idl

    r149368 r149796  
    2020
    2121[
     22    NoInterfaceObject,
    2223    ObjCProtocol,
    2324    OmitConstructor,
  • trunk/Source/cmake/WebKitMacros.cmake

    r148571 r149796  
    3737macro(GENERATE_BINDINGS _output_source _input_files _base_dir _idl_includes _features _destination _prefix _generator _idl_attributes_file)
    3838    set(BINDING_GENERATOR ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl)
    39 
    40     set(_supplemental_dependency_file ${ARGN})
    41     if (_supplemental_dependency_file)
    42         set(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file})
     39    set(_args ${ARGN})
     40    list(LENGTH _args _argCount)
     41    if (_argCount EQUAL 2)
     42        list(GET _args 0 _supplemental_dependency_file)
     43        if (_supplemental_dependency_file)
     44            set(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file})
     45        endif ()
     46        list(GET _args 1 _window_constructors_file)
    4347    endif ()
    4448
     
    4953            OUTPUT ${_destination}/${_prefix}${_name}.cpp ${_destination}/${_prefix}${_name}.h
    5054            MAIN_DEPENDENCY ${_file}
    51             DEPENDS ${BINDING_GENERATOR} ${SCRIPTS_BINDINGS} ${_supplemental_dependency_file} ${_idl_attributes_file}
     55            DEPENDS ${BINDING_GENERATOR} ${SCRIPTS_BINDINGS} ${_supplemental_dependency_file} ${_idl_attributes_file} ${_window_constructors_file}
    5256            COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${BINDING_GENERATOR} --defines "${_features}" --generator ${_generator} ${_idl_includes} --outputDir "${_destination}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --idlAttributesFile ${_idl_attributes_file} ${_supplemental_dependency} ${_file}
    5357            WORKING_DIRECTORY ${_base_dir}
  • trunk/Tools/ChangeLog

    r149795 r149796  
     12013-05-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
     2
     3        Add support for [NoInterfaceObject] Web IDL extended attribute
     4        https://bugs.webkit.org/show_bug.cgi?id=115714
     5
     6        Reviewed by Kentaro Hara.
     7
     8        Update BindingsTests.generate_supplemental_dependency() to pass an
     9        additional windowConstructorsFile argument to preprocess-idls.pl.
     10
     11        * Scripts/webkitpy/bindings/main.py:
     12        (BindingsTests.generate_supplemental_dependency):
     13        (BindingsTests.main):
     14
    1152013-05-09  ChangSeok Oh  <changseok.oh@collabora.com>
    216
  • trunk/Tools/Scripts/webkitpy/bindings/main.py

    r143425 r149796  
    6262        return exit_code
    6363
    64     def generate_supplemental_dependency(self, input_directory, supplemental_dependency_file):
     64    def generate_supplemental_dependency(self, input_directory, supplemental_dependency_file, window_constructors_file):
    6565        idl_files_list = tempfile.mkstemp()
    6666        for input_file in os.listdir(input_directory):
     
    7676               '--idlFilesList', idl_files_list[1],
    7777               '--defines', '',
    78                '--supplementalDependencyFile', supplemental_dependency_file]
     78               '--supplementalDependencyFile', supplemental_dependency_file,
     79               '--windowConstructorsFile', window_constructors_file]
    7980
    8081        exit_code = 0
     
    151152        input_directory = os.path.join('WebCore', 'bindings', 'scripts', 'test')
    152153        supplemental_dependency_file = tempfile.mkstemp()[1]
    153         if self.generate_supplemental_dependency(input_directory, supplemental_dependency_file):
     154        window_constructors_file = tempfile.mkstemp()[1]
     155        if self.generate_supplemental_dependency(input_directory, supplemental_dependency_file, window_constructors_file):
    154156            print 'Failed to generate a supplemental dependency file.'
    155157            os.remove(supplemental_dependency_file)
Note: See TracChangeset for help on using the changeset viewer.