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

Reviewed by Kentaro Hara.

.:

Update GENERATE_BINDINGS macro to take an additional _window_constructors_file
optional argument.

* Source/cmake/WebKitMacros.cmake:

Source/WebCore:

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

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

No new tests, no behavior change.

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

Tools:

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

* Scripts/webkitpy/bindings/main.py:
(BindingsTests.generate_supplemental_dependency):
(BindingsTests.main):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt
index 12920c2..916673e 100644
--- a/Source/WebCore/CMakeLists.txt
+++ b/Source/WebCore/CMakeLists.txt
@@ -206,7 +206,6 @@
     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 @@
     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 @@
     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(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)
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index c596230..b1d779c 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -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
diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make
index d033d11..59218f5 100644
--- a/Source/WebCore/DerivedSources.make
+++ b/Source/WebCore/DerivedSources.make
@@ -147,7 +147,6 @@
     $(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 @@
     $(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 @@
 
 all : \
     $(SUPPLEMENTAL_DEPENDENCY_FILE) \
+    $(WINDOW_CONSTRUCTORS_FILE) \
     $(JS_DOM_HEADERS) \
     $(WEB_DOM_HEADERS) \
     \
@@ -1002,6 +1001,7 @@
 
 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 @@
 
 $(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)
diff --git a/Source/WebCore/DerivedSources.pri b/Source/WebCore/DerivedSources.pri
index 477705b..f5a288d 100644
--- a/Source/WebCore/DerivedSources.pri
+++ b/Source/WebCore/DerivedSources.pri
@@ -161,7 +161,6 @@
     $$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 @@
     $$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 @@
 
 # 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 @@
 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
diff --git a/Source/WebCore/GNUmakefile.am b/Source/WebCore/GNUmakefile.am
index 8d1649d..cd7e8fe 100644
--- a/Source/WebCore/GNUmakefile.am
+++ b/Source/WebCore/GNUmakefile.am
@@ -407,6 +407,7 @@
 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 @@
 	$(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:
diff --git a/Source/WebCore/GNUmakefile.list.am b/Source/WebCore/GNUmakefile.list.am
index f82d403..07db081 100644
--- a/Source/WebCore/GNUmakefile.list.am
+++ b/Source/WebCore/GNUmakefile.list.am
@@ -1269,7 +1269,6 @@
 	$(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 @@
 	$(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 @@
 	$(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 \
diff --git a/Source/WebCore/Modules/battery/BatteryManager.idl b/Source/WebCore/Modules/battery/BatteryManager.idl
index 7a09d24..f2d9f13 100644
--- a/Source/WebCore/Modules/battery/BatteryManager.idl
+++ b/Source/WebCore/Modules/battery/BatteryManager.idl
@@ -19,6 +19,7 @@
 
 // http://dev.w3.org/2009/dap/system-info/battery-status.html
 [
+    NoInterfaceObject,
     Conditional=BATTERY_STATUS,
     ActiveDOMObject,
     EventTarget
diff --git a/Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.idl b/Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.idl
index 682867d..11ac733 100644
--- a/Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.idl
+++ b/Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.idl
@@ -23,10 +23,10 @@
  * 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;
 };
diff --git a/Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.idl b/Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.idl
index ebbc00b..2418f4b 100644
--- a/Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.idl
+++ b/Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.idl
@@ -23,10 +23,10 @@
  * 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;
 };
 
diff --git a/Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl b/Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl
index 816ff28..c0c85e7 100644
--- a/Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl
+++ b/Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl
@@ -23,10 +23,10 @@
  * 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;
 
diff --git a/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl b/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl
index e86c882..327e40c 100644
--- a/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl
+++ b/Source/WebCore/Modules/encryptedmedia/MediaKeys.idl
@@ -23,11 +23,11 @@
  * 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);
 
diff --git a/Source/WebCore/Modules/filesystem/DOMFileSystem.idl b/Source/WebCore/Modules/filesystem/DOMFileSystem.idl
index 0d3594e..176c2d55 100644
--- a/Source/WebCore/Modules/filesystem/DOMFileSystem.idl
+++ b/Source/WebCore/Modules/filesystem/DOMFileSystem.idl
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     ActiveDOMObject,
     JSNoStaticTables
diff --git a/Source/WebCore/Modules/filesystem/DOMFileSystemSync.idl b/Source/WebCore/Modules/filesystem/DOMFileSystemSync.idl
index 06db9e9..a332b2c 100644
--- a/Source/WebCore/Modules/filesystem/DOMFileSystemSync.idl
+++ b/Source/WebCore/Modules/filesystem/DOMFileSystemSync.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables
 ] interface DOMFileSystemSync {
diff --git a/Source/WebCore/Modules/filesystem/DirectoryEntry.idl b/Source/WebCore/Modules/filesystem/DirectoryEntry.idl
index a527448..bb5955d 100644
--- a/Source/WebCore/Modules/filesystem/DirectoryEntry.idl
+++ b/Source/WebCore/Modules/filesystem/DirectoryEntry.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSGenerateToNativeObject,
     JSGenerateToJSObject,
diff --git a/Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl b/Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl
index ed5f371..05e0e7d 100644
--- a/Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl
+++ b/Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSGenerateToNativeObject,
     JSGenerateToJSObject,
diff --git a/Source/WebCore/Modules/filesystem/DirectoryReader.idl b/Source/WebCore/Modules/filesystem/DirectoryReader.idl
index 01608d0..ce8dd72 100644
--- a/Source/WebCore/Modules/filesystem/DirectoryReader.idl
+++ b/Source/WebCore/Modules/filesystem/DirectoryReader.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl b/Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl
index d21f90b..17a176a 100644
--- a/Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl
+++ b/Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/filesystem/Entry.idl b/Source/WebCore/Modules/filesystem/Entry.idl
index a73c748..0434a2d 100644
--- a/Source/WebCore/Modules/filesystem/Entry.idl
+++ b/Source/WebCore/Modules/filesystem/Entry.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     CustomToJSObject,
     JSNoStaticTables
diff --git a/Source/WebCore/Modules/filesystem/EntryArray.idl b/Source/WebCore/Modules/filesystem/EntryArray.idl
index 19160b2..af87919 100644
--- a/Source/WebCore/Modules/filesystem/EntryArray.idl
+++ b/Source/WebCore/Modules/filesystem/EntryArray.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     IndexedGetter,
     JSNoStaticTables,
diff --git a/Source/WebCore/Modules/filesystem/EntryArraySync.idl b/Source/WebCore/Modules/filesystem/EntryArraySync.idl
index 3831846..b121710 100644
--- a/Source/WebCore/Modules/filesystem/EntryArraySync.idl
+++ b/Source/WebCore/Modules/filesystem/EntryArraySync.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     IndexedGetter,
     JSNoStaticTables,
diff --git a/Source/WebCore/Modules/filesystem/EntrySync.idl b/Source/WebCore/Modules/filesystem/EntrySync.idl
index 5133da3..6a7f7fe 100644
--- a/Source/WebCore/Modules/filesystem/EntrySync.idl
+++ b/Source/WebCore/Modules/filesystem/EntrySync.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     CustomToJSObject,
     JSNoStaticTables
diff --git a/Source/WebCore/Modules/filesystem/FileEntry.idl b/Source/WebCore/Modules/filesystem/FileEntry.idl
index b9c7482..c772fc2 100644
--- a/Source/WebCore/Modules/filesystem/FileEntry.idl
+++ b/Source/WebCore/Modules/filesystem/FileEntry.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSGenerateToNativeObject,
     JSGenerateToJSObject,
diff --git a/Source/WebCore/Modules/filesystem/FileEntrySync.idl b/Source/WebCore/Modules/filesystem/FileEntrySync.idl
index 8876400..2fccbf8 100644
--- a/Source/WebCore/Modules/filesystem/FileEntrySync.idl
+++ b/Source/WebCore/Modules/filesystem/FileEntrySync.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSGenerateToNativeObject,
     JSGenerateToJSObject,
diff --git a/Source/WebCore/Modules/filesystem/FileWriter.idl b/Source/WebCore/Modules/filesystem/FileWriter.idl
index f0c1b53..efe1996 100644
--- a/Source/WebCore/Modules/filesystem/FileWriter.idl
+++ b/Source/WebCore/Modules/filesystem/FileWriter.idl
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     ActiveDOMObject,
     CallWith=ScriptExecutionContext,
diff --git a/Source/WebCore/Modules/filesystem/FileWriterSync.idl b/Source/WebCore/Modules/filesystem/FileWriterSync.idl
index d6bd118..ffb7b30 100644
--- a/Source/WebCore/Modules/filesystem/FileWriterSync.idl
+++ b/Source/WebCore/Modules/filesystem/FileWriterSync.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables
 ] interface FileWriterSync {
diff --git a/Source/WebCore/Modules/filesystem/Metadata.idl b/Source/WebCore/Modules/filesystem/Metadata.idl
index 627c5de..ca9e176 100644
--- a/Source/WebCore/Modules/filesystem/Metadata.idl
+++ b/Source/WebCore/Modules/filesystem/Metadata.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FILE_SYSTEM,
     JSNoStaticTables,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/gamepad/Gamepad.idl b/Source/WebCore/Modules/gamepad/Gamepad.idl
index 0c5b8d5..0c9c1e7 100644
--- a/Source/WebCore/Modules/gamepad/Gamepad.idl
+++ b/Source/WebCore/Modules/gamepad/Gamepad.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GAMEPAD,
     ImplementationLacksVTable
 ] interface Gamepad {
diff --git a/Source/WebCore/Modules/gamepad/GamepadList.idl b/Source/WebCore/Modules/gamepad/GamepadList.idl
index 82c8367..bfbf2a0 100644
--- a/Source/WebCore/Modules/gamepad/GamepadList.idl
+++ b/Source/WebCore/Modules/gamepad/GamepadList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GAMEPAD,
     IndexedGetter,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/geolocation/Coordinates.idl b/Source/WebCore/Modules/geolocation/Coordinates.idl
index 0fb9781..f4003ce 100644
--- a/Source/WebCore/Modules/geolocation/Coordinates.idl
+++ b/Source/WebCore/Modules/geolocation/Coordinates.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GEOLOCATION,
     OmitConstructor,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/geolocation/Geolocation.idl b/Source/WebCore/Modules/geolocation/Geolocation.idl
index bda489d..f48c243 100644
--- a/Source/WebCore/Modules/geolocation/Geolocation.idl
+++ b/Source/WebCore/Modules/geolocation/Geolocation.idl
@@ -25,6 +25,7 @@
 
 // http://www.w3.org/TR/geolocation-API/#geolocation_interface
 [
+    NoInterfaceObject,
     Conditional=GEOLOCATION, 
     GenerateIsReachable=ImplFrame,
     OmitConstructor
diff --git a/Source/WebCore/Modules/geolocation/Geoposition.idl b/Source/WebCore/Modules/geolocation/Geoposition.idl
index 3f00092..7e14f2f 100644
--- a/Source/WebCore/Modules/geolocation/Geoposition.idl
+++ b/Source/WebCore/Modules/geolocation/Geoposition.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GEOLOCATION,
     OmitConstructor,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/geolocation/PositionError.idl b/Source/WebCore/Modules/geolocation/PositionError.idl
index 4251896..5c1f3a2 100644
--- a/Source/WebCore/Modules/geolocation/PositionError.idl
+++ b/Source/WebCore/Modules/geolocation/PositionError.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=GEOLOCATION,
     ImplementationLacksVTable
 ] interface PositionError {
diff --git a/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl b/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl
index 19cfcbd..19cfdb6 100644
--- a/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl
+++ b/Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl
@@ -29,27 +29,6 @@
 ] 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;
 };
 
diff --git a/Source/WebCore/Modules/indexeddb/IDBAny.idl b/Source/WebCore/Modules/indexeddb/IDBAny.idl
index 0141b01..fb480c9 100644
--- a/Source/WebCore/Modules/indexeddb/IDBAny.idl
+++ b/Source/WebCore/Modules/indexeddb/IDBAny.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=INDEXED_DATABASE,
     CustomToJSObject,
     JSNoStaticTables
diff --git a/Source/WebCore/Modules/mediasource/MediaSource.idl b/Source/WebCore/Modules/mediasource/MediaSource.idl
index 1f42762..7d69c33 100644
--- a/Source/WebCore/Modules/mediasource/MediaSource.idl
+++ b/Source/WebCore/Modules/mediasource/MediaSource.idl
@@ -29,6 +29,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=MEDIA_SOURCE,
     ActiveDOMObject,
     EventTarget,
diff --git a/Source/WebCore/Modules/mediasource/SourceBuffer.idl b/Source/WebCore/Modules/mediasource/SourceBuffer.idl
index 82519b39..75518b2 100644
--- a/Source/WebCore/Modules/mediasource/SourceBuffer.idl
+++ b/Source/WebCore/Modules/mediasource/SourceBuffer.idl
@@ -29,6 +29,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=MEDIA_SOURCE
 ] interface SourceBuffer {
 
diff --git a/Source/WebCore/Modules/mediasource/SourceBufferList.idl b/Source/WebCore/Modules/mediasource/SourceBufferList.idl
index 55223e8..061aa3e 100644
--- a/Source/WebCore/Modules/mediasource/SourceBufferList.idl
+++ b/Source/WebCore/Modules/mediasource/SourceBufferList.idl
@@ -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
index 3264bca..0000000
--- a/Source/WebCore/Modules/mediastream/DOMWindowMediaStream.idl
+++ /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;
-};
-
diff --git a/Source/WebCore/Modules/mediastream/MediaStream.idl b/Source/WebCore/Modules/mediastream/MediaStream.idl
index 3710b42..de8e0c9 100644
--- a/Source/WebCore/Modules/mediastream/MediaStream.idl
+++ b/Source/WebCore/Modules/mediastream/MediaStream.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     EventTarget,
     Constructor,
diff --git a/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl b/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl
index 5dac56a..eddcb6d 100644
--- a/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl
+++ b/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     EventTarget,
     ActiveDOMObject
diff --git a/Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.idl b/Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.idl
index 640a2af..a241d2a 100644
--- a/Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.idl
+++ b/Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
 ] interface MediaStreamTrackEvent : Event {
    readonly attribute MediaStreamTrack track;
diff --git a/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl b/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl
index 9c6df79..2e07c9a 100644
--- a/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl
+++ b/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM
 ] interface NavigatorUserMediaError {
     const unsigned short PERMISSION_DENIED = 1;
diff --git a/Source/WebCore/Modules/mediastream/RTCDTMFSender.idl b/Source/WebCore/Modules/mediastream/RTCDTMFSender.idl
index d165340..78aa875 100644
--- a/Source/WebCore/Modules/mediastream/RTCDTMFSender.idl
+++ b/Source/WebCore/Modules/mediastream/RTCDTMFSender.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     ActiveDOMObject,
     EventTarget
diff --git a/Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.idl b/Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.idl
index b8057f5..1edebd3 100644
--- a/Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.idl
+++ b/Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     ConstructorTemplate=Event
 ] interface RTCDTMFToneChangeEvent : Event {
diff --git a/Source/WebCore/Modules/mediastream/RTCDataChannel.idl b/Source/WebCore/Modules/mediastream/RTCDataChannel.idl
index 696c2b7..a6a03e9 100644
--- a/Source/WebCore/Modules/mediastream/RTCDataChannel.idl
+++ b/Source/WebCore/Modules/mediastream/RTCDataChannel.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     EventTarget
 ] interface RTCDataChannel {
diff --git a/Source/WebCore/Modules/mediastream/RTCDataChannelEvent.idl b/Source/WebCore/Modules/mediastream/RTCDataChannelEvent.idl
index 7fd7ec9..9463375 100644
--- a/Source/WebCore/Modules/mediastream/RTCDataChannelEvent.idl
+++ b/Source/WebCore/Modules/mediastream/RTCDataChannelEvent.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
 ] interface RTCDataChannelEvent : Event {
     readonly attribute RTCDataChannel channel;
diff --git a/Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.idl b/Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.idl
index 331d3b3..3fa0637 100644
--- a/Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.idl
+++ b/Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
 ] interface RTCIceCandidateEvent : Event {
     readonly attribute RTCIceCandidate candidate;
diff --git a/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl b/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl
index 3712f73..acb83e0 100644
--- a/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl
+++ b/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     ActiveDOMObject,
     Constructor(Dictionary rtcIceServers, optional Dictionary mediaConstraints),
diff --git a/Source/WebCore/Modules/mediastream/RTCStatsReport.idl b/Source/WebCore/Modules/mediastream/RTCStatsReport.idl
index 0259add..ade809b 100644
--- a/Source/WebCore/Modules/mediastream/RTCStatsReport.idl
+++ b/Source/WebCore/Modules/mediastream/RTCStatsReport.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     ImplementationLacksVTable
 ] interface RTCStatsReport {
diff --git a/Source/WebCore/Modules/mediastream/RTCStatsResponse.idl b/Source/WebCore/Modules/mediastream/RTCStatsResponse.idl
index 5d66b3e..76778e7 100644
--- a/Source/WebCore/Modules/mediastream/RTCStatsResponse.idl
+++ b/Source/WebCore/Modules/mediastream/RTCStatsResponse.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MEDIA_STREAM,
     NamedGetter
 ] interface RTCStatsResponse {
diff --git a/Source/WebCore/Modules/networkinfo/NetworkInfoConnection.idl b/Source/WebCore/Modules/networkinfo/NetworkInfoConnection.idl
index 8460ef5..9a41f97 100644
--- a/Source/WebCore/Modules/networkinfo/NetworkInfoConnection.idl
+++ b/Source/WebCore/Modules/networkinfo/NetworkInfoConnection.idl
@@ -21,6 +21,7 @@
 
 // http://dvcs.w3.org/hg/dap/raw-file/tip/network-api/index.html
 [
+    NoInterfaceObject,
     Conditional=NETWORK_INFO,
     ActiveDOMObject,
     EventTarget
diff --git a/Source/WebCore/Modules/notifications/DOMWindowNotifications.idl b/Source/WebCore/Modules/notifications/DOMWindowNotifications.idl
index d9b5aa5..0e5039b 100644
--- a/Source/WebCore/Modules/notifications/DOMWindowNotifications.idl
+++ b/Source/WebCore/Modules/notifications/DOMWindowNotifications.idl
@@ -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
 };
 
diff --git a/Source/WebCore/Modules/notifications/NotificationCenter.idl b/Source/WebCore/Modules/notifications/NotificationCenter.idl
index 4b8e069..6f5af09 100644
--- a/Source/WebCore/Modules/notifications/NotificationCenter.idl
+++ b/Source/WebCore/Modules/notifications/NotificationCenter.idl
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=LEGACY_NOTIFICATIONS,
     ActiveDOMObject,
     OmitConstructor
diff --git a/Source/WebCore/Modules/quota/StorageInfo.idl b/Source/WebCore/Modules/quota/StorageInfo.idl
index cb3cbb5..5c11945 100644
--- a/Source/WebCore/Modules/quota/StorageInfo.idl
+++ b/Source/WebCore/Modules/quota/StorageInfo.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=QUOTA,
     OmitConstructor,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/quota/StorageQuota.idl b/Source/WebCore/Modules/quota/StorageQuota.idl
index 0b0c666..7f66251 100644
--- a/Source/WebCore/Modules/quota/StorageQuota.idl
+++ b/Source/WebCore/Modules/quota/StorageQuota.idl
@@ -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
index 4536ca2..0000000
--- a/Source/WebCore/Modules/speech/DOMWindowSpeech.idl
+++ /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;
-};
diff --git a/Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl b/Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl
index f39d923..0744f07 100644
--- a/Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl
+++ b/Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl
@@ -28,6 +28,4 @@
 ] partial interface DOMWindow {
 
     readonly attribute SpeechSynthesis speechSynthesis;
-    attribute SpeechSynthesisEventConstructor SpeechSynthesisEvent;
-    attribute SpeechSynthesisUtteranceConstructor SpeechSynthesisUtterance;
 };
