Add support for [NoInterfaceObject] Web IDL extended attribute
authorch.dumez@sisa.samsung.com <ch.dumez@sisa.samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 May 2013 07:38:21 +0000 (07:38 +0000)
committerch.dumez@sisa.samsung.com <ch.dumez@sisa.samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 May 2013 07:38:21 +0000 (07:38 +0000)
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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@149796 268f45cc-cd09-0410-ab3c-d52691b4dbfc

219 files changed:
ChangeLog
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.make
Source/WebCore/DerivedSources.pri
Source/WebCore/GNUmakefile.am
Source/WebCore/GNUmakefile.list.am
Source/WebCore/Modules/battery/BatteryManager.idl
Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.idl
Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.idl
Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl
Source/WebCore/Modules/encryptedmedia/MediaKeys.idl
Source/WebCore/Modules/filesystem/DOMFileSystem.idl
Source/WebCore/Modules/filesystem/DOMFileSystemSync.idl
Source/WebCore/Modules/filesystem/DirectoryEntry.idl
Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl
Source/WebCore/Modules/filesystem/DirectoryReader.idl
Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl
Source/WebCore/Modules/filesystem/Entry.idl
Source/WebCore/Modules/filesystem/EntryArray.idl
Source/WebCore/Modules/filesystem/EntryArraySync.idl
Source/WebCore/Modules/filesystem/EntrySync.idl
Source/WebCore/Modules/filesystem/FileEntry.idl
Source/WebCore/Modules/filesystem/FileEntrySync.idl
Source/WebCore/Modules/filesystem/FileWriter.idl
Source/WebCore/Modules/filesystem/FileWriterSync.idl
Source/WebCore/Modules/filesystem/Metadata.idl
Source/WebCore/Modules/gamepad/Gamepad.idl
Source/WebCore/Modules/gamepad/GamepadList.idl
Source/WebCore/Modules/geolocation/Coordinates.idl
Source/WebCore/Modules/geolocation/Geolocation.idl
Source/WebCore/Modules/geolocation/Geoposition.idl
Source/WebCore/Modules/geolocation/PositionError.idl
Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl
Source/WebCore/Modules/indexeddb/IDBAny.idl
Source/WebCore/Modules/mediasource/MediaSource.idl
Source/WebCore/Modules/mediasource/SourceBuffer.idl
Source/WebCore/Modules/mediasource/SourceBufferList.idl
Source/WebCore/Modules/mediastream/DOMWindowMediaStream.idl [deleted file]
Source/WebCore/Modules/mediastream/MediaStream.idl
Source/WebCore/Modules/mediastream/MediaStreamTrack.idl
Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.idl
Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl
Source/WebCore/Modules/mediastream/RTCDTMFSender.idl
Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.idl
Source/WebCore/Modules/mediastream/RTCDataChannel.idl
Source/WebCore/Modules/mediastream/RTCDataChannelEvent.idl
Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.idl
Source/WebCore/Modules/mediastream/RTCPeerConnection.idl
Source/WebCore/Modules/mediastream/RTCStatsReport.idl
Source/WebCore/Modules/mediastream/RTCStatsResponse.idl
Source/WebCore/Modules/networkinfo/NetworkInfoConnection.idl
Source/WebCore/Modules/notifications/DOMWindowNotifications.idl
Source/WebCore/Modules/notifications/NotificationCenter.idl
Source/WebCore/Modules/quota/StorageInfo.idl
Source/WebCore/Modules/quota/StorageQuota.idl
Source/WebCore/Modules/speech/DOMWindowSpeech.idl [deleted file]
Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl
Source/WebCore/Modules/speech/SpeechGrammar.idl
Source/WebCore/Modules/speech/SpeechGrammarList.idl
Source/WebCore/Modules/speech/SpeechRecognition.idl
Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl
Source/WebCore/Modules/speech/SpeechRecognitionError.idl
Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl
Source/WebCore/Modules/speech/SpeechRecognitionResult.idl
Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl
Source/WebCore/Modules/speech/SpeechSynthesis.idl
Source/WebCore/Modules/speech/SpeechSynthesisVoice.idl
Source/WebCore/Modules/webaudio/AnalyserNode.idl
Source/WebCore/Modules/webaudio/AudioBuffer.idl
Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl
Source/WebCore/Modules/webaudio/AudioContext.idl
Source/WebCore/Modules/webaudio/AudioDestinationNode.idl
Source/WebCore/Modules/webaudio/AudioListener.idl
Source/WebCore/Modules/webaudio/AudioNode.idl
Source/WebCore/Modules/webaudio/AudioParam.idl
Source/WebCore/Modules/webaudio/AudioSourceNode.idl
Source/WebCore/Modules/webaudio/BiquadFilterNode.idl
Source/WebCore/Modules/webaudio/ChannelMergerNode.idl
Source/WebCore/Modules/webaudio/ChannelSplitterNode.idl
Source/WebCore/Modules/webaudio/ConvolverNode.idl
Source/WebCore/Modules/webaudio/DOMWindowWebAudio.idl [deleted file]
Source/WebCore/Modules/webaudio/DelayNode.idl
Source/WebCore/Modules/webaudio/DynamicsCompressorNode.idl
Source/WebCore/Modules/webaudio/GainNode.idl
Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl
Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.idl
Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.idl
Source/WebCore/Modules/webaudio/OfflineAudioContext.idl
Source/WebCore/Modules/webaudio/OscillatorNode.idl
Source/WebCore/Modules/webaudio/PannerNode.idl
Source/WebCore/Modules/webaudio/ScriptProcessorNode.idl
Source/WebCore/Modules/webaudio/WaveShaperNode.idl
Source/WebCore/Modules/webaudio/WaveTable.idl
Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl
Source/WebCore/Modules/webdatabase/Database.idl
Source/WebCore/Modules/webdatabase/DatabaseSync.idl
Source/WebCore/Modules/webdatabase/SQLError.idl
Source/WebCore/Modules/webdatabase/SQLResultSet.idl
Source/WebCore/Modules/webdatabase/SQLResultSetRowList.idl
Source/WebCore/Modules/webdatabase/SQLTransaction.idl
Source/WebCore/Modules/webdatabase/SQLTransactionSync.idl
Source/WebCore/Modules/websockets/DOMWindowWebSocket.idl [deleted file]
Source/WebCore/Modules/websockets/WebSocket.idl
Source/WebCore/PlatformBlackBerry.cmake
Source/WebCore/UseJSC.cmake
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/bindings/scripts/IDLAttributes.txt
Source/WebCore/bindings/scripts/IDLParser.pm
Source/WebCore/bindings/scripts/preprocess-idls.pl
Source/WebCore/css/CSSFontFaceLoadEvent.idl
Source/WebCore/css/CSSFontFaceRule.idl
Source/WebCore/css/CSSSupportsRule.idl
Source/WebCore/css/CSSUnknownRule.idl
Source/WebCore/css/DOMWindowCSS.idl
Source/WebCore/css/FontLoader.idl
Source/WebCore/css/MediaQueryList.idl
Source/WebCore/css/MediaQueryListListener.idl
Source/WebCore/css/StyleMedia.idl
Source/WebCore/dom/CustomElementConstructor.idl
Source/WebCore/dom/DOMError.idl
Source/WebCore/dom/DOMNamedFlowCollection.idl
Source/WebCore/dom/DataTransferItem.idl
Source/WebCore/dom/DataTransferItemList.idl
Source/WebCore/dom/EventListener.idl
Source/WebCore/dom/EventTarget.idl
Source/WebCore/dom/NodeIterator.idl
Source/WebCore/dom/ShadowRoot.idl
Source/WebCore/dom/TreeWalker.idl
Source/WebCore/dom/WebKitNamedFlow.idl
Source/WebCore/fileapi/FileException.idl
Source/WebCore/fileapi/FileReaderSync.idl
Source/WebCore/html/HTMLAudioElement.idl
Source/WebCore/html/HTMLDetailsElement.idl
Source/WebCore/html/HTMLOptionElement.idl
Source/WebCore/html/MediaError.idl
Source/WebCore/html/MediaKeyError.idl
Source/WebCore/html/MicroDataItemValue.idl
Source/WebCore/html/RadioNodeList.idl
Source/WebCore/html/ValidityState.idl
Source/WebCore/html/canvas/CanvasRenderingContext.idl
Source/WebCore/html/canvas/DOMPath.idl
Source/WebCore/html/canvas/EXTDrawBuffers.idl
Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl
Source/WebCore/html/canvas/OESElementIndexUint.idl
Source/WebCore/html/canvas/OESStandardDerivatives.idl
Source/WebCore/html/canvas/OESTextureFloat.idl
Source/WebCore/html/canvas/OESTextureHalfFloat.idl
Source/WebCore/html/canvas/OESVertexArrayObject.idl
Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl
Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl
Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl
Source/WebCore/html/canvas/WebGLContextAttributes.idl
Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl
Source/WebCore/html/canvas/WebGLDebugShaders.idl
Source/WebCore/html/canvas/WebGLDepthTexture.idl
Source/WebCore/html/canvas/WebGLLoseContext.idl
Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl
Source/WebCore/html/track/AudioTrack.idl
Source/WebCore/html/track/AudioTrackList.idl
Source/WebCore/html/track/TextTrackRegionList.idl
Source/WebCore/html/track/VideoTrack.idl
Source/WebCore/html/track/VideoTrackList.idl
Source/WebCore/inspector/InjectedScriptHost.idl
Source/WebCore/inspector/InspectorFrontendHost.idl
Source/WebCore/inspector/JavaScriptCallFrame.idl
Source/WebCore/inspector/ScriptProfile.idl
Source/WebCore/inspector/ScriptProfileNode.idl
Source/WebCore/loader/appcache/DOMApplicationCache.idl
Source/WebCore/page/AbstractView.idl
Source/WebCore/page/BarInfo.idl
Source/WebCore/page/Console.idl
Source/WebCore/page/Crypto.idl
Source/WebCore/page/DOMSecurityPolicy.idl
Source/WebCore/page/DOMWindow.idl
Source/WebCore/page/History.idl
Source/WebCore/page/Location.idl
Source/WebCore/page/MemoryInfo.idl
Source/WebCore/page/Navigator.idl
Source/WebCore/page/PagePopupController.idl
Source/WebCore/page/Performance.idl
Source/WebCore/page/PerformanceEntry.idl
Source/WebCore/page/PerformanceEntryList.idl
Source/WebCore/page/PerformanceMark.idl
Source/WebCore/page/PerformanceMeasure.idl
Source/WebCore/page/PerformanceNavigation.idl
Source/WebCore/page/PerformanceResourceTiming.idl
Source/WebCore/page/PerformanceTiming.idl
Source/WebCore/page/Screen.idl
Source/WebCore/page/SpeechInputResult.idl
Source/WebCore/page/SpeechInputResultList.idl
Source/WebCore/page/WorkerNavigator.idl
Source/WebCore/page/make_settings.pl
Source/WebCore/svg/ElementTimeControl.idl
Source/WebCore/svg/SVGAnimationElement.idl
Source/WebCore/svg/SVGExternalResourcesRequired.idl
Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl
Source/WebCore/svg/SVGFitToViewBox.idl
Source/WebCore/svg/SVGLangSpace.idl
Source/WebCore/svg/SVGLocatable.idl
Source/WebCore/svg/SVGStyledElement.idl
Source/WebCore/svg/SVGTests.idl
Source/WebCore/svg/SVGTransformable.idl
Source/WebCore/svg/SVGURIReference.idl
Source/WebCore/testing/InternalSettings.idl
Source/WebCore/testing/Internals.idl
Source/WebCore/testing/MallocStatistics.idl
Source/WebCore/testing/TypeConversions.idl
Source/WebCore/workers/AbstractWorker.idl
Source/WebCore/workers/DedicatedWorkerContext.idl
Source/WebCore/workers/SharedWorker.idl
Source/WebCore/workers/SharedWorkerContext.idl
Source/WebCore/workers/WorkerContext.idl
Source/WebCore/workers/WorkerLocation.idl
Source/WebCore/xml/XPathExpression.idl
Source/WebCore/xml/XPathNSResolver.idl
Source/cmake/WebKitMacros.cmake
Tools/ChangeLog
Tools/Scripts/webkitpy/bindings/main.py

index 9afe366..371be23 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2013-05-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        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:
+
 2013-05-08  José Dapena Paz  <jdapena@igalia.com> and Zan Dobersek  <zdobersek@igalia.com>
 
         [GTK] Plumb the Automake build system for the Battery Status API feature
