https://bugs.webkit.org/show_bug.cgi?id=122280
Reviewed by Darin Adler.
Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
doesn't have any effect, but will keep the operations not configurable after the generator is modified
to preserve the original behavior. The attribute will be removed from each interface after checking
conformity with other browsers (in terms of configurability of operations of that interface) and the
WebKit's existing test suites.
This patch covers IDL interfaces under Source/WebCore/html/.
* html/DOMFormData.idl:
* html/DOMSettableTokenList.idl:
* html/DOMTokenList.idl:
* html/DOMURL.idl:
* html/HTMLAllCollection.idl:
* html/HTMLAnchorElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLCollection.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLFormControlsCollection.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLKeygenElement.idl:
* html/HTMLMarqueeElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptionsCollection.idl:
* html/HTMLOutputElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLTableElement.idl:
* html/HTMLTableRowElement.idl:
* html/HTMLTableSectionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLVideoElement.idl:
* html/MediaController.idl:
* html/RadioNodeList.idl:
* html/TimeRanges.idl:
* html/canvas/CanvasGradient.idl:
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/DOMPath.idl:
* html/canvas/EXTDrawBuffers.idl:
* html/canvas/OESVertexArrayObject.idl:
* html/canvas/WebGLDebugShaders.idl:
* html/canvas/WebGLLoseContext.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:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156999
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
2013-10-06 Zan Dobersek <zdobersek@igalia.com>
+ [WebIDL] Annotate IDL interfaces under Source/WebCore/html/ with the OperationsNotDeletable attribute
+ https://bugs.webkit.org/show_bug.cgi?id=122280
+
+ Reviewed by Darin Adler.
+
+ Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
+ interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
+ doesn't have any effect, but will keep the operations not configurable after the generator is modified
+ to preserve the original behavior. The attribute will be removed from each interface after checking
+ conformity with other browsers (in terms of configurability of operations of that interface) and the
+ WebKit's existing test suites.
+
+ This patch covers IDL interfaces under Source/WebCore/html/.
+
+ * html/DOMFormData.idl:
+ * html/DOMSettableTokenList.idl:
+ * html/DOMTokenList.idl:
+ * html/DOMURL.idl:
+ * html/HTMLAllCollection.idl:
+ * html/HTMLAnchorElement.idl:
+ * html/HTMLButtonElement.idl:
+ * html/HTMLCanvasElement.idl:
+ * html/HTMLCollection.idl:
+ * html/HTMLDocument.idl:
+ * html/HTMLElement.idl:
+ * html/HTMLEmbedElement.idl:
+ * html/HTMLFieldSetElement.idl:
+ * html/HTMLFormControlsCollection.idl:
+ * html/HTMLFormElement.idl:
+ * html/HTMLFrameElement.idl:
+ * html/HTMLIFrameElement.idl:
+ * html/HTMLInputElement.idl:
+ * html/HTMLKeygenElement.idl:
+ * html/HTMLMarqueeElement.idl:
+ * html/HTMLMediaElement.idl:
+ * html/HTMLObjectElement.idl:
+ * html/HTMLOptionsCollection.idl:
+ * html/HTMLOutputElement.idl:
+ * html/HTMLSelectElement.idl:
+ * html/HTMLTableElement.idl:
+ * html/HTMLTableRowElement.idl:
+ * html/HTMLTableSectionElement.idl:
+ * html/HTMLTextAreaElement.idl:
+ * html/HTMLVideoElement.idl:
+ * html/MediaController.idl:
+ * html/RadioNodeList.idl:
+ * html/TimeRanges.idl:
+ * html/canvas/CanvasGradient.idl:
+ * html/canvas/CanvasRenderingContext2D.idl:
+ * html/canvas/DOMPath.idl:
+ * html/canvas/EXTDrawBuffers.idl:
+ * html/canvas/OESVertexArrayObject.idl:
+ * html/canvas/WebGLDebugShaders.idl:
+ * html/canvas/WebGLLoseContext.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:
+
+2013-10-06 Zan Dobersek <zdobersek@igalia.com>
+
[WebIIDL] Annotate IDL interfaces under Source/WebCore/svg/ with the OperationsNotDeletable attribute
https://bugs.webkit.org/show_bug.cgi?id=122279
JSGenerateToNativeObject,
JSGenerateToJSObject,
InterfaceName=FormData,
- ImplementationLacksVTable
+ ImplementationLacksVTable,
+ OperationsNotDeletable
] interface DOMFormData {
// void append(DOMString name, DOMString value);
// void append(DOMString name, Blob value, optional DOMString filename);
[
JSGenerateToJSObject,
SkipVTableValidation,
+ OperationsNotDeletable
] interface DOMSettableTokenList : DOMTokenList {
attribute DOMString value;
[
GenerateIsReachable=ImplElementRoot,
- SkipVTableValidation
+ SkipVTableValidation,
+ OperationsNotDeletable
] interface DOMTokenList {
readonly attribute unsigned long length;
[TreatReturnedNullStringAs=Null] getter DOMString item(unsigned long index);
JSGenerateToJSObject,
JSNoStaticTables,
InterfaceName=URL,
- ImplementationLacksVTable
+ ImplementationLacksVTable,
+ OperationsNotDeletable
] interface DOMURL {
[CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(Blob? blob);
[CallWith=ScriptExecutionContext] static void revokeObjectURL(DOMString url);
CustomCall,
MasqueradesAsUndefined,
GenerateIsReachable=ImplOwnerNodeRoot,
+ OperationsNotDeletable
] interface HTMLAllCollection {
readonly attribute unsigned long length;
[Custom] getter Node item([Default=Undefined] optional unsigned long index);
* Boston, MA 02110-1301, USA.
*/
-interface HTMLAnchorElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLAnchorElement : HTMLElement {
[Reflect] attribute DOMString charset;
[Reflect] attribute DOMString coords;
[Conditional=DOWNLOAD_ATTRIBUTE, Reflect] attribute DOMString download;
* Boston, MA 02110-1301, USA.
*/
-interface HTMLButtonElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLButtonElement : HTMLElement {
[Reflect] attribute boolean autofocus;
[Reflect] attribute boolean disabled;
readonly attribute HTMLFormElement form;
*/
[
- JSGenerateToNativeObject
+ JSGenerateToNativeObject,
+ OperationsNotDeletable
] interface HTMLCanvasElement : HTMLElement {
attribute long width;
CustomToJSObject,
GenerateIsReachable=ImplOwnerNodeRoot,
ObjCPolymorphic,
+ OperationsNotDeletable
] interface HTMLCollection {
readonly attribute unsigned long length;
getter Node item([Default=Undefined] optional unsigned long index);
[
CustomNamedGetter,
+ OperationsNotDeletable
] interface HTMLDocument : Document {
[Custom] void open();
void close();
[
JSGenerateToNativeObject,
JSCustomPushEventHandlerScope,
+ OperationsNotDeletable
] interface HTMLElement : Element {
#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
// FIXME: id should be moved to Element for ObjC as well.
CustomNamedSetter,
JSCustomGetOwnPropertySlotAndDescriptor,
CustomCall,
+ OperationsNotDeletable
] interface HTMLEmbedElement : HTMLElement {
[Reflect] attribute DOMString align;
#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
* Boston, MA 02110-1301, USA.
*/
-interface HTMLFieldSetElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLFieldSetElement : HTMLElement {
[Reflect] attribute boolean disabled;
readonly attribute HTMLFormElement form;
[Reflect] attribute DOMString name;
[
GenerateIsReachable=ImplOwnerNodeRoot,
+ OperationsNotDeletable
] interface HTMLFormControlsCollection : HTMLCollection {
getter Node ([Default=Undefined] optional unsigned long index);
[Custom] getter Node namedItem([Default=Undefined] optional DOMString name);
*/
[
- CustomNamedGetter
+ CustomNamedGetter,
+ OperationsNotDeletable
] interface HTMLFormElement : HTMLElement {
[Reflect=accept_charset] attribute DOMString acceptCharset;
[Reflect, URL] attribute DOMString action;
* Boston, MA 02110-1301, USA.
*/
-interface HTMLFrameElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLFrameElement : HTMLElement {
[Reflect] attribute DOMString frameBorder;
[Reflect] attribute DOMString longDesc;
* Boston, MA 02110-1301, USA.
*/
-interface HTMLIFrameElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLIFrameElement : HTMLElement {
[Reflect] attribute DOMString align;
[Reflect] attribute DOMString frameBorder;
[Reflect] attribute DOMString height;
* Boston, MA 02110-1301, USA.
*/
-interface HTMLInputElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLInputElement : HTMLElement {
[Reflect] attribute DOMString accept;
[Reflect] attribute DOMString alt;
[Reflect] attribute DOMString autocomplete;
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-interface HTMLKeygenElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLKeygenElement : HTMLElement {
[Reflect] attribute boolean autofocus;
[Reflect] attribute DOMString challenge;
[Reflect] attribute boolean disabled;
* Boston, MA 02110-1301, USA.
*/
-interface HTMLMarqueeElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLMarqueeElement : HTMLElement {
void start();
void stop();
[
Conditional=VIDEO,
JSGenerateToNativeObject,
- ActiveDOMObject
+ ActiveDOMObject,
+ OperationsNotDeletable
] interface HTMLMediaElement : HTMLElement {
// error state
[
CustomNamedSetter,
JSCustomGetOwnPropertySlotAndDescriptor,
- CustomCall
+ CustomCall,
+ OperationsNotDeletable
] interface HTMLObjectElement : HTMLElement {
readonly attribute HTMLFormElement form;
[Reflect] attribute DOMString code;
JSGenerateToNativeObject,
CustomIndexedSetter,
GenerateIsReachable=ImplOwnerNodeRoot,
+ OperationsNotDeletable
] interface HTMLOptionsCollection : HTMLCollection {
attribute long selectedIndex;
[CustomSetter, SetterRaisesException] attribute unsigned long length;
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-interface HTMLOutputElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLOutputElement : HTMLElement {
readonly attribute DOMSettableTokenList htmlFor;
readonly attribute HTMLFormElement form;
[Reflect] attribute DOMString name;
[
CustomIndexedSetter,
+ OperationsNotDeletable
] interface HTMLSelectElement : HTMLElement {
[Reflect] attribute boolean autofocus;
[Reflect] attribute boolean disabled;
* Boston, MA 02110-1301, USA.
*/
-interface HTMLTableElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLTableElement : HTMLElement {
[SetterRaisesException] attribute HTMLTableCaptionElement caption;
[SetterRaisesException] attribute HTMLTableSectionElement tHead;
[SetterRaisesException] attribute HTMLTableSectionElement tFoot;
* Boston, MA 02110-1301, USA.
*/
-interface HTMLTableRowElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLTableRowElement : HTMLElement {
readonly attribute long rowIndex;
readonly attribute long sectionRowIndex;
readonly attribute HTMLCollection cells;
*/
[
- JSGenerateToNativeObject
+ JSGenerateToNativeObject,
+ OperationsNotDeletable
] interface HTMLTableSectionElement : HTMLElement {
[Reflect] attribute DOMString align;
[Reflect=char] attribute DOMString ch;
* Boston, MA 02110-1301, USA.
*/
-interface HTMLTextAreaElement : HTMLElement {
+[
+ OperationsNotDeletable
+] interface HTMLTextAreaElement : HTMLElement {
[Reflect] attribute boolean autofocus;
attribute long cols;
[Reflect] attribute DOMString dirName;
[
Conditional=VIDEO,
- JSGenerateToNativeObject
+ JSGenerateToNativeObject,
+ OperationsNotDeletable
] interface HTMLVideoElement : HTMLMediaElement {
[Reflect] attribute unsigned long width;
[Reflect] attribute unsigned long height;
Constructor,
ConstructorCallWith=ScriptExecutionContext,
JSGenerateToJSObject,
- EventTarget
+ EventTarget,
+ OperationsNotDeletable
] interface MediaController {
readonly attribute TimeRanges buffered;
readonly attribute TimeRanges seekable;
[
NoInterfaceObject,
JSGenerateToJSObject,
+ OperationsNotDeletable
] interface RadioNodeList : NodeList {
attribute DOMString value;
[
Conditional=VIDEO,
- ImplementationLacksVTable
+ ImplementationLacksVTable,
+ OperationsNotDeletable
] interface TimeRanges {
readonly attribute unsigned long length;
[RaisesException] double start(unsigned long index);
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
[
- ImplementationLacksVTable
+ ImplementationLacksVTable,
+ OperationsNotDeletable
] interface CanvasGradient {
[RaisesException] void addColorStop([Default=Undefined] optional float offset,
enum CanvasWindingRule { "nonzero", "evenodd" };
-interface CanvasRenderingContext2D : CanvasRenderingContext {
+[
+ OperationsNotDeletable
+] interface CanvasRenderingContext2D : CanvasRenderingContext {
void save();
void restore();
Constructor(DOMString text),
#endif
Conditional=CANVAS_PATH,
- InterfaceName=Path
+ InterfaceName=Path,
+ OperationsNotDeletable
] interface DOMPath {
// FIXME: These methods should be shared with CanvasRenderingContext2D in the CanvasPathMethods interface.
NoInterfaceObject,
Conditional=WEBGL,
GenerateIsReachable=ImplContext,
- DoNotCheckConstants
+ DoNotCheckConstants,
+ OperationsNotDeletable
] interface EXTDrawBuffers {
const GLenum COLOR_ATTACHMENT0_EXT = 0x8CE0;
const GLenum COLOR_ATTACHMENT1_EXT = 0x8CE1;
NoInterfaceObject,
Conditional=WEBGL,
GenerateIsReachable=ImplContext,
- DoNotCheckConstants
+ DoNotCheckConstants,
+ OperationsNotDeletable
] interface OESVertexArrayObject {
const unsigned int VERTEX_ARRAY_BINDING_OES = 0x85B5;
NoInterfaceObject,
Conditional=WEBGL,
GenerateIsReachable=ImplContext,
+ OperationsNotDeletable
] interface WebGLDebugShaders {
[StrictTypeChecking, TreatReturnedNullStringAs=Null, RaisesException] DOMString getTranslatedShaderSource(WebGLShader shader);
};
NoInterfaceObject,
Conditional=WEBGL,
GenerateIsReachable=ImplContext,
+ OperationsNotDeletable
] interface WebGLLoseContext {
[StrictTypeChecking] void loseContext();
[StrictTypeChecking] void restoreContext();
[
Conditional=WEBGL,
JSCustomMarkFunction,
- DoNotCheckConstants
+ DoNotCheckConstants,
+ OperationsNotDeletable
] interface WebGLRenderingContext : CanvasRenderingContext {
/* ClearBufferMask */
Conditional=VIDEO_TRACK,
GenerateIsReachable=ImplElementRoot,
EventTarget,
- JSCustomMarkFunction
+ JSCustomMarkFunction,
+ OperationsNotDeletable
] interface AudioTrackList {
readonly attribute unsigned long length;
getter AudioTrack item(unsigned long index);
EventTarget,
GenerateIsReachable=ImplElementRoot,
JSCustomMarkFunction,
- SkipVTableValidation
+ SkipVTableValidation,
+ OperationsNotDeletable
] interface TextTrack {
readonly attribute DOMString kind;
readonly attribute DOMString label;
EventTarget,
JSCustomMarkFunction,
CustomIsReachable,
- SkipVTableValidation
+ SkipVTableValidation,
+ OperationsNotDeletable
] interface TextTrackCue {
readonly attribute TextTrack track;
[
Conditional=VIDEO_TRACK,
- ImplementationLacksVTable
+ ImplementationLacksVTable,
+ OperationsNotDeletable
] interface TextTrackCueList {
readonly attribute unsigned long length;
getter TextTrackCue item(unsigned long index);
Conditional=VIDEO_TRACK,
GenerateIsReachable=ImplElementRoot,
EventTarget,
- JSCustomMarkFunction
+ JSCustomMarkFunction,
+ OperationsNotDeletable
] interface TextTrackList {
readonly attribute unsigned long length;
getter TextTrack item(unsigned long index);
[
NoInterfaceObject,
Conditional=VIDEO_TRACK & WEBVTT_REGIONS,
- ImplementationLacksVTable
+ ImplementationLacksVTable,
+ OperationsNotDeletable
] interface TextTrackRegionList {
readonly attribute unsigned long length;
getter TextTrackRegion item(unsigned long index);
Conditional=VIDEO_TRACK,
GenerateIsReachable=ImplElementRoot,
EventTarget,
- JSCustomMarkFunction
+ JSCustomMarkFunction,
+ OperationsNotDeletable
] interface VideoTrackList {
readonly attribute unsigned long length;
getter VideoTrack item(unsigned long index);