1. 09 May, 2013 1 commit
    • ch.dumez@sisa.samsung.com's avatar
      Add support for [NoInterfaceObject] Web IDL extended attribute · 077c4e77
      ch.dumez@sisa.samsung.com authored
      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
      077c4e77
  2. 30 Apr, 2013 2 commits
    • ch.dumez@sisa.samsung.com's avatar
      Stop using "in" keyword in IDL files · b2986f1d
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=115418
      
      Reviewed by Kentaro Hara.
      
      Source/WebCore:
      
      Stop using "in" keyword in IDL files as this is no longer part of the
      Web IDL specification and it brings no additional information.
      
      For now, the IDL parser will still accept the "in" keyword for operation
      argument to not break anything. However, we should remove support for it
      later on.
      
      No new tests, no behavior change.
      
      * Modules/battery/BatteryManager.idl:
      * Modules/encryptedmedia/MediaKeySession.idl:
      * Modules/encryptedmedia/MediaKeys.idl:
      * Modules/filesystem/DOMWindowFileSystem.idl:
      * Modules/filesystem/DirectoryEntry.idl:
      * Modules/filesystem/DirectoryEntrySync.idl:
      * Modules/filesystem/DirectoryReader.idl:
      * Modules/filesystem/EntriesCallback.idl:
      * Modules/filesystem/Entry.idl:
      * Modules/filesystem/EntryArray.idl:
      * Modules/filesystem/EntryArraySync.idl:
      * Modules/filesystem/EntryCallback.idl:
      * Modules/filesystem/EntrySync.idl:
      * Modules/filesystem/ErrorCallback.idl:
      * Modules/filesystem/FileCallback.idl:
      * Modules/filesystem/FileEntry.idl:
      * Modules/filesystem/FileSystemCallback.idl:
      * Modules/filesystem/FileWriter.idl:
      * Modules/filesystem/FileWriterCallback.idl:
      * Modules/filesystem/FileWriterSync.idl:
      * Modules/filesystem/MetadataCallback.idl:
      * Modules/filesystem/WorkerContextFileSystem.idl:
      * Modules/gamepad/GamepadList.idl:
      * Modules/geolocation/Geolocation.idl:
      * Modules/geolocation/PositionCallback.idl:
      * Modules/geolocation/PositionErrorCallback.idl:
      * Modules/indexeddb/IDBCursor.idl:
      * Modules/indexeddb/IDBDatabase.idl:
      * Modules/indexeddb/IDBFactory.idl:
      * Modules/indexeddb/IDBIndex.idl:
      * Modules/indexeddb/IDBKeyRange.idl:
      * Modules/indexeddb/IDBObjectStore.idl:
      * Modules/indexeddb/IDBRequest.idl:
      * Modules/indexeddb/IDBTransaction.idl:
      * Modules/mediasource/MediaSource.idl:
      * Modules/mediasource/SourceBuffer.idl:
      * Modules/mediasource/SourceBufferList.idl:
      * Modules/mediastream/MediaStream.idl:
      * Modules/mediastream/MediaStreamTrack.idl:
      * Modules/mediastream/NavigatorMediaStream.idl:
      * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
      * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
      * Modules/mediastream/RTCDTMFSender.idl:
      * Modules/mediastream/RTCDataChannel.idl:
      * Modules/mediastream/RTCErrorCallback.idl:
      * Modules/mediastream/RTCIceCandidate.idl:
      * Modules/mediastream/RTCPeerConnection.idl:
      * Modules/mediastream/RTCSessionDescription.idl:
      * Modules/mediastream/RTCSessionDescriptionCallback.idl:
      * Modules/mediastream/RTCStatsCallback.idl:
      * Modules/mediastream/RTCStatsReport.idl:
      * Modules/mediastream/RTCStatsResponse.idl:
      * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
      * Modules/networkinfo/NetworkInfoConnection.idl:
      * Modules/notifications/Notification.idl:
      * Modules/notifications/NotificationCenter.idl:
      * Modules/notifications/NotificationPermissionCallback.idl:
      * Modules/quota/StorageErrorCallback.idl:
      * Modules/quota/StorageInfo.idl:
      * Modules/quota/StorageQuota.idl:
      * Modules/quota/StorageQuotaCallback.idl:
      * Modules/quota/StorageUsageCallback.idl:
      * Modules/speech/SpeechGrammarList.idl:
      * Modules/speech/SpeechRecognition.idl:
      * Modules/speech/SpeechRecognitionResult.idl:
      * Modules/speech/SpeechRecognitionResultList.idl:
      * Modules/speech/SpeechSynthesisUtterance.idl:
      * Modules/vibration/NavigatorVibration.idl:
      * Modules/webaudio/AnalyserNode.idl:
      * Modules/webaudio/AudioBuffer.idl:
      * Modules/webaudio/AudioBufferCallback.idl:
      * Modules/webaudio/AudioBufferSourceNode.idl:
      * Modules/webaudio/AudioContext.idl:
      * Modules/webaudio/AudioListener.idl:
      * Modules/webaudio/AudioNode.idl:
      * Modules/webaudio/AudioParam.idl:
      * Modules/webaudio/BiquadFilterNode.idl:
      * Modules/webaudio/OfflineAudioContext.idl:
      * Modules/webaudio/OscillatorNode.idl:
      * Modules/webaudio/PannerNode.idl:
      * Modules/webdatabase/DOMWindowWebDatabase.idl:
      * Modules/webdatabase/Database.idl:
      * Modules/webdatabase/DatabaseCallback.idl:
      * Modules/webdatabase/DatabaseSync.idl:
      * Modules/webdatabase/SQLResultSetRowList.idl:
      * Modules/webdatabase/SQLStatementCallback.idl:
      * Modules/webdatabase/SQLStatementErrorCallback.idl:
      * Modules/webdatabase/SQLTransaction.idl:
      * Modules/webdatabase/SQLTransactionCallback.idl:
      * Modules/webdatabase/SQLTransactionErrorCallback.idl:
      * Modules/webdatabase/SQLTransactionSync.idl:
      * Modules/webdatabase/SQLTransactionSyncCallback.idl:
      * Modules/webdatabase/WorkerContextWebDatabase.idl:
      * Modules/websockets/WebSocket.idl:
      * bindings/scripts/test/TestCallback.idl:
      * bindings/scripts/test/TestCustomNamedGetter.idl:
      * bindings/scripts/test/TestDomainSecurity.idl:
      * bindings/scripts/test/TestEventTarget.idl:
      * bindings/scripts/test/TestInterface.idl:
      * bindings/scripts/test/TestMediaQueryListListener.idl:
      * bindings/scripts/test/TestNamedConstructor.idl:
      * bindings/scripts/test/TestObj.idl:
      * bindings/scripts/test/TestOverloadedConstructors.idl:
      * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
      * bindings/scripts/test/TestSupplemental.idl:
      * bindings/scripts/test/TestTypedArray.idl:
      * bindings/scripts/test/TestTypedefs.idl:
      * css/CSSHostRule.idl:
      * css/CSSMediaRule.idl:
      * css/CSSPrimitiveValue.idl:
      * css/CSSRuleList.idl:
      * css/CSSStyleDeclaration.idl:
      * css/CSSStyleSheet.idl:
      * css/CSSSupportsRule.idl:
      * css/CSSValueList.idl:
      * css/FontLoader.idl:
      * css/MediaList.idl:
      * css/MediaQueryList.idl:
      * css/MediaQueryListListener.idl:
      * css/StyleMedia.idl:
      * css/StyleSheetList.idl:
      * css/WebKitCSSKeyframesRule.idl:
      * css/WebKitCSSMatrix.idl:
      * dom/CharacterData.idl:
      * dom/ClientRectList.idl:
      * dom/Clipboard.idl:
      * dom/CompositionEvent.idl:
      * dom/CustomEvent.idl:
      * dom/DOMImplementation.idl:
      * dom/DOMNamedFlowCollection.idl:
      * dom/DOMStringList.idl:
      * dom/DataTransferItem.idl:
      * dom/DataTransferItemList.idl:
      * dom/DeviceMotionEvent.idl:
      * dom/DeviceOrientationEvent.idl:
      * dom/Document.idl:
      * dom/DocumentFragment.idl:
      * dom/Element.idl:
      * dom/Event.idl:
      * dom/EventListener.idl:
      * dom/EventTarget.idl:
      * dom/HashChangeEvent.idl:
      * dom/KeyboardEvent.idl:
      * dom/MessageEvent.idl:
      * dom/MessagePort.idl:
      * dom/MouseEvent.idl:
      * dom/MutationEvent.idl:
      * dom/MutationObserver.idl:
      * dom/NamedNodeMap.idl:
      * dom/Node.idl:
      * dom/NodeFilter.idl:
      * dom/NodeList.idl:
      * dom/OverflowEvent.idl:
      * dom/PropertyNodeList.idl:
      * dom/Range.idl:
      * dom/RequestAnimationFrameCallback.idl:
      * dom/ShadowRoot.idl:
      * dom/StringCallback.idl:
      * dom/Text.idl:
      * dom/TextEvent.idl:
      * dom/TouchEvent.idl:
      * dom/TouchList.idl:
      * dom/UIEvent.idl:
      * dom/WebKitNamedFlow.idl:
      * dom/WheelEvent.idl:
      * fileapi/Blob.idl:
      * fileapi/FileList.idl:
      * fileapi/FileReader.idl:
      * fileapi/FileReaderSync.idl:
      * html/DOMFormData.idl:
      * html/DOMTokenList.idl:
      * html/DOMURL.idl:
      * html/HTMLAllCollection.idl:
      * html/HTMLAudioElement.idl:
      * html/HTMLButtonElement.idl:
      * html/HTMLCanvasElement.idl:
      * html/HTMLCollection.idl:
      * html/HTMLDocument.idl:
      * html/HTMLElement.idl:
      * html/HTMLFieldSetElement.idl:
      * html/HTMLFormControlsCollection.idl:
      * html/HTMLInputElement.idl:
      * html/HTMLKeygenElement.idl:
      * html/HTMLMediaElement.idl:
      * html/HTMLObjectElement.idl:
      * html/HTMLOptionElement.idl:
      * html/HTMLOptionsCollection.idl:
      * html/HTMLOutputElement.idl:
      * html/HTMLPropertiesCollection.idl:
      * html/HTMLSelectElement.idl:
      * html/HTMLTableElement.idl:
      * html/HTMLTableRowElement.idl:
      * html/HTMLTableSectionElement.idl:
      * html/HTMLTextAreaElement.idl:
      * html/MediaController.idl:
      * html/TimeRanges.idl:
      * html/canvas/ArrayBuffer.idl:
      * html/canvas/CanvasGradient.idl:
      * html/canvas/CanvasRenderingContext2D.idl:
      * html/canvas/DOMPath.idl:
      * html/canvas/DataView.idl:
      * html/canvas/EXTDrawBuffers.idl:
      * html/canvas/Float32Array.idl:
      * html/canvas/Float64Array.idl:
      * html/canvas/Int16Array.idl:
      * html/canvas/Int32Array.idl:
      * html/canvas/Int8Array.idl:
      * html/canvas/OESVertexArrayObject.idl:
      * html/canvas/Uint16Array.idl:
      * html/canvas/Uint32Array.idl:
      * html/canvas/Uint8Array.idl:
      * html/canvas/Uint8ClampedArray.idl:
      * html/canvas/WebGLDebugShaders.idl:
      * html/canvas/WebGLRenderingContext.idl:
      * html/track/AudioTrackList.idl:
      * html/track/TextTrack.idl:
      * html/track/TextTrackCue.idl:
      * html/track/TextTrackCueList.idl:
      * html/track/TextTrackList.idl:
      * html/track/TextTrackRegionList.idl:
      * html/track/VideoTrackList.idl:
      * inspector/InjectedScriptHost.idl:
      * inspector/InspectorFrontendHost.idl:
      * inspector/JavaScriptCallFrame.idl:
      * loader/appcache/DOMApplicationCache.idl:
      * page/Console.idl:
      * page/Crypto.idl:
      * page/DOMSecurityPolicy.idl:
      * page/DOMSelection.idl:
      * page/DOMWindow.idl:
      * page/EventSource.idl:
      * page/History.idl:
      * page/Location.idl:
      * page/PagePopupController.idl:
      * page/Performance.idl:
      * page/PerformanceEntryList.idl:
      * page/SpeechInputResultList.idl:
      * plugins/DOMMimeTypeArray.idl:
      * plugins/DOMPlugin.idl:
      * plugins/DOMPluginArray.idl:
      * storage/Storage.idl:
      * storage/StorageEvent.idl:
      * svg/ElementTimeControl.idl:
      * svg/SVGAngle.idl:
      * svg/SVGColor.idl:
      * svg/SVGDocument.idl:
      * svg/SVGElementInstanceList.idl:
      * svg/SVGFEDropShadowElement.idl:
      * svg/SVGFEGaussianBlurElement.idl:
      * svg/SVGFEMorphologyElement.idl:
      * svg/SVGFilterElement.idl:
      * svg/SVGLength.idl:
      * svg/SVGLengthList.idl:
      * svg/SVGLocatable.idl:
      * svg/SVGMarkerElement.idl:
      * svg/SVGMatrix.idl:
      * svg/SVGNumberList.idl:
      * svg/SVGPaint.idl:
      * svg/SVGPathElement.idl:
      * svg/SVGPathSegList.idl:
      * svg/SVGPoint.idl:
      * svg/SVGPointList.idl:
      * svg/SVGSVGElement.idl:
      * svg/SVGStringList.idl:
      * svg/SVGStyledElement.idl:
      * svg/SVGTests.idl:
      * svg/SVGTextContentElement.idl:
      * svg/SVGTransform.idl:
      * svg/SVGTransformList.idl:
      * testing/InternalSettings.idl:
      * testing/Internals.idl:
      * workers/AbstractWorker.idl:
      * workers/DedicatedWorkerContext.idl:
      * workers/SharedWorker.idl:
      * workers/Worker.idl:
      * workers/WorkerContext.idl:
      * xml/DOMParser.idl:
      * xml/XMLHttpRequest.idl:
      * xml/XMLHttpRequestUpload.idl:
      * xml/XMLSerializer.idl:
      * xml/XPathEvaluator.idl:
      * xml/XPathExpression.idl:
      * xml/XPathNSResolver.idl:
      * xml/XPathResult.idl:
      * xml/XSLTProcessor.idl:
      
      Source/WebKit/win:
      
      Remove "in" keyword from IDL files as this is no longer part of the Web
      IDL specification.
      
      * Interfaces/DOMEvents.idl:
      * Interfaces/DOMPrivate.idl:
      * Interfaces/DOMWindow.idl:
      
      Tools:
      
      Remove "in" keyword from IDL files as this is no longer part of the Web
      IDL specification.
      
      * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
      * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarker.idl:
      * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarkerRange.idl:
      * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
      * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
      * WebKitTestRunner/InjectedBundle/Bindings/GCController.idl:
      * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
      * WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b2986f1d
    • ch.dumez@sisa.samsung.com's avatar
      Replace "Optional" extended attribute by proper Web IDL "optional" keyword · 3463b187
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=115380
      
      Reviewed by Kentaro Hara.
      
      Source/WebCore:
      
      Replace [Optional] with standard WebIDL optional type prefix:
      http://dev.w3.org/2006/webapi/WebIDL/#dfn-optional-argument
      
      The default behavior now matches WebIDL: [Optional] => optional
      
      Two cases where WebKit has extended bindings behavior still
      require a non-standard IDL attribute:
      [Optional=DefaultIsNullString] => [Default=NullString] optional
      [Optional=DefaultIsUndefined] => [Default=Undefined] optional
      
      Based on corresponding Blink patch from Joshua Bell for compatibility.
      
      No new tests, no behavior change.
      
      * Modules/battery/BatteryManager.idl:
      * Modules/encryptedmedia/MediaKeySession.idl:
      * Modules/encryptedmedia/MediaKeys.idl:
      * Modules/filesystem/DOMWindowFileSystem.idl:
      * Modules/filesystem/DirectoryEntry.idl:
      * Modules/filesystem/DirectoryReader.idl:
      * Modules/filesystem/Entry.idl:
      * Modules/filesystem/FileEntry.idl:
      * Modules/filesystem/FileWriter.idl:
      * Modules/filesystem/WorkerContextFileSystem.idl:
      * Modules/gamepad/GamepadList.idl:
      * Modules/geolocation/Geolocation.idl:
      * Modules/indexeddb/IDBCursor.idl:
      * Modules/indexeddb/IDBDatabase.idl:
      * Modules/indexeddb/IDBFactory.idl:
      * Modules/indexeddb/IDBIndex.idl:
      * Modules/indexeddb/IDBKeyRange.idl:
      * Modules/indexeddb/IDBObjectStore.idl:
      * Modules/indexeddb/IDBRequest.idl:
      * Modules/indexeddb/IDBTransaction.idl:
      * Modules/mediasource/MediaSource.idl:
      * Modules/mediasource/SourceBufferList.idl:
      * Modules/mediastream/MediaStream.idl:
      * Modules/mediastream/MediaStreamTrack.idl:
      * Modules/mediastream/NavigatorMediaStream.idl:
      * Modules/mediastream/RTCDTMFSender.idl:
      * Modules/mediastream/RTCDataChannel.idl:
      * Modules/mediastream/RTCPeerConnection.idl:
      * Modules/mediastream/RTCStatsResponse.idl:
      * Modules/networkinfo/NetworkInfoConnection.idl:
      * Modules/notifications/Notification.idl:
      * Modules/notifications/NotificationCenter.idl:
      * Modules/quota/StorageInfo.idl:
      * Modules/quota/StorageQuota.idl:
      * Modules/speech/SpeechGrammarList.idl:
      * Modules/speech/SpeechRecognition.idl:
      * Modules/speech/SpeechSynthesisUtterance.idl:
      * Modules/webaudio/AudioContext.idl:
      * Modules/webaudio/AudioNode.idl:
      * Modules/webdatabase/DOMWindowWebDatabase.idl:
      * Modules/webdatabase/Database.idl:
      * Modules/webdatabase/DatabaseSync.idl:
      * Modules/webdatabase/SQLTransaction.idl:
      * Modules/webdatabase/WorkerContextWebDatabase.idl:
      * Modules/websockets/WebSocket.idl:
      * bindings/scripts/CodeGeneratorJS.pm:
      (GetFunctionLength):
      (GenerateFunctionParametersCheck):
      (GenerateArgumentsCountCheck):
      (GenerateParametersCheck):
      (GenerateConstructorDefinition):
      * bindings/scripts/IDLAttributes.txt:
      * bindings/scripts/IDLParser.pm:
      (parseOptionalOrRequiredArgument):
      * bindings/scripts/test/TestEventTarget.idl:
      * bindings/scripts/test/TestInterface.idl:
      * bindings/scripts/test/TestNamedConstructor.idl:
      * bindings/scripts/test/TestObj.idl:
      * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
      * bindings/scripts/test/TestTypedefs.idl: optional cannot be used in a typedef.
      * css/CSSHostRule.idl:
      * css/CSSMediaRule.idl:
      * css/CSSPrimitiveValue.idl:
      * css/CSSRuleList.idl:
      * css/CSSStyleDeclaration.idl:
      * css/CSSStyleSheet.idl:
      * css/CSSSupportsRule.idl:
      * css/CSSValueList.idl:
      * css/FontLoader.idl:
      * css/MediaList.idl:
      * css/MediaQueryList.idl:
      * css/MediaQueryListListener.idl:
      * css/StyleMedia.idl:
      * css/StyleSheetList.idl:
      * css/WebKitCSSKeyframesRule.idl:
      * css/WebKitCSSMatrix.idl:
      * dom/CharacterData.idl:
      * dom/ClientRectList.idl:
      * dom/Clipboard.idl:
      * dom/CompositionEvent.idl:
      * dom/CustomEvent.idl:
      * dom/DOMImplementation.idl:
      * dom/DOMStringList.idl:
      * dom/DataTransferItem.idl:
      * dom/DataTransferItemList.idl:
      * dom/DeviceMotionEvent.idl:
      * dom/DeviceOrientationEvent.idl:
      * dom/Document.idl:
      * dom/Element.idl:
      * dom/Event.idl:
      * dom/EventTarget.idl:
      * dom/HashChangeEvent.idl:
      * dom/KeyboardEvent.idl:
      * dom/MessageEvent.idl:
      * dom/MessagePort.idl:
      * dom/MouseEvent.idl:
      * dom/MutationEvent.idl:
      * dom/NamedNodeMap.idl:
      * dom/Node.idl:
      * dom/NodeFilter.idl:
      * dom/NodeList.idl:
      * dom/OverflowEvent.idl:
      * dom/Range.idl:
      * dom/ShadowRoot.idl:
      * dom/Text.idl:
      * dom/TextEvent.idl:
      * dom/TouchEvent.idl:
      * dom/UIEvent.idl:
      * dom/WebKitNamedFlow.idl:
      * dom/WheelEvent.idl:
      * fileapi/Blob.idl:
      * fileapi/FileReader.idl:
      * fileapi/FileReaderSync.idl:
      * html/DOMFormData.idl:
      * html/DOMTokenList.idl:
      * html/HTMLAllCollection.idl:
      * html/HTMLAudioElement.idl:
      * html/HTMLCanvasElement.idl:
      * html/HTMLCollection.idl:
      * html/HTMLDocument.idl:
      * html/HTMLElement.idl:
      * html/HTMLFormControlsCollection.idl:
      * html/HTMLInputElement.idl:
      * html/HTMLMediaElement.idl:
      * html/HTMLOptionElement.idl:
      * html/HTMLOptionsCollection.idl:
      * html/HTMLSelectElement.idl:
      * html/HTMLTableElement.idl:
      * html/HTMLTableRowElement.idl:
      * html/HTMLTableSectionElement.idl:
      * html/HTMLTextAreaElement.idl:
      * html/MediaController.idl:
      * html/canvas/ArrayBuffer.idl:
      * html/canvas/CanvasGradient.idl:
      * html/canvas/CanvasRenderingContext2D.idl:
      * html/canvas/DOMPath.idl:
      * html/canvas/DataView.idl:
      * html/canvas/Float32Array.idl:
      * html/canvas/Float64Array.idl:
      * html/canvas/Int16Array.idl:
      * html/canvas/Int32Array.idl:
      * html/canvas/Int8Array.idl:
      * html/canvas/OESVertexArrayObject.idl:
      * html/canvas/Uint16Array.idl:
      * html/canvas/Uint32Array.idl:
      * html/canvas/Uint8Array.idl:
      * html/canvas/Uint8ClampedArray.idl:
      * html/track/AudioTrackList.idl:
      * html/track/TextTrack.idl:
      * html/track/TextTrackCue.idl:
      * html/track/TextTrackList.idl:
      * html/track/VideoTrackList.idl:
      * loader/appcache/DOMApplicationCache.idl:
      * page/DOMSelection.idl:
      * page/DOMWindow.idl:
      * page/EventSource.idl:
      * page/History.idl:
      * page/Location.idl:
      * page/Performance.idl:
      * plugins/DOMMimeTypeArray.idl:
      * plugins/DOMPlugin.idl:
      * plugins/DOMPluginArray.idl:
      * storage/StorageEvent.idl:
      * svg/ElementTimeControl.idl:
      * svg/SVGDocument.idl:
      * svg/SVGElementInstanceList.idl:
      * svg/SVGFEDropShadowElement.idl:
      * svg/SVGFEGaussianBlurElement.idl:
      * svg/SVGFEMorphologyElement.idl:
      * svg/SVGFilterElement.idl:
      * svg/SVGLocatable.idl:
      * svg/SVGMarkerElement.idl:
      * svg/SVGPathElement.idl:
      * svg/SVGSVGElement.idl:
      * svg/SVGStyledElement.idl:
      * svg/SVGTests.idl:
      * svg/SVGTextContentElement.idl:
      * testing/Internals.idl:
      * workers/AbstractWorker.idl:
      * workers/DedicatedWorkerContext.idl:
      * workers/SharedWorker.idl:
      * workers/Worker.idl:
      * workers/WorkerContext.idl:
      * xml/DOMParser.idl:
      * xml/XMLHttpRequest.idl:
      * xml/XMLHttpRequestUpload.idl:
      * xml/XMLSerializer.idl:
      * xml/XPathEvaluator.idl:
      * xml/XPathExpression.idl:
      * xml/XPathNSResolver.idl:
      * xml/XPathResult.idl:
      * xml/XSLTProcessor.idl:
      
      Source/WebKit/win:
      
      Replace [Optional] by optional.
      
      * Interfaces/DOMWindow.idl:
      
      Tools:
      
      Replace WebKit-specific [Optional] extended attribute by Web IDL "optional"
      keyword.
      
      * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
      * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3463b187
  3. 06 Feb, 2013 1 commit
    • tommyw@google.com's avatar
      MediaStream API: Implement DTMF support in RTCPeerConnection · 3dbbd139
      tommyw@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=106782
      
      Reviewed by Adam Barth.
      
      Source/Platform:
      
      The WebRTC specification have added support for DTMF:
      http://dev.w3.org/2011/webrtc/editor/webrtc.html#peer-to-peer-dtmf
      
      Implementation wise this is implemented using the same pattern as RTCDataChannel;
      where a RTCDTMFSenderHandler is created by the UA through a new method on
      RTCPeerConnectionHandler.
      
      * Platform.gypi:
      * chromium/public/WebMediaStreamTrack.h:
      (WebMediaStreamTrack):
      * chromium/public/WebRTCDTMFSenderHandler.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
      (WebKit):
      (WebRTCDTMFSenderHandler):
      (WebKit::WebRTCDTMFSenderHandler::~WebRTCDTMFSenderHandler):
      * chromium/public/WebRTCDTMFSenderHandlerClient.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
      (WebKit):
      (WebRTCDTMFSenderHandlerClient):
      (WebKit::WebRTCDTMFSenderHandlerClient::~WebRTCDTMFSenderHandlerClient):
      * chromium/public/WebRTCPeerConnectionHandler.h:
      (WebKit):
      (WebKit::WebRTCPeerConnectionHandler::createDTMFSender):
      
      Source/WebCore:
      
      The WebRTC specification have added support for DTMF:
      http://dev.w3.org/2011/webrtc/editor/webrtc.html#peer-to-peer-dtmf
      
      Implementation wise this is implemented using the same pattern as RTCDataChannel;
      where a RTCDTMFSenderHandler is created by the UA through a new method on
      RTCPeerConnectionHandler.
      
      Test: fast/mediastream/RTCPeerConnection-dtmf.html
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Modules/mediastream/RTCDTMFSender.cpp: Added.
      (WebCore):
      (WebCore::RTCDTMFSender::create):
      (WebCore::RTCDTMFSender::RTCDTMFSender):
      (WebCore::RTCDTMFSender::~RTCDTMFSender):
      (WebCore::RTCDTMFSender::canInsertDTMF):
      (WebCore::RTCDTMFSender::track):
      (WebCore::RTCDTMFSender::toneBuffer):
      (WebCore::RTCDTMFSender::insertDTMF):
      (WebCore::RTCDTMFSender::didPlayTone):
      (WebCore::RTCDTMFSender::interfaceName):
      (WebCore::RTCDTMFSender::scriptExecutionContext):
      (WebCore::RTCDTMFSender::stop):
      (WebCore::RTCDTMFSender::eventTargetData):
      (WebCore::RTCDTMFSender::ensureEventTargetData):
      (WebCore::RTCDTMFSender::scheduleDispatchEvent):
      (WebCore::RTCDTMFSender::scheduledEventTimerFired):
      * Modules/mediastream/RTCDTMFSender.h: Added.
      (WebCore):
      (RTCDTMFSender):
      (WebCore::RTCDTMFSender::duration):
      (WebCore::RTCDTMFSender::interToneGap):
      * Modules/mediastream/RTCDTMFSender.idl: Added.
      * Modules/mediastream/RTCDTMFToneChangeEvent.cpp: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
      (WebCore):
      (WebCore::RTCDTMFToneChangeEvent::create):
      (WebCore::RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent):
      (WebCore::RTCDTMFToneChangeEvent::~RTCDTMFToneChangeEvent):
      (WebCore::RTCDTMFToneChangeEvent::tone):
      (WebCore::RTCDTMFToneChangeEvent::interfaceName):
      * Modules/mediastream/RTCDTMFToneChangeEvent.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
      (WebCore):
      (RTCDTMFToneChangeEventInit):
      (RTCDTMFToneChangeEvent):
      * Modules/mediastream/RTCDTMFToneChangeEvent.idl: Added.
      * Modules/mediastream/RTCPeerConnection.cpp:
      (WebCore::RTCPeerConnection::createDataChannel):
      (WebCore):
      (WebCore::RTCPeerConnection::getStreamByTrackId):
      (WebCore::RTCPeerConnection::createDTMFSender):
      * Modules/mediastream/RTCPeerConnection.h:
      (WebCore):
      (RTCPeerConnection):
      * Modules/mediastream/RTCPeerConnection.idl:
      * WebCore.gypi:
      * dom/EventNames.h:
      (WebCore):
      * dom/EventNames.in:
      * dom/EventTargetFactory.in:
      * platform/chromium/support/WebMediaStreamTrack.cpp:
      (WebKit::WebMediaStreamTrack::WebMediaStreamTrack):
      (WebKit):
      * platform/mediastream/RTCDTMFSenderHandler.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
      (WebCore):
      (RTCDTMFSenderHandler):
      (WebCore::RTCDTMFSenderHandler::~RTCDTMFSenderHandler):
      * platform/mediastream/RTCDTMFSenderHandlerClient.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
      (WebCore):
      (RTCDTMFSenderHandlerClient):
      (WebCore::RTCDTMFSenderHandlerClient::~RTCDTMFSenderHandlerClient):
      * platform/mediastream/RTCPeerConnectionHandler.h:
      (WebCore):
      (RTCPeerConnectionHandler):
      * platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.cpp: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
      (WebCore):
      (WebCore::RTCDTMFSenderHandlerChromium::create):
      (WebCore::RTCDTMFSenderHandlerChromium::RTCDTMFSenderHandlerChromium):
      (WebCore::RTCDTMFSenderHandlerChromium::~RTCDTMFSenderHandlerChromium):
      (WebCore::RTCDTMFSenderHandlerChromium::setClient):
      (WebCore::RTCDTMFSenderHandlerChromium::currentToneBuffer):
      (WebCore::RTCDTMFSenderHandlerChromium::canInsertDTMF):
      (WebCore::RTCDTMFSenderHandlerChromium::insertDTMF):
      (WebCore::RTCDTMFSenderHandlerChromium::didPlayTone):
      * platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
      (WebCore):
      (RTCDTMFSenderHandlerChromium):
      * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
      (WebCore::RTCPeerConnectionHandlerChromium::createDTMFSender):
      (WebCore):
      * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
      (RTCPeerConnectionHandlerChromium):
      
      Tools:
      
      Adding Mock functionality for the DTMFSender.
      
      * DumpRenderTree/DumpRenderTree.gypi:
      * DumpRenderTree/chromium/MockWebRTCDTMFSenderHandler.cpp: Added.
      (DTMFSenderToneTask):
      (DTMFSenderToneTask::DTMFSenderToneTask):
      (MockWebRTCDTMFSenderHandler::MockWebRTCDTMFSenderHandler):
      (MockWebRTCDTMFSenderHandler::setClient):
      (MockWebRTCDTMFSenderHandler::currentToneBuffer):
      (MockWebRTCDTMFSenderHandler::canInsertDTMF):
      (MockWebRTCDTMFSenderHandler::insertDTMF):
      * DumpRenderTree/chromium/MockWebRTCDTMFSenderHandler.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
      (MockWebRTCDTMFSenderHandler):
      (MockWebRTCDTMFSenderHandler::taskList):
      (MockWebRTCDTMFSenderHandler::clearToneBuffer):
      * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp:
      (MockWebRTCPeerConnectionHandler::createDTMFSender):
      * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h:
      (MockWebRTCPeerConnectionHandler):
      
      LayoutTests:
      
      * fast/mediastream/RTCPeerConnection-dtmf-expected.txt: Added.
      * fast/mediastream/RTCPeerConnection-dtmf.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141984 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3dbbd139