diff --git a/Source/WebCore/Modules/speech/SpeechGrammar.idl b/Source/WebCore/Modules/speech/SpeechGrammar.idl
index 9b2a2a7..f88240d 100644
--- a/Source/WebCore/Modules/speech/SpeechGrammar.idl
+++ b/Source/WebCore/Modules/speech/SpeechGrammar.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     Constructor,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/speech/SpeechGrammarList.idl b/Source/WebCore/Modules/speech/SpeechGrammarList.idl
index 6e3c19c..c283013 100644
--- a/Source/WebCore/Modules/speech/SpeechGrammarList.idl
+++ b/Source/WebCore/Modules/speech/SpeechGrammarList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     IndexedGetter,
     Constructor,
diff --git a/Source/WebCore/Modules/speech/SpeechRecognition.idl b/Source/WebCore/Modules/speech/SpeechRecognition.idl
index 73bc78c..1662045 100644
--- a/Source/WebCore/Modules/speech/SpeechRecognition.idl
+++ b/Source/WebCore/Modules/speech/SpeechRecognition.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     ActiveDOMObject,
     Constructor,
diff --git a/Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl b/Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl
index 719dce2..230c824 100644
--- a/Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl
+++ b/Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     ImplementationLacksVTable
 ] interface SpeechRecognitionAlternative {
diff --git a/Source/WebCore/Modules/speech/SpeechRecognitionError.idl b/Source/WebCore/Modules/speech/SpeechRecognitionError.idl
index f3f91d8..a6b643c 100644
--- a/Source/WebCore/Modules/speech/SpeechRecognitionError.idl
+++ b/Source/WebCore/Modules/speech/SpeechRecognitionError.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     ConstructorTemplate=Event
 ] interface SpeechRecognitionError : Event {
diff --git a/Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl b/Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl
index 616d750..6c94d08 100644
--- a/Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl
+++ b/Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     ConstructorTemplate=Event,
 ] interface SpeechRecognitionEvent : Event {
diff --git a/Source/WebCore/Modules/speech/SpeechRecognitionResult.idl b/Source/WebCore/Modules/speech/SpeechRecognitionResult.idl
index 2abfc16..3302c95 100644
--- a/Source/WebCore/Modules/speech/SpeechRecognitionResult.idl
+++ b/Source/WebCore/Modules/speech/SpeechRecognitionResult.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     IndexedGetter,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl b/Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl
index ffd79f0..1654fb4 100644
--- a/Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl
+++ b/Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SCRIPTED_SPEECH,
     IndexedGetter,
     ImplementationLacksVTable
diff --git a/Source/WebCore/Modules/speech/SpeechSynthesis.idl b/Source/WebCore/Modules/speech/SpeechSynthesis.idl
index a125b95..32419c0 100644
--- a/Source/WebCore/Modules/speech/SpeechSynthesis.idl
+++ b/Source/WebCore/Modules/speech/SpeechSynthesis.idl
@@ -24,6 +24,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=SPEECH_SYNTHESIS
 ] interface SpeechSynthesis  {
     readonly attribute boolean pending;
diff --git a/Source/WebCore/Modules/speech/SpeechSynthesisVoice.idl b/Source/WebCore/Modules/speech/SpeechSynthesisVoice.idl
index c35a933..2226545 100644
--- a/Source/WebCore/Modules/speech/SpeechSynthesisVoice.idl
+++ b/Source/WebCore/Modules/speech/SpeechSynthesisVoice.idl
@@ -24,6 +24,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=SPEECH_SYNTHESIS
 ] interface SpeechSynthesisVoice {
     readonly attribute DOMString voiceURI;
diff --git a/Source/WebCore/Modules/webaudio/AnalyserNode.idl b/Source/WebCore/Modules/webaudio/AnalyserNode.idl
index 34c706e..2d7c2fe 100644
--- a/Source/WebCore/Modules/webaudio/AnalyserNode.idl
+++ b/Source/WebCore/Modules/webaudio/AnalyserNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface AnalyserNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/AudioBuffer.idl b/Source/WebCore/Modules/webaudio/AudioBuffer.idl
index 30ade1e..ab9d68c 100644
--- a/Source/WebCore/Modules/webaudio/AudioBuffer.idl
+++ b/Source/WebCore/Modules/webaudio/AudioBuffer.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ImplementationLacksVTable
 ] interface AudioBuffer {
diff --git a/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl b/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl
index d73fab0..1e188f3 100644
--- a/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl
+++ b/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl
@@ -24,6 +24,7 @@
 
 // A cached (non-streamed), memory-resident audio source
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface AudioBufferSourceNode : AudioSourceNode {
diff --git a/Source/WebCore/Modules/webaudio/AudioContext.idl b/Source/WebCore/Modules/webaudio/AudioContext.idl
index b0931c9..a702d2c 100644
--- a/Source/WebCore/Modules/webaudio/AudioContext.idl
+++ b/Source/WebCore/Modules/webaudio/AudioContext.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ActiveDOMObject,
     CustomConstructor,
diff --git a/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl b/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl
index 9c80df1..03140ab 100644
--- a/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl
+++ b/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject,
     SkipVTableValidation
diff --git a/Source/WebCore/Modules/webaudio/AudioListener.idl b/Source/WebCore/Modules/webaudio/AudioListener.idl
index c98b6d0..4a959a2 100644
--- a/Source/WebCore/Modules/webaudio/AudioListener.idl
+++ b/Source/WebCore/Modules/webaudio/AudioListener.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ImplementationLacksVTable
 ] interface AudioListener {
diff --git a/Source/WebCore/Modules/webaudio/AudioNode.idl b/Source/WebCore/Modules/webaudio/AudioNode.idl
index 0fc2348..04796b7 100644
--- a/Source/WebCore/Modules/webaudio/AudioNode.idl
+++ b/Source/WebCore/Modules/webaudio/AudioNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO
 ] interface AudioNode {
     readonly attribute AudioContext context;
diff --git a/Source/WebCore/Modules/webaudio/AudioParam.idl b/Source/WebCore/Modules/webaudio/AudioParam.idl
index 2719ddc..d61d1dc 100644
--- a/Source/WebCore/Modules/webaudio/AudioParam.idl
+++ b/Source/WebCore/Modules/webaudio/AudioParam.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO
 ] interface AudioParam {
     attribute float value;
diff --git a/Source/WebCore/Modules/webaudio/AudioSourceNode.idl b/Source/WebCore/Modules/webaudio/AudioSourceNode.idl
index 1981c46..4323121 100644
--- a/Source/WebCore/Modules/webaudio/AudioSourceNode.idl
+++ b/Source/WebCore/Modules/webaudio/AudioSourceNode.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ImplementationLacksVTable
 ] interface AudioSourceNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/BiquadFilterNode.idl b/Source/WebCore/Modules/webaudio/BiquadFilterNode.idl
index 687f742..9cd501c 100644
--- a/Source/WebCore/Modules/webaudio/BiquadFilterNode.idl
+++ b/Source/WebCore/Modules/webaudio/BiquadFilterNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface BiquadFilterNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/ChannelMergerNode.idl b/Source/WebCore/Modules/webaudio/ChannelMergerNode.idl
index 8158d7c2..74deb262 100644
--- a/Source/WebCore/Modules/webaudio/ChannelMergerNode.idl
+++ b/Source/WebCore/Modules/webaudio/ChannelMergerNode.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface ChannelMergerNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/ChannelSplitterNode.idl b/Source/WebCore/Modules/webaudio/ChannelSplitterNode.idl
index 6bbf0bb..6d1a165 100644
--- a/Source/WebCore/Modules/webaudio/ChannelSplitterNode.idl
+++ b/Source/WebCore/Modules/webaudio/ChannelSplitterNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface ChannelSplitterNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/ConvolverNode.idl b/Source/WebCore/Modules/webaudio/ConvolverNode.idl
index 5451d4e..ee84fa6 100644
--- a/Source/WebCore/Modules/webaudio/ConvolverNode.idl
+++ b/Source/WebCore/Modules/webaudio/ConvolverNode.idl
@@ -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
index cd2c9b0..0000000
--- a/Source/WebCore/Modules/webaudio/DOMWindowWebAudio.idl
+++ /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
-};
diff --git a/Source/WebCore/Modules/webaudio/DelayNode.idl b/Source/WebCore/Modules/webaudio/DelayNode.idl
index 699ead4..bca9ce7 100644
--- a/Source/WebCore/Modules/webaudio/DelayNode.idl
+++ b/Source/WebCore/Modules/webaudio/DelayNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface DelayNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.idl b/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.idl
index ad7a47e..c055a49 100644
--- a/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.idl
+++ b/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface DynamicsCompressorNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/GainNode.idl b/Source/WebCore/Modules/webaudio/GainNode.idl
index cbb0c96..d70664d 100644
--- a/Source/WebCore/Modules/webaudio/GainNode.idl
+++ b/Source/WebCore/Modules/webaudio/GainNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface GainNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl b/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl
index 916360b..d4d3e25 100644
--- a/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl
+++ b/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO&VIDEO,
     JSGenerateToJSObject
 ] interface MediaElementAudioSourceNode : AudioSourceNode {
diff --git a/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.idl b/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.idl
index c71bba4..29a5dff 100644
--- a/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.idl
+++ b/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO&MEDIA_STREAM,
     JSGenerateToJSObject
 ] interface MediaStreamAudioDestinationNode : AudioSourceNode {
diff --git a/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.idl b/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.idl
index d91e5e8..7aadbef 100644
--- a/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.idl
+++ b/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO&MEDIA_STREAM,
     JSGenerateToJSObject
 ] interface MediaStreamAudioSourceNode : AudioSourceNode {
diff --git a/Source/WebCore/Modules/webaudio/OfflineAudioContext.idl b/Source/WebCore/Modules/webaudio/OfflineAudioContext.idl
index 31a2a38..04c68e8 100644
--- a/Source/WebCore/Modules/webaudio/OfflineAudioContext.idl
+++ b/Source/WebCore/Modules/webaudio/OfflineAudioContext.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     EventTarget,
     JSGenerateToJSObject,
diff --git a/Source/WebCore/Modules/webaudio/OscillatorNode.idl b/Source/WebCore/Modules/webaudio/OscillatorNode.idl
index f3f3eb7..1d44513 100644
--- a/Source/WebCore/Modules/webaudio/OscillatorNode.idl
+++ b/Source/WebCore/Modules/webaudio/OscillatorNode.idl
@@ -24,6 +24,7 @@
 
 // OscillatorNode is an audio generator of periodic waveforms.
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface OscillatorNode : AudioSourceNode {
diff --git a/Source/WebCore/Modules/webaudio/PannerNode.idl b/Source/WebCore/Modules/webaudio/PannerNode.idl
index 4c21c2a..b880c9f 100644
--- a/Source/WebCore/Modules/webaudio/PannerNode.idl
+++ b/Source/WebCore/Modules/webaudio/PannerNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface PannerNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/ScriptProcessorNode.idl b/Source/WebCore/Modules/webaudio/ScriptProcessorNode.idl
index 78cf6da..b7f1b0a 100644
--- a/Source/WebCore/Modules/webaudio/ScriptProcessorNode.idl
+++ b/Source/WebCore/Modules/webaudio/ScriptProcessorNode.idl
@@ -24,6 +24,7 @@
 
 // For real-time audio stream synthesis/processing in JavaScript 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject,
     JSGenerateToNativeObject,
diff --git a/Source/WebCore/Modules/webaudio/WaveShaperNode.idl b/Source/WebCore/Modules/webaudio/WaveShaperNode.idl
index 35740b1..17ff52e 100644
--- a/Source/WebCore/Modules/webaudio/WaveShaperNode.idl
+++ b/Source/WebCore/Modules/webaudio/WaveShaperNode.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     JSGenerateToJSObject
 ] interface WaveShaperNode : AudioNode {
diff --git a/Source/WebCore/Modules/webaudio/WaveTable.idl b/Source/WebCore/Modules/webaudio/WaveTable.idl
index d153b60..7f256a2 100644
--- a/Source/WebCore/Modules/webaudio/WaveTable.idl
+++ b/Source/WebCore/Modules/webaudio/WaveTable.idl
@@ -24,6 +24,7 @@
 
 // WaveTable represents a periodic audio waveform given by its Fourier coefficients.
 [
+    NoInterfaceObject,
     Conditional=WEB_AUDIO,
     ImplementationLacksVTable
 ] interface WaveTable {
diff --git a/Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl b/Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl
index c5b9fb1..61fd4ed 100644
--- a/Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl
+++ b/Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl
@@ -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
 };
 
diff --git a/Source/WebCore/Modules/webdatabase/Database.idl b/Source/WebCore/Modules/webdatabase/Database.idl
index 11bec65..7daeb70 100644
--- a/Source/WebCore/Modules/webdatabase/Database.idl
+++ b/Source/WebCore/Modules/webdatabase/Database.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables
diff --git a/Source/WebCore/Modules/webdatabase/DatabaseSync.idl b/Source/WebCore/Modules/webdatabase/DatabaseSync.idl
index 41a829a..c74328e 100644
--- a/Source/WebCore/Modules/webdatabase/DatabaseSync.idl
+++ b/Source/WebCore/Modules/webdatabase/DatabaseSync.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables
diff --git a/Source/WebCore/Modules/webdatabase/SQLError.idl b/Source/WebCore/Modules/webdatabase/SQLError.idl
index 4803584..6897f81 100644
--- a/Source/WebCore/Modules/webdatabase/SQLError.idl
+++ b/Source/WebCore/Modules/webdatabase/SQLError.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables,
diff --git a/Source/WebCore/Modules/webdatabase/SQLResultSet.idl b/Source/WebCore/Modules/webdatabase/SQLResultSet.idl
index 7cc8889..c5df99b 100644
--- a/Source/WebCore/Modules/webdatabase/SQLResultSet.idl
+++ b/Source/WebCore/Modules/webdatabase/SQLResultSet.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables,
diff --git a/Source/WebCore/Modules/webdatabase/SQLResultSetRowList.idl b/Source/WebCore/Modules/webdatabase/SQLResultSetRowList.idl
index 8b9f571..6132eb0 100644
--- a/Source/WebCore/Modules/webdatabase/SQLResultSetRowList.idl
+++ b/Source/WebCore/Modules/webdatabase/SQLResultSetRowList.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables,
diff --git a/Source/WebCore/Modules/webdatabase/SQLTransaction.idl b/Source/WebCore/Modules/webdatabase/SQLTransaction.idl
index b4b4d8f..da5d7b1 100644
--- a/Source/WebCore/Modules/webdatabase/SQLTransaction.idl
+++ b/Source/WebCore/Modules/webdatabase/SQLTransaction.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SQL_DATABASE,
     OmitConstructor,
     JSNoStaticTables,
diff --git a/Source/WebCore/Modules/webdatabase/SQLTransactionSync.idl b/Source/WebCore/Modules/webdatabase/SQLTransactionSync.idl
index e4dcab6..2ae5d7c 100644
--- a/Source/WebCore/Modules/webdatabase/SQLTransactionSync.idl
+++ b/Source/WebCore/Modules/webdatabase/SQLTransactionSync.idl
@@ -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
index 7df651d..0000000
--- a/Source/WebCore/Modules/websockets/DOMWindowWebSocket.idl
+++ /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
-};
-
diff --git a/Source/WebCore/Modules/websockets/WebSocket.idl b/Source/WebCore/Modules/websockets/WebSocket.idl
index 59db561..9b5139b 100644
--- a/Source/WebCore/Modules/websockets/WebSocket.idl
+++ b/Source/WebCore/Modules/websockets/WebSocket.idl
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEB_SOCKETS,
     ActiveDOMObject,
     Constructor(DOMString url),
diff --git a/Source/WebCore/PlatformBlackBerry.cmake b/Source/WebCore/PlatformBlackBerry.cmake
index a618ca1..ba087af 100644
--- a/Source/WebCore/PlatformBlackBerry.cmake
+++ b/Source/WebCore/PlatformBlackBerry.cmake
@@ -307,9 +307,9 @@
 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 @@
     "${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
diff --git a/Source/WebCore/UseJSC.cmake b/Source/WebCore/UseJSC.cmake
index e8d4333..4a1731e 100644
--- a/Source/WebCore/UseJSC.cmake
+++ b/Source/WebCore/UseJSC.cmake
@@ -306,9 +306,9 @@
 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 @@
     "${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 @@
     "${FEATURE_DEFINES_JAVASCRIPT}"
     ${DERIVED_SOURCES_WEBCORE_DIR} JS JS
     ${IDL_ATTRIBUTES_FILE}
-    ${SUPPLEMENTAL_DEPENDENCY_FILE})
+    ${SUPPLEMENTAL_DEPENDENCY_FILE}
+    ${WINDOW_CONSTRUCTORS_FILE})
diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
index 7396466..828cb44 100644
--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -9627,7 +9627,6 @@
 		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>"; };