index 12920c2..916673e 100644 (file)
@@ -206,7 +206,6 @@ set(WebCore_IDL_FILES
     Modules/mediasource/SourceBuffer.idl
     Modules/mediasource/SourceBufferList.idl
 
-    Modules/mediastream/DOMWindowMediaStream.idl
     Modules/mediastream/LocalMediaStream.idl
     Modules/mediastream/MediaStream.idl
     Modules/mediastream/MediaStreamEvent.idl
@@ -261,7 +260,6 @@ set(WebCore_IDL_FILES
     Modules/webaudio/AudioSourceNode.idl
     Modules/webaudio/BiquadFilterNode.idl
     Modules/webaudio/ConvolverNode.idl
-    Modules/webaudio/DOMWindowWebAudio.idl
     Modules/webaudio/DelayNode.idl
     Modules/webaudio/DynamicsCompressorNode.idl
     Modules/webaudio/ScriptProcessorNode.idl
@@ -291,7 +289,6 @@ set(WebCore_IDL_FILES
     Modules/webdatabase/SQLTransactionSyncCallback.idl
 
     Modules/websockets/CloseEvent.idl
-    Modules/websockets/DOMWindowWebSocket.idl
     Modules/websockets/WebSocket.idl
     Modules/websockets/WorkerContextWebSocket.idl
 
@@ -2948,6 +2945,7 @@ set(SCRIPTS_BINDINGS
 )
 set(IDL_FILES_TMP ${DERIVED_SOURCES_WEBCORE_DIR}/idl_files.tmp)
 set(SUPPLEMENTAL_DEPENDENCY_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/supplemental_dependency.tmp)
+set(WINDOW_CONSTRUCTORS_FILE ${DERIVED_SOURCES_WEBCORE_DIR}/DOMWindowConstructors.idl)
 set(IDL_ATTRIBUTES_FILE ${WEBCORE_DIR}/bindings/scripts/IDLAttributes.txt)
 
 include(${WEBCORE_DIR}/UseJSC.cmake)
index c596230..b1d779c 100644 (file)
@@ -1,3 +1,247 @@
+2013-05-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        Add support for [NoInterfaceObject] Web IDL extended attribute
+        https://bugs.webkit.org/show_bug.cgi?id=115714
+
+        Reviewed by Kentaro Hara.
+
+        *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:
+
 2013-05-09  ChangSeok Oh  <changseok.oh@collabora.com>
 
         [GTK][AC] Buildfix after r149694
index d033d11..59218f5 100644 (file)
@@ -147,7 +147,6 @@ BINDING_IDLS = \
     $(WebCore)/Modules/webaudio/AudioSourceNode.idl \
     $(WebCore)/Modules/webaudio/BiquadFilterNode.idl \
     $(WebCore)/Modules/webaudio/ConvolverNode.idl \
-    $(WebCore)/Modules/webaudio/DOMWindowWebAudio.idl \
     $(WebCore)/Modules/webaudio/DelayNode.idl \
     $(WebCore)/Modules/webaudio/DynamicsCompressorNode.idl \
     $(WebCore)/Modules/webaudio/ScriptProcessorNode.idl \
@@ -176,7 +175,6 @@ BINDING_IDLS = \
     $(WebCore)/Modules/webdatabase/SQLTransactionSyncCallback.idl \
     $(WebCore)/Modules/webdatabase/WorkerContextWebDatabase.idl \
     $(WebCore)/Modules/websockets/CloseEvent.idl \
-    $(WebCore)/Modules/websockets/DOMWindowWebSocket.idl \
     $(WebCore)/Modules/websockets/WebSocket.idl \
     $(WebCore)/Modules/websockets/WorkerContextWebSocket.idl \
     $(WebCore)/css/CSSCharsetRule.idl \
@@ -662,6 +660,7 @@ WEB_DOM_HEADERS :=
 
 all : \
     $(SUPPLEMENTAL_DEPENDENCY_FILE) \
+    $(WINDOW_CONSTRUCTORS_FILE) \
     $(JS_DOM_HEADERS) \
     $(WEB_DOM_HEADERS) \
     \
@@ -1002,6 +1001,7 @@ JS_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm
 
 SUPPLEMENTAL_DEPENDENCY_FILE = ./SupplementalDependencies.txt
 SUPPLEMENTAL_MAKEFILE_DEPS = ./SupplementalDependencies.dep
+WINDOW_CONSTRUCTORS_FILE = ./DOMWindowConstructors.idl
 IDL_FILES_TMP = ./idl_files.tmp
 ADDITIONAL_IDLS = $(WebCore)/inspector/JavaScriptCallFrame.idl
 IDL_ATTRIBUTES_FILE = $(WebCore)/bindings/scripts/IDLAttributes.txt
@@ -1013,10 +1013,10 @@ space +=
 
 $(SUPPLEMENTAL_MAKEFILE_DEPS) : $(PREPROCESS_IDLS_SCRIPTS) $(BINDING_IDLS) $(ADDITIONAL_IDLS)
        printf "$(subst $(space),,$(patsubst %,%\n,$(BINDING_IDLS) $(ADDITIONAL_IDLS)))" > $(IDL_FILES_TMP)
-       $(call preprocess_idls_script, $(PREPROCESS_IDLS_SCRIPTS)) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) --supplementalMakefileDeps $@
+       $(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 $@
        rm -f $(IDL_FILES_TMP)
 
-JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE)
+JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(WINDOW_CONSTRUCTORS_FILE)
        $(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) $<
 
 include $(SUPPLEMENTAL_MAKEFILE_DEPS)
index 477705b..f5a288d 100644 (file)
@@ -161,7 +161,6 @@ IDL_BINDINGS += \
     $$PWD/Modules/webaudio/BiquadFilterNode.idl \
     $$PWD/Modules/webaudio/ConvolverNode.idl \
     $$PWD/Modules/webaudio/DelayNode.idl \
-    $$PWD/Modules/webaudio/DOMWindowWebAudio.idl \
     $$PWD/Modules/webaudio/DynamicsCompressorNode.idl \
     $$PWD/Modules/webaudio/ScriptProcessorNode.idl \
     $$PWD/Modules/webaudio/MediaElementAudioSourceNode.idl \
@@ -189,7 +188,6 @@ IDL_BINDINGS += \
     $$PWD/Modules/webdatabase/SQLTransactionSyncCallback.idl \
     $$PWD/Modules/webdatabase/WorkerContextWebDatabase.idl \
     $$PWD/Modules/websockets/CloseEvent.idl \
-    $$PWD/Modules/websockets/DOMWindowWebSocket.idl \
     $$PWD/Modules/websockets/WebSocket.idl \
     $$PWD/Modules/websockets/WorkerContextWebSocket.idl \
     $$PWD/css/Counter.idl \
@@ -733,6 +731,7 @@ IDL_BINDINGS += generated/$$INTERNAL_SETTINGS_GENERATED_IDL
 
 # GENERATOR 0: Resolve [Supplemental] dependency in IDLs
 SUPPLEMENTAL_DEPENDENCY_FILE = supplemental_dependency.tmp
+WINDOW_CONSTRUCTORS_FILE = DOMWindowConstructors.idl
 IDL_FILES_TMP = ${QMAKE_FUNC_FILE_OUT_PATH}/idl_files.tmp
 PREPROCESS_IDLS_SCRIPT = $$PWD/bindings/scripts/preprocess-idls.pl
 IDL_ATTRIBUTES_FILE = $$PWD/bindings/scripts/IDLAttributes.txt
@@ -750,8 +749,9 @@ for(binding, IDL_BINDINGS) {
 preprocessIdls.commands += perl -I$$PWD/bindings/scripts $$preprocessIdls.script \
                                --defines \"$$javascriptFeatureDefines()\" \
                                --idlFilesList $$IDL_FILES_TMP \
-                               --supplementalDependencyFile ${QMAKE_FUNC_FILE_OUT_PATH}/$$SUPPLEMENTAL_DEPENDENCY_FILE
-preprocessIdls.output = $$SUPPLEMENTAL_DEPENDENCY_FILE
+                               --supplementalDependencyFile ${QMAKE_FUNC_FILE_OUT_PATH}/$$SUPPLEMENTAL_DEPENDENCY_FILE \
+                               --windowConstructorsFile ${QMAKE_FUNC_FILE_OUT_PATH}/$$WINDOW_CONSTRUCTORS_FILE
+preprocessIdls.output = $$SUPPLEMENTAL_DEPENDENCY_FILE $$WINDOW_CONSTRUCTORS_FILE
 preprocessIdls.add_output_to_sources = false
 preprocessIdls.depends = $$IDL_BINDINGS
 GENERATORS += preprocessIdls
index 8d1649d..cd7e8fe 100644 (file)
@@ -407,6 +407,7 @@ IDL_PATH := \
 vpath %.idl $(IDL_PATH)
 
 supplemental_dependency_file = $(top_builddir)/DerivedSources/WebCore/idl_supplemental_dependencies
+window_constructors_file = $(top_builddir)/DerivedSources/WebCore/DOMWindowConstructors.idl
 idl_files_list = $(top_builddir)/DerivedSources/WebCore/idl_files_list
 idl_attributes_file = $(WebCore)/bindings/scripts/IDLAttributes.txt
 
@@ -415,14 +416,14 @@ $(supplemental_dependency_file): $(SCRIPTS_FOR_PREPROCESS_IDLS) $(dom_binding_id
        $(AM_V_GEN)
        $(AM_V_at)echo -n > $(idl_files_list)
        $(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) echo -n) >> $(idl_files_list)
-       $(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 $@
+       $(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 $@
 
 # This does not appear to work correctly with gnumake unless
 # it includes an empty command list (the semicolon).
 DerivedSources/WebCore/JS%.cpp: DerivedSources/WebCore/JS%.h;
 
 .SECONDARY:
-DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file)
+DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file) $(idl_attributes_file) $(window_constructors_file)
        $(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) $<
 
 .SECONDARY:
index f82d403..07db081 100644 (file)
@@ -1269,7 +1269,6 @@ dom_binding_idls += \
        $(WebCore)/Modules/mediasource/MediaSource.idl \
        $(WebCore)/Modules/mediasource/SourceBuffer.idl \
        $(WebCore)/Modules/mediasource/SourceBufferList.idl \
-       $(WebCore)/Modules/mediastream/DOMWindowMediaStream.idl \
        $(WebCore)/Modules/mediastream/LocalMediaStream.idl \
        $(WebCore)/Modules/mediastream/MediaStream.idl \
        $(WebCore)/Modules/mediastream/MediaStreamEvent.idl \
@@ -1324,7 +1323,6 @@ dom_binding_idls += \
        $(WebCore)/Modules/webaudio/BiquadFilterNode.idl \
        $(WebCore)/Modules/webaudio/ConvolverNode.idl \
        $(WebCore)/Modules/webaudio/DelayNode.idl \
-       $(WebCore)/Modules/webaudio/DOMWindowWebAudio.idl \
        $(WebCore)/Modules/webaudio/DynamicsCompressorNode.idl \
        $(WebCore)/Modules/webaudio/ScriptProcessorNode.idl \
        $(WebCore)/Modules/webaudio/MediaElementAudioSourceNode.idl \
@@ -1352,7 +1350,6 @@ dom_binding_idls += \
        $(WebCore)/Modules/webdatabase/SQLTransactionSyncCallback.idl \
        $(WebCore)/Modules/webdatabase/WorkerContextWebDatabase.idl \
        $(WebCore)/Modules/websockets/CloseEvent.idl \
-       $(WebCore)/Modules/websockets/DOMWindowWebSocket.idl \
        $(WebCore)/Modules/websockets/WebSocket.idl \
        $(WebCore)/Modules/websockets/WorkerContextWebSocket.idl \
        $(WebCore)/css/CSSCharsetRule.idl \
index 7a09d24..f2d9f13 100644 (file)
@@ -19,6 +19,7 @@
 
 // http://dev.w3.org/2009/dap/system-info/battery-status.html
 [
+    NoInterfaceObject,
     Conditional=BATTERY_STATUS,
     ActiveDOMObject,
     EventTarget
index 682867d..11ac733 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-interface [
+[
     Conditional=ENCRYPTED_MEDIA_V2,
     ConstructorTemplate=Event 
-] MediaKeyMessageEvent : Event {
+] interface MediaKeyMessageEvent : Event {
     readonly attribute Uint8Array message;
     readonly attribute [InitializedByEventConstructor] DOMString destinationURL;
 };
index ebbc00b..2418f4b 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-interface [
+[
     Conditional=ENCRYPTED_MEDIA_V2,
     ConstructorTemplate=Event 
-] MediaKeyNeededEvent : Event {
+] interface MediaKeyNeededEvent : Event {
     readonly attribute Uint8Array initData;
 };
 
index 816ff28..c0c85e7 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
      */
 
-interface [
+[
     Conditional=ENCRYPTED_MEDIA_V2,
     EventTarget,
-] MediaKeySession {
+] interface MediaKeySession {
     // error state
     readonly attribute MediaKeyError error;
 
index e86c882..327e40c 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
  
-interface [
+[
     Conditional=ENCRYPTED_MEDIA_V2,
     Constructor(DOMString keySystem),
     ConstructorRaisesException,
-] MediaKeys {
+] interface MediaKeys {
     [CallWith=ScriptExecutionContext] MediaKeySession createSession([Default=Undefined] optional DOMString type, [Default=Undefined] optional Uint8Array initData)
         raises(DOMException);
 
index 0d3594e..176c2d5 100644 (file)
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     ActiveDOMObject,
     JSNoStaticTables
index 06db9e9..a332b2c 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables
 ] interface DOMFileSystemSync {
index a527448..bb5955d 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSGenerateToNativeObject,
     JSGenerateToJSObject,
index ed5f371..05e0e7d 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSGenerateToNativeObject,
     JSGenerateToJSObject,
index 01608d0..ce8dd72 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables,
     ImplementationLacksVTable
index d21f90b..17a176a 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables,
     ImplementationLacksVTable
index a73c748..0434a2d 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     CustomToJSObject,
     JSNoStaticTables
index 19160b2..af87919 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     IndexedGetter,
     JSNoStaticTables,
index 3831846..b121710 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     IndexedGetter,
     JSNoStaticTables,
index 5133da3..6a7f7fe 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     CustomToJSObject,
     JSNoStaticTables
index b9c7482..c772fc2 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSGenerateToNativeObject,
     JSGenerateToJSObject,
index 8876400..2fccbf8 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSGenerateToNativeObject,
     JSGenerateToJSObject,
index f0c1b53..efe1996 100644 (file)
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     ActiveDOMObject,
     CallWith=ScriptExecutionContext,
index d6bd118..ffb7b30 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables
 ] interface FileWriterSync {
index 627c5de..ca9e176 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables,
     ImplementationLacksVTable
index 0c5b8d5..0c9c1e7 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GAMEPAD,
     ImplementationLacksVTable
 ] interface Gamepad {
index 82c8367..bfbf2a0 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GAMEPAD,
     IndexedGetter,
     ImplementationLacksVTable
index 0fb9781..f4003ce 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GEOLOCATION,
     OmitConstructor,
     ImplementationLacksVTable
index bda489d..f48c243 100644 (file)
@@ -25,6 +25,7 @@
 
 // http://www.w3.org/TR/geolocation-API/#geolocation_interface
 [
+    NoInterfaceObject,
     Conditional=GEOLOCATION, 
     GenerateIsReachable=ImplFrame,
     OmitConstructor
index 3f00092..7e14f2f 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GEOLOCATION,
     OmitConstructor,
     ImplementationLacksVTable
index 4251896..5c1f3a2 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GEOLOCATION,
     ImplementationLacksVTable
 ] interface PositionError {
index 19cfcbd..19cfdb6 100644 (file)
 ] partial interface DOMWindow {
     [ImplementedAs=indexedDB] readonly attribute IDBFactory webkitIndexedDB;
 
-    attribute IDBCursorConstructor webkitIDBCursor;
-    attribute IDBDatabaseConstructor webkitIDBDatabase;
-    attribute IDBFactoryConstructor webkitIDBFactory;
-    attribute IDBIndexConstructor webkitIDBIndex;
-    attribute IDBKeyRangeConstructor webkitIDBKeyRange;
-    attribute IDBObjectStoreConstructor webkitIDBObjectStore;
-    attribute IDBRequestConstructor webkitIDBRequest;
-    attribute IDBTransactionConstructor webkitIDBTransaction;
-
     readonly attribute IDBFactory indexedDB;
-
-    attribute IDBCursorConstructor IDBCursor;
-    attribute IDBCursorWithValueConstructor IDBCursorWithValue;
-    attribute IDBDatabaseConstructor IDBDatabase;
-    attribute IDBFactoryConstructor IDBFactory;
-    attribute IDBIndexConstructor IDBIndex;
-    attribute IDBKeyRangeConstructor IDBKeyRange;
-    attribute IDBObjectStoreConstructor IDBObjectStore;
-    attribute IDBOpenDBRequestConstructor IDBOpenDBRequest;
-    attribute IDBRequestConstructor IDBRequest;
-    attribute IDBTransactionConstructor IDBTransaction;
-    attribute IDBVersionChangeEventConstructor IDBVersionChangeEvent;
 };
 
index 0141b01..fb480c9 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=INDEXED_DATABASE,
     CustomToJSObject,
     JSNoStaticTables
index 1f42762..7d69c33 100644 (file)
@@ -29,6 +29,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=MEDIA_SOURCE,
     ActiveDOMObject,
     EventTarget,
index 82519b3..75518b2 100644 (file)
@@ -29,6 +29,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=MEDIA_SOURCE
 ] interface SourceBuffer {
 
index 55223e8..061aa3e 100644 (file)
@@ -29,6 +29,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=MEDIA_SOURCE,
     IndexedGetter,
     EventTarget,
diff --git a/Source/WebCore/Modules/mediastream/DOMWindowMediaStream.idl b/Source/WebCore/Modules/mediastream/DOMWindowMediaStream.idl
deleted file mode 100644 (file)
index 3264bca..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=MEDIA_STREAM,
-] partial interface DOMWindow {
-    attribute MediaStreamConstructor webkitMediaStream;
-    attribute RTCPeerConnectionConstructor webkitRTCPeerConnection;
-    attribute RTCSessionDescriptionConstructor RTCSessionDescription;
-    attribute RTCIceCandidateConstructor RTCIceCandidate;
-    attribute MediaStreamEventConstructor MediaStreamEvent;
-};
-
index 3710b42..de8e0c9 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     EventTarget,
     Constructor,
index 5dac56a..eddcb6d 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     EventTarget,
     ActiveDOMObject
index 640a2af..a241d2a 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
 ] interface MediaStreamTrackEvent : Event {
    readonly attribute MediaStreamTrack track;
index 9c6df79..2e07c9a 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM
 ] interface NavigatorUserMediaError {
     const unsigned short PERMISSION_DENIED = 1;
index d165340..78aa875 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     ActiveDOMObject,
     EventTarget
index b8057f5..1edebd3 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     ConstructorTemplate=Event
 ] interface RTCDTMFToneChangeEvent : Event {
index 696c2b7..a6a03e9 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     EventTarget
 ] interface RTCDataChannel {
index 7fd7ec9..9463375 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
 ] interface RTCDataChannelEvent : Event {
     readonly attribute RTCDataChannel channel;
index 331d3b3..3fa0637 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
 ] interface RTCIceCandidateEvent : Event {
     readonly attribute RTCIceCandidate candidate;
index 3712f73..acb83e0 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     ActiveDOMObject,
     Constructor(Dictionary rtcIceServers, optional Dictionary mediaConstraints),
index 0259add..ade809b 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     ImplementationLacksVTable
 ] interface RTCStatsReport {
index 5d66b3e..76778e7 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     NamedGetter
 ] interface RTCStatsResponse {
index 8460ef5..9a41f97 100644 (file)
@@ -21,6 +21,7 @@
 
 // http://dvcs.w3.org/hg/dap/raw-file/tip/network-api/index.html
 [
+    NoInterfaceObject,
     Conditional=NETWORK_INFO,
     ActiveDOMObject,
     EventTarget
index d9b5aa5..0e5039b 100644 (file)
@@ -30,8 +30,5 @@
 #if defined(ENABLE_LEGACY_NOTIFICATIONS) && ENABLE_LEGACY_NOTIFICATIONS
     readonly attribute NotificationCenter webkitNotifications;
 #endif
-#if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
-    attribute NotificationConstructor Notification;
-#endif
 };
 
index 4b8e069..6f5af09 100644 (file)
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=LEGACY_NOTIFICATIONS,
     ActiveDOMObject,
     OmitConstructor
index cb3cbb5..5c11945 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=QUOTA,
     OmitConstructor,
     ImplementationLacksVTable
index 0b0c666..7f66251 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=QUOTA,
     OmitConstructor,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/speech/DOMWindowSpeech.idl b/Source/WebCore/Modules/speech/DOMWindowSpeech.idl
deleted file mode 100644 (file)
index 4536ca2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=SCRIPTED_SPEECH,
-] partial interface DOMWindow {
-    attribute SpeechRecognitionConstructor webkitSpeechRecognition;
-    attribute SpeechRecognitionErrorConstructor webkitSpeechRecognitionError;
-    attribute SpeechRecognitionEventConstructor webkitSpeechRecognitionEvent;
-    attribute SpeechGrammarConstructor webkitSpeechGrammar;
-    attribute SpeechGrammarListConstructor webkitSpeechGrammarList;
-};
index f39d923..0744f07 100644 (file)
@@ -28,6 +28,4 @@
 ] partial interface DOMWindow {
 
     readonly attribute SpeechSynthesis speechSynthesis;
-    attribute SpeechSynthesisEventConstructor SpeechSynthesisEvent;
-    attribute SpeechSynthesisUtteranceConstructor SpeechSynthesisUtterance;
 };
index 9b2a2a7..f88240d 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     Constructor,
     ImplementationLacksVTable
index 6e3c19c..c283013 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     IndexedGetter,
     Constructor,
index 73bc78c..1662045 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     ActiveDOMObject,
     Constructor,
index 719dce2..230c824 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     ImplementationLacksVTable
 ] interface SpeechRecognitionAlternative {
index f3f91d8..a6b643c 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     ConstructorTemplate=Event
 ] interface SpeechRecognitionError : Event {
index 616d750..6c94d08 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     ConstructorTemplate=Event,
 ] interface SpeechRecognitionEvent : Event {
index 2abfc16..3302c95 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     IndexedGetter,
     ImplementationLacksVTable
index ffd79f0..1654fb4 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     IndexedGetter,
     ImplementationLacksVTable
index a125b95..32419c0 100644 (file)
@@ -24,6 +24,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=SPEECH_SYNTHESIS
 ] interface SpeechSynthesis  {
     readonly attribute boolean pending;
index c35a933..2226545 100644 (file)
@@ -24,6 +24,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=SPEECH_SYNTHESIS
 ] interface SpeechSynthesisVoice {
     readonly attribute DOMString voiceURI;
index 34c706e..2d7c2fe 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface AnalyserNode : AudioNode {
index 30ade1e..ab9d68c 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ImplementationLacksVTable
 ] interface AudioBuffer {
index d73fab0..1e188f3 100644 (file)
@@ -24,6 +24,7 @@
 
 // A cached (non-streamed), memory-resident audio source
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface AudioBufferSourceNode : AudioSourceNode {
index b0931c9..a702d2c 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ActiveDOMObject,
     CustomConstructor,
index 9c80df1..03140ab 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject,
     SkipVTableValidation
index c98b6d0..4a959a2 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ImplementationLacksVTable
 ] interface AudioListener {
index 0fc2348..04796b7 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO
 ] interface AudioNode {
     readonly attribute AudioContext context;
index 2719ddc..d61d1dc 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO
 ] interface AudioParam {
     attribute float value;
index 1981c46..4323121 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ImplementationLacksVTable
 ] interface AudioSourceNode : AudioNode {
index 687f742..9cd501c 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface BiquadFilterNode : AudioNode {
index 8158d7c..74deb26 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface ChannelMergerNode : AudioNode {
index 6bbf0bb..6d1a165 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface ChannelSplitterNode : AudioNode {
index 5451d4e..ee84fa6 100644 (file)
@@ -24,6 +24,7 @@
 
 // A linear convolution effect
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface ConvolverNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/DOMWindowWebAudio.idl b/Source/WebCore/Modules/webaudio/DOMWindowWebAudio.idl
deleted file mode 100644 (file)
index cd2c9b0..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=WEB_AUDIO,
-] partial interface DOMWindow {
-#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
-    [CustomGetter] attribute AudioContextConstructor webkitAudioContext;
-    attribute OfflineAudioContextConstructor webkitOfflineAudioContext;
-    attribute PannerNodeConstructor webkitAudioPannerNode;
-    attribute AudioProcessingEventConstructor AudioProcessingEvent;
-    attribute OfflineAudioCompletionEventConstructor OfflineAudioCompletionEvent;
-#endif
-};
index 699ead4..bca9ce7 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface DelayNode : AudioNode {
index ad7a47e..c055a49 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface DynamicsCompressorNode : AudioNode {
index cbb0c96..d70664d 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface GainNode : AudioNode {
index 916360b..d4d3e25 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO&VIDEO,
     JSGenerateToJSObject
 ] interface MediaElementAudioSourceNode : AudioSourceNode {
index c71bba4..29a5dff 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO&MEDIA_STREAM,
     JSGenerateToJSObject
 ] interface MediaStreamAudioDestinationNode : AudioSourceNode {
index d91e5e8..7aadbef 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO&MEDIA_STREAM,
     JSGenerateToJSObject
 ] interface MediaStreamAudioSourceNode : AudioSourceNode {
index 31a2a38..04c68e8 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     EventTarget,
     JSGenerateToJSObject,
index f3f3eb7..1d44513 100644 (file)
@@ -24,6 +24,7 @@
 
 // OscillatorNode is an audio generator of periodic waveforms.
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface OscillatorNode : AudioSourceNode {
index 4c21c2a..b880c9f 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface PannerNode : AudioNode {
index 78cf6da..b7f1b0a 100644 (file)
@@ -24,6 +24,7 @@
 
 // For real-time audio stream synthesis/processing in JavaScript 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject,
     JSGenerateToNativeObject,
index 35740b1..17ff52e 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface WaveShaperNode : AudioNode {
index d153b60..7f256a2 100644 (file)
@@ -24,6 +24,7 @@
 
 // WaveTable represents a periodic audio waveform given by its Fourier coefficients.
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ImplementationLacksVTable
 ] interface WaveTable {
index c5b9fb1..61fd4ed 100644 (file)
@@ -29,8 +29,5 @@
 ] partial interface DOMWindow {
     Database openDatabase(DOMString name, DOMString version, DOMString displayName, unsigned long estimatedSize, optional DatabaseCallback creationCallback)
         raises(DOMException);
-#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
-    attribute SQLExceptionConstructor SQLException;
-#endif
 };
 
index 11bec65..7daeb70 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables
index 41a829a..c74328e 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables
index 4803584..6897f81 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables,
index 7cc8889..c5df99b 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables,
index 8b9f571..6132eb0 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables,
index b4b4d8f..da5d7b1 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables,
index e4dcab6..2ae5d7c 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables,
diff --git a/Source/WebCore/Modules/websockets/DOMWindowWebSocket.idl b/Source/WebCore/Modules/websockets/DOMWindowWebSocket.idl
deleted file mode 100644 (file)
index 7df651d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=WEB_SOCKETS,
-] partial interface DOMWindow {
-#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
-    attribute CloseEventConstructor CloseEvent;
-    [CustomGetter] attribute WebSocketConstructor WebSocket; // Usable with the new operator
-#endif
-};
-
index 59db561..9b5139b 100644 (file)
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_SOCKETS,
     ActiveDOMObject,
     Constructor(DOMString url),
index a618ca1..ba087af 100644 (file)
@@ -307,9 +307,9 @@ endforeach ()
 file(WRITE ${IDL_FILES_TMP} ${IDL_FILES_LIST})
 
 add_custom_command(
-    OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE}
+    OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE} ${WINDOW_CONSTRUCTORS_FILE}
     DEPENDS ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl ${SCRIPTS_RESOLVE_SUPPLEMENTAL} ${WebCore_CPP_IDL_FILES} ${IDL_ATTRIBUTES_FILE}
-    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}
+    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}
     VERBATIM)
 
 GENERATE_BINDINGS(WebCore_SOURCES
@@ -318,7 +318,8 @@ GENERATE_BINDINGS(WebCore_SOURCES
     "${IDL_INCLUDES}"
     "${FEATURE_DEFINES_WEBCORE}"
     ${DERIVED_SOURCES_WEBCORE_DIR} WebDOM CPP
-    ${SUPPLEMENTAL_DEPENDENCY_FILE})
+    ${SUPPLEMENTAL_DEPENDENCY_FILE}
+    ${WINDOW_CONSTRUCTORS_FILE})
 
 # Generate contents for PopupPicker.cpp
 set(WebCore_POPUP_CSS_AND_JS
index e8d4333..4a1731e 100644 (file)
@@ -306,9 +306,9 @@ list(APPEND WebCoreTestSupport_IDL_FILES ${DERIVED_SOURCES_WEBCORE_DIR}/Internal
 file(WRITE ${IDL_FILES_TMP} ${IDL_FILES_LIST})
 
 add_custom_command(
-    OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE}
+    OUTPUT ${SUPPLEMENTAL_DEPENDENCY_FILE} ${WINDOW_CONSTRUCTORS_FILE}
     DEPENDS ${WEBCORE_DIR}/bindings/scripts/preprocess-idls.pl ${SCRIPTS_PREPROCESS_IDLS} ${WebCore_IDL_FILES} ${WebCoreTestSupport_IDL_FILES}
-    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}
+    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}
     VERBATIM)
 
 GENERATE_BINDINGS(WebCore_SOURCES
@@ -318,7 +318,8 @@ GENERATE_BINDINGS(WebCore_SOURCES
     "${FEATURE_DEFINES_JAVASCRIPT}"
     ${DERIVED_SOURCES_WEBCORE_DIR} JS JS
     ${IDL_ATTRIBUTES_FILE}
-    ${SUPPLEMENTAL_DEPENDENCY_FILE})
+    ${SUPPLEMENTAL_DEPENDENCY_FILE}
+    ${WINDOW_CONSTRUCTORS_FILE})
 
 GENERATE_BINDINGS(WebCoreTestSupport_SOURCES
     "${WebCoreTestSupport_IDL_FILES}"
@@ -327,4 +328,5 @@ GENERATE_BINDINGS(WebCoreTestSupport_SOURCES
     "${FEATURE_DEFINES_JAVASCRIPT}"
     ${DERIVED_SOURCES_WEBCORE_DIR} JS JS
     ${IDL_ATTRIBUTES_FILE}
-    ${SUPPLEMENTAL_DEPENDENCY_FILE})
+    ${SUPPLEMENTAL_DEPENDENCY_FILE}
+    ${WINDOW_CONSTRUCTORS_FILE})
index 7396466..828cb44 100644 (file)
                97AA3CA4145237CC003E1DA6 /* EventTargetInterfaces.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventTargetInterfaces.h; sourceTree = "<group>"; };
                97AABCF814FA09D5007457AE /* CloseEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CloseEvent.h; path = Modules/websockets/CloseEvent.h; sourceTree = "<group>"; };
                97AABCF914FA09D5007457AE /* CloseEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CloseEvent.idl; path = Modules/websockets/CloseEvent.idl; sourceTree = "<group>"; };
-               97AABCFA14FA09D5007457AE /* DOMWindowWebSocket.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = DOMWindowWebSocket.idl; path = Modules/websockets/DOMWindowWebSocket.idl; sourceTree = "<group>"; };
                97AABCFB14FA09D5007457AE /* ThreadableWebSocketChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadableWebSocketChannel.cpp; path = Modules/websockets/ThreadableWebSocketChannel.cpp; sourceTree = "<group>"; };
                97AABCFC14FA09D5007457AE /* ThreadableWebSocketChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ThreadableWebSocketChannel.h; path = Modules/websockets/ThreadableWebSocketChannel.h; sourceTree = "<group>"; };
                97AABCFD14FA09D5007457AE /* ThreadableWebSocketChannelClientWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadableWebSocketChannelClientWrapper.cpp; path = Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp; sourceTree = "<group>"; };
                        children = (
                                97AABCF814FA09D5007457AE /* CloseEvent.h */,
                                97AABCF914FA09D5007457AE /* CloseEvent.idl */,
-                               97AABCFA14FA09D5007457AE /* DOMWindowWebSocket.idl */,
                                97AABCFB14FA09D5007457AE /* ThreadableWebSocketChannel.cpp */,
                                97AABCFC14FA09D5007457AE /* ThreadableWebSocketChannel.h */,
                                97AABCFD14FA09D5007457AE /* ThreadableWebSocketChannelClientWrapper.cpp */,
index c18626b..46a3b7b 100644 (file)
@@ -83,6 +83,7 @@ JSWindowEventListener
 MasqueradesAsUndefined
 NamedConstructor=*
 NamedGetter
+NoInterfaceObject
 NotEnumerable
 NumericIndexedGetter
 ObjCCustomImplementation
index 843d916..8236de3 100644 (file)
@@ -842,7 +842,7 @@ sub parseTypedef
         $self->assertTokenType($nameToken, IdentifierToken);
         $self->assertTokenValue($self->getToken(), ";", __LINE__);
         my $name = $nameToken->value();
-        die "typedef redefinition for " . $name . " at " . $self->{Line} if exists $typedefs{$name};
+        die "typedef redefinition for " . $name . " at " . $self->{Line} if (exists $typedefs{$name} && $typedef->type ne $typedefs{$name}->type);
         $typedefs{$name} = $typedef;
         return;
     }
index abd3d8f..c6735d6 100644 (file)
@@ -28,16 +28,19 @@ my $defines;
 my $preprocessor;
 my $idlFilesList;
 my $supplementalDependencyFile;
+my $windowConstructorsFile;
 my $supplementalMakefileDeps;
 
 GetOptions('defines=s' => \$defines,
            'preprocessor=s' => \$preprocessor,
            'idlFilesList=s' => \$idlFilesList,
            'supplementalDependencyFile=s' => \$supplementalDependencyFile,
+           'windowConstructorsFile=s' => \$windowConstructorsFile,
            'supplementalMakefileDeps=s' => \$supplementalMakefileDeps);
 
 die('Must specify #define macros using --defines.') unless defined($defines);
 die('Must specify an output file using --supplementalDependencyFile.') unless defined($supplementalDependencyFile);
+die('Must specify an output file using --windowConstructorsFile.') unless defined($windowConstructorsFile);
 die('Must specify the file listing all IDLs using --idlFilesList.') unless defined($idlFilesList);
 
 open FH, "< $idlFilesList" or die "Cannot open $idlFilesList\n";
@@ -50,18 +53,38 @@ my %interfaceNameToIdlFile;
 my %idlFileToInterfaceName;
 my %supplementalDependencies;
 my %supplementals;
-foreach my $idlFile (@idlFiles) {
+my $constructorAttributesCode = "";
+# Get rid of duplicates in idlFiles array.
+my %idlFileHash = map { $_, 1 } @idlFiles;
+foreach my $idlFile (keys %idlFileHash) {
     my $fullPath = Cwd::realpath($idlFile);
-    my $partialInterfaceName = getPartialInterfaceNameFromIDLFile($fullPath);
+    my $idlFileContents = getFileContents($fullPath);
+    my $partialInterfaceName = getPartialInterfaceNameFromIDL($idlFileContents);
     if ($partialInterfaceName) {
         $supplementalDependencies{$fullPath} = $partialInterfaceName;
+        next;
     }
     my $interfaceName = fileparse(basename($idlFile), ".idl");
+    unless (isCallbackInterfaceFromIDL($idlFileContents)) {
+        my $extendedAttributes = getInterfaceExtendedAttributesFromIDL($idlFileContents);
+        unless ($extendedAttributes->{"NoInterfaceObject"}) {
+            $constructorAttributesCode .= GenerateConstructorAttribute($interfaceName, $extendedAttributes);
+        }
+    }
     $interfaceNameToIdlFile{$interfaceName} = $fullPath;
     $idlFileToInterfaceName{$fullPath} = $interfaceName;
     $supplementals{$fullPath} = [];
 }
 
+# Generate DOMWindow Constructors partial interface.
+open PARTIAL_WINDOW_FH, "> $windowConstructorsFile" or die "Cannot open $windowConstructorsFile\n";
+print PARTIAL_WINDOW_FH "partial interface DOMWindow {\n";
+print PARTIAL_WINDOW_FH $constructorAttributesCode;
+print PARTIAL_WINDOW_FH "};\n";
+close PARTIAL_WINDOW_FH;
+my $fullPath = Cwd::realpath($windowConstructorsFile);
+$supplementalDependencies{$fullPath} = "DOMWindow" if $interfaceNameToIdlFile{"DOMWindow"};
+
 # Resolves partial interfaces dependencies.
 foreach my $idlFile (keys %supplementalDependencies) {
     my $baseFile = $supplementalDependencies{$idlFile};
@@ -109,8 +132,38 @@ if ($supplementalMakefileDeps) {
     close MAKE_FH;
 }
 
+sub GenerateConstructorAttribute
+{
+    my $interfaceName = shift;
+    my $extendedAttributes = shift;
+
+    my $code = "    ";
+    my @extendedAttributesList;
+    foreach my $attributeName (keys %{$extendedAttributes}) {
+      next unless ($attributeName eq "Conditional" || $attributeName eq "EnabledAtRuntime" || $attributeName eq "EnabledPerContext");
+      my $extendedAttribute = $attributeName;
+      $extendedAttribute .= "=" . $extendedAttributes->{$attributeName} unless $extendedAttributes->{$attributeName} eq "VALUE_IS_MISSING";
+      push(@extendedAttributesList, $extendedAttribute);
+    }
+    $code .= "[" . join(', ', @extendedAttributesList) . "] " if @extendedAttributesList;
+
+    my $originalInterfaceName = $interfaceName;
+    $interfaceName = $extendedAttributes->{"InterfaceName"} if $extendedAttributes->{"InterfaceName"};
+    $code .= "attribute " . $originalInterfaceName . "Constructor $interfaceName;\n";
+
+    # In addition to the regular property, for every [NamedConstructor] extended attribute on an interface,
+    # a corresponding property MUST exist on the ECMAScript global object.
+    if ($extendedAttributes->{"NamedConstructor"}) {
+        my $constructorName = $extendedAttributes->{"NamedConstructor"};
+        $constructorName =~ s/\(.*//g; # Extract function name.
+        $code .= "    ";
+        $code .= "[" . join(', ', @extendedAttributesList) . "] " if @extendedAttributesList;
+        $code .= "attribute " . $originalInterfaceName . "ConstructorConstructor $constructorName;\n";
+    }
+    return $code;
+}
 
-sub getPartialInterfaceNameFromIDLFile
+sub getFileContents
 {
     my $idlFile = shift;
 
@@ -118,8 +171,51 @@ sub getPartialInterfaceNameFromIDLFile
     my @lines = <FILE>;
     close FILE;
 
-    my $fileContents = join('', @lines);
+    # Filter out preprocessor lines.
+    @lines = grep(!/^\s*#/, @lines);
+
+    return join('', @lines);
+}
+
+sub getPartialInterfaceNameFromIDL
+{
+    my $fileContents = shift;
+
     if ($fileContents =~ /partial\s+interface\s+(\w+)/gs) {
         return $1;
     }
 }
+
+sub isCallbackInterfaceFromIDL
+{
+    my $fileContents = shift;
+    return ($fileContents =~ /callback\s+interface\s+\w+/gs);
+}
+
+sub trim
+{
+    my $string = shift;
+    $string =~ s/^\s+|\s+$//g;
+    return $string;
+}
+
+sub getInterfaceExtendedAttributesFromIDL
+{
+    my $fileContents = shift;
+
+    my $extendedAttributes = {};
+
+    if ($fileContents =~ /\[(.*)\]\s+(interface|exception)\s+(\w+)/gs) {
+        my @parts = split(',', $1);
+        foreach my $part (@parts) {
+            my @keyValue = split('=', $part);
+            my $key = trim($keyValue[0]);
+            next unless length($key);
+            my $value = "VALUE_IS_MISSING";
+            $value = trim($keyValue[1]) if @keyValue > 1;
+            $extendedAttributes->{$key} = $value;
+        }
+    }
+
+    return $extendedAttributes;
+}
index 0f0b813..6becf7a 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FONT_LOAD_EVENTS,
     JSNoStaticTables,
     ConstructorTemplate=Event
index ba97a7b..1319693 100644 (file)
  */
 
 // Introduced in DOM Level 2:
-interface [
+[
     JSGenerateToJSObject,
     JSGenerateToNativeObject,
-] CSSFontFaceRule : CSSRule {
+] interface CSSFontFaceRule : CSSRule {
     readonly attribute CSSStyleDeclaration style;
 };
 
index 8839510..10bcfac 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=CSS3_CONDITIONAL_RULES
 ] interface CSSSupportsRule : CSSRule {
     readonly attribute CSSRuleList cssRules;
index 0b0ca0c..fcce17e 100644 (file)
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     OmitConstructor
 ] interface CSSUnknownRule : CSSRule {
 };
index aed4cf7..a79d86c 100644 (file)
@@ -28,6 +28,7 @@
  */
 
 [
+    NoInterfaceObject,
     InterfaceName=CSS,
     Conditional=CSS3_CONDITIONAL_RULES
 ] interface DOMWindowCSS {
index 35b5286..22ed338 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FONT_LOAD_EVENTS,
     ActiveDOMObject,
     EventTarget,
index 7fb2bca..b00b705 100644 (file)
@@ -17,6 +17,7 @@
  *  Boston, MA 02110-1301, USA.
  */
 [
+    NoInterfaceObject,
     ImplementationLacksVTable
 ] interface MediaQueryList {
     readonly attribute DOMString media;
index dbb6e6b..435711e 100644 (file)
@@ -18,6 +18,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSNoStaticTables,
     ObjCProtocol,
     CPPPureInterface,
index f28ddf0..c100634 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame
 ] interface StyleMedia {
     readonly attribute DOMString type;
index 42a9d7c..773d934 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=CUSTOM_ELEMENTS,
     CustomCall
 ] interface CustomElementConstructor {
index 79a5881..81fa031 100644 (file)
@@ -26,6 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 [
+    NoInterfaceObject,
     ImplementationLacksVTable
 ] interface  DOMError {
     readonly attribute DOMString name;
index 3cc94c7..0459683 100644 (file)
@@ -28,6 +28,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=CSS_REGIONS,
     InterfaceName=WebKitNamedFlowCollection,
     JSGenerateToJSObject,
index db55f4d..f7fd6ae 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=DATA_TRANSFER_ITEMS,
     ImplementationLacksVTable
 ] interface DataTransferItem {
index 132b440..4f66f00 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=DATA_TRANSFER_ITEMS,
     IndexedGetter,
     JSGenerateToNativeObject,
index a04728e..b12c879 100644 (file)
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     JSNoStaticTables,
     ObjCProtocol,
     CPPPureInterface,
index 3383a9c..6799556 100644 (file)
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     ObjCProtocol,
     CPPPureInterface,
     OmitConstructor,
index 77259d0..7f8cd31 100644 (file)
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     JSCustomMarkFunction,
     ImplementationLacksVTable
 ] interface NodeIterator {
index 2dc2ab1..bbe1103 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SHADOW_DOM,
     JSGenerateToJSObject
 ] interface ShadowRoot : DocumentFragment {
index 4d4bf18..e6b7910 100644 (file)
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     JSCustomMarkFunction,
     ImplementationLacksVTable
 ] interface TreeWalker {
index aaafa92..21ca1d8 100644 (file)
@@ -28,6 +28,7 @@
  */
 
 [
+    NoInterfaceObject,
     EventTarget,
     JSGenerateToJSObject,
     GenerateIsReachable=ImplOwnerNodeRoot
index 4e3e0ab..97ca308 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=BLOB|FILE_SYSTEM,
     DoNotCheckConstants,
     JSNoStaticTables,
index be631b0..deb137a 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=BLOB,
     Constructor,
     JSNoStaticTables
index 1f2f903..0d8cf94 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO,
     NamedConstructor=Audio([Default=NullString] optional DOMString src)
 ] interface HTMLAudioElement : HTMLMediaElement {
index ca3894e..011f9e1 100644 (file)
@@ -18,6 +18,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=DETAILS_ELEMENT
 ] interface HTMLDetailsElement : HTMLElement {
     [Reflect] attribute boolean open;
index 4932898..749d783 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSGenerateToNativeObject,
     NamedConstructor=Option([Default=NullString] optional DOMString data, [Default=NullString] optional DOMString value, [Default=Undefined] optional boolean defaultSelected, [Default=Undefined] optional boolean selected),
     ConstructorRaisesException
index 7337444..5dfeda0 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-interface [
+[
     Conditional=VIDEO,
     ImplementationLacksVTable
-] MediaError {
+] interface MediaError {
       const unsigned short MEDIA_ERR_ABORTED = 1;
       const unsigned short MEDIA_ERR_NETWORK = 2;
       const unsigned short MEDIA_ERR_DECODE = 3;
index 0c65d9d..9b8945e 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-interface [
+[
     Conditional=ENCRYPTED_MEDIA|ENCRYPTED_MEDIA_V2,
     ImplementationLacksVTable
-] MediaKeyError {
+] interface MediaKeyError {
     const unsigned short MEDIA_KEYERR_UNKNOWN = 1;
     const unsigned short MEDIA_KEYERR_CLIENT = 2;
     const unsigned short MEDIA_KEYERR_SERVICE = 3;
index 9746bf3..d407eeb 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MICRODATA,
     CustomToJSObject,
     OmitConstructor,
index 7cae485..200116d 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSGenerateToJSObject,
     IndexedGetter,
 ] interface RadioNodeList : NodeList {
index 069e7b5..390b5ad 100644 (file)
@@ -21,6 +21,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface ValidityState {
index 00ff3e5..6a68509 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSCustomMarkFunction,
     GenerateIsReachable,
     CustomToJSObject
index 0ab7f71..6eee2e7 100644 (file)
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  */
 
-interface [
+[
     Constructor,
     Constructor(DOMPath path),
 #if defined(ENABLE_SVG) && ENABLE_SVG
@@ -34,7 +34,7 @@ interface [
 #endif
     Conditional=CANVAS_PATH,
     InterfaceName=Path
-] DOMPath {
+] interface DOMPath {
 
     // FIXME: These methods should be shared with CanvasRenderingContext2D in the CanvasPathMethods interface.
     void closePath();
index 33aaf22..f5d39ee 100644 (file)
@@ -26,6 +26,7 @@
 typedef unsigned long GLenum;
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
index dd5dc93..fb7ad44 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
index a3f2db4..2195a7a 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
index db2a6a9..c70791a 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
index 233b1d6..7b80636 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
index 267ad39..56d146b 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
index 904970e..5ed590a 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL, 
     GenerateIsReachable=ImplContext,
     OmitConstructor, 
index 659c23d..8cb1f06 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
index b027c4c..60a04eb 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
index 390fc63..c894c1e 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
index 52dd041..a84fcc7 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     OmitConstructor
 ] interface WebGLContextAttributes {
index 900351d..d2f9d95 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
index 90402be..9ecd447 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
index 680ac00..19419dc 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
index e16fbe7..d3632b5 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
index 1e78ddd..ce9f18d 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL
 ] interface WebGLVertexArrayObjectOES {
 };
index a68f967..ed00580 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK,
     GenerateIsReachable=ImplElementRoot,
     JSCustomMarkFunction
index ed24bc5..88c004b 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK,
     GenerateIsReachable=ImplElementRoot,
     IndexedGetter,
index b7db9df..b52a174 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK & WEBVTT_REGIONS,
     IndexedGetter,
     ImplementationLacksVTable
index 8e37681..1e41a90 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK,
     GenerateIsReachable=ImplElementRoot,
     JSCustomMarkFunction
index 8b56c46..efafd00 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK,
     GenerateIsReachable=ImplElementRoot,
     IndexedGetter,
index 8b93a5b..77cac96 100644 (file)
@@ -31,6 +31,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=INSPECTOR,
     ImplementationLacksVTable
 ] interface InjectedScriptHost {
index 11ea294..56012be 100644 (file)
@@ -31,6 +31,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=INSPECTOR,
     ImplementationLacksVTable
 ] interface InspectorFrontendHost {
index 8e3b6bc..1b873d0 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=JAVASCRIPT_DEBUGGER,
     OmitConstructor,
     DoNotCheckConstants,
index 664a9bb..f2f6efd 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=JAVASCRIPT_DEBUGGER,
     OmitConstructor
 ] interface ScriptProfile {
index 471eb72..a8abad1 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=JAVASCRIPT_DEBUGGER,
     OmitConstructor,
     ImplementationLacksVTable
index 9f38048..17fad87 100644 (file)
@@ -24,6 +24,7 @@
  */
  
 [
+    NoInterfaceObject,
     EventTarget,
     OmitConstructor,
     DoNotCheckConstants,
index c57aaea..42f81cd 100644 (file)
@@ -26,6 +26,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     ObjCCustomImplementation,
     OmitConstructor
 ] interface AbstractView {
index 4a983e3..70da6ee 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame,
     OmitConstructor
 ] interface BarInfo {
index 1636144..2be93f9 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame,
     OmitConstructor
 ] interface Console {
index b1f87e0..db6c295 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface Crypto {
index d984d73..e530c18 100644 (file)
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=CSP_NEXT,
     OmitConstructor,
     InterfaceName=SecurityPolicy
index 7ac729d..ff4879f 100644 (file)
     void releaseEvents(/*in long eventFlags*/);
 
 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
-    // Global constructors
-    attribute StyleSheetConstructor StyleSheet;
-    attribute CSSStyleSheetConstructor CSSStyleSheet;
-
-    attribute CSSValueConstructor CSSValue;
-    attribute CSSPrimitiveValueConstructor CSSPrimitiveValue;
-    attribute CSSValueListConstructor CSSValueList;
-    attribute WebKitCSSTransformValueConstructor WebKitCSSTransformValue;
-
-#if defined(ENABLE_CSS_SHADERS) && ENABLE_CSS_SHADERS
-    attribute WebKitCSSFilterRuleConstructor WebKitCSSFilterRule;
-    attribute WebKitCSSMixFunctionValueConstructor WebKitCSSMixFunctionValue;
-#endif
-
-#if defined(ENABLE_CSS_FILTERS) && ENABLE_CSS_FILTERS
-    attribute WebKitCSSFilterValueConstructor WebKitCSSFilterValue;
-#endif
-
-#if defined(ENABLE_CSS_DEVICE_ADAPTATION) && ENABLE_CSS_DEVICE_ADAPTATION
-    attribute WebKitCSSViewportRuleConstructor WebKitCSSViewportRule;
-#endif
-
-    attribute CSSRuleConstructor CSSRule;
-    attribute CSSCharsetRuleConstructor CSSCharsetRule;
-    attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
-#if defined(ENABLE_SHADOW_DOM) && ENABLE_SHADOW_DOM
-    attribute CSSHostRuleConstructor CSSHostRule;
-#endif
-    attribute CSSImportRuleConstructor CSSImportRule;
-    attribute CSSMediaRuleConstructor CSSMediaRule;
-    attribute CSSPageRuleConstructor CSSPageRule;
-    attribute CSSStyleRuleConstructor CSSStyleRule;
-    
-    attribute CSSStyleDeclarationConstructor CSSStyleDeclaration;
-    attribute MediaListConstructor MediaList;
-    attribute CounterConstructor Counter;
-    attribute CSSRuleListConstructor CSSRuleList;
-    attribute RectConstructor Rect;
-    attribute RGBColorConstructor RGBColor;
-    attribute StyleSheetListConstructor StyleSheetList;
-
-    // FIXME: Implement the commented-out global constructors for interfaces listed in DOM Level 3 Core specification.
-    attribute DOMCoreExceptionConstructor DOMException;
-    attribute DOMStringListConstructor DOMStringList;
-//        attribute NameListConstructor NameList;
-//        attribute DOMImplementationListConstructor DOMImplementationList;
-//        attribute DOMImplementationSourceConstructor DOMImplementationSource;
-    attribute DOMImplementationConstructor DOMImplementation;
-    attribute DOMSettableTokenListConstructor DOMSettableTokenList;
-    attribute DOMTokenListConstructor DOMTokenList;
-    attribute DocumentFragmentConstructor DocumentFragment;
-    attribute DocumentConstructor Document;
-    attribute NodeConstructor Node;
-    attribute NodeListConstructor NodeList;
-    [Conditional=MICRODATA] attribute PropertyNodeListConstructor PropertyNodeList;
-    attribute NamedNodeMapConstructor NamedNodeMap;
-    attribute CharacterDataConstructor CharacterData;
-    attribute AttrConstructor Attr;
-    attribute ElementConstructor Element;
-    attribute TextConstructor Text;
-    attribute CommentConstructor Comment;
-//        attribute TypeInfoConstructor TypeInfo;
-//        attribute UserDataHandlerConstructor UserDataHandler;
-//        attribute DOMErrorConstructor DOMError;
-//        attribute DOMErrorHandlerConstructor DOMErrorHandler
-//        attribute DOMLocatorConstructor DOMLocator;
-//        attribute DOMConfigurationConstructor DOMConfiguration;
-    attribute CDATASectionConstructor CDATASection;
-    attribute DocumentTypeConstructor DocumentType;
-    attribute NotationConstructor Notation;
-    attribute EntityConstructor Entity;
-    attribute EntityReferenceConstructor EntityReference;
-    [Conditional=CANVAS_PATH] attribute DOMPathConstructor Path;
-    attribute ProcessingInstructionConstructor ProcessingInstruction;
-    [Conditional=SHADOW_DOM] attribute ShadowRootConstructor WebKitShadowRoot;
-    [Conditional=SHADOW_DOM] attribute HTMLContentElementConstructor HTMLContentElement;
-
-    attribute DOMSelectionConstructor Selection;
-    attribute DOMWindowConstructor Window;
-
-    attribute HTMLDocumentConstructor HTMLDocument;
-    attribute HTMLElementConstructor HTMLElement;
-    attribute HTMLAnchorElementConstructor HTMLAnchorElement;
-    attribute HTMLAppletElementConstructor HTMLAppletElement;
-    attribute HTMLAreaElementConstructor HTMLAreaElement;
-    attribute HTMLBRElementConstructor HTMLBRElement;
-    attribute HTMLBaseElementConstructor HTMLBaseElement;
-    attribute HTMLBaseFontElementConstructor HTMLBaseFontElement;
-    attribute HTMLBodyElementConstructor HTMLBodyElement;
-    attribute HTMLButtonElementConstructor HTMLButtonElement;
-    attribute HTMLCanvasElementConstructor HTMLCanvasElement;
-    attribute HTMLDListElementConstructor HTMLDListElement;
-    [Conditional=DATALIST_ELEMENT] attribute HTMLDataListElementConstructor HTMLDataListElement;
-    [Conditional=DIALOG_ELEMENT] attribute HTMLDialogElementConstructor HTMLDialogElement;
-    attribute HTMLDirectoryElementConstructor HTMLDirectoryElement;
-    attribute HTMLDivElementConstructor HTMLDivElement;
-    attribute HTMLEmbedElementConstructor HTMLEmbedElement;
-    attribute HTMLFieldSetElementConstructor HTMLFieldSetElement;
-    attribute HTMLFontElementConstructor HTMLFontElement;
-    attribute HTMLFormElementConstructor HTMLFormElement;
-    attribute HTMLFrameElementConstructor HTMLFrameElement;
-    attribute HTMLFrameSetElementConstructor HTMLFrameSetElement;
-    attribute HTMLHRElementConstructor HTMLHRElement;
-    attribute HTMLHeadElementConstructor HTMLHeadElement;
-    attribute HTMLHeadingElementConstructor HTMLHeadingElement;
-    attribute HTMLHtmlElementConstructor HTMLHtmlElement;
-    attribute HTMLIFrameElementConstructor HTMLIFrameElement;
-    attribute HTMLImageElementConstructor HTMLImageElement;
-    attribute HTMLInputElementConstructor HTMLInputElement;
-    attribute HTMLKeygenElementConstructor HTMLKeygenElement;
-    attribute HTMLLIElementConstructor HTMLLIElement;
-    attribute HTMLLabelElementConstructor HTMLLabelElement;
-    attribute HTMLLegendElementConstructor HTMLLegendElement;
-    attribute HTMLLinkElementConstructor HTMLLinkElement;
-    attribute HTMLMapElementConstructor HTMLMapElement;
-    attribute HTMLMarqueeElementConstructor HTMLMarqueeElement;
-    attribute HTMLMenuElementConstructor HTMLMenuElement;
-    attribute HTMLMetaElementConstructor HTMLMetaElement;
-#if defined(ENABLE_METER_ELEMENT) && ENABLE_METER_ELEMENT
-    attribute HTMLMeterElementConstructor HTMLMeterElement;
-#endif
-    attribute HTMLModElementConstructor HTMLModElement;
-    attribute HTMLOListElementConstructor HTMLOListElement;
-    attribute HTMLObjectElementConstructor HTMLObjectElement;
-    attribute HTMLOptGroupElementConstructor HTMLOptGroupElement;
-    attribute HTMLOptionElementConstructor HTMLOptionElement;
-    attribute HTMLOutputElementConstructor HTMLOutputElement;
-    attribute HTMLParagraphElementConstructor HTMLParagraphElement;
-    attribute HTMLParamElementConstructor HTMLParamElement;
-    attribute HTMLPreElementConstructor HTMLPreElement;
-#if defined(ENABLE_PROGRESS_ELEMENT) && ENABLE_PROGRESS_ELEMENT
-    attribute HTMLProgressElementConstructor HTMLProgressElement;
-#endif
-    attribute HTMLQuoteElementConstructor HTMLQuoteElement;
-    attribute HTMLScriptElementConstructor HTMLScriptElement;
-    attribute HTMLSelectElementConstructor HTMLSelectElement;
-    attribute HTMLSpanElementConstructor HTMLSpanElement;
-    attribute HTMLStyleElementConstructor HTMLStyleElement;
-    attribute HTMLTableCaptionElementConstructor HTMLTableCaptionElement;
-    attribute HTMLTableCellElementConstructor HTMLTableCellElement;
-    attribute HTMLTableColElementConstructor HTMLTableColElement;
-    attribute HTMLTableElementConstructor HTMLTableElement;
-    attribute HTMLTableRowElementConstructor HTMLTableRowElement;
-    attribute HTMLTableSectionElementConstructor HTMLTableSectionElement;
-    attribute [Conditional=TEMPLATE_ELEMENT] HTMLTemplateElementConstructor HTMLTemplateElement;
-    attribute HTMLTextAreaElementConstructor HTMLTextAreaElement;
-    attribute HTMLTitleElementConstructor HTMLTitleElement;
-    attribute HTMLUListElementConstructor HTMLUListElement;
-
-    attribute HTMLCollectionConstructor HTMLCollection;
-    attribute HTMLAllCollectionConstructor HTMLAllCollection;
-    attribute HTMLFormControlsCollectionConstructor HTMLFormControlsCollection;
-    attribute HTMLOptionsCollectionConstructor HTMLOptionsCollection;
-    [Conditional=MICRODATA] attribute HTMLPropertiesCollectionConstructor HTMLPropertiesCollection;
-    attribute HTMLUnknownElementConstructor HTMLUnknownElement;
-
+    // Additional constructors.
     [CustomGetter, CustomConstructor] attribute HTMLImageElementConstructorConstructor Image; // Usable with new operator
     [CustomGetter] attribute HTMLOptionElementConstructorConstructor Option; // Usable with new operator
-
-    [Conditional=ENCRYPTED_MEDIA] attribute MediaKeyEventConstructor MediaKeyEvent;
-    attribute [Conditional=ENCRYPTED_MEDIA_V2] MediaKeysConstructor MediaKeys;
-    attribute [Conditional=ENCRYPTED_MEDIA_V2|ENCRYPTED_MEDIA] MediaKeyErrorConstructor MediaKeyError;
-    attribute [Conditional=ENCRYPTED_MEDIA_V2] MediaKeyMessageEventConstructor MediaKeyMessageEvent;
-    attribute [Conditional=ENCRYPTED_MEDIA_V2] MediaKeyNeededEventConstructor MediaKeyNeededEvent;
-
-    [Conditional=VIDEO_TRACK] attribute HTMLTrackElementConstructor HTMLTrackElement;
-    [Conditional=VIDEO_TRACK] attribute TextTrackConstructor TextTrack;
-    [Conditional=VIDEO_TRACK] attribute TextTrackCueConstructor TextTrackCue; // Usable with the new operator
-    [Conditional=VIDEO_TRACK] attribute TextTrackCueListConstructor TextTrackCueList;
-    [Conditional=VIDEO_TRACK] attribute TextTrackListConstructor TextTrackList;
-    [Conditional=VIDEO_TRACK & WEBVTT_REGIONS] attribute TextTrackRegionConstructor TextTrackRegion; // Usable with the new operator
-    [Conditional=VIDEO_TRACK] attribute TrackEventConstructor TrackEvent;
-
+    attribute HTMLOptionElementConstructor HTMLOptionElement;
     [CustomGetter, Conditional=VIDEO] attribute HTMLAudioElementConstructorConstructor Audio; // Usable with the new operator
     [Conditional=VIDEO] attribute HTMLAudioElementConstructor HTMLAudioElement;
-    [Conditional=VIDEO] attribute HTMLMediaElementConstructor HTMLMediaElement;
-    [Conditional=VIDEO] attribute HTMLVideoElementConstructor HTMLVideoElement;
-    [Conditional=VIDEO] attribute MediaErrorConstructor MediaError;
-    [Conditional=VIDEO] attribute TimeRangesConstructor TimeRanges;
-    [Conditional=VIDEO] attribute HTMLSourceElementConstructor HTMLSourceElement;
-    [Conditional=VIDEO] attribute MediaControllerConstructor MediaController;
-
-    attribute CanvasPatternConstructor CanvasPattern;
-    attribute CanvasGradientConstructor CanvasGradient;
-    attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
-
-    attribute ImageDataConstructor ImageData;
-    attribute TextMetricsConstructor TextMetrics;
-
-    [Conditional=WEBGL] attribute WebGLActiveInfoConstructor WebGLActiveInfo;
-    [Conditional=WEBGL] attribute WebGLBufferConstructor WebGLBuffer;
-    [Conditional=WEBGL] attribute WebGLFramebufferConstructor WebGLFramebuffer;
-    [Conditional=WEBGL] attribute WebGLProgramConstructor WebGLProgram;
-    [Conditional=WEBGL] attribute WebGLRenderbufferConstructor WebGLRenderbuffer;
-    [Conditional=WEBGL] attribute WebGLRenderingContextConstructor WebGLRenderingContext;
-    [Conditional=WEBGL] attribute WebGLShaderConstructor WebGLShader;
-    [Conditional=WEBGL] attribute WebGLShaderPrecisionFormatConstructor WebGLShaderPrecisionFormat;
-    [Conditional=WEBGL] attribute WebGLTextureConstructor WebGLTexture;
-    [Conditional=WEBGL] attribute WebGLUniformLocationConstructor WebGLUniformLocation;
-
-    attribute DOMStringMapConstructor DOMStringMap;
-
-    attribute ArrayBufferConstructor ArrayBuffer; // Usable with new operator
-    attribute ArrayBufferViewConstructor ArrayBufferView;
-    attribute Int8ArrayConstructor Int8Array; // Usable with new operator
-    attribute Uint8ArrayConstructor Uint8Array; // Usable with new operator
-    attribute Uint8ClampedArrayConstructor Uint8ClampedArray; // Usable with new operator
-    attribute Int16ArrayConstructor Int16Array; // Usable with new operator
-    attribute Uint16ArrayConstructor Uint16Array; // Usable with new operator
-    attribute Int32ArrayConstructor Int32Array; // Usable with new operator
-    attribute Uint32ArrayConstructor Uint32Array; // Usable with new operator
-    attribute Float32ArrayConstructor Float32Array; // Usable with new operator
-    attribute Float64ArrayConstructor Float64Array; // Usable with new operator
-    attribute DataViewConstructor DataView; // Usable with new operator
-
-    // Event Constructors
-    attribute EventConstructor Event;
-    attribute BeforeLoadEventConstructor BeforeLoadEvent;
-    attribute CompositionEventConstructor CompositionEvent;
-    attribute CustomEventConstructor CustomEvent;
-    attribute ErrorEventConstructor ErrorEvent;
-    attribute FocusEventConstructor FocusEvent;
-    attribute HashChangeEventConstructor HashChangeEvent;
-    attribute KeyboardEventConstructor KeyboardEvent;
-    attribute MessageEventConstructor MessageEvent;
-    attribute MouseEventConstructor MouseEvent;
-    attribute MutationEventConstructor MutationEvent;
-    attribute OverflowEventConstructor OverflowEvent;
-    attribute PopStateEventConstructor PopStateEvent;
-    attribute PageTransitionEventConstructor PageTransitionEvent;
-    attribute ProgressEventConstructor ProgressEvent;
-    attribute TextEventConstructor TextEvent;
-    attribute TransitionEventConstructor TransitionEvent;
-    attribute UIEventConstructor UIEvent;
-    attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
-    attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
-    attribute WheelEventConstructor WheelEvent;
-    attribute XMLHttpRequestProgressEventConstructor XMLHttpRequestProgressEvent;
-    [Conditional=DEVICE_ORIENTATION] attribute DeviceMotionEventConstructor DeviceMotionEvent;
-    [Conditional=DEVICE_ORIENTATION] attribute DeviceOrientationEventConstructor DeviceOrientationEvent;
-    [Conditional=TOUCH_EVENTS] attribute TouchConstructor Touch;
-    [Conditional=TOUCH_EVENTS] attribute TouchEventConstructor TouchEvent;
-    [Conditional=TOUCH_EVENTS] attribute TouchListConstructor TouchList;
-    attribute StorageEventConstructor StorageEvent;
-    [Conditional=INPUT_SPEECH] attribute SpeechInputEventConstructor SpeechInputEvent;
-    [Conditional=WEBGL] attribute WebGLContextEventConstructor WebGLContextEvent;
-    [Conditional=PROXIMITY_EVENTS] attribute DeviceProximityEventConstructor DeviceProximityEvent;
-    [Conditional=CSP_NEXT] attribute SecurityPolicyViolationEventConstructor SecurityPolicyViolationEvent;
-
-    attribute EventExceptionConstructor EventException;
-
-    attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
-    attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
-    [Conditional=CSS_REGIONS] attribute WebKitCSSRegionRuleConstructor WebKitCSSRegionRule;
-
-    attribute WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
-
-    attribute WebKitPointConstructor WebKitPoint; // Usable with new the operator
-
-    attribute ClipboardConstructor Clipboard;
-
-    [Conditional=WORKERS] attribute WorkerConstructor Worker; // Usable with the new operator
+    [CustomGetter] attribute WebSocketConstructor WebSocket;
     [Conditional=SHARED_WORKERS, CustomGetter] attribute SharedWorkerConstructor SharedWorker; // Usable with the new operator
-
-    attribute FileConstructor File;
-    attribute FileListConstructor FileList;
-    attribute BlobConstructor Blob;
-
-    attribute NodeFilterConstructor NodeFilter;
-    attribute RangeConstructor Range;
-    attribute RangeExceptionConstructor RangeException;
-
-    attribute EventSourceConstructor EventSource; // Usable with new the operator
-
-    // Mozilla has a separate XMLDocument object for XML documents. 
+    // Mozilla has a separate XMLDocument object for XML documents.
     // We just use Document for this.
     attribute DocumentConstructor XMLDocument;
-    attribute DOMParserConstructor DOMParser;
-    attribute XMLSerializerConstructor XMLSerializer;
-    attribute XMLHttpRequestConstructor XMLHttpRequest; // Usable with the new operator
-    attribute XMLHttpRequestUploadConstructor XMLHttpRequestUpload;
-    attribute XMLHttpRequestExceptionConstructor XMLHttpRequestException;
-    [Conditional=XSLT] attribute XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
-
-    [Conditional=CHANNEL_MESSAGING] attribute MessagePortConstructor MessagePort;
-    [Conditional=CHANNEL_MESSAGING] attribute MessageChannelConstructor MessageChannel; // Usable with the new operator
-
-    attribute DOMPluginConstructor Plugin;
-    attribute DOMPluginArrayConstructor PluginArray;
-
-    attribute DOMMimeTypeConstructor MimeType;
-    attribute DOMMimeTypeArrayConstructor MimeTypeArray;
-
-    attribute ClientRectConstructor ClientRect;
-    attribute ClientRectListConstructor ClientRectList;
-
-    attribute StorageConstructor Storage;
-
-    attribute XPathEvaluatorConstructor XPathEvaluator;
-    attribute XPathResultConstructor XPathResult;
-    attribute XPathExceptionConstructor XPathException;
-
-    [Conditional=SVG] attribute SVGZoomEventConstructor SVGZoomEvent;
-
-#if defined(ENABLE_SVG) && ENABLE_SVG
-    // Expose all implemented SVG 1.1 interfaces, excluding the SVG MI interfaces:
-    // SVGAnimatedPathData, SVGAnimatedPoints, SVGExternalResourcesRequired,
-    // SVGFilterPrimitiveStandardAttributes, SVGFitToViewBox, SVGLangSpace, SVGLocatable
-    // SVGTests, SVGTransformable, SVGURIReference, SVGZoomAndPan
-    attribute SVGAElementConstructor SVGAElement;
-    attribute SVGAngleConstructor SVGAngle;
-    attribute SVGAnimatedAngleConstructor SVGAnimatedAngle;
-    attribute SVGAnimatedBooleanConstructor SVGAnimatedBoolean;
-    attribute SVGAnimatedEnumerationConstructor SVGAnimatedEnumeration;
-    attribute SVGAnimatedIntegerConstructor SVGAnimatedInteger;
-    attribute SVGAnimatedLengthConstructor SVGAnimatedLength;
-    attribute SVGAnimatedLengthListConstructor SVGAnimatedLengthList;
-    attribute SVGAnimatedNumberConstructor SVGAnimatedNumber;
-    attribute SVGAnimatedNumberListConstructor SVGAnimatedNumberList;
-    attribute SVGAnimatedPreserveAspectRatioConstructor SVGAnimatedPreserveAspectRatio;
-    attribute SVGAnimatedRectConstructor SVGAnimatedRect;
-    attribute SVGAnimatedStringConstructor SVGAnimatedString;
-    attribute SVGAnimatedTransformListConstructor SVGAnimatedTransformList;
-    attribute SVGCircleElementConstructor SVGCircleElement;
-    attribute SVGClipPathElementConstructor SVGClipPathElement;
-    attribute SVGColorConstructor SVGColor;
-    attribute SVGCursorElementConstructor SVGCursorElement;
-//      attribute SVGCSSRuleConstructor SVGCSSRule;
-    attribute SVGDefsElementConstructor SVGDefsElement;
-    attribute SVGDescElementConstructor SVGDescElement;
-    attribute SVGDocumentConstructor SVGDocument;
-    attribute SVGElementConstructor SVGElement;
-    attribute SVGElementInstanceConstructor SVGElementInstance;
-    attribute SVGElementInstanceListConstructor SVGElementInstanceList;
-    attribute SVGEllipseElementConstructor SVGEllipseElement;
-    attribute SVGForeignObjectElementConstructor SVGForeignObjectElement;
-    attribute SVGExceptionConstructor SVGException;
-    attribute SVGGElementConstructor SVGGElement;
-    attribute SVGGradientElementConstructor SVGGradientElement;
-    attribute SVGImageElementConstructor SVGImageElement;
-    attribute SVGLengthConstructor SVGLength;
-    attribute SVGLengthListConstructor SVGLengthList;
-    attribute SVGLinearGradientElementConstructor SVGLinearGradientElement;
-    attribute SVGLineElementConstructor SVGLineElement;
-    attribute SVGMarkerElementConstructor SVGMarkerElement;
-    attribute SVGMaskElementConstructor SVGMaskElement;
-    attribute SVGMatrixConstructor SVGMatrix;
-    attribute SVGMetadataElementConstructor SVGMetadataElement;
-    attribute SVGNumberConstructor SVGNumber;
-    attribute SVGNumberListConstructor SVGNumberList;
-    attribute SVGPaintConstructor SVGPaint;
-    attribute SVGPathElementConstructor SVGPathElement;
-    attribute SVGPathSegConstructor SVGPathSeg;
-    attribute SVGPathSegArcAbsConstructor SVGPathSegArcAbs;
-    attribute SVGPathSegArcRelConstructor SVGPathSegArcRel;
-    attribute SVGPathSegClosePathConstructor SVGPathSegClosePath;
-    attribute SVGPathSegCurvetoCubicAbsConstructor SVGPathSegCurvetoCubicAbs;
-    attribute SVGPathSegCurvetoCubicRelConstructor SVGPathSegCurvetoCubicRel;
-    attribute SVGPathSegCurvetoCubicSmoothAbsConstructor SVGPathSegCurvetoCubicSmoothAbs;
-    attribute SVGPathSegCurvetoCubicSmoothRelConstructor SVGPathSegCurvetoCubicSmoothRel;
-    attribute SVGPathSegCurvetoQuadraticAbsConstructor SVGPathSegCurvetoQuadraticAbs;
-    attribute SVGPathSegCurvetoQuadraticRelConstructor SVGPathSegCurvetoQuadraticRel;
-    attribute SVGPathSegCurvetoQuadraticSmoothAbsConstructor SVGPathSegCurvetoQuadraticSmoothAbs;
-    attribute SVGPathSegCurvetoQuadraticSmoothRelConstructor SVGPathSegCurvetoQuadraticSmoothRel;
-    attribute SVGPathSegLinetoAbsConstructor SVGPathSegLinetoAbs;
-    attribute SVGPathSegLinetoHorizontalAbsConstructor SVGPathSegLinetoHorizontalAbs;
-    attribute SVGPathSegLinetoHorizontalRelConstructor SVGPathSegLinetoHorizontalRel;
-    attribute SVGPathSegLinetoRelConstructor SVGPathSegLinetoRel;
-    attribute SVGPathSegLinetoVerticalAbsConstructor SVGPathSegLinetoVerticalAbs;
-    attribute SVGPathSegLinetoVerticalRelConstructor SVGPathSegLinetoVerticalRel;
-    attribute SVGPathSegListConstructor SVGPathSegList;
-    attribute SVGPathSegMovetoAbsConstructor SVGPathSegMovetoAbs;
-    attribute SVGPathSegMovetoRelConstructor SVGPathSegMovetoRel;
-    attribute SVGPatternElementConstructor SVGPatternElement;
-    attribute SVGPointConstructor SVGPoint;
-    attribute SVGPointListConstructor SVGPointList;
-    attribute SVGPolygonElementConstructor SVGPolygonElement;
-    attribute SVGPolylineElementConstructor SVGPolylineElement;
-    attribute SVGPreserveAspectRatioConstructor SVGPreserveAspectRatio;
-    attribute SVGRadialGradientElementConstructor SVGRadialGradientElement;
-    attribute SVGRectConstructor SVGRect;
-    attribute SVGRectElementConstructor SVGRectElement;
-    attribute SVGRenderingIntentConstructor SVGRenderingIntent;
-    attribute SVGScriptElementConstructor SVGScriptElement;
-    attribute SVGStopElementConstructor SVGStopElement;
-    attribute SVGStringListConstructor SVGStringList;
-    attribute SVGStyleElementConstructor SVGStyleElement;
-    attribute SVGSVGElementConstructor SVGSVGElement;
-    attribute SVGSwitchElementConstructor SVGSwitchElement;
-    attribute SVGSymbolElementConstructor SVGSymbolElement;
-    attribute SVGTextContentElementConstructor SVGTextContentElement;
-    attribute SVGTextElementConstructor SVGTextElement;
-    attribute SVGTextPathElementConstructor SVGTextPathElement;
-    attribute SVGTextPositioningElementConstructor SVGTextPositioningElement;
-    attribute SVGTitleElementConstructor SVGTitleElement;
-    attribute SVGTransformConstructor SVGTransform;
-    attribute SVGTransformListConstructor SVGTransformList;
-    attribute SVGTRefElementConstructor SVGTRefElement;
-    attribute SVGTSpanElementConstructor SVGTSpanElement;
-    attribute SVGUnitTypesConstructor SVGUnitTypes;
-    attribute SVGUseElementConstructor SVGUseElement;
-    attribute SVGViewElementConstructor SVGViewElement;
-    attribute SVGViewSpecConstructor SVGViewSpec;
-    attribute SVGZoomAndPanConstructor SVGZoomAndPan;
-
-    attribute SVGAnimateColorElementConstructor SVGAnimateColorElement;
-    attribute SVGAnimateElementConstructor SVGAnimateElement;
-    attribute SVGAnimateMotionElementConstructor SVGAnimateMotionElement;
-    attribute SVGAnimateTransformElementConstructor SVGAnimateTransformElement;
-    attribute SVGMPathElementConstructor SVGMPathElement;
-    attribute SVGSetElementConstructor SVGSetElement;
-
-#if defined(ENABLE_SVG_FONTS) && ENABLE_SVG_FONTS
-    attribute SVGAltGlyphDefElementConstructor SVGAltGlyphDefElement;
-    attribute SVGAltGlyphElementConstructor SVGAltGlyphElement;
-    attribute SVGAltGlyphItemElementConstructor SVGAltGlyphItemElement;
-//      attribute SVGDefinitionSrcElementConstructor SVGDefinitionSrcElement;
-    attribute SVGFontElementConstructor SVGFontElement;
-    attribute SVGFontFaceElementConstructor SVGFontFaceElement;
-    attribute SVGFontFaceFormatElementConstructor SVGFontFaceFormatElement;
-    attribute SVGFontFaceNameElementConstructor SVGFontFaceNameElement;
-    attribute SVGFontFaceSrcElementConstructor SVGFontFaceSrcElement;
-    attribute SVGFontFaceUriElementConstructor SVGFontFaceUriElement;
-    attribute SVGGlyphElementConstructor SVGGlyphElement;
-    attribute SVGGlyphRefElementConstructor SVGGlyphRefElement;
-    attribute SVGHKernElementConstructor SVGHKernElement;
-    attribute SVGMissingGlyphElementConstructor SVGMissingGlyphElement;
-    attribute SVGVKernElementConstructor SVGVKernElement;
-#endif
-
-#if defined(ENABLE_FILTERS) && ENABLE_FILTERS
-    attribute SVGComponentTransferFunctionElementConstructor SVGComponentTransferFunctionElement;
-    attribute SVGFEBlendElementConstructor SVGFEBlendElement;
-    attribute SVGFEColorMatrixElementConstructor SVGFEColorMatrixElement;
-    attribute SVGFEComponentTransferElementConstructor SVGFEComponentTransferElement;
-    attribute SVGFECompositeElementConstructor SVGFECompositeElement;
-    attribute SVGFEConvolveMatrixElementConstructor SVGFEConvolveMatrixElement;
-    attribute SVGFEDiffuseLightingElementConstructor SVGFEDiffuseLightingElement;
-    attribute SVGFEDisplacementMapElementConstructor SVGFEDisplacementMapElement;
-    attribute SVGFEDistantLightElementConstructor SVGFEDistantLightElement;
-    attribute SVGFEDropShadowElementConstructor SVGFEDropShadowElement;
-    attribute SVGFEFloodElementConstructor SVGFEFloodElement;
-    attribute SVGFEFuncAElementConstructor SVGFEFuncAElement;
-    attribute SVGFEFuncBElementConstructor SVGFEFuncBElement;
-    attribute SVGFEFuncGElementConstructor SVGFEFuncGElement;
-    attribute SVGFEFuncRElementConstructor SVGFEFuncRElement;
-    attribute SVGFEGaussianBlurElementConstructor SVGFEGaussianBlurElement;
-    attribute SVGFEImageElementConstructor SVGFEImageElement;
-    attribute SVGFEMergeElementConstructor SVGFEMergeElement;
-    attribute SVGFEMergeNodeElementConstructor SVGFEMergeNodeElement;
-    attribute SVGFEMorphologyElementConstructor SVGFEMorphologyElement;
-    attribute SVGFEOffsetElementConstructor SVGFEOffsetElement;
-    attribute SVGFEPointLightElementConstructor SVGFEPointLightElement;
-    attribute SVGFESpecularLightingElementConstructor SVGFESpecularLightingElement;
-    attribute SVGFESpotLightElementConstructor SVGFESpotLightElement;
-    attribute SVGFETileElementConstructor SVGFETileElement;
-    attribute SVGFETurbulenceElementConstructor SVGFETurbulenceElement;
-    attribute SVGFilterElementConstructor SVGFilterElement;
-#endif
-#endif
-
-    attribute DOMFormDataConstructor FormData;
-
-    [Conditional=BLOB|FILE_SYSTEM] attribute FileErrorConstructor FileError;
-    [Conditional=BLOB] attribute FileReaderConstructor FileReader;
-
-    [Conditional=BLOB] attribute DOMURLConstructor URL;
     [Conditional=BLOB] attribute DOMURLConstructor webkitURL; // FIXME: deprecate this.
-
     attribute MutationObserverConstructor WebKitMutationObserver; // FIXME: Add metrics to determine when we can remove this.
-    attribute MutationObserverConstructor MutationObserver;
-    attribute MutationRecordConstructor MutationRecord;
-
+    [Conditional=INDEXED_DATABASE] attribute IDBCursorConstructor webkitIDBCursor;
+    [Conditional=INDEXED_DATABASE] attribute IDBDatabaseConstructor webkitIDBDatabase;
+    [Conditional=INDEXED_DATABASE] attribute IDBFactoryConstructor webkitIDBFactory;
+    [Conditional=INDEXED_DATABASE] attribute IDBIndexConstructor webkitIDBIndex;
+    [Conditional=INDEXED_DATABASE] attribute IDBKeyRangeConstructor webkitIDBKeyRange;
+    [Conditional=INDEXED_DATABASE] attribute IDBObjectStoreConstructor webkitIDBObjectStore;
+    [Conditional=INDEXED_DATABASE] attribute IDBRequestConstructor webkitIDBRequest;
+    [Conditional=INDEXED_DATABASE] attribute IDBTransactionConstructor webkitIDBTransaction;
+
+    // Constructors whose name does not match the interface name.
+    // FIXME: Remove these once [ImplementedAs] is used and once constructor names match interface names.
+    [Conditional=SHADOW_DOM] attribute ShadowRootConstructor WebKitShadowRoot;
     [Conditional=MEDIA_SOURCE] attribute MediaSourceConstructor WebKitMediaSource;
     [Conditional=MEDIA_SOURCE] attribute SourceBufferConstructor WebKitSourceBuffer;
     [Conditional=MEDIA_SOURCE] attribute SourceBufferListConstructor WebKitSourceBufferList;
+    [Conditional=WEB_AUDIO, CustomGetter] attribute AudioContextConstructor webkitAudioContext;
+    [Conditional=WEB_AUDIO] attribute OfflineAudioContextConstructor webkitOfflineAudioContext;
+    [Conditional=WEB_AUDIO] attribute PannerNodeConstructor webkitAudioPannerNode;
+    [Conditional=MEDIA_STREAM] attribute MediaStreamConstructor webkitMediaStream;
+    [Conditional=MEDIA_STREAM] attribute RTCPeerConnectionConstructor webkitRTCPeerConnection;
+    [Conditional=SCRIPTED_SPEECH] attribute SpeechGrammarConstructor webkitSpeechGrammar;
+    [Conditional=SCRIPTED_SPEECH] attribute SpeechGrammarListConstructor webkitSpeechGrammarList;
+    [Conditional=SCRIPTED_SPEECH] attribute SpeechRecognitionConstructor webkitSpeechRecognition;
+    [Conditional=SCRIPTED_SPEECH] attribute SpeechRecognitionErrorConstructor webkitSpeechRecognitionError;
+    [Conditional=SCRIPTED_SPEECH] attribute SpeechRecognitionEventConstructor webkitSpeechRecognitionEvent;
 
 #endif // defined(LANGUAGE_JAVASCRIPT)
 };
index 36a5d09..87c6d79 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSCustomGetOwnPropertySlotAndDescriptor,
     CustomNamedSetter,
     GenerateIsReachable=ImplFrame,
index 08da752..3fa5fd1 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSCustomGetOwnPropertySlotAndDescriptor,
     CustomNamedSetter,
     GenerateIsReachable=ImplFrame,
index fa01374..86f724e 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface MemoryInfo {
index 0e6d39c..e3df241 100644 (file)
@@ -18,6 +18,7 @@
 */
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame,
     OmitConstructor
 ] interface Navigator {
index eb67bc8..1ca5c57 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=PAGE_POPUP,
     ImplementationLacksVTable
 ] interface PagePopupController {
index 02a40b2..f3e1ba4 100644 (file)
@@ -31,6 +31,7 @@
 
 // See: http://dev.w3.org/2006/webapi/WebTiming/
 [
+    NoInterfaceObject,
     Conditional=WEB_TIMING|WEB_TIMING_MINIMAL,
     EventTarget,
     OmitConstructor
index ff38ded..92e1408 100644 (file)
@@ -30,6 +30,7 @@
 
 // See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
 [
+    NoInterfaceObject,
     Conditional=WEB_TIMING,
     Conditional=PERFORMANCE_TIMELINE,
     CustomToJSObject,
index 80cce24..0eaf6b1 100644 (file)
@@ -30,6 +30,7 @@
 
 // See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
 [
+    NoInterfaceObject,
     Conditional=WEB_TIMING,
     Conditional=PERFORMANCE_TIMELINE,
     OmitConstructor,
index 85c12e0..d27547a 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=USER_TIMING,
     OmitConstructor
 ] interface PerformanceMark : PerformanceEntry {
index 3900eb5..da81605 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=USER_TIMING,
     OmitConstructor
 ] interface PerformanceMeasure : PerformanceEntry {
index e9add4c..e9d2457 100644 (file)
@@ -30,6 +30,7 @@
 
 // See: http://www.w3.org/TR/navigation-timing/
 [
+    NoInterfaceObject,
     Conditional=WEB_TIMING,
     OmitConstructor
 ] interface PerformanceNavigation {
index b5d6053..7775763 100644 (file)
@@ -30,6 +30,7 @@
 
 // See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/ResourceTiming/Overview.html
 [
+    NoInterfaceObject,
     Conditional=RESOURCE_TIMING,
     OmitConstructor
 ] interface PerformanceResourceTiming : PerformanceEntry {
index ea823aa..70e504c 100644 (file)
@@ -30,6 +30,7 @@
 
 // See: http://dev.w3.org/2006/webapi/WebTiming/
 [
+    NoInterfaceObject,
     Conditional=WEB_TIMING,
     OmitConstructor
 ] interface PerformanceTiming {
index 221c077..510454b 100644 (file)
@@ -28,6 +28,7 @@
 
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame,
     OmitConstructor
 ] interface Screen {
index 2f09cb0..41a530a 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=INPUT_SPEECH,
     ImplementationLacksVTable
 ] interface SpeechInputResult {
index c5b32ac..f9dcf34 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     IndexedGetter,
     Conditional=INPUT_SPEECH,
     ImplementationLacksVTable
index abc0a35..731205d 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     GenerateIsReachable=Impl,
     JSNoStaticTables,
index e63e1bb..9d1b501 100755 (executable)
@@ -352,6 +352,7 @@ sub generateInternalSettingsIdlFile($)
     print $file $InCompiler->license();
 
     print $file "[\n";
+    print $file "    NoInterfaceObject,\n";
     print $file "    OmitConstructor\n";
     print $file "] interface InternalSettingsGenerated {\n";
 
index 4208032..2595689 100644 (file)
@@ -25,6 +25,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     OmitConstructor
index 2afef76..a81cb64 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     OmitConstructor
 ] interface SVGAnimationElement : SVGElement,
index 65567f0..5c32e1e 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
index 82c8563..8460957 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol
 ] interface SVGFilterPrimitiveStandardAttributes {
index e250924..bb8f07a 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
index 0b61d80..98f6286 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
index 74df01a..d6ba604 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
index 44e61c8..f7f9490 100644 (file)
@@ -26,6 +26,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG
 ] interface SVGStyledElement : SVGElement {
     readonly attribute SVGAnimatedString className;
index c7f9ff0..7ddbe80 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
index 0dfff36..a5224a9 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     OmitConstructor
index a6311cd..982aef1 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
index cc54849..c5c63e1 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     JSGenerateToJSObject
 ] interface InternalSettings : InternalSettingsGenerated {
index 664b7d2..837a861 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor
 ] interface Internals {
     DOMString address(Node node);
index 249e460..c03649d 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface MallocStatistics {
index b27b158..ab9a5bb 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface TypeConversions {
index 4bc7316..4836e30 100644 (file)
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     ActiveDOMObject,
     CustomToJSObject,
index 6fc7605..4d97a8d 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     ExtendsDOMGlobalObject,
     IsWorkerContext,
index 5e339b5..b786425 100644 (file)
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SHARED_WORKERS,
     CustomConstructor,
     Constructor(DOMString scriptURL, [Default=NullString] optional DOMString name),
index 2d57ebb..4b8c948 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SHARED_WORKERS,
     ExtendsDOMGlobalObject,
     IsWorkerContext,
index 3fafa0c..c9515cf 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     JSCustomMarkFunction,
     JSCustomGetOwnPropertySlotAndDescriptor,
index 9f032fb..58442d3 100644 (file)
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     GenerateIsReachable=Impl,
     JSNoStaticTables,
index 9d4cd8a..019b4d0 100644 (file)
@@ -18,7 +18,8 @@
  * Boston, MA 02110-1301, USA.
  */
 [
-     ImplementationLacksVTable
+    NoInterfaceObject,
+    ImplementationLacksVTable
 ] interface XPathExpression {
     [ObjCLegacyUnnamedParameters] XPathResult evaluate([Default=Undefined] optional Node contextNode, 
                                         [Default=Undefined] optional unsigned short type, 
index ba0527a..1baa175 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 [
+    NoInterfaceObject,
     ObjCProtocol,
     OmitConstructor,
     SkipVTableValidation
index b5ecffd..8d49361 100644 (file)
@@ -36,10 +36,14 @@ endmacro()
 #   _supplemental_dependency_file is a value of --supplementalDependencyFile. (optional)
 macro(GENERATE_BINDINGS _output_source _input_files _base_dir _idl_includes _features _destination _prefix _generator _idl_attributes_file)
     set(BINDING_GENERATOR ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl)
-
-    set(_supplemental_dependency_file ${ARGN})
-    if (_supplemental_dependency_file)
-        set(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file})
+    set(_args ${ARGN})
+    list(LENGTH _args _argCount)
+    if (_argCount EQUAL 2)
+        list(GET _args 0 _supplemental_dependency_file)
+        if (_supplemental_dependency_file)
+            set(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file})
+        endif ()
+        list(GET _args 1 _window_constructors_file)
     endif ()
 
     foreach (_file ${_input_files})
@@ -48,7 +52,7 @@ macro(GENERATE_BINDINGS _output_source _input_files _base_dir _idl_includes _fea
         add_custom_command(
             OUTPUT ${_destination}/${_prefix}${_name}.cpp ${_destination}/${_prefix}${_name}.h
             MAIN_DEPENDENCY ${_file}
-            DEPENDS ${BINDING_GENERATOR} ${SCRIPTS_BINDINGS} ${_supplemental_dependency_file} ${_idl_attributes_file}
+            DEPENDS ${BINDING_GENERATOR} ${SCRIPTS_BINDINGS} ${_supplemental_dependency_file} ${_idl_attributes_file} ${_window_constructors_file}
             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}
             WORKING_DIRECTORY ${_base_dir}
             VERBATIM)
index e3e4716..b9c4d33 100644 (file)
@@ -1,3 +1,17 @@
+2013-05-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        Add support for [NoInterfaceObject] Web IDL extended attribute
+        https://bugs.webkit.org/show_bug.cgi?id=115714
+
+        Reviewed by Kentaro Hara.
+
+        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):
+
 2013-05-09  ChangSeok Oh  <changseok.oh@collabora.com>
 
         [GTK][AC] Buildfix after r149694
index af541f0..4f0fa0e 100644 (file)
@@ -61,7 +61,7 @@ class BindingsTests:
             exit_code = e.exit_code
         return exit_code
 
-    def generate_supplemental_dependency(self, input_directory, supplemental_dependency_file):
+    def generate_supplemental_dependency(self, input_directory, supplemental_dependency_file, window_constructors_file):
         idl_files_list = tempfile.mkstemp()
         for input_file in os.listdir(input_directory):
             (name, extension) = os.path.splitext(input_file)
@@ -75,7 +75,8 @@ class BindingsTests:
                'WebCore/bindings/scripts/preprocess-idls.pl',
                '--idlFilesList', idl_files_list[1],
                '--defines', '',
-               '--supplementalDependencyFile', supplemental_dependency_file]
+               '--supplementalDependencyFile', supplemental_dependency_file,
+               '--windowConstructorsFile', window_constructors_file]
 
         exit_code = 0
         try:
@@ -150,7 +151,8 @@ class BindingsTests:
 
         input_directory = os.path.join('WebCore', 'bindings', 'scripts', 'test')
         supplemental_dependency_file = tempfile.mkstemp()[1]
-        if self.generate_supplemental_dependency(input_directory, supplemental_dependency_file):
+        window_constructors_file = tempfile.mkstemp()[1]
+        if self.generate_supplemental_dependency(input_directory, supplemental_dependency_file, window_constructors_file):
             print 'Failed to generate a supplemental dependency file.'
             os.remove(supplemental_dependency_file)
             return -1