Skip to content
  • 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