@@ -16358,7 +16357,6 @@
 			children = (
 				97AABCF814FA09D5007457AE /* CloseEvent.h */,
 				97AABCF914FA09D5007457AE /* CloseEvent.idl */,
-				97AABCFA14FA09D5007457AE /* DOMWindowWebSocket.idl */,
 				97AABCFB14FA09D5007457AE /* ThreadableWebSocketChannel.cpp */,
 				97AABCFC14FA09D5007457AE /* ThreadableWebSocketChannel.h */,
 				97AABCFD14FA09D5007457AE /* ThreadableWebSocketChannelClientWrapper.cpp */,
diff --git a/Source/WebCore/bindings/scripts/IDLAttributes.txt b/Source/WebCore/bindings/scripts/IDLAttributes.txt
index c18626b..46a3b7b 100644
--- a/Source/WebCore/bindings/scripts/IDLAttributes.txt
+++ b/Source/WebCore/bindings/scripts/IDLAttributes.txt
@@ -83,6 +83,7 @@
 MasqueradesAsUndefined
 NamedConstructor=*
 NamedGetter
+NoInterfaceObject
 NotEnumerable
 NumericIndexedGetter
 ObjCCustomImplementation
diff --git a/Source/WebCore/bindings/scripts/IDLParser.pm b/Source/WebCore/bindings/scripts/IDLParser.pm
index 843d916..8236de3 100644
--- a/Source/WebCore/bindings/scripts/IDLParser.pm
+++ b/Source/WebCore/bindings/scripts/IDLParser.pm
@@ -842,7 +842,7 @@
         $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;
     }
diff --git a/Source/WebCore/bindings/scripts/preprocess-idls.pl b/Source/WebCore/bindings/scripts/preprocess-idls.pl
index abd3d8f..c6735d6 100644
--- a/Source/WebCore/bindings/scripts/preprocess-idls.pl
+++ b/Source/WebCore/bindings/scripts/preprocess-idls.pl
@@ -28,16 +28,19 @@
 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 %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 @@
     close MAKE_FH;
 }
 
+sub GenerateConstructorAttribute
+{
+    my $interfaceName = shift;
+    my $extendedAttributes = shift;
 
-sub getPartialInterfaceNameFromIDLFile
+    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 getFileContents
 {
     my $idlFile = shift;
 
@@ -118,8 +171,51 @@
     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;
+}
diff --git a/Source/WebCore/css/CSSFontFaceLoadEvent.idl b/Source/WebCore/css/CSSFontFaceLoadEvent.idl
index 0f0b813..6becf7a 100644
--- a/Source/WebCore/css/CSSFontFaceLoadEvent.idl
+++ b/Source/WebCore/css/CSSFontFaceLoadEvent.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FONT_LOAD_EVENTS,
     JSNoStaticTables,
     ConstructorTemplate=Event
diff --git a/Source/WebCore/css/CSSFontFaceRule.idl b/Source/WebCore/css/CSSFontFaceRule.idl
index ba97a7b..1319693 100644
--- a/Source/WebCore/css/CSSFontFaceRule.idl
+++ b/Source/WebCore/css/CSSFontFaceRule.idl
@@ -19,10 +19,10 @@
  */
 
 // Introduced in DOM Level 2:
-interface [
+[
     JSGenerateToJSObject,
     JSGenerateToNativeObject,
-] CSSFontFaceRule : CSSRule {
+] interface CSSFontFaceRule : CSSRule {
     readonly attribute CSSStyleDeclaration style;
 };
 
diff --git a/Source/WebCore/css/CSSSupportsRule.idl b/Source/WebCore/css/CSSSupportsRule.idl
index 8839510..10bcfac 100644
--- a/Source/WebCore/css/CSSSupportsRule.idl
+++ b/Source/WebCore/css/CSSSupportsRule.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=CSS3_CONDITIONAL_RULES
 ] interface CSSSupportsRule : CSSRule {
     readonly attribute CSSRuleList cssRules;
diff --git a/Source/WebCore/css/CSSUnknownRule.idl b/Source/WebCore/css/CSSUnknownRule.idl
index 0b0ca0c..fcce17e 100644
--- a/Source/WebCore/css/CSSUnknownRule.idl
+++ b/Source/WebCore/css/CSSUnknownRule.idl
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     OmitConstructor
 ] interface CSSUnknownRule : CSSRule {
 };
diff --git a/Source/WebCore/css/DOMWindowCSS.idl b/Source/WebCore/css/DOMWindowCSS.idl
index aed4cf7..a79d86c 100644
--- a/Source/WebCore/css/DOMWindowCSS.idl
+++ b/Source/WebCore/css/DOMWindowCSS.idl
@@ -28,6 +28,7 @@
  */
 
 [
+    NoInterfaceObject,
     InterfaceName=CSS,
     Conditional=CSS3_CONDITIONAL_RULES
 ] interface DOMWindowCSS {
diff --git a/Source/WebCore/css/FontLoader.idl b/Source/WebCore/css/FontLoader.idl
index 35b5286..22ed338 100644
--- a/Source/WebCore/css/FontLoader.idl
+++ b/Source/WebCore/css/FontLoader.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=FONT_LOAD_EVENTS,
     ActiveDOMObject,
     EventTarget,
diff --git a/Source/WebCore/css/MediaQueryList.idl b/Source/WebCore/css/MediaQueryList.idl
index 7fb2bca..b00b705 100644
--- a/Source/WebCore/css/MediaQueryList.idl
+++ b/Source/WebCore/css/MediaQueryList.idl
@@ -17,6 +17,7 @@
  *  Boston, MA 02110-1301, USA.
  */
 [
+    NoInterfaceObject,
     ImplementationLacksVTable
 ] interface MediaQueryList {
     readonly attribute DOMString media;
diff --git a/Source/WebCore/css/MediaQueryListListener.idl b/Source/WebCore/css/MediaQueryListListener.idl
index dbb6e6b..435711e 100644
--- a/Source/WebCore/css/MediaQueryListListener.idl
+++ b/Source/WebCore/css/MediaQueryListListener.idl
@@ -18,6 +18,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSNoStaticTables,
     ObjCProtocol,
     CPPPureInterface,
diff --git a/Source/WebCore/css/StyleMedia.idl b/Source/WebCore/css/StyleMedia.idl
index f28ddf0..c100634 100644
--- a/Source/WebCore/css/StyleMedia.idl
+++ b/Source/WebCore/css/StyleMedia.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame
 ] interface StyleMedia {
     readonly attribute DOMString type;
diff --git a/Source/WebCore/dom/CustomElementConstructor.idl b/Source/WebCore/dom/CustomElementConstructor.idl
index 42a9d7c..773d934 100644
--- a/Source/WebCore/dom/CustomElementConstructor.idl
+++ b/Source/WebCore/dom/CustomElementConstructor.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=CUSTOM_ELEMENTS,
     CustomCall
 ] interface CustomElementConstructor {
diff --git a/Source/WebCore/dom/DOMError.idl b/Source/WebCore/dom/DOMError.idl
index 79a5881..81fa031 100644
--- a/Source/WebCore/dom/DOMError.idl
+++ b/Source/WebCore/dom/DOMError.idl
@@ -26,6 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 [
+    NoInterfaceObject,
     ImplementationLacksVTable
 ] interface  DOMError {
     readonly attribute DOMString name;
diff --git a/Source/WebCore/dom/DOMNamedFlowCollection.idl b/Source/WebCore/dom/DOMNamedFlowCollection.idl
index 3cc94c7..0459683 100644
--- a/Source/WebCore/dom/DOMNamedFlowCollection.idl
+++ b/Source/WebCore/dom/DOMNamedFlowCollection.idl
@@ -28,6 +28,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=CSS_REGIONS,
     InterfaceName=WebKitNamedFlowCollection,
     JSGenerateToJSObject,
diff --git a/Source/WebCore/dom/DataTransferItem.idl b/Source/WebCore/dom/DataTransferItem.idl
index db55f4d..f7fd6ae 100644
--- a/Source/WebCore/dom/DataTransferItem.idl
+++ b/Source/WebCore/dom/DataTransferItem.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=DATA_TRANSFER_ITEMS,
     ImplementationLacksVTable
 ] interface DataTransferItem {
diff --git a/Source/WebCore/dom/DataTransferItemList.idl b/Source/WebCore/dom/DataTransferItemList.idl
index 132b440..4f66f00 100644
--- a/Source/WebCore/dom/DataTransferItemList.idl
+++ b/Source/WebCore/dom/DataTransferItemList.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=DATA_TRANSFER_ITEMS,
     IndexedGetter,
     JSGenerateToNativeObject,
diff --git a/Source/WebCore/dom/EventListener.idl b/Source/WebCore/dom/EventListener.idl
index a04728e..b12c879 100644
--- a/Source/WebCore/dom/EventListener.idl
+++ b/Source/WebCore/dom/EventListener.idl
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     JSNoStaticTables,
     ObjCProtocol,
     CPPPureInterface,
diff --git a/Source/WebCore/dom/EventTarget.idl b/Source/WebCore/dom/EventTarget.idl
index 3383a9c..6799556 100644
--- a/Source/WebCore/dom/EventTarget.idl
+++ b/Source/WebCore/dom/EventTarget.idl
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     ObjCProtocol,
     CPPPureInterface,
     OmitConstructor,
diff --git a/Source/WebCore/dom/NodeIterator.idl b/Source/WebCore/dom/NodeIterator.idl
index 77259d0..7f8cd31 100644
--- a/Source/WebCore/dom/NodeIterator.idl
+++ b/Source/WebCore/dom/NodeIterator.idl
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     JSCustomMarkFunction,
     ImplementationLacksVTable
 ] interface NodeIterator {
diff --git a/Source/WebCore/dom/ShadowRoot.idl b/Source/WebCore/dom/ShadowRoot.idl
index 2dc2ab1..bbe1103 100644
--- a/Source/WebCore/dom/ShadowRoot.idl
+++ b/Source/WebCore/dom/ShadowRoot.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SHADOW_DOM,
     JSGenerateToJSObject
 ] interface ShadowRoot : DocumentFragment {
diff --git a/Source/WebCore/dom/TreeWalker.idl b/Source/WebCore/dom/TreeWalker.idl
index 4d4bf18..e6b7910 100644
--- a/Source/WebCore/dom/TreeWalker.idl
+++ b/Source/WebCore/dom/TreeWalker.idl
@@ -20,6 +20,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     JSCustomMarkFunction,
     ImplementationLacksVTable
 ] interface TreeWalker {
diff --git a/Source/WebCore/dom/WebKitNamedFlow.idl b/Source/WebCore/dom/WebKitNamedFlow.idl
index aaafa92..21ca1d8 100644
--- a/Source/WebCore/dom/WebKitNamedFlow.idl
+++ b/Source/WebCore/dom/WebKitNamedFlow.idl
@@ -28,6 +28,7 @@
  */
 
 [
+    NoInterfaceObject,
     EventTarget,
     JSGenerateToJSObject,
     GenerateIsReachable=ImplOwnerNodeRoot
diff --git a/Source/WebCore/fileapi/FileException.idl b/Source/WebCore/fileapi/FileException.idl
index 4e3e0ab..97ca308 100644
--- a/Source/WebCore/fileapi/FileException.idl
+++ b/Source/WebCore/fileapi/FileException.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=BLOB|FILE_SYSTEM,
     DoNotCheckConstants,
     JSNoStaticTables,
diff --git a/Source/WebCore/fileapi/FileReaderSync.idl b/Source/WebCore/fileapi/FileReaderSync.idl
index be631b0..deb137a 100644
--- a/Source/WebCore/fileapi/FileReaderSync.idl
+++ b/Source/WebCore/fileapi/FileReaderSync.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=BLOB,
     Constructor,
     JSNoStaticTables
diff --git a/Source/WebCore/html/HTMLAudioElement.idl b/Source/WebCore/html/HTMLAudioElement.idl
index 1f2f903..0d8cf94 100644
--- a/Source/WebCore/html/HTMLAudioElement.idl
+++ b/Source/WebCore/html/HTMLAudioElement.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO,
     NamedConstructor=Audio([Default=NullString] optional DOMString src)
 ] interface HTMLAudioElement : HTMLMediaElement {
diff --git a/Source/WebCore/html/HTMLDetailsElement.idl b/Source/WebCore/html/HTMLDetailsElement.idl
index ca3894e..011f9e1 100644
--- a/Source/WebCore/html/HTMLDetailsElement.idl
+++ b/Source/WebCore/html/HTMLDetailsElement.idl
@@ -18,6 +18,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=DETAILS_ELEMENT
 ] interface HTMLDetailsElement : HTMLElement {
     [Reflect] attribute boolean open;
diff --git a/Source/WebCore/html/HTMLOptionElement.idl b/Source/WebCore/html/HTMLOptionElement.idl
index 4932898..749d783 100644
--- a/Source/WebCore/html/HTMLOptionElement.idl
+++ b/Source/WebCore/html/HTMLOptionElement.idl
@@ -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
diff --git a/Source/WebCore/html/MediaError.idl b/Source/WebCore/html/MediaError.idl
index 7337444..5dfeda0 100644
--- a/Source/WebCore/html/MediaError.idl
+++ b/Source/WebCore/html/MediaError.idl
@@ -23,10 +23,10 @@
  * 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;
diff --git a/Source/WebCore/html/MediaKeyError.idl b/Source/WebCore/html/MediaKeyError.idl
index 0c65d9d..9b8945e 100644
--- a/Source/WebCore/html/MediaKeyError.idl
+++ b/Source/WebCore/html/MediaKeyError.idl
@@ -23,10 +23,10 @@
  * 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;
diff --git a/Source/WebCore/html/MicroDataItemValue.idl b/Source/WebCore/html/MicroDataItemValue.idl
index 9746bf3..d407eeb 100644
--- a/Source/WebCore/html/MicroDataItemValue.idl
+++ b/Source/WebCore/html/MicroDataItemValue.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=MICRODATA,
     CustomToJSObject,
     OmitConstructor,
diff --git a/Source/WebCore/html/RadioNodeList.idl b/Source/WebCore/html/RadioNodeList.idl
index 7cae485..200116d 100644
--- a/Source/WebCore/html/RadioNodeList.idl
+++ b/Source/WebCore/html/RadioNodeList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSGenerateToJSObject,
     IndexedGetter,
 ] interface RadioNodeList : NodeList {
diff --git a/Source/WebCore/html/ValidityState.idl b/Source/WebCore/html/ValidityState.idl
index 069e7b5..390b5ad 100644
--- a/Source/WebCore/html/ValidityState.idl
+++ b/Source/WebCore/html/ValidityState.idl
@@ -21,6 +21,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface ValidityState {
diff --git a/Source/WebCore/html/canvas/CanvasRenderingContext.idl b/Source/WebCore/html/canvas/CanvasRenderingContext.idl
index 00ff3e5..6a68509 100644
--- a/Source/WebCore/html/canvas/CanvasRenderingContext.idl
+++ b/Source/WebCore/html/canvas/CanvasRenderingContext.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSCustomMarkFunction,
     GenerateIsReachable,
     CustomToJSObject
diff --git a/Source/WebCore/html/canvas/DOMPath.idl b/Source/WebCore/html/canvas/DOMPath.idl
index 0ab7f71..6eee2e70 100644
--- a/Source/WebCore/html/canvas/DOMPath.idl
+++ b/Source/WebCore/html/canvas/DOMPath.idl
@@ -26,7 +26,7 @@
  * SUCH DAMAGE.
  */
 
-interface [
+[
     Constructor,
     Constructor(DOMPath path),
 #if defined(ENABLE_SVG) && ENABLE_SVG
@@ -34,7 +34,7 @@
 #endif
     Conditional=CANVAS_PATH,
     InterfaceName=Path
-] DOMPath {
+] interface DOMPath {
 
     // FIXME: These methods should be shared with CanvasRenderingContext2D in the CanvasPathMethods interface.
     void closePath();
diff --git a/Source/WebCore/html/canvas/EXTDrawBuffers.idl b/Source/WebCore/html/canvas/EXTDrawBuffers.idl
index 33aaf22..f5d39ee 100644
--- a/Source/WebCore/html/canvas/EXTDrawBuffers.idl
+++ b/Source/WebCore/html/canvas/EXTDrawBuffers.idl
@@ -26,6 +26,7 @@
 typedef unsigned long GLenum;
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
diff --git a/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl b/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl
index dd5dc93..fb7ad44 100644
--- a/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl
+++ b/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
diff --git a/Source/WebCore/html/canvas/OESElementIndexUint.idl b/Source/WebCore/html/canvas/OESElementIndexUint.idl
index a3f2db4..2195a7a 100644
--- a/Source/WebCore/html/canvas/OESElementIndexUint.idl
+++ b/Source/WebCore/html/canvas/OESElementIndexUint.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
diff --git a/Source/WebCore/html/canvas/OESStandardDerivatives.idl b/Source/WebCore/html/canvas/OESStandardDerivatives.idl
index db2a6a9..c70791a 100644
--- a/Source/WebCore/html/canvas/OESStandardDerivatives.idl
+++ b/Source/WebCore/html/canvas/OESStandardDerivatives.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
diff --git a/Source/WebCore/html/canvas/OESTextureFloat.idl b/Source/WebCore/html/canvas/OESTextureFloat.idl
index 233b1d6..7b80636 100644
--- a/Source/WebCore/html/canvas/OESTextureFloat.idl
+++ b/Source/WebCore/html/canvas/OESTextureFloat.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
diff --git a/Source/WebCore/html/canvas/OESTextureHalfFloat.idl b/Source/WebCore/html/canvas/OESTextureHalfFloat.idl
index 267ad39..56d146b 100644
--- a/Source/WebCore/html/canvas/OESTextureHalfFloat.idl
+++ b/Source/WebCore/html/canvas/OESTextureHalfFloat.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
diff --git a/Source/WebCore/html/canvas/OESVertexArrayObject.idl b/Source/WebCore/html/canvas/OESVertexArrayObject.idl
index 904970e..5ed590a 100644
--- a/Source/WebCore/html/canvas/OESVertexArrayObject.idl
+++ b/Source/WebCore/html/canvas/OESVertexArrayObject.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL, 
     GenerateIsReachable=ImplContext,
     OmitConstructor, 
diff --git a/Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl b/Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl
index 659c23d..8cb1f06 100644
--- a/Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl
+++ b/Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
diff --git a/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl b/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl
index b027c4c..60a04eb 100644
--- a/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl
+++ b/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
diff --git a/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl b/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl
index 390fc63..c894c1e 100644
--- a/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl
+++ b/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
diff --git a/Source/WebCore/html/canvas/WebGLContextAttributes.idl b/Source/WebCore/html/canvas/WebGLContextAttributes.idl
index 52dd041..a84fcc7 100644
--- a/Source/WebCore/html/canvas/WebGLContextAttributes.idl
+++ b/Source/WebCore/html/canvas/WebGLContextAttributes.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     OmitConstructor
 ] interface WebGLContextAttributes {
diff --git a/Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl b/Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl
index 900351d..d2f9d95 100644
--- a/Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl
+++ b/Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
diff --git a/Source/WebCore/html/canvas/WebGLDebugShaders.idl b/Source/WebCore/html/canvas/WebGLDebugShaders.idl
index 90402be..9ecd447 100644
--- a/Source/WebCore/html/canvas/WebGLDebugShaders.idl
+++ b/Source/WebCore/html/canvas/WebGLDebugShaders.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
diff --git a/Source/WebCore/html/canvas/WebGLDepthTexture.idl b/Source/WebCore/html/canvas/WebGLDepthTexture.idl
index 680ac00..19419dc 100644
--- a/Source/WebCore/html/canvas/WebGLDepthTexture.idl
+++ b/Source/WebCore/html/canvas/WebGLDepthTexture.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor,
diff --git a/Source/WebCore/html/canvas/WebGLLoseContext.idl b/Source/WebCore/html/canvas/WebGLLoseContext.idl
index e16fbe7..d3632b5 100644
--- a/Source/WebCore/html/canvas/WebGLLoseContext.idl
+++ b/Source/WebCore/html/canvas/WebGLLoseContext.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplContext,
     OmitConstructor
diff --git a/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl b/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl
index 1e78ddd..ce9f18d 100644
--- a/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl
+++ b/Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WEBGL
 ] interface WebGLVertexArrayObjectOES {
 };
diff --git a/Source/WebCore/html/track/AudioTrack.idl b/Source/WebCore/html/track/AudioTrack.idl
index a68f967..ed00580 100644
--- a/Source/WebCore/html/track/AudioTrack.idl
+++ b/Source/WebCore/html/track/AudioTrack.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK,
     GenerateIsReachable=ImplElementRoot,
     JSCustomMarkFunction
diff --git a/Source/WebCore/html/track/AudioTrackList.idl b/Source/WebCore/html/track/AudioTrackList.idl
index ed24bc5..88c004b 100644
--- a/Source/WebCore/html/track/AudioTrackList.idl
+++ b/Source/WebCore/html/track/AudioTrackList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK,
     GenerateIsReachable=ImplElementRoot,
     IndexedGetter,
diff --git a/Source/WebCore/html/track/TextTrackRegionList.idl b/Source/WebCore/html/track/TextTrackRegionList.idl
index b7db9df..b52a174 100644
--- a/Source/WebCore/html/track/TextTrackRegionList.idl
+++ b/Source/WebCore/html/track/TextTrackRegionList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK & WEBVTT_REGIONS,
     IndexedGetter,
     ImplementationLacksVTable
diff --git a/Source/WebCore/html/track/VideoTrack.idl b/Source/WebCore/html/track/VideoTrack.idl
index 8e37681..1e41a90 100644
--- a/Source/WebCore/html/track/VideoTrack.idl
+++ b/Source/WebCore/html/track/VideoTrack.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK,
     GenerateIsReachable=ImplElementRoot,
     JSCustomMarkFunction
diff --git a/Source/WebCore/html/track/VideoTrackList.idl b/Source/WebCore/html/track/VideoTrackList.idl
index 8b56c46..efafd00 100644
--- a/Source/WebCore/html/track/VideoTrackList.idl
+++ b/Source/WebCore/html/track/VideoTrackList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=VIDEO_TRACK,
     GenerateIsReachable=ImplElementRoot,
     IndexedGetter,
diff --git a/Source/WebCore/inspector/InjectedScriptHost.idl b/Source/WebCore/inspector/InjectedScriptHost.idl
index 8b93a5b..77cac96 100644
--- a/Source/WebCore/inspector/InjectedScriptHost.idl
+++ b/Source/WebCore/inspector/InjectedScriptHost.idl
@@ -31,6 +31,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=INSPECTOR,
     ImplementationLacksVTable
 ] interface InjectedScriptHost {
diff --git a/Source/WebCore/inspector/InspectorFrontendHost.idl b/Source/WebCore/inspector/InspectorFrontendHost.idl
index 11ea294..56012be 100644
--- a/Source/WebCore/inspector/InspectorFrontendHost.idl
+++ b/Source/WebCore/inspector/InspectorFrontendHost.idl
@@ -31,6 +31,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=INSPECTOR,
     ImplementationLacksVTable
 ] interface InspectorFrontendHost {
diff --git a/Source/WebCore/inspector/JavaScriptCallFrame.idl b/Source/WebCore/inspector/JavaScriptCallFrame.idl
index 8e3b6bc..1b873d0 100644
--- a/Source/WebCore/inspector/JavaScriptCallFrame.idl
+++ b/Source/WebCore/inspector/JavaScriptCallFrame.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=JAVASCRIPT_DEBUGGER,
     OmitConstructor,
     DoNotCheckConstants,
diff --git a/Source/WebCore/inspector/ScriptProfile.idl b/Source/WebCore/inspector/ScriptProfile.idl
index 664a9bb..f2f6efd 100644
--- a/Source/WebCore/inspector/ScriptProfile.idl
+++ b/Source/WebCore/inspector/ScriptProfile.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=JAVASCRIPT_DEBUGGER,
     OmitConstructor
 ] interface ScriptProfile {
diff --git a/Source/WebCore/inspector/ScriptProfileNode.idl b/Source/WebCore/inspector/ScriptProfileNode.idl
index 471eb72..a8abad1 100644
--- a/Source/WebCore/inspector/ScriptProfileNode.idl
+++ b/Source/WebCore/inspector/ScriptProfileNode.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=JAVASCRIPT_DEBUGGER,
     OmitConstructor,
     ImplementationLacksVTable
diff --git a/Source/WebCore/loader/appcache/DOMApplicationCache.idl b/Source/WebCore/loader/appcache/DOMApplicationCache.idl
index 9f38048..17fad87 100644
--- a/Source/WebCore/loader/appcache/DOMApplicationCache.idl
+++ b/Source/WebCore/loader/appcache/DOMApplicationCache.idl
@@ -24,6 +24,7 @@
  */
  
 [
+    NoInterfaceObject,
     EventTarget,
     OmitConstructor,
     DoNotCheckConstants,
diff --git a/Source/WebCore/page/AbstractView.idl b/Source/WebCore/page/AbstractView.idl
index c57aaea..42f81cd 100644
--- a/Source/WebCore/page/AbstractView.idl
+++ b/Source/WebCore/page/AbstractView.idl
@@ -26,6 +26,7 @@
 
 // Introduced in DOM Level 2:
 [
+    NoInterfaceObject,
     ObjCCustomImplementation,
     OmitConstructor
 ] interface AbstractView {
diff --git a/Source/WebCore/page/BarInfo.idl b/Source/WebCore/page/BarInfo.idl
index 4a983e3..70da6ee 100644
--- a/Source/WebCore/page/BarInfo.idl
+++ b/Source/WebCore/page/BarInfo.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame,
     OmitConstructor
 ] interface BarInfo {
diff --git a/Source/WebCore/page/Console.idl b/Source/WebCore/page/Console.idl
index 1636144..2be93f9 100644
--- a/Source/WebCore/page/Console.idl
+++ b/Source/WebCore/page/Console.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame,
     OmitConstructor
 ] interface Console {
diff --git a/Source/WebCore/page/Crypto.idl b/Source/WebCore/page/Crypto.idl
index b1f87e0..db6c295 100644
--- a/Source/WebCore/page/Crypto.idl
+++ b/Source/WebCore/page/Crypto.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface Crypto {
diff --git a/Source/WebCore/page/DOMSecurityPolicy.idl b/Source/WebCore/page/DOMSecurityPolicy.idl
index d984d73..e530c18 100644
--- a/Source/WebCore/page/DOMSecurityPolicy.idl
+++ b/Source/WebCore/page/DOMSecurityPolicy.idl
@@ -23,6 +23,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=CSP_NEXT,
     OmitConstructor,
     InterfaceName=SecurityPolicy
diff --git a/Source/WebCore/page/DOMWindow.idl b/Source/WebCore/page/DOMWindow.idl
index 7ac729d..ff4879f 100644
--- a/Source/WebCore/page/DOMWindow.idl
+++ b/Source/WebCore/page/DOMWindow.idl
@@ -320,482 +320,44 @@
     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)
 };
diff --git a/Source/WebCore/page/History.idl b/Source/WebCore/page/History.idl
index 36a5d09..87c6d79 100644
--- a/Source/WebCore/page/History.idl
+++ b/Source/WebCore/page/History.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSCustomGetOwnPropertySlotAndDescriptor,
     CustomNamedSetter,
     GenerateIsReachable=ImplFrame,
diff --git a/Source/WebCore/page/Location.idl b/Source/WebCore/page/Location.idl
index 08da752..3fa5fd1 100644
--- a/Source/WebCore/page/Location.idl
+++ b/Source/WebCore/page/Location.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     JSCustomGetOwnPropertySlotAndDescriptor,
     CustomNamedSetter,
     GenerateIsReachable=ImplFrame,
diff --git a/Source/WebCore/page/MemoryInfo.idl b/Source/WebCore/page/MemoryInfo.idl
index fa01374..86f724e 100644
--- a/Source/WebCore/page/MemoryInfo.idl
+++ b/Source/WebCore/page/MemoryInfo.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface MemoryInfo {
diff --git a/Source/WebCore/page/Navigator.idl b/Source/WebCore/page/Navigator.idl
index 0e6d39c..e3df241 100644
--- a/Source/WebCore/page/Navigator.idl
+++ b/Source/WebCore/page/Navigator.idl
@@ -18,6 +18,7 @@
 */
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame,
     OmitConstructor
 ] interface Navigator {
diff --git a/Source/WebCore/page/PagePopupController.idl b/Source/WebCore/page/PagePopupController.idl
index eb67bc8..1ca5c57 100644
--- a/Source/WebCore/page/PagePopupController.idl
+++ b/Source/WebCore/page/PagePopupController.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=PAGE_POPUP,
     ImplementationLacksVTable
 ] interface PagePopupController {
diff --git a/Source/WebCore/page/Performance.idl b/Source/WebCore/page/Performance.idl
index 02a40b2..f3e1ba4 100644
--- a/Source/WebCore/page/Performance.idl
+++ b/Source/WebCore/page/Performance.idl
@@ -31,6 +31,7 @@
 
 // See: http://dev.w3.org/2006/webapi/WebTiming/
 [
+    NoInterfaceObject,
     Conditional=WEB_TIMING|WEB_TIMING_MINIMAL,
     EventTarget,
     OmitConstructor
diff --git a/Source/WebCore/page/PerformanceEntry.idl b/Source/WebCore/page/PerformanceEntry.idl
index ff38ded..92e1408 100644
--- a/Source/WebCore/page/PerformanceEntry.idl
+++ b/Source/WebCore/page/PerformanceEntry.idl
@@ -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,
diff --git a/Source/WebCore/page/PerformanceEntryList.idl b/Source/WebCore/page/PerformanceEntryList.idl
index 80cce24..0eaf6b1 100644
--- a/Source/WebCore/page/PerformanceEntryList.idl
+++ b/Source/WebCore/page/PerformanceEntryList.idl
@@ -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,
diff --git a/Source/WebCore/page/PerformanceMark.idl b/Source/WebCore/page/PerformanceMark.idl
index 85c12e0..d27547ac 100644
--- a/Source/WebCore/page/PerformanceMark.idl
+++ b/Source/WebCore/page/PerformanceMark.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=USER_TIMING,
     OmitConstructor
 ] interface PerformanceMark : PerformanceEntry {
diff --git a/Source/WebCore/page/PerformanceMeasure.idl b/Source/WebCore/page/PerformanceMeasure.idl
index 3900eb5..da81605 100644
--- a/Source/WebCore/page/PerformanceMeasure.idl
+++ b/Source/WebCore/page/PerformanceMeasure.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=USER_TIMING,
     OmitConstructor
 ] interface PerformanceMeasure : PerformanceEntry {
diff --git a/Source/WebCore/page/PerformanceNavigation.idl b/Source/WebCore/page/PerformanceNavigation.idl
index e9add4c..e9d2457 100644
--- a/Source/WebCore/page/PerformanceNavigation.idl
+++ b/Source/WebCore/page/PerformanceNavigation.idl
@@ -30,6 +30,7 @@
 
 // See: http://www.w3.org/TR/navigation-timing/
 [
+    NoInterfaceObject,
     Conditional=WEB_TIMING,
     OmitConstructor
 ] interface PerformanceNavigation {
diff --git a/Source/WebCore/page/PerformanceResourceTiming.idl b/Source/WebCore/page/PerformanceResourceTiming.idl
index b5d6053..7775763 100644
--- a/Source/WebCore/page/PerformanceResourceTiming.idl
+++ b/Source/WebCore/page/PerformanceResourceTiming.idl
@@ -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 {
diff --git a/Source/WebCore/page/PerformanceTiming.idl b/Source/WebCore/page/PerformanceTiming.idl
index ea823aa..70e504c2 100644
--- a/Source/WebCore/page/PerformanceTiming.idl
+++ b/Source/WebCore/page/PerformanceTiming.idl
@@ -30,6 +30,7 @@
 
 // See: http://dev.w3.org/2006/webapi/WebTiming/
 [
+    NoInterfaceObject,
     Conditional=WEB_TIMING,
     OmitConstructor
 ] interface PerformanceTiming {
diff --git a/Source/WebCore/page/Screen.idl b/Source/WebCore/page/Screen.idl
index 221c077..510454b 100644
--- a/Source/WebCore/page/Screen.idl
+++ b/Source/WebCore/page/Screen.idl
@@ -28,6 +28,7 @@
 
 
 [
+    NoInterfaceObject,
     GenerateIsReachable=ImplFrame,
     OmitConstructor
 ] interface Screen {
diff --git a/Source/WebCore/page/SpeechInputResult.idl b/Source/WebCore/page/SpeechInputResult.idl
index 2f09cb0..41a530a 100644
--- a/Source/WebCore/page/SpeechInputResult.idl
+++ b/Source/WebCore/page/SpeechInputResult.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=INPUT_SPEECH,
     ImplementationLacksVTable
 ] interface SpeechInputResult {
diff --git a/Source/WebCore/page/SpeechInputResultList.idl b/Source/WebCore/page/SpeechInputResultList.idl
index c5b32ac..f9dcf34 100644
--- a/Source/WebCore/page/SpeechInputResultList.idl
+++ b/Source/WebCore/page/SpeechInputResultList.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     IndexedGetter,
     Conditional=INPUT_SPEECH,
     ImplementationLacksVTable
diff --git a/Source/WebCore/page/WorkerNavigator.idl b/Source/WebCore/page/WorkerNavigator.idl
index abc0a35..731205d 100644
--- a/Source/WebCore/page/WorkerNavigator.idl
+++ b/Source/WebCore/page/WorkerNavigator.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     GenerateIsReachable=Impl,
     JSNoStaticTables,
diff --git a/Source/WebCore/page/make_settings.pl b/Source/WebCore/page/make_settings.pl
index e63e1bb..9d1b501 100755
--- a/Source/WebCore/page/make_settings.pl
+++ b/Source/WebCore/page/make_settings.pl
@@ -352,6 +352,7 @@
     print $file $InCompiler->license();
 
     print $file "[\n";
+    print $file "    NoInterfaceObject,\n";
     print $file "    OmitConstructor\n";
     print $file "] interface InternalSettingsGenerated {\n";
 
diff --git a/Source/WebCore/svg/ElementTimeControl.idl b/Source/WebCore/svg/ElementTimeControl.idl
index 4208032..2595689 100644
--- a/Source/WebCore/svg/ElementTimeControl.idl
+++ b/Source/WebCore/svg/ElementTimeControl.idl
@@ -25,6 +25,7 @@
  */
  
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     OmitConstructor
diff --git a/Source/WebCore/svg/SVGAnimationElement.idl b/Source/WebCore/svg/SVGAnimationElement.idl
index 2afef76..a81cb64 100644
--- a/Source/WebCore/svg/SVGAnimationElement.idl
+++ b/Source/WebCore/svg/SVGAnimationElement.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     OmitConstructor
 ] interface SVGAnimationElement : SVGElement,
diff --git a/Source/WebCore/svg/SVGExternalResourcesRequired.idl b/Source/WebCore/svg/SVGExternalResourcesRequired.idl
index 65567f0..5c32e1e 100644
--- a/Source/WebCore/svg/SVGExternalResourcesRequired.idl
+++ b/Source/WebCore/svg/SVGExternalResourcesRequired.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
diff --git a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl
index 82c8563..8460957 100644
--- a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl
+++ b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol
 ] interface SVGFilterPrimitiveStandardAttributes {
diff --git a/Source/WebCore/svg/SVGFitToViewBox.idl b/Source/WebCore/svg/SVGFitToViewBox.idl
index e250924..bb8f07a 100644
--- a/Source/WebCore/svg/SVGFitToViewBox.idl
+++ b/Source/WebCore/svg/SVGFitToViewBox.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
diff --git a/Source/WebCore/svg/SVGLangSpace.idl b/Source/WebCore/svg/SVGLangSpace.idl
index 0b61d80..98f6286 100644
--- a/Source/WebCore/svg/SVGLangSpace.idl
+++ b/Source/WebCore/svg/SVGLangSpace.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
diff --git a/Source/WebCore/svg/SVGLocatable.idl b/Source/WebCore/svg/SVGLocatable.idl
index 74df01a..d6ba604 100644
--- a/Source/WebCore/svg/SVGLocatable.idl
+++ b/Source/WebCore/svg/SVGLocatable.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
diff --git a/Source/WebCore/svg/SVGStyledElement.idl b/Source/WebCore/svg/SVGStyledElement.idl
index 44e61c8..f7f9490 100644
--- a/Source/WebCore/svg/SVGStyledElement.idl
+++ b/Source/WebCore/svg/SVGStyledElement.idl
@@ -26,6 +26,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG
 ] interface SVGStyledElement : SVGElement {
     readonly attribute SVGAnimatedString className;
diff --git a/Source/WebCore/svg/SVGTests.idl b/Source/WebCore/svg/SVGTests.idl
index c7f9ff0..7ddbe80 100644
--- a/Source/WebCore/svg/SVGTests.idl
+++ b/Source/WebCore/svg/SVGTests.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
diff --git a/Source/WebCore/svg/SVGTransformable.idl b/Source/WebCore/svg/SVGTransformable.idl
index 0dfff36..a5224a9 100644
--- a/Source/WebCore/svg/SVGTransformable.idl
+++ b/Source/WebCore/svg/SVGTransformable.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     OmitConstructor
diff --git a/Source/WebCore/svg/SVGURIReference.idl b/Source/WebCore/svg/SVGURIReference.idl
index a6311cd..982aef1 100644
--- a/Source/WebCore/svg/SVGURIReference.idl
+++ b/Source/WebCore/svg/SVGURIReference.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SVG,
     ObjCProtocol,
     SuppressToJSObject,
diff --git a/Source/WebCore/testing/InternalSettings.idl b/Source/WebCore/testing/InternalSettings.idl
index cc54849..c5c63e1 100644
--- a/Source/WebCore/testing/InternalSettings.idl
+++ b/Source/WebCore/testing/InternalSettings.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     JSGenerateToJSObject
 ] interface InternalSettings : InternalSettingsGenerated {
diff --git a/Source/WebCore/testing/Internals.idl b/Source/WebCore/testing/Internals.idl
index 664b7d2..837a861 100644
--- a/Source/WebCore/testing/Internals.idl
+++ b/Source/WebCore/testing/Internals.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor
 ] interface Internals {
     DOMString address(Node node);
diff --git a/Source/WebCore/testing/MallocStatistics.idl b/Source/WebCore/testing/MallocStatistics.idl
index 249e460..c03649d 100644
--- a/Source/WebCore/testing/MallocStatistics.idl
+++ b/Source/WebCore/testing/MallocStatistics.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface MallocStatistics {
diff --git a/Source/WebCore/testing/TypeConversions.idl b/Source/WebCore/testing/TypeConversions.idl
index b27b158..ab9a5bb 100644
--- a/Source/WebCore/testing/TypeConversions.idl
+++ b/Source/WebCore/testing/TypeConversions.idl
@@ -24,6 +24,7 @@
  */
 
 [
+    NoInterfaceObject,
     OmitConstructor,
     ImplementationLacksVTable
 ] interface TypeConversions {
diff --git a/Source/WebCore/workers/AbstractWorker.idl b/Source/WebCore/workers/AbstractWorker.idl
index 4bc7316..4836e30 100644
--- a/Source/WebCore/workers/AbstractWorker.idl
+++ b/Source/WebCore/workers/AbstractWorker.idl
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     ActiveDOMObject,
     CustomToJSObject,
diff --git a/Source/WebCore/workers/DedicatedWorkerContext.idl b/Source/WebCore/workers/DedicatedWorkerContext.idl
index 6fc7605..4d97a8d 100644
--- a/Source/WebCore/workers/DedicatedWorkerContext.idl
+++ b/Source/WebCore/workers/DedicatedWorkerContext.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     ExtendsDOMGlobalObject,
     IsWorkerContext,
diff --git a/Source/WebCore/workers/SharedWorker.idl b/Source/WebCore/workers/SharedWorker.idl
index 5e339b5..b786425 100644
--- a/Source/WebCore/workers/SharedWorker.idl
+++ b/Source/WebCore/workers/SharedWorker.idl
@@ -30,6 +30,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SHARED_WORKERS,
     CustomConstructor,
     Constructor(DOMString scriptURL, [Default=NullString] optional DOMString name),
diff --git a/Source/WebCore/workers/SharedWorkerContext.idl b/Source/WebCore/workers/SharedWorkerContext.idl
index 2d57ebb..4b8c948 100644
--- a/Source/WebCore/workers/SharedWorkerContext.idl
+++ b/Source/WebCore/workers/SharedWorkerContext.idl
@@ -29,6 +29,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=SHARED_WORKERS,
     ExtendsDOMGlobalObject,
     IsWorkerContext,
diff --git a/Source/WebCore/workers/WorkerContext.idl b/Source/WebCore/workers/WorkerContext.idl
index 3fafa0c..c9515cf 100644
--- a/Source/WebCore/workers/WorkerContext.idl
+++ b/Source/WebCore/workers/WorkerContext.idl
@@ -25,6 +25,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     JSCustomMarkFunction,
     JSCustomGetOwnPropertySlotAndDescriptor,
diff --git a/Source/WebCore/workers/WorkerLocation.idl b/Source/WebCore/workers/WorkerLocation.idl
index 9f032fb..58442d3 100644
--- a/Source/WebCore/workers/WorkerLocation.idl
+++ b/Source/WebCore/workers/WorkerLocation.idl
@@ -27,6 +27,7 @@
  */
 
 [
+    NoInterfaceObject,
     Conditional=WORKERS,
     GenerateIsReachable=Impl,
     JSNoStaticTables,
diff --git a/Source/WebCore/xml/XPathExpression.idl b/Source/WebCore/xml/XPathExpression.idl
index 9d4cd8a..019b4d0 100644
--- a/Source/WebCore/xml/XPathExpression.idl
+++ b/Source/WebCore/xml/XPathExpression.idl
@@ -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, 
diff --git a/Source/WebCore/xml/XPathNSResolver.idl b/Source/WebCore/xml/XPathNSResolver.idl
index ba0527a..1baa175 100644
--- a/Source/WebCore/xml/XPathNSResolver.idl
+++ b/Source/WebCore/xml/XPathNSResolver.idl
@@ -19,6 +19,7 @@
  */
 
 [
+    NoInterfaceObject,
     ObjCProtocol,
     OmitConstructor,
     SkipVTableValidation