Initial import of elemental, includes
IDL generation code
Json and Collections
Sample app
Ant build files and SuperDevMode launcher
Some readmes
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@11039 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/elemental/idl/README b/elemental/idl/README
new file mode 100644
index 0000000..549fd91
--- /dev/null
+++ b/elemental/idl/README
@@ -0,0 +1,7 @@
+GWT bindings generation code adapted from the Dart Project at http://code.google.com/p/dart/source/browse/trunk/dart/lib/
+
+How to update bindings:
+1) Update third_party/WebCore/ from trac.webkit.org or the Dart Project
+2) Modify elemental.idl to fix any issues (usually caused by covariant returns)
+3) Run build script to regenerate the bindings
+4) cp -r generated/src/elemental/* ../src/elemental/
diff --git a/elemental/idl/build b/elemental/idl/build
new file mode 100755
index 0000000..8f6b266
--- /dev/null
+++ b/elemental/idl/build
@@ -0,0 +1,13 @@
+#!/bin/sh
+# Re-builds all the generated code in ../java/elemental/ from the scraped IDL files
+# in w3c/. This will blow away all files labeled "generated code".
+ROOT=`dirname $0`
+python \
+ ${ROOT}/css/generate-style.py \
+ ${ROOT}/css/styles.txt \
+ ${ROOT}/templates/java_interface_CSSStyleDeclaration.darttemplate \
+ ${ROOT}/templates/jso_impl_CSSStyleDeclaration.darttemplate
+
+python ${ROOT}/scripts/elemental_fremontcutbuilder.py
+python ${ROOT}/scripts/elementaldomgenerator.py
+cp -R ${ROOT}/generated/src/elemental/* ${ROOT}/../java/elemental/
diff --git a/elemental/idl/css/CSSPropertyNames.in b/elemental/idl/css/CSSPropertyNames.in
new file mode 100644
index 0000000..3097b8f
--- /dev/null
+++ b/elemental/idl/css/CSSPropertyNames.in
@@ -0,0 +1,372 @@
+//
+// CSS property names
+//
+// Some properties are used internally, but are not part of CSS. They are used to get
+// HTML4 compatibility in the rendering engine.
+//
+// Microsoft extensions are documented here:
+// http://msdn.microsoft.com/workshop/author/css/reference/attributes.asp
+//
+
+// high-priority property names have to be listed first, to simplify the check
+// for applying them first.
+color
+direction
+display enum none block inline inline-block
+font
+font-family
+font-size dim
+font-style enum normal italic oblique
+font-weight enum normal bold bolder lighter
+font-variant
+text-rendering
+-webkit-font-feature-settings
+-webkit-font-kerning
+-webkit-font-smoothing
+-webkit-font-variant-ligatures
+-webkit-locale
+-webkit-text-orientation
+-webkit-text-size-adjust
+-webkit-writing-mode
+zoom
+
+// line height needs to be right after the above high-priority properties
+line-height
+
+// The remaining properties are listed in alphabetical order
+background
+background-attachment
+background-clip
+background-color
+background-image
+background-origin
+background-position
+background-position-x
+background-position-y
+background-repeat
+background-repeat-x
+background-repeat-y
+background-size
+border
+border-bottom
+border-bottom-color
+border-bottom-left-radius
+border-bottom-right-radius
+border-bottom-style
+border-bottom-width
+border-collapse
+border-color
+border-image
+border-image-outset
+border-image-repeat
+border-image-slice
+border-image-source
+border-image-width
+border-left
+border-left-color
+border-left-style
+border-left-width
+border-radius
+border-right
+border-right-color
+border-right-style
+border-right-width
+border-spacing
+border-style enum none hidden dotted dashed solid
+border-top
+border-top-color
+border-top-left-radius
+border-top-right-radius
+border-top-style
+border-top-width
+border-width dim
+bottom dim
+box-shadow
+box-sizing
+// -webkit-box-sizing worked in Safari 4 and earlier.
+caption-side
+clear
+clip
+content
+counter-increment
+counter-reset
+cursor enum default auto crosshair pointer move e-resize ne-resize nw-resize n-resize se-resize sw-resize s-resize w-resize text wait help col-resize row-resize
+empty-cells
+float
+font-stretch
+height dim
+image-rendering
+left dim
+letter-spacing
+list-style
+list-style-type enum none disc circle square decimal lower-alpha upper-alpha lower-roman upper-roman
+list-style-image
+list-style-position
+margin dim
+margin-bottom dim
+margin-left dim
+margin-right dim
+margin-top dim
+max-height
+max-width
+min-height
+min-width
+opacity double
+// Honor -webkit-opacity as a synonym for opacity. This was the only syntax that worked in Safari 1.1,
+// and may be in use on some websites and widgets.
+orphans
+outline
+outline-color
+outline-offset
+outline-style
+outline-width
+overflow enum visible hidden scroll auto
+overflow-x enum visible hidden scroll auto
+overflow-y enum visible hidden scroll auto
+padding dim
+padding-bottom dim
+padding-left dim
+padding-right dim
+padding-top dim
+page
+page-break-after
+page-break-before
+page-break-inside
+pointer-events
+position enum static relative absolute fixed
+quotes
+resize
+right dim
+size
+src
+speak
+table-layout
+tab-size
+text-align
+text-decoration enum none underline overline line-through
+text-indent
+text-line-through
+text-line-through-color
+text-line-through-mode
+text-line-through-style
+text-line-through-width
+text-overflow
+text-overline
+text-overline-color
+text-overline-mode
+text-overline-style
+text-overline-width
+text-shadow
+text-transform
+text-underline
+text-underline-color
+text-underline-mode
+text-underline-style
+text-underline-width
+top dim
+unicode-bidi
+unicode-range
+vertical-align
+visibility enum visible hidden
+white-space enum pre nowrap pre-wrap pre-line
+widows
+width dim
+word-break
+word-spacing
+word-wrap
+z-index int
+-webkit-animation
+-webkit-animation-delay
+-webkit-animation-direction
+-webkit-animation-duration
+-webkit-animation-fill-mode
+-webkit-animation-iteration-count
+-webkit-animation-name
+-webkit-animation-play-state
+-webkit-animation-timing-function
+-webkit-appearance
+-webkit-aspect-ratio
+-webkit-backface-visibility
+-webkit-background-clip
+-webkit-background-composite
+-webkit-background-origin
+// -webkit-background-size differs from background-size only in the interpretation of
+// a single value: -webkit-background-size: l; is equivalent to background-size: l l;
+// whereas background-size: l; is equivalent to background-size: l auto;
+-webkit-background-size
+-webkit-border-after
+-webkit-border-after-color
+-webkit-border-after-style
+-webkit-border-after-width
+-webkit-border-before
+-webkit-border-before-color
+-webkit-border-before-style
+-webkit-border-before-width
+-webkit-border-end
+-webkit-border-end-color
+-webkit-border-end-style
+-webkit-border-end-width
+-webkit-border-fit
+-webkit-border-horizontal-spacing
+-webkit-border-image
+// -webkit-border-radius differs from border-radius only in the interpretation of
+// a value consisting of two lengths: "-webkit-border-radius: l1 l2;" is equivalent
+// to "border-radius: l1 / l2;"
+-webkit-border-radius
+-webkit-border-start
+-webkit-border-start-color
+-webkit-border-start-style
+-webkit-border-start-width
+-webkit-border-vertical-spacing
+-webkit-box-align
+-webkit-box-direction
+-webkit-box-flex
+-webkit-box-flex-group
+-webkit-box-lines
+-webkit-box-ordinal-group
+-webkit-box-orient
+-webkit-box-pack
+-webkit-box-reflect
+-webkit-box-shadow
+-webkit-color-correction
+-webkit-column-axis
+-webkit-column-break-after
+-webkit-column-break-before
+-webkit-column-break-inside
+-webkit-column-count
+-webkit-column-gap
+-webkit-column-rule
+-webkit-column-rule-color
+-webkit-column-rule-style
+-webkit-column-rule-width
+-webkit-column-span
+-webkit-column-width
+-webkit-columns
+#if defined(ENABLE_CSS_FILTERS) && ENABLE_CSS_FILTERS
+-webkit-filter
+#endif
+-webkit-flex
+-webkit-flex-align
+-webkit-flex-direction
+-webkit-flex-flow
+-webkit-flex-item-align
+-webkit-flex-line-pack
+-webkit-flex-order
+-webkit-flex-pack
+-webkit-flex-wrap
+-webkit-font-size-delta
+-webkit-grid-columns
+-webkit-grid-rows
+-webkit-grid-column
+-webkit-grid-row
+-webkit-highlight
+-webkit-hyphenate-character
+-webkit-hyphenate-limit-after
+-webkit-hyphenate-limit-before
+-webkit-hyphenate-limit-lines
+-webkit-hyphens
+-webkit-line-box-contain
+-webkit-line-align
+-webkit-line-break
+-webkit-line-clamp
+-webkit-line-grid
+-webkit-line-snap
+-webkit-logical-width
+-webkit-logical-height
+-webkit-margin-after-collapse
+-webkit-margin-before-collapse
+-webkit-margin-bottom-collapse
+-webkit-margin-top-collapse
+-webkit-margin-collapse
+-webkit-margin-after
+-webkit-margin-before
+-webkit-margin-end
+-webkit-margin-start
+-webkit-marquee
+-webkit-marquee-direction
+-webkit-marquee-increment
+-webkit-marquee-repetition
+-webkit-marquee-speed
+-webkit-marquee-style
+-webkit-mask
+-webkit-mask-attachment
+-webkit-mask-box-image
+-webkit-mask-box-image-outset
+-webkit-mask-box-image-repeat
+-webkit-mask-box-image-slice
+-webkit-mask-box-image-source
+-webkit-mask-box-image-width
+-webkit-mask-clip
+-webkit-mask-composite
+-webkit-mask-image
+-webkit-mask-origin
+-webkit-mask-position
+-webkit-mask-position-x
+-webkit-mask-position-y
+-webkit-mask-repeat
+-webkit-mask-repeat-x
+-webkit-mask-repeat-y
+-webkit-mask-size
+-webkit-match-nearest-mail-blockquote-color
+-webkit-max-logical-width
+-webkit-max-logical-height
+-webkit-min-logical-width
+-webkit-min-logical-height
+-webkit-nbsp-mode
+-webkit-padding-after
+-webkit-padding-before
+-webkit-padding-end
+-webkit-padding-start
+-webkit-perspective
+-webkit-perspective-origin
+-webkit-perspective-origin-x
+-webkit-perspective-origin-y
+-webkit-print-color-adjust
+-webkit-rtl-ordering
+-webkit-text-combine
+-webkit-text-decorations-in-effect
+-webkit-text-emphasis
+-webkit-text-emphasis-color
+-webkit-text-emphasis-position
+-webkit-text-emphasis-style
+-webkit-text-fill-color
+-webkit-text-security
+-webkit-text-stroke
+-webkit-text-stroke-color
+-webkit-text-stroke-width
+-webkit-transform
+-webkit-transform-origin
+-webkit-transform-origin-x
+-webkit-transform-origin-y
+-webkit-transform-origin-z
+-webkit-transform-style
+-webkit-transition
+-webkit-transition-delay
+-webkit-transition-duration
+-webkit-transition-property
+-webkit-transition-timing-function
+-webkit-user-drag
+-webkit-user-modify
+-webkit-user-select
+-webkit-flow-into
+-webkit-flow-from
+-webkit-region-overflow
+-webkit-shape-inside
+-webkit-shape-outside
+-webkit-wrap-margin
+-webkit-wrap-padding
+-webkit-region-break-after
+-webkit-region-break-before
+-webkit-region-break-inside
+-webkit-wrap-flow
+-webkit-wrap-through
+-webkit-wrap
+#if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS
+-webkit-tap-highlight-color
+#endif
+#if defined(ENABLE_DASHBOARD_SUPPORT) && ENABLE_DASHBOARD_SUPPORT
+-webkit-dashboard-region
+#endif
+#if defined(ENABLE_OVERFLOW_SCROLLING)
+-webkit-overflow-scrolling
+#endif
diff --git a/elemental/idl/css/generate-style.py b/elemental/idl/css/generate-style.py
new file mode 100755
index 0000000..3478d27
--- /dev/null
+++ b/elemental/idl/css/generate-style.py
@@ -0,0 +1,174 @@
+#!/usr/bin/python2.4
+#
+# Copyright 2008 Google Inc. All Rights Reserved.
+
+"""Generates StyleBase.java based on list of styles in styles.txt.
+
+Usage: $0
+(No args, just run it, with styles.txt in the same directory as the script)
+"""
+
+__author__ = 'danilatos@google.com (Daniel Danilatos)'
+
+import os
+import re
+import string
+import sys
+
+CONST_PREFIX = ' public static final String '
+
+def main(argv):
+ if len(argv) != 4:
+ print 'Usage: input_file interface.java.snippet implementation.java.snippet'
+ sys.exit(-1)
+ input_file = argv[1]
+ output_intf = argv[2]
+ output_impl = argv[3]
+
+ output_intf_stream = open(output_intf, 'w')
+ output_impl_stream = open(output_impl, 'w')
+ input_stream = open(input_file, 'r')
+ GenerateStyleBase(input_stream, output_intf_stream, output_impl_stream)
+
+
+def GenerateStyleBase(input_stream, output_intf_stream, output_impl_stream):
+ """Generate the StyleBase.java file.
+
+ Args:
+ input_stream: A stream containing the configuration input (usually
+ styles.txt)
+ output_stream: A stream to write the output to
+ """
+
+ wintf = output_intf_stream.write
+ wimpl = output_impl_stream.write
+
+ # Write the generic setProperty() that's not in the IDL :-/
+ # Write Unit interface into the interface snippet
+ wintf("""
+package $PACKAGE;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ * $CLASS_JAVADOC
+ */
+public interface $ID$EXTENDS {
+$!MEMBERS
+""")
+
+ wimpl("""package $PACKAGE;
+$IMPORTS
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.js.stylesheets.*;
+import elemental.js.events.*;
+import elemental.js.util.*;
+import elemental.js.dom.*;
+import elemental.js.html.*;
+import elemental.js.css.*;
+import elemental.js.stylesheets.*;
+
+import java.util.Date;
+
+public class $ID$EXTENDS $IMPLEMENTS {
+ protected $ID() {}
+$!MEMBERS
+""")
+
+ wintf('public interface Unit {\n')
+ wintf(' public static final String PX = "px";\n')
+ wintf(' public static final String PCT = "%";\n')
+ wintf(' public static final String EM = "em";\n')
+ wintf(' public static final String EX = "ex";\n')
+ wintf(' public static final String PT = "pt";\n')
+ wintf(' public static final String PC = "pc";\n')
+ wintf(' public static final String IN = "in";\n')
+ wintf(' public static final String CM = "cm";\n')
+ wintf(' public static final String MM = "mm";\n')
+ wintf('}\n\n')
+
+
+ for line in input_stream:
+ line = re.sub('#.*$', '', line).strip()
+ if not line or line.startswith("//"): continue
+
+ # prop is the css property name
+ # value_type is the actual high-level type of the property
+ # output_mode is whether it is just a simple constant, or a dimension type,
+ # or an enum, etc.
+ # params are additional line parameters, currently used for enum values
+ (prop, output_mode, value_type, params) = ParseLine(line)
+
+ method_suffix = PropToCapsCase(prop)
+ js_prop = method_suffix[0].lower() + method_suffix[1:] # Camel case
+ if js_prop == 'float':
+ js_prop = "this['float']"
+ else:
+ js_prop = "this." + js_prop
+
+ if output_mode == 'enum':
+ wintf('\npublic interface %s {\n' % method_suffix)
+ for p in params:
+ wintf(CONST_PREFIX + PropToConstant(p) + ' = "' + p + '";\n')
+ wintf('}\n\n')
+
+ # getter
+ wintf('%s get%s();\n' % (value_type, method_suffix))
+ wimpl('public final native %s get%s() /*-{ return %s; }-*/;\n' % (value_type, method_suffix, js_prop))
+
+ # setter(s) & clearer(s)
+ wintf('void set%s(%s value);\n' % (method_suffix, value_type))
+ wintf('void clear%s();\n' % method_suffix)
+ wimpl('public final native void set%s(%s value) /*-{ %s = value; }-*/;\n' % (method_suffix, value_type, js_prop))
+ wimpl('public final native void clear%s() /*-{ %s = ""; }-*/;\n' % (method_suffix, js_prop))
+ if output_mode == 'dim':
+ wintf('void set%s(double value, String unit);\n' % (method_suffix))
+ wimpl('public final native void set%s(double value, String unit) /*-{ %s = value + unit; }-*/;\n' % (method_suffix, js_prop))
+
+ wintf('}')
+ wimpl('}')
+ output_intf_stream.close()
+ output_impl_stream.close()
+
+
+def ParseLine(line):
+ """Parses a line of the input file into useful parameters."""
+ bits = re.compile(r'\s+').split(line)
+ if len(bits) == 1:
+ output_mode = 'simple'
+ value_type = 'String'
+ elif bits[1] == 'enum':
+ output_mode = 'enum'
+ value_type = 'String' # PropToCapsCase(bits[0])
+ elif bits[1] == 'dim':
+ output_mode = 'dim'
+ value_type = 'String' # None # lots of different types for dim properties
+ else:
+ output_mode = 'simple'
+ value_type = bits[1]
+
+ css_prop_name = bits[0]
+ additional_params = bits[2:]
+
+ return (css_prop_name, output_mode, value_type, additional_params)
+
+
+def PropToCapsCase(css_prop):
+ """Converts abc-def to AbcDef."""
+ return re.sub(' ', '', string.capwords(re.sub('-', ' ', css_prop)))
+
+
+def PropToConstant(css_prop):
+ """Converts abc-def to ABC_DEF."""
+ return css_prop.upper().replace('-', '_')
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv))
diff --git a/elemental/idl/css/styles.txt b/elemental/idl/css/styles.txt
new file mode 100644
index 0000000..0358bc5
--- /dev/null
+++ b/elemental/idl/css/styles.txt
@@ -0,0 +1,45 @@
+# List of css properties
+# If you add the word 'dim' on the end, then that means it's a dimension property
+# and will get px, em, ex, etc accessors
+# If you add the word 'int' on the end, then that means it has integral type
+# Add the word 'enum' followed by a list of values to generate an enum
+# as an inner class
+
+background-color
+background-image
+border-color
+border-style enum none hidden dotted dashed solid
+border-width dim
+bottom dim
+color
+cursor enum default auto crosshair pointer move e-resize ne-resize nw-resize n-resize se-resize sw-resize s-resize w-resize text wait help col-resize row-resize
+display enum none block inline inline-block
+font-size dim
+font-style enum normal italic oblique
+font-weight enum normal bold bolder lighter
+height dim
+left dim
+list-style-type enum none disc circle square decimal lower-alpha upper-alpha lower-roman upper-roman
+margin dim
+margin-bottom dim
+margin-left dim
+margin-right dim
+margin-top dim
+opacity double
+overflow enum visible hidden scroll auto
+overflow-x enum visible hidden scroll auto
+overflow-y enum visible hidden scroll auto
+padding dim
+padding-bottom dim
+padding-left dim
+padding-right dim
+padding-top dim
+position enum static relative absolute fixed
+right dim
+text-decoration enum none underline overline line-through
+top dim
+visibility enum visible hidden
+white-space enum pre nowrap pre-wrap pre-line
+width dim
+z-index int
+
diff --git a/elemental/idl/dart/dart.idl b/elemental/idl/dart/dart.idl
new file mode 100644
index 0000000..73f2390
--- /dev/null
+++ b/elemental/idl/dart/dart.idl
@@ -0,0 +1,247 @@
+
+// This file introduces / supplements and forces Dart declarations.
+
+module default {
+ FileList implements sequence<File>;
+ HTMLCollection implements sequence<Node>;
+ MediaList implements sequence<DOMString>;
+ NamedNodeMap implements sequence<Node>;
+ NodeList implements sequence<Node>;
+ StyleSheetList implements sequence<StyleSheet>;
+ TouchList implements sequence<Touch>;
+
+ Float32Array implements sequence<double>;
+ Float64Array implements sequence<double>;
+ Int8Array implements sequence<int>;
+ Int16Array implements sequence<int>;
+ Int32Array implements sequence<int>;
+ Uint8Array implements sequence<int>;
+ // Ugliness ahead: we cannot analyse inheritance right now when deducing if
+ // given interface is a typed array (database is not accessible), so I have
+ // to duplicate both sequence<int> and ArrayBufferView to make our heuristics
+ // work.
+ // FIXME: thread datatbase to all the clients that need it and probably
+ // move the method itself to database.
+ Uint8ClampedArray implements sequence<int>;
+ Uint8ClampedArray implements ArrayBufferView;
+ Uint16Array implements sequence<int>;
+ Uint32Array implements sequence<int>;
+
+ // Is List<int> because inherits from Uint8Array:
+ // Uint8ClampedArray implements sequence<int>;
+}
+
+module core {
+ [Supplemental]
+ interface Document {
+ [Suppressed] DOMObject getCSSCanvasContext(in DOMString contextId, in DOMString name, in long width, in long height);
+ CanvasRenderingContext getCSSCanvasContext(in DOMString contextId, in DOMString name, in long width, in long height);
+ };
+
+ DOMStringList implements sequence<DOMString>;
+};
+
+module dom {
+ // Force NodeSelector. WebKit defines these operations directly.
+ interface NodeSelector {
+ Element querySelector(in DOMString selectors);
+ NodeList querySelectorAll(in DOMString selectors);
+ };
+ Document implements NodeSelector;
+ DocumentFragment implements NodeSelector;
+ Element implements NodeSelector;
+
+ // Force ElementTraversal. WebKit defines these directly.
+ interface ElementTraversal {
+ getter attribute unsigned long childElementCount;
+ getter attribute Element firstElementChild;
+ getter attribute Element lastElementChild;
+ getter attribute Element nextElementSibling;
+ getter attribute Element previousElementSibling;
+ };
+ Element implements ElementTraversal;
+
+ [Callback]
+ interface TimeoutHandler {
+ void handleEvent();
+ };
+};
+
+module html {
+ [Supplemental]
+ interface Console {
+ [Suppressed] void debug();
+ [CallWith=ScriptArguments|CallStack] void debug(DOMObject arg);
+ [Suppressed] void error();
+ [CallWith=ScriptArguments|CallStack] void error(DOMObject arg);
+ [Suppressed] void info();
+ [CallWith=ScriptArguments|CallStack] void info(DOMObject arg);
+ [Suppressed] void log();
+ [CallWith=ScriptArguments|CallStack] void log(DOMObject arg);
+ [Suppressed] void warn();
+ [CallWith=ScriptArguments|CallStack] void warn(DOMObject arg);
+ [Suppressed] void trace();
+ [CallWith=ScriptArguments|CallStack] void trace(DOMObject arg);
+ [Suppressed] void assert(in boolean condition);
+ [CallWith=ScriptArguments|CallStack] void assertCondition(boolean condition, DOMObject arg);
+ [Suppressed] void timeEnd(in DOMString title);
+ [CallWith=ScriptArguments|CallStack] void timeEnd(DOMString title, DOMObject arg);
+ [Suppressed] void timeStamp();
+ [CallWith=ScriptArguments|CallStack] void timeStamp(DOMObject arg);
+ [Suppressed] void group();
+ [CallWith=ScriptArguments|CallStack] void group(DOMObject arg);
+ [Suppressed] void groupCollapsed();
+ [CallWith=ScriptArguments|CallStack] void groupCollapsed(DOMObject arg);
+ };
+
+ [Supplemental]
+ interface HTMLOptionsCollection {
+ [Suppressed] void add(in optional HTMLOptionElement element, in optional long before);
+ };
+
+ [Supplemental]
+ interface ImageData {
+ readonly attribute Uint8ClampedArray data;
+ };
+
+ [Supplemental]
+ interface WebGLContextEvent {
+ [Suppressed] void initEvent(in optional DOMString eventTypeArg,
+ in optional boolean canBubbleArg,
+ in optional boolean cancelableArg,
+ in optional DOMString statusMessageArg);
+ };
+};
+
+module html {
+ [Supplemental]
+ interface WebGLRenderingContext {
+
+ //void compressedTexImage2D(in unsigned long target, in long level, in unsigned long internalformat, in unsigned long width, in unsigned long height, in long border, in unsigned long imageSize, const void* data);
+ //void compressedTexSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset, in unsigned long width, in unsigned long height, in unsigned long format, in unsigned long imageSize, const void* data);
+
+ any getBufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getBufferParameter();
+
+ any getFramebufferAttachmentParameter(in unsigned long target, in unsigned long attachment, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getFramebufferAttachmentParameter();
+
+ any getParameter(in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getParameter();
+
+ any getProgramParameter(in WebGLProgram program, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getProgramParameter();
+
+ any getRenderbufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getRenderbufferParameter();
+
+ any getShaderParameter(in WebGLShader shader, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getShaderParameter() raises(DOMException);
+
+ // TBD
+ // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+
+ DOMString[] getSupportedExtensions();
+ [Suppressed, StrictTypeChecking, Custom] void getSupportedExtensions();
+
+ any getTexParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getTexParameter();
+
+ any getUniform(in WebGLProgram program, in WebGLUniformLocation location) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getUniform();
+
+ any getVertexAttrib(in unsigned long index, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getVertexAttrib();
+ };
+}
+
+
+
+module canvas {
+ // TODO(dstockwell): Define these manually.
+ [Supplemental]
+ interface Float32Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Float64Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Int16Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Int32Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Int8Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Uint16Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Uint32Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Uint8Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+
+ [Supplemental]
+ interface Uint8ClampedArray {
+ // Avoid 'overriding static member BYTES_PER_ELEMENT'.
+ [Suppressed] const long BYTES_PER_ELEMENT = 1;
+
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+};
+
+module storage {
+ // TODO(vsm): Define new names for these (see b/4436830).
+ [Supplemental]
+ interface IDBCursor {
+ [DartName=continueFunction] void continue(in optional IDBKey key);
+ };
+ [Supplemental]
+ interface IDBIndex {
+ [DartName=getObject] IDBRequest get(in IDBKey key);
+ };
+ [Supplemental]
+ interface IDBObjectStore {
+ [DartName=getObject] IDBRequest get(in IDBKey key);
+ [DartName=getObject] IDBRequest get(in IDBKeyRange key);
+ [Suppressed] IDBRequest openCursor() raises (IDBDatabaseException);
+ };
+
+ interface EntrySync {
+ // Native implementation is declared to return EntrySync.
+ [Suppressed] DirectoryEntrySync getParent();
+ EntrySync getParent();
+ };
+};
+
+module html {
+ [Supplemental, Callback] // Add missing Callback attribute.
+ interface VoidCallback {
+ };
+};
+
+module svg {
+ interface SVGNumber {
+ [StrictTypeChecking, Custom] attribute double value;
+ };
+}
diff --git a/elemental/idl/docs/README b/elemental/idl/docs/README
new file mode 100644
index 0000000..0471d05
--- /dev/null
+++ b/elemental/idl/docs/README
@@ -0,0 +1 @@
+W3C documentation from MDN taken from the Dart project's MDN scraper.
diff --git a/elemental/idl/docs/database.json b/elemental/idl/docs/database.json
new file mode 100644
index 0000000..5875194
--- /dev/null
+++ b/elemental/idl/docs/database.json
@@ -0,0 +1 @@
+{"ErrorCallback":{"title":"JS_ReportErrorNumber","members":[],"srcUrl":"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_ReportErrorNumber","skipped":true,"cause":"Suspect title"},"SVGAnimatedLength":{"title":"SVGAnimatedLength","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedLength</code> interface is used for attributes of basic type <a title=\"https://developer.mozilla.org/en/SVG/Content_type#Length\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Content_type#Length\"><length></a> which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"If the given attribute or property is being animated, contains the current animated value of the attribute or property. If the given attribute or property is not currently being animated, contains the same value as <code>baseVal</code>.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/SVGAnimatedLength"},"HTMLScriptElement":{"title":"script","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.0 (1.7 or earlier)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>async</code> attribute</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>3.6 (1.9.2)\n</td> <td>10</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>defer</code> attribute</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>3.5 (1.9.1)\n</td> <td>4</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>async</code> attribute</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>defer</code> attribute</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>","examples":["<!-- HTML4 and (x)HTML -->\n<script type=\"text/javascript\" src=\"javascript.js\">\n\n<!-- HTML5 -->\n<script src=\"javascript.js\"></script>"],"srcUrl":"https://developer.mozilla.org/En/HTML/Element/Script","summary":"<p>The <code>script</code> element is used to embed or reference an executable script within an <abbr>HTML</abbr> or <abbr>XHTML</abbr> document.</p>\n<p>Scripts without <code>async</code> or <code>defer</code> attributes are fetched and executed immediately, before the browser continues to parse the page.</p>","members":[{"obsolete":false,"url":"","name":"language","help":"Like the <code>type</code> attribute, this attribute identifies the scripting language in use. Unlike the <code>type</code> attribute, however, this attribute’s possible values were never standardized. The <code>type</code> attribute should be used instead."},{"obsolete":false,"url":"","name":"defer","help":"This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed. Since this feature hasn't yet been implemented by all other major browsers, authors should not assume that the script’s execution will actually be deferred. Never call <code>document.write()</code> from a <code>defer</code> script (since Gecko 1.9.2, this will blow away the document). The <code>defer</code> attribute shouldn't be used on scripts that don't have the <code>src</code> attribute. Since Gecko 1.9.2, the <code>defer</code> attribute is ignored on scripts that don't have the <code>src</code> attribute. However, in Gecko 1.9.1 even inline scripts are deferred if the <code>defer</code> attribute is set."},{"obsolete":false,"url":"","name":"src","help":"This attribute specifies the <abbr>URI</abbr> of an external script; this can be used as an alternative to embedding a script directly within a document. <code>script</code> elements with an <code>src</code> attribute specified should not have a script embedded within its tags."},{"obsolete":false,"url":"","name":"async","help":"Set this Boolean attribute to indicate that the browser should, if possible, execute the script asynchronously. It has no effect on inline scripts (i.e., scripts that don't have the <strong>src</strong> attribute). In older browsers that don't support the <strong>async</strong> attribute, parser-inserted scripts block the parser; script-inserted scripts execute asynchronously in IE and WebKit, but synchronously in Opera and pre-4.0 Firefox. In Firefox 4.0, the <code>async</code> DOM property defaults to <code>true</code> for script-created scripts, so the default behavior matches the behavior of IE and WebKit. To request script-inserted external scripts be executed in the insertion order in browsers where the <code>document.createElement(\"script\").async</code> evaluates to <code>true</code> (such as Firefox 4.0), set <code>.async=false</code> on the scripts you want to maintain order. Never call <code>document.write()</code> from an <code>async</code> script. In Gecko 1.9.2, calling <code>document.write()</code> has an unpredictable effect. In Gecko 2.0, calling <code>document.write()</code> from an <code>async</code> script has no effect (other than printing a warning to the error console)."},{"obsolete":false,"url":"","name":"type","help":"This attribute identifies the scripting language of code embedded within a <code>script</code> element or referenced via the element’s <code>src</code> attribute. This is specified as a <abbr title=\"Multi-purpose Internet Mail Extensions\">MIME</abbr> type; examples of supported <abbr title=\"Multi-purpose Internet Mail Extensions\">MIME</abbr> types include <code>text/javascript</code>, <code>text/ecmascript</code>, <code>application/javascript</code>, and <code>application/ecmascript</code>. If this attribute is absent, the script is treated as JavaScript."}]},"WebKitTransitionEvent":{"title":"Recent changes from mechaxl","members":[],"srcUrl":"https://developer.mozilla.org/Special:Contributions?target=mechaxl","skipped":true,"cause":"Suspect title"},"Int32Array":{"title":"Int32Array","srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array","seeAlso":"<li><a class=\"link-https\" title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"<p>The <code>Int32Array</code> type represents an array of twos-complement 32-bit signed integers.</p>\n<p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p>","constructor":"<div class=\"note\"><strong>Note:</strong> In these methods, <code><em>TypedArray</em></code> represents any of the <a title=\"en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses\">typed array object types</a>.</div>\n<table class=\"standard-table\"> <tbody> <tr> <td><code>Int32Array <a title=\"en/JavaScript typed arrays/Int32Array#Int32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array#Int32Array()\">Int32Array</a>(unsigned long length);<br> </code></td> </tr> <tr> <td><code>Int32Array </code><code><a title=\"en/JavaScript typed arrays/Int32Array#Int32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array#Int32Array%28%29\">Int32Array</a></code><code>(<em>TypedArray</em> array);<br> </code></td> </tr> <tr> <td><code>Int32Array </code><code><a title=\"en/JavaScript typed arrays/Int32Array#Int32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array#Int32Array%28%29\">Int32Array</a></code><code>(sequence<type> array);<br> </code></td> </tr> <tr> <td><code>Int32Array </code><code><a title=\"en/JavaScript typed arrays/Int32Array#Int32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int32Array#Int32Array%28%29\">Int32Array</a></code><code>(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);<br> </code></td> </tr> </tbody>\n</table><p>Returns a new <code>Int32Array</code> object.</p>\n<pre>Int32Array Int32Array(\n unsigned long length\n);\n\nInt32Array Int32Array(\n <em>TypedArray</em> array\n);\n\nInt32Array Int32Array(\n sequence<type> array\n);\n\nInt32Array Int32Array(\n ArrayBuffer buffer,\n optional unsigned long byteOffset,\n optional unsigned long length\n);\n</pre>\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>length</code></dt> <dd>The number of elements in the byte array. If unspecified, length of the array view will match the buffer's length.</dd> <dt><code>array</code></dt> <dd>An object of any of the typed array types (such as <code>Int16Array</code>), or a sequence of objects of a particular type, to copy into a new <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>. Each value in the source array is converted to a 32-bit signed integer before being copied into the new array.</dd> <dt><code>buffer</code></dt> <dd>An existing <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> to use as the storage for the new <code>Int32Array</code> object.</dd> <dt><code>byteOffset<br> </code></dt> <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the <code>Int32Array</code>'s view of the buffer will start with the first byte.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>Int32Array</code> object representing the specified data buffer.</p>\n</div>","members":[{"name":"subarray","help":"<p>Returns a new <code>Int32Array</code> view on the <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> store for this <code>Int32Array</code> object.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>begin</code></dt> <dd>The offset to the first element in the array to be referenced by the new <code>Int32Array</code> object.</dd> <dt><code>end</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The offset to one past the last element in the array to be referenced by the new <code>Int32Array</code> object; if not specified, all elements from the one specified by <code>begin</code> to the end of the array are included in the new view.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Notes_2\"></span><h6 class=\"editable\">Notes</h6>\n<p>The range specified by <code>begin</code> and <code>end</code> is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it's clamped to zero. If either <code>begin</code> or <code>end</code> is negative, it refers to an index from the end of the array instead of from the beginning.</p>\n<div class=\"note\"><strong>Note:</strong> Keep in mind that this is creating a new view on the existing buffer; changes to the new object's contents will impact the original object and vice versa.</div>\n</div>","idl":"<pre>Int32Array subarray(\n long begin,\n optional long end\n);\n</pre>","obsolete":false},{"name":"set","help":"<p>Sets multiple values in the typed array, reading input values from a specified array.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset \n<span title=\"\">Optional</span>\n</dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>\n</dl>\n</div>","idl":"<pre>void set(\n <em>TypedArray</em> array,\n optional unsigned long offset\n);\n\nvoid set(\n type[] array,\n optional unsigned long offset\n);\n</pre>","obsolete":false},{"name":"BYTES_PER_ELEMENT","help":"The size, in bytes, of each array element.","obsolete":false},{"name":"length","help":"The number of entries in the array. <strong>Read only.</strong>","obsolete":false}]},"MediaQueryList":{"title":"MediaQueryList","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/MediaQueryList","specification":"The CSSOM View Module: The MediaQueryList Interface","seeAlso":"<li><a title=\"En/CSS/Media queries\" rel=\"internal\" href=\"https://developer.mozilla.org/En/CSS/Media_queries\">Media queries</a></li> <li><a title=\"en/CSS/Using media queries from code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/Using_media_queries_from_code\">Using media queries from code</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.matchMedia\">window.matchMedia()</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/MediaQueryListListener\">MediaQueryListListener</a></code>\n</li>","summary":"<div><strong>DRAFT</strong>\n<div>This page is not complete.</div>\n</div>\n\n<p></p>\n<p>A <code>MediaQueryList</code> object maintains a list of <a title=\"En/CSS/Media queries\" rel=\"internal\" href=\"https://developer.mozilla.org/En/CSS/Media_queries\">media queries</a> on a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document\">document</a></code>\n, and handles sending notifications to listeners when the media queries on the document change.</p>\n<p>This makes it possible to observe a document to detect when its media queries change, instead of polling the values periodically, if you need to programmatically detect changes to the values of media queries on a document.</p>","members":[{"name":"addListener","help":"<p>Adds a new listener to the media query list. If the specified listener is already in the list, this method has no effect.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>listener</code></dt> <dd>The <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/MediaQueryListListener\">MediaQueryListListener</a></code>\n to invoke when the media query's evaluated result changes.</dd> <div id=\"section_6\"><span id=\"removeListener()\"></span></div></dl></div>","idl":"<pre>void addListener(\n MediaQueryListListener listener\n); \n</pre>","obsolete":false},{"name":"removeListener","help":"<div id=\"section_5\"><dl><div id=\"section_6\"><p>Removes a listener from the media query list. Does nothing if the specified listener isn't already in the list.</p> \n</div></dl>\n</div><div id=\"section_7\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>listener</code></dt> <dd>The <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/MediaQueryListListener\">MediaQueryListListener</a></code>\n to stop calling on changes to the media query's evaluated result.</dd>\n</dl>\n</div>","idl":"<pre>void removeListener(\n MediaQueryListListener listener\n); \n</pre>","obsolete":false},{"name":"matches","help":"<code>true</code> if the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document\">document</a></code>\n currently matches the media query list; otherwise <code>false</code>. <strong>Read only.</strong>","obsolete":false},{"name":"media","help":"The serialized media query list.","obsolete":false}]},"DOMPlugin":{"title":"Plugin","summary":"The <code>Plugin</code> interface provides information about a browser plugin.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Plugin.item","name":"item","help":"Returns the MIME type of a supported content type, given the index number into a list of supported types."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Plugin.namedItem","name":"namedItem","help":"Returns the MIME type of a supported item."},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Plugin.description","name":"description","help":"A human readable description of the plugin. <strong>Read only.</strong>","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Plugin.filename","name":"filename","help":"The filename of the plugin file. <strong>Read only.</strong>","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Plugin.name","name":"name","help":"The name of the plugin. <strong>Read only.</strong>","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Plugin.version","name":"version","help":"The plugin's version number string. <strong>Read only.</strong>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/Plugin"},"HTMLDListElement":{"title":"HTMLDListElement","summary":"DOM definition list elements expose the <a title=\"http://www.w3.org/TR/html5/grouping-content.html#htmldlistelement\" class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/html5/grouping-content.html#htmldlistelement\" target=\"_blank\">HTMLDListElement</a> (or <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-52368974\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-52368974\" target=\"_blank\"><code>HTMLDListElement</code></a>) interface, which provides special properties (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating definition list elements. In \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>, this interface inherits from HTMLElement, but defines no additional members.","members":[{"name":"compact","help":"Indicates that spacing between list items should be reduced.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLDListElement"},"SVGRect":{"title":"SVGRect","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"<p>The <code>SVGRect</code> represents rectangular geometry. Rectangles are defined as consisting of a (x,y) coordinate pair identifying a minimum X value, a minimum Y value, and a width and height, which are usually constrained to be non-negative.</p>\n<p>An <code>SVGRect</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>","members":[{"name":"width","help":"The <em>width</em> coordinate of the rectangle, in user units.","obsolete":false},{"name":"height","help":"The <em>height</em> coordinate of the rectangle, in user units.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGRect"},"HTMLAppletElement":{"title":"applet","examples":["<applet code=\"game.class\" align=\"left\" archive=\"game.zip\" height=\"250\" width=\"350\">\n\n<param name=\"difficulty\" value=\"easy\">\n\n<b>Sorry, you need Java to play this game.</b>\n\n</applet>\n"],"summary":"Obsolete","members":[{"obsolete":false,"url":"","name":"datafld","help":"This attribute, supported by Internet Explorer 4 and higher, specifies the column name from the data source object that supplies the bound data. This attribute might be used to specify the various <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/param\"><param></a></code>\n elements passed to the Java applet."},{"obsolete":false,"url":"","name":"width","help":"This attribute specifies in pixels the width that the applet needs."},{"obsolete":false,"url":"","name":"object","help":"This attribute specifies the URL of a serialized representation of an applet."},{"obsolete":false,"url":"","name":"code","help":"This attribute specifies the URL of the applet's class file to be loaded and executed. Applet filenames are identified by a .class filename extension. The URL specified by code might be relative to the <code>codebase</code> attribute."},{"obsolete":false,"url":"","name":"codebase","help":"This attribute gives the absolute or relative URL of the directory where applets' .class files referenced by the code attribute are stored."},{"obsolete":false,"url":"","name":"vspace","help":"This attribute specifies additional vertical space, in pixels, to be reserved above and below the applet."},{"obsolete":false,"url":"","name":"alt","help":"This attribute causes a descriptive text alternate to be displayed on browsers that do not support Java. Page designers should also remember that content enclosed within the <code><applet></code> element may also be rendered as alternative text."},{"obsolete":false,"url":"","name":"name","help":"This attribute assigns a name to the applet so that it can be identified by other resources; particularly scripts."},{"obsolete":false,"url":"","name":"align","help":"This attribute is used to position the applet on the page relative to content that might flow around it. The HTML 4.01 specification defines values of bottom, left, middle, right, and top, whereas Microsoft and Netscape also might support <strong>absbottom</strong>, <strong>absmiddle</strong>, <strong>baseline</strong>, <strong>center</strong>, and <strong>texttop</strong>."},{"obsolete":false,"url":"","name":"archive","help":"This attribute refers to an archived or compressed version of the applet and its associated class files, which might help reduce download time."},{"obsolete":false,"url":"","name":"height","help":"This attribute specifies the height, in pixels, that the applet needs."},{"obsolete":false,"url":"","name":"hspace","help":"This attribute specifies additional horizontal space, in pixels, to be reserved on either side of the applet."},{"obsolete":false,"url":"","name":"src","help":"As defined for Internet Explorer 4 and higher, this attribute specifies a URL for an associated file for the applet. The meaning and use is unclear and not part of the HTML standard."},{"obsolete":false,"url":"","name":"datasrc","help":"Like <code>datafld</code>, this attribute is used for data binding under Internet Explorer 4. It indicates the id of the data source object that supplies the data that is bound to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/param\"><param></a></code>\n elements associated with the applet."},{"obsolete":false,"url":"","name":"mayscript","help":"In the Netscape implementation, this attribute allows access to an applet by programs in a scripting language embedded in the document."}],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/applet"},"SVGAnimatedPreserveAspectRatio":{"title":"SVGAnimatedPreserveAspectRatio","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGAnimatedPreserveAspectRatio</code> interface is used for attributes of type <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGPreserveAspectRatio\">SVGPreserveAspectRatio</a></code>\n which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"A read only <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGPreserveAspectRatio\">SVGPreserveAspectRatio</a></code>\n representing the current animated value of the given attribute. If the given attribute is not currently being animated, then the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGPreserveAspectRatio\">SVGPreserveAspectRatio</a></code>\n will have the same contents as <code>baseVal</code>. The object referenced by <code>animVal</code> is always distinct from the one referenced by <code>baseVal</code>, even when the attribute is not animated.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedPreserveAspectRatio"},"SVGPatternElement":{"title":"SVGPatternElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGPatternElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/pattern\"><pattern></a></code>\n element.","members":[{"name":"patternUnits","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/patternUnits\" class=\"new\">patternUnits</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/pattern\"><pattern></a></code>\n element. Takes one of the constants defined in <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGUnitTypes\" class=\"new\">SVGUnitTypes</a></code>\n.","obsolete":false},{"name":"patternContentUnits","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/patternContentUnits\" class=\"new\">patternContentUnits</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/pattern\"><pattern></a></code>\n element. Takes one of the constants defined in <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGUnitTypes\" class=\"new\">SVGUnitTypes</a></code>\n.","obsolete":false},{"name":"patternTransform","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/patternTransform\" class=\"new\">patternTransform</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/pattern\"><pattern></a></code>\n element.","obsolete":false},{"name":"width","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/width\">width</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/pattern\"><pattern></a></code>\n element.","obsolete":false},{"name":"height","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/height\">height</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/pattern\"><pattern></a></code>\n element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPatternElement"},"SVGPathSegCurvetoCubicSmoothAbs":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"HTMLMenuElement":{"title":"menu","examples":["<menu type=\"toolbar\">\n <li>\n <menu label=\"File\">\n <button type=\"button\" onclick=\"new()\">New...</button>\n <button type=\"button\" onclick=\"save()\">Save...</button>\n </menu>\n </li>\n <li>\n <menu label=\"Edit\">\n <button type=\"button\" onclick=\"cut()\">Cut...</button>\n <button type=\"button\" onclick=\"copy()\">Copy...</button>\n <button type=\"button\" onclick=\"paste()\">Paste...</button>\n </menu>\n </li>\n</menu>"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/menu","seeAlso":"<li>Other list-related HTML Elements: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/li\"><li></a></code>\n and the obsolete <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/dir\"><dir></a></code>\n.</li> <li>The <code><a title=\"en/HTML/Global attributes#attr-contextmenu\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Global_attributes#attr-contextmenu\">contextmenu</a></code> <a title=\"en/HTML/Global attributes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Global_attributes\">global attribute</a> can be used on an element to refer to the <code>id</code> of a <code>menu</code> with the <code>context</code> \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu#attr-type\">type</a></code>\n</li>","summary":"<p>The HTML <em>menu</em> element (<code><menu></code>) represents an unordered list of menu choices, or commands.</p>\n<p>There is no limitation to the depth and nesting of lists defined with the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu\"><menu></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n elements.</p>\n<div class=\"note\"><strong>Usage note: </strong> The <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu\"><menu></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n both represent an unordered list of items. They differ in the way that the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n element only contains items to display while the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu\"><menu></a></code>\n element contains interactive items, to act on.</div>\n<div class=\"note\"><strong>Note</strong>: This element was deprecated in HTML4, but reintroduced in HTML5.</div>","members":[]},"MessageEvent":{"title":"MessageEvent","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent","seeAlso":"WebSocket","summary":"<div><strong>DRAFT</strong>\n<div>This page is not complete.</div>\n</div>\n\n<p></p>\n<p>A <code>MessageEvent</code> is sent to clients using WebSockets when data is received from the server. This is delivered to the listener indicated by the <code>WebSocket</code> object's <code>onmessage</code> attribute.</p>","members":[{"name":"data","help":"The data from the server.","obsolete":false}]},"SVGFEDiffuseLightingElement":{"title":"feDiffuseLighting","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDistantLight\"><feDistantLight></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/fePointLight\"><fePointLight></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpotLight\"><feSpotLight></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"This filter takes in a light source and applies it to an image, using the alpha channel as a bump map.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/kernelUnitLength","name":"kernelUnitLength","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/surfaceScale","name":"surfaceScale","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/diffuseConstant","name":"diffuseConstant","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in","name":"in","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting"},"WebGLBuffer":{"title":"Using shaders to apply color in WebGL","members":[],"srcUrl":"https://developer.mozilla.org/en/WebGL/Using_shaders_to_apply_color_in_WebGL","skipped":true,"cause":"Suspect title"},"StorageEvent":{"title":"StorageEvent","seeAlso":"Specification","summary":"<div><div>\n\n<a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/storage/nsIDOMStorageEvent.idl\"><code>dom/interfaces/storage/nsIDOMStorageEvent.idl</code></a><span><a rel=\"internal\" href=\"https://developer.mozilla.org/en/Interfaces/About_Scriptable_Interfaces\" title=\"en/Interfaces/About_Scriptable_Interfaces\">Scriptable</a></span></div><span>Describes an event occurring on HTML5 client-side storage data.</span><div><div>1.0</div><div>11.0</div><div></div><div>Introduced</div><div>Gecko 2.0</div><div title=\"Introduced in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\"></div><div title=\"Last changed in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\"></div></div>\n<div>Inherits from: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMEvent\">nsIDOMEvent</a></code>\n<span>Last changed in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n</span></div></div>\n<p></p>\n<p>A <code>StorageEvent</code> is sent to a window when a storage area changes.</p>\n<div class=\"geckoVersionNote\">\n<p>\n</p><div class=\"geckoVersionHeading\">Gecko 2.0 note<div>(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n</div></div>\n<p></p>\n<p>Although this event existed prior to Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n, it did not match the specification. The old event format is now represented by the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMStorageEventObsolete\">nsIDOMStorageEventObsolete</a></code>\n interface.</p>\n</div>","members":[{"name":"initStorageEvent","help":"<p>Initializes the event in a manner analogous to the similarly-named method in the DOM Events interfaces.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>typeArg</code></dt> <dd>The name of the event.</dd> <dt><code>canBubbleArg</code></dt> <dd>A boolean indicating whether the event bubbles up through the DOM or not.</dd> <dt><code>cancelableArg</code></dt> <dd>A boolean indicating whether the event is cancelable.</dd> <dt><code>keyArg</code></dt> <dd>The key whose value is changing as a result of this event.</dd> <dt><code>oldValueArg</code></dt> <dd>The key's old value.</dd> <dt><code>newValueArg</code></dt> <dd>The key's new value.</dd> <dt><code>urlArg</code></dt> <dd>Missing Description</dd> <dt><code>storageAreaArg</code></dt> <dd>The DOM <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Storage\">Storage</a></code>\n object representing the storage area on which this event occurred.</dd>\n</dl></div>","idl":"<pre class=\"eval\">void initStorageEvent(\n in DOMString typeArg,\n in boolean canBubbleArg,\n in boolean cancelableArg,\n in DOMString keyArg,\n in DOMString oldValueArg,\n in DOMString newValueArg,\n in DOMString urlArg,\n in nsIDOMStorage storageAreaArg\n);\n</pre>","obsolete":false},{"name":"key","help":"Represents the key changed. The <code>key</code> attribute is <code>null</code> when the change is caused by the storage <code>clear()</code> method. <strong>Read only.</strong>","obsolete":false},{"name":"newValue","help":"The new value of the <code>key</code>. The <code>newValue</code> is <code>null</code> when the change has been invoked by storage <code>clear()</code> method or the <code>key</code> has been removed from the storage. <strong>Read only.</strong>","obsolete":false},{"name":"oldValue","help":"The original value of the <code>key</code>. The <code>oldValue</code> is <code>null</code> when the change has been invoked by storage <code>clear()</code> method or the <code>key</code> has been newly added and therefor doesn't have any previous value. <strong>Read only.</strong>","obsolete":false},{"name":"storageArea","help":"Represents the Storage object that was affected. <strong>Read only.</strong>","obsolete":false},{"name":"url","help":"The URL of the document whose <code>key</code> changed. <strong>Read only.</strong>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/event/StorageEvent"},"SVGFEFloodElement":{"title":"feFlood","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animateColor\"><animateColor></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The filter fills the filter subregion with the color and opacity defined by \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/flood-color\">flood-color</a></code> and \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/flood-opacity\">flood-opacity</a></code>.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feFlood"},"DirectoryReaderSync":{"title":"DirectoryReaderSync","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>13\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<div><strong>`DRAFT</strong> <div>This page is not complete.</div>\n</div>\n<p>The <code>DirectoryReaderSync</code> interface of the <a title=\"en/DOM/File_API/File_System_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File_API/File_System_API\">FileSystem API</a> lets a user list files and directories in a directory.</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/DirectoryReaderSync"},"NotificationCenter":{"title":"Search Results | Mozilla Developer Network","members":[],"srcUrl":"https://developer.mozilla.org/en-US/search?q=NotificationCenter","skipped":true,"cause":"Suspect title"},"HTMLAllCollection":{"title":"Gecko DOM Referenz","members":[],"srcUrl":"https://developer.mozilla.org/de/Gecko-DOM-Referenz","skipped":true,"cause":"Suspect title"},"SVGAnimatedNumber":{"title":"SVGAnimatedNumber","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedNumber</code> interface is used for attributes of basic type <a title=\"https://developer.mozilla.org/en/SVG/Content_type#Number\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Content_type#Number\"><Number></a> which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"If the given attribute or property is being animated, contains the current animated value of the attribute or property. If the given attribute or property is not currently being animated, contains the same value as <code>baseVal</code>.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedNumber"},"WorkerContext":{"title":"Using web workers","members":[],"srcUrl":"https://developer.mozilla.org/En/Using_web_workers","skipped":true,"cause":"Suspect title"},"SVGPathSegLinetoVerticalRel":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"EntityReference":{"title":"EntityReference","summary":"<p><span>NOTE: This is not implemented in Mozilla</span></p>\n<p>Read-only reference to an entity reference in the DOM tree. Has no properties or methods of its own but inherits from <a class=\"internal\" title=\"En/DOM/Node\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Node\"><code>Node</code></a>.</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/EntityReference","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...ml#ID-11C98490"},"FileCallback":{"title":"FileEntrySync","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/FileEntrySync","skipped":true,"cause":"Suspect title"},"SVGTests":{"title":"SVGTests","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>12.0 (12)\n</td> <td>9.0</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>12.0 (12)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"Interface <code>SVGTests</code> defines an interface which applies to all elements which have attributes \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/requiredFeatures\">requiredFeatures</a></code>, \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/requiredExtensions\" class=\"new\">requiredExtensions</a></code> and \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/systemLanguage\" class=\"new\">systemLanguage</a></code>.","members":[{"name":"hasExtension","help":"Returns true if the browser supports the given extension, specified by a URI.","obsolete":false},{"name":"requiredFeatures","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/requiredFeatures\">requiredFeatures</a></code> on the given element.","obsolete":false},{"name":"requiredExtensions","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/requiredExtensions\" class=\"new\">requiredExtensions</a></code> on the given element.","obsolete":false},{"name":"systemLanguage","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/systemLanguage\" class=\"new\">systemLanguage</a></code> on the given element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGTests"},"WorkerLocation":{"title":"Using web workers","members":[],"srcUrl":"https://developer.mozilla.org/En/Using_web_workers","skipped":true,"cause":"Suspect title"},"HTMLSelectElement":{"title":"HTMLSelectElement","examples":["<h5 class=\"editable\">Examples</h5>\n<div id=\"section_8\"><span id=\"Creating_Elements_from_Scratch\"></span><h6 class=\"editable\">Creating Elements from Scratch</h6>\n\n <pre name=\"code\" class=\"js\">var sel = document.createElement(\"select\");\nvar opt1 = document.createElement(\"option\");\nvar opt2 = document.createElement(\"option\");\n\nopt1.value = \"1\";\nopt1.text = \"Option: Value 1\";\n\nopt2.value = \"2\";\nopt2.text = \"Option: Value 2\";\n\nsel.add(opt1, null);\nsel.add(opt2, null);\n\n/*\n Produces the following, conceptually:\n\n <select>\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n </select>\n*/</pre>\n \n<p>From \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> and <span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Gecko 7.0</span> the before parameter is optional. So the following is accepted.</p>\n<pre class=\"deki-transform\">...\nsel.add(opt1);\nsel.add(opt2);\n...\n</pre>\n</div><div id=\"section_9\"><span id=\"Append_to_an_Existing_Collection\"></span><h6 class=\"editable\">Append to an Existing Collection</h6>\n\n <pre name=\"code\" class=\"js\">var sel = document.getElementById(\"existingList\");\n\nvar opt = document.createElement(\"option\");\nopt.value = \"3\";\nopt.text = \"Option: Value 3\";\n\nsel.add(opt, null);\n\n/*\n Takes the existing following select object:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n </select>\n\n And changes it to:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n <option value=\"3\">Option: Value 3</option>\n </select>\n*/</pre>\n \n<p>From \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> and <span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Gecko 7.0</span> the before parameter is optional. So the following is accepted.</p>\n<pre class=\"deki-transform\">...\nsel.add(opt);\n...\n</pre>\n</div><div id=\"section_10\"><span id=\"Inserting_to_an_Existing_Collection\"></span><h6 class=\"editable\">Inserting to an Existing Collection</h6>\n\n <pre name=\"code\" class=\"js\">var sel = document.getElementById(\"existingList\");\n\nvar opt = document.createElement(\"option\");\nopt.value = \"3\";\nopt.text = \"Option: Value 3\";\n\nsel.add(opt, sel.options[1]);\n\n/*\n Takes the existing following select object:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n </select>\n\n And changes it to:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"3\">Option: Value 3</option>\n <option value=\"2\">Option: Value 2</option>\n </select>\n*/</pre>\n \n<dl> <dt></dt>\n</dl>\n<p>\n\n</p><div><span>Obsolete since Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n</span><span id=\"blur()\"></span></div></div>","<h5 class=\"editable\">Example</h5>\n\n <pre name=\"code\" class=\"js\">var sel = document.getElementById(\"existingList\");\nsel.remove(1);\n\n/*\n Takes the existing following select object:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n <option value=\"3\">Option: Value 3</option>\n </select>\n\n And changes it to:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"3\">Option: Value 3</option>\n </select>\n*/</pre>","<h4 class=\"editable\">Get information about the selected option</h4>\n\n <pre name=\"code\" class=\"js\">/* assuming we have the following HTML\n<select id='s'>\n <option>First</option>\n <option selected>Second</option>\n <option>Third</option>\n</select>\n*/\n\nvar select = document.getElementById('s');\n\n// return the index of the selected option\nalert(select.selectedIndex); // 1\n\n// return the value of the selected option\nalert(select.options[select.selectedIndex].value) // Second</pre>"],"summary":"<code>DOM select</code> elements share all of the properties and methods of other HTML elements described in the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a></code>\n section. They also have the specialized interface <a class=\"external\" title=\"http://dev.w3.org/html5/spec/the-button-element.html#htmlselectelement\" rel=\"external\" href=\"http://dev.w3.org/html5/spec/the-button-element.html#htmlselectelement\" target=\"_blank\">HTMLSelectElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\"external\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-94282980\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-94282980\" target=\"_blank\">HTMLSelectElement</a>).","members":[{"name":"setCustomValidity","help":"<p><span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> only. Sets the custom validity message for the selection element to the specified message. Use the empty string to indicate that the element does <em>not</em> have a custom validity error.</p>\n\n<div id=\"section_22\"><span id=\"Parameters_8\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>error</code></dt> <dd>The string to use for the custom validity message.</dd>\n</dl></div>","idl":"<pre class=\"eval\">void setCustomValidity(\n in DOMString error\n);\n</pre>","obsolete":false},{"name":"add","help":"<p>Adds an element to the collection of <code>option</code> elements for this <code>select</code> element.</p>\n\n<div id=\"section_6\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>element</code></dt> <dd>An item to add to the collection of options.</dd> <dt><code>before</code> \n<span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Optional from Gecko 7.0</span>\n</dt> <dd>An item (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> index of an item) that the new item should be inserted before. If this parameter is <code>null</code> (or the index does not exist), the new element is appended to the end of the collection.</dd>\n</dl>\n<div id=\"section_7\"><span id=\"Examples\"></span><h5 class=\"editable\">Examples</h5>\n<div id=\"section_8\"><span id=\"Creating_Elements_from_Scratch\"></span><h6 class=\"editable\">Creating Elements from Scratch</h6>\n\n <pre name=\"code\" class=\"js\">var sel = document.createElement(\"select\");\nvar opt1 = document.createElement(\"option\");\nvar opt2 = document.createElement(\"option\");\n\nopt1.value = \"1\";\nopt1.text = \"Option: Value 1\";\n\nopt2.value = \"2\";\nopt2.text = \"Option: Value 2\";\n\nsel.add(opt1, null);\nsel.add(opt2, null);\n\n/*\n Produces the following, conceptually:\n\n <select>\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n </select>\n*/</pre>\n \n<p>From \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> and <span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Gecko 7.0</span> the before parameter is optional. So the following is accepted.</p>\n<pre class=\"deki-transform\">...\nsel.add(opt1);\nsel.add(opt2);\n...\n</pre>\n</div><div id=\"section_9\"><span id=\"Append_to_an_Existing_Collection\"></span><h6 class=\"editable\">Append to an Existing Collection</h6>\n\n <pre name=\"code\" class=\"js\">var sel = document.getElementById(\"existingList\");\n\nvar opt = document.createElement(\"option\");\nopt.value = \"3\";\nopt.text = \"Option: Value 3\";\n\nsel.add(opt, null);\n\n/*\n Takes the existing following select object:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n </select>\n\n And changes it to:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n <option value=\"3\">Option: Value 3</option>\n </select>\n*/</pre>\n \n<p>From \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> and <span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Gecko 7.0</span> the before parameter is optional. So the following is accepted.</p>\n<pre class=\"deki-transform\">...\nsel.add(opt);\n...\n</pre>\n</div><div id=\"section_10\"><span id=\"Inserting_to_an_Existing_Collection\"></span><h6 class=\"editable\">Inserting to an Existing Collection</h6>\n\n <pre name=\"code\" class=\"js\">var sel = document.getElementById(\"existingList\");\n\nvar opt = document.createElement(\"option\");\nopt.value = \"3\";\nopt.text = \"Option: Value 3\";\n\nsel.add(opt, sel.options[1]);\n\n/*\n Takes the existing following select object:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n </select>\n\n And changes it to:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"3\">Option: Value 3</option>\n <option value=\"2\">Option: Value 2</option>\n </select>\n*/</pre>\n \n<dl> <dt></dt>\n</dl>\n<p>\n\n</p><div><span>Obsolete since Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n</span><span id=\"blur()\"></span></div></div></div></div>","idl":"<pre class=\"eval\">void add(\n in nsIDOMHTMLElement element,\n in nsIDOMHTMLElement before \n<span style=\"border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;\" title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Optional from Gecko 7.0</span>\n\n);\nvoid add(\n in HTMLElement element,\n in long before \n<span style=\"border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;\" title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Optional from Gecko 7.0</span>\n\n);\n</pre>","obsolete":false},{"name":"item","help":"<div id=\"section_14\"><p><span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> Gets an item from the options collection for this <code>select</code> element. You can also access an item by specifying the index in array-style brackets or parentheses, without calling this method explicitly.</p>\n\n</div><div id=\"section_15\"><span id=\"Parameters_5\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>index</code></dt> <dd>The zero-based index into the collection of the option to get.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Return_value_2\"></span><h6 class=\"editable\">Return value</h6>\n<p>The node at the specified index, or <code>null</code> if such a node does not exist in the collection.</p>\n<p>\n</p><div>\n<span id=\"namedItem()\"></span></div></div>","idl":"<pre class=\"eval\">nsIDOMNode item(\n in unsigned long index\n);\n</pre>","obsolete":false},{"name":"remove","help":"<p>Removes the element at the specified index from the options collection for this select element.</p>\n\n<div id=\"section_20\"><span id=\"Parameters_7\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>index</code></dt> <dd>The zero-based index of the option element to remove from the collection.</dd>\n</dl>\n<div id=\"section_21\"><span id=\"Example\"></span><h5 class=\"editable\">Example</h5>\n\n <pre name=\"code\" class=\"js\">var sel = document.getElementById(\"existingList\");\nsel.remove(1);\n\n/*\n Takes the existing following select object:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"2\">Option: Value 2</option>\n <option value=\"3\">Option: Value 3</option>\n </select>\n\n And changes it to:\n\n <select id=\"existingList\" name=\"existingList\">\n <option value=\"1\">Option: Value 1</option>\n <option value=\"3\">Option: Value 3</option>\n </select>\n*/</pre>\n \n<p>\n</p><div>\n<span id=\"setCustomValidity()\"></span></div></div></div>","idl":"<pre class=\"eval\">void remove(\n in long index\n);\n</pre>","obsolete":false},{"name":"focus","help":"<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> Gives input focus to this element. \n\n<span title=\"\">Obsolete since <a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","idl":"<pre class=\"eval\">void focus();\n</pre>","obsolete":false},{"name":"blur","help":"<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> Removes input focus from this element. \n\n<span title=\"\">Obsolete since <a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","idl":"<pre class=\"eval\">void blur();\n</pre>","obsolete":false},{"name":"namedItem","help":"<div id=\"section_16\"><p><span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> Gets the item in the options collection with the specified name. The name string can match either the <strong>id</strong> or the <strong>name</strong> attribute of an option node. You can also access an item by specifying the name in array-style brackets or parentheses, without calling this method explicitly.</p>\n\n</div><div id=\"section_17\"><span id=\"Parameters_6\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>name</code></dt> <dd>The name of the option to get.</dd>\n</dl>\n</div><div id=\"section_18\"><span id=\"Return_value_3\"></span><h6 class=\"editable\">Return value</h6>\n<ul> <li>A node, if there is exactly one match.</li> <li><code>null</code> if there are no matches.</li> <li>A <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/NodeList\">NodeList</a></code>\n in tree order of nodes whose <strong>name</strong> or <strong>id</strong> attributes match the specified name.</li>\n</ul>\n</div>","idl":"<pre class=\"eval\">nsIDOMNode namedItem(\n in DOMString name\n);\n</pre>","obsolete":false},{"name":"checkValidity","help":"<div id=\"section_11\"><p><span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> Checks whether the element has any constraints and whether it satisfies them. If the element fails its constraints, the browser fires a cancelable <code>invalid</code> event at the element (and returns false).</p>\n\n</div><div id=\"section_12\"><span id=\"Parameters_3\"></span>\n\n</div><div id=\"section_13\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A <code>false</code> value if the <code>select</code> element is a candidate for constraint evaluation and it does not satisfy its constraints. Returns true if the element is not constrained, or if it satisfies its constraints.</p>\n<p>\n\n</p><div><span>Obsolete since Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n</span><span id=\"focus()\"></span></div></div>","idl":"<pre class=\"eval\">boolean checkValidity();\n</pre>","obsolete":false},{"name":"autofocus","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/select#attr-autofocus\">autofocus</a></code>\n HTML attribute, which indicates whether the control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Requires Gecko 2.0</span>","obsolete":false},{"name":"disabled","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/select#attr-disabled\">disabled</a></code>\n HTML attribute, which indicates whether the control is disabled. If it is disabled, it does not accept clicks.","obsolete":false},{"name":"form","help":"The form that this element is associated with. If this element is a descendant of a form element, then this attribute is the ID of that form element. If the element is not a descendant of a form element, then: <ul> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> The attribute can be the ID of any form element in the same document.</li> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> The attribute is null.</li> </ul> <strong>Read only.</strong>","obsolete":false},{"name":"labels","help":"A list of label elements associated with this select element.","obsolete":false},{"name":"length","help":"The number of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/option\"><option></a></code>\n elements in this <code>select</code> element.","obsolete":false},{"name":"multiple","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/select#attr-multiple\">multiple</a></code>\n HTML attribute, whichindicates whether multiple items can be selected.","obsolete":false},{"name":"name","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/select#attr-name\">name</a></code>\n HTML attribute, containing the name of this control used by servers and DOM search functions.","obsolete":false},{"name":"options","help":"The set of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/option\"><option></a></code>\n elements contained by this element. <strong>Read only.</strong>","obsolete":false},{"name":"required","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/select#attr-required\">required</a></code>\n HTML attribute, which indicates whether the user is required to select a value before submitting the form. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Requires Gecko 2.0</span>","obsolete":false},{"name":"selectedIndex","help":"The index of the first selected <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/option\"><option></a></code>\n element.","obsolete":false},{"name":"selectedOptions","help":"The set of options that are selected. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":false},{"name":"size","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/select#attr-size\">size</a></code>\n HTML attribute, which contains the number of visible items in the control. The default is 1, \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> unless <strong>multiple</strong> is true, in which case it is 4.","obsolete":false},{"name":"tabIndex","help":"The element's position in the tabbing order. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> \n\n<span title=\"\">Obsolete since <a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/select.type","name":"type","help":"The form control's type. When <strong>multiple</strong> is true, it returns <code>select-multiple</code>; otherwise, it returns <code>select-one</code>.<strong>Read only.</strong>","obsolete":false},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the control does not satisfy (if any). This attribute is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.<strong>Read only.</strong> \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Requires Gecko 2.0</span>","obsolete":false},{"name":"validity","help":"The validity states that this control is in. <strong>Read only.</strong> \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Requires Gecko 2.0</span>","obsolete":false},{"name":"value","help":"The value of this form control, that is, of the first selected option.","obsolete":false},{"name":"willValidate","help":"Indicates whether the button is a candidate for constraint validation. It is false if any conditions bar it from constraint validation. <strong>Read only.</strong> \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Requires Gecko 2.0</span>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLSelectElement"},"HTMLFieldSetElement":{"title":"HTMLFieldSetElement","summary":"DOM <code>fieldset</code> elements expose the <a class=\" external\" title=\"http://dev.w3.org/html5/spec/forms.html#htmlfieldsetelement\" rel=\"external\" href=\"http://dev.w3.org/html5/spec/forms.html#htmlfieldsetelement\" target=\"_blank\">HTMLFieldSetElement</a> (\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-7365882\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-7365882\" target=\"_blank\">HTMLFieldSetElement</a>) interface, which provides special properties and methods (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of field-set elements.","members":[{"name":"checkValidity","help":"Always returns true because <code>fieldset</code> objects are never candidates for constraint validation.","obsolete":false},{"name":"setCustomValidity","help":"Sets a custom validity message for the field set. If this message is not the empty string, then the field set is suffering from a custom validity error, and does not validate.","obsolete":false},{"name":"disabled","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/fieldset#attr-disabled\">disabled</a></code>\n HTML attribute, indicating whether the user can interact with the control.","obsolete":false},{"name":"elements","help":"The elements belonging to this field set.","obsolete":false},{"name":"form","help":"The containing form element, if this element is in a form. Otherwise, the element the <a title=\"en/HTML/Element/fieldset#attr-name\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Element/fieldset#attr-name\">name content attribute</a> points to \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>. (<code>null</code> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span>.)","obsolete":false},{"name":"name","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/fieldset#attr-name\">name</a></code>\n HTML attribute, containing the name of the field set, used for submitting the form.","obsolete":false},{"name":"type","help":"Must be the string <code>fieldset</code>.","obsolete":false},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the element does not satisfy (if any). This is the empty string if the element is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.","obsolete":false},{"name":"validity","help":"The validity states that this element is in.","obsolete":false},{"name":"willValidate","help":"Always false because <code>fieldset</code> objects are never candidates for constraint validation.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLFieldSetElement"},"CompositionEvent":{"title":"CompositionEvent","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0 (9.0)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>9.0 (9.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/CompositionEvent","specification":"DOM Level 3: Composition Events","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOM_event_reference/compositionstart\">compositionstart</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOM_event_reference/compositionend\">compositionend</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOM_event_reference/compositionupdate\">compositionupdate</a></code>\n</li> <li><a title=\"UIEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Event/UIEvent\">UIEvent</a></li> <li><a title=\"Event\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/event\">Event</a></li>","summary":"<div><div>\n\n<a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/events/nsIDOMCompositionEvent.idl\"><code>dom/interfaces/events/nsIDOMCompositionEvent.idl</code></a><span><a rel=\"internal\" href=\"https://developer.mozilla.org/en/Interfaces/About_Scriptable_Interfaces\" title=\"en/Interfaces/About_Scriptable_Interfaces\">Scriptable</a></span></div><span>An event interface for composition events</span><div><div>1.0</div><div>11.0</div><div></div><div>Introduced</div><div>Gecko 9.0</div><div title=\"Introduced in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n\"></div><div title=\"Last changed in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n\"></div></div>\n<div>Inherits from: <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsIDOMUIEvent&ident=nsIDOMUIEvent\" class=\"new\">nsIDOMUIEvent</a></code>\n<span>Last changed in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n</span></div></div>\n<p></p>\n<p>The DOM <code>CompositionEvent</code> represents events that occur due to the user indirectly entering text.</p>","members":[{"name":"initCompositionEvent","help":"<p>Initializes the attributes of a composition event.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>typeArg</code></dt> <dd>The type of composition event; this will be one of <code>compositionstart</code>, <code>compositionupdate</code>, or <code>compositionend</code>.</dd> <dt><code>canBubbleArg</code></dt> <dd>Whether or not the event can bubble.</dd> <dt><code>cancelableArg</code></dt> <dd>Whether or not the event can be canceled.</dd> <dt><code>viewArg</code></dt> <dd>?</dd> <dt><code>dataArg</code></dt> <dd>The value of the <code>data</code> attribute.</dd> <dt><code>localeArg</code></dt> <dd>The value of the <code>locale</code> attribute.</dd>\n</dl>\n</div>","idl":"<pre>void initCompositionEvent(\n in DOMString typeArg,\n in boolean canBubbleArg,\n in boolean cancelableArg,\n in views::AbstractView viewArg,\n in DOMString dataArg,\n in DOMString localeArg\n);\n</pre>","obsolete":false},{"name":"data","help":"<p>For <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOM_event_reference/compositionstart\">compositionstart</a></code>\n events, this is the currently selected text that will be replaced by the string being composed. This value doesn't change even if content changes the selection range; rather, it indicates the string that was selected when composition started.</p> <p>For <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOM_event_reference/compositionupdate\">compositionupdate</a></code>\n, this is the string as it stands currently as editing is ongoing.</p> <p>For <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOM_event_reference/compositionend\">compositionend</a></code>\n events, this is the string as committed to the editor.</p> <p><strong>Read only</strong>.</p>","obsolete":false},{"name":"locale","help":"The locale of current input method (for example, the keyboard layout locale if the composition is associated with IME). <strong>Read only.</strong>","obsolete":false}]},"SVGRadialGradientElement":{"title":"SVGRadialGradientElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGRadialGradientElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/radialGradient\"><radialGradient></a></code>\n element.","members":[{"name":"cx","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/cx\">cx</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/radialGradient\"><radialGradient></a></code>\n element.","obsolete":false},{"name":"cy","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/cy\">cy</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/radialGradient\"><radialGradient></a></code>\n element.","obsolete":false},{"name":"fx","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/fx\" class=\"new\">fx</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/radialGradient\"><radialGradient></a></code>\n element.","obsolete":false},{"name":"fy","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/fy\" class=\"new\">fy</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/radialGradient\"><radialGradient></a></code>\n element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGRadialGradientElement"},"TextMetrics":{"title":"TextMetrics","summary":"Returned by <a title=\"CanvasRenderingContext2D\" rel=\"internal\" href=\"https://developer.mozilla.org/CanvasRenderingContext2D\" class=\"new \">CanvasRenderingContext2D</a>'s <a title=\"CanvasRenderingContext2D.measureText\" rel=\"internal\" href=\"https://developer.mozilla.org/CanvasRenderingContext2D.measureText\" class=\"new \">measureText</a> method.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/TextMetrics","specification":"http://www.whatwg.org/specs/web-apps...ml#textmetrics"},"SVGScriptElement":{"title":"SVGScriptElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGScriptElement</code> interface corresponds to the SVG <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/script\"><script></a></code>\n element.","members":[{"name":"type","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/type\" class=\"new\">type</a></code> on the given element. A <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n is raised with code <code>NO_MODIFICATION_ALLOWED_ERR</code> on an attempt to change the value of a read only attribut.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGScriptElement"},"SVGFEBlendElement":{"title":"feBlend","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The <code>feBlend</code> filter composes two objects together ruled by a certain blending mode. This is similar to what is known from image editing software when blending two layers. The mode is defined by the \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/mode\" class=\"new\">mode</a></code> attribute.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in2","name":"in2","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/mode","name":"mode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in","name":"in","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feBlend"},"HTMLAreaElement":{"title":"HTMLAreaElement","summary":"DOM area objects expose the <a class=\" external\" title=\"http://www.w3.org/TR/html5/the-map-element.html#htmlareaelement\" rel=\"external\" href=\"http://www.w3.org/TR/html5/the-map-element.html#htmlareaelement\" target=\"_blank\">HTMLAreaElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26019118\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26019118\" target=\"_blank\"><code>HTMLAreaElement</code></a>) interface, which provides special properties and methods (beyond the regular <a href=\"https://developer.mozilla.org/en/DOM/element\" rel=\"internal\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of area elements.","members":[{"name":"accessKey","help":"A single character that switches input focus to the control. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"alt","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-alt\">alt</a></code>\n HTML attribute, containing alternative text for the element.","obsolete":false},{"name":"coords","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-coords\">coords</a></code>\n HTML attribute, containing coordinates to define the hot-spot region.","obsolete":false},{"name":"hash","help":"The fragment identifier (including the leading hash mark (#)), if any, in the referenced URL.","obsolete":false},{"name":"host","help":"The hostname and port (if it's not the default port) in the referenced URL.","obsolete":false},{"name":"hostname","help":"The hostname in the referenced URL.","obsolete":false},{"name":"href","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-href\">href</a></code>\n HTML attribute, containing a valid URL of a linked resource.","obsolete":false},{"name":"hreflang","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-hreflang\">hreflang</a></code>\n HTML attribute, indicating the language of the linked resource.","obsolete":false},{"name":"media","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-media\">media</a></code>\n HTML attribute, indicating target media of the linked resource.","obsolete":false},{"name":"noHref","help":"Indicates that this area is inactive. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"pathname","help":"The path name component, if any, of the referenced URL.","obsolete":false},{"name":"port","help":"The port component, if any, of the referenced URL.","obsolete":false},{"name":"protocol","help":"The protocol component (including trailing colon (:)), of the referenced URL.","obsolete":false},{"name":"rel","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-rel\">rel</a></code>\n HTML attribute, indicating relationships of the current document to the linked resource.","obsolete":false},{"name":"relList","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-rel\">rel</a></code>\n HTML attribute, indicating relationships of the current document to the linked resource, as a list of tokens.","obsolete":false},{"name":"search","help":"The search element (including leading question mark (?)), if any, of the referenced URL","obsolete":false},{"name":"shape","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-shape\">shape</a></code>\n HTML attribute, indicating the shape of the hot-spot, limited to known values.","obsolete":false},{"name":"tabIndex","help":"The element's position in the tabbin order. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"target","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-target\">target</a></code>\n HTML attribute, indicating the browsing context in which to open the linked resource.","obsolete":false},{"name":"type","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area#attr-type\">type</a></code>\n HTML attribute, indicating the MIME type of the linked resource.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLAreaElement"},"SQLError":{"title":"User talk:sdwilsh","members":[],"srcUrl":"https://developer.mozilla.org/User_talk:sdwilsh","skipped":true,"cause":"Suspect title"},"HTMLTableSectionElement":{"title":"thead","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.0 (1.7 or earlier)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>align/valign</code> attribute</td> <td>1.0</td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=915\" class=\"external\" title=\"\">\nbug 915</a>\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>char/charoff</code> attribute</td> <td>1.0</td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=2212\" class=\"external\" title=\"\">\nbug 2212</a>\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>bgcolor</code> attribute </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>align/valign</code> attribute</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=915\" class=\"external\" title=\"\">\nbug 915</a>\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>char/charoff</code> attribute</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=2212\" class=\"external\" title=\"\">\nbug 2212</a>\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>bgcolor</code> attribute </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody>\n</table>\n</div>","examples":["See <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/table\"><table></a></code>\n for examples on<code> <thead></code>."],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/thead","seeAlso":"<li>Other table-related HTML Elements: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/caption\"><caption></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/col\"><col></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/colgroup\"><colgroup></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/table\"><table></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/tbody\"><tbody></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/td\"><td></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/tfoot\"><tfoot></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/th\"><th></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/tr\"><tr></a></code>\n;</li> <li>CSS properties and pseudo-classes that may be specially useful to style the <span><thead></span> element: <br> <ul> <li>the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/%3Anth-child\">:nth-child</a></code>\n pseudo-class to set the alignment on the cells of the column;</li> <li>the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/text-align\">text-align</a></code>\n property to align all cells content on the same character, like '.'.</li> </ul> </li>","summary":"The <em>HTML Table Head Element</em> (<code><thead></code>) defines a set of rows defining the head of the columns of the table.","members":[{"obsolete":false,"url":"","name":"valign","help":"This attribute specifies the vertical alignment of the text within each row of cells of the table header. Possible values for this attribute are: <ul> <li><span>baseline</span>, which will put the text as close to the bottom of the cell as it is possible, but align it on the <a class=\" external\" title=\"http://en.wikipedia.org/wiki/Baseline_(typography)\" rel=\"external\" href=\"http://en.wikipedia.org/wiki/Baseline_%28typography%29\" target=\"_blank\">baseline</a> of the characters instead of the bottom of them. If characters are all of the size, this has the same effect as <span>bottom</span>.</li> <li><span>bottom</span>, which will put the text as close to the bottom of the cell as it is possible;</li> <li><span>middle</span>, which will center the text in the cell;</li> <li>and <span>top</span>, which will put the text as close to the top of the cell as it is possible.</li> </ul> <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete (and not supported) in the latest standard: instead set the CSS <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/vertical-align\">vertical-align</a></code>\n property on it.</div>"},{"obsolete":false,"url":"","name":"bgcolor","help":"This attribute defines the background color of each cell of the column. It is one of the 6-digit hexadecimal code as defined in <a title=\"http://www.w3.org/Graphics/Color/sRGB\" class=\" external\" rel=\"external\" href=\"http://www.w3.org/Graphics/Color/sRGB\" target=\"_blank\">sRGB</a>, prefixed by a '#'. One of the sixteen predefined color strings may be used: <table width=\"80%\" cellspacing=\"10\" cellpadding=\"0\" border=\"0\" align=\"center\" summary=\"Table of color names and their sRGB values\"> <tbody> <tr> <td> </td> <td><span>black</span> = \"#000000\"</td> <td> </td> <td><span>green</span> = \"#008000\"</td> </tr> <tr> <td> </td> <td><span>silver</span> = \"#C0C0C0\"</td> <td> </td> <td><span>lime</span> = \"#00FF00\"</td> </tr> <tr> <td> </td> <td><span>gray</span> = \"#808080\"</td> <td> </td> <td><span>olive</span> = \"#808000\"</td> </tr> <tr> <td> </td> <td><span>white</span> = \"#FFFFFF\"</td> <td> </td> <td><span>yellow</span> = \"#FFFF00\"</td> </tr> <tr> <td> </td> <td><span>maroon</span> = \"#800000\"</td> <td> </td> <td><span>navy</span> = \"#000080\"</td> </tr> <tr> <td> </td> <td><span>red</span> = \"#FF0000\"</td> <td> </td> <td><span>blue</span> = \"#0000FF\"</td> </tr> <tr> <td> </td> <td><span>purple</span> = \"#800080\"</td> <td> </td> <td><span>teal</span> = \"#008080\"</td> </tr> <tr> <td> </td> <td><span>fuchsia</span> = \"#FF00FF\"</td> <td> </td> <td><span>aqua</span> = \"#00FFFF\"</td> </tr> </tbody> </table> <div class=\"note\"><strong>Usage note: </strong>Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/thead\"><thead></a></code>\n element should be styled using <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a>. To give a similar effect to the <strong>bgcolor</strong> attribute, use the <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a> property <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/background-color\">background-color</a></code>\n, on the relevant <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/td\"><td></a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/th\"><th></a></code>\n elements.</div>"},{"obsolete":false,"url":"","name":"char","help":"This attribute is used to set the character to align the cells in a column on. Typical values for this include a period (.) when attempting to align numbers or monetary values. If \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/tr#attr-align\">align</a></code>\n is not set to <span>char</span>, this attribute is ignored. <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete (and not supported) in the latest standard. To achieve the same effect as the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/thead#attr-char\">char</a></code>\n, in CSS3, you can use the character set using the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/thead#attr-char\">char</a></code>\n attribute as the value of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/text-align\">text-align</a></code>\n property \n<span class=\"unimplementedInlineTemplate\">Unimplemented</span>\n.</div>"},{"obsolete":false,"url":"","name":"align","help":"This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are: <ul> <li><span>left</span>, aligning the content to the left of the cell</li> <li><span>center</span>, centering the content in the cell</li> <li><span>right</span>, aligning the content to the right of the cell</li> <li><span>justify</span>, inserting spaces into the textual content so that the content is justified in the cell</li> <li><span>char</span>, aligning the textual content on a special character with a minimal offset, defined by the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/thead#attr-char\">char</a></code>\n and \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/thead#attr-charoff\">charoff</a></code>\n attributes \n<span class=\"unimplementedInlineTemplate\">Unimplemented (see<a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=2212\" class=\"external\" title=\"\">\nbug 2212</a>\n)</span>\n.</li> </ul> <p>If this attribute is not set, the <span>left</span> value is assumed.</p> <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete (not supported) in the latest standard. <ul> <li>To achieve the same effect as the <span>left</span>, <span>center</span>, <span>right</span> or <span>justify</span> values, use the CSS <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/text-align\">text-align</a></code>\n property on it.</li> <li>To achieve the same effect as the <span>char</span> value, in CSS3, you can use the value of the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/thead#attr-char\">char</a></code>\n as the value of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/text-align\">text-align</a></code>\n property \n<span class=\"unimplementedInlineTemplate\">Unimplemented</span>\n.</li> </ul> </div>"},{"obsolete":false,"url":"","name":"charoff","help":"This attribute is used to indicate the number of characters to offset the column data from the alignment characters specified by the <strong>char</strong> attribute. <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete (and not supported) in the latest standard.</div>"}]},"SVGNumberList":{"title":"SVGNumberList","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"<p>The <code>SVGNumberList</code> defines a list of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGNumber\">SVGNumber</a></code>\n objects.</p>\n<p>An <code>SVGNumberList</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>\n<div class=\"geckoVersionNote\"> <p>\n</p><div class=\"geckoVersionHeading\">Gecko 5.0 note<div>(Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n</div></div>\n<p></p> <p>Starting in Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n,the <code>SVGNumberList</code> DOM interface is now indexable and can be accessed like arrays</p>\n</div>","members":[{"name":"clear","help":"<p>Clears all existing current items from the list, with the result being an empty list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"initialize","help":"<p>Clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter. If the inserted item is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. The return value is the item inserted into the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"getItem","help":"<p>Returns the specified item from the list. The returned item is the item itself and not a copy. Any changes made to the item are immediately reflected in the list. The first item is number 0.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"insertItemBefore","help":"<p>Inserts a new item into the list at the specified position. The first item is number 0. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. If the item is already in this list, note that the index of the item to insert before is before the removal of the item. If the <code>index</code> is equal to 0, then the new item is inserted at the front of the list. If the index is greater than or equal to <code>numberOfItems</code>, then the new item is appended to the end of the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"replaceItem","help":"<p>Replaces an existing item in the list with a new item. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. If the item is already in this list, note that the index of the item to replace is before the removal of the item.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>","obsolete":false},{"name":"removeItem","help":"<p>Removes an existing item from the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>","obsolete":false},{"name":"appendItem","help":"<p>Inserts a new item at the end of the list. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"numberOfItem","help":"The number of items in the list.","obsolete":false},{"name":"length","help":"The number of items in the list.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGNumberList"},"HTMLFrameSetElement":{"title":"frameset","summary":"<code><frameset></code> is an HTML element which is used to contain <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/frame\"><frame></a></code>\n elements.","members":[],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/frameset"},"ClientRectList":{"title":"Interface documentation status","members":[],"srcUrl":"https://developer.mozilla.org/User:trevorh/Interface_documentation_status","skipped":true,"cause":"Suspect title"},"SVGStylable":{"title":"SVGStylable","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGStylable</code> interface is implemented on all objects corresponding to SVG elements that can have \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/style\">style</a></code>, {{SVGAttr(\"class\") and presentation attributes specified on them.","members":[{"name":"getPresentationAttribute","help":"Returns the base (i.e., static) value of a given presentation attribute as an object of type <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/CSSValue\" class=\"new\">CSSValue</a></code>\n. The returned object is live; changes to the objects represent immediate changes to the objects to which the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/CSSValue\" class=\"new\">CSSValue</a></code>\n is attached.","obsolete":false},{"name":"className","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/class\">class</a></code> on the given element.","obsolete":false},{"name":"style","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/style\">style</a></code> on the given element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGStylable"},"SVGPaint":{"title":"Content type","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Content_type","skipped":true,"cause":"Suspect title"},"SVGImageElement":{"title":"SVGImageElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGImageElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/image\"><image></a></code>\n element.","members":[{"name":"width","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/width\">width</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/image\"><image></a></code>\n element.","obsolete":false},{"name":"height","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/height\">height</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/image\"><image></a></code>\n element.","obsolete":false},{"name":"preserveAspectRatio","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/image\"><image></a></code>\n element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGImageElement"},"MediaQueryListListener":{"title":"MediaQueryListListener","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/MediaQueryListListener","specification":"The CSSOM View Module: The MediaQueryList Interface","seeAlso":"<li><a title=\"En/CSS/Media queries\" rel=\"internal\" href=\"https://developer.mozilla.org/En/CSS/Media_queries\">Media queries</a></li> <li><a title=\"en/CSS/Using media queries from code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/Using_media_queries_from_code\">Using media queries from code</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/MediaQueryList\">MediaQueryList</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.matchMedia\">window.matchMedia()</a></code>\n</li>","summary":"<div><strong>DRAFT</strong>\n<div>This page is not complete.</div>\n</div>\n\n<p></p>\n<p>A <code>MediaQueryList</code> object maintains a list of <a title=\"En/CSS/Media queries\" rel=\"internal\" href=\"https://developer.mozilla.org/En/CSS/Media_queries\">media queries</a> on a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document\">document</a></code>\n, and handles sending notifications to listeners when the media queries on the document change.</p>\n<p>This makes it possible to observe a document to detect when its media queries change, instead of polling the values periodically, if you need to programmatically detect changes to the values of media queries on a document.</p>","members":[]},"HTMLLinkElement":{"title":"link","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.0 (1.7 or earlier)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td>Alternative stylesheets</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.0 (1.9)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>disabled</code> attribute </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>methods</code> attribute </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td>4.0</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>sizes</code> attribute</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=441770\" class=\"external\" title=\"\">\nbug 441770</a>\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>load</code> and <code>error</code> events</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>9.0 (9.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td>Alternative stylesheets</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>disabled</code> attribute </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>methods</code> attribute </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td>4.0</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>sizes</code> attribute</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=441770\" class=\"external\" title=\"\">\nbug 441770</a>\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>load</code> and <code>error</code> events</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>9.0 (9.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <em>HTML Link Element</em> (<link>) specifies relationships between the current document and other documents. Possible uses for this element include defining a relational framework for navigation and linking the document to a style sheet.","members":[{"obsolete":false,"url":"","name":"target","help":"Defines the frame or window name that has the defined linking relationship or that will show the rendering of any linked resource."},{"obsolete":false,"url":"","name":"media","help":"This attribute specifies the media which the linked resource applies to. Its value must be a <a title=\"En/CSS/Media queries\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/Media_queries\">media query</a>. This attribute is mainly useful when linking to external stylesheets by allowing the user agent to pick the best adapted one for the device it runs on.<br> <div class=\"note\"><strong>Usage note: </strong> <p> </p> <ul> <li>In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., <a title=\"https://developer.mozilla.org/en/CSS/@media\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/@media\">media types and groups</a>, where defined and allowed as values for this attribute, such as <span>print</span>, <span>screen</span>, <span>aural</span>, <span>braille.</span> HTML5 extended this to any kind of <a title=\"En/CSS/Media queries\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/Media_queries\">media queries</a>, which are a superset of the allowed values of HTML 4.</li> <li>Browsers not supporting the <a title=\"En/CSS/Media queries\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/Media_queries\">CSS3 Media Queries</a> won't necessary recognized the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4.</li> </ul> </div>"},{"obsolete":false,"url":"","name":"hreflang","help":"This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by <a class=\"external\" title=\"http://www.ietf.org/rfc/bcp/bcp47.txt\" rel=\"external\" href=\"http://www.ietf.org/rfc/bcp/bcp47.txt\" target=\"_blank\">BCP47</a> for HTML5 and by <a class=\"external\" title=\"http://www.ietf.org/rfc/rfc1766.txt\" rel=\"external\" href=\"http://www.ietf.org/rfc/rfc1766.txt\" target=\"_blank\">RFC1766</a> for HTML 4. Use this attribute only if the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/a#attr-href\">href</a></code>\n attribute is present."},{"obsolete":false,"url":"","name":"rel","help":"This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the <a title=\"en/HTML/Link types\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Link_types\">link types values</a>. The most common use of this attribute is to specify a link to an external style sheet: the <strong>rel</strong> attribute is set to <code>stylesheet</code>, and the <strong>href</strong> attribute is set to the URL of an external style sheet to format the page. WebTV also supports the use of the value <code>next</code> for <strong>rel</strong> to preload the next page in a document series."},{"obsolete":false,"url":"","name":"sizes","help":"This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/link#attr-rel\">rel</a></code>\n contains the <span>icon</span> <a title=\"en/HTML/Link types\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Link_types\">link types value</a>. It may have the following values: <ul> <li><span>any</span>, meaning that the icon can be scaled to any size as it is in a vectorial format, like <span>image/svg</span>.</li> <li>a white-space separated list of sizes, each in the format <span><em><width in pixels></em>x<em><height in pixels></em></span> or <span><em><width in pixels></em>X<em><height in pixels></em></span>. Each of these sizes must be contained in the resource.</li> </ul> <div class=\"note\"><strong>Usage note: </strong> <p> </p> <ul> <li>Most icon format are only able to store one single icon; therefore most of the time the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element#attr-sizes\">sizes</a></code>\n contains only one entry. Among the major browsers, only the Apple's ICNS format allows the storage of multiple icons, and this format is only supported in WebKit.</li> <li>Apple's iOS does not support this attribute, hence Apple's iPhone and iPad use special, non-standard <a title=\"en/HTML/Link types\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Link_types\">link types values</a> to define icon to be used as Web Clip or start-up placeholder: <span>apple-touch-icon</span> and <span>apple-touch-startup-icon</span>.</li> </ul> </div>"},{"obsolete":false,"url":"","name":"methods","help":"The value of this attribute provides information about the functions that might be performed on an object. The values generally are given by the HTTP protocol when it is used, but it might (for similar reasons as for the <strong>title</strong> attribute) be useful to include advisory information in advance in the link. For example, the browser might choose a different rendering of a link as a function of the methods specified; something that is searchable might get a different icon, or an outside link might render with an indication of leaving the current site. This attribute is not well understood nor supported, even by the defining browser, Internet Explorer 4. See <a class=\"external\" href=\"http://msdn.microsoft.com/en-us/library/ms534168%28VS.85%29.aspx\" rel=\"external nofollow\" target=\"_blank\" title=\"http://msdn.microsoft.com/en-us/library/ms534168(VS.85).aspx\">Methods Property (MSDN)</a>."},{"obsolete":false,"url":"","name":"href","help":"This attribute specifies the <a title=\"https://developer.mozilla.org/en/URIs_and_URLs\" rel=\"internal\" href=\"https://developer.mozilla.org/en/URIs_and_URLs\">URL</a> of the linked resource. A URL might be absolute or relative."},{"obsolete":false,"url":"","name":"charset","help":"This attribute defines the character encoding of the linked resource. The value is a space- and/or comma-delimited list of character sets as defined in <a class=\"external\" title=\"http://tools.ietf.org/html/rfc2045\" rel=\"external\" href=\"http://tools.ietf.org/html/rfc2045\" target=\"_blank\">RFC 2045</a>. The default value is ISO-8859-1. <div class=\"note\"><strong>Usage note: </strong>This attribute is obsolete in HTML5 and <span>must</span><strong> not be used by authors</strong>. To achieve its effect, use the <span>Content-Type:</span> HTTP header on the linked resource.</div>"},{"obsolete":false,"url":"","name":"rev","help":"The value of this attribute shows the relationship of the current document to the linked document, as defined by the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/link#attr-href\">href</a></code>\n attribute. The attribute thus defines the reverse relationship compared to the value of the <strong>rel</strong> attribute. <a title=\"en/HTML/Link types\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Link_types\">Link types values</a> for the attribute are similar to the possible values for \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/link#attr-rel\">rel</a></code>\n.<br> <div class=\"note\"><strong>Usage note: </strong>This attribute is obsolete in HTML5. <strong>Do not use it</strong>. To achieve its effect, use the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/link#attr-rel\">rel</a></code>\n attribute with the opposite <a title=\"en/HTML/Link types\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Link_types\">link types values</a>, e.g. <span>made</span> should be replaced by <span>author</span>. Also this attribute doesn't mean <em>revision</em> and must not be used with a version number, which is unfortunately the case on numerous sites.</div>"},{"obsolete":false,"url":"","name":"type","help":"This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as <strong>text/html</strong>, <strong>text/css</strong>, and so on. The common use of this attribute is to define the type of style sheet linked and the most common current value is <strong>text/css</strong>, which indicates a Cascading Style Sheet format."},{"obsolete":false,"url":"","name":"disabled","help":"This attribute is used to disable a link relationship. In conjunction with scripting, this attribute could be used to turn on and off various style sheet relationships. <div class=\"note\"> <p><strong>Note: </strong>While there is no <code>disabled</code> attribute in the HTML standard, there <strong>is</strong> a <code>disabled</code> attribute on the <code>HTMLLinkElement</code> DOM object.</p> <p>The use of <code>disabled</code> as an HTML attribute is non-standard and only used by some Microsoft browsers. <span>Do not use it</span>. To achieve a similar effect, use one of the following techniques:</p> <ul> <li>If the <code>disabled</code> attribute has been added directly to the element on the page, do not include the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/link\"><link></a></code>\n element instead;</li> <li>Set the <code>disabled</code> <strong>property</strong> of the DOM object via scripting.</li> </ul> </div>"}],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/link"},"CanvasPattern":{"title":"CanvasPattern","summary":"This is an opaque object created by <a title=\"en/DOM/CanvasRenderingContext2D\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D\">CanvasRenderingContext2D</a>'s <a title=\"en/DOM/CanvasRenderingContext2D.createPattern\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D.createPattern\" class=\"new \">createPattern</a> method (whether based on a image, canvas, or video).","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/CanvasPattern","specification":"http://www.whatwg.org/specs/web-apps...#canvaspattern"},"SVGAnimatedAngle":{"title":"SVGAnimatedAngle","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedAngle</code> interface is used for attributes of basic type <a title=\"https://developer.mozilla.org/en/SVG/Content_type#Angle\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Content_type#Angle\"><angle></a> which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"A read only <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGAngle\">SVGAngle</a></code>\n representing the current animated value of the given attribute. If the given attribute is not currently being animated, then the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGAngle\">SVGAngle</a></code>\n will have the same contents as <code>baseVal</code>. The object referenced by <code>animVal</code> will always be distinct from the one referenced by <code>baseVal</code>, even when the attribute is not animated.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedAngle"},"ProgressEvent":{"title":"nsIDOMProgressEvent","seeAlso":"<li><a title=\"En/Using XMLHttpRequest\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest\">Using XMLHttpRequest</a></li> <li><a title=\"En/XMLHttpRequest\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XMLHttpRequest\">XMLHttpRequest</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIXMLHttpRequestEventTarget\">nsIXMLHttpRequestEventTarget</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/nsIXMLHttpRequest\">nsIXMLHttpRequest</a></code>\n</li>","summary":"<div><div>\n\n<a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/events/nsIDOMProgressEvent.idl\"><code>dom/interfaces/events/nsIDOMProgressEvent.idl</code></a><span><a rel=\"internal\" href=\"https://developer.mozilla.org/en/Interfaces/About_Scriptable_Interfaces\" title=\"en/Interfaces/About_Scriptable_Interfaces\">Scriptable</a></span></div><span>This interface represents the events sent with progress information while uploading data using the <code>XMLHttpRequest</code> object.</span><div><div>1.0</div><div>11.0</div><div></div><div>Introduced</div><div>Gecko 1.9.1</div><div title=\"Introduced in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n\"></div><div title=\"Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n\"></div></div>\n<div>Inherits from: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMEvent\">nsIDOMEvent</a></code>\n<span>Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n</span></div></div>\n<p></p>\n<p>The <code>nsIDOMProgressEvent</code> is used in the media elements (<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video\"><video></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/audio\"><audio></a></code>\n) to inform interested code of the progress of the media download. This implementation is a placeholder until the specification is complete, and is compatible with the WebKit ProgressEvent.</p>","members":[{"name":"initProgressEvent","help":"<p>Initializes the progress event object.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>typeArg</code></dt> <dd>The type of event. Must be one of \"<code>abort</code>\", \"<code>error</code>\", \"<code>load</code>\", \"<code>loadstart</code>\", or \"<code>progress</code>\".</dd> <dt><code>canBubbleArg</code></dt> <dd>Specifies whether or not the created event will bubble.</dd> <dt><code>cancelableArg</code></dt> <dd>Specifies whether or not the created event can be canceled.</dd> <dt><code>lengthComputableArg</code></dt> <dd>If the size of the data to be transferred is known, this should be <code>true</code>. Otherwise, specify <code>false</code>.</dd> <dt><code>loadedArg</code></dt> <dd>The number of bytes already transferred. Must be a non-negative value.</dd> <dt><code>totalArg</code></dt> <dd>The total number of bytes to be transferred. If <code>lengthComputable</code> is <code>false</code>, this must be zero.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void initProgressEvent(\n in DOMString typeArg,\n in boolean canBubbleArg,\n in boolean cancelableArg,\n in boolean lengthComputableArg,\n in unsigned long long loadedArg,\n in unsigned long long totalArg\n);\n</pre>","obsolete":false},{"name":"lengthComputable","help":"Specifies whether or not the total size of the transfer is known. <strong>Read only.</strong>","obsolete":false},{"name":"loaded","help":"The number of bytes transferred since the beginning of the operation. This doesn't include headers and other overhead, but only the content itself. <strong>Read only.</strong>","obsolete":false},{"name":"total","help":"The total number of bytes of content that will be transferred during the operation. If the total size is unknown, this value is zero. <strong>Read only.</strong>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMProgressEvent"},"Screen":{"title":"window.screen","examples":["if (screen.pixelDepth < 8) {\n // use low-color version of page\n} else { \n // use regular, colorful page\n}\n"],"summary":"Returns a reference to the screen object associated with the window.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.left","name":"left","help":"Returns the distance in pixels from the left side of the main screen to the left side of the current screen."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.availWidth","name":"availWidth","help":"Returns the amount of horizontal space in pixels available to the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.top","name":"top","help":"Returns the distance in pixels from the top side of the current screen."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.colorDepth","name":"colorDepth","help":"Returns the color depth of the screen."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.height","name":"height","help":"Returns the height of the screen in pixels."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.availLeft","name":"availLeft","help":"Returns the first available pixel available from the left side of the screen."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.pixelDepth","name":"pixelDepth","help":"Gets the bit depth of the screen."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.width","name":"width","help":"Returns the width of the screen."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.availTop","name":"availTop","help":"Specifies the y-coordinate of the first pixel that is not allocated to permanent or semipermanent user interface features."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen.availHeight","name":"availHeight","help":"Specifies the height of the screen, in pixels, minus permanent or semipermanent user interface features displayed by the operating system, such as the Taskbar on Windows."}],"srcUrl":"https://developer.mozilla.org/en/DOM/window.screen"},"SVGLengthList":{"title":"SVGLengthList","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"<p>The <code>SVGLengthList</code> defines a list of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGLength\">SVGLength</a></code>\n objects.</p>\n<p>An <code>SVGLengthList</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>\n<div class=\"geckoVersionNote\">\n<p>\n</p><div class=\"geckoVersionHeading\">Gecko 5.0 note<div>(Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n</div></div>\n<p></p>\n<p>Starting in Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n,the <code>SVGLengthList</code> DOM interface is now indexable and can be accessed like arrays</p>\n</div>","members":[{"name":"clear","help":"<p>Clears all existing current items from the list, with the result being an empty list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"initialize","help":"<p>Clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter. If the inserted item is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. The return value is the item inserted into the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"getItem","help":"<p>Returns the specified item from the list. The returned item is the item itself and not a copy. Any changes made to the item are immediately reflected in the list. The first item is number 0.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"insertItemBefore","help":"<p>Inserts a new item into the list at the specified position. The first item is number 0. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. If the item is already in this list, note that the index of the item to insert before is before the removal of the item. If the <code>index</code> is equal to 0, then the new item is inserted at the front of the list. If the index is greater than or equal to <code>numberOfItems</code>, then the new item is appended to the end of the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"replaceItem","help":"<p>Replaces an existing item in the list with a new item. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. If the item is already in this list, note that the index of the item to replace is before the removal of the item.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>","obsolete":false},{"name":"removeItem","help":"<p>Removes an existing item from the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>","obsolete":false},{"name":"appendItem","help":"<p>Inserts a new item at the end of the list. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"numberOfItem","help":"The number of items in the list.","obsolete":false},{"name":"length","help":"The number of items in the list.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGLengthList"},"SVGViewSpec":{"title":"SVGSVGElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGSVGElement","skipped":true,"cause":"Suspect title"},"HTMLModElement":{"title":"HTMLModElement","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/del\"><del></a></code>\n HTML element</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ins\"><ins></a></code>\n HTML element</li>","summary":"DOM mod (modification) objects expose the <a title=\"http://www.w3.org/TR/html5/edits.html#htmlmodelement\" class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/html5/edits.html#htmlmodelement\" target=\"_blank\">HTMLModElement</a> (or <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-79359609\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-79359609\" target=\"_blank\"><code>HTMLModElement</code></a>) interface, which provides special properties (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating modification elements.","members":[{"name":"cite","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/del#attr-cite\">cite</a></code>\n HTML attribute, containing a URI of a resource explaining the change.","obsolete":false},{"name":"datetime","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/del#attr-datetime\">datetime</a></code>\n HTML attribute, containing a date-and-time string representing a timestamp for the change.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLModElement"},"IDBKeyRange":{"title":"IDBKeyRange","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Asynchronous API</td> <td>12 \n<span title=\"prefix\">-webkit</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td>Synchronous API<br> (used with <a title=\"https://developer.mozilla.org/En/Using_web_workers\" rel=\"internal\" href=\"https://developer.mozilla.org/En/Using_web_workers\">WebWorkers</a>)</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Asynchronous API</td> <td><span title=\"Not supported.\">--</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>IDBKeyRange</code> interface of the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API</a> represents a continuous interval over some data type that is used for keys. Records can be retrieved from object stores and indexes using keys or a range of keys. You can limit the range using lower and upper bounds. For example, you can iterate over all values of a key between x and y.","members":[{"name":"lowerBound","help":"<p>Creates a key range with only a lower bound. By default, it includes the lower endpoint value and is closed.</p>\n<pre>IDBKeyRange lowerBound (\n in any bound, \n in optional boolean open\n);\n</pre>\n<div id=\"section_17\"><span id=\"Parameters_3\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>bound</dt> <dd>The value of the lower bound.</dd> <dt>open</dt> <dd><em>Optional</em>. If false (default value), the range includes the lower-bound value.</dd>\n</dl>\n</div><div id=\"section_18\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>IDBKeyRange</code></dt> <dd>The newly created key range.</dd>\n</dl>\n</div><div id=\"section_19\"><span id=\"Exceptions_3\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBObjectStore\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBObjectStore\">DATA_ERR</a></code></dt> <dd>The value parameter was not passed a valid key.</dd>\n</dl>\n</div>","obsolete":false},{"name":"only","help":"<p>Creates a new key range containing a single value.</p>\n<pre>IDBKeyRange only (\n in any value\n);\n</pre>\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>value</dt> <dd>The single value in the key range.</dd>\n</dl>\n</div><div id=\"section_14\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>IDBKeyRange</code></dt> <dd>The newly created key range.</dd>\n</dl>\n</div><div id=\"section_15\"><span id=\"Exceptions_2\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBObjectStore\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></dt> <dd>The value parameter was not passed a valid key.</dd>\n</dl>\n</div>","obsolete":false},{"name":"bound","help":"<p>Creates a key range with upper and lower bounds. The bounds can be open (that is, the bounds excludes the endpoint values) or closed (that is, the bounds includes the endpoint values). By default, the bounds include the endpoints and are closed.</p>\n<pre>IDBKeyRange bound (\n in any lower,\n in any upper, \n in optional boolean lowerOpen, \n in optional boolean upperOpen\n);\n</pre>\n<div id=\"section_9\"><span id=\"Parameters\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>lower</dt> <dd>The lower bound of the key range.</dd> <dt>upper</dt> <dd>The upper bound of the key range.</dd> <dt>lowerOpen</dt> <dd><em>Optional</em>. If false (default value), the range includes the lower bound value of the key range.</dd> <dt>upperOpen</dt> <dd><em>Optional</em>. If false (default value), the range includes the upper bound value of the key range.</dd>\n</dl>\n</div><div id=\"section_10\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>IDBKeyRange</code></dt> <dd>The newly created key range.</dd>\n</dl>\n</div><div id=\"section_11\"><span id=\"Exceptions\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBObjectStore\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></dt> <dd>The following conditions raise an exception: <ul> <li>The lower or upper parameters were not passed a valid key.</li> <li>The lower key is greater than the upper key.</li> <li>The lower key and upper key match and either of the bounds are open.</li> </ul> </dd>\n</dl>\n</div>","obsolete":false},{"name":"upperBound","help":"<p>Creates a new upper-bound key range. By default, it includes the upper endpoint value and is closed.</p>\n<pre>IDBKeyRange upperBound (\n in any bound, \n in optional boolean open\n);\n</pre>\n<div id=\"section_21\"><span id=\"Parameters_4\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>bound</dt> <dd>The value of the upper bound of the range.</dd> <dt>open</dt> <dd><em>Optional</em>. If false (default value), the range includes the lower-bound value.</dd>\n</dl>\n</div><div id=\"section_22\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>IDBKeyRange</code></dt> <dd>The newly created key range.</dd>\n</dl>\n</div><div id=\"section_23\"><span id=\"Exceptions_4\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBObjectStore\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></dt> <dd>The value parameter was not passed a valid key.</dd>\n</dl>\n</div>","obsolete":false},{"url":"","name":"upperOpen","help":"Returns false if the upper-bound value is included in the key range.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBKeyRange"},"HTMLParagraphElement":{"title":"HTMLParagraphElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/p\"><p></a></code>\n HTML element","summary":"DOM p (paragraph) objects expose the <a title=\"http://www.w3.org/TR/html5/grouping-content.html#htmlparagraphelement\" class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/html5/grouping-content.html#htmlparagraphelement\" target=\"_blank\">HTMLParagraphElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-84675076\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-84675076\" target=\"_blank\"><code>HTMLParagraphElement</code></a>) interface, which provides special properties (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating div elements. In \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>, this interface inherits from HTMLElement, but defines no additional members.","members":[{"name":"align","help":"Enumerated attribute indicating alignment of the element's contents with respect to the surrounding context.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/HTMLParagraphElement"},"Int16Array":{"title":"Int16Array","srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array","seeAlso":"<li><a class=\" link-https\" title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"<p>The <code>Int16Array</code> type represents an array of twos-complement 16-bit signed integers.</p>\n<p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p>","constructor":"<div class=\"note\"><strong>Note:</strong> In these methods, <code><em>TypedArray</em></code> represents any of the <a title=\"en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses\">typed array object types</a>.</div>\n<table class=\"standard-table\"> <tbody> <tr> <td><code>Int16Array <a title=\"en/JavaScript typed arrays/Int16Array#Int16Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array#Int16Array()\">Int16Array</a>(unsigned long length);<br> </code></td> </tr> <tr> <td><code>Int16Array </code><code><a title=\"en/JavaScript typed arrays/Int16Array#Int16Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array#Int16Array%28%29\">Int16Array</a></code><code>(<em>TypedArray</em> array);<br> </code></td> </tr> <tr> <td><code>Int16Array </code><code><a title=\"en/JavaScript typed arrays/Int16Array#Int16Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array#Int16Array%28%29\">Int16Array</a></code><code>(sequence<type> array);<br> </code></td> </tr> <tr> <td><code>Int16Array </code><code><a title=\"en/JavaScript typed arrays/Int16Array#Int16Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int16Array#Int16Array%28%29\">Int16Array</a></code><code>(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);<br> </code></td> </tr> </tbody>\n</table><p>Returns a new <code>Int16Array</code> object.</p>\n<pre>Int16Array Int16Array(\n unsigned long length\n);\n\nInt16Array Int16Array(\n <em>TypedArray</em> array\n);\n\nInt16Array Int16Array(\n sequence<type> array\n);\n\nInt16Array Int16Array(\n ArrayBuffer buffer,\n optional unsigned long byteOffset,\n optional unsigned long length\n);\n</pre>\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>length</code></dt> <dd>The number of elements in the byte array. If unspecified, length of the array view will match the buffer's length.</dd> <dt><code>array</code></dt> <dd>An object of any of the typed array types (such as <code>Int32Array</code>), or a sequence of objects of a particular type, to copy into a new <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>. Each value in the source array is converted to a 16-bit signed integer before being copied into the new array.</dd> <dt><code>buffer</code></dt> <dd>An existing <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> to use as the storage for the new <code>Int16Array</code> object.</dd> <dt><code>byteOffset<br> </code></dt> <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the <code>Int16Array</code>'s view of the buffer will start with the first byte.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>Int16Array</code> object representing the specified data buffer.</p>\n</div>","members":[{"name":"subarray","help":"<p>Returns a new <code>Int16Array</code> view on the <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> store for this <code>Int16Array</code> object.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>begin</code></dt> <dd>The offset to the first element in the array to be referenced by the new <code>Int16Array</code> object.</dd> <dt><code>end</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The offset to the last element in the array to be referenced by the new <code>Int16Array</code> object; if not specified, all elements from the one specified by <code>begin</code> to the end of the array are included in the new view.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Notes_2\"></span><h6 class=\"editable\">Notes</h6>\n<p>The range specified by <code>begin</code> and <code>end</code> is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it's clamped to zero. If either <code>begin</code> or <code>end</code> is negative, it refers to an index from the end of the array instead of from the beginning.</p>\n<div class=\"note\"><strong>Note:</strong> Keep in mind that this is creating a new view on the existing buffer; changes to the new object's contents will impact the original object and vice versa.</div>\n</div>","idl":"<pre>Int16Array subarray(\n long begin,\n optional long end\n);\n</pre>","obsolete":false},{"name":"set","help":"<p>Sets multiple values in the typed array, reading input values from a specified array.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset \n<span title=\"\">Optional</span>\n</dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>\n</dl>\n</div>","idl":"<pre>void set(\n <em>TypedArray</em> array,\n optional unsigned long offset\n);\n\nvoid set(\n type[] array,\n optional unsigned long offset\n);\n</pre>","obsolete":false},{"name":"BYTES_PER_ELEMENT","help":"The size, in bytes, of each array element.","obsolete":false},{"name":"length","help":"The number of entries in the array. <strong>Read only.</strong>","obsolete":false}]},"FileEntry":{"title":"FileEntry","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>13\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<div><strong>DRAFT</strong> <div>This page is not complete.</div>\n</div>\n<p>The <code>FileEntry</code> interface of the <a title=\"en/DOM/File_API/File_System_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File_API/File_System_API\">FileSystem API</a> represents a file in a file system.</p>","members":[{"name":"createWriter","help":"<p>Creates a new <code>FileWriter</code> associated with the file that the <code>FileEntry</code> represents.</p>\n<pre>void createWriter (\n in FileWriterCallback successCallback, optional ErrorCallback errorCallback\n);</pre> <div id=\"section_4\"><span id=\"Parameter\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>successCallback</dt> <dd>A callback that is called with the new <code>FileWriter</code>.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd> </dl> </div><div id=\"section_5\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl> </div>","obsolete":false},{"name":"file","help":"<p>Returns a File that represents the current state of the file that this <code>FileEntry</code> represents.</p>\n<pre>void file (\n <em>FileCallback successCallback, optional ErrorCallback errorCallback</em>\n);</pre>\n<div id=\"section_7\"><span id=\"Parameter_2\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>successCallback</dt> <dd>A callback that is called with the new <code>FileWriter</code>.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd> </dl> </div><div id=\"section_8\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/FileEntry"},"NodeIterator":{"title":"NodeIterator","members":[{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NodeIterator.nextNode","name":"nextNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NodeIterator.previousNode","name":"previousNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NodeIterator.detach","name":"detach","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NodeIterator.expandEntityReferences","name":"expandEntityReferences","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NodeIterator.pointerBeforeReferenceNode","name":"pointerBeforeReferenceNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NodeIterator.filter","name":"filter","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NodeIterator.referenceNode","name":"referenceNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NodeIterator.whatToShow","name":"whatToShow","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NodeIterator.root","name":"root","help":""}],"srcUrl":"https://developer.mozilla.org/en/DOM/NodeIterator","specification":"DOM Level 2 Traversal: NodeIterator"},"SVGPathSegClosePath":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"FileWriterCallback":{"title":"FileEntrySync","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/FileEntrySync","skipped":true,"cause":"Suspect title"},"CanvasRenderingContext":{"title":"Interface Compatibility","members":[],"srcUrl":"https://developer.mozilla.org/En/Developer_Guide/Interface_Compatibility","skipped":true,"cause":"Suspect title"},"Uint32Array":{"title":"Uint32Array","srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array","seeAlso":"<li><a title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" class=\" link-https\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"<p>The <code>Uint32Array</code> type represents an array of 32-bit unsigned integers.</p>\n<p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p>","constructor":"<div class=\"note\"><strong>Note:</strong> In these methods, <code><em>TypedArray</em></code> represents any of the <a title=\"en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses\">typed array object types</a>.</div>\n<table class=\"standard-table\"> <tbody> <tr> <td><code>Uint32Array <a title=\"en/JavaScript typed arrays/Uint32Array#Uint32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array#Uint32Array()\">Uint32Array</a>(unsigned long length);<br> </code></td> </tr> <tr> <td><code>Uint32Array </code><code><a title=\"en/JavaScript typed arrays/Uint32Array#Uint32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array#Uint32Array%28%29\">Uint32Array</a></code><code>(<em>TypedArray</em> array);<br> </code></td> </tr> <tr> <td><code>Uint32Array </code><code><a title=\"en/JavaScript typed arrays/Uint32Array#Uint32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array#Uint32Array%28%29\">Uint32Array</a></code><code>(sequence<type> array);<br> </code></td> </tr> <tr> <td><code>Uint32Array </code><code><a title=\"en/JavaScript typed arrays/Uint32Array#Uint32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint32Array#Uint32Array%28%29\">Uint32Array</a></code><code>(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);<br> </code></td> </tr> </tbody>\n</table><p>Returns a new <code>Uint32Array</code> object.</p>\n<pre>Uint32Array Uint32Array(\n unsigned long length\n);\n\nUint32Array Uint32Array(\n <em>TypedArray</em> array\n);\n\nUint32Array Uint32Array(\n sequence<type> array\n);\n\nUint32Array Uint32Array(\n ArrayBuffer buffer,\n optional unsigned long byteOffset,\n optional unsigned long length\n);\n</pre>\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>length</code></dt> <dd>The number of elements in the byte array. If unspecified, length of the array view will match the buffer's length.</dd> <dt><code>array</code></dt> <dd>An object of any of the typed array types (such as <code>Int16Array</code>), or a sequence of objects of a particular type, to copy into a new <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>. Each value in the source array is converted to a 32-bit unsigned integer before being copied into the new array.</dd> <dt><code>buffer</code></dt> <dd>An existing <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> to use as the storage for the new <code>Uint32Array</code> object.</dd> <dt><code>byteOffset<br> </code></dt> <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the <code>Uint32Array</code>'s view of the buffer will start with the first byte.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>Uint32Array</code> object representing the specified data buffer.</p>\n</div>","members":[{"name":"subarray","help":"<p>Returns a new <code>Uint32Array</code> view on the <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> store for this <code>Uint32Array</code> object.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>begin</code></dt> <dd>The offset to the first element in the array to be referenced by the new <code>Uint32Array</code> object.</dd> <dt><code>end</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The offset to the last element in the array to be referenced by the new <code>Uint32Array</code> object; if not specified, all elements from the one specified by <code>begin</code> to the end of the array are included in the new view.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Notes_2\"></span><h6 class=\"editable\">Notes</h6>\n<p>The range specified by <code>begin</code> and <code>end</code> is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it's clamped to zero. If either <code>begin</code> or <code>end</code> is negative, it refers to an index from the end of the array instead of from the beginning.</p>\n<div class=\"note\"><strong>Note:</strong> Keep in mind that this is creating a new view on the existing buffer; changes to the new object's contents will impact the original object and vice versa.</div>\n</div>","idl":"<pre>Uint32Array subarray(\n long begin,\n optional long end\n);\n</pre>","obsolete":false},{"name":"set","help":"<p>Sets multiple values in the typed array, reading input values from a specified array.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset \n<span title=\"\">Optional</span>\n</dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>\n</dl>\n</div>","idl":"<pre>void set(\n <em>TypedArray</em> array,\n optional unsigned long offset\n);\n\nvoid set(\n type[] array,\n optional unsigned long offset\n);\n</pre>","obsolete":false},{"name":"BYTES_PER_ELEMENT","help":"The size, in bytes, of each array element.","obsolete":false},{"name":"length","help":"The number of entries in the array. <strong>Read only.</strong>","obsolete":false}]},"NodeFilter":{"title":"NodeFilter","examples":["<pre name=\"code\" class=\"js\">var nodeIterator = document.createNodeIterator(\n // Node to use as root\n document.getElementById('someId'),\n\n // Onlly consider nodes that are text nodes (nodeType 3)\n NodeFilter.SHOW_TEXT,\n\n // Object containing the function to use for the acceptNode method\n // of the NodeFilter\n { acceptNode: function(node) {\n // Logic to determine whether to accept, reject or skip node\n // In this case, only accept nodes that have content\n // other than whitespace\n if ( ! /^\\s*$/.test(node.data) ) {\n return NodeFilter.FILTER_ACCEPT;\n }\n }\n },\n false\n);\n\n// Show the content of every non-empty text node that is a child of root\nvar node;\n\nwhile ((node = iterator.nextNode())) {\n alert(node.data);\n}</pre>\n \n<p>Note that in order for the iterator to accept a node, the <a href=\"#acceptNode\">acceptNode</a> function must return <a href=\"#FILTER_ACCEPT\">NodeFilter.FILTER_ACCEPT</a>.</p>"],"members":[{"obsolete":false,"url":"","name":"acceptNode","help":"The accept node method used by the filter is supplied as an object property when constructing the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/NodeIterator\">NodeIterator</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TreeWalker\">TreeWalker</a></code>\n."},{"name":"SHOW_ALL","help":"Shows all nodes.","obsolete":false},{"name":"SHOW_ATTRIBUTE","help":"Shows attribute <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Attr\">Attr</a></code>\n nodes. This is meaningful only when creating a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/NodeIterator\">NodeIterator</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TreeWalker\">TreeWalker</a></code>\n with an <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Attr\">Attr</a></code>\n node as its root; in this case, it means that the attribute node will appear in the first position of the iteration or traversal. Since attributes are never children of other nodes, they do not appear when traversing over the document tree.","obsolete":false},{"name":"SHOW_CDATA_SECTION","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/CDATASection\">CDATASection</a></code>\n nodes.","obsolete":false},{"name":"SHOW_COMMENT","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Comment\">Comment</a></code>\n nodes.","obsolete":false},{"name":"SHOW_DOCUMENT","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Document\">Document</a></code>\n nodes.","obsolete":false},{"name":"SHOW_DOCUMENT_FRAGMENT","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DocumentFragment\">DocumentFragment</a></code>\n nodes.","obsolete":false},{"name":"SHOW_DOCUMENT_TYPE","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DocumentType\">DocumentType</a></code>\n nodes.","obsolete":false},{"name":"SHOW_ELEMENT","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Element\">Element</a></code>\n nodes.","obsolete":false},{"name":"SHOW_ENTITY","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Entity\">Entity</a></code>\n nodes. This is meaningful only when creating a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/NodeIterator\">NodeIterator</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TreeWalker\">TreeWalker</a></code>\n with an <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Entity\">Entity</a></code>\n node as its root; in this case, it means that the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Entity\">Entity</a></code>\n node will appear in the first position of the traversal. Since entities are not part of the document tree, they do not appear when traversing over the document tree.","obsolete":false},{"name":"SHOW_ENTITY_REFERENCE","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/EntityReference\">EntityReference</a></code>\n nodes.","obsolete":false},{"name":"SHOW_NOTATION","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Notation\">Notation</a></code>\n nodes. This is meaningful only when creating a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/NodeIterator\">NodeIterator</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TreeWalker\">TreeWalker</a></code>\n with a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Notation\">Notation</a></code>\n node as its root; in this case, it means that the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Notation\">Notation</a></code>\n node will appear in the first position of the traversal. Since entities are not part of the document tree, they do not appear when traversing over the document tree.","obsolete":false},{"name":"SHOW_PROCESSING_INSTRUCTION","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/ProcessingInstruction\">ProcessingInstruction</a></code>\n nodes.","obsolete":false},{"name":"SHOW_TEXT","help":"Shows <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Text\">Text</a></code>\n nodes.","obsolete":false},{"url":"","name":"FILTER_ACCEPT","help":"Value returned by the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/NodeFilter.acceptNode\" class=\"new\">NodeFilter.acceptNode()</a></code>\n method when a node should be accepted.","obsolete":false},{"name":"FILTER_REJECT","help":"Value to be returned by the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/NodeFilter.acceptNode\" class=\"new\">NodeFilter.acceptNode()</a></code>\n method when a node should be rejected. The children of rejected nodes are not visited by the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/NodeIterator\">NodeIterator</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TreeWalker\">TreeWalker</a></code>\n object; this value is treated as \"skip this node and all its children\".","obsolete":false},{"name":"FILTER_SKIP","help":"Value to be returned by <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/NodeFilter.acceptNode\" class=\"new\">NodeFilter.acceptNode()</a></code>\n for nodes to be skipped by the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/NodeIterator\">NodeIterator</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TreeWalker\">TreeWalker</a></code>\n object. The children of skipped nodes are still considered. This is treated as \"skip this node but not its children\".","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/NodeFilter","specification":"DOM Level 2 Traversal: NodeFilter"},"WebKitCSSKeyframeRule":{"title":"CSSRule","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/cssRule","skipped":true,"cause":"Suspect title"},"RGBColor":{"title":"color value","members":[],"srcUrl":"https://developer.mozilla.org/en/CSS/color_value","skipped":true,"cause":"Suspect title"},"CanvasRenderingContext2D":{"title":"CanvasRenderingContext2D","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td colspan=\"6\">Methods</td> </tr> <tr> <td><code>arc()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>arcTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>beginPath()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>bezierCurveTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>clearRect()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>clip()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>closePath()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>createImageData()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.5 (1.9.1)</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>createLinearGradient()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>createPattern()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>createRadialGradient()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>drawImage()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>drawCustomFocusRing()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>\n<span class=\"unimplementedInlineTemplate\">Unimplemented (see<a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=540456\" class=\"external\" title=\"\">\nbug 540456</a>\n)</span>\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>drawSystemFocusRing()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>\n<span class=\"unimplementedInlineTemplate\">Unimplemented (see<a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=540456\" class=\"external\" title=\"\">\nbug 540456</a>\n)</span>\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>fill()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>fillRect()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>fillText()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.5 (1.9.1)</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>getImageData()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>isPointInPath()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>lineTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>measureText()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.5 (1.9.1)</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>moveTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>putImageData()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>quadraticCurveTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>rect()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>restore()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>rotate()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>save()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>scale()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>scrollPathIntoView()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>setTransform()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.0 (1.9.0)</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>stroke()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>strokeRect()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>strokeText()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.5 (1.9.1)</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>transform()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.0 (1.9.0)</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>translate()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td colspan=\"6\">Attributes</td> </tr> <tr> <td><code>canvas</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>fillstyle</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>font</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>globalAlpha</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>globalCompositeOperation</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>lineCap</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>lineJoin</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>lineWidth</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>miterLimit</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>shadowBlur</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>shadowColor</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>shadowOffsetX</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>shadowOffsetY</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>strokeStyle</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>textAlign</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>textBaseLine</code></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td colspan=\"6\">Methods</td> </tr> <tr> <td><code>arc()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>arcTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>beginPath()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>bezierCurveTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>clearRect()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>clip()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>closePath()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>createImageData()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>createLinearGradient()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>createPattern()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>createRadialGradient()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>drawImage()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>drawCustomFocusRing()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>drawSystemFocusRing()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>fill()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>fillRect()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>fillText()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>getImageData()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>isPointInPath()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>lineTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>measureText()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>moveTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>putImageData()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>quadraticCurveTo()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>rect()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>restore()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>rotate()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>save()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>scale()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>scrollPathIntoView()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>setTransform()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>stroke()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>strokeRect()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>strokeText()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>transform()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>translate()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td colspan=\"6\">Attributes</td> </tr> <tr> <td><code>canvas</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>fillstyle</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>font</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>globalAlpha</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>globalCompositeOperation</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>lineCap</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>lineJoin</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>lineWidth</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>miterLimit</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>shadowBlur</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>shadowColor</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>shadowOffsetX</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>shadowOffsetY</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>strokeStyle</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>textAlign</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>textBaseLine</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D","specification":"http://www.whatwg.org/specs/web-apps...eringcontext2d","summary":"The bulk of the operations available at present with <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/canvas\"><canvas></a></code>\n are available through this interface, returned by a call to <code>getContext()</code> on the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/canvas\"><canvas></a></code>\n element, with \"2d\" as its argument.","members":[{"name":"measureText","help":"","idl":"<pre class=\"eval\">nsIDOMTextMetrics measureText(\n in DOMString text\n);\n</pre>","obsolete":false},{"name":"rotate","help":"","idl":"<pre class=\"eval\">void rotate(\n in float angle\n);\n</pre>","obsolete":false},{"name":"arcTo","help":"<p>Adds an arc with the given control points and radius, connected to the previous point by a straight line.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>x1</code></dt> <dd></dd> <dt><code>y1</code></dt> <dd></dd> <dt><code>x2</code></dt> <dd></dd> <dt><code>y2</code></dt> <dd></dd> <dt><code>radius</code></dt> <dd>The arc's radius.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void arcTo(\n in float x1,\n in float y1,\n in float x2,\n in float y2,\n in float radius\n);\n</pre>","obsolete":false},{"name":"transform","help":"","idl":"<pre class=\"eval\">void transform(\n in float m11,\n in float m12,\n in float m21,\n in float m22,\n in float dx,\n in float dy\n);\n</pre>","obsolete":false},{"name":"save","help":"Saves the current drawing style state using a stack so you can revert any change you make to it using restore().","idl":"<pre class=\"eval\">void save();\n</pre>","obsolete":false},{"name":"beginPath","help":"","idl":"<pre class=\"eval\">void beginPath();\n</pre>","obsolete":false},{"name":"strokeRect","help":"<p>Paints a rectangle which it starting point is at <em>(x, y)</em> and has a<em> w</em> width and a <em>h</em> height onto the canvas, using the current stroke style.</p>\n\n<div id=\"section_88\"><span id=\"Parameters_33\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>x</code></dt> <dd>The x axis for the starting point of the rectangle.</dd> <dt><code>y</code></dt> <dd>The y axis for the starting point of the rectangle.</dd> <dt><code>w</code></dt> <dd>The rectangle's width.</dd> <dt><code>h</code></dt> <dd>The rectangle's height.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void strokeRect(\n in float x,\n in float y,\n in float w,\n in float h\n);\n</pre>","obsolete":false},{"name":"createLinearGradient","help":"","idl":"<pre class=\"eval\">nsIDOMCanvasGradient createLinearGradient(\n in float x0,\n in float y0,\n in float x1,\n in float y1\n);\n</pre>","obsolete":false},{"name":"arc","help":"<p>Adds an arc to the path which it center is at <em>(x, y)</em> position with radius<em> r</em> starting at <em>startAngle</em> and ending at <em>endAngle</em> going in the given direction by <em>anticlockwise</em> (defaulting to clockwise).</p>\n\n<div id=\"section_11\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>x</code></dt> <dd>The x axis of the coordinate for the arc's center</dd> <dt><code>y</code></dt> <dd>The y axis of the coordinate for the arc's center.</dd> <dt><code>radius</code></dt> <dd>The arc's radius</dd> <dt><code>startAngle</code></dt> <dd>The starting point, measured from the x axis , from which it will be drawed expressed as radians.</dd> <dt><code>endAngle</code></dt> <dd>The end arc's angle to which it will be drawed expressed as radians.</dd> <dt><code>anticlockwise</code> \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Optional from Gecko 2.0</span>\n</dt> <dd>When <code>true</code> draws the arc anticlockwise, otherwise in a clockwise direction.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void arc(\n in float x,\n in float y,\n in float radius,\n in float startAngle,\n in float endAngle,\n in boolean anticlockwise [optional]\n);\n</pre>","obsolete":false},{"name":"bezierCurveTo","help":"","idl":"<pre class=\"eval\">void bezierCurveTo(\n in float cp1x,\n in float cp1y,\n in float cp2x,\n in float cp2y,\n in float x,\n in float y\n);\n</pre>","obsolete":false},{"name":"closePath","help":"","idl":"<pre class=\"eval\">void closePath();\n</pre>","obsolete":false},{"name":"drawSystemFocusRing","help":"","idl":"<pre class=\"eval\">void drawSystemFocusRing(Element element);\n</pre>","obsolete":false},{"name":"scale","help":"","idl":"<pre class=\"eval\">void scale(\n in float x,\n in float y\n);\n</pre>","obsolete":false},{"name":"createRadialGradient","help":"","idl":"<pre class=\"eval\">nsIDOMCanvasGradient createRadialGradient(\n in float x0,\n in float y0,\n in float r0,\n in float x1,\n in float y1,\n in float r1\n);\n</pre>","obsolete":false},{"name":"lineTo","help":"<p>Connects the last point in the subpath to the <code>x, y</code> coordinates with a straight line.</p>\n\n<div id=\"section_60\"><span id=\"Parameters_20\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>x</code></dt> <dd>The x axis of the coordinate for the end of the line.</dd> <dt><code>y</code></dt> <dd>The y axis of the coordinate for the end of the line.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void lineTo(\n in float x,\n in float y\n);\n</pre>","obsolete":false},{"name":"translate","help":"<p>Moves the origin point of the context to (x, y).</p>\n\n<div id=\"section_94\"><span id=\"Parameters_36\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>x</code></dt> <dd>The x axis for the point to be considered as the origin.</dd> <dt><code>y</code></dt> <dd>The x axis for the point to be considered as the origin.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void translate(\n in float x,\n in float y\n);\n</pre>","obsolete":false},{"name":"moveTo","help":"<p>Moves the starting point of a new subpath to the <strong>(x, y)</strong> coordinates.</p>\n\n<div id=\"section_65\"><span id=\"Parameters_22\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>x</code></dt> <dd>The x axis of the point.</dd> <dt><code>y</code></dt> <dd>The y axis of the point.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void moveTo(\n in float x,\n in float y\n);\n</pre>","obsolete":false},{"name":"scrollPathIntoView","help":"","idl":"<pre class=\"eval\">void scrollPathIntoView();\n</pre>","obsolete":false},{"name":"restore","help":"Restores the drawing style state to the last element on the 'state stack' saved by save()","idl":"<pre class=\"eval\">void restore();\n</pre>","obsolete":false},{"name":"createImageData","help":"","idl":"<pre class=\"eval\">void createImageData(in float width, in float height);\nImageData createImageData(ImageData imagedata);\n</pre>","obsolete":false},{"name":"createPattern","help":"<div id=\"section_31\"><span id=\"Parameters_10\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>image</code></dt> <dd>A DOM <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a></code>\n to use as the source image for the pattern. This can be any element, although typically you'll use an <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Image\" class=\"new\">Image</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/canvas\"><canvas></a></code>\n.</dd> <dt><code>repetition</code></dt> <dd>?</dd>\n</dl>\n</div><div id=\"section_32\"><span id=\"Return_value_3\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new DOM canvas pattern object for use in pattern-based operations.</p>\n</div><div id=\"section_33\"><span id=\"Exceptions_thrown\"></span><h6 class=\"editable\">Exceptions thrown</h6>\n<dl> <dt><code>NS_ERROR_DOM_INVALID_STATE_ERR</code> \n<span title=\"(Firefox 10.0 / Thunderbird 10.0)\n\">Requires Gecko 10.0</span>\n</dt> <dd>The specified <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/canvas\"><canvas></a></code>\n element for the <code>image</code> parameter is zero-sized (that is, one or both of its dimensions are 0 pixels).</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">nsIDOMCanvasPattern createPattern(\n in nsIDOMHTMLElement image,\n in DOMString repetition\n);\n</pre>","obsolete":false},{"name":"putImageData","help":"<h6 class=\"editable\">Compatibility notes</h6>\n<ul> <li>Starting in Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0)\n, non-finite values to any of these parameters causes the call to putImageData() to be silently ignored, rather than throwing an exception.</li>\n</ul>","idl":"<pre class=\"eval\">void putImageData(\n in long x,\n in long y,\n in unsigned long width,\n in unsigned long height,\n [array, size_is(dataLen)] in octet dataPtr,\n in unsigned long dataLen,\n in boolean hasDirtyRect,\n in long dirtyX, [optional]\n in long dirtyY, [optional]\n in long dirtyWidth, [optional]\n in long dirtyHeight [optional]\n);\n</pre>","obsolete":false},{"name":"clearRect","help":"<p>Clears the rectangle defined by it starting point at <em>(x, y)</em> and has a <em>w</em> width and a <em>h</em> height.</p>\n\n<div id=\"section_19\"><span id=\"Parameters_5\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>x</code></dt> <dd>The x axis of the coordinate for the rectangle starting point.</dd> <dt><code>y</code></dt> <dd>The y axis of the coordinate for the rectangle starting point.</dd> <dt><code>width</code></dt> <dd>The rectangle's width.</dd> <dt><code>height</code></dt> <dd>The rectangle's height.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void clearRect(\n in float x,\n in float y,\n in float width,\n in float height\n);\n</pre>","obsolete":false},{"name":"fill","help":"Fills the subpaths with the current fill style.","idl":"<pre class=\"eval\">void fill();\n</pre>","obsolete":false},{"name":"clip","help":"","idl":"<pre class=\"eval\">void clip();\n</pre>","obsolete":false},{"name":"rect","help":"","idl":"<pre class=\"eval\">void rect(\n in float x,\n in float y,\n in float w,\n in float h\n);\n</pre>","obsolete":false},{"name":"drawCustomFocusRing","help":"","idl":"<pre class=\"eval\">boolean drawCustomFocusRing(Element element);\n</pre>","obsolete":false},{"name":"stroke","help":"Strokes the subpaths with the current stroke style.","idl":"<pre class=\"eval\">void stroke();\n</pre>","obsolete":false},{"name":"setTransform","help":"","idl":"<pre class=\"eval\">void setTransform(\n in float m11,\n in float m12,\n in float m21,\n in float m22,\n in float dx,\n in float dy\n);\n</pre>","obsolete":false},{"name":"fillText","help":"","idl":"<pre class=\"eval\">void fillText(\n in DOMString text,\n in float x,\n in float y,\n in float maxWidth [optional]\n);\n</pre>","obsolete":false},{"name":"getImageData","help":"<p>Returns an <code><a class=\"external\" rel=\"external\" href=\"http://dev.w3.org/html5/2dcontext/Overview.html#imagedata\" title=\"http://dev.w3.org/html5/2dcontext/Overview.html#imagedata\" target=\"_blank\">ImageData</a></code> object representing the underlying pixel data for the area of the canvas denoted by the rectangle which starts at <em>(sx, sy)</em> and has a <em>sw</em> width and <em>sh</em> height.</p>\n\n<div id=\"section_53\"><span id=\"Parameters_18\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>sx</code></dt> <dd>The x axis of the coordinate for the rectangle startpoint from which the ImageData will be extracted.</dd> <dt><code>sy</code></dt> <dd>The x axis of the coordinate for the rectangle endpoint from which the ImageData will be extracted.</dd> <dt><code>sw</code></dt> <dd>The width of the rectangle from which the ImageData will be extracted.</dd> <dt><code>sh</code></dt> <dd>The height of the rectangle from which the ImageData will be extracted.</dd>\n</dl>\n</div><div id=\"section_54\"><span id=\"Return_value_6\"></span><h6 class=\"editable\">Return value</h6>\n<p>Returns an <code><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/2011/WD-2dcontext-20110405/#imagedata\" title=\"http://www.w3.org/TR/2011/WD-2dcontext-20110405/#imagedata\" target=\"_blank\">ImageData</a></code> object containing the image data for the given rectangle of the canvas.</p>\n</div>","idl":"<pre class=\"eval\">void getImageData( \n in double sx, \n in double sy, \n in double sw, \n in double sh\n);\n</pre>","obsolete":false},{"name":"drawImage","help":"<p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>\n\n<div id=\"section_41\"><span id=\"Parameters_13\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>image</code></dt> <dd>An element to draw into the context; the specification permits any image element (that is, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/img\"><img></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/canvas\"><canvas></a></code>\n, and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video\"><video></a></code>\n). Some browsers, including Firefox, let you use any arbitrary element.</dd> <dt><code>dx</code></dt> <dd>The X coordinate in the destination canvas at which to place the top-left corner of the source <code>image</code>.</dd> <dt><code>dy</code></dt> <dd>The Y coordinate in the destination canvas at which to place the top-left corner of the source <code>image</code>.</dd> <dt><code>dw</code></dt> <dd>The width to draw the <code>image</code> in the destination canvas. This allows scaling of the drawn image. If not specified, the image is not scaled in width when drawn.</dd> <dt><code>dh</code></dt> <dd>The height to draw the <code>image</code> in the destination canvas. This allows scaling of the drawn image. If not specified, the image is not scaled in height when drawn.</dd> <dt><code>sx</code></dt> <dd>The X coordinate of the top left corner of the sub-rectangle of the source image to draw into the destination context.</dd> <dt><code>sy</code></dt> <dd>The Y coordinate of the top left corner of the sub-rectangle of the source image to draw into the destination context.</dd> <dt><code>sw</code></dt> <dd>The width of the sub-rectangle of the source image to draw into the destination context. If not specified, the entire rectangle from the coordinates specified by <code>sx</code> and <code>sy</code> to the bottom-right corner of the image is used. If you specify a negative value, the image is flipped horizontally when drawn.</dd> <dt><code>sh</code></dt> <dd>The height of the sub-rectangle of the source image to draw into the destination context. If you specify a negative value, the image is flipped vertically when drawn.</dd>\n</dl>\n<p>The diagram below illustrates the meanings of the various parameters.</p>\n<p><img alt=\"drawImage.png\" class=\"internal default\" src=\"https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png\"></p>\n</div><div id=\"section_42\"><span id=\"Exceptions_thrown_2\"></span><h6 class=\"editable\">Exceptions thrown</h6>\n<dl> <dt><code>INDEX_SIZE_ERR</code></dt> <dd>If the canvas or source rectangle width or height is zero.</dd> <dt><code>INVALID_STATE_ERR</code></dt> <dd>The image has no image data.</dd> <dt><code>TYPE_MISMATCH_ERR</code></dt> <dd>The specified source element isn't supported. This is not thrown by Firefox, since any element may be used as a source image.</dd>\n</dl>\n</div><div id=\"section_43\"><span id=\"Compatibility_notes\"></span><h6 class=\"editable\">Compatibility notes</h6>\n<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n, Firefox threw an exception if any of the coordinate values was non-finite or zero. As per the specification, this no longer happens.</li> <li>Support for flipping the image by using negative values for <code>sw</code> and <code>sh</code> was added in Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n now correctly supports CORS for drawing images across domains without <a title=\"en/CORS_Enabled_Image#What_is_a_.22tainted.22_canvas.3F\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CORS_Enabled_Image#What_is_a_.22tainted.22_canvas.3F\">tainting the canvas</a>.</li>\n</ul>\n</div>","idl":"<pre class=\"eval\">void drawImage(\n in nsIDOMElement image,\n in float dx,\n in float dy\n);\n\nvoid drawImage(\n in nsIDOMElement image,\n in float dx,\n in float dy,\n in float sw,\n in float sh\n);\n\nvoid drawImage(\n in nsIDOMElement image,\n in float sx,\n in float sy,\n in float sw,\n in float sh,\n in float dx, \n in float dy,\n in float dw,\n in float dh\n);\n</pre>","obsolete":false},{"name":"fillRect","help":"<p>Draws a filled rectangle at <em>(x, y) </em>position whose size is determined by <em>width</em> and <em>height</em>.</p>\n\n<div id=\"section_49\"><span id=\"Parameters_16\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>x</code></dt> <dd>The x axis of the coordinate for the rectangle starting point.</dd> <dt><code>y</code></dt> <dd>The y axis of the coordinate for the rectangle starting point.</dd> <dt><code>width</code></dt> <dd>The rectangle's width.</dd> <dt><code>height</code></dt> <dd>The rectangle's height.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void fillRect(\n in float x,\n in float y,\n in float width,\n in float height\n);\n</pre>","obsolete":false},{"name":"isPointInPath","help":"<p>Reports whether or not the specified point is contained in the current path.</p>\n\n<div id=\"section_56\"><span id=\"Parameters_19\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>x</code></dt> <dd>The X coordinate of the point to check.</dd> <dt><code>y</code></dt> <dd>The Y coordinate of the point to check.</dd>\n</dl>\n</div><div id=\"section_57\"><span id=\"Return_value_7\"></span><h6 class=\"editable\">Return value</h6>\n<p><code>true</code> if the specified point is contained in the current path; otherwise <code>false</code>.</p>\n</div><div id=\"section_58\"><span id=\"Compatibility_notes_2\"></span><h6 class=\"editable\">Compatibility notes</h6>\n<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n, this method incorrectly failed to multiply the specified point's coordinates by the current transformation matrix before comparing it to the path. Now this method works correctly even if the context is rotated, scaled, or otherwise transformed.</li>\n</ul>\n</div>","idl":"<pre class=\"eval\">boolean isPointInPath(\n in float x,\n in float y\n);\n</pre>","obsolete":false},{"name":"strokeText","help":"","idl":"<pre class=\"eval\">void strokeText(\n in DOMString text,\n in float x,\n in float y,\n in float maxWidth [optional]\n);\n</pre>","obsolete":false},{"name":"quadraticCurveTo","help":"","idl":"<pre class=\"eval\">void quadraticCurveTo(\n in float cpx,\n in float cpy,\n in float x,\n in float y\n);\n</pre>","obsolete":false},{"name":"DRAWWINDOW_DRAW_CARET","help":"Show the caret if appropriate when drawing. \n<span title=\"(Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n\">Requires Gecko 1.9.1</span>","obsolete":false},{"name":"DRAWWINDOW_DO_NOT_FLUSH","help":"Do not flush pending layout notifications that could otherwise be batched up. \n<span title=\"(Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n\">Requires Gecko 1.9.1</span>","obsolete":false},{"name":"DRAWWINDOW_DRAW_VIEW","help":"Draw scrollbars and scroll the viewport if they are present. \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false},{"name":"DRAWWINDOW_USE_WIDGET_LAYERS","help":"Use the widget layer manager if available. This means hardware acceleration may be used, but it might actually be slower or lower quality than normal. It will however more accurately reflect the pixels rendered to the screen. \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Requires Gecko 2.0</span>","obsolete":false},{"name":"DRAWWINDOW_ASYNC_DECODE_IMAGES","help":"Do not synchronously decode images - draw what we have. \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Requires Gecko 2.0</span>","obsolete":false},{"name":"canvas","help":"Back-reference to the canvas element for which this context was created. <strong>Read only.</strong>","obsolete":false},{"name":"fillStyle","help":"Color or style to use inside shapes. Default <code>#000</code> (black).","obsolete":false},{"name":"font","help":"Default value <code>10px sans-serif</code>.","obsolete":false},{"name":"globalAlpha","help":"Alpha value that is applied to shapes and images before they are composited onto the canvas. Default <code>1.0</code> (opaque).","obsolete":false},{"name":"globalCompositeOperation","help":"With <code>globalAplpha</code> applied this sets how shapes and images are drawn onto the existing bitmap. Possible values: <ul> <li><code>source-atop</code></li> <li><code>source-in</code></li> <li><code>source-out</code></li> <li><code>source-over</code> (default)</li> <li><code>destination-atop</code></li> <li><code>destination-in</code></li> <li><code>destination-out</code></li> <li><code>destination-over</code></li> <li><code>lighter</code></li> <li><code>xor</code></li> </ul>","obsolete":false},{"name":"lineCap","help":"Type of endings on the end of lines. Possible values: <code>butt</code> (default), <code>round</code>, <code>square</code>","obsolete":false},{"name":"lineJoin","help":"Defines the type of corners where two lines meet. Possible values: <code>round</code>, <code>bevel</code>, <code>miter</code> (default)","obsolete":false},{"name":"lineWidth","help":"Width of lines. Default <code>1.0</code>","obsolete":false},{"name":"miterLimit","help":"Default <code>10</code>.","obsolete":false},{"name":"shadowBlur","help":"Specifies the blurring effect. Default <code>0</code>","obsolete":false},{"name":"shadowColor","help":"Color of the shadow. Default fully-transparent black.","obsolete":false},{"name":"shadowOffsetX","help":"Horizontal distance the shadow will be offset. Default 0.","obsolete":false},{"name":"shadowOffsetY","help":"Vertical distance the shadow will be offset. Default 0.","obsolete":false},{"name":"strokeStyle","help":"Color or style to use for the lines around shapes. Default <code>#000</code> (black).","obsolete":false},{"name":"textAlign","help":"Possible values: <code>start</code> (default), <code>end</code>, <code>left</code>, <code>right</code> or <code>center</code>.","obsolete":false},{"name":"textBaseLine","help":"Possible values: <code>top</code>, <code>hanging</code>, <code>middle</code>, <code>alphabetic</code> (default), <code>ideographic</code>, <code>bottom</code>","obsolete":false},{"name":"webkitCurrentTransform","help":"Sets or gets the current transformation matrix. \n<span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Requires Gecko 7.0</span>","obsolete":false},{"name":"webkitCurrentTransformInverse","help":"Set or gets the current inversed transformation matrix. \n<span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Requires Gecko 7.0</span>","obsolete":false},{"name":"webkitDash","help":"An array which specifies the lengths of alternating dashes and gaps. \n<span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Requires Gecko 7.0</span>","obsolete":false},{"name":"webkitDashOffset","help":"Specifies where to start a dasharray on a line. \n<span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Requires Gecko 7.0</span>","obsolete":false},{"name":"webkitFillRule","help":"The <a class=\"external\" title=\"http://cairographics.org/manual/cairo-cairo-t.html#cairo-fill-rule-t\" rel=\"external\" href=\"http://cairographics.org/manual/cairo-cairo-t.html#cairo-fill-rule-t\" target=\"_blank\">fill rule</a> to use. This must be one of <code>evenodd</code> or <code>nonzero</code> (default).","obsolete":false},{"name":"webkitImageSmoothingEnabled","help":"Image smoothing mode; if disabled, images will not be smoothed if scaled. \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false},{"name":"webkitTextStyle","help":"<span title=\"(Firefox 3)\n\">Requires Gecko 1.9</span>\n \n\n<span class=\"deprecatedInlineTemplate\" title=\"\">Deprecated</span>\n\n Deprecated in favor of the HTML5 <code>font</code> attribute described above.","obsolete":true},{"name":"webkitLineDash","help":"An array which specifies the lengths of alternating dashes and gaps.","obsolete":false},{"name":"webkitLineDashOffset","help":"Specifies where to start a dasharray on a line.","obsolete":false}]},"StyleMedia":{"title":"style.media","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/style.media","skipped":true,"cause":"Suspect title"},"PerformanceTiming":{"title":"Navigation Timing","members":[],"srcUrl":"https://developer.mozilla.org/en/Navigation_timing","skipped":true,"cause":"Suspect title"},"DOMSettableTokenList":{"title":"HTMLOutputElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLOutputElement","skipped":true,"cause":"Suspect title"},"SVGDescElement":{"title":"SVGDescElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGDescElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/desc\"><desc></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGDescElement"},"HTMLEmbedElement":{"title":"HTMLEmbedElement","summary":"<strong>Note:</strong> This topic describes the HTMLEmbedElement interface as defined in the HTML5 standard. It does not address earlier, non-standardized version of the interface.","members":[{"name":"height","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/embed#attr-height\">height</a></code>\n HTML attribute, containing the displayed height of the resource.","obsolete":false},{"name":"src","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/embed#attr-src\">src</a></code>\n HTML attribute, containing the address of the resource.","obsolete":false},{"name":"type","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/embed#attr-type\">type</a></code>\n HTML attribute, containing the type of the resource.","obsolete":false},{"name":"width","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/embed#attr-width\">width</a></code>\n HTML attribute, containing the displayed width of the resource.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLEmbedElement"},"CharacterData":{"title":"CharacterData","summary":"<code><a title=\"En/DOM/Text\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Text\">Text</a></code>, <code><a title=\"En/DOM/Comment\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Comment\">Comment</a></code>, and <code><a title=\"en/DOM/CDATASection\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CDATASection\">CDATASection</a></code> all implement CharacterData, which in turn also implements <code><a class=\"internal\" title=\"En/DOM/Node\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>. See <code>Node</code> for the remaining methods, properties, and constants.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/CharacterData.data","name":"data","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/CharacterData.length","name":"length","help":""}],"srcUrl":"https://developer.mozilla.org/En/DOM/CharacterData","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...ml#ID-FF21A306"},"IDBFactory":{"title":"IDBFactory","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td><code>open()</code> old specification</td> <td>12\n<span title=\"prefix\">webkit</span></td> <td>4.0 (2.0)\n\n<span title=\"prefix\">moz</span> until 9.0 (9.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>open()</code> new specification</td> <td><span title=\"Not supported.\">--</span></td> <td>10.0 (10.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>cmp ()</code></td> <td>16\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>deleteDatabase()</code></td> <td>17\n<span title=\"prefix\">webkit</span></td> <td>10.0 (10.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["<p>In the following code snippet, we open a database asynchronously and make a request. Event handlers are registered for responding to various situations.</p>\n\n <pre name=\"code\" class=\"js\">// Taking care of the browser-specific prefixes.\nif ('webkitIndexedDB' in window) {\n window.indexedDB = window.webkitIndexedDB; \n} else if ('mozIndexedDB' in window) {\n window.indexedDB = window.mozIndexedDB;\n... \n\n//Open a database called myAwesomeDatabase\nvar request = window.indexedDB.open('myAwesomeDatabase');\n//When a success event happens, do something.\nrequest.onsuccess = function(event) {\n var db = this.result;\n var transaction = db.transaction([], IDBTransaction.READ_ONLY);\n var curRequest = transaction.objectStore('ObjectStore Name').openCursor();\n curRequest.onsuccess = ...;\n };\n//When an error event happens, do something else.\nrequest.onerror = function(event) {\n ...;\n };</pre>"],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBFactory","summary":"<p>The <code>IDBFactory</code> interface of the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API</a> lets applications asynchronously access the indexed databases. The object that implements the interface is <code>window.indexedDB</code>. You open—that is, create and access—and delete a database with the object and not directly with <code>IDBFactory</code>.</p>\n<p>This interface still has vendor prefixes, that is to say, you have to make calls with <code>mozIndexedDB.open()</code> for Firefox and <code>webkitIndexedDB.open()</code> for Chrome.</p>","members":[{"name":"open","help":"<div class=\"warning\"><strong>Warning:</strong> The description documents the old specification. Some browsers still implement this method. The specifications have changed, but the changes have not yet been implemented by all browser. See the compatibility table for more information.</div>\n<p>Request opening a <a title=\"en/IndexedDB#gloss database connection\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_database_connection\">connection to a database</a>. The method returns an IDBRequest object immediately, and performs the opening operation asynchronously. </p>\n<p>The opening operation—which is performed in a separate thread—consists of the following steps:</p>\n<ol> <li>If a database named <code>myAwesomeDatabase</code> already exists: <ul> <li>Wait until any existing <code><a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a></code> transactions have finished.</li> <li>If the database has a deletion pending, wait until it has been deleted.</li> </ul> </li> <li>If no database with that name exists, create a database with the provided name, with the empty string as its version, and no object stores.</li> <li>Create a connection to the database.</li>\n</ol>\n<p>If the operation is successful, an <a title=\"en/IndexedDB/IDBSuccessEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent\">IDBSuccessEvent</a> is fired on the request object that is returned from this method, with its <a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a> attribute set to the new <a title=\"en/IndexedDB/IDBDatabase\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabase\">IDBDatabase</a> object for the connection.</p>\n<p>If an error occurs while the database connection is being opened, then an <a title=\"en/IndexedDB/IDBErrorEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent\">error event</a> is fired on the request object returned from this method, with its <a title=\"en/IndexedDB/IDBErrorEvent#attr code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_code\"><code>code</code></a> and <code><a title=\"en/IndexedDB/IDBErrorEvent#attr message\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_message\">message</a></code> set to appropriate values.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>name</dt> <dd>The name of the database.</dd> <dt>version</dt> <dd>The version of the database.</dd>\n</dl>\n</div><div id=\"section_6\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></code></dt> <dd>A request object on which subsequent events related to this request are fired. In the latest draft of the specification, which has not yet been implemented by browsers, the returned object is <code>IDBOpenRequest</code>.</dd>\n</dl>\n</div>","idl":"<pre>IDBRequest open(\n in DOMString name\n);</pre>","obsolete":false},{"name":"cmp","help":"<p>Compares two values as keys to determine equality and ordering for IndexedDB operations, such as storing and iterating. Do not use this method for comparing arbitrary JavaScript values, because many JavaScript values are either not valid IndexedDB keys (booleans and objects, for example) or are treated as equivalent IndexedDB keys (for example, since IndexedDB ignores arrays with non-numeric properties and treats them as empty arrays, so any non-numeric array are treated as equivalent).</p>\n<p>This throws an exception if either of the values is not a valid key. </p>\n\n<div id=\"section_11\"><span id=\"Parameters_3\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>first</dt> <dd>The first key to compare.</dd> <dt>second</dt> <dd>The second key to compare.</dd>\n</dl>\n</div><div id=\"section_12\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt>Integer</dt> <dd> <table class=\"standard-table\" width=\"434\"> <thead> <tr> <th scope=\"col\" width=\"216\">Returned value</th> <th scope=\"col\" width=\"206\">Description</th> </tr> </thead> <tbody> <tr> <td>-1</td> <td>1st key < 2nd</td> </tr> <tr> <td>0</td> <td>1st key = 2nd</td> </tr> <tr> <td>1</td> <td>1st key > 2nd</td> </tr> </tbody> </table> </dd>\n</dl>\n</div><div id=\"section_13\"><span id=\"Exceptions\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<br>\n<br>\n<br><table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Attribute</th> <th scope=\"col\" width=\"698\">Description</th> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NON_TRANSIENT_ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NON_TRANSIENT_ERR\">NON_TRANSIENT_ERR</a></code></td> <td>One of the supplied keys was not a valid key.</td> </tr> </thead> <tbody> </tbody>\n</table>\n</div>","idl":"<pre>int cmp(\n in any first, in any second\n);\n</pre>","obsolete":false},{"name":"deleteDatabase","help":"<p>Request deleting a database. The method returns an IDBRequest object immediately, and performs the deletion operation asynchronously.</p>\n<p>The deletion operation (performed in a different thread) consists of the following steps:</p>\n<ol> <li>If there is no database with the given name, exit successfully.</li> <li>Fire an <a title=\"en/IndexedDB/IDBVersionChangeEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBVersionChangeEvent\">IDBVersionChangeEvent</a> at all connection objects connected to the named database, with <code><a title=\"en/IndexedDB/IDBVersionChangeEvent#attr version\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBVersionChangeEvent#attr_version\">version</a></code> set to <code>null</code>.</li> <li>If any connection objects connected to the database are still open, fire a <code>blocked</code> event at the request object returned by the <code>deleteDatabase</code> method, using <a title=\"en/IndexedDB/IDBVersionChangeEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBVersionChangeEvent\">IDBVersionChangeEvent</a> with <code><a title=\"en/IndexedDB/IDBVersionChangeEvent#attr version\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBVersionChangeEvent#attr_version\">version</a></code> set to <code>null</code>.</li> <li>Wait until all open connections to the database are closed.</li> <li>Delete the database.</li>\n</ol>\n<p>If the database is successfully deleted, then an <a title=\"en/IndexedDB/IDBSuccessEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent\">IDBSuccessEvent</a> is fired on the request object returned from this method, with its <code><a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a></code> set to <code>null</code>.</p>\n<p>If an error occurs while the database is being deleted, then an error event is fired on the request object that is returned from this method, with its <code><a title=\"en/IndexedDB/IDBErrorEvent#attr code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_code\">code</a></code> and <code><a title=\"en/IndexedDB/IDBErrorEvent#attr message\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_message\">message</a></code> set to appropriate values.</p>\n<p><strong>Tip:</strong> If the browser you are using hasn't implemented this yet, you can delete the object stores one by one, thus effectively removing the database.</p>\n\n<div id=\"section_8\"><span id=\"Parameters_2\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>name</dt> <dd>The name of the database.</dd>\n</dl>\n</div><div id=\"section_9\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></code></dt> <dd>A request object on which subsequent events related to this request are fired. In the latest draft of the specification, which has not yet been implemented by browsers, the returned object is <code>IDBOpenRequest</code>.</dd>\n</dl>\n</div>","idl":"<pre>IDBRequest deleteDatabase(\n in DOMString name\n);\n</pre>","obsolete":false}]},"SVGLinearGradientElement":{"title":"SVGLinearGradientElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGLinearGradientElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/linearGradient\"><linearGradient></a></code>\n element.","members":[{"name":"x1","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/x1\">x1</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/linearGradient\"><linearGradient></a></code>\n element.","obsolete":false},{"name":"y1","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/y1\">y1</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/linearGradient\"><linearGradient></a></code>\n element.","obsolete":false},{"name":"x2","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/x2\">x2</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/linearGradient\"><linearGradient></a></code>\n element.","obsolete":false},{"name":"y2","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/y2\">y2</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/linearGradient\"><linearGradient></a></code>\n element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGLinearGradientElement"},"AudioParam":{"title":"Using the Right Markup to Invoke Plugins","members":[],"srcUrl":"https://developer.mozilla.org/en/using_the_right_markup_to_invoke_plugins","skipped":true,"cause":"Suspect title"},"HTMLFontElement":{"title":"font","summary":"Obsolete","members":[{"obsolete":false,"url":"","name":"face","help":"This attribute contains a comma-sperated list of one or more font names. The document text in the default style is rendered in the first font face that the client's browser supports. If no font listed is installed on the local system, the browser typically defaults to the proportional or fixed-width font for that system."},{"obsolete":false,"url":"","name":"color","help":"This attribute sets the text color using either a named color or a color specified in the hexadecimal #RRGGBB format."},{"obsolete":false,"url":"","name":"size","help":"This attribute specifies the font size as either a numeric or relative value. Numeric values range from <span>1</span> to <span>7</span> with <span>1</span> being the smallest and <span>3</span> the default. It can be defined using a relative value, like <span>+2</span> or <span>-3</span>, which set it relative to the value of the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/basefont#attr-size\">size</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/basefont\"><basefont></a></code>\n element, or relative to <span>3</span>, the default value, if none does exist."}],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/font"},"WebKitFlags":{"title":"JSClass.flags","summary":"<p>The <strong><code><a title=\"en/SpiderMonkey/JSAPI_Reference/JSClass\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSClass\">JSClass</a>.flags</code></strong> field allows an application to enable optional <code>JSClass</code> features on a per-class basis. The <code>flags</code> field is of type <code>uint32</code>. Its value is the logical OR of zero or more of the following constants:</p>\n<table class=\"fullwidth-table\"> <tbody> <tr> <th>Flag</th> <th>Meaning</th> </tr> <tr> <td> <p><code>JSCLASS_HAS_PRIVATE</code></p> </td> <td> <p>This class uses private data. If this flag is set, each instance of the class has a field for private data. The field can be accessed using <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JS_GetPrivate\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_GetPrivate\">JS_GetPrivate</a></code> and <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JS_SetPrivate\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_SetPrivate\">JS_SetPrivate</a></code>.</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_HAS_PRIVATE\">MXR ID Search for <code>JSCLASS_HAS_PRIVATE</code></a>\n</p> </td> </tr> <tr> <td> <p><code>JSCLASS_NEW_ENUMERATE</code></p> </td> <td> <p>This class's <code>enumerate</code> hook is actually a <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JSClass.enumerate\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSClass.enumerate\">JSNewEnumerateOp</a></code>, not a <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JSEnumerateOp\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSEnumerateOp\">JSEnumerateOp</a></code>.</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_NEW_ENUMERATE\">MXR ID Search for <code>JSCLASS_NEW_ENUMERATE</code></a>\n</p> </td> </tr> <tr> <td> <p><code>JSCLASS_NEW_RESOLVE</code></p> </td> <td> <p>This class's <code>resolve</code> hook is actually a <code><a title=\"En/SpiderMonkey/JSAPI_Reference/JSNewResolveOp\" rel=\"internal\" href=\"https://developer.mozilla.org/En/SpiderMonkey/JSAPI_Reference/JSNewResolveOp\">JSNewResolveOp</a></code>, not a <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JSClass.resolve\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSClass.resolve\">JSResolveOp</a></code>.</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_NEW_RESOLVE\">MXR ID Search for <code>JSCLASS_NEW_RESOLVE</code></a>\n</p> </td> </tr> <tr> <td> <p><code>JSCLASS_PRIVATE_IS_NSISUPPORTS</code></p> </td> <td> <p>Mozilla extension. The private field of each object of this class points to an <a title=\"en/XPCOM\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM\">XPCOM</a> object (see <code><a title=\"en/nsISupports\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISupports\">nsISupports</a></code>). This is only meaningful if SpiderMonkey is built with <a title=\"en/XPConnect\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPConnect\">XPConnect</a> and the <code>JSCLASS_HAS_PRIVATE</code> flag is also set.</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_PRIVATE_IS_NSISUPPORTS\">MXR ID Search for <code>JSCLASS_PRIVATE_IS_NSISUPPORTS</code></a>\n</p> </td> </tr> <tr> <td> <p><code>JSCLASS_SHARE_ALL_PROPERTIES</code></p> </td> <td> <p>Instructs SpiderMonkey to automatically give all properties of objects of this class the <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JS_GetPropertyAttributes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_GetPropertyAttributes\">JSPROP_SHARED</a></code> attribute.</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_SHARE_ALL_PROPERTIES\">MXR ID Search for <code>JSCLASS_SHARE_ALL_PROPERTIES</code></a>\n</p> </td> </tr> <tr> <td> <p><code>JSCLASS_NEW_RESOLVE_GETS_START</code></p> </td> <td> <p>The <code>resolve</code> hook expects to receive the starting object in the prototype chain passed in via the <code>*objp</code> in/out parameter. (This is meaningful only if the <code>JSCLASS_NEW_RESOLVE</code> flag is also set.)</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_NEW_RESOLVE_GETS_START\">MXR ID Search for <code>JSCLASS_NEW_RESOLVE_GETS_START</code></a>\n</p> </td> </tr> <tr> <td id=\"JSCLASS_CONSTRUCT_PROTOTYPE\"> <p><code>JSCLASS_CONSTRUCT_PROTOTYPE</code></p> </td> <td> <p>Instructs <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JS_InitClass\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_InitClass\">JS_InitClass</a></code> to invoke the constructor when creating the class prototype.</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_CONSTRUCT_PROTOTYPE\">MXR ID Search for <code>JSCLASS_CONSTRUCT_PROTOTYPE</code></a>\n</p> </td> </tr> <tr> <td> <p><code>JSCLASS_HAS_RESERVED_SLOTS(n)</code></p> </td> <td> <p>Indicates that instances of this class have <code>n</code> <em>reserved slots</em>. <code>n</code> is an integer in the range <code>[0..255]</code>. The slots initially contain unspecified valid <code>jsval</code> values. They can be accessed using <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JS_GetReservedSlot\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_GetReservedSlot\">JS_GetReservedSlot</a></code> and <code><a title=\"en/JS_SetReservedSlot\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_GetReservedSlot\">JS_SetReservedSlot</a></code>.</p> <p>(The <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JSClass.reserveSlots\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSClass.reserveSlots\">JSClass.reserveSlots</a></code> hook also allocates reserved slots to objects.)</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_HAS_RESERVED_SLOTS\">MXR ID Search for <code>JSCLASS_HAS_RESERVED_SLOTS</code></a>\n</p> </td> </tr> <tr> <td> <p><code>JSCLASS_IS_EXTENDED</code></p> </td> <td> <p>Indicates that this <code>JSClass</code> is really a <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JSExtendedClass\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSExtendedClass\">JSExtendedClass</a></code>.</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_IS_EXTENDED\">MXR ID Search for <code>JSCLASS_IS_EXTENDED</code></a>\n</p> </td> </tr> <tr> <td> <p><code>JSCLASS_MARK_IS_TRACE</code></p> </td> <td> <p>Indicates that the <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JSClass.mark\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSClass.mark\">mark</a></code> hook implements the new <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JSTraceOp\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSTraceOp\">JSTraceOp</a></code> signature instead of the old <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JSClass.mark\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSClass.mark\">JSMarkOp</a></code> signature. This is recommended for all new code that needs custom marking.</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_MARK_IS_TRACE\">MXR ID Search for <code>JSCLASS_MARK_IS_TRACE</code></a>\n</p> </td> </tr> <tr> <td> <p><code>JSCLASS_GLOBAL_FLAGS</code></p> </td> <td> <p>This flag is only relevant for the class of an object that is used as a global object. (ECMAScript specifies a single global object, but in SpiderMonkey the global object is the last object in the <a title=\"en/SpiderMonkey/JSAPI_Reference/JS_GetScopeChain\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_GetScopeChain\">scope chain</a>, which can be different objects at different times. This is actually quite subtle. <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JS_ExecuteScript\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_ExecuteScript\">JS_ExecuteScript</a></code> and similar APIs set the global object for the code they execute. <code><a title=\"en/SpiderMonkey/JSAPI_Reference/JS_SetGlobalObject\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_SetGlobalObject\">JS_SetGlobalObject</a></code> sets an object which is sometimes used as the global object, as a last resort.)</p> <p>Enable standard ECMAScript behavior for setting the prototype of certain objects, such as <code>Function</code> objects. If the global object does not have this flag, then scripts may cause nonstandard behavior by replacing standard constructors or prototypes (such as <code>Function.prototype</code>.)</p> <p>Objects that can end up with the wrong prototype object, if this flag is not present, include: <code>arguments</code> objects (\n<a rel=\"custom\" href=\"http://bclary.com/2004/11/07/#a-10.1.8\">§10.1.8</a>\n specifies \"the original <code>Object</code> prototype\"), <code>Function</code> objects (\n<a rel=\"custom\" href=\"http://bclary.com/2004/11/07/#a-13.2\">§13.2</a>\n specifies \"the original <code>Function</code> prototype\"), and objects created by many standard constructors (\n<a rel=\"custom\" href=\"http://bclary.com/2004/11/07/#a-15.4.2.1\">§15.4.2.1</a>\n and others).</p> <p><a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/ident?i=JSCLASS_GLOBAL_FLAGS\">MXR ID Search for <code>JSCLASS_GLOBAL_FLAGS</code></a>\n</p> </td> </tr> </tbody>\n</table>\n<p>SpiderMonkey reserves a few other flags for its internal use. They are <code>JSCLASS_IS_ANONYMOUS</code>, <code>JSCLASS_IS_GLOBAL</code>, and <code>JSCLASS_HAS_CACHED_PROTO</code>. JSAPI applications should not use these flags.</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/JSClass.flags"},"SVGTransformList":{"title":"SVGTransformList","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>length</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>9.0 (9.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>\n11.5</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>length</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>9.0 (9.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"<p>The <code>SVGTransformList</code> defines a list of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGTransform\">SVGTransform</a></code>\n objects.</p>\n<p>An <code>SVGTransformList</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>\n<div class=\"geckoVersionNote\"> <p>\n</p><div class=\"geckoVersionHeading\">Gecko 9.0 note<div>(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n</div></div>\n<p></p> <p>Starting in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n,the <code>SVGTransformList</code> DOM interface is now indexable and can be accessed like Arrays</p>\n</div>","members":[{"name":"clear","help":"<p>Clears all existing current items from the list, with the result being an empty list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"initialize","help":"<p>Clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter. If the inserted item is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. The return value is the item inserted into the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"getItem","help":"<p>Returns the specified item from the list. The returned item is the item itself and not a copy. Any changes made to the item are immediately reflected in the list. The first item is number 0.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"insertItemBefore","help":"<p>Inserts a new item into the list at the specified position. The first item is number 0. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. If the item is already in this list, note that the index of the item to insert before is before the removal of the item. If the <code>index</code> is equal to 0, then the new item is inserted at the front of the list. If the index is greater than or equal to <code>numberOfItems</code>, then the new item is appended to the end of the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"replaceItem","help":"<p>Replaces an existing item in the list with a new item. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. If the item is already in this list, note that the index of the item to replace is before the removal of the item.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>","obsolete":false},{"name":"removeItem","help":"<p>Removes an existing item from the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>","obsolete":false},{"name":"appendItem","help":"<p>Inserts a new item at the end of the list. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"numberOfItem","help":"The number of items in the list.","obsolete":false},{"name":"length","help":"The number of items in the list.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGTransformList"},"Metadata":{"title":"metadata","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> \n<tr><th scope=\"col\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Firefox (Gecko)</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.5 (1.8)\n</td> <td>\n9.0</td> <td>\n8.0</td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td>\n3.0</td> <td>1.0 (1.8)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<p>The chart is based on <a title=\"en/SVG/Compatibility sources\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Compatibility_sources\">these sources</a>.</p>","summary":"Metadata is structured data about data. Metadata which is included with SVG content should be specified within <code>metadata</code> elements. The contents of the <code>metadata</code> should be elements from other XML namespaces such as RDF, FOAF, etc.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/metadata"},"HTMLMeterElement":{"title":"meter","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>6.0</td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=555985\" class=\"external\" title=\"\">\nbug 555985</a>\n</td> <td><span title=\"Not supported.\">--</span></td> <td>11.0</td> <td>\n<em><a rel=\"custom\" href=\"http://nightly.webkit.org/\">Nightly build</a></em></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=555985\" class=\"external\" title=\"\">\nbug 555985</a>\n</td> <td><span title=\"Not supported.\">--</span></td> <td>11.0</td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["<div id=\"section_5\"><span id=\"Simple_example\"></span><h4 class=\"editable\">Simple example</h4>\n\n <pre name=\"code\" class=\"xml\"><p>Heat the oven to <meter min=\"200\" max=\"500\" value=\"350\">350 degrees</meter>.</p></pre>\n \n<p>On Google Chrome, the resulting meter looks like this:</p>\n<p><img class=\"internal default\" alt=\"meter1.png\" src=\"https://developer.mozilla.org/@api/deki/files/4940/=meter1.png\"></p>\n</div><div id=\"section_6\"><span id=\"Hilo_Range_example\"></span><span id=\"High_and_Low_range_example\"></span><h4 class=\"editable\">High and Low range example</h4>\n<p>Note that in this example the <strong>min</strong> attribute is omitted; this is allowed, as it will default to 0.</p>\n\n <pre name=\"code\" class=\"xml\"><p>He got a <meter low=\"69\" high=\"80\" max=\"100\" value=\"84\">B</meter> on the exam.</p></pre>\n \n<p>On Google Chrome, the resulting meter looks like this:</p>\n<p><img class=\"internal default\" alt=\"meter2.png\" src=\"https://developer.mozilla.org/@api/deki/files/4941/=meter2.png\"></p>\n</div>"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/meter","summary":"<p>The HTML <em>meter</em> element (<code><meter></code>) represents either a scalar value within a known range or a fractional value.</p>\n<div class=\"note\"><strong>Usage note: </strong>Unless the <strong>value</strong> attribute is between 0 and 1 (inclusive), the <strong>min</strong> attribute and <strong>max</strong> attribute should define the range so that the <strong>value</strong> attribute's value is within it.</div>","members":[{"obsolete":false,"url":"","name":"min","help":"The lower numeric bound of the measured range. This must be less than the maximum value (<strong>max</strong> attribute), if specified. If unspecified, the minimum value is 0."},{"obsolete":false,"url":"","name":"form","help":"This attribute associates the element with a <code>form</code> element that has ownership of the <code>meter</code> element. For example, a <code>meter</code> might be displaying a range corresponding to an <code>input</code> element of <strong>type</strong> <em>number</em>. This attribute is only used if the <code>meter</code> element is being used as a form-associated element; even then, it may be omitted if the element appears as a descendant of a <code>form</code> element."},{"obsolete":false,"url":"","name":"max","help":"The upper numeric bound of the measured range. This must be greater than the minimum value (<strong>min</strong> attribute), if specified. If unspecified, the maximum value is 1."},{"obsolete":false,"url":"","name":"optimum","help":"This attribute indicates the optimal numeric value. It must be within the range (as defined by the <strong>min</strong> attribute and <strong>max</strong> attribute). When used with the <strong>low</strong> attribute and <strong>high</strong> attribute, it gives an indication where along the range is considered preferable. For example, if it is between the <strong>min</strong> attribute and the <strong>low</strong> attribute, then the lower range is considered preferred."},{"obsolete":false,"url":"","name":"high","help":"The lower numeric bound of the high end of the measured range. This must be less than the maximum value (<strong>max</strong> attribute), and it also must be greater than the low value and minimum value (<strong>low</strong> attribute and <strong>min</strong> attribute, respectively), if any are specified. If unspecified, or if greater than the maximum value, the <strong>high</strong> value is equal to the maximum value."},{"obsolete":false,"url":"","name":"low","help":"The upper numeric bound of the low end of the measured range. This must be greater than the minimum value (<strong>min</strong> attribute), and it also must be less than the high value and maximum value (<strong>high</strong> attribute and <strong>max</strong> attribute, respectively), if any are specified. If unspecified, or if less than the minimum value, the <strong>low</strong> value is equal to the minimum value."},{"obsolete":false,"url":"","name":"value","help":"The current numeric value. This must be between the minimum and maximum values (<strong>min</strong> attribute and <strong>max</strong> attribute) if they are specified. If unspecified or malformed, the value is 0. If specified, but not within the range given by the <strong>min</strong> attribute and <strong>max</strong> attribute, the value is equal to the nearest end of the range."}]},"SVGStringList":{"title":"SVGStringList","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>12.0 (12)\n</td> <td>9.0</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>12.0 (12)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"<p>The <code>SVGStringList</code> defines a list of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMString\">DOMString</a></code>\n objects.</p>\n<p>An <code>SVGStringList</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>","members":[{"name":"clear","help":"<p>Clears all existing current items from the list, with the result being an empty list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"initialize","help":"<p>Clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter. If the inserted item is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. The return value is the item inserted into the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"getItem","help":"<p>Returns the specified item from the list. The returned item is the item itself and not a copy. Any changes made to the item are immediately reflected in the list. The first item is number 0.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"insertItemBefore","help":"<p>Inserts a new item into the list at the specified position. The first item is number 0. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. If the item is already in this list, note that the index of the item to insert before is before the removal of the item. If the <code>index</code> is equal to 0, then the new item is inserted at the front of the list. If the index is greater than or equal to <code>numberOfItems</code>, then the new item is appended to the end of the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"replaceItem","help":"<p>Replaces an existing item in the list with a new item. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy. If the item is already in this list, note that the index of the item to replace is before the removal of the item.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>","obsolete":false},{"name":"removeItem","help":"<p>Removes an existing item from the list.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>","obsolete":false},{"name":"appendItem","help":"<p>Inserts a new item at the end of the list. If <code>newItem</code> is already in a list, it is removed from its previous list before it is inserted into this list. The inserted item is the item itself and not a copy.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the list corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"numberOfItem","help":"The number of items in the list.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGStringList"},"HTMLDivElement":{"title":"HTMLDivElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/div\"><div></a></code>\n HTML element","summary":"DOM div (document division) objects expose the <a title=\"http://www.w3.org/TR/html5/grouping-content.html#htmldivelement\" class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/html5/grouping-content.html#htmldivelement\" target=\"_blank\">HTMLDivElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-22445964\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-22445964\" target=\"_blank\"><code>HTMLDivElement</code></a>) interface, which provides special properties (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating div elements. In \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>, this interface inherits from HTMLElement, but defines no additional members.","members":[{"name":"align","help":"Enumerated attribute indicating alignment of the element's contents with respect to the surrounding context.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLDivElement"},"SVGAltGlyphItemElement":{"title":"altGlyphItem","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/glyph\"><glyph></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/glyphRef\"><glyphRef></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/altGlyphDef\"><altGlyphDef></a></code>\n</li>","summary":"The <code>altGlyphItem</code> element provides a set of candidates for glyph substitution by the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/altGlyph\"><altGlyph></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/altGlyphItem"},"TimeRanges":{"title":"TimeRanges","summary":"<p>The <code>TimeRanges</code> interface is used to represent a set of time ranges, primarily for the purpose of tracking which portions of media have been buffered when loading it for use by the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/audio\"><audio></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video\"><video></a></code>\n elements.</p>\n<p>A <code>TimeRanges</code> object includes one or more ranges of time, each specified by a starting and ending time offset. You reference each time range by using the <code>start()</code> and <code>end()</code> methods, passing the index number of the time range you want to retrieve.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/TimeRanges.start","name":"start","help":"Returns the time for the start of the range with the specified index."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/TimeRanges.end","name":"end","help":"Returns the time for the end of the specified range."},{"url":"https://developer.mozilla.org/en/DOM/TimeRanges.length","name":"length","help":"The number of time ranges represented by the time range object. <strong>Read only.</strong>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/TimeRanges","specification":"WHATWG Working Draft"},"ArrayBuffer":{"title":"ArrayBuffer","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>7</td> <td>4.0 (2)\n</td> <td>10</td> <td>11.6</td> <td>5.1</td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td>4.0</td> <td>4.0 (2)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td>4.2</td> </tr> </tbody> </table>\n</div>","examples":["<p>In this example, we create a 32-byte buffer:</p>\n\n <pre name=\"code\" class=\"js\">var buf = new ArrayBuffer(32);</pre>"],"srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer","seeAlso":"<li><a class=\"link-https\" title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"The <code>ArrayBuffer</code> is a data type that is used to represent a generic, fixed-length binary data buffer. You can't directly manipulate the contents of an <code>ArrayBuffer</code>; instead, you create an <a title=\"en/JavaScript typed arrays/ArrayBufferView\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView\"><code>ArrayBufferView</code></a> object which represents the buffer in a specific format, and use that to read and write the contents of the buffer.","members":[{"name":"byteLength","help":"The size, in bytes, of the array. This is established when the array is constructed and cannot be changed. <strong>Read only.</strong>","obsolete":false}]},"SVGElementInstance":{"title":"SVGUseElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGUseElement","skipped":true,"cause":"Suspect title"},"SVGFEMergeNodeElement":{"title":"feMergeNode","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The feMergeNode takes the result of another filter to be processed by its parent <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feMergeNode"},"HTMLOutputElement":{"title":"HTMLOutputElement","members":[{"name":"checkValidity","help":"<p> in Gecko 2.0. Returns false if the element is a candidate for constraint validation, and it does not satisfy its constraints. In this case, it also fires an <code>invalid</code> event at the element. It returns true if the element is not a candidate for constraint validation, or if it satisfies its constraints.</p> <p>The standard behavior is to always return true because <code>output</code> objects are never candidates for constraint validation.</p>","obsolete":false},{"name":"setCustomValidity","help":"Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.","obsolete":false},{"name":"defaultValue","help":"The default value of the element, initially the empty string.","obsolete":false},{"name":"form","help":"Indicates the control's form owner, reflecting the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/output#attr-form\">form</a></code>\n HTML attribute if it is defined.","obsolete":false},{"name":"htmlFor","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/output#attr-for\">for</a></code>\n HTML attribute, containing a list of IDs of other elements in the same document that contribute to (or otherwise affect) the calculated <strong>value</strong>.","obsolete":false},{"name":"labels","help":"A list of label elements associated with this output element.","obsolete":false},{"name":"name","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/output#attr-name\">name</a></code>\n HTML attribute, containing the name for the control that is submitted with form data.","obsolete":false},{"name":"type","help":"Must be the string <code>output</code>.","obsolete":false},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.","obsolete":false},{"name":"validity","help":"The validity states that this element is in.","obsolete":false},{"name":"value","help":"The value of the contents of the elements. Behaves like the <strong><a title=\"En/DOM/Node.textContent\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node.textContent\">textContent</a></strong> property.","obsolete":false},{"name":"willValidate","help":"<p> in Gecko 2.0. Indicates whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation. (See <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=604673\" class=\"external\" title=\"\">\nbug 604673</a>\n.)</p> <p>The standard behavior is to always return false because <code>output</code> objects are never candidates for constraint validation.</p>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLOutputElement"},"Comment":{"title":"Comment","summary":"<p>A comment is used to add notations within markup; although it is generally not displayed, it is still available to be read in the source view (in Firefox: View -> Page Source). These are represented in HTML and XML as content between <code><!--</code> and <code>--> . </code>In XML, the character sequence \"--\" cannot be used within a comment.</p>\n<p>A comment has no special properties or methods of its own, but inherits those of <a title=\"En/DOM/CharacterData\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/CharacterData\">CharacterData</a> (which inherits from <a title=\"en/DOM/Node\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a>).</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/Comment","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...#ID-1728279322"},"HashChangeEvent":{"title":"window.onhashchange","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/window.onhashchange","skipped":true,"cause":"Suspect title"},"HTMLLabelElement":{"title":"HTMLLabelElement","summary":"DOM Label objects inherit all of the properties and methods of DOM <a title=\"en/DOM/element\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a>, and also expose the <a title=\"http://dev.w3.org/html5/spec/forms.html#htmllabelelement\" class=\" external\" rel=\"external\" href=\"http://dev.w3.org/html5/spec/forms.html#htmllabelelement\" target=\"_blank\">HTMLLabelElement</a>(or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-13691394\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-13691394\" target=\"_blank\">HTMLLabelElement</a>) interface.","members":[{"name":"accessKey","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/label#attr-accesskey\">accesskey</a></code>\n HTML attribute. In \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> this attribute is inherited from <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLElement\">HTMLElement</a></code>","obsolete":false},{"name":"control","help":"The labeled control.","obsolete":false},{"name":"form","help":"The form owner of this label.","obsolete":false},{"name":"htmlFor","help":"The ID of the labeled control. Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/label#attr-for\">for</a></code>\n attribute.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLLabelElement"},"CSSPageRule":{"title":"cssRule","members":[],"srcUrl":"https://developer.mozilla.org/pl/DOM/cssRule","skipped":true,"cause":"Suspect title"},"HTMLLegendElement":{"title":"HTMLLegendElement","summary":"DOM Legend objects inherit all of the properties and methods of DOM <a href=\"https://developer.mozilla.org/en/DOM/HTMLElement\" title=\"en/DOM/HTMLElement\" rel=\"internal\">HTMLElement</a>, and also expose the <a title=\"http://www.w3.org/TR/html5/forms.html#htmllegendelement\" class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/html5/forms.html#htmllegendelement\" target=\"_blank\">HTMLLegendElement</a> \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> (or <a class=\" external\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-21482039\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-21482039\" target=\"_blank\">HTMLLegendElement</a> \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span>) interface.","members":[{"name":"form","help":"The form that this legend belongs to. If the legend has a fieldset element as its parent, then this attribute returns the same value as the <strong>form</strong> attribute on the parent fieldset element. Otherwise, it returns null.","obsolete":false},{"name":"accessKey","help":"A single-character access key to give access to the element. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"align","help":"Alignment relative to the form set. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>, \n\n<span class=\"deprecatedInlineTemplate\" title=\"\">Deprecated</span>\n\n in \n<span>HTML 4.01</span>","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLLegendElement"},"SVGElement":{"title":"SVGElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGElement","seeAlso":"DOM <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/SVG/Element/element\" class=\"new\"><element></a></code>\n reference","summary":"All of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the <code>SVGElement</code> interface.","members":[{"name":"id","help":"The value of the \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/id\" class=\"new\">id</a></code> attribute on the given element, or the empty string if <code>id</code> is not present. ","obsolete":false},{"name":"xmlbase","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/xml%3Abase\" class=\"new\">xml:base</a></code> on the given element.","obsolete":false},{"name":"ownerSVGElement","help":"The nearest ancestor <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element. <code>Null</code> if the given element is the outermost svg element.","obsolete":false},{"name":"viewportElement","help":"The element which established the current viewport. Often, the nearest ancestor <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element. <code>Null</code> if the given element is the outermost svg element.","obsolete":false}]},"SVGAnimatedRect":{"title":"SVGAnimatedRect","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedRect</code> interface is used for attributes of basic <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGRect\">SVGRect</a></code>\n which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"A read only <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGRect\">SVGRect</a></code>\n representing the current animated value of the given attribute. If the given attribute is not currently being animated, then the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGRect\">SVGRect</a></code>\n will have the same contents as <code>baseVal</code>. The object referenced by <code>animVal</code> will always be distinct from the one referenced by <code>baseVal</code>, even when the attribute is not animated.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/SVGAnimatedRect"},"HTMLKeygenElement":{"title":"HTMLKeygenElement","summary":"<strong>Note:</strong> This page describes the Keygen Element interface as specified, not as currently implemented by Gecko. See <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=101019\" class=\"external\" title=\"\">\nbug 101019</a>\n for details and status.","members":[{"name":"checkValidity","help":"Always returns true because <code>keygen</code> objects are never candidates for constraint validation.","obsolete":false},{"name":"setCustomValidity","help":"Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.","obsolete":false},{"name":"autofocus","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/keygen#attr-autofocus\">autofocus</a></code>\n HTML attribute, indicating that the form control should have input focus when the page loads.","obsolete":false},{"name":"challenge","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/keygen#attr-challenge\">challenge</a></code>\n HTML attribute, containing a challenge string that is packaged with the submitted key.","obsolete":false},{"name":"disabled","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/keygen#attr-disabled\">disabled</a></code>\n HTML attribute, indicating that the control is not available for interaction.","obsolete":false},{"name":"form","help":"Indicates the control's form owner, reflecting the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/keygen#attr-form\">form</a></code>\n HTML attribute if it is defined.","obsolete":false},{"name":"keytype","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/keygen#attr-keytype\">keytype</a></code>\n HTML attribute, containing the type of key used.","obsolete":false},{"name":"labels","help":"A list of label elements associated with this keygen element.","obsolete":false},{"name":"name","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/keygen#attr-name\">name</a></code>\n HTML attribute, containing the name for the control that is submitted with form data.","obsolete":false},{"name":"type","help":"Must be the value <code>keygen</code>.","obsolete":false},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.","obsolete":false},{"name":"validity","help":"The validity states that this element is in.","obsolete":false},{"name":"willValidate","help":"Always false because <code>keygen</code> objects are never candidates for constraint validation.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLKeygenElement"},"SVGFontElement":{"title":"SVGFontElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGFontElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font\"><font></a></code>\n SVG Element","summary":"<p>The <code>SVGHFontElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font\"><font></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font\"><font></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"HTMLUListElement":{"title":"ul","seeAlso":"<li>Other list-related HTML Elements: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/li\"><li></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu\"><menu></a></code>\n and the obsolete <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/dir\"><dir></a></code>\n;</li> <li>CSS properties that may be specially useful to style the <span><ul></span> element: <ul> <li>the <a title=\"en/CSS/list-style\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/list-style\">list-style</a> property, useful to choose the way the ordinal is displayed,</li> <li><a title=\"en/CSS_Counters\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS_Counters\">CSS counters</a>, useful to handle complex nested lists,</li> <li>the <a title=\"en/CSS/line-height\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/line-height\">line-height</a> property, useful to simulate the deprecated \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul#attr-compact\">compact</a></code>\n attribute,</li> <li>the <a title=\"en/CSS/margin\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/margin\">margin</a> property, useful to control the indent of the list.</li> </ul> </li>","summary":"<p>The HTML <em>unordered list</em> element (<code><ul></code>) represents an unordered list of items, namely a collection of items that do not have a numerical ordering, and their order in the list is meaningless. Typically, unordered-list items are displayed with a bullet, which can be of several forms, like a dot, a circle or a squared. The bullet style is not defined in the HTML description of the page, but in its associated CSS, using the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/list-style-type\">list-style-type</a></code>\n property.</p>\n<p>There is no limitation to the depth and imbrication of lists defined with the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n elements.</p>\n<div class=\"note\"><strong>Usage note: </strong> The <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n both represent a list of items. They differ in the way that, with the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n element, the order is meaningful. As a rule of thumb to determine which one to use, try changing the order of the list items; if the meaning is changed, the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n element should be used, else the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n is adequate.</div>","members":[{"obsolete":false,"url":"","name":"compact","help":"This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn't work in all browsers. <div class=\"note\"><strong>Usage note: </strong>Do not use this attribute, as it has been deprecated: the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n element should be styled using <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a>. To give a similar effect than the <span>compact</span> attribute, the <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a> property <a title=\"en/CSS/line-height\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/line-height\">line-height</a> can be used with a value of <span>80%</span>.</div>"},{"obsolete":false,"url":"","name":"type","help":"Used to set the bullet style for the list. The values defined under <a title=\"en/HTML3.2\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML3.2\" class=\"new \">HTML3.2</a> and the transitional version of <a title=\"en/HTML4.01\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML4.01\" class=\"new \">HTML 4.0/4.01</a> are<span>:</span> <ul> <li><code>circle</code>,</li> <li><code>disc</code>,</li> <li>and <code>square</code>.</li> </ul> <p>A fourth bullet type has been defined in the WebTV interface, but not all browsers support it: <code>triangle.</code></p> <p>If not present and if no <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a> <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/list-style-type\">list-style-type</a></code>\n property does apply to the element, the user agent decide to use a kind of bullets depending on the nesting level of the list.</p> <div class=\"note\"><strong>Usage note:</strong> Do not use this attribute, as it has been deprecated: use the <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a> <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/list-style-type\">list-style-type</a></code>\n property instead.</div>"}],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/ul"},"SVGMarkerElement":{"title":"marker","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> \n<tr><th scope=\"col\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Firefox (Gecko)</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.5 (1.8)\n</td> <td>\n9.0</td> <td>\n9.0</td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td>\n3.0</td> <td>1.0 (1.8)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<p>The chart is based on <a title=\"en/SVG/Compatibility sources\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Compatibility_sources\">these sources</a>.</p>","examples":["<tr> <th scope=\"col\">Source code</th> <th scope=\"col\">Output result</th> </tr> <tr> <td>\n <pre name=\"code\" class=\"xml\"><?xml version=\"1.0\"?>\n<svg width=\"120\" height=\"120\" viewBox=\"0 0 120 120\"\n xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n\n <defs>\n <marker id=\"Triangle\"\n viewBox=\"0 0 10 10\" \n refX=\"1\" refY=\"5\"\n markerWidth=\"6\" \n markerHeight=\"6\"\n orient=\"auto\">\n <path d=\"M 0 0 L 10 5 L 0 10 z\" />\n\t </marker>\n </defs>\n\n <polyline points=\"10,90 50,80 90,20\"\n fill=\"none\" stroke=\"black\" \n stroke-width=\"2\"\n marker-end=\"url(#Triangle)\" />\n</svg></pre>\n </td> <td>\n<iframe src=\"https://developer.mozilla.org/@api/deki/services/developer.mozilla.org/39/images/f3ac8fb0-712a-178f-f696-81bc9eecbd0f.svg\" width=\"120px\" height=\"120px\" marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\"></iframe>\n</td> </tr>"],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/marker","summary":"The <code>marker</code> element defines the graphics that is to be used for drawing arrowheads or polymarkers on a given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/path\"><path></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/line\"><line></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/polyline\"><polyline></a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/polygon\"><polygon></a></code>\n element.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/transform","name":"transform","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/markerHeight","name":"markerHeight","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/externalResourcesRequired","name":"externalResourcesRequired","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/viewBox","name":"viewBox","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio","name":"preserveAspectRatio","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/refY","name":"refY","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/refX","name":"refX","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/markerWidth","name":"markerWidth","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/markerUnits","name":"markerUnits","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/orient","name":"orient","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":""}]},"KeyboardEvent":{"title":"KeyboardEvent","examples":["<!DOCTYPE html>\n<html>\n<head>\n<script>\n var metaChar = false;\n var exampleKey = 16;\n function keyEvent(event) {\n var key = event.keyCode || event.which;\n var keychar = String.fromCharCode(key);\n if (key == exampleKey) {\n metaChar = true;\n }\n if (key != exampleKey) {\n if (metaChar) {\n alert(\"Combination of metaKey + \" + keychar);\n metaChar = false;\n } else {\n alert(\"Key pressed \" + key);\n }\n }\n }\n\n function metaKeyUp (event) {\n var key = event.keyCode || event.which;\n if (key==exampleKey) {\n metaChar = false;\n }\n }\n</script>\n</head>\n\n<body onkeydown=\"keyEvent(event)\" onkeyup=\"metaKeyUp(event)\">\n</body>\n</html>"],"srcUrl":"https://developer.mozilla.org/en/DOM/KeyboardEvent","specification":"DOM 3 Events: KeyboardEvent","summary":"<div class=\"deprecatedHeaderTemplate\"><p>Deprecated</p></div>\n<p></p>\n<p><code>KeyboardEvent</code> objects describe a user interaction with the keyboard. Each event describes a key; the event type (<code>keydown</code>, <code>keypress</code>, or <code>keyup</code>) identifies what kind of activity was performed.</p>\n<div class=\"note\"><strong>Note:</strong> The <code>KeyboardEvent</code> interface is deprecated in DOM Level 3 in favor of the new <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/TextInput\" class=\"new\">TextInput</a></code>\n interface and the corresponding <code>textinput</code> event, which have improved support for alternate input methods. However, DOM Level 3 <code>textinput</code> events are <a title=\"https://bugzilla.mozilla.org/show_bug.cgi?id=622245\" class=\" link-https\" rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=622245\" target=\"_blank\">not yet implemented</a> in Gecko (as of version 6.0), so code written for Gecko browsers should continue to use <code>KeyboardEvent</code> for now.</div>","members":[{"name":"initKeyboardEvent","help":"<p>Initializes the attributes of a keyboard event object.</p>\n\n<div id=\"section_11\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>typeArg</code></dt> <dd>The type of keyboard event; this will be one of <code>keydown</code>, <code>keypress</code>, or <code>keyup</code>.</dd> <dt><code>canBubbleArg</code></dt> <dd>Whether or not the event can bubble.</dd> <dt><code>cancelableArg</code></dt> <dd>Whether or not the event can be canceled.</dd> <dt><code>viewArg</code></dt> <dd>?</dd> <dt><code>charArg</code></dt> <dd>The value of the char attribute.</dd> <dt><code>keyArg</code></dt> <dd>The value of the key attribute.</dd> <dt><code>locationArg</code></dt> <dd>The value of the location attribute.</dd> <dt><code>modifiersListArg</code></dt> <dd>A whitespace-delineated list of modifier keys that should be considered to be active on the event's key. For example, specifying \"Control Shift\" indicates that the user was holding down the Control and Shift keys when pressing the key described by the event.</dd> <dt><code>repeatArg</code></dt> <dd>The value of the repeat attribute.</dd> <dt><code>localeArg</code></dt> <dd>The value of the locale attribute.</dd>\n</dl>\n</div>","idl":"<pre>void initKeyboardEvent(\n in DOMString typeArg,\n in boolean canBubbleArg,\n in boolean cancelableArg,\n in views::AbstractView viewArg,\n in DOMString charArg,\n in DOMString keyArg,\n in unsigned long locationArg,\n in DOMString modifiersListArg,\n in boolean repeat,\n in DOMString localeArg\n);\n</pre>","obsolete":false},{"name":"getModifierState","help":"<p>Returns the current state of the specified modifier key.</p>\n\n<div id=\"section_8\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>keyArg</code></dt> <dd>A string identifying the modifier key whose value you wish to determine. This may be an implementation-defined value or one of: \"Alt\", \"AltGraph\", \"CapsLock\", \"Control\", \"Fn\", \"Meta\", \"NumLock\", \"Scroll\", \"Shift\", \"SymbolLock\", or \"Win\".</dd>\n</dl>\n</div><div id=\"section_9\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p><code>true</code> if the specified modifier key is engaged; otherwise <code>false</code>.</p>\n</div>","idl":"<pre>boolean getModifierState(\n in DOMString keyArg\n);\n</pre>","obsolete":false},{"name":"DOM_VK_CANCEL","help":"Cancel key.","obsolete":false},{"name":"DOM_VK_HELP","help":"Help key.","obsolete":false},{"name":"DOM_VK_BACK_SPACE","help":"Backspace key.","obsolete":false},{"name":"DOM_VK_TAB","help":"Tab key.","obsolete":false},{"name":"DOM_VK_CLEAR","help":"Clear key.","obsolete":false},{"name":"DOM_VK_RETURN","help":"Return/enter key on the main keyboard.","obsolete":false},{"name":"DOM_VK_ENTER","help":"Enter key on the numeric keypad.","obsolete":false},{"name":"DOM_VK_SHIFT","help":"Shift key.","obsolete":false},{"name":"DOM_VK_CONTROL","help":"Control key.","obsolete":false},{"name":"DOM_VK_ALT","help":"Alt (Option on Mac) key.","obsolete":false},{"name":"DOM_VK_PAUSE","help":"Pause key.","obsolete":false},{"name":"DOM_VK_CAPS_LOCK","help":"Caps lock.","obsolete":false},{"name":"DOM_VK_ESCAPE","help":"Escape key.","obsolete":false},{"name":"DOM_VK_SPACE","help":"Space bar.","obsolete":false},{"name":"DOM_VK_PAGE_UP","help":"Page Up key.","obsolete":false},{"name":"DOM_VK_PAGE_DOWN","help":"Page Down key.","obsolete":false},{"name":"DOM_VK_END","help":"End key.","obsolete":false},{"name":"DOM_VK_HOME","help":"Home key.","obsolete":false},{"name":"DOM_VK_LEFT","help":"Left arrow.","obsolete":false},{"name":"DOM_VK_UP","help":"Up arrow.","obsolete":false},{"name":"DOM_VK_RIGHT","help":"Right arrow.","obsolete":false},{"name":"DOM_VK_DOWN","help":"Down arrow.","obsolete":false},{"name":"DOM_VK_SELECT","help":"","obsolete":false},{"name":"DOM_VK_PRINT","help":"","obsolete":false},{"name":"DOM_VK_EXECUTE","help":"","obsolete":false},{"name":"DOM_VK_PRINTSCREEN","help":"Print Screen key.","obsolete":false},{"name":"DOM_VK_INSERT","help":"Ins(ert) key.","obsolete":false},{"name":"DOM_VK_DELETE","help":"Del(ete) key.","obsolete":false},{"name":"DOM_VK_SEMICOLON","help":"","obsolete":false},{"name":"DOM_VK_EQUALS","help":"","obsolete":false},{"name":"DOM_VK_A","help":"","obsolete":false},{"name":"DOM_VK_B","help":"","obsolete":false},{"name":"DOM_VK_C","help":"","obsolete":false},{"name":"DOM_VK_D","help":"","obsolete":false},{"name":"DOM_VK_E","help":"","obsolete":false},{"name":"DOM_VK_F","help":"","obsolete":false},{"name":"DOM_VK_G","help":"","obsolete":false},{"name":"DOM_VK_H","help":"","obsolete":false},{"name":"DOM_VK_I","help":"","obsolete":false},{"name":"DOM_VK_J","help":"","obsolete":false},{"name":"DOM_VK_K","help":"","obsolete":false},{"name":"DOM_VK_L","help":"","obsolete":false},{"name":"DOM_VK_M","help":"","obsolete":false},{"name":"DOM_VK_N","help":"","obsolete":false},{"name":"DOM_VK_O","help":"","obsolete":false},{"name":"DOM_VK_P","help":"","obsolete":false},{"name":"DOM_VK_Q","help":"","obsolete":false},{"name":"DOM_VK_R","help":"","obsolete":false},{"name":"DOM_VK_S","help":"","obsolete":false},{"name":"DOM_VK_T","help":"","obsolete":false},{"name":"DOM_VK_U","help":"","obsolete":false},{"name":"DOM_VK_V","help":"","obsolete":false},{"name":"DOM_VK_W","help":"","obsolete":false},{"name":"DOM_VK_X","help":"","obsolete":false},{"name":"DOM_VK_Y","help":"","obsolete":false},{"name":"DOM_VK_Z","help":"","obsolete":false},{"name":"DOM_VK_CONTEXT_MENU","help":"","obsolete":false},{"name":"DOM_VK_MULTIPLY","help":"* on the numeric keypad.","obsolete":false},{"name":"DOM_VK_ADD","help":"+ on the numeric keypad.","obsolete":false},{"name":"DOM_VK_SEPARATOR","help":"","obsolete":false},{"name":"DOM_VK_SUBTRACT","help":"- on the numeric keypad.","obsolete":false},{"name":"DOM_VK_DECIMAL","help":"Decimal point on the numeric keypad.","obsolete":false},{"name":"DOM_VK_DIVIDE","help":"/ on the numeric keypad.","obsolete":false},{"name":"DOM_VK_NUM_LOCK","help":"Num Lock key.","obsolete":false},{"name":"DOM_VK_SCROLL_LOCK","help":"Scroll Lock key.","obsolete":false},{"name":"DOM_VK_COMMA","help":"Comma (\",\") key.","obsolete":false},{"name":"DOM_VK_PERIOD","help":"Period (\".\") key.","obsolete":false},{"name":"DOM_VK_SLASH","help":"Slash (\"/\") key.","obsolete":false},{"name":"DOM_VK_BACK_QUOTE","help":"Back tick (\"`\") key.","obsolete":false},{"name":"DOM_VK_OPEN_BRACKET","help":"Open square bracket (\"[\") key.","obsolete":false},{"name":"DOM_VK_BACK_SLASH","help":"Back slash (\"\\\") key.","obsolete":false},{"name":"DOM_VK_CLOSE_BRACKET","help":"Close square bracket (\"]\") key.","obsolete":false},{"name":"DOM_VK_QUOTE","help":"Quote ('\"') key.","obsolete":false},{"name":"DOM_VK_META","help":"Meta (Command on Mac) key.","obsolete":false},{"name":"DOM_VK_KANA","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_HANGUL","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_JUNJA","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_FINAL","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_HANJA","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_KANJI","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_CONVERT","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_NONCONVERT","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_ACCEPT","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_MODECHANGE","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_SELECT","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_PRINT","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_EXECUTE","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_VK_SLEEP","help":"Linux support for this keycode was added in Gecko 4.0.","obsolete":false},{"name":"DOM_KEY_LOCATION_STANDARD","help":"The key must not be distinguished between the left and right versions of the key, and was not pressed on the numeric keypad or a key that is considered to be part of the keypad.","obsolete":false},{"name":"DOM_KEY_LOCATION_LEFT","help":"The key was the left-hand version of the key; for example, this is the value of the <code>location</code> attribute when the left-hand Control key is pressed on a standard 101 key US keyboard. This value is only used for keys that have more that one possible location on the keyboard.","obsolete":false},{"name":"DOM_KEY_LOCATION_RIGHT","help":"The key was the right-hand version of the key; for example, this is the value of the <code>location</code> attribute when the right-hand Control key is pressed on a standard 101 key US keyboard. This value is only used for keys that have more that one possible location on the keyboard.","obsolete":false},{"name":"DOM_KEY_LOCATION_NUMPAD","help":"The key was on the numeric keypad, or has a virtual key code that corresponds to the numeric keypad.","obsolete":false},{"name":"DOM_KEY_LOCATION_MOBILE","help":"The key was on a mobile device; this can be on either a physical keypad or a virtual keyboard.","obsolete":false},{"name":"DOM_KEY_LOCATION_JOYSTICK","help":"The key was a button on a game controller or a joystick on a mobile device.","obsolete":false},{"name":"altKey","help":"<code>true</code> if the Alt (or Option, on Mac) key was active when the key event was generated. <strong>Read only.</strong>","obsolete":false},{"name":"char","help":"<p>The character value of the key. If the key corresponds to a printable character, this value is a non-empty Unicode string containing that character. If the key doesn't have a printable representation, this is an empty string. <strong>Read only.</strong></p> <div class=\"note\">Not yet implemented in Gecko.</div> <div class=\"note\"><strong>Note:</strong> If the key is used as a macro that inserts multiple characters, this attribute's value is the entire string, not just the first character.</div>","obsolete":false},{"name":"charCode","help":"<p>The Unicode reference number of the key; this attribute is used only by the <code>keypress</code> event. For keys whose <code>char</code> attribute contains multiple characters, this is the Unicode value of the first character in that attribute. <strong>Read only.</strong></p> <div class=\"warning\"><strong>Warning:</strong> This attribute is deprecated; you should use <code>char</code> instead, if available.</div>","obsolete":true},{"name":"ctrlKey","help":"<code>true</code> if the Control key was active when the key event was generated. <strong>Read only.</strong>","obsolete":false},{"name":"key","help":"<p>The key value of the key represented by the event. If the value has a printed representation, this attribute's value is the same as the <code>char</code> attribute. Otherwise, it's one of the key value strings specified in <a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/KeyboardEvent#Key_values\">Key values</a>. If the key can't be identified, this is the string \"Unidentified\". <strong>Read only.</strong></p> <div class=\"note\">Not yet implemented in Gecko.</div>","obsolete":false},{"name":"keyCode","help":"<p>A system and implementation dependent numerical code identifying the unmodified value of the pressed key. This is usually the decimal ASCII (<a rel=\"custom\" href=\"http://tools.ietf.org/html/20\">RFC 20</a>) or Windows 1252 code corresponding to the key; see <a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/KeyboardEvent#Virtual_key_codes\">Virtual key codes</a> for a list of common values. If the key can't be identified, this value is 0. <strong>Read only.</strong></p> <div class=\"warning\"><strong>Warning:</strong> This attribute is deprecated; you should use <code>key</code> instead, if available.</div>","obsolete":true},{"name":"locale","help":"<p>A locale string indicating the locale the keyboard is configured for. This may be the empty string if the browser or device doesn't know the keyboard's locale. <strong>Read only.</strong></p> <div class=\"note\"><strong>Note:</strong> This does not describe the locale of the data being entered. A user may be using one keyboard layout while typing text in a different language.</div>","obsolete":false},{"name":"location","help":"The location of the key on the keyboard or other input device; see <a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/KeyboardEvent#Key_location_constants\">Key location constants</a> below. <strong>Read only.</strong>","obsolete":false},{"name":"metaKey","help":"<code>true</code> if the Meta (or Command, on Mac) key was active when the key event was generated. <strong>Read only.</strong>","obsolete":false},{"name":"repeat","help":"true if the key is being held down such that it is automatically repeating. <strong>Read only.</strong>","obsolete":false},{"name":"shiftKey","help":"<code>true</code> if the Shift key was active when the key event was generated. <strong>Read only.</strong>","obsolete":false},{"name":"which","help":"<p>A system and implementation dependent numeric code identifying the unmodified value of the pressed key; this is usually the same as <code>keyCode</code>. <strong>Read only.</strong></p> <div class=\"warning\"><strong>Warning:</strong> This attribute is deprecated; you should use <code>key</code> instead, if available.</div>","obsolete":true}]},"Location":{"title":"window.location","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","examples":["<p>Whenever a property of the location object is modified, a document will be loaded using the URL as if <code>window.location.assign()</code> had been called with the modified URL.</p>\n<div id=\"section_8\"><span id=\"Replace_the_current_document_with_the_one_at_the_given_URL:\"></span><h5 class=\"editable\">Replace the current document with the one at the given URL:</h5>\n\n <pre name=\"code\" class=\"js\">function goMoz() { \n window.location = \"http://www.mozilla.org\";\n} \n\n// in html: <button onclick=\"goMoz();\">Mozilla</button></pre>\n \n<div class=\"note\"><strong>Note:</strong> The example above works in situations where <code>window.location.hash</code> does not need to be retained. However, in Gecko-based browsers, setting <code>window.location.pathname</code> in this manner will erase any information in <code>window.location.hash</code>, whereas in WebKit (and possibly other browsers), setting the pathname will not alter the the hash. If you need to change pathname but keep the hash as is, use the <code>replace()</code> method instead, which should work consistently across browsers.</div>\n<p><br> Consider the following example, which will reload the page by using the <code>replace()</code> method to insert the value of <code>window.location.pathname</code> into the hash (similar to Twitter's reload of <a class=\" external\" rel=\"external\" href=\"http://twitter.com/username\" title=\"http://twitter.com/username\" target=\"_blank\">http://twitter.com/username</a> to <a class=\" external\" rel=\"external\" href=\"http://twitter.com/#!/username\" title=\"http://twitter.com/#!/username\" target=\"_blank\">http://twitter.com/#!/username</a>):</p>\n\n <pre name=\"code\" class=\"js\">function reloadPageWithHash() {\n var initialPage = window.location.pathname;\n window.location.replace('http://example.com/#' + initialPage);\n}</pre>\n \n</div><div id=\"section_9\"><span id=\"Display_the_properties_of_the_current_URL_in_an_alert_dialog:\"></span><h5 class=\"editable\">Display the properties of the current URL in an alert dialog:</h5>\n\n <pre name=\"code\" class=\"js\">function showLoc() {\n var oLocation = window.location, aLog = [\"Property (Typeof): Value\", \"window.location (\" + (typeof oLocation) + \"): \" + oLocation ];\n for (var sProp in oLocation){\n aLog.push(sProp + \" (\" + (typeof oLocation[sProp]) + \"): \" + (oLocation[sProp] || \"n/a\"));\n }\n alert(aLog.join(\"\\n\"));\n}\n\n// in html: <button onclick=\"showLoc();\">Show location properties</button></pre>\n \n</div><div id=\"section_10\"><span id=\"Send_a_string_of_data_to_the_server_by_modifying_the_search_property:\"></span><h5 class=\"editable\">Send a string of data to the server by modifying the <code>search</code> property:</h5>\n\n <pre name=\"code\" class=\"js\">function sendData (sData) {\n window.location.search = sData;\n}\n\n// in html: <button onclick=\"sendData('Some data');\">Send data</button></pre>\n \n<p>The current URL with \"?Some%20data\" appended is sent to the server (if no action is taken by the server, the current document is reloaded with the modified search string).</p>\n</div><div id=\"section_11\"><span id=\"Get_the_value_of_a_single_window.location.search_key:\"></span><h5 class=\"editable\">Get the value of a single <code>window.location.search</code> key:</h5>\n\n <pre name=\"code\" class=\"js\">function loadPageVar (sVar) {\n return unescape(window.location.search.replace(new RegExp(\"^(?:.*[&\\\\?]\" + escape(sVar).replace(/[\\.\\+\\*]/g, \"\\\\$&\") + \"(?:\\\\=([^&]*))?)?.*$\", \"i\"), \"$1\"));\n}\n\nalert(loadPageVar(\"name\"));</pre>\n \n</div><div id=\"section_12\"><span id=\"Nestle_the_variables_obtained_through_the_window.location.search_string_in_an_object_named_oGetVars.2C_also_attempting_to_recognize_their_typeof:\"></span><h5 class=\"editable\">Nestle the variables obtained through the <code>window.location.search</code> string in an object named <code>oGetVars</code>, also attempting to recognize their <code><a title=\"en/JavaScript/Reference/Operators/typeof\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference/Operators/typeof\">typeof</a></code>:</h5>\n\n <pre name=\"code\" class=\"js\">var oGetVars = {};\n\nfunction buildValue(sValue) {\n if (/^\\s*$/.test(sValue)) { return null; }\n if (/^(true|false)$/i.test(sValue)) { return sValue.toLowerCase() === \"true\"; }\n if (isFinite(sValue)) { return parseFloat(sValue); }\n if (isFinite(Date.parse(sValue))) { return new Date(sValue); }\n return sValue;\n}\n\nif (window.location.search.length > 1) {\n for (var aItKey, nKeyId = 0, aCouples = window.location.search.substr(1).split(\"&\"); nKeyId < aCouples.length; nKeyId++) {\n aItKey = aCouples[nKeyId].split(\"=\");\n oGetVars[unescape(aItKey[0])] = aItKey.length > 1 ? buildValue(unescape(aItKey[1])) : null;\n }\n}\n\n// alert(oGetVars.yourVar);</pre>\n \n<p>…the same thing obtained by an anonymous constructor – useful for a global variable declaration:</p>\n\n <pre name=\"code\" class=\"js\">var oGetVars = new (function (sSearch) {\n var rNull = /^\\s*$/, rBool = /^(true|false)$/i;\n function buildValue(sValue) {\n if (rNull.test(sValue)) { return null; }\n if (rBool.test(sValue)) { return sValue.toLowerCase() === \"true\"; }\n if (isFinite(sValue)) { return parseFloat(sValue); }\n if (isFinite(Date.parse(sValue))) { return new Date(sValue); }\n return sValue;\n }\n if (sSearch.length > 1) {\n for (var aItKey, nKeyId = 0, aCouples = sSearch.substr(1).split(\"&\"); nKeyId < aCouples.length; nKeyId++) {\n aItKey = aCouples[nKeyId].split(\"=\");\n this[unescape(aItKey[0])] = aItKey.length > 1 ? buildValue(unescape(aItKey[1])) : null;\n }\n }\n})(window.location.search);\n\n// alert(oGetVars.yourVar);</pre>\n \n</div><div id=\"section_13\"><span id=\"Using_bookmars_without_changing_the_window.location.hash_property:\"></span><h5 class=\"editable\">Using bookmars without changing the <code>window.location.hash</code> property:</h5>\n\n <pre name=\"code\" class=\"xml\"><!doctype html>\n<html>\n<head>\n<meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\" />\n<title>MDN Example</title>\n<script type=\"text/javascript\">\nfunction showNode (oNode) {\n var nLeft = 0, nTop = 0;\n for (var oItNode = oNode; oItNode; nLeft += oItNode.offsetLeft, nTop += oItNode.offsetTop, oItNode = oItNode.offsetParent);\n document.documentElement.scrollTop = nTop;\n document.documentElement.scrollLeft = nLeft;\n}\n\nfunction showBookmark (sBookmark, bUseHash) {\n if (bUseHash) { window.location.hash = \"#\" + sBookmark; return; }\n var oBookmark = document.getElementById(sBookmark);\n if (oBookmark) { showNode(oBookmark); }\n}\n</script>\n<style type=\"text/css\">\nspan.intLink {\n cursor: pointer;\n color: #0000ff;\n text-decoration: underline;\n}\n</style>\n</head>\n\n<body>\n<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ultrices dolor ac dolor imperdiet ullamcorper. Suspendisse quam libero, luctus auctor mollis sed, malesuada condimentum magna. Quisque in ante tellus, in placerat est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec a mi magna, quis mattis dolor. Etiam sit amet ligula quis urna auctor imperdiet nec faucibus ante. Mauris vel consectetur dolor. Nunc eget elit eget velit pulvinar fringilla consectetur aliquam purus. Curabitur convallis, justo posuere porta egestas, velit erat ornare tortor, non viverra justo diam eget arcu. Phasellus adipiscing fermentum nibh ac commodo. Nam turpis nunc, suscipit a hendrerit vitae, volutpat non ipsum.</p>\n<p>Duis lobortis sapien quis nisl luctus porttitor. In tempor semper libero, eu tincidunt dolor eleifend sit amet. Ut nec velit in dolor tincidunt rhoncus non non diam. Morbi auctor ornare orci, non euismod felis gravida nec. Curabitur elementum nisi a eros rutrum nec blandit diam placerat. Aenean tincidunt risus ut nisi consectetur cursus. Ut vitae quam elit. Donec dignissim est in quam tempor consequat. Aliquam aliquam diam non felis convallis suscipit. Nulla facilisi. Donec lacus risus, dignissim et fringilla et, egestas vel eros. Duis malesuada accumsan dui, at fringilla mauris bibendum quis. Cras adipiscing ultricies fermentum. Praesent bibendum condimentum feugiat.</p>\n<p id=\"myBookmark1\">[&nbsp;<span class=\"intLink\" onclick=\"showBookmark('myBookmark2');\">Go to bookmark #2</span>&nbsp;]</p>\n<p>Vivamus blandit massa ut metus mattis in fringilla lectus imperdiet. Proin ac ante a felis ornare vehicula. Fusce pellentesque lacus vitae eros convallis ut mollis magna pellentesque. Pellentesque placerat enim at lacus ultricies vitae facilisis nisi fringilla. In tincidunt tincidunt tincidunt. Nulla vitae tempor nisl. Etiam congue, elit vitae egestas mollis, ipsum nisi malesuada turpis, a volutpat arcu arcu id risus.</p>\n<p>Nam faucibus, ligula eu fringilla pulvinar, lectus tellus iaculis nunc, vitae scelerisque metus leo non metus. Proin mattis lobortis lobortis. Quisque accumsan faucibus erat, vel varius tortor ultricies ac. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed nec libero nunc. Nullam tortor nunc, elementum a consectetur et, ultrices eu orci. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque a nisl eu sem vehicula egestas.</p>\n<p>Aenean viverra varius mauris, sed elementum lacus interdum non. Phasellus sit amet lectus vitae eros egestas pellentesque fermentum eget magna. Quisque mauris nisl, gravida vitae placerat et, condimentum id metus. Nulla eu est dictum dolor pulvinar volutpat. Pellentesque vitae sollicitudin nunc. Donec neque magna, lobortis id egestas nec, sodales quis lectus. Fusce cursus sollicitudin porta. Suspendisse ut tortor in mauris tincidunt rhoncus. Maecenas tincidunt fermentum facilisis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>\n<p>Suspendisse turpis nisl, consectetur in lacinia ut, ornare vel mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin non lectus eu turpis vulputate cursus. Mauris interdum tincidunt erat id pharetra. Nullam in libero elit, sed consequat lectus. Morbi odio nisi, porta vitae molestie ut, gravida ut nunc. Ut non est dui, id ullamcorper orci. Praesent vel elementum felis. Maecenas ornare, dui quis auctor hendrerit, turpis sem ullamcorper odio, in auctor magna metus quis leo. Morbi at odio ante.</p>\n<p>Curabitur est ipsum, porta ac viverra faucibus, eleifend sed eros. In sit amet vehicula tortor. Vestibulum viverra pellentesque erat a elementum. Integer commodo ultricies lorem, eget tincidunt risus viverra et. In enim turpis, porttitor ac ornare et, suscipit sit amet nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque vel ultrices nibh. Sed commodo aliquam aliquam. Nulla euismod, odio ut eleifend mollis, nisi dui gravida nibh, vitae laoreet turpis purus id ipsum. Donec convallis, velit non scelerisque bibendum, diam nulla auctor nunc, vel dictum risus ipsum sit amet est. Praesent ut nibh sit amet nibh congue pulvinar. Suspendisse dictum porttitor tempor.</p>\n<p>Vestibulum dignissim erat vitae lectus auctor ac bibendum eros semper. Integer aliquet, leo non ornare faucibus, risus arcu tristique dolor, a aliquet massa mauris quis arcu. In porttitor, lectus ac semper egestas, ligula magna laoreet libero, eu commodo mauris odio id ante. In hac habitasse platea dictumst. In pretium erat diam, nec consequat eros. Praesent augue mi, consequat sed porttitor at, volutpat vitae eros. Sed pretium pharetra dapibus. Donec auctor interdum erat, lacinia molestie nibh commodo ut. Maecenas vestibulum vulputate felis, ut ullamcorper arcu faucibus in. Curabitur id arcu est. In semper mollis lorem at pellentesque. Sed lectus nisl, vestibulum id scelerisque eu, feugiat et tortor. Pellentesque porttitor facilisis ultricies.</p>\n<p id=\"myBookmark2\">[&nbsp;<span class=\"intLink\" onclick=\"showBookmark('myBookmark1');\">Go to bookmark #1</span> | <span class=\"intLink\" onclick=\"showBookmark('myBookmark1', true);\">Go to bookmark #1 using location.hash</span> | <span class=\"intLink\" onclick=\"showBookmark('myBookmark3');\">Go to bookmark #3</span>&nbsp;]</p>\n<p>Phasellus tempus fringilla nunc, eget sagittis orci molestie vel. Nulla sollicitudin diam non quam iaculis ac porta justo venenatis. Quisque tellus urna, molestie vitae egestas sit amet, suscipit sed sem. Quisque nec lorem eu velit faucibus tristique ut ut dolor. Cras eu tortor ut libero placerat venenatis ut ut massa. Sed quis libero augue, et consequat libero. Morbi rutrum augue sed turpis elementum sed luctus nisl molestie. Aenean vitae purus risus, a semper nisl. Pellentesque malesuada, est id sagittis consequat, libero mauris tincidunt tellus, eu sagittis arcu purus rutrum eros. Quisque eget eleifend mi. Duis pharetra mi ac eros mattis lacinia rutrum ipsum varius.</p>\n<p>Fusce cursus pulvinar aliquam. Duis justo enim, ornare vitae elementum sed, porta a quam. Aliquam eu enim eu libero mollis tempus. Morbi ornare aliquam posuere. Proin faucibus luctus libero, sed ultrices lorem sagittis et. Vestibulum malesuada, ante nec molestie vehicula, quam diam mollis ipsum, rhoncus posuere mauris lectus in eros. Nullam feugiat ultrices augue, ac sodales sem mollis in.</p>\n<p id=\"myBookmark3\"><em>Here is the bookmark #3</em></p>\n<p>Proin vitae sem non lorem pellentesque molestie. Nam tempus massa et turpis placerat sit amet sollicitudin orci sodales. Pellentesque enim enim, sagittis a lobortis ut, tempus sed arcu. Aliquam augue turpis, varius vel bibendum ut, aliquam at diam. Nam lobortis, dui eu hendrerit pellentesque, sem neque porttitor erat, non dapibus velit lectus in metus. Vestibulum sit amet felis enim. In quis est vitae nunc malesuada consequat nec nec sapien. Suspendisse aliquam massa placerat dui lacinia luctus sed vitae risus. Fusce tempus, neque id ultrices volutpat, mi urna auctor arcu, viverra semper libero sem vel enim. Mauris dictum, elit non placerat malesuada, libero elit euismod nibh, nec posuere massa arcu eu risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer urna velit, dapibus eget varius feugiat, pellentesque sit amet ligula. Maecenas nulla nisl, facilisis eu egestas scelerisque, mollis eget metus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi sed congue mi.</p>\n<p>Fusce metus velit, pharetra at vestibulum nec, facilisis porttitor mi. Curabitur ligula sapien, fermentum vel porttitor id, rutrum sit amet magna. Sed sit amet sollicitudin turpis. Aenean luctus rhoncus dolor, et pulvinar ante egestas et. Donec ac massa orci, quis dapibus augue. Vivamus consectetur auctor pellentesque. Praesent vestibulum tincidunt ante sed consectetur. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce purus metus, imperdiet vitae iaculis convallis, bibendum vitae turpis.</p>\n<p>Fusce aliquet molestie dolor, in ornare dui sodales nec. In molestie sollicitudin felis a porta. Mauris nec orci sit amet orci blandit tristique congue nec nunc. Praesent et tellus sollicitudin mauris accumsan fringilla. Morbi sodales, justo eu sollicitudin lacinia, lectus sapien ullamcorper eros, quis molestie urna elit bibendum risus. Proin eget tincidunt quam. Nam luctus commodo mauris, eu posuere nunc luctus non. Nulla facilisi. Vivamus eget leo rhoncus quam accumsan fringilla. Aliquam sit amet lorem est. Nullam vel tellus nibh, id imperdiet orci. Integer egestas leo eu turpis blandit scelerisque.</p>\n<p>Etiam in blandit tellus. Integer sed varius quam. Vestibulum dapibus mi gravida arcu viverra blandit. Praesent tristique augue id sem adipiscing pellentesque. Sed sollicitudin, leo sed interdum elementum, nisi ante condimentum leo, eget ornare libero diam semper quam. Vivamus augue urna, porta eget ultrices et, dapibus ut ligula. Ut laoreet consequat faucibus. Praesent at lectus ut lectus malesuada mollis. Nam interdum adipiscing eros, nec sodales mi porta nec. Proin et quam vitae sem interdum aliquet. Proin vel odio at lacus vehicula aliquet.</p>\n<p>Etiam placerat dui ut sem ornare vel vestibulum augue mattis. Sed semper malesuada mi, eu bibendum lacus lobortis nec. Etiam fringilla elementum risus, eget consequat urna laoreet nec. Etiam mollis quam non sem convallis vel consectetur lectus ullamcorper. Aenean mattis lacus quis ligula mattis eget vestibulum diam hendrerit. In non placerat mauris. Praesent faucibus nunc quis eros sagittis viverra. In hac habitasse platea dictumst. Suspendisse eget nisl erat, ac molestie massa. Praesent mollis vestibulum tincidunt. Fusce suscipit laoreet malesuada. Aliquam erat volutpat. Aliquam dictum elementum rhoncus. Praesent in est massa, pulvinar sodales nunc. Pellentesque gravida euismod mi ac convallis.</p>\n<p>Mauris vel odio vel nulla facilisis lacinia. Aliquam ultrices est at leo blandit tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse porttitor adipiscing facilisis. Duis cursus quam iaculis augue interdum porttitor. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis vulputate magna ac metus pretium condimentum. In tempus, est eget vestibulum blandit, velit massa dignissim nisl, ut scelerisque lorem neque vel velit. Maecenas fermentum commodo viverra. Curabitur a nibh non velit aliquam cursus. Integer semper condimentum tortor a pellentesque. Pellentesque semper, nisl id porttitor vehicula, sem dui feugiat lacus, vitae consequat augue urna vel odio.</p>\n<p>Vestibulum id neque nec turpis iaculis pulvinar et a massa. Vestibulum sed nibh vitae arcu eleifend egestas. Mauris fermentum ultrices blandit. Suspendisse vitae lorem libero. Aenean et pellentesque tellus. Morbi quis neque orci, eu dignissim dui. Fusce sollicitudin mauris ac arcu vestibulum imperdiet. Proin ultricies nisl sit amet enim imperdiet eu ornare dui tempus. Maecenas lobortis nisi a tortor vestibulum vel eleifend tellus vestibulum. Donec metus sapien, hendrerit a fermentum id, dictum quis libero.</p>\n<p>Pellentesque a lorem nulla, in tempor justo. Duis odio nisl, dignissim sed consequat sit amet, hendrerit ac neque. Nunc ac augue nec massa tempor rhoncus. Nam feugiat, tellus a varius euismod, justo nisl faucibus velit, ut vulputate justo massa eu nibh. Sed bibendum urna quis magna facilisis in accumsan dolor malesuada. Morbi sit amet nunc risus, in faucibus sem. Nullam sollicitudin magna sed sem mollis id commodo libero condimentum. Duis eu massa et lacus semper molestie ut adipiscing sem.</p>\n<p>Sed id nulla mi, eget suscipit eros. Aliquam tempus molestie rutrum. In quis varius elit. Nullam dignissim neque nec velit vulputate porttitor. Mauris ac ligula sit amet elit fermentum rhoncus. In tellus urna, pulvinar quis condimentum ut, porta nec justo. In hac habitasse platea dictumst. Proin volutpat elit id quam molestie ac commodo lacus sagittis. Quisque placerat, augue tempor placerat pulvinar, nisi nisi venenatis urna, eget convallis eros velit quis magna. Suspendisse volutpat iaculis quam, ut tristique lacus luctus quis.</p>\n<p>Nullam commodo suscipit lacus non aliquet. Phasellus ac nisl lorem, sed facilisis ligula. Nam cursus lobortis placerat. Sed dui nisi, elementum eu sodales ac, placerat sit amet mauris. Pellentesque dapibus tellus ut ipsum aliquam eu auctor dui vehicula. Quisque ultrices laoreet erat, at ultrices tortor sodales non. Sed venenatis luctus magna, ultricies ultricies nunc fringilla eget. Praesent scelerisque urna vitae nibh tristique varius consequat neque luctus. Integer ornare, erat a porta tempus, velit justo fermentum elit, a fermentum metus nisi eu ipsum. Vivamus eget augue vel dui viverra adipiscing congue ut massa. Praesent vitae eros erat, pulvinar laoreet magna. Maecenas vestibulum mollis nunc in posuere. Pellentesque sit amet metus a turpis lobortis tempor eu vel tortor. Cras sodales eleifend interdum.</p>\n</body>\n</html></pre>\n \n<div class=\"note\"><strong>Note:</strong> The function <code>showNode</code> is also an example of the use of the <code><a title=\"en/JavaScript/Reference/Statements/for\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference/Statements/for\">for</a></code> cycle without a <code>statement</code> section. In this case <strong>a semicolon is always put immediately after the declaration of the cycle</strong>.</div>\n<p>…the same thing but with a dynamic page scroll:</p>\n\n <pre name=\"code\" class=\"js\">function showBookmark (sBookmark) {\n /*\n * nDuration: the duration in milliseconds of each scroll\n * nFrames: number of frames for each scroll\n */ \n var nDuration = 500, nFrames = 10,\n nLeft = 0, nTop = 0, oNode = document.getElementById(sBookmark),\n nScrTop = document.documentElement.scrollTop,\n nScrLeft = document.documentElement.scrollLeft;\n\n for (var oItNode = oNode; oItNode; nLeft += oItNode.offsetLeft, nTop += oItNode.offsetTop, oItNode = oItNode.offsetParent);\n\n for (var nItFrame = 1; nItFrame < nFrames + 1; nItFrame++) {\n setTimeout(\"document.documentElement.scrollTop=\" + Math.round(nScrTop + ((nTop - nScrTop) * nItFrame / nFrames)) + \";document.documentElement.scrollLeft=\" + Math.round(nScrLeft + ((nTop - nScrLeft) * nItFrame / nFrames)) + \";\", Math.round(nDuration * nItFrame / nFrames));\n }\n}</pre>\n \n</div>","<p>Whenever a property of the location object is modified, a document will be loaded using the URL as if <code>window.location.assign()</code> had been called with the modified URL.</p>\n<div id=\"section_8\"><span id=\"Replace_the_current_document_with_the_one_at_the_given_URL:\"></span><h5 class=\"editable\">Replace the current document with the one at the given URL:</h5>\n\n <pre name=\"code\" class=\"js\">function goMoz() { \n window.location = \"http://www.mozilla.org\";\n} \n\n// in html: <button onclick=\"goMoz();\">Mozilla</button></pre>\n \n<div class=\"note\"><strong>Note:</strong> The example above works in situations where <code>window.location.hash</code> does not need to be retained. However, in Gecko-based browsers, setting <code>window.location.pathname</code> in this manner will erase any information in <code>window.location.hash</code>, whereas in WebKit (and possibly other browsers), setting the pathname will not alter the the hash. If you need to change pathname but keep the hash as is, use the <code>replace()</code> method instead, which should work consistently across browsers.</div>\n<p><br> Consider the following example, which will reload the page by using the <code>replace()</code> method to insert the value of <code>window.location.pathname</code> into the hash (similar to Twitter's reload of <a class=\" external\" rel=\"external\" href=\"http://twitter.com/username\" title=\"http://twitter.com/username\" target=\"_blank\">http://twitter.com/username</a> to <a class=\" external\" rel=\"external\" href=\"http://twitter.com/#!/username\" title=\"http://twitter.com/#!/username\" target=\"_blank\">http://twitter.com/#!/username</a>):</p>\n\n <pre name=\"code\" class=\"js\">function reloadPageWithHash() {\n var initialPage = window.location.pathname;\n window.location.replace('http://example.com/#' + initialPage);\n}</pre>\n \n</div><div id=\"section_9\"><span id=\"Display_the_properties_of_the_current_URL_in_an_alert_dialog:\"></span><h5 class=\"editable\">Display the properties of the current URL in an alert dialog:</h5>\n\n <pre name=\"code\" class=\"js\">function showLoc() {\n var oLocation = window.location, aLog = [\"Property (Typeof): Value\", \"window.location (\" + (typeof oLocation) + \"): \" + oLocation ];\n for (var sProp in oLocation){\n aLog.push(sProp + \" (\" + (typeof oLocation[sProp]) + \"): \" + (oLocation[sProp] || \"n/a\"));\n }\n alert(aLog.join(\"\\n\"));\n}\n\n// in html: <button onclick=\"showLoc();\">Show location properties</button></pre>\n \n</div><div id=\"section_10\"><span id=\"Send_a_string_of_data_to_the_server_by_modifying_the_search_property:\"></span><h5 class=\"editable\">Send a string of data to the server by modifying the <code>search</code> property:</h5>\n\n <pre name=\"code\" class=\"js\">function sendData (sData) {\n window.location.search = sData;\n}\n\n// in html: <button onclick=\"sendData('Some data');\">Send data</button></pre>\n \n<p>The current URL with \"?Some%20data\" appended is sent to the server (if no action is taken by the server, the current document is reloaded with the modified search string).</p>\n</div><div id=\"section_11\"><span id=\"Get_the_value_of_a_single_window.location.search_key:\"></span><h5 class=\"editable\">Get the value of a single <code>window.location.search</code> key:</h5>\n\n <pre name=\"code\" class=\"js\">function loadPageVar (sVar) {\n return unescape(window.location.search.replace(new RegExp(\"^(?:.*[&\\\\?]\" + escape(sVar).replace(/[\\.\\+\\*]/g, \"\\\\$&\") + \"(?:\\\\=([^&]*))?)?.*$\", \"i\"), \"$1\"));\n}\n\nalert(loadPageVar(\"name\"));</pre>\n \n</div><div id=\"section_12\"><span id=\"Nestle_the_variables_obtained_through_the_window.location.search_string_in_an_object_named_oGetVars.2C_also_attempting_to_recognize_their_typeof:\"></span><h5 class=\"editable\">Nestle the variables obtained through the <code>window.location.search</code> string in an object named <code>oGetVars</code>, also attempting to recognize their <code><a title=\"en/JavaScript/Reference/Operators/typeof\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference/Operators/typeof\">typeof</a></code>:</h5>\n\n <pre name=\"code\" class=\"js\">var oGetVars = {};\n\nfunction buildValue(sValue) {\n if (/^\\s*$/.test(sValue)) { return null; }\n if (/^(true|false)$/i.test(sValue)) { return sValue.toLowerCase() === \"true\"; }\n if (isFinite(sValue)) { return parseFloat(sValue); }\n if (isFinite(Date.parse(sValue))) { return new Date(sValue); }\n return sValue;\n}\n\nif (window.location.search.length > 1) {\n for (var aItKey, nKeyId = 0, aCouples = window.location.search.substr(1).split(\"&\"); nKeyId < aCouples.length; nKeyId++) {\n aItKey = aCouples[nKeyId].split(\"=\");\n oGetVars[unescape(aItKey[0])] = aItKey.length > 1 ? buildValue(unescape(aItKey[1])) : null;\n }\n}\n\n// alert(oGetVars.yourVar);</pre>\n \n<p>…the same thing obtained by an anonymous constructor – useful for a global variable declaration:</p>\n\n <pre name=\"code\" class=\"js\">var oGetVars = new (function (sSearch) {\n var rNull = /^\\s*$/, rBool = /^(true|false)$/i;\n function buildValue(sValue) {\n if (rNull.test(sValue)) { return null; }\n if (rBool.test(sValue)) { return sValue.toLowerCase() === \"true\"; }\n if (isFinite(sValue)) { return parseFloat(sValue); }\n if (isFinite(Date.parse(sValue))) { return new Date(sValue); }\n return sValue;\n }\n if (sSearch.length > 1) {\n for (var aItKey, nKeyId = 0, aCouples = sSearch.substr(1).split(\"&\"); nKeyId < aCouples.length; nKeyId++) {\n aItKey = aCouples[nKeyId].split(\"=\");\n this[unescape(aItKey[0])] = aItKey.length > 1 ? buildValue(unescape(aItKey[1])) : null;\n }\n }\n})(window.location.search);\n\n// alert(oGetVars.yourVar);</pre>\n \n</div><div id=\"section_13\"><span id=\"Using_bookmars_without_changing_the_window.location.hash_property:\"></span><h5 class=\"editable\">Using bookmars without changing the <code>window.location.hash</code> property:</h5>\n\n <pre name=\"code\" class=\"xml\"><!doctype html>\n<html>\n<head>\n<meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\" />\n<title>MDN Example</title>\n<script type=\"text/javascript\">\nfunction showNode (oNode) {\n var nLeft = 0, nTop = 0;\n for (var oItNode = oNode; oItNode; nLeft += oItNode.offsetLeft, nTop += oItNode.offsetTop, oItNode = oItNode.offsetParent);\n document.documentElement.scrollTop = nTop;\n document.documentElement.scrollLeft = nLeft;\n}\n\nfunction showBookmark (sBookmark, bUseHash) {\n if (bUseHash) { window.location.hash = \"#\" + sBookmark; return; }\n var oBookmark = document.getElementById(sBookmark);\n if (oBookmark) { showNode(oBookmark); }\n}\n</script>\n<style type=\"text/css\">\nspan.intLink {\n cursor: pointer;\n color: #0000ff;\n text-decoration: underline;\n}\n</style>\n</head>\n\n<body>\n<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ultrices dolor ac dolor imperdiet ullamcorper. Suspendisse quam libero, luctus auctor mollis sed, malesuada condimentum magna. Quisque in ante tellus, in placerat est. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec a mi magna, quis mattis dolor. Etiam sit amet ligula quis urna auctor imperdiet nec faucibus ante. Mauris vel consectetur dolor. Nunc eget elit eget velit pulvinar fringilla consectetur aliquam purus. Curabitur convallis, justo posuere porta egestas, velit erat ornare tortor, non viverra justo diam eget arcu. Phasellus adipiscing fermentum nibh ac commodo. Nam turpis nunc, suscipit a hendrerit vitae, volutpat non ipsum.</p>\n<p>Duis lobortis sapien quis nisl luctus porttitor. In tempor semper libero, eu tincidunt dolor eleifend sit amet. Ut nec velit in dolor tincidunt rhoncus non non diam. Morbi auctor ornare orci, non euismod felis gravida nec. Curabitur elementum nisi a eros rutrum nec blandit diam placerat. Aenean tincidunt risus ut nisi consectetur cursus. Ut vitae quam elit. Donec dignissim est in quam tempor consequat. Aliquam aliquam diam non felis convallis suscipit. Nulla facilisi. Donec lacus risus, dignissim et fringilla et, egestas vel eros. Duis malesuada accumsan dui, at fringilla mauris bibendum quis. Cras adipiscing ultricies fermentum. Praesent bibendum condimentum feugiat.</p>\n<p id=\"myBookmark1\">[&nbsp;<span class=\"intLink\" onclick=\"showBookmark('myBookmark2');\">Go to bookmark #2</span>&nbsp;]</p>\n<p>Vivamus blandit massa ut metus mattis in fringilla lectus imperdiet. Proin ac ante a felis ornare vehicula. Fusce pellentesque lacus vitae eros convallis ut mollis magna pellentesque. Pellentesque placerat enim at lacus ultricies vitae facilisis nisi fringilla. In tincidunt tincidunt tincidunt. Nulla vitae tempor nisl. Etiam congue, elit vitae egestas mollis, ipsum nisi malesuada turpis, a volutpat arcu arcu id risus.</p>\n<p>Nam faucibus, ligula eu fringilla pulvinar, lectus tellus iaculis nunc, vitae scelerisque metus leo non metus. Proin mattis lobortis lobortis. Quisque accumsan faucibus erat, vel varius tortor ultricies ac. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed nec libero nunc. Nullam tortor nunc, elementum a consectetur et, ultrices eu orci. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque a nisl eu sem vehicula egestas.</p>\n<p>Aenean viverra varius mauris, sed elementum lacus interdum non. Phasellus sit amet lectus vitae eros egestas pellentesque fermentum eget magna. Quisque mauris nisl, gravida vitae placerat et, condimentum id metus. Nulla eu est dictum dolor pulvinar volutpat. Pellentesque vitae sollicitudin nunc. Donec neque magna, lobortis id egestas nec, sodales quis lectus. Fusce cursus sollicitudin porta. Suspendisse ut tortor in mauris tincidunt rhoncus. Maecenas tincidunt fermentum facilisis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>\n<p>Suspendisse turpis nisl, consectetur in lacinia ut, ornare vel mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin non lectus eu turpis vulputate cursus. Mauris interdum tincidunt erat id pharetra. Nullam in libero elit, sed consequat lectus. Morbi odio nisi, porta vitae molestie ut, gravida ut nunc. Ut non est dui, id ullamcorper orci. Praesent vel elementum felis. Maecenas ornare, dui quis auctor hendrerit, turpis sem ullamcorper odio, in auctor magna metus quis leo. Morbi at odio ante.</p>\n<p>Curabitur est ipsum, porta ac viverra faucibus, eleifend sed eros. In sit amet vehicula tortor. Vestibulum viverra pellentesque erat a elementum. Integer commodo ultricies lorem, eget tincidunt risus viverra et. In enim turpis, porttitor ac ornare et, suscipit sit amet nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque vel ultrices nibh. Sed commodo aliquam aliquam. Nulla euismod, odio ut eleifend mollis, nisi dui gravida nibh, vitae laoreet turpis purus id ipsum. Donec convallis, velit non scelerisque bibendum, diam nulla auctor nunc, vel dictum risus ipsum sit amet est. Praesent ut nibh sit amet nibh congue pulvinar. Suspendisse dictum porttitor tempor.</p>\n<p>Vestibulum dignissim erat vitae lectus auctor ac bibendum eros semper. Integer aliquet, leo non ornare faucibus, risus arcu tristique dolor, a aliquet massa mauris quis arcu. In porttitor, lectus ac semper egestas, ligula magna laoreet libero, eu commodo mauris odio id ante. In hac habitasse platea dictumst. In pretium erat diam, nec consequat eros. Praesent augue mi, consequat sed porttitor at, volutpat vitae eros. Sed pretium pharetra dapibus. Donec auctor interdum erat, lacinia molestie nibh commodo ut. Maecenas vestibulum vulputate felis, ut ullamcorper arcu faucibus in. Curabitur id arcu est. In semper mollis lorem at pellentesque. Sed lectus nisl, vestibulum id scelerisque eu, feugiat et tortor. Pellentesque porttitor facilisis ultricies.</p>\n<p id=\"myBookmark2\">[&nbsp;<span class=\"intLink\" onclick=\"showBookmark('myBookmark1');\">Go to bookmark #1</span> | <span class=\"intLink\" onclick=\"showBookmark('myBookmark1', true);\">Go to bookmark #1 using location.hash</span> | <span class=\"intLink\" onclick=\"showBookmark('myBookmark3');\">Go to bookmark #3</span>&nbsp;]</p>\n<p>Phasellus tempus fringilla nunc, eget sagittis orci molestie vel. Nulla sollicitudin diam non quam iaculis ac porta justo venenatis. Quisque tellus urna, molestie vitae egestas sit amet, suscipit sed sem. Quisque nec lorem eu velit faucibus tristique ut ut dolor. Cras eu tortor ut libero placerat venenatis ut ut massa. Sed quis libero augue, et consequat libero. Morbi rutrum augue sed turpis elementum sed luctus nisl molestie. Aenean vitae purus risus, a semper nisl. Pellentesque malesuada, est id sagittis consequat, libero mauris tincidunt tellus, eu sagittis arcu purus rutrum eros. Quisque eget eleifend mi. Duis pharetra mi ac eros mattis lacinia rutrum ipsum varius.</p>\n<p>Fusce cursus pulvinar aliquam. Duis justo enim, ornare vitae elementum sed, porta a quam. Aliquam eu enim eu libero mollis tempus. Morbi ornare aliquam posuere. Proin faucibus luctus libero, sed ultrices lorem sagittis et. Vestibulum malesuada, ante nec molestie vehicula, quam diam mollis ipsum, rhoncus posuere mauris lectus in eros. Nullam feugiat ultrices augue, ac sodales sem mollis in.</p>\n<p id=\"myBookmark3\"><em>Here is the bookmark #3</em></p>\n<p>Proin vitae sem non lorem pellentesque molestie. Nam tempus massa et turpis placerat sit amet sollicitudin orci sodales. Pellentesque enim enim, sagittis a lobortis ut, tempus sed arcu. Aliquam augue turpis, varius vel bibendum ut, aliquam at diam. Nam lobortis, dui eu hendrerit pellentesque, sem neque porttitor erat, non dapibus velit lectus in metus. Vestibulum sit amet felis enim. In quis est vitae nunc malesuada consequat nec nec sapien. Suspendisse aliquam massa placerat dui lacinia luctus sed vitae risus. Fusce tempus, neque id ultrices volutpat, mi urna auctor arcu, viverra semper libero sem vel enim. Mauris dictum, elit non placerat malesuada, libero elit euismod nibh, nec posuere massa arcu eu risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer urna velit, dapibus eget varius feugiat, pellentesque sit amet ligula. Maecenas nulla nisl, facilisis eu egestas scelerisque, mollis eget metus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi sed congue mi.</p>\n<p>Fusce metus velit, pharetra at vestibulum nec, facilisis porttitor mi. Curabitur ligula sapien, fermentum vel porttitor id, rutrum sit amet magna. Sed sit amet sollicitudin turpis. Aenean luctus rhoncus dolor, et pulvinar ante egestas et. Donec ac massa orci, quis dapibus augue. Vivamus consectetur auctor pellentesque. Praesent vestibulum tincidunt ante sed consectetur. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce purus metus, imperdiet vitae iaculis convallis, bibendum vitae turpis.</p>\n<p>Fusce aliquet molestie dolor, in ornare dui sodales nec. In molestie sollicitudin felis a porta. Mauris nec orci sit amet orci blandit tristique congue nec nunc. Praesent et tellus sollicitudin mauris accumsan fringilla. Morbi sodales, justo eu sollicitudin lacinia, lectus sapien ullamcorper eros, quis molestie urna elit bibendum risus. Proin eget tincidunt quam. Nam luctus commodo mauris, eu posuere nunc luctus non. Nulla facilisi. Vivamus eget leo rhoncus quam accumsan fringilla. Aliquam sit amet lorem est. Nullam vel tellus nibh, id imperdiet orci. Integer egestas leo eu turpis blandit scelerisque.</p>\n<p>Etiam in blandit tellus. Integer sed varius quam. Vestibulum dapibus mi gravida arcu viverra blandit. Praesent tristique augue id sem adipiscing pellentesque. Sed sollicitudin, leo sed interdum elementum, nisi ante condimentum leo, eget ornare libero diam semper quam. Vivamus augue urna, porta eget ultrices et, dapibus ut ligula. Ut laoreet consequat faucibus. Praesent at lectus ut lectus malesuada mollis. Nam interdum adipiscing eros, nec sodales mi porta nec. Proin et quam vitae sem interdum aliquet. Proin vel odio at lacus vehicula aliquet.</p>\n<p>Etiam placerat dui ut sem ornare vel vestibulum augue mattis. Sed semper malesuada mi, eu bibendum lacus lobortis nec. Etiam fringilla elementum risus, eget consequat urna laoreet nec. Etiam mollis quam non sem convallis vel consectetur lectus ullamcorper. Aenean mattis lacus quis ligula mattis eget vestibulum diam hendrerit. In non placerat mauris. Praesent faucibus nunc quis eros sagittis viverra. In hac habitasse platea dictumst. Suspendisse eget nisl erat, ac molestie massa. Praesent mollis vestibulum tincidunt. Fusce suscipit laoreet malesuada. Aliquam erat volutpat. Aliquam dictum elementum rhoncus. Praesent in est massa, pulvinar sodales nunc. Pellentesque gravida euismod mi ac convallis.</p>\n<p>Mauris vel odio vel nulla facilisis lacinia. Aliquam ultrices est at leo blandit tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse porttitor adipiscing facilisis. Duis cursus quam iaculis augue interdum porttitor. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis vulputate magna ac metus pretium condimentum. In tempus, est eget vestibulum blandit, velit massa dignissim nisl, ut scelerisque lorem neque vel velit. Maecenas fermentum commodo viverra. Curabitur a nibh non velit aliquam cursus. Integer semper condimentum tortor a pellentesque. Pellentesque semper, nisl id porttitor vehicula, sem dui feugiat lacus, vitae consequat augue urna vel odio.</p>\n<p>Vestibulum id neque nec turpis iaculis pulvinar et a massa. Vestibulum sed nibh vitae arcu eleifend egestas. Mauris fermentum ultrices blandit. Suspendisse vitae lorem libero. Aenean et pellentesque tellus. Morbi quis neque orci, eu dignissim dui. Fusce sollicitudin mauris ac arcu vestibulum imperdiet. Proin ultricies nisl sit amet enim imperdiet eu ornare dui tempus. Maecenas lobortis nisi a tortor vestibulum vel eleifend tellus vestibulum. Donec metus sapien, hendrerit a fermentum id, dictum quis libero.</p>\n<p>Pellentesque a lorem nulla, in tempor justo. Duis odio nisl, dignissim sed consequat sit amet, hendrerit ac neque. Nunc ac augue nec massa tempor rhoncus. Nam feugiat, tellus a varius euismod, justo nisl faucibus velit, ut vulputate justo massa eu nibh. Sed bibendum urna quis magna facilisis in accumsan dolor malesuada. Morbi sit amet nunc risus, in faucibus sem. Nullam sollicitudin magna sed sem mollis id commodo libero condimentum. Duis eu massa et lacus semper molestie ut adipiscing sem.</p>\n<p>Sed id nulla mi, eget suscipit eros. Aliquam tempus molestie rutrum. In quis varius elit. Nullam dignissim neque nec velit vulputate porttitor. Mauris ac ligula sit amet elit fermentum rhoncus. In tellus urna, pulvinar quis condimentum ut, porta nec justo. In hac habitasse platea dictumst. Proin volutpat elit id quam molestie ac commodo lacus sagittis. Quisque placerat, augue tempor placerat pulvinar, nisi nisi venenatis urna, eget convallis eros velit quis magna. Suspendisse volutpat iaculis quam, ut tristique lacus luctus quis.</p>\n<p>Nullam commodo suscipit lacus non aliquet. Phasellus ac nisl lorem, sed facilisis ligula. Nam cursus lobortis placerat. Sed dui nisi, elementum eu sodales ac, placerat sit amet mauris. Pellentesque dapibus tellus ut ipsum aliquam eu auctor dui vehicula. Quisque ultrices laoreet erat, at ultrices tortor sodales non. Sed venenatis luctus magna, ultricies ultricies nunc fringilla eget. Praesent scelerisque urna vitae nibh tristique varius consequat neque luctus. Integer ornare, erat a porta tempus, velit justo fermentum elit, a fermentum metus nisi eu ipsum. Vivamus eget augue vel dui viverra adipiscing congue ut massa. Praesent vitae eros erat, pulvinar laoreet magna. Maecenas vestibulum mollis nunc in posuere. Pellentesque sit amet metus a turpis lobortis tempor eu vel tortor. Cras sodales eleifend interdum.</p>\n</body>\n</html></pre>\n \n<div class=\"note\"><strong>Note:</strong> The function <code>showNode</code> is also an example of the use of the <code><a title=\"en/JavaScript/Reference/Statements/for\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference/Statements/for\">for</a></code> cycle without a <code>statement</code> section. In this case <strong>a semicolon is always put immediately after the declaration of the cycle</strong>.</div>\n<p>…the same thing but with a dynamic page scroll:</p>\n\n <pre name=\"code\" class=\"js\">function showBookmark (sBookmark) {\n /*\n * nDuration: the duration in milliseconds of each scroll\n * nFrames: number of frames for each scroll\n */ \n var nDuration = 500, nFrames = 10,\n nLeft = 0, nTop = 0, oNode = document.getElementById(sBookmark),\n nScrTop = document.documentElement.scrollTop,\n nScrLeft = document.documentElement.scrollLeft;\n\n for (var oItNode = oNode; oItNode; nLeft += oItNode.offsetLeft, nTop += oItNode.offsetTop, oItNode = oItNode.offsetParent);\n\n for (var nItFrame = 1; nItFrame < nFrames + 1; nItFrame++) {\n setTimeout(\"document.documentElement.scrollTop=\" + Math.round(nScrTop + ((nTop - nScrTop) * nItFrame / nFrames)) + \";document.documentElement.scrollLeft=\" + Math.round(nScrLeft + ((nTop - nScrLeft) * nItFrame / nFrames)) + \";\", Math.round(nDuration * nItFrame / nFrames));\n }\n}</pre>\n \n</div>"],"srcUrl":"https://developer.mozilla.org/en/DOM/window.location","specification":"HTML Specification: window . location","seeAlso":"Manipulating the browser history","summary":"Returns a <a href=\"#Location_object\"> <code>Location</code> object</a>, which contains information about the URL of the document and provides methods for changing that URL. You can also assign to this property to load another URL.","members":[{"name":"assign","help":"Load the document at the provided URL.","obsolete":false},{"name":"reload","help":"Reload the document from the current URL. <code>forceget</code> is a boolean, which, when it is <code>true</code>, causes the page to always be reloaded from the server. If it is <code>false</code> or not specified, the browser may reload the page from its cache.","obsolete":false},{"name":"replace","help":"Replace the current document with the one at the provided URL. The difference from the <code>assign()</code> method is that after using <code>replace()</code> the current page will not be saved in session history, meaning the user won't be able to use the Back button to navigate to it.","obsolete":false},{"name":"toString","help":"Returns the string representation of the <code>Location</code> object's URL. See the <a title=\"en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString\">JavaScript reference</a> for details.","obsolete":false},{"name":"hash","help":"the part of the URL that follows the # symbol, including the # symbol.<br> You can listen for the <a title=\"en/DOM/window.onhashchange\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window.onhashchange\">hashchange event</a> to get notified of changes to the hash in supporting browsers.","obsolete":false},{"name":"host","help":"the host name and port number.","obsolete":false},{"name":"hostname","help":"the host name (without the port number or square brackets).","obsolete":false},{"name":"href","help":"the entire URL.","obsolete":false},{"name":"pathname","help":"the path (relative to the host).","obsolete":false},{"name":"port","help":"the port number of the URL.","obsolete":false},{"name":"protocol","help":"the protocol of the URL.","obsolete":false},{"name":"search","help":"the part of the URL that follows the ? symbol, including the ? symbol.","obsolete":false},{"name":"assign","help":"Load the document at the provided URL.","obsolete":false},{"name":"reload","help":"Reload the document from the current URL. <code>forceget</code> is a boolean, which, when it is <code>true</code>, causes the page to always be reloaded from the server. If it is <code>false</code> or not specified, the browser may reload the page from its cache.","obsolete":false},{"name":"replace","help":"Replace the current document with the one at the provided URL. The difference from the <code>assign()</code> method is that after using <code>replace()</code> the current page will not be saved in session history, meaning the user won't be able to use the Back button to navigate to it.","obsolete":false},{"name":"toString","help":"Returns the string representation of the <code>Location</code> object's URL. See the <a title=\"en/Core_JavaScript_1.5_Reference/Global_Objects/Object/toString\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/toString\">JavaScript reference</a> for details.","obsolete":false},{"name":"hash","help":"the part of the URL that follows the # symbol, including the # symbol.<br> You can listen for the <a title=\"en/DOM/window.onhashchange\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window.onhashchange\">hashchange event</a> to get notified of changes to the hash in supporting browsers.","obsolete":false},{"name":"host","help":"the host name and port number.","obsolete":false},{"name":"hostname","help":"the host name (without the port number or square brackets).","obsolete":false},{"name":"href","help":"the entire URL.","obsolete":false},{"name":"pathname","help":"the path (relative to the host).","obsolete":false},{"name":"port","help":"the port number of the URL.","obsolete":false},{"name":"protocol","help":"the protocol of the URL.","obsolete":false},{"name":"search","help":"the part of the URL that follows the ? symbol, including the ? symbol.","obsolete":false}]},"OverflowEvent":{"title":"XUL Events","members":[],"srcUrl":"https://developer.mozilla.org/en/XUL/Events","skipped":true,"cause":"Suspect title"},"SVGPathSegMovetoAbs":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"SVGSymbolElement":{"title":"SVGSymbolElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGSymbolElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/symbol\"><symbol></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGSymbolElement"},"HTMLDetailsElement":{"title":"details","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>12</td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=591737\" class=\"external\" title=\"\">\nbug 591737</a>\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td>4.0</td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=591737\" class=\"external\" title=\"\">\nbug 591737</a>\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["<details>\n <summary>Some details</summary>\n <p>More info about the details.</p>\n</details>"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/details","seeAlso":"<summary>","summary":"The HTML <em>details</em> element (<code><details></code>) is used as a disclosure widget from which the user the retrieve additional information.","members":[{"obsolete":false,"url":"","name":"open","help":"This Boolean attribute indicates whether the details will be shown to the user on page load. If omitted the details will be hidden."}]},"SVGTextPathElement":{"title":"textPath","examples":["<?xml version=\"1.0\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg width=\"12cm\" height=\"3.6cm\" viewBox=\"0 0 1000 300\" version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\" \n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n <path id=\"MyPath\"\n d=\"M 100 200 \n C 200 100 300 0 400 100\n C 500 200 600 300 700 200\n C 800 100 900 100 900 100\" />\n </defs>\n\n <use xlink:href=\"#MyPath\" fill=\"none\" stroke=\"red\" />\n\n <text font-family=\"Verdana\" font-size=\"42.5\" fill=\"blue\" >\n <textPath xlink:href=\"#MyPath\">\n We go up, then we go down, then up again\n </textPath>\n </text>\n\n <!-- Show outline of canvas using 'rect' element -->\n <rect x=\"1\" y=\"1\" width=\"998\" height=\"298\"\n fill=\"none\" stroke=\"blue\" stroke-width=\"2\" />\n</svg>"],"summary":"In addition to text drawn in a straight line, SVG also includes the ability to place text along the shape of a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/path\"><path></a></code>\n element. To specify that a block of text is to be rendered along the shape of a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/path\"><path></a></code>\n, include the given text within a <code>textPath</code> element which includes an <code>xlink:href</code> attribute with a reference to a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/path\"><path></a></code>\n element.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/startOffset","name":"startOffset","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/spacing","name":"spacing","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/method","name":"method","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/externalResourcesRequired","name":"externalResourcesRequired","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":""}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/textPath"},"SVGTextPositioningElement":{"title":"SVGTextPositioningElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGTextPositioningElement</code> interface is inherited by text-related interfaces: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGTextElement\">SVGTextElement</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGTSpanElement\">SVGTSpanElement</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGTRefElement\">SVGTRefElement</a></code>\n and <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGAltGlyphElement\" class=\"new\">SVGAltGlyphElement</a></code>\n.","members":[{"name":"dx","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/dx\" class=\"new\">dx</a></code> on the given element.","obsolete":false},{"name":"dy","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/dy\" class=\"new\">dy</a></code> on the given element.","obsolete":false},{"name":"rotate","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/rotate\" class=\"new\">rotate</a></code> on the given element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGTextPositioningElement"},"SVGSwitchElement":{"title":"SVGSwitchElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGSwitchElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/switch\"><switch></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGSwitchElement"},"SVGEllipseElement":{"title":"SVGEllipseElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGEllipseElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/ellipse\"><ellipse></a></code>\n SVG Element","summary":"The <code>SVGEllipseElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/ellipse\"><ellipse></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"cx","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/cx\">cx</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/ellipse\"><ellipse></a></code>\n element.","obsolete":false},{"name":"cy","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/cy\">cy</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/ellipse\"><ellipse></a></code>\n element.","obsolete":false},{"name":"rx","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/rx\">rx</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/ellipse\"><ellipse></a></code>\n element.","obsolete":false},{"name":"ry","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/ry\">ry</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/ellipse\"><ellipse></a></code>\n element.","obsolete":false}]},"Database":{"title":"The Places database","summary":"<div><p>This content covers features introduced in <a rel=\"custom\" href=\"https://developer.mozilla.org/en/Firefox_3_for_developers\">Firefox 3</a>.</p></div>\n<p></p>\n<p>This document provides a high-level overview of the overall database design of the <a title=\"en/Places\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Places\">Places</a> system. Places is designed to be a complete replacement for the Firefox bookmarks and history systems using <a title=\"en/Storage\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Storage\">Storage.</a></p>\n<p>View the <a class=\" external\" rel=\"external\" href=\"http://people.mozilla.org/~dietrich/places-erd.png\" title=\"http://people.mozilla.org/~dietrich/places-erd.png\" target=\"_blank\">schema diagram</a>.</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/The_Places_database"},"DOMException":{"title":"DOMException","summary":"<p>The following are the <strong>DOMException</strong> codes:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\">Code</th> <th scope=\"col\">'Abstract' Constant name</th> </tr> </thead> <tbody> <tr> <th colspan=\"2\">Level 1</th> </tr> <tr> <td><code>1</code></td> <td><code>INDEX_SIZE_ERR</code></td> </tr> <tr> <td><code>2</code></td> <td><code>DOMSTRING_SIZE_ERR</code></td> </tr> <tr> <td><code>3</code></td> <td><code>HIERARCHY_REQUEST_ERR</code></td> </tr> <tr> <td><code>4</code></td> <td><code>WRONG_DOCUMENT_ERR</code></td> </tr> <tr> <td><code>5</code></td> <td><code>INVALID_CHARACTER_ERR</code></td> </tr> <tr> <td><code>6</code></td> <td><code>NO_DATA_ALLOWED_ERR</code></td> </tr> <tr> <td><code>7</code></td> <td><code>NO_MODIFICATION_ALLOWED_ERR</code></td> </tr> <tr> <td><code>8</code></td> <td><code>NOT_FOUND_ERR</code></td> </tr> <tr> <td><code>9</code></td> <td><code>NOT_SUPPORTED_ERR</code></td> </tr> <tr> <td><code>10</code></td> <td><code>INUSE_ATTRIBUTE_ERR</code></td> </tr> <tr> <th colspan=\"2\">Level 2</th> </tr> <tr> <td><code>11</code></td> <td><code>INVALID_STATE_ERR</code></td> </tr> <tr> <td><code>12</code></td> <td><code>SYNTAX_ERR</code></td> </tr> <tr> <td><code>13</code></td> <td><code>INVALID_MODIFICATION_ERR</code></td> </tr> <tr> <td><code>14</code></td> <td><code>NAMESPACE_ERR</code></td> </tr> <tr> <td><code>15</code></td> <td><code>INVALID_ACCESS_ERR</code></td> </tr> <tr> <th colspan=\"2\"><strong>Level 3</strong></th> </tr> <tr> <td><code>16</code></td> <td><code>VALIDATION_ERR</code></td> </tr> <tr> <td><code>17</code></td> <td><code>TYPE_MISMATCH_ERR</code></td> </tr> </tbody>\n</table>","members":[],"srcUrl":"https://developer.mozilla.org/En/DOM/DOMException","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...ml#ID-17189187"},"Navigator":{"title":"window.navigator","examples":["alert(\"You're using \" + navigator.appName);\n"],"srcUrl":"https://developer.mozilla.org/en/DOM/window.navigator","specification":"Defined in <a class=\"external\" title=\"http://www.whatwg.org/html/#navigator\" rel=\"external\" href=\"http://www.whatwg.org/html/#navigator\" target=\"_blank\">HTML</a>.","seeAlso":"DOM Client Object Cross-Reference:navigator","summary":"Returns a reference to the navigator object, which can be queried for information about the application running the script.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.javaEnabled","name":"javaEnabled","help":"Indicates whether the host browser is Java-enabled or not."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.navigator.taintEnabled","name":"taintEnabled","help":"Returns <code>false</code>. JavaScript taint/untaint functions removed in JavaScript 1.2. Removed from Firefox 9."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.registerContentHandler","name":"registerContentHandler","help":"Allows web sites to register themselves as a possible handler for a given MIME type."},{"name":"webkitIsLocallyAvailable","help":"Lets code check to see if the document at a given URI is available without using the network.","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.navigator.registerProtocolHandler","name":"registerProtocolHandler","help":"Allows web sites to register themselves as a possible handler for a given protocol."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.navigator.preference","name":"preference","help":"Sets a user preference. This method is <a class=\"external\" rel=\"external\" href=\"http://www.faqts.com/knowledge_base/view.phtml/aid/1608/fid/125/lang/en\" title=\"http://www.faqts.com/knowledge_base/view.phtml/aid/1608/fid/125/lang/en\" target=\"_blank\">only available to privileged code</a> and is obsolete; you should use the XPCOM <a title=\"en/Preferences_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Preferences_API\">Preferences API</a> instead."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.appVersion","name":"appVersion","help":"Returns the version of the browser as a string. Do not rely on this property to return the correct value."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.appName","name":"appName","help":"Returns the official name of the browser. Do not rely on this property to return the correct value."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.cookieEnabled","name":"cookieEnabled","help":"Returns a boolean indicating whether cookies are enabled in the browser or not."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.productSub","name":"productSub","help":"Returns the build number of the current browser (e.g. \"20060909\")"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.userAgent","name":"userAgent","help":"Returns the user agent string for the current browser."},{"name":"webkitBattery","help":"Returns a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.navigator.mozBattery\">battery</a></code>\n object you can use to get information about the battery charging status.","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.navigator.securitypolicy","name":"securitypolicy","help":"Returns an empty string. In Netscape 4.7x, returns \"US & CA domestic policy\" or \"Export policy\"."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.buildID","name":"buildID","help":"Returns the build identifier of the browser (e.g. \"2006090803\")"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.vendor","name":"vendor","help":"Returns the vendor name of the current browser (e.g. \"Netscape6\")"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/navigator.doNotTrack","name":"doNotTrack","help":"Reports the value of the user's do-not-track preference. When this value is \"yes\", your web site or application should not track the user."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.appCodeName","name":"appCodeName","help":"Returns the internal \"code\" name of the current browser. Do not rely on this property to return the correct value."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/navigator.id","name":"id","help":"Returns the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.navigator.id\" class=\"new\">id</a></code>\n object which you can use to add support for <a title=\"BrowserID\" rel=\"internal\" href=\"https://developer.mozilla.org/en/BrowserID\">BrowserID</a> to your web site."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.onLine","name":"onLine","help":"Returns a boolean indicating whether the browser is working online."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.vendorSub","name":"vendorSub","help":"Returns the vendor version number (e.g. \"6.1\")"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.mimeTypes","name":"mimeTypes","help":"Returns a list of the MIME types supported by the browser."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.plugins","name":"plugins","help":"Returns an array of the plugins installed in the browser."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.platform","name":"platform","help":"Returns a string representing the platform of the browser."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.language","name":"language","help":"Returns a string representing the language version of the browser."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.product","name":"product","help":"Returns the product name of the current browser. (e.g. \"Gecko\")"},{"obsolete":false,"url":"https://developer.mozilla.org/en/API/Mouse_Lock_API","name":"webkitPointer","help":"Returns a PointerLock object for the <a title=\"Mouse Lock API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/API/Mouse_Lock_API\">Mouse Lock API</a>."},{"name":"webkitNotification","help":"<dt><code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/navigator.webkitNotification\" class=\"new\">navigator.webkitNotification</a></code>\n</dt> <dd>Returns a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/navigator.mozNotification\">notification</a></code>\n object you can use to deliver notifications to the user from your web application.</dd>","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator.oscpu","name":"oscpu","help":"Returns a string that represents the current operating system."}]},"SVGViewElement":{"title":"SVGViewElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGViewElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/view\"><view></a></code>\n SVG Element","summary":"The <code>SVGViewElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/view\"><view></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"viewTarget","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewTarget\" class=\"new\">viewTarget</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/view\"><view></a></code>\n element. A list of DOMString values which contain the names listed in the \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewTarget\" class=\"new\">viewTarget</a></code> attribute. Each of the DOMString values can be associated with the corresponding element using the getElementById() method call.","obsolete":false}]},"Text":{"title":"Text","summary":"<p>In the <a title=\"en/DOM\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM\">DOM</a>, the Text interface represents the textual content of an <a class=\"internal\" title=\"En/DOM/Element\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">Element</a> or <a class=\"internal\" title=\"En/DOM/Attr\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Attr\">Attr</a>. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.</p>\n<p>New documents have a single Text node for each block of text. Over time, more Text nodes may be created as the document's content changes. The <code>Node.normalize()</code> method merges adjacent Text objects back into a single node for each block of text.</p>\n<p>Text also implements the <a title=\"En/DOM/CharacterData\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/CharacterData\">CharacterData</a> interface (which implements the Node interface).</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Text.replaceWholeText","name":"replaceWholeText","help":"Replaces the text of the current node and all logically adjacent nodes with the specified text. <div class=\"note\"><strong>Note: </strong>Do not use this method as it has been removed from the standard and is no longer implemented in recent browsers, like Firefox 10.</div>"},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Text.splitText","name":"splitText","help":"Breaks the node into two nodes at a specified offset."},{"url":"https://developer.mozilla.org/En/DOM/Text.isElementContentWhitespace","name":"isElementContentWhitespace","help":"<p>Returns whether or not the text node contains only whitespace. Read only.</p> <div class=\"note\"><strong>Note: </strong>Do not use this property as it has been removed from the standard and is no longer implemented in recent browsers, like Firefox 10.</div>","obsolete":false},{"url":"https://developer.mozilla.org/En/DOM/Text.wholeText","name":"wholeText","help":"Returns all text of all Text nodes logically adjacent to this node, concatenated in document order.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/Text","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...#ID-1312295772"},"SVGAnimatedTransformList":{"title":"SVGAnimatedTransformList","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>9.0 (9.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>9.0 (9.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGAnimatedTransformList</code> interface is used for attributes which take a list of numbers and which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"A read only <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGTransformList\">SVGTransformList</a></code>\n representing the current animated value of the given attribute. If the given attribute is not currently being animated, then the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGTransformList\">SVGTransformList</a></code>\n will have the same contents as <code>baseVal</code>. The object referenced by <code>animVal</code> will always be distinct from the one referenced by <code>baseVal</code>, even when the attribute is not animated.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedTransformList"},"PerformanceNavigation":{"title":"Navigation Timing","members":[],"srcUrl":"https://developer.mozilla.org/en/Navigation_timing","skipped":true,"cause":"Suspect title"},"SVGPathElement":{"title":"SVGPathElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/path\"><path></a></code>\n SVG Element","summary":"The <code>SVGPathElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/path\"><path></a></code>\n element.","members":[{"name":"getTotalLength","help":"Returns the computed value for the total length of the path using the browser's distance-along-a-path algorithm, as a distance in the current user coordinate system.","obsolete":false},{"name":"getPointAtLength","help":"Returns the (x,y) coordinate in user space which is distance units along the path, utilizing the browser's distance-along-a-path algorithm.","obsolete":false},{"name":"getPathSegAtLength","help":"Returns the index into <code>pathSegList</code> which is <code>distance</code> units along the path, utilizing the user agent's distance-along-a-path algorithm.","obsolete":false},{"name":"createSVGPathSegClosePath","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegClosePath\" class=\"new\">SVGPathSegClosePath</a></code>\n object.","obsolete":false},{"name":"createSVGPathSegMovetoAbs","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegMovetoAbs\" class=\"new\">SVGPathSegMovetoAbs</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The absolute X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em></code><br> The absolute Y coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"createSVGPathSegMovetoRel","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegMovetoRel\" class=\"new\">SVGPathSegMovetoRel</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The relative X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em></code><br> The relative Y coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"createSVGPathSegLinetoAbs","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegLinetoAbs\" class=\"new\">SVGPathSegLinetoAbs</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The absolute X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em></code><br> The absolute Y coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"createSVGPathSegLinetoRel","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegLinetoRel\" class=\"new\">SVGPathSegLinetoRel</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The relative X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em></code><br> The relative Y coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"createSVGPathSegCurvetoCubicAbs","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegCurvetoCubicAbs\" class=\"new\">SVGPathSegCurvetoCubicAbs</a></code>\n object.<br> <br> Parameters: <ul> <li><code>float <em>x</em></code><br> The absolute X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em> </code><br> The absolute Y coordinate for the end point of this path segment.</li> <li><code>float <em>x1</em></code><br> The absolute X coordinate for the first control point.</li> <li><code>float <em>y1</em></code><br> The absolute Y coordinate for the first control point.</li> <li><code>float <em>x2</em></code><br> The absolute X coordinate for the second control point.</li> <li><code>float <em>y2</em></code><br> The absolute Y coordinate for the second control point.</li> </ul>","obsolete":false},{"name":"createSVGPathSegCurvetoCubicRel","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegCurvetoCubicRel\" class=\"new\">SVGPathSegCurvetoCubicRel</a></code>\n object.<br> <br> Parameters: <ul> <li><code>float <em>x</em></code><br> The relative X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em> </code><br> The relative Y coordinate for the end point of this path segment.</li> <li><code>float <em>x1</em></code><br> The relative X coordinate for the first control point.</li> <li><code>float <em>y1</em></code><br> The relative Y coordinate for the first control point.</li> <li><code>float <em>x2</em></code><br> The relative X coordinate for the second control point.</li> <li><code>float <em>y2</em></code><br> The relative Y coordinate for the second control point.</li> </ul>","obsolete":false},{"name":"createSVGPathSegCurvetoQuadraticAbs","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegCurvetoQuadraticAbs\" class=\"new\">SVGPathSegCurvetoQuadraticAbs</a></code>\n object.<br> <br> Parameters: <ul> <li><code>float <em>x</em></code><br> The absolute X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em> </code><br> The absolute Y coordinate for the end point of this path segment.</li> <li><code>float <em>x1</em></code><br> The absolute X coordinate for the first control point.</li> <li><code>float <em>y1</em></code><br> The absolute Y coordinate for the first control point.</li> </ul>","obsolete":false},{"name":"createSVGPathSegCurvetoQuadraticRel","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegCurvetoQuadraticRel\" class=\"new\">SVGPathSegCurvetoQuadraticRel</a></code>\n object.<br> <br> Parameters: <ul> <li><code>float <em>x</em></code><br> The relative X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em> </code><br> The relative Y coordinate for the end point of this path segment.</li> <li><code>float <em>x1</em></code><br> The relative X coordinate for the first control point.</li> <li><code>float <em>y1</em></code><br> The relative Y coordinate for the first control point.</li> </ul>","obsolete":false},{"name":"createSVGPathSegArcAbs","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegArcAbs\" class=\"new\">SVGPathSegArcAbs</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The absolute X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em> </code><br> The absolute Y coordinate for the end point of this path segment.</li> <li><code>float <em>r1</em></code><br> The x-axis radius for the ellipse.</li> <li><code>float <em>r2 </em></code><br> The y-axis radius for the ellipse.</li> <li><code>float <em>angle </em></code><br> The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system.</li> <li><code>boolean <em>largeArcFlag </em></code><br> The value of the large-arc-flag parameter.</li> <li><code>boolean <em>sweepFlag </em></code><br> The value of the large-arc-flag parameter.</li> </ul>","obsolete":false},{"name":"createSVGPathSegArcRel","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegArcRel\" class=\"new\">SVGPathSegArcRel</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The relative X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em> </code><br> The relative Y coordinate for the end point of this path segment.</li> <li><code>float <em>r1</em></code><br> The x-axis radius for the ellipse.</li> <li><code>float <em>r2 </em></code><br> The y-axis radius for the ellipse.</li> <li><code>float <em>angle </em></code><br> The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system.</li> <li><code>boolean <em>largeArcFlag </em></code><br> The value of the large-arc-flag parameter.</li> <li><code>boolean <em>sweepFlag </em></code><br> The value of the large-arc-flag parameter.</li> </ul>","obsolete":false},{"name":"createSVGPathSegLinetoHorizontalAbs","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegLinetoHorizontalAbs\" class=\"new\">SVGPathSegLinetoHorizontalAbs</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The absolute X coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"createSVGPathSegLinetoHorizontalRel","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegLinetoHorizontalRel\" class=\"new\">SVGPathSegLinetoHorizontalRel</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The relative X coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"createSVGPathSegLinetoVerticalAbs","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegLinetoVerticalAbs\" class=\"new\">SVGPathSegLinetoVerticalAbs</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>y</em></code><br> The absolute Y coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"createSVGPathSegLinetoVerticalRel","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegLinetoVerticalRel\" class=\"new\">SVGPathSegLinetoVerticalRel</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>y</em></code><br> The relative Y coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"createSVGPathSegCurvetoCubicSmoothAbs","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegCurvetoCubicSmoothAbs\" class=\"new\">SVGPathSegCurvetoCubicSmoothAbs</a></code>\n object.<br> <br> Parameters <ul> <li><code>float <em>x </em></code><br> The absolute X coordinate for the end point of this path segment.</li> <li><code>float <em>y </em></code><br> The absolute Y coordinate for the end point of this path segment.</li> <li><code>float <em>x2 </em></code><br> The absolute X coordinate for the second control point.</li> <li><code>float <em>y2 </em></code><br> The absolute Y coordinate for the second control point.</li> </ul>","obsolete":false},{"name":"createSVGPathSegCurvetoCubicSmoothRel","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegCurvetoCubicSmoothRel\" class=\"new\">SVGPathSegCurvetoCubicSmoothRel</a></code>\n object.<br> <br> Parameters <ul> <li><code>float <em>x </em></code><br> The absolute X coordinate for the end point of this path segment.</li> <li><code>float <em>y </em></code><br> The absolute Y coordinate for the end point of this path segment.</li> <li><code>float <em>x2 </em></code><br> The absolute X coordinate for the second control point.</li> <li><code>float <em>y2 </em></code><br> The absolute Y coordinate for the second control point.</li> </ul>","obsolete":false},{"name":"createSVGPathSegCurvetoQuadraticSmoothAbs","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegCurvetoQuadraticSmoothAbs\" class=\"new\">SVGPathSegCurvetoQuadraticSmoothAbs</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The absolute X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em></code><br> The absolute Y coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"createSVGPathSegCurvetoQuadraticSmoothRel","help":"Returns a stand-alone, parentless <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGPathSegCurvetoQuadraticSmoothRel\" class=\"new\">SVGPathSegCurvetoQuadraticSmoothRel</a></code>\n object.<br> <br> <strong>Parameters:</strong> <ul> <li><code>float <em>x</em></code><br> The absolute X coordinate for the end point of this path segment.</li> <li><code>float <em>y</em></code><br> The absolute Y coordinate for the end point of this path segment.</li> </ul>","obsolete":false},{"name":"pathLength","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/pathLength\">pathLength</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/path\"><path></a></code>\n element.","obsolete":false}]},"HTMLCanvasElement":{"title":"HTMLCanvasElement","examples":["<p>First do your drawing on the canvas, then call <code>canvas.toDataURL()</code> to get the data: URL for the canvas.</p>\n\n <pre name=\"code\" class=\"js\">function test() {\n var canvas = document.getElementById(\"canvas\");\n var url = canvas.toDataURL();\n \n var newImg = document.createElement(\"img\");\n newImg.src = url;\n document.body.appendChild(newImg);\n}</pre>","<p>Once you've drawn content into a canvas, you can convert it into a file of any supported image format. The code snippet below, for example, takes the image in the canvas element whose ID is \"canvas\", obtains a copy of it as a PNG image, then appends a new <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/img\"><img></a></code>\n element to the document, whose source image is the one created using the canvas.</p>\n\n <pre name=\"code\" class=\"js\">function test() {\n var canvas = document.getElementById(\"canvas\");\n canvas.toBlob(function(blob) {\n var newImg = document.createElement(\"img\"),\n url = URL.createObjectURL(blob);\n newImg.onload = function() {\n // no longer need to read the blob so it's revoked\n URL.revokeObjectURL(url);\n };\n newImg.src = url;\n document.body.appendChild(newImg);\n });\n}</pre>\n \n<p>You can use this technique in association with mouse events in order to dynamically change images (grayscale versus color in this example):</p>\n\n <pre name=\"code\" class=\"xml\"><!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title>MDC Example</title>\n<script type=\"text/javascript\">\nfunction showColorImg() {\n this.style.display = \"none\";\n this.nextSibling.style.display = \"inline\";\n}\n\nfunction showGrayImg() {\n this.previousSibling.style.display = \"inline\";\n this.style.display = \"none\";\n}\n\nfunction removeColors() {\n var aImages = document.getElementsByClassName(\"grayscale\"), nImgsLen = aImages.length, oCanvas = document.createElement(\"canvas\"), oCtx = oCanvas.getContext(\"2d\");\n for (var nWidth, nHeight, oImgData, oGrayImg, nPixel, aPix, nPixLen, nImgId = 0; nImgId < nImgsLen; nImgId++) {\n oColorImg = aImages[nImgId];\n nWidth = oColorImg.offsetWidth;\n nHeight = oColorImg.offsetHeight;\n oCanvas.width = nWidth;\n oCanvas.height = nHeight;\n oCtx.drawImage(oColorImg, 0, 0);\n oImgData = oCtx.getImageData(0, 0, nWidth, nHeight);\n aPix = oImgData.data;\n nPixLen = aPix.length;\n for (nPixel = 0; nPixel < nPixLen; nPixel += 4) {\n aPix[nPixel + 2] = aPix[nPixel + 1] = aPix[nPixel] = (aPix[nPixel] + aPix[nPixel + 1] + aPix[nPixel + 2]) / 3;\n }\n oCtx.putImageData(oImgData, 0, 0);\n oGrayImg = new Image();\n oGrayImg.src = oCanvas.toDataURL();\n oGrayImg.onmouseover = showColorImg;\n oColorImg.onmouseout = showGrayImg;\n oCtx.clearRect(0, 0, nWidth, nHeight);\n oColorImg.style.display = \"none\";\n oColorImg.parentNode.insertBefore(oGrayImg, oColorImg);\n }\n}\n</script>\n</head>\n\n<body onload=\"removeColors();\">\n<p><img class=\"grayscale\" src=\"chagall.jpg\" alt=\"\" /></p>\n</body>\n</html></pre>\n \n<p>Note that here we're creating a PNG image; if you add a second parameter to the <code>toBlob()</code> call, you can specify the image type. For example, to get the image in JPEG format:</p>\n<pre class=\"deki-transform\"> canvas.toBlob(function(blob){...}, \"image/jpeg\", 0.95); // JPEG at 95% quality</pre>\n<p>\n<a rel=\"internal\" href=\"https://developer.mozilla.org/samples/domref/mozGetAsFile.html\" title=\"samples/domref/mozGetAsFile.html\" class=\" new\"><span>View the live example</span></a> (uses <code>mozGetAsFile()</code>)</p>"],"summary":"DOM canvas elements expose the <code><a class=\"external\" href=\"http://www.w3.org/TR/html5/the-canvas-element.html#htmlcanvaselement\" rel=\"external nofollow\" target=\"_blank\" title=\"http://www.w3.org/TR/html5/the-canvas-element.html#htmlcanvaselement\">HTMLCanvasElement</a></code> interface, which provides properties and methods for manipulating the layout and presentation of canvas elements. The <code>HTMLCanvasElement</code> interface inherits the properties and methods of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a></code>\n object interface.","members":[{"name":"getContext","help":"Returns a drawing context on the canvas, or null if the context ID is not supported. A drawing context lets you draw on the canvas. The currently accepted values are \"2d\" and \"experimental-webgl\". The \"experimental-webgl\" context is only available on browsers that implement <a title=\"En/WebGL\" rel=\"internal\" href=\"https://developer.mozilla.org/en/WebGL\">WebGL</a>. Calling getContext with \"2d\" returns a <code><a href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D\" rel=\"internal\">CanvasRenderingContext2D</a></code> Object, whereas calling it with \"experimental-webgl\" returns a <code>WebGLRenderingContext</code> Object.","obsolete":false},{"name":"toDataURL","help":"<p>Returns a <code>data:</code> URL containing a representation of the image in the format specified by <code>type</code> (defaults to PNG).</p> <ul> <li>If the height or width of the canvas is 0, <code>\"data:,</code>\" representing the empty string, is returned.</li> <li>If the type requested is not <code>image/png</code>, and the returned value starts with <code>data:image/png</code>, then the requested type is not supported.</li> <li>Chrome supports the <code>image/webp </code>type.</li> <li>If the requested type is <code>image/jpeg </code>or <code>image/webp</code>, then the second argument, if it is between 0.0 and 1.0, is treated as indicating image quality; if the second argument is anything else, the default value for image quality is used. Other arguments are ignored.</li> </ul>","obsolete":false},{"name":"webkitGetAsFile","help":"Returns a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n object representing the image contained in the canvas; this file is a memory-based file, with the specified <code>name</code> and. If <code>type</code> is not specified, the image type is <code>image/png</code>.","obsolete":false},{"name":"height","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/canvas#attr-height\">height</a></code>\n HTML attribute, specifying the height of the coordinate space in CSS pixels.","obsolete":false},{"name":"width","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/canvas#attr-width\">width</a></code>\n HTML attribute, specifying the width of the coordinate space in CSS pixels.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLCanvasElement"},"SVGAltGlyphElement":{"title":"altGlyph","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr>\n\n</tr><tr><th scope=\"col\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Firefox (Gecko)</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr> <tr><td>Basic support</td> <td>1.0</td> <td>4.0 (2.0)\n <a href=\"#supportGecko\">[1]</a></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>\n10.6</td> <td>\n4.0</td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>4.0 (2.0)\n <a href=\"#supportGecko\">[1]</a></td> <td><span title=\"Not supported.\">--</span></td> <td>11.0\n</td> <td>\n4.0</td> </tr> </tbody> </table>\n</div>\n<p id=\"supportGecko\">[1] partial support, see <a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=456286\" rel=\"external\">bug 456286</a> and <a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=571808\" rel=\"external\">bug 571808</a>.</p>\n<p>The chart is based on <a title=\"en/SVG/Compatibility sources\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Compatibility_sources\">these sources</a>.</p>","srcUrl":"https://developer.mozilla.org/en/SVG/Element/altGlyph","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/tspan\"><tspan></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/glyph\"><glyph></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/altGlyphDef\"><altGlyphDef></a></code>\n</li>","summary":"The <code>altGlyph</code> element allows sophisticated selection of the glyphs used to render its child character data.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/format","name":"format","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/rotate","name":"rotate","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/dx","name":"dx","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/glyphRef","name":"glyphRef","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/dy","name":"dy","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/externalResourcesRequired","name":"externalResourcesRequired","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":""}]},"DeviceOrientationEvent":{"title":"DeviceOrientationEvent","examples":["if (window.DeviceOrientationEvent) {\n window.addEventListener(\"deviceorientation\", function( event ) {\n\t//alpha: rotation around z-axis\n\tvar rotateDegrees = event.alpha;\n\t//gamma: left to right\n\tvar leftToRight = event.gamma;\n\t//beta: front back motion\n\tvar frontToBack = event.beta;\n\t\t\t\t \n\thandleOrientationEvent( frontToBack, leftToRight, rotateDegrees );\n }, false);\n}\n\nvar handleOrientationEvent = function( frontToBack, leftToRight, rotateDegrees ){\n //do something amazing\n};"],"srcUrl":"https://developer.mozilla.org/en/DOM/DeviceOrientationEvent","specification":"DeviceOrientation specification","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DeviceMotionEvent\">DeviceMotionEvent</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.ondeviceorientation\">window.ondeviceorientation</a></code>\n</li> <li><a title=\"Detecting device orientation\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Detecting_device_orientation\">Detecting device orientation</a></li> <li><a title=\"Orientation and motion data explained\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Orientation_and_motion_data_explained\">Orientation and motion data explained</a></li>","summary":"A <code>DeviceOrientationEvent</code> object describes an event that provides information about the current orientation of the device as compared to the Earth coordinate frame. See <a title=\"Orientation and motion data explained\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Orientation_and_motion_data_explained\">Orientation and motion data explained</a> for details.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/DeviceOrientationEvent.alpha","name":"alpha","help":"The current orientation of the device around the Z axis; that is, how far the device is rotated around a line perpendicular to the device. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/DeviceOrientationEvent.absolute","name":"absolute","help":"This attribute's value is <code>true</code> if the orientation is provided as a difference between the device coordinate frame and the Earth coordinate frame; if the device can't detect the Earth coordinate frame, this value is <code>false</code>. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/DeviceOrientationEvent.beta","name":"beta","help":"The current orientation of the device around the X axis; that is, how far the device is tipped forward or backward. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/DeviceOrientationEvent.gamma","name":"gamma","help":"<dl><dd>The current orientation of the device around the Y axis; that is, how far the device is turned left or right. <strong>Read only.</strong></dd>\n</dl>\n<div class=\"note\"><strong>Note:</strong> If the browser is not able to provide notification information, all values are 0.</div>"}]},"Geolocation":{"title":"nsIDOMGeoGeolocation","members":[{"name":"getCurrentPosition","help":"<p>Acquires the user's current position via a new position object. If this fails, <code>errorCallback</code> is invoked with an <code>nsIDOMGeoPositionError</code> argument.</p>\n\n<div id=\"section_8\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>successCallback</code></dt> <dd>An <code><a class=\"internal\" title=\"En/NsIDOMGeoPositionCallback\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoPositionCallback\">nsIDOMGeoPositionCallback</a></code> to be called when the current position is available.</dd>\n</dl>\n<dl> <dt><code>errorCallback</code></dt> <dd>An <code><a class=\"internal\" title=\"En/NsIDOMGeoPositionErrorCallback\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoPositionErrorCallback\"> nsIDOMGeoPositionErrorCallback</a></code> that is called if an error occurs while retrieving the position; this parameter is optional.</dd>\n</dl>\n<dl> <dt><code>options</code></dt> <dd>An <code><a class=\"internal\" title=\"En/NsIDOMGeoPositionOptions\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoPositionOptions\">nsIDOMGeoPositionOptions</a></code> object specifying options; this parameter is optional.</dd>\n</dl>\n</div>","idl":"<pre>void getCurrentPosition(\n in nsIDOMGeoPositionCallback successCallback,\n [optional] in nsIDOMGeoPositionErrorCallback errorCallback, \n [optional] in nsIDOMGeoPositionOptions options\n);</pre>","obsolete":false},{"name":"clearWatch","help":"When the <code>clearWatch()</code> method is called, the <code>watch()</code> process stops calling for new position identifiers and cease invoking callbacks.","idl":"<pre>void clearWatch(\n in unsigned short watchId\n);</pre>","obsolete":false},{"name":"watchPosition","help":"<p>Similar to <a title=\"En/NsIDOMGeoGeolocation#getCurrentPosition()\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoGeolocation#getCurrentPosition()\"><code>getCurrentPosition()</code></a>, except it continues to call the callback with updated position information periodically until <a title=\"En/NsIDOMGeoGeolocation#clearWatch()\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoGeolocation#clearWatch()\"><code>clearWatch()</code></a> is called.</p>\n\n<div id=\"section_10\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>successCallback</code></dt> <dd>An <code><a class=\"internal\" title=\"En/NsIDOMGeoPositionCallback\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoPositionCallback\">nsIDOMGeoPositionCallback</a></code> that is to be called whenever new position information is available.</dd>\n</dl>\n<dl> <dt><code>errorCallback</code></dt> <dd>An <code><a class=\"internal\" title=\"En/NsIDOMGeoPositionErrorCallback\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoPositionErrorCallback\"> nsIDOMGeoPositionErrorCallback</a></code> to call when an error occurs; this is an optional parameter.</dd>\n</dl>\n<dl> <dt><code>options</code></dt> <dd>An <code><a class=\"internal\" title=\"En/NsIDOMGeoPositionOptions\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoPositionOptions\">nsIDOMGeoPositionOptions</a></code> object specifying options; this parameter is optional.</dd>\n</dl>\n</div><div id=\"section_11\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>An ID number that can be used to reference the watcher in the future when calling <code><a title=\"en/nsIDOMGeolocation#clearWatch()\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIDOMGeoGeolocation#clearWatch()\">clearWatch()</a></code>.</p>\n</div>","idl":"<pre>unsigned short watchPosition(\n in nsIDOMGeoPositionCallback successCallback,\n [optional] in nsIDOMGeoPositionErrorCallback errorCallback,\n [optional] in nsIDOMGeoPositionOptions options\n);</pre>","obsolete":false},{"name":"lastPosition","help":"The most recently retrieved location as seen by the provider. May be <code>null</code>. <strong>Read only.</strong>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/nsIDOMGeolocation;"},"SVGPathSegCurvetoQuadraticRel":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"SVGFitToViewBox":{"title":"SVGPatternElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPatternElement","skipped":true,"cause":"Suspect title"},"SVGAnimatedLengthList":{"title":"SVGAnimatedLengthList","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedLengthList</code> interface is used for attributes of type <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGLengthList\">SVGLengthList</a></code>\n which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"A read only <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGLengthList\">SVGLengthList</a></code>\n representing the current animated value of the given attribute. If the given attribute is not currently being animated, then the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGLengthList\">SVGLengthList</a></code>\n will have the same contents as <code>baseVal</code>. The object referenced by <code>animVal</code> will always be distinct from the one referenced by <code>baseVal</code>, even when the attribute is not animated.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedLengthList"},"HTMLTableCellElement":{"title":"td","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.0 (1.7 or earlier)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>align/valign</code> attribute</td> <td>1.0</td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=915\" class=\"external\" title=\"\">\nbug 915</a>\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>char/charoff</code> attribute</td> <td>1.0</td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=2212\" class=\"external\" title=\"\">\nbug 2212</a>\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>bgcolor</code> attribute </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>align/valign</code> attribute</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=915\" class=\"external\" title=\"\">\nbug 915</a>\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>char/charoff</code> attribute</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=2212\" class=\"external\" title=\"\">\nbug 2212</a>\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>bgcolor</code> attribute </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["Please see the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/table\"><table></a></code>\n page for examples on <code><td></code>."],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/td","seeAlso":"Other table-related HTML Elements: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/caption\"><caption></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/col\"><col></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/colgroup\"><colgroup></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/table\"><table></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/tbody\"><tbody></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/tfoot\"><tfoot></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/th\"><th></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/thead\"><thead></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/tr\"><tr></a></code>\n.","summary":"The <em>HTML Table Cell Element</em> (<code><td></code>) defines a cell that content data.","members":[{"obsolete":false,"url":"","name":"rowspan","help":"This attribute contains a non-negative integer value that indicates for how many rows the cell extends. Its default value is <span>1</span>; if its value is set to <span>0</span>, it extends until the end of the table section (<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/thead\"><thead></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/tbody\"><tbody></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/tfoot\"><tfoot></a></code>\n, even if implicitly defined, that the cell belongs to. Values higher than 65534 are clipped down to 65534."},{"obsolete":false,"url":"","name":"valign","help":"This attribute specifies the vertical alignment of the text within each row of cells of the table header. Possible values for this attribute are: <ul> <li><span>baseline</span>, which will put the text as close to the bottom of the cell as it is possible, but align it on the <a class=\"external\" title=\"http://en.wikipedia.org/wiki/Baseline_(typography)\" rel=\"external\" href=\"http://en.wikipedia.org/wiki/Baseline_%28typography%29\" target=\"_blank\">baseline</a> of the characters instead of the bottom of them. If characters are all of the size, this has the same effect as <span>bottom</span>.</li> <li><span>bottom</span>, which will put the text as close to the bottom of the cell as it is possible;</li> <li><span>middle</span>, which will center the text in the cell;</li> <li>and <span>top</span>, which will put the text as close to the top of the cell as it is possible.</li> </ul> <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete (and not supported) in the latest standard: instead set the CSS <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/vertical-align\">vertical-align</a></code>\n property on it.</div>"},{"obsolete":false,"url":"","name":"bgcolor","help":"This attribute defines the background color of each cell of the column. It is one of the 6-digit hexadecimal codes as defined in <a class=\"external\" title=\"http://www.w3.org/Graphics/Color/sRGB\" rel=\"external\" href=\"http://www.w3.org/Graphics/Color/sRGB\" target=\"_blank\">sRGB</a>, prefixed by a '#'. One of the sixteen predefined color strings may be used: <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" summary=\"Table of color names and their sRGB values\" width=\"80%\"> <tbody> <tr> <td> </td> <td><span>black</span> = \"#000000\"</td> <td> </td> <td><span>green</span> = \"#008000\"</td> </tr> <tr> <td> </td> <td><span>silver</span> = \"#C0C0C0\"</td> <td> </td> <td><span>lime</span> = \"#00FF00\"</td> </tr> <tr> <td> </td> <td><span>gray</span> = \"#808080\"</td> <td> </td> <td><span>olive</span> = \"#808000\"</td> </tr> <tr> <td> </td> <td><span>white</span> = \"#FFFFFF\"</td> <td> </td> <td><span>yellow</span> = \"#FFFF00\"</td> </tr> <tr> <td> </td> <td><span>maroon</span> = \"#800000\"</td> <td> </td> <td><span>navy</span> = \"#000080\"</td> </tr> <tr> <td> </td> <td><span>red</span> = \"#FF0000\"</td> <td> </td> <td><span>blue</span> = \"#0000FF\"</td> </tr> <tr> <td> </td> <td><span>purple</span> = \"#800080\"</td> <td> </td> <td><span>teal</span> = \"#008080\"</td> </tr> <tr> <td> </td> <td><span>fuchsia</span> = \"#FF00FF\"</td> <td> </td> <td><span>aqua</span> = \"#00FFFF\"</td> </tr> </tbody> </table> <div class=\"note\"><strong>Usage note: </strong>Do not use this attribute, as it is non-standard and only implemented some versions of Microsoft Internet Explorer: the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/td\"><td></a></code>\n element should be styled using <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a>. To give a similar effect to the <strong>bgcolor</strong> attribute, use the <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a> property <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/background-color\">background-color</a></code>\n instead.</div>"},{"obsolete":false,"url":"","name":"headers","help":"This attributes a list of space-separated strings, each corresponding to the <strong>id</strong> attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/th\"><th></a></code>\n elements that applies to this element."},{"obsolete":false,"url":"","name":"align","help":"This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are: <ul> <li><span>left</span>, aligning the content to the left of the cell</li> <li><span>center</span>, centering the content in the cell</li> <li><span>right</span>, aligning the content to the right of the cell</li> <li><span>justify</span>, inserting spaces into the textual content so that the content is justified in the cell</li> <li><span>char</span>, aligning the textual content on a special character with a minimal offset, defined by the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/td#attr-char\">char</a></code>\n and \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/td#attr-charoff\">charoff</a></code>\n attributes \n<span class=\"unimplementedInlineTemplate\">Unimplemented (see<a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=2212\" class=\"external\" title=\"\">\nbug 2212</a>\n)</span>\n.</li> </ul> <p>If this attribute is not set, the <span>left</span> value is assumed.</p> <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete (not supported) in the latest standard. <ul> <li>To achieve the same effect as the <span>left</span>, <span>center</span>, <span>right</span> or <span>justify</span> values, use the CSS <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/text-align\">text-align</a></code>\n property on it.</li> <li>To achieve the same effect as the <span>char</span> value, in CSS3, you can use the value of the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/td#attr-char\">char</a></code>\n as the value of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/text-align\">text-align</a></code>\n property \n<span class=\"unimplementedInlineTemplate\">Unimplemented</span>\n.</li> </ul> </div>"},{"obsolete":false,"url":"","name":"scope","help":""},{"obsolete":false,"url":"","name":"axis","help":"This attribute contains a list of space-separated strings. Each string is the ID of a group of cells that this header applies to. <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete in the latest standard: instead use the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/td#attr-scope\">scope</a></code>\n attribute.</div>"},{"obsolete":false,"url":"","name":"abbr","help":"This attribute contains a short abbreviated description of the content of the cell. Some user-agents, such as speech readers, may present this description before the content itself. <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete in the latest standard: instead either consider starting the cell content by an independent abbreviated content itself or use the abbreviated content as the cell content and use the long content as the description of the cell by putting it in the <strong>title</strong> attribute.</div>"},{"obsolete":false,"url":"","name":"char","help":"This attribute is used to set the character to align the cells in a column on. Typical values for this include a period (.) when attempting to align numbers or monetary values. If \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/td#attr-align\">align</a></code>\n is not set to <span>char</span>, this attribute is ignored. <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete (and not supported) in the latest standard. To achieve the same effect as the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/thead#attr-char\">char</a></code>\n, in CSS3, you can use the character set using the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/th#attr-char\">char</a></code>\n attribute as the value of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/text-align\">text-align</a></code>\n property \n<span class=\"unimplementedInlineTemplate\">Unimplemented</span>\n.</div>"},{"obsolete":false,"url":"","name":"colspan","help":"This attribute contains a non-negative integer value that indicates for how many columns the cell extends. Its default value is <span>1</span>; if its value is set to <span>0</span>, it extends until the end of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/colgroup\"><colgroup></a></code>\n, even if implicitly defined, that the cell belongs to. Values higher than 1000 are clipped down to 1000."},{"obsolete":false,"url":"","name":"charoff","help":"This attribute is used to indicate the number of characters to offset the column data from the alignment characters specified by the <strong>char</strong> attribute. <div class=\"note\"><strong>Note: </strong>Do not use this attribute as it is obsolete (and not supported) in the latest standard.</div>"}]},"DOMWindow":{"title":"window","seeAlso":"Working with windows in chrome code","summary":"<p>This section provides a brief reference for all of the methods, properties, and events available through the DOM <code>window</code> object. The <code>window</code> object implements the <code>Window</code> interface, which in turn inherits from the <code><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Views/views.html#Views-AbstractView\" title=\"http://www.w3.org/TR/DOM-Level-2-Views/views.html#Views-AbstractView\" target=\"_blank\">AbstractView</a></code> interface. Some additional global functions, namespaces objects, and constructors, not typically associated with the window, but available on it, are listed in the <a title=\"https://developer.mozilla.org/en/JavaScript/Reference\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference\">JavaScript Reference</a>.</p>\n<p>The <code>window</code> object represents the window itself. The <code>document</code> property of a <code>window</code> points to the <a title=\"en/DOM/document\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document\">DOM document</a> loaded in that window. A window for a given document can be obtained using the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document.defaultView\">document.defaultView</a></code>\n property.</p>\n<p>In a tabbed browser, such as Firefox, each tab contains its own <code>window</code> object (and if you're writing an extension, the browser window itself is a separate window too - see <a title=\"en/Working_with_windows_in_chrome_code#Content_windows\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Working_with_windows_in_chrome_code#Content_windows\">Working with windows in chrome code</a> for more information). That is, the <code>window</code> object is not shared between tabs in the same window. Some methods, namely <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.resizeTo\">window.resizeTo</a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.resizeBy\">window.resizeBy</a></code>\n apply to the whole window and not to the specific tab the <code>window</code> object belongs to. Generally, anything that can't reasonably pertain to a tab pertains to the window instead.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.captureEvents","name":"captureEvents","help":"Registers the window to capture all events of the specified type."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.showModalDialog","name":"showModalDialog","help":"Displays a modal dialog."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.routeEvent","name":"routeEvent","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.sizeToContent","name":"sizeToContent","help":"Sizes the window according to its content."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollTo","name":"scrollTo","help":"Scrolls to a particular set of coordinates in the document."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.setTimeout","name":"setTimeout","help":"Sets a delay for executing a function."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.matchMedia","name":"matchMedia","help":"Returns a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/MediaQueryList\">MediaQueryList</a></code>\n object representing the specified media query string."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.minimize","name":"minimize","help":"Minimizes the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scroll","name":"scroll","help":"Scrolls the window to a particular place in the document."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.clearTimeout","name":"clearTimeout","help":"Cancels the repeated execution set using <code>setTimeout</code>."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.setInterval","name":"setInterval","help":"Execute a function each X milliseconds."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.moveTo","name":"moveTo","help":"Moves the window to the specified coordinates."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollByLines","name":"scrollByLines","help":"Scrolls the document by the given number of lines."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.alert","name":"alert","help":"Displays an alert dialog."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.dispatchEvent","name":"dispatchEvent","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.moveBy","name":"moveBy","help":"Moves the current window by a specified amount."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.btoa","name":"btoa","help":"Creates a base-64 encoded ASCII string from a string of binary data."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.releaseEvents","name":"releaseEvents","help":"Releases the window from trapping events of a specific type."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.find","name":"find","help":"Searches for a given string in a window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.postMessage","name":"postMessage","help":"Provides a secure means for one window to send a string of data to another window, which need not be within the same domain as the first, in a secure manner."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.maximize","name":"maximize","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.escape","name":"escape","help":"Encodes a string."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.blur","name":"blur","help":"Sets focus away from the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.home","name":"home","help":"Returns the browser to the home page."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.disableExternalCapture","name":"disableExternalCapture","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.updateCommands","name":"updateCommands","help":"<dd>Updates the state of commands of the current chrome window (UI).</dd> <dt><a class=\"internal\" title=\"En/DOM/window.XPCNativeWrapper\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCNativeWrapper\">window.XPCNativeWrapper</a></dt> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.XPCSafeJSObjectWrapper\">window.XPCSafeJSObjectWrapper</a></code>\n</dt>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.stop","name":"stop","help":"This method stops window loading."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.clearImmediate","name":"clearImmediate","help":"Cancels the repeated execution set using <code>setImmediate</code>."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.atob","name":"atob","help":"Decodes a string of data which has been encoded using base-64 encoding."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.focus","name":"focus","help":"Sets focus on the current window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.prompt","name":"prompt","help":"<dd>Returns the text entered by the user in a prompt dialog.</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.QueryInterface\">window.QueryInterface</a></code>\n</dt>"},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.setResizable","name":"setResizable","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.getComputedStyle","name":"getComputedStyle","help":"Gets computed style for the specified element. Computed style indicates the computed values of all CSS properties of the element."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.clearInterval","name":"clearInterval","help":"Cancels the repeated execution set using <code>setInterval</code>."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollBy","name":"scrollBy","help":"Scrolls the document in the window by the given amount."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.getAttention","name":"getAttention","help":"Flashes the application icon."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.openDialog","name":"openDialog","help":"Opens a new dialog window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.open","name":"open","help":"Opens a new window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.resizeTo","name":"resizeTo","help":"Dynamically resizes window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.restore","name":"restore","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.getAttentionWithCycleCount","name":"getAttentionWithCycleCount","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.close","name":"close","help":"Closes the current window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.print","name":"print","help":"Opens the Print Dialog to print the current document."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.dump","name":"dump","help":"Writes a message to the console."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.enableExternalCapture","name":"enableExternalCapture","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.forward","name":"forward","help":"<dd>Moves the window one document forward in the history.</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.GeckoActiveXObject\">window.GeckoActiveXObject</a></code>\n</dt>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.removeEventListener","name":"removeEventListener","help":"Removes an event listener from the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.setImmediate","name":"setImmediate","help":"Execute a function after the browser has finished other heavy tasks"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.setCursor","name":"setCursor","help":"Changes the cursor for the current window"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.back","name":"back","help":"Moves back one in the window history."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollByPages","name":"scrollByPages","help":"Scrolls the current document by the specified number of pages."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.addEventListener","name":"addEventListener","help":"Register an event handler to a specific event type on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.unescape","name":"unescape","help":"Unencodes a value that has been encoded in hexadecimal (e.g. a cookie)."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.confirm","name":"confirm","help":"Displays a dialog with a message that the user needs to respond to."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.getSelection","name":"getSelection","help":"Returns the selection object representing the selected item(s)."},{"name":"webkitRequestAnimationFrame","help":"Tells the browser that an animation is in progress, requesting that the browser schedule a repaint of the window for the next animation frame. This will cause a <code>MozBeforePaint</code> event to fire before that repaint occurs.","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.resizeBy","name":"resizeBy","help":"Resizes the current window by a certain amount."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollX","name":"scrollX","help":"Returns the number of pixels that the document has already been scrolled horizontally."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Storage#sessionStorage","name":"sessionStorage","help":"A storage object for storing data within a single page session."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.self","name":"self","help":"Returns an object reference to the window object itself."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.statusbar","name":"statusbar","help":"Returns the statusbar object, whose visibility can be toggled in the window."},{"name":"webkitAnimationStartTime","help":"The time in milliseconds since epoch at which the current animation cycle began.","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.fullScreen","name":"fullScreen","help":"This property indicates whether the window is displayed in full screen or not."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.dialogArguments","name":"dialogArguments","help":"Gets the arguments passed to the window (if it's a dialog box) at the time <code><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.showModalDialog\">window.showModalDialog()</a></code>\n</code> was called. This is an <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIArray\">nsIArray</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.history","name":"history","help":"Returns a reference to the history object."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.outerWidth","name":"outerWidth","help":"Gets the width of the outside of the browser window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.closed","name":"closed","help":"<dd>This property indicates whether the current window is closed or not.</dd> <dt><a title=\"en/Components_object\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Components_object\">window.Components</a></dt> <dd>The entry point to many <a title=\"en/XPCOM\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM\">XPCOM</a> features. Some properties, e.g. <a title=\"en/Components.classes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Components.classes\">classes</a>, are only available to sufficiently privileged code.</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.directories","name":"directories","help":"Synonym of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.personalbar\">window.personalbar</a></code>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollX","name":"pageXOffset","help":"An alias for <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.scrollX\">window.scrollX</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.top","name":"top","help":"<dd>Returns a reference to the topmost window in the window hierarchy. This property is read only.</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.URL\">window.URL</a></code>\n \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Requires Gecko 2.0</span>\n</dt> <dd>A DOM URL object, which provides the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.URL.createObjectURL\">window.URL.createObjectURL()</a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.URL.revokeObjectURL\">window.URL.revokeObjectURL()</a></code>\n methods.</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screenX","name":"screenX","help":"Returns the horizontal distance of the left border of the user's browser from the left side of the screen."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.content","name":"content","help":"Returns a reference to the content element in the current window. The variant with underscore is deprecated."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollbars","name":"scrollbars","help":"Returns the scrollbars object, whose visibility can be toggled in the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.personalbar","name":"personalbar","help":"Returns the personalbar object, whose visibility can be toggled in the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screen","name":"screen","help":"Returns a reference to the screen object associated with the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.defaultStatus","name":"defaultStatus","help":"Gets/sets the status bar text for the given window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.screenY","name":"screenY","help":"Returns the vertical distance of the top border of the user's browser from the top side of the screen."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.messageManager","name":"messageManager","help":"Returns the <a title=\"en/The message manager\" rel=\"internal\" href=\"https://developer.mozilla.org/en/The_message_manager\">message manager</a> object for this window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.toolbar","name":"toolbar","help":"Returns the toolbar object, whose visibility can be toggled in the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.length","name":"length","help":"Returns the number of frames in the window. See also <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.frames\">window.frames</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.outerHeight","name":"outerHeight","help":"Gets the height of the outside of the browser window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollMaxY","name":"scrollMaxY","help":"The maximum offset that the window can be scrolled to vertically (i.e., the document height minus the viewport height)."},{"name":"webkitPaintCount","help":"Returns the number of times the current document has been rendered to the screen in this window. This can be used to compute rendering performance.","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Storage#localStorage","name":"localStorage","help":"Returns a reference to the local storage object used to store data that may only be accessed by the origin that created it."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.innerHeight","name":"innerHeight","help":"Gets the height of the content area of the browser window including, if rendered, the horizontal scrollbar."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.name","name":"name","help":"Gets/sets the name of the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.parent","name":"parent","help":"Returns a reference to the parent of the current window or subframe."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.innerWidth","name":"innerWidth","help":"Gets the width of the content area of the browser window including, if rendered, the vertical scrollbar."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.opener","name":"opener","help":"Returns a reference to the window that opened this current window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.status","name":"status","help":"Gets/sets the text in the statusbar at the bottom of the browser."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.globalStorage","name":"globalStorage","help":"Multiple storage objects that are used for storing data across multiple pages. Note that this is non-standard; it is recommended that you use <a class=\"internal\" title=\"en/DOM/Storage#localStorage\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Storage#localStorage\">window.localStorage</a> instead."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.returnValue","name":"returnValue","help":"The return value to be returned to the function that called <code><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.showModalDialog\">window.showModalDialog()</a></code>\n</code> to display the window as a modal dialog."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.locationbar","name":"locationbar","help":"Returns the locationbar object, whose visibility can be toggled in the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.navigator","name":"navigator","help":"Returns a reference to the navigator object."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.document","name":"document","help":"Returns a reference to the document that the window contains."},{"name":"webkitInnerScreenX","help":"Returns the horizontal (X) coordinate of the top-left corner of the window's viewport, in screen coordinates. This value is reported in CSS pixels. See <code>mozScreenPixelsPerCSSPixel</code> in <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMWindowUtils\">nsIDOMWindowUtils</a></code>\n for a conversion factor to adapt to screen pixels if needed.","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.frames","name":"frames","help":"Returns an array of the subframes in the current window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.menubar","name":"menubar","help":"Returns the menubar object, whose visibility can be toggled in the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.location","name":"location","help":"Gets/sets the location, or current URL, of the window object."},{"name":"webkitInnerScreenY","help":"Returns the vertical (Y) coordinate of the top-left corner of the window's viewport, in screen coordinates. This value is reported in CSS pixels. See <code>mozScreenPixelsPerCSSPixel</code> for a conversion factor to adapt to screen pixels if needed.","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.applicationCache","name":"applicationCache","help":"An <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/nsIDOMOfflineResourceList\">nsIDOMOfflineResourceList</a></code>\n object providing access to the offline resources for the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.window","name":"window","help":"<dd>Returns a reference to the current window.</dd> <dt>window[0], window[1], etc.</dt> <dd>Returns a reference to the <code>window</code> object in the frames. See <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.frames\">window.frames</a></code>\n for more details.</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.controllers","name":"controllers","help":"Returns the XUL controller objects for the current chrome window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.frameElement","name":"frameElement","help":"Returns the element in which the window is embedded, or null if the window is not embedded."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollY","name":"scrollY","help":"Returns the number of pixels that the document has already been scrolled vertically."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollMaxX","name":"scrollMaxX","help":"<dd>The maximum offset that the window can be scrolled to horizontally.</dd> <dd>(i.e., the document width minus the viewport width)</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.sidebar","name":"sidebar","help":"Returns a reference to the window object of the sidebar."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.pkcs11","name":"pkcs11","help":"Formerly provided access to install and remove PKCS11 modules. Now this property is always null."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.crypto","name":"crypto","help":"Returns the browser crypto object."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.scrollY","name":"pageYOffset","help":"An alias for <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.scrollY\">window.scrollY</a></code>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onabort","name":"onabort","help":"An event handler property for abort events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onclose","name":"onclose","help":"An event handler property for handling the window close event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmousemove","name":"onmousemove","help":"An event handler property for mousemove events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.onpageshow","name":"onpageshow","help":"An event handler property for pageshow events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onunload","name":"onunload","help":"An event handler property for unload events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onkeydown","name":"onkeydown","help":"An event handler property for keydown events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onsubmit","name":"onsubmit","help":"An event handler property for submits on window forms."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onblur","name":"onblur","help":"An event handler property for blur events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmouseout","name":"onmouseout","help":"An event handler property for mouseout events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onload","name":"onload","help":"An event handler property for window loading."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onscroll","name":"onscroll","help":"An event handler property for window scrolling."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onresize","name":"onresize","help":"An event handler property for window resizing."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.ondragdrop","name":"ondragdrop","help":"An event handler property for drag and drop events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onpopstate","name":"onpopstate","help":"An event handler property for popstate events, which are fired when navigating to a session history entry representing a state object."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onbeforeunload","name":"onbeforeunload","help":"An event handler property for before-unload events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmousedown","name":"onmousedown","help":"An event handler property for mousedown events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmouseup","name":"onmouseup","help":"An event handler property for mouseup events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onhashchange","name":"onhashchange","help":"An event handler property for hash change events on the window; called when the part of the URL after the hash mark (\"#\") changes."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onchange","name":"onchange","help":"An event handler property for change events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onerror","name":"onerror","help":"An event handler property for errors raised on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onselect","name":"onselect","help":"An event handler property for window selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onreset","name":"onreset","help":"An event handler property for reset events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmouseover","name":"onmouseover","help":"An event handler property for mouseover events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onkeypress","name":"onkeypress","help":"An event handler property for keypress events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmozbeforepaint","name":"onmozbeforepaint","help":"An event handler property for the <code>MozBeforePaint</code> event, which is sent before repainting the window if the event has been requested by a call to the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.mozRequestAnimationFrame\" class=\"new\">window.mozRequestAnimationFrame()</a></code>\n method."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onclick","name":"onclick","help":"An event handler property for click events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.ondevicemotion","name":"ondevicemotion","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onpaint","name":"onpaint","help":"An event handler property for paint events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.onpagehide","name":"onpagehide","help":"An event handler property for pagehide events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onfocus","name":"onfocus","help":"An event handler property for focus events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onkeyup","name":"onkeyup","help":"An event handler property for keyup events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.ondeviceorientation","name":"ondeviceorientation","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.oncontextmenu","name":"oncontextmenu","help":"An event handler property for right-click events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onabort","name":"onabort","help":"An event handler property for abort events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmousemove","name":"onmousemove","help":"An event handler property for mousemove events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.onpageshow","name":"onpageshow","help":"An event handler property for pageshow events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onunload","name":"onunload","help":"An event handler property for unload events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onkeydown","name":"onkeydown","help":"An event handler property for keydown events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onsubmit","name":"onsubmit","help":"An event handler property for submits on window forms."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onblur","name":"onblur","help":"An event handler property for blur events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmouseout","name":"onmouseout","help":"An event handler property for mouseout events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onload","name":"onload","help":"An event handler property for window loading."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onscroll","name":"onscroll","help":"An event handler property for window scrolling."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onresize","name":"onresize","help":"An event handler property for window resizing."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onpopstate","name":"onpopstate","help":"An event handler property for popstate events, which are fired when navigating to a session history entry representing a state object."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onbeforeunload","name":"onbeforeunload","help":"An event handler property for before-unload events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmousedown","name":"onmousedown","help":"An event handler property for mousedown events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmouseup","name":"onmouseup","help":"An event handler property for mouseup events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onhashchange","name":"onhashchange","help":"An event handler property for hash change events on the window; called when the part of the URL after the hash mark (\"#\") changes."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onchange","name":"onchange","help":"An event handler property for change events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onerror","name":"onerror","help":"An event handler property for errors raised on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onselect","name":"onselect","help":"An event handler property for window selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onreset","name":"onreset","help":"An event handler property for reset events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onmouseover","name":"onmouseover","help":"An event handler property for mouseover events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onkeypress","name":"onkeypress","help":"An event handler property for keypress events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onclick","name":"onclick","help":"An event handler property for click events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.ondevicemotion","name":"ondevicemotion","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/window.onpagehide","name":"onpagehide","help":"An event handler property for pagehide events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onfocus","name":"onfocus","help":"An event handler property for focus events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.onkeyup","name":"onkeyup","help":"An event handler property for keyup events on the window."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.ondeviceorientation","name":"ondeviceorientation","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/window.oncontextmenu","name":"oncontextmenu","help":"An event handler property for right-click events on the window."}],"srcUrl":"https://developer.mozilla.org/en/DOM/window"},"HTMLOListElement":{"title":"ol","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p> <div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.0 (1.7 or earlier)\n</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> </tr> <tr> <td><code>reversed</code> attribute</td> <td><span title=\"Not supported.\">--</span> \n<a rel=\"external\" href=\"https://bugs.webkit.org/show_bug.cgi?id=36724\" class=\"external\" title=\"RESOLVED FIXED - Add support for <ol reversed>\">\nWebKit bug 36724</a></td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=601912\" class=\"external\" title=\"\">\nbug 601912</a>\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span> \n<a rel=\"external\" href=\"https://bugs.webkit.org/show_bug.cgi?id=36724\" class=\"external\" title=\"RESOLVED FIXED - Add support for <ol reversed>\">\nWebKit bug 36724</a></td> </tr> </tbody> </table> </div> <div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> <tr> <td><code>reversed</code> attribute</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span> <a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=601912\" class=\"external\" title=\"\">\nbug 601912</a>\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table> </div>","examples":["<div id=\"section_6\"><span id=\"Simple_example\"></span><h4 class=\"editable\">Simple example</h4> \n <pre name=\"code\" class=\"xml\"><ol>\n <li>first item</li>\n <li>second item</li>\n <li>third item</li>\n</ol></pre>\n <p>Above HTML will output:</p> <ol> <li>first item</li> <li>second item</li> <li>third item</li> </ol> </div><div id=\"section_7\"><span id=\"Using_the_start_attribute\"></span><h4 class=\"editable\">Using the <span><code>start</code></span> attribute</h4> \n <pre name=\"code\" class=\"xml\"><ol start=\"7\">\n <li>first item</li>\n <li>second item</li>\n <li>third item</li>\n</ol></pre>\n <p>Above HTML will output:</p> <ol start=\"7\"> <li>first item</li> <li>second item</li> <li>third item</li> </ol> </div><div id=\"section_8\"><span id=\"Nesting_lists\"></span><h4 class=\"editable\">Nesting lists</h4> \n <pre name=\"code\" class=\"xml\"><ol>\n <li>first item</li>\n <li>second item <!-- Look, the closing </li> tag is not placed here! -->\n <ol>\n <li>second item first subitem</li>\n <li>second item second subitem</li>\n <li>second item third subitem</li>\n </ol>\n </li> <!-- Here is the closing </li> tag -->\n <li>third item</li>\n</ol></pre>\n <p>Above HTML will output:</p> <ol> <li>first item</li> <li>second item <ol> <li>second item first subitem</li> <li>second item second subitem</li> <li>second item third subitem</li> </ol> </li> <li>third item</li> </ol> </div><div id=\"section_9\"><span id=\"Nested_.3Col.3E_and_.3Cul.3E\"></span><h4 class=\"editable\">Nested <ol> and <ul></h4> \n <pre name=\"code\" class=\"xml\"><ol>\n <li>first item</li>\n <li>second item <!-- Look, the closing </li> tag is not placed here! -->\n <ul>\n <li>second item first subitem</li>\n <li>second item second subitem</li>\n <li>second item third subitem</li>\n </ul>\n </li> <!-- Here is the closing </li> tag -->\n <li>third item</li>\n</ol></pre>\n <p>Above HTML will output:</p> <ol> <li>first item</li> <li>second item <ul> <li>second item first subitem</li> <li>second item second subitem</li> <li>second item third subitem</li> </ul> </li> <li>third item</li> </ol> </div>"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/ol","seeAlso":"<li>Other list-related HTML Elements: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/li\"><li></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu\"><menu></a></code>\n and the obsolete <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/dir\"><dir></a></code>\n;</li> <li>CSS properties that may be specially useful to style the <span><ol></span> element: <ul> <li>the <a title=\"en/CSS/list-style\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/list-style\">list-style</a> property, useful to choose the way the ordinal is displayed,</li> <li><a title=\"en/CSS_Counters\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS_Counters\">CSS counters</a>, useful to handle complex nested lists,</li> <li>the <a title=\"en/CSS/line-height\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/line-height\">line-height</a> property, useful to simulate the deprecated \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol#attr-compact\">compact</a></code>\n attribute,</li> <li>the <a title=\"en/CSS/margin\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/margin\">margin</a> property, useful to control the indent of the list.</li> </ul> </li>","summary":"<p>The HTML <em>ordered list</em> element (<code><ol></code>) represents an ordered list of items. Typically, ordered-list items are displayed with a preceding numbering, which can be of any form, like numerals, letters or Romans numerals or even simple bullets. This numbered style is not defined in the HTML description of the page, but in its associated CSS, using the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/list-style-type\">list-style-type</a></code>\n property.</p>\n<p>There is no limitation to the depth and imbrication of lists defined with the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n elements.</p>\n<div class=\"note\"><strong>Usage note: </strong> The <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n both represent a list of items. They differ in the way that, with the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n element, the order is meaningful. As a rule of thumb to determine which one to use, try changing the order of the list items; if the meaning is changed, the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n element should be used, else the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n is adequate.</div>","members":[{"obsolete":false,"url":"","name":"compact","help":"This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn't work in all browsers. <div class=\"note\"><strong>Usage note: </strong>Do not use this attribute, as it has been deprecated: the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n element should be styled using <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a>. To give a similar effect than the <span>compact</span> attribute, the <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a> property <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/line-height\">line-height</a></code>\n can be used with a value of <span>80%</span>.</div>"},{"obsolete":false,"url":"","name":"reversed","help":"This Boolean attribute specifies that the items of the item are specified in the reverse order, i.e. that the least important one is listed first. Browsers, by default, numbered the items in the reverse order too."},{"obsolete":false,"url":"","name":"start","help":"This integer attribute specifies the start value for numbering the individual list items. Although the ordering type of list elements might be Roman numerals, such as XXXI, or letters, the value of start is always represented as a number. To start numbering elements from the letter \"C\", use <code><ol start=\"3\"></code>. <div class=\"note\"><strong>Note</strong>: that attribute was deprecated in HTML4, but reintroduced in HTML5.</div>"},{"obsolete":false,"url":"","name":"type","help":"Indicates the numbering type: <ul> <li><span><code>'a'</code></span> indicates lowercase letters,</li> <li><span id=\"1284454877507S\"> </span><span><code>'<span id=\"1284454878023E\"> </span>A'</code></span> indicates uppercase letters,</li> <li><span><code>'i'</code></span> indicates lowercase Roman numerals,</li> <li><span><code>'I'</code></span> indicates uppercase Roman numerals,</li> <li>and <span><code>'1'</code></span> indicates numbers.</li> </ul> <p>The type set is used for the entire list unless a different \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/li#attr-type\">type</a></code>\n attribute is used within an enclosed <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/li\"><li></a></code>\n element.</p> <div class=\"note\"><strong>Usage note: </strong>Do not use this attribute, as it has been deprecated: use the <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a> <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/list-style-type\">list-style-type</a></code>\n property instead.</div>"}]},"IDBRequest":{"title":"IDBRequest","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>12 \n<span title=\"prefix\">-webkit</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["<p>In the following code snippet, we open a database asynchronously and make a request. Event handlers are registered for responding to various situations.</p>\n\n <pre name=\"code\" class=\"js\">var request = window.indexedDB.open('Database Name');\nrequest.onsuccess = function(event) {\n var db = this.result;\n var transaction = db.transaction([], IDBTransaction.READ_ONLY);\n var curRequest = transaction.objectStore('ObjectStore Name').openCursor();\n curRequest.onsuccess = ...;\n };\nrequest.onerror = function(event) {\n ...;\n };</pre>"],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBRequest","summary":"<p>The <code>IDBRequest</code> interface of the IndexedDB API provides access to results of asynchronous requests to databases and database objects using event handler attributes. Each reading and writing operation on a database is done using a request.</p>\n<p>The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the <code>IDBRequest</code> instance.</p>\n<p>Inherits from: <a title=\"en/DOM/EventTarget\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/EventTarget\">EventTarget</a></p>","members":[{"url":"","name":"DONE","help":"The request has completed or an error has occurred. Initially false","obsolete":false},{"url":"","name":"LOADING","help":"The request has been started, but its result is not yet available.","obsolete":false},{"name":"onerror","help":"","obsolete":false},{"name":"onsuccess","help":"","obsolete":false}]},"SVGFEComponentTransferElement":{"title":"feComponentTransfer","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFuncA\"><feFuncA></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFuncB\"><feFuncB></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFuncG\"><feFuncG></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFuncR\"><feFuncR></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The color of each pixel is modified by changing each channel (R, G, B, and A) to the result of what the children <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFuncR\"><feFuncR></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFuncB\"><feFuncB></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFuncG\"><feFuncG></a></code>\n, and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFuncA\"><feFuncA></a></code>\n return.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer"},"HTMLQuoteElement":{"title":"HTMLQuoteElement","summary":"DOM quote objects expose the <a class=\" external\" title=\"http://www.w3.org/TR/html5/grouping-content.html#htmlquoteelement\" rel=\"external\" href=\"http://www.w3.org/TR/html5/grouping-content.html#htmlquoteelement\" target=\"_blank\">HTMLQuoteElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-70319763\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-70319763\" target=\"_blank\"><code>HTMLQuoteElement</code></a>) interface, which provides special properties (beyond the regular <a href=\"https://developer.mozilla.org/en/DOM/element\" rel=\"internal\">element</a> object interface they also have available to them by inheritance) for manipulating quote elements.","members":[{"name":"cite","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/blockquote#attr-cite\">cite</a></code>\n HTML attribute, containing a URL for the source of the quotation.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLQuoteElement"},"HTMLOptionElement":{"title":"HTMLOptionElement","summary":"<p>DOM <em>option</em> elements elements share all of the properties and methods of other HTML elements described in the <a title=\"en/DOM/element\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> section. They also have the specialized interface <a title=\"http://dev.w3.org/html5/spec/the-button-element.html#htmloptionelement\" class=\" external\" rel=\"external\" href=\"http://dev.w3.org/html5/spec/the-button-element.html#htmloptionelement\" target=\"_blank\">HTMLOptionElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\"external\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-70901257\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-70901257\" target=\"_blank\">HTMLOptionElement</a>).</p>\n<p>No methods are defined on this interface.</p>","members":[{"name":"defaultSelected","help":"Reflects the value of the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/option#attr-selected\">selected</a></code>\n HTML attribute. which indicates whether the option is selected by default.","obsolete":false},{"name":"disabled","help":"Reflects the value of the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/option#attr-disabled\">disabled</a></code>\n HTML attribute, which indicates that the option is unavailable to be selected. An option can also be disabled if it is a child of an <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/optgroup\"><optgroup></a></code>\n element that is disabled.","obsolete":false},{"name":"form","help":"If the option is a descendent of a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/select\"><select></a></code>\n element, then this property has the same value as the <code>form</code> property of the corresponding {{DomXref(\"HTMLSelectElement\") object; otherwise, it is null.","obsolete":false},{"name":"index","help":"The position of the option within the list of options it belongs to, in tree-order. If the option is not part of a list of options, the value is 0.","obsolete":false},{"name":"label","help":"Reflects the value of the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/option#attr-label\">label</a></code>\n HTML attribute, which provides a label for the option. If this attribute isn't specifically set, reading it returns the element's text content.","obsolete":false},{"name":"selected","help":"Indicates whether the option is selected.","obsolete":false},{"name":"text","help":"Contains the text content of the element.","obsolete":false},{"name":"value","help":"Reflects the value of the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/option#attr-value\">value</a></code>\n HTML attribute, if it exists; otherwise reflects value of the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/textContent\" class=\"new\">textContent</a></code>\n IDL attribute.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLOptionElement"},"SVGFETileElement":{"title":"feTile","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"An input image is tiled and the result used to fill a target. The effect is similar to the one of a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/pattern\"><pattern></a></code>\n.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feTile"},"SVGPathSegList":{"title":"User talk:Jeff Schiller","members":[],"srcUrl":"https://developer.mozilla.org/User_talk:Jeff_Schiller","skipped":true,"cause":"Suspect title"},"XSLTProcessor":{"title":"XSLTProcessor","summary":"<p>XSLTProcesor is an object providing an interface to XSLT engine in Mozilla. It is available to unprivileged JavaScript.</p>\n<ul> <li><a title=\"en/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations\">Using the Mozilla JavaScript interface to XSL Transformations</a></li> <li><a title=\"en/The_XSLT//JavaScript_Interface_in_Gecko\" rel=\"internal\" href=\"https://developer.mozilla.org/en/The_XSLT%2F%2FJavaScript_Interface_in_Gecko\">The XSLT/JavaScript Interface in Gecko</a></li>\n</ul>","members":[],"srcUrl":"https://developer.mozilla.org/en/XSLTProcessor"},"WebKitPoint":{"title":"Point","summary":"The <code>Point</code> class offers methods for performing common geometry operations on two dimensional points.","constructor":"<p>Creates a new <code>Point</code> object.</p>\n<pre>let p = new Point(x, y);\n</pre>\n<p>The new point, <code>p</code>, has the specified X and Y coordinates.</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/JavaScript_code_modules/Geometry.jsm/Point"},"NamedNodeMap":{"title":"NamedNodeMap","summary":"A collection of nodes returned by <a title=\"En/DOM/Element.attributes\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node.attributes\"><code>Element.attributes</code></a> (also potentially for <code><a title=\"En/DOM/DocumentType.entities\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DocumentType.entities\" class=\"new internal\">DocumentType.entities</a></code>, <code><a title=\"En/DOM/DocumentType.notations\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DocumentType.notations\" class=\"new internal\">DocumentType.notations</a></code>). <code>NamedNodeMap</code>s are not in any particular order (unlike <code><a title=\"En/DOM/NodeList\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/NodeList\">NodeList</a></code>), although they may be accessed by an index as in an array (they may also be accessed with the <code>item</code>() method). A NamedNodeMap object are live and will thus be auto-updated if changes are made to their contents internally or elsewhere.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/NamedNodeMap.length","name":"length","help":""}],"srcUrl":"https://developer.mozilla.org/en/DOM/NamedNodeMap","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...#ID-1780488922"},"DOMParser":{"title":"DOMParser","summary":"This page redirects to a page that no longer exists <a rel=\"internal\" class=\"new\" href=\"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/DOMParser\">en/Document_Object_Model_(DOM)/DOMParser</a>.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOMParser"},"HTMLObjectElement":{"title":"HTMLObjectElement","summary":"DOM <code>Object</code> objects expose the <a title=\"http://dev.w3.org/html5/spec/the-iframe-element.html#htmlobjectelement\" class=\" external\" rel=\"external nofollow\" href=\"http://dev.w3.org/html5/spec/the-iframe-element.html#htmlobjectelement\" target=\"_blank\">HTMLObjectElement</a> (or <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-9893177\" title=\"http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-9893177\" target=\"_blank\">HTMLObjectElement</a>) interface, which provides special properties and methods (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of Object element, representing external resources.","members":[{"name":"checkValidity","help":"Always returns true, because <code>object</code> objects are never candidates for constraint validation.","obsolete":false},{"name":"setCustomValidity","help":"Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.","obsolete":false},{"name":"align","help":"Alignment of the object relative to its context. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"archive","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object#attr-archive\">archive</a></code>\n HTML attribute, containing a list of archives for resources for this object. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"border","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object#attr-border\">border</a></code>\n HTML attribute, specifying the width of a border around the object. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"code","help":"The name of an applet class file, containing either the applet's subclass, or the path to get to the class, including the class file itself. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"codeBase","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object#attr-codebase\">codebase</a></code>\n HTML attribute, specifying the base path to use to resolve relative URIs. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"codeType","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object#attr-codetype\">codetype</a></code>\n HTML attribute, specifying the content type of the data. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"contentDocument","help":"The active document of the object element's nested browsing context, if any; otherwise null.","obsolete":false},{"name":"contentWindow","help":"The window proxy of the object element's nested browsing context, if any; otherwise null.","obsolete":false},{"name":"data","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object#attr-data\">data</a></code>\n HTML attribute, specifying the address of a resource's data.","obsolete":false},{"name":"declare","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object#attr-declare\">declare</a></code>\n HTML attribute, indicating that this is a declaration, not an instantiation, of the object. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"form","help":"The object element's form owner, or null if there isn't one.","obsolete":false},{"name":"height","help":"Reflects the {{htmlattrxref(\"height\", \"object)}} HTML attribute, specifying the displayed height of the resource in CSS pixels.","obsolete":false},{"name":"hspace","help":"Horizontal space in pixels around the control. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"name","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object#attr-name\">name</a></code>\n HTML attribute, specifying the name of the object (\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span>, or of a browsing context (\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":false},{"name":"standby","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object#attr-standby\">standby</a></code>\n HTML attribute, specifying a message to display while the object loads. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"tabIndex","help":"he position of the element in the tabbing navigation order for the current document. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"type","help":"Reflects the {{htmlattrxref(\"type\", \"object)}} HTML attribute, specifying the MIME type of the resource.","obsolete":false},{"name":"useMap","help":"Reflects the {{htmlattrxref(\"usemap\", \"object)}} HTML attribute, specifying a {{HTMLElement(\"map\")}} element to use.","obsolete":false},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.","obsolete":false},{"name":"validity","help":"The validity states that this element is in.","obsolete":false},{"name":"vspace","help":"Horizontal space in pixels around the control. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>.","obsolete":true},{"name":"width","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object#attr-width\">width</a></code>\n HTML attribute, specifying the displayed width of the resource in CSS pixels.","obsolete":false},{"name":"willValidate","help":"Indicates whether the element is a candidate for constraint validation. Always false for <code>object</code> objects.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLObjectElement"},"HTMLPreElement":{"title":"pre","examples":["<pre name=\"code\" class=\"xml\"><!-- Some example CSS code -->\n<pre>\nbody {\n color:red;\n}\n</pre></pre>\n \n<div id=\"section_4\"><span id=\"Result\"></span><h4 class=\"editable\">Result</h4>\n<p> </p>\n<pre>body {\n color:red;\n}\n</pre>\n</div>"],"summary":"This element represents preformatted text. Text within this element is typically displayed in a non-proportional font exactly as it is laid out in the file. Whitespaces inside this element are displayed as typed.","members":[],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/pre"},"TouchList":{"title":"TouchList","examples":["See the <a title=\"en/DOM/Touch events#Example\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Touch_events#Example\">example on the main Touch events article</a>."],"srcUrl":"https://developer.mozilla.org/en/DOM/TouchList","seeAlso":"<li><a title=\"en/DOM/Touch events\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Touch_events\">Touch events</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TouchEvent\">TouchEvent</a></code>\n</li>","summary":"A <code>TouchList</code> represents a list of all of the points of contact with a touch surface; for example, if the user has three fingers on the screen (or trackpad), the corresponding <code>TouchList</code> would have one <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n object for each finger, for a total of three entries.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/TouchList.identifiedTouch","name":"identifiedTouch","help":"Returns the first <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n item in the list whose identifier matches a specified value."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/TouchList.item","name":"item","help":"Returns the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n object at the specified index in the list. You can also simply reference the <code>TouchList</code> using array syntax (<code>touchList[x]</code>)."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/TouchList.length","name":"length","help":"The number of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n objects in the <code>TouchList</code>. <strong>Read only.</strong>"}]},"History":{"title":"window.history","examples":["history.back(); // equivalent to clicking back button\nhistory.go(-1); // equivalent to history.back();\n"],"srcUrl":"https://developer.mozilla.org/en/DOM/window.history","specification":"HTML5 History interface","summary":"Returns a reference to the <code>History</code> object, which provides an interface for manipulating the browser <em>session history</em> (pages visited in the tab or frame that the current page is loaded in).","members":[{"name":"back","help":"<p>Goes to the previous page in session history, the same action as when the user clicks the browser's Back button. Equivalent to <code>history.go(-1)</code>.</p> <div class=\"note\"><strong>Note:</strong> Calling this method to go back beyond the first page in the session history has no effect and doesn't raise an exception.</div>","obsolete":false},{"name":"forward","help":"<p>Goes to the next page in session history, the same action as when the user clicks the browser's Forward button; this is equivalent to <code>history.go(1)</code>.</p> <div class=\"note\"><strong>Note:</strong> Calling this method to go back beyond the last page in the session history has no effect and doesn't raise an exception.</div>","obsolete":false},{"name":"go","help":"Loads a page from the session history, identified by its relative location to the current page, for example <code>-1</code> for the previous page or <code>1</code> for the next page. When <code><em>integerDelta</em></code> is out of bounds (e.g. -1 when there are no previously visited pages in the session history), the method doesn't do anything and doesn't raise an exception. Calling <code>go()</code> without parameters or with a non-integer argument has no effect (unlike Internet Explorer, <a class=\"external\" title=\"http://msdn.microsoft.com/en-us/library/ms536443(VS.85).aspx\" rel=\"external\" href=\"http://msdn.microsoft.com/en-us/library/ms536443(VS.85).aspx\" target=\"_blank\">which supports string URLs as the argument</a>).","obsolete":false},{"name":"pushState","help":"<p>Pushes the given data onto the session history stack with the specified title and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized. Note that Firefox currently ignores the title parameter; for more information, see <a title=\"en/DOM/Manipulating the browser history\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history\">manipulating the browser history</a>.</p> <div class=\"note\"><strong>Note:</strong> In Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n, the object is serialized using <a title=\"en/DOM/The structured clone algorithm\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/The_structured_clone_algorithm\">the structured clone algorithm</a>. This allows a wider variety of objects to be safely passed.</div>","obsolete":false},{"name":"replaceState","help":"<p>Updates the most recent entry on the history stack to have the specified data, title, and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized. Note that Firefox currently ignores the title parameter; for more information, see <a title=\"en/DOM/Manipulating the browser history\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history\">manipulating the browser history</a>.</p> <div class=\"note\"><strong>Note:</strong> In Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n, the object is serialized using <a title=\"en/DOM/The structured clone algorithm\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/The_structured_clone_algorithm\">the structured clone algorithm</a>. This allows a wider variety of objects to be safely passed.</div>","obsolete":false},{"name":"length","help":"Read-only. Returns the number of elements in the session history, including the currently loaded page. For example, for a page loaded in a new tab this property returns <code>1</code>.","obsolete":false},{"name":"current","help":"Returns the URL of the active item of the session history. This property is not available to web content and is not supported by other browsers. Use <code><a title=\"en/DOM/window.location\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window.location\">location.href</a></code> instead.","obsolete":false},{"name":"next","help":"Returns the URL of the next item in the session history. This property is not available to web content and is not supported by other browsers.","obsolete":false},{"name":"previous","help":"Returns the URL of the previous item in the session history. This property is not available to web content and is not supported by other browsers.","obsolete":false},{"name":"state","help":"Returns the state at the top of the history stack. This is a way to look at the state without having to wait for a <code>popstate</code> event. <strong>Read only.</strong>","obsolete":false},{"name":"back","help":"<p>Goes to the previous page in session history, the same action as when the user clicks the browser's Back button. Equivalent to <code>history.go(-1)</code>.</p> <div class=\"note\"><strong>Note:</strong> Calling this method to go back beyond the first page in the session history has no effect and doesn't raise an exception.</div>","obsolete":false},{"name":"forward","help":"<p>Goes to the next page in session history, the same action as when the user clicks the browser's Forward button; this is equivalent to <code>history.go(1)</code>.</p> <div class=\"note\"><strong>Note:</strong> Calling this method to go back beyond the last page in the session history has no effect and doesn't raise an exception.</div>","obsolete":false},{"name":"go","help":"Loads a page from the session history, identified by its relative location to the current page, for example <code>-1</code> for the previous page or <code>1</code> for the next page. When <code><em>integerDelta</em></code> is out of bounds (e.g. -1 when there are no previously visited pages in the session history), the method doesn't do anything and doesn't raise an exception. Calling <code>go()</code> without parameters or with a non-integer argument has no effect (unlike Internet Explorer, <a class=\"external\" title=\"http://msdn.microsoft.com/en-us/library/ms536443(VS.85).aspx\" rel=\"external\" href=\"http://msdn.microsoft.com/en-us/library/ms536443(VS.85).aspx\" target=\"_blank\">which supports string URLs as the argument</a>).","obsolete":false},{"name":"pushState","help":"<p>Pushes the given data onto the session history stack with the specified title and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized. Note that Firefox currently ignores the title parameter; for more information, see <a title=\"en/DOM/Manipulating the browser history\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history\">manipulating the browser history</a>.</p> <div class=\"note\"><strong>Note:</strong> In Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n, the object is serialized using <a title=\"en/DOM/The structured clone algorithm\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/The_structured_clone_algorithm\">the structured clone algorithm</a>. This allows a wider variety of objects to be safely passed.</div>","obsolete":false},{"name":"replaceState","help":"<p>Updates the most recent entry on the history stack to have the specified data, title, and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized. Note that Firefox currently ignores the title parameter; for more information, see <a title=\"en/DOM/Manipulating the browser history\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history\">manipulating the browser history</a>.</p> <div class=\"note\"><strong>Note:</strong> In Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n, the object is serialized using <a title=\"en/DOM/The structured clone algorithm\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/The_structured_clone_algorithm\">the structured clone algorithm</a>. This allows a wider variety of objects to be safely passed.</div>","obsolete":false},{"name":"length","help":"Read-only. Returns the number of elements in the session history, including the currently loaded page. For example, for a page loaded in a new tab this property returns <code>1</code>.","obsolete":false},{"name":"current","help":"Returns the URL of the active item of the session history. This property is not available to web content and is not supported by other browsers. Use <code><a title=\"en/DOM/window.location\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window.location\">location.href</a></code> instead.","obsolete":false},{"name":"next","help":"Returns the URL of the next item in the session history. This property is not available to web content and is not supported by other browsers.","obsolete":false},{"name":"previous","help":"Returns the URL of the previous item in the session history. This property is not available to web content and is not supported by other browsers.","obsolete":false},{"name":"state","help":"Returns the state at the top of the history stack. This is a way to look at the state without having to wait for a <code>popstate</code> event. <strong>Read only.</strong>","obsolete":false},{"name":"back","help":"<p>Goes to the previous page in session history, the same action as when the user clicks the browser's Back button. Equivalent to <code>history.go(-1)</code>.</p> <div class=\"note\"><strong>Note:</strong> Calling this method to go back beyond the first page in the session history has no effect and doesn't raise an exception.</div>","obsolete":false},{"name":"forward","help":"<p>Goes to the next page in session history, the same action as when the user clicks the browser's Forward button; this is equivalent to <code>history.go(1)</code>.</p> <div class=\"note\"><strong>Note:</strong> Calling this method to go back beyond the last page in the session history has no effect and doesn't raise an exception.</div>","obsolete":false},{"name":"go","help":"Loads a page from the session history, identified by its relative location to the current page, for example <code>-1</code> for the previous page or <code>1</code> for the next page. When <code><em>integerDelta</em></code> is out of bounds (e.g. -1 when there are no previously visited pages in the session history), the method doesn't do anything and doesn't raise an exception. Calling <code>go()</code> without parameters or with a non-integer argument has no effect (unlike Internet Explorer, <a class=\"external\" title=\"http://msdn.microsoft.com/en-us/library/ms536443(VS.85).aspx\" rel=\"external\" href=\"http://msdn.microsoft.com/en-us/library/ms536443(VS.85).aspx\" target=\"_blank\">which supports string URLs as the argument</a>).","obsolete":false},{"name":"pushState","help":"<p>Pushes the given data onto the session history stack with the specified title and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized. Note that Firefox currently ignores the title parameter; for more information, see <a title=\"en/DOM/Manipulating the browser history\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history\">manipulating the browser history</a>.</p> <div class=\"note\"><strong>Note:</strong> In Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n, the object is serialized using <a title=\"en/DOM/The structured clone algorithm\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/The_structured_clone_algorithm\">the structured clone algorithm</a>. This allows a wider variety of objects to be safely passed.</div>","obsolete":false},{"name":"replaceState","help":"<p>Updates the most recent entry on the history stack to have the specified data, title, and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized. Note that Firefox currently ignores the title parameter; for more information, see <a title=\"en/DOM/Manipulating the browser history\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history\">manipulating the browser history</a>.</p> <div class=\"note\"><strong>Note:</strong> In Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n, the object is serialized using <a title=\"en/DOM/The structured clone algorithm\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/The_structured_clone_algorithm\">the structured clone algorithm</a>. This allows a wider variety of objects to be safely passed.</div>","obsolete":false},{"name":"length","help":"Read-only. Returns the number of elements in the session history, including the currently loaded page. For example, for a page loaded in a new tab this property returns <code>1</code>.","obsolete":false},{"name":"current","help":"Returns the URL of the active item of the session history. This property is not available to web content and is not supported by other browsers. Use <code><a title=\"en/DOM/window.location\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window.location\">location.href</a></code> instead.","obsolete":false},{"name":"next","help":"Returns the URL of the next item in the session history. This property is not available to web content and is not supported by other browsers.","obsolete":false},{"name":"previous","help":"Returns the URL of the previous item in the session history. This property is not available to web content and is not supported by other browsers.","obsolete":false},{"name":"state","help":"Returns the state at the top of the history stack. This is a way to look at the state without having to wait for a <code>popstate</code> event. <strong>Read only.</strong>","obsolete":false},{"name":"back","help":"<p>Goes to the previous page in session history, the same action as when the user clicks the browser's Back button. Equivalent to <code>history.go(-1)</code>.</p> <div class=\"note\"><strong>Note:</strong> Calling this method to go back beyond the first page in the session history has no effect and doesn't raise an exception.</div>","obsolete":false},{"name":"forward","help":"<p>Goes to the next page in session history, the same action as when the user clicks the browser's Forward button; this is equivalent to <code>history.go(1)</code>.</p> <div class=\"note\"><strong>Note:</strong> Calling this method to go back beyond the last page in the session history has no effect and doesn't raise an exception.</div>","obsolete":false},{"name":"go","help":"Loads a page from the session history, identified by its relative location to the current page, for example <code>-1</code> for the previous page or <code>1</code> for the next page. When <code><em>integerDelta</em></code> is out of bounds (e.g. -1 when there are no previously visited pages in the session history), the method doesn't do anything and doesn't raise an exception. Calling <code>go()</code> without parameters or with a non-integer argument has no effect (unlike Internet Explorer, <a class=\"external\" title=\"http://msdn.microsoft.com/en-us/library/ms536443(VS.85).aspx\" rel=\"external\" href=\"http://msdn.microsoft.com/en-us/library/ms536443(VS.85).aspx\" target=\"_blank\">which supports string URLs as the argument</a>).","obsolete":false},{"name":"pushState","help":"<p>Pushes the given data onto the session history stack with the specified title and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized. Note that Firefox currently ignores the title parameter; for more information, see <a title=\"en/DOM/Manipulating the browser history\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history\">manipulating the browser history</a>.</p> <div class=\"note\"><strong>Note:</strong> In Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n, the object is serialized using <a title=\"en/DOM/The structured clone algorithm\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/The_structured_clone_algorithm\">the structured clone algorithm</a>. This allows a wider variety of objects to be safely passed.</div>","obsolete":false},{"name":"replaceState","help":"<p>Updates the most recent entry on the history stack to have the specified data, title, and, if provided, URL. The data is treated as opaque by the DOM; you may specify any JavaScript object that can be serialized. Note that Firefox currently ignores the title parameter; for more information, see <a title=\"en/DOM/Manipulating the browser history\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history\">manipulating the browser history</a>.</p> <div class=\"note\"><strong>Note:</strong> In Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n, the object is serialized using <a title=\"en/DOM/The structured clone algorithm\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/The_structured_clone_algorithm\">the structured clone algorithm</a>. This allows a wider variety of objects to be safely passed.</div>","obsolete":false},{"name":"length","help":"Read-only. Returns the number of elements in the session history, including the currently loaded page. For example, for a page loaded in a new tab this property returns <code>1</code>.","obsolete":false},{"name":"current","help":"Returns the URL of the active item of the session history. This property is not available to web content and is not supported by other browsers. Use <code><a title=\"en/DOM/window.location\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window.location\">location.href</a></code> instead.","obsolete":false},{"name":"next","help":"Returns the URL of the next item in the session history. This property is not available to web content and is not supported by other browsers.","obsolete":false},{"name":"previous","help":"Returns the URL of the previous item in the session history. This property is not available to web content and is not supported by other browsers.","obsolete":false},{"name":"state","help":"Returns the state at the top of the history stack. This is a way to look at the state without having to wait for a <code>popstate</code> event. <strong>Read only.</strong>","obsolete":false}]},"SVGPathSegCurvetoQuadraticSmoothRel":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"SVGFEMorphologyElement":{"title":"feMorphology","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"This filter is used to erode or dilate the input image. It's usefulness lies especially in fattening or thinning effects.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in","name":"in","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/radius","name":"radius","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/operator","name":"operator","help":""}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feMorphology"},"HTMLSpanElement":{"title":"span","examples":["<pre name=\"code\" class=\"xml\"><p><span>Some text</span></p></pre>\n \n<div id=\"section_6\"><span id=\"Result\"></span><h4 class=\"editable\">Result</h4>\n<p><span>Some text</span></p></div>"],"summary":"This HTML element is a generic inline container for phrasing content, which does not inherently represent anything. It can be used to group elements for styling purposes (using the <strong>class</strong> or <strong>id</strong> attributes), or because they share attribute values, such as <strong>lang</strong>. It should be used only when no other semantic element is appropriate. <span> is very much like a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/div\"><div></a></code>\n element, but <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/div\"><div></a></code>\n is a block-level element whereas a <span> is an inline element.","members":[],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/span"},"SVGAnimateElement":{"title":"SVGAnimateElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimateElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimateElement"},"MetadataCallback":{"title":"EntrySync","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/EntrySync","skipped":true,"cause":"Suspect title"},"EntriesCallback":{"title":"DirectoryReaderSync","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/DirectoryReaderSync","skipped":true,"cause":"Suspect title"},"UIEvent":{"title":"UIEvent","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/UIEvent","specification":"DOM 3 Events: UIEvent","seeAlso":"Event","summary":"<div><div>\n\n<a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/events/nsIDOMUIEvent.idl\"><code>dom/interfaces/events/nsIDOMUIEvent.idl</code></a><span><a rel=\"internal\" href=\"https://developer.mozilla.org/en/Interfaces/About_Scriptable_Interfaces\" title=\"en/Interfaces/About_Scriptable_Interfaces\">Scriptable</a></span></div><span>A basic event interface for all user interface events</span><div><div>1.0</div><div>11.0</div><div title=\"Introduced in Gecko 1.0 \n\"></div><div title=\"Last changed in Gecko 9.0 \n\"></div></div>\n<div>Inherits from: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMEvent\">nsIDOMEvent</a></code>\n<span>Last changed in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n</span></div></div>\n<p></p>\n<p>The DOM <code>UIEvent</code> represents simple user interface events.</p>","members":[{"name":"initUIEvent","help":"<p>Initializes the UIEvent object.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>typeArg</code></dt> <dd>The type of UI event.</dd> <dt><code>canBubbleArg</code></dt> <dd>Whether or not the event can bubble.</dd> <dt><code>cancelableArg</code></dt> <dd>Whether or not the event can be canceled.</dd> <dt><code>viewArg</code></dt> <dd>Specifies the <code>view</code> attribute value. This may be <code>null</code>.</dd> <dt><code>detailArg</code></dt> <dd>Specifies the detail attribute value.</dd>\n</dl>\n</div>","idl":"<pre><code>void initUIEvent(\n in DOMString typeArg,\n in boolean canBubbleArg,\n in boolean cancelableArg,\n in views::AbstractView viewArg,\n in long detailArg\n);</code>\n</pre>","obsolete":false},{"name":"detail","help":"Detail about the event, depending on the type of event. <strong>Read only.</strong>","obsolete":false},{"name":"view","help":"A view which generated the event. <strong>Read only.</strong>","obsolete":false}]},"SVGStopElement":{"title":"SVGStopElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGStopElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/stop\"><stop></a></code>\n element.","members":[{"name":"offset","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/offset\" class=\"new\">offset</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/stop\"><stop></a></code>\n element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGStopElement"},"SVGGradientElement":{"title":"SVGGradientElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGGradient</code> interface is a base interface used by <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGLinearGradientElement\">SVGLinearGradientElement</a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGRadialGradientElement\">SVGRadialGradientElement</a></code>\n.","members":[{"name":"SVG_SPREADMETHOD_UNKNOWN","help":"The type is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.","obsolete":false},{"name":"SVG_SPREADMETHOD_PAD","help":"Corresponds to value <em>pad</em>.","obsolete":false},{"name":"SVG_SPREADMETHOD_REFLECT","help":"Corresponds to value <em>reflect</em>.","obsolete":false},{"name":"SVG_SPREADMETHOD_REPEAT","help":"Corresponds to value <em>repeat</em>.","obsolete":false},{"name":"gradientUnits","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/gradientUnits\" class=\"new\">gradientUnits</a></code> on the given element. Takes one of the constants defined in <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGUnitTypes\" class=\"new\">SVGUnitTypes</a></code>\n.","obsolete":false},{"name":"gradientTransform","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/gradientTransform\" class=\"new\">gradientTransform</a></code> on the given element.","obsolete":false},{"name":"spreadMethod","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/spreadMethod\" class=\"new\">spreadMethod</a></code> on the given element. One of the Spread Method Types defined on this interface.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGGradientElement"},"SVGMatrix":{"title":"SVGMatrix","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"<p>Many of SVG's graphics operations utilize 2x3 matrices of the form:</p>\n<pre>[a c e]\n[b d f]</pre>\n<p>which, when expanded into a 3x3 matrix for the purposes of matrix arithmetic, become:</p>\n<pre>[a c e]\n[b d f]\n[0 0 1]\n</pre>\n<p>An <code>SVGMatrix</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>","members":[{"name":"multiply","help":"Performs matrix multiplication. This matrix is post-multiplied by another matrix, returning the resulting new matrix.","obsolete":false},{"name":"inverse","help":"<p>Return the inverse matrix</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>SVG_MATRIX_NOT_INVERTABLE</code> is raised if the matrix is not invertable.</li> </ul>","obsolete":false},{"name":"translate","help":"Post-multiplies a translation transformation on the current matrix and returns the resulting matrix.","obsolete":false},{"name":"scale","help":"Post-multiplies a uniform scale transformation on the current matrix and returns the resulting matrix.","obsolete":false},{"name":"scaleNonUniform","help":"Post-multiplies a non-uniform scale transformation on the current matrix and returns the resulting matrix.","obsolete":false},{"name":"rotate","help":"Post-multiplies a rotation transformation on the current matrix and returns the resulting matrix.","obsolete":false},{"name":"rotateFromVector","help":"<p>Post-multiplies a rotation transformation on the current matrix and returns the resulting matrix. The rotation angle is determined by taking (+/-) atan(y/x). The direction of the vector (x, y) determines whether the positive or negative angle value is used.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>SVG_INVALID_VALUE_ERR</code> is raised if one of the parameters has an invalid value.</li> </ul>","obsolete":false},{"name":"flipX","help":"Post-multiplies the transformation [-1 0 0 1 0 0] and returns the resulting matrix.","obsolete":false},{"name":"flipY","help":"Post-multiplies the transformation [1 0 0 -1 0 0] and returns the resulting matrix.","obsolete":false},{"name":"skewX","help":"Post-multiplies a skewX transformation on the current matrix and returns the resulting matrix.","obsolete":false},{"name":"skewY","help":"Post-multiplies a skewY transformation on the current matrix and returns the resulting matrix.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGMatrix"},"IDBTransaction":{"title":"IDBTransaction","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>12\n<span title=\"prefix\">-webkit</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["<p>In the following code snippet, we open a transaction and add data to the object store. Because the specification is still evolving, Chrome uses prefixes in the methods. Chrome uses the <code>webkit</code> prefix. <span>For example, </span><span>instead of just </span><span><code>IDBTransaction.READ_WRITE</code>, </span><span>use <code>webkitIDBTransaction.READ_WRITE</code>. </span><span>Firefox does not use prefixes, except in the opening method (<code>mozIndexedDB</code>)</span><span>. </span><span>Event handlers are registered for responding to various situations.</span></p>\n\n <pre name=\"code\" class=\"js\">// Take care of the browser prefixes.\nif (window.indexedDb) {\n} else if (window.webkitIndexedDB) {\n window.indexedDB = window.webkitIndexedDB;\n window.IDBTransaction = window.webkitIDBTransaction;\n} else if (window.mozIndexedDB) {\n window.indexedDB = window.mozIndexedDB;\n} else {\n /* Browser not supported. */\n}\n \n... \n\nvar idbReq = window.indexedDB.open('Database Name');\nidbReq.onsuccess = function(event) {\n var db = this.result;\n var trans = db.transaction(['monster_store','hero_store'], IDBTransaction.READ_WRITE);\n var store = trans.objectStore('monster_store');\n var req = store.put(value, key);\n req.onsuccess = ...\n req.onerror = ...\n};\nidbReq.onerror = function(event) {\n ...\n};</pre>"],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBTransaction","summary":"<p>The <code>IDBTransaction</code> interface of the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API</a> provides a static, asynchronous transaction on a database using event handler attributes. All reading and writing of data are done within transactions. You actually use <code><a title=\"en/IndexedDB/IDBDatabase\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabase\">IDBDatabase</a></code> to start transactions and use <code>IDBTransaction</code> to set the mode of the transaction and access an object store and make your request. You can also use it to abort transactions.</p>\n<p>Inherits from: <a title=\"en/DOM/EventTarget\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/EventTarget\">EventTarget</a></p>","members":[{"name":"abort","help":"<p>Returns immediately, and undoes all the changes to objects in the database associated with this transaction. If this transaction has been aborted or completed, then this method throws an <a title=\"en/IndexedDB/IDBErrorEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent\">error event</a>, with its <a title=\"en/IndexedDB/IDBErrorEvent#attr code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_code\">code</a> set to <code><a title=\"en/IndexedDB/IDBDatabaseException#ABORT ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#ABORT_ERR\">ABORT_ERR</a></code> and a suitable <a title=\"en/IndexedDB/IDBEvent#attr message\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBEvent#attr_message\">message</a>.</p>\n\n<p>All pending <a title=\"IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\"><code>IDBRequest</code></a> objects created during this transaction have their <code>errorCode</code> set to <code>ABORT_ERR</code>.</p>\n<div id=\"section_12\"><span id=\"Exceptions\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a>, with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></dt> <dd>The transaction has already been committed or aborted.</dd>\n</dl>\n</div>","idl":"<pre>void abort(\n);\n</pre>","obsolete":false},{"name":"objectStore","help":"<p>Returns an object store that has already been added to the scope of this transaction. Every call to this method on the same transaction object, with the same name, returns the same <a title=\"en/IndexedDB/IDBObjectStore\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBObjectStore\">IDBObjectStore</a> instance. If this method is called on a different transaction object, a different IDBObjectStore instance is returned.</p>\n\n<div id=\"section_14\"><span id=\"Parameters\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>name</dt> <dd>The name of the requested object store.</dd>\n</dl>\n</div><div id=\"section_15\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"IDBObjectStore\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBObjectStore\">IDBObjectStore</a></code></dt> <dd>An object for accessing the requested object store.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Exceptions_2\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>The method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_FOUND_ERR</a></code></dt> <dd>The requested object store is not in this transaction's scope.</dd> <dt><code><a title=\"en/IndexedDB/DatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_ALLOWED_ERR</a></code></dt> <dd>request is made on a source object that has been deleted or removed..</dd>\n</dl>\n</div>","idl":"<pre><code>IDBObjectStore objectStore(\n in DOMString name\n) raises (IDBDatabaseException);</code>\n</pre>","obsolete":false},{"url":"","name":"READ_ONLY","help":"Allows data to be read but not changed. ","obsolete":false},{"url":"","name":"READ_WRITE","help":"Allows reading and writing of data in existing data stores to be changed.","obsolete":false},{"url":"","name":"VERSION_CHANGE","help":"Allows any operation to be performed, including ones that delete and create object stores and indexes. This mode is for updating the version number of transactions that were started using the <a title=\"en/IndexedDB/IDBDatabase#setVersion\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabase#setVersion\"><code>setVersion()</code></a> method of <a title=\"en/IndexedDB/IDBDatabase\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabase\">IDBDatabase</a> objects. Transactions of this mode cannot run concurrently with other transactions.","obsolete":false},{"url":"","name":"db","help":"The database connection that this transaction is associated with.","obsolete":false},{"url":"","name":"mode","help":"The mode for isolating access to data in the object stores that are in the scope of the transaction. For possible values, see Constants. The default value is <code><a href=\"#const_read_only\" title=\"#const read only\">READ_ONLY</a></code>.","obsolete":false},{"url":"","name":"onabort","help":"The event handler for the <code>onabort</code> event.","obsolete":false},{"url":"","name":"oncomplete","help":"The event handler for the <code>oncomplete</code> event.","obsolete":false},{"url":"","name":"onerror","help":"The event handler for the <code>error </code>event.","obsolete":false},{"name":"onabort","help":"","obsolete":false},{"name":"oncomplete","help":"","obsolete":false},{"name":"onerror","help":"","obsolete":false}]},"Entry":{"title":"Entry","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>13\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<div><strong>DRAFT</strong> <div>This page is not complete.</div>\n</div>\n<p>The <code>Entry</code> interface of the <a title=\"en/DOM/File_API/File_System_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File_API/File_System_API\">FileSystem API</a> represents entries in a file system. The entries can be a file or a <a href=\"https://developer.mozilla.org/en/DOM/File_API/File_system_API/DirectoryEntry\" rel=\"internal\" title=\"en/DOM/File_API/File_system_API/DirectoryEntry\">DirectoryEntry</a>.</p>","members":[{"name":"getMetadata","help":"<p>Look up metadata about this entry.</p>\n<pre>void getMetada (\n in MetadataCallback ErrorCallback\n);</pre>\n<div id=\"section_6\"><span id=\"Parameter\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>successCallback</dt> <dd>A callback that is called with the time of the last modification.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_7\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"getParent","help":"<p>Look up the parent <code>DirectoryEntry</code> containing this entry. If this entry is the root of its filesystem, its parent is itself.</p>\n<pre>void getParent (\n <em>(in EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_21\"><span id=\"Parameter_6\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>parent</dt> <dd>The directory to which to move the entry.</dd> <dt>newName</dt> <dd>The new name of the entry. Defaults to the entry's current name if unspecified.</dd> <dt>successCellback</dt> <dd>A callback that is called with the entry for the new object.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_22\"><span id=\"Returns_6\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"remove","help":"<p>Deletes a file or directory. You cannot delete an empty directory or the root directory of a filesystem.</p>\n<pre>void remove (\n <em>(in VoidCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_18\"><span id=\"Parameter_5\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>successCallback</dt> <dd>A callback that is called with the entry for the new object.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_19\"><span id=\"Returns_5\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"copyTo","help":"<p>Copy an entry to a different location on the file system. You cannot copy an entry inside itself if it is a directory nor can you copy it into its parent if a name different from its current one isn't provided. Directory copies are always recursive—that is, they copy all contents of the directory.</p>\n<pre>void vopyTo (\n <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_12\"><span id=\"Parameter_3\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>parent</dt> <dd>The directory to which to move the entry.</dd> <dt>newName</dt> <dd>The new name of the entry. Defaults to the entry's current name if unspecified.</dd> <dt>successCallback</dt> <dd>A callback that is called with the entry for the new object.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_13\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"moveTo","help":"<p>Move an entry to a different location on the file system. You cannot do the following:</p>\n<ul> <li>move a directory inside itself or to any child at any depth;</li> <li>move an entry into its parent if a name different from its current one isn't provided;</li> <li>move a file to a path occupied by a directory;</li> <li>move a directory to a path occupied by a file;</li> <li>move any element to a path occupied by a directory which is not empty.</li>\n</ul>\n<p>Moving a file over an existing file replaces that existing file. A move of a directory on top of an existing empty directory replaces that directory.</p>\n<pre>void moveTo (\n <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_9\"><span id=\"Parameter_2\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>parent</dt> <dd>The directory to which to move the entry.</dd> <dt>newName</dt> <dd>The new name of the entry. Defaults to the entry's current name if unspecified.</dd> <dt>successCallback</dt> <dd>A callback that is called with the entry for the new object.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_10\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"toURL","help":"<p>Returns a URL that can be used to identify this entry. It has no specific expiration. Bcause it describes a location on disk, it is valid for as long as that location exists. Users can supply <code>mimeType</code> to simulate the optional mime-type header associated with HTTP downloads.</p>\n<pre>DOMString toURL (\n <em>(in </em>optional DOMString mimeType<em>);</em>\n);</pre>\n<div id=\"section_15\"><span id=\"Parameter_4\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>mimeType</dt> <dd>For a FileEntry, the mime type to be used to interpret the file, when loaded through this URL.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>DOMString</code></dt>\n</dl>\n</div>","obsolete":false},{"url":"","name":"filesystem","help":"The file system on which the entry resides.","obsolete":false},{"url":"","name":"fullpath","help":"The full absolute path from the root to the entry. An absolute path is a relative path from the root directory, prepended with a '/'. A relative path describes how to get from a particular directory to a file or directory. All methods that accept paths are on DirectoryEntry or DirectoryEntrySync objects; the paths, if relative, are interpreted as being relative to the directories represented by these objects.","obsolete":false},{"url":"","name":"isDirectory","help":"The entry is a directory.","obsolete":false},{"url":"","name":"isFile","help":"The entry is a file.","obsolete":false},{"url":"","name":"name","help":"The name of the entry, excluding the path leading to it.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/Entry"},"WheelEvent":{"title":"nsIDOMMouseScrollEvent","members":[],"srcUrl":"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMMouseScrollEvent","skipped":true,"cause":"Suspect title"},"Coordinates":{"title":"Drawing shapes","members":[],"srcUrl":"https://developer.mozilla.org/en/Canvas_tutorial/Drawing_shapes","skipped":true,"cause":"Suspect title"},"HTMLDocument":{"title":"HTMLDocument","summary":"<p><code>HTMLDocument</code> is an abstract interface of the <a title=\"en/DOM\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM\">DOM</a> which provides access to special properties and methods not present by default on a regular (XML) document.</p>\n<p>Its methods and properties are noted (as asterisks) on the <a title=\"en/DOM/document\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document\">document</a> page.</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLDocument","specification":"http://www.w3.org/TR/DOM-Level-2-HTM...ml#ID-26809268"},"SVGDefsElement":{"title":"SVGDefsElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>SVGDefsElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/defs\"><defs></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGDefsElement"},"Touch":{"title":"Touch","examples":["See the <a title=\"en/DOM/Touch events#Example\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Touch_events#Example\">example on the main Touch events article</a>."],"srcUrl":"https://developer.mozilla.org/en/DOM/Touch","specification":"Touch Events Specification","seeAlso":"<li><a title=\"en/DOM/Touch events\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Touch_events\">Touch events</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TouchList\">TouchList</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TouchEvent\">TouchEvent</a></code>\n</li>","summary":"A <code>Touch</code> object represents a single point of contact between the user and a touch-sensitive interface device (which may be, for example, a touchscreen or a trackpad).","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.screenY","name":"screenY","help":"The Y coordinate of the touch point relative to the screen, not including any scroll offset. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.pageY","name":"pageY","help":"The Y coordinate of the touch point relative to the viewport, including any scroll offset. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.identifier","name":"identifier","help":"A unique identifier for this <code>Touch</code> object. A given touch (say, by a finger) will have the same identifier for the duration of its movement around the surface. This lets you ensure that you're tracking the same touch all the time. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.clientY","name":"clientY","help":"The Y coordinate of the touch point relative to the viewport, not including any scroll offset. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.pageX","name":"pageX","help":"The X coordinate of the touch point relative to the viewport, including any scroll offset. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.clientX","name":"clientX","help":"The X coordinate of the touch point relative to the viewport, not including any scroll offset. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.radiusX","name":"radiusX","help":"The X radius of the ellipse that most closely circumscribes the area of contact with the screen. The value is in pixels of the same scale as <code>screenX</code>. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.rotationAngle","name":"rotationAngle","help":"The angle (in degrees) that the ellipse described by radiusX and radiusY must be rotated, clockwise, to most accurately cover the area of contact between the user and the surface. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.screenX","name":"screenX","help":"The X coordinate of the touch point relative to the screen, not including any scroll offset. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.force","name":"force","help":"The amount of pressure being applied to the surface by the user, as a float between 0.0 (no pressure) and 1.0 (maximum pressure). <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Touch.radiusY","name":"radiusY","help":"The Y radius of the ellipse that most closely circumscribes the area of contact with the screen. The value is in pixels of the same scale as <code>screenY</code>. <strong>Read only.</strong>"}]},"HTMLDataListElement":{"title":"HTMLDataListElement","seeAlso":"The <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/datalist\"><datalist></a></code>\n element, which implements this interface.","summary":"DOM Datalist objects expose the <a class=\" external\" title=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-datalist-element\" rel=\"external\" href=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-datalist-element\" target=\"_blank\">HTMLDataListElement</a> interface, which provides special properties (beyond the <a href=\"https://developer.mozilla.org/en/DOM/element\" rel=\"internal\">element</a> object interface they also have available to them by inheritance) to manipulate <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/datalist\"><datalist></a></code>\n elements and their content.","members":[{"name":"options","help":"A collection of the contained option elements.","obsolete":false},{"name":"options","help":"A collection of the contained option elements.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLDataListElement"},"CSSValue":{"title":"text-overflow","members":[],"srcUrl":"https://developer.mozilla.org/en/CSS/text-overflow","skipped":true,"cause":"Suspect title"},"HTMLBaseElement":{"title":"HTMLBaseElement","summary":"The <code>base</code> object exposes the <a class=\" external\" title=\"http://www.w3.org/TR/html5/semantics.html#htmlbaseelement\" rel=\"external\" href=\"http://www.w3.org/TR/html5/semantics.html#htmlbaseelement\" target=\"_blank\">HTMLBaseElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\"external\" target=\"_blank\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-73629039\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-73629039\">HTMLBaseElement</a>) interface which contains the base URI for a document. This object inherits all of the properties and methods as described in the <a class=\"internal\" title=\"en/DOM/element\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> section.","members":[{"name":"href","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/base#attr-href\">href</a></code>\n HTML attribute, containing a base URL for relative URLs in the document.","obsolete":false},{"name":"target","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/base#attr-target\">target</a></code>\n HTML attribute, containing a default target browsing context or frame for elements that do not have a target reference specified.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLBaseElement"},"CanvasGradient":{"title":"CanvasGradient","summary":"This is an opaque object representing a gradient and returned by <a title=\"en/DOM/CanvasRenderingContext2D\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D\">CanvasRenderingContext2D</a>'s <a title=\"en/DOM/CanvasRenderingContext2D.createLinearGradient\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D\">createLinearGradient</a> or <a title=\"en/DOM/CanvasRenderingContext2D.createRadialGradient\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D\">createRadialGradient</a> methods.","members":[{"name":"addColorStop","help":"","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/CanvasGradient","specification":"http://www.whatwg.org/specs/web-apps...canvasgradient"},"HTMLLIElement":{"title":"li","examples":["<pre name=\"code\" class=\"xml\"><ol>\n <li>first item</li>\n <li>second item</li>\n <li>third item</li>\n</ol></pre>\n \n<p>The above HTML will output:</p>\n<ol> <li>first item</li> <li>second item</li> <li>third item</li>\n</ol>\n\n <pre name=\"code\" class=\"xml\"><ul>\n <li>first item</li>\n <li>second item</li>\n <li>third item</li>\n</ul></pre>\n \n<ul> <li>first item</li> <li>second item</li> <li>third item</li>\n</ul>\n<p>For more detailed examples, see the <a title=\"en/HTML/Element/ol#Examples\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Element/ol#Examples\"><ol></a> and <a title=\"en/HTML/Element/ul#Examples\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Element/ul#Examples\"><ul></a> pages.</p>"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/li","seeAlso":"<li>Other list-related HTML Elements: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/li\"><li></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu\"><menu></a></code>\n and the obsolete <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/dir\"><dir></a></code>\n;</li> <li>CSS properties that may be specially useful to style the <span><li></span> element: <ul> <li>the <a title=\"en/CSS/list-style\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/list-style\">list-style</a> property, to choose the way the ordinal is displayed,</li> <li><a title=\"en/CSS_Counters\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS_Counters\">CSS counters</a>, to handle complex nested lists,</li> <li>the <a title=\"en/CSS/margin\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/margin\">margin</a> property, to control the indent of the list item.</li> </ul> </li>","summary":"The <em>HTML List item element</em> (<code><li></code>) is used to represent a list item. It should be contained in an ordered list (<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n), an unordered list (<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n) or a menu (<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu\"><menu></a></code>\n), where it represents a single entity in that list. In menus and unordered lists, list items are ordinarily displayed using bullet points. In order lists, they are usually displayed with some ascending counter on the left such as a number or letter","members":[{"obsolete":false,"url":"","name":"type","help":"This character attributes indicates the numbering type: <ul> <li><code>a</code>: lowercase letters</li> <li><code>A</code>: uppercase letters</li> <li><code>i</code>: lowercase Roman numerals</li> <li><code>I</code>: uppercase Roman numerals</li> <li><code>1</code>: numbers</li> </ul> This type overrides the one used by its parent <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n element, if any.<br> <div class=\"note\"><strong>Usage note:</strong> This attribute has been deprecated: use the CSS <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/list-style-type\">list-style-type</a></code>\n property instead.</div>"},{"obsolete":false,"url":"","name":"value","help":"This integer attributes indicates the current ordinal value of the item in the list as defined by the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n element. The only allowed value for this attribute is a number, even if the list is displayed with Roman numerals or letters. List items that follow this one continue numbering from the value set. The <strong>value</strong> attribute has no meaning for unordered lists (<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n) or for menus (<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu\"><menu></a></code>\n). <div class=\"note\"><strong>Note</strong>: This attribute was deprecated in HTML4, but reintroduced in HTML5.</div> <div class=\"geckoVersionNote\"> <p>\n</p><div class=\"geckoVersionHeading\">Gecko 9.0 note<div>(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n</div></div>\n<p></p> <p>Prior to <span title=\"(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n\">Gecko 9.0</span>, negative values were incorrectly converted to 0. Starting in <span title=\"(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n\">Gecko 9.0</span> all integer values are correctly parsed.</p> </div>"}]},"HTMLImageElement":{"title":"HTMLImageElement","examples":["var img1 = new Image(); // DOM 0\nimg1.src = 'image1.png';\nimg1.alt = 'alt';\ndocument.body.appendChild(img1);\n\nvar img2 = document.createElement('img'); // use DOM <a href=\"http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/html/nsIDOMHTMLImageElement.idl\" title=\"http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/html/nsIDOMHTMLImageElement.idl\">HTMLImageElement</a>\nimg2.src = 'image2.jpg';\nimg2.alt = 'alt text';\ndocument.body.appendChild(img2);\n\n// using first image in the document\nalert(document.images[0].src);\n"],"summary":"DOM image objects expose the <a title=\"http://www.w3.org/TR/html5/embedded-content-1.html#htmlimageelement\" class=\" external\" rel=\"external\" href=\"http://www.w3.org/TR/html5/embedded-content-1.html#htmlimageelement\" target=\"_blank\">HTMLImageElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-17701901\" class=\" external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-17701901\" target=\"_blank\"><code>HTMLImageElement</code></a>) interface, which provides special properties and methods (beyond the regular <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a></code>\n object interface they also have available to them by inheritance) for manipulating the layout and presentation of input elements.","members":[{"name":"align","help":"Indicates the alignment of the image with respect to the surrounding context.","obsolete":true},{"name":"alt","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/img#attr-alt\">alt</a></code>\n HTML attribute, indicating fallback context for the image.","obsolete":false},{"name":"border","help":"Width of the border around the image.","obsolete":true},{"name":"complete","help":"True if the browser has fetched the image, and it is in a <a title=\"en/HTML/Element/Img#Image Format\" rel=\"internal\" href=\"https://developer.mozilla.org/En/HTML/Element/Img#Image_Format\">supported image type</a> that was decoded without errors.","obsolete":false},{"name":"crossOrigin","help":"The CORS setting for this image element. See <a title=\"en/HTML/CORS settings attributes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/CORS_settings_attributes\">CORS settings attributes</a> for details.","obsolete":false},{"name":"height","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/img#attr-height\">height</a></code>\n HTML attribute, indicating the rendered height of the image in CSS pixels.","obsolete":false},{"name":"hspace","help":"Space to the left and right of the image.","obsolete":true},{"name":"isMap","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/img#attr-ismap\">ismap</a></code>\n HTML attribute, indicating that the image is part of a server-side image map.","obsolete":false},{"name":"longDesc","help":"URI of a long description of the image.","obsolete":true},{"name":"naturalHeight","help":"Intrinsic height of the image in CSS pixels, if it is available; otherwise, 0.","obsolete":false},{"name":"naturalWidth","help":"Intrinsic width of the image in CSS pixels, if it is available; otherwise, 0.","obsolete":false},{"name":"src","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element#attr-src\">src</a></code>\n HTML attribute, containing the URL of the image.","obsolete":false},{"name":"useMap","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/img#attr-usemap\">usemap</a></code>\n HTML attribute, containing a partial URL of a map element.","obsolete":false},{"name":"vspace","help":"Space above and below the image.","obsolete":true},{"name":"width","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/img#attr-width\">width</a></code>\n HTML attribute, indicating the rendered width of the image in CSS pixels.","obsolete":false},{"name":"lowsrc","help":"A reference to a low-quality (but faster to load) copy of the image.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLImageElement"},"StringCallback":{"title":"HTTP server for unit tests","members":[],"srcUrl":"https://developer.mozilla.org/En/Httpd.js/HTTP_server_for_unit_tests","skipped":true,"cause":"Suspect title"},"SVGAngle":{"title":"SVGAngle","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"<p>The <code>SVGAngle</code> interface correspond to the <a title=\"https://developer.mozilla.org/en/SVG/Content_type#Angle\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Content_type#Angle\"><angle></a> basic data type.</p>\n<p>An <code>SVGAngle</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>","members":[{"name":"newValueSpecifiedUnits","help":"<p>Reset the value as a number with an associated unitType, thereby replacing the values for all of the attributes on the object.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NOT_SUPPORTED_ERR</code> is raised if <code>unitType</code> is <code>SVG_ANGLETYPE_UNKNOWN</code> or not a valid unit type constant (one of the other <code>SVG_ANGLETYPE_*</code> constants defined on this interface).</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the length corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"convertToSpecifiedUnits","help":"Preserve the same underlying stored value, but reset the stored unit identifier to the given <code><em>unitType</em></code>. Object attributes <code>unitType</code>, <code>valueInSpecifiedUnits</code> and <code>valueAsString</code> might be modified as a result of this method.","obsolete":false},{"name":"SVG_ANGLETYPE_UNKNOWN","help":"The unit type is not one of predefined unit types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.","obsolete":false},{"name":"SVG_ANGLETYPE_UNSPECIFIED","help":"No unit type was provided (i.e., a unitless value was specified). For angles, a unitless value is treated the same as if degrees were specified.","obsolete":false},{"name":"SVG_ANGLETYPE_DEG","help":"The unit type was explicitly set to degrees.","obsolete":false},{"name":"SVG_ANGLETYPE_RAD","help":"The unit type is radians.","obsolete":false},{"name":"SVG_ANGLETYPE_GRAD","help":"The unit type is gradians.","obsolete":false},{"name":"unitType","help":"The type of the value as specified by one of the SVG_ANGLETYPE_* constants defined on this interface.","obsolete":false},{"name":"value","help":"<p>The value as a floating point value, in user units. Setting this attribute will cause <code>valueInSpecifiedUnits</code> and <code>valueAsString</code> to be updated automatically to reflect this setting.</p> <p><strong>Exceptions on setting:</strong> a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the length corresponds to a read only attribute or when the object itself is read only.</p>","obsolete":false},{"name":"valueInSpecifiedUnits","help":"<p>The value as a floating point value, in the units expressed by <code>unitType</code>. Setting this attribute will cause <code>value</code> and <code>valueAsString</code> to be updated automatically to reflect this setting.</p> <p><strong>Exceptions on setting:</strong> a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the length corresponds to a read only attribute or when the object itself is read only.</p>","obsolete":false},{"name":"valueAsString","help":"<p>The value as a string value, in the units expressed by <code>unitType</code>. Setting this attribute will cause <code>value</code>, <code>valueInSpecifiedUnits</code> and <code>unitType</code> to be updated automatically to reflect this setting.</p> <p><strong>Exceptions on setting:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>SYNTAX_ERR</code> is raised if the assigned string cannot be parsed as a valid <a title=\"https://developer.mozilla.org/en/SVG/Content_type#Angle\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Content_type#Angle\"><angle></a>.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the length corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAngle"},"DocumentType":{"title":"DocumentType","summary":"<p><span>NOTE: This interface is not fully supported in Mozilla at present, including for indicating internalSubset information which Gecko generally does otherwise support.</span></p>\n<p><code>DocumentType</code> inherits <a title=\"en/DOM/Node\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a>'s properties, methods, and constants as well as the following properties of its own:</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/DocumentType.name","name":"name","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/DocumentType.systemId","name":"systemId","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/DocumentType.publicId","name":"publicId","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/DocumentType.internalSubset","name":"internalSubset","help":""}],"srcUrl":"https://developer.mozilla.org/en/DOM/DocumentType","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...l#ID-412266927"},"HTMLTableElement":{"title":"HTMLTableElement","summary":"<code>table</code> objects expose the <code><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-64060425\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-64060425\" target=\"_blank\">HTMLTableElement</a></code> interface, which provides special properties and methods (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\" title=\"en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of tables in HTML.\n","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.deleteTHead","name":"deleteTHead","help":"<b>deleteTHead</b> removes the table header.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.createTFoot","name":"createTFoot","help":"<b>createTFoot</b> creates a table footer.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.insertRow","name":"insertRow","help":"<b>insertRow</b> inserts a new row.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.deleteCaption","name":"deleteCaption","help":"<b>deleteCaption</b> removes the table caption.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.createCaption","name":"createCaption","help":"<b>createCaption</b> creates a new caption for the table.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.deleteTFoot","name":"deleteTFoot","help":"<b>deleteTFoot</b> removes a table footer.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.createTHead","name":"createTHead","help":"<b>createTHead</b> creates a table header.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.deleteRow","name":"deleteRow","help":"<b>deleteRow</b> removes a row.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.caption","name":"caption","help":"<b>caption</b> returns the table caption.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.tFoot","name":"tFoot","help":"<b>tFoot</b> returns the table footer.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.rows","name":"rows","help":"<b>rows</b> returns the rows in the table.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.width","name":"width","help":"<b>width</b> gets/sets the width of the table.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.cellSpacing","name":"cellSpacing","help":"<b>cellSpacing</b> gets/sets the spacing around the table.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.tHead","name":"tHead","help":"<b>tHead</b> returns the table head.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.bgColor","name":"bgColor","help":"<b>bgColor</b> gets/sets the background color of the table.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.align","name":"align","help":"<b>align</b> gets/sets the alignment of the table.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.cellPadding","name":"cellPadding","help":"<b>cellPadding</b> gets/sets the cell padding.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.tBodies","name":"tBodies","help":"<b>tBodies</b> returns the table bodies.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.summary","name":"summary","help":"<b>summary</b> gets/sets the table summary.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.frame","name":"frame","help":"<b>frame</b> specifies which sides of the table have borders.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.rules","name":"rules","help":"<b>rules</b> specifies which interior borders are visible.\n"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/table.border","name":"border","help":"<b>border</b> gets/sets the table border.\n"}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLTableElement"},"CSSRuleList":{"title":"CSSRuleList","examples":["// get the first style sheet’s first rule\nvar first_rule = document.styleSheets[0].cssRules[0];"],"srcUrl":"https://developer.mozilla.org/en/DOM/CSSRuleList","specification":"<li><a title=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRuleList\" class=\" external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRuleList\" target=\"_blank\">DOM Level 2 Style: <code>CSSRuleList</code> interface</a></li> <li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-cssRules\" title=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-cssRules\" target=\"_blank\">DOM Level 2 Style: <code>CSSStyleSheet</code> attribute <code>cssRules</code></a></li> <li><a title=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule-cssRules\" class=\" external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule-cssRules\" target=\"_blank\">DOM Level 2 Style: <code>CSSMediaRule</code> attribute </a><code><a title=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule-cssRules\" class=\" external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule-cssRules\" target=\"_blank\">cssRules</a></code></li> <li><a title=\"http://dev.w3.org/csswg/css3-animations/#DOM-CSSKeyframesRule\" class=\" external\" rel=\"external\" href=\"http://dev.w3.org/csswg/css3-animations/#DOM-CSSKeyframesRule\" target=\"_blank\">CSS Animations: <code>CSSKeyframesRule</code> interface</a></li>","seeAlso":"CSSRule","summary":"A <code>CSSRuleList</code> is an array-like object containing an ordered collection of <code><a title=\"en/DOM/cssRule\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/cssRule\">CSSRule</a></code> objects.","members":[]},"SVGSVGElement":{"title":"SVGSVGElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGSVGElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/circle\"><circle></a></code>\n SVG Element","summary":"The <code>SVGSVGElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n elements, as well as methods to manipulate them. This interface contains also various miscellaneous commonly-used utility methods, such as matrix operations and the ability to control the time of redraw on visual rendering devices.","members":[{"name":"suspendRedraw","help":"<p>Takes a time-out value which indicates that redraw shall not occur until:</p> <ol> <li>the corresponding unsuspendRedraw() call has been made,</li> <li>an unsuspendRedrawAll() call has been made, or</li> <li>its timer has timed out.</li> </ol> <p>In environments that do not support interactivity (e.g., print media), then redraw shall not be suspended. Calls to <code>suspendRedraw()</code> and <code>unsuspendRedraw()</code> should, but need not be, made in balanced pairs.</p> <p>To suspend redraw actions as a collection of SVG DOM changes occur, precede the changes to the SVG DOM with a method call similar to:</p> <p><code>suspendHandleID = suspendRedraw(maxWaitMilliseconds);</code></p> <p>and follow the changes with a method call similar to:</p> <p><code>unsuspendRedraw(suspendHandleID);</code></p> <p>Note that multiple suspendRedraw calls can be used at once and that each such method call is treated independently of the other suspendRedraw method calls.</p>","obsolete":false},{"name":"unsuspendRedraw","help":"Cancels a specified <code>suspendRedraw()</code> by providing a unique suspend handle ID that was returned by a previous <code>suspendRedraw()</code> call.","obsolete":false},{"name":"unsuspendRedrawAll","help":"Cancels all currently active <code>suspendRedraw()</code> method calls. This method is most useful at the very end of a set of SVG DOM calls to ensure that all pending <code>suspendRedraw()</code> method calls have been cancelled.","obsolete":false},{"name":"forceRedraw","help":"In rendering environments supporting interactivity, forces the user agent to immediately redraw all regions of the viewport that require updating.","obsolete":false},{"name":"pauseAnimations","help":"Suspends (i.e., pauses) all currently running animations that are defined within the SVG document fragment corresponding to this <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element, causing the animation clock corresponding to this document fragment to stand still until it is unpaused.","obsolete":false},{"name":"unpauseAnimations","help":"Unsuspends (i.e., unpauses) currently running animations that are defined within the SVG document fragment, causing the animation clock to continue from the time at which it was suspended.","obsolete":false},{"name":"animationsPaused","help":"Returns true if this SVG document fragment is in a paused state.","obsolete":false},{"name":"getCurrentTime","help":"Returns the current time in seconds relative to the start time for the current SVG document fragment. If getCurrentTime is called before the document timeline has begun (for example, by script running in a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/script\"><script></a></code>\n element before the document's SVGLoad event is dispatched), then 0 is returned.","obsolete":false},{"name":"setCurrentTime","help":"Adjusts the clock for this SVG document fragment, establishing a new current time. If <code>setCurrentTime</code> is called before the document timeline has begun (for example, by script running in a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/script\"><script></a></code>\n element before the document's SVGLoad event is dispatched), then the value of seconds in the last invocation of the method gives the time that the document will seek to once the document timeline has begun.","obsolete":false},{"name":"getIntersectionList","help":"Returns the list of graphics elements whose rendered content intersects the supplied rectangle. Each candidate graphics element is to be considered a match only if the same graphics element can be a target of pointer events as defined in \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/pointer-events\">pointer-events</a></code> processing.","obsolete":false},{"name":"getEnclosureList","help":"Returns the list of graphics elements whose rendered content is entirely contained within the supplied rectangle. Each candidate graphics element is to be considered a match only if the same graphics element can be a target of pointer events as defined in \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/pointer-events\">pointer-events</a></code> processing.","obsolete":false},{"name":"checkIntersection","help":"Returns true if the rendered content of the given element intersects the supplied rectangle. Each candidate graphics element is to be considered a match only if the same graphics element can be a target of pointer events as defined in \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/pointer-events\">pointer-events</a></code> processing.","obsolete":false},{"name":"checkEnclosure","help":"Returns true if the rendered content of the given element is entirely contained within the supplied rectangle. Each candidate graphics element is to be considered a match only if the same graphics element can be a target of pointer events as defined in \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/pointer-events\">pointer-events</a></code> processing.","obsolete":false},{"name":"deselectAll","help":"Unselects any selected objects, including any selections of text strings and type-in bars.","obsolete":false},{"name":"createSVGNumber","help":"Creates an <code>SVGNumber</code> object outside of any document trees. The object is initialized to a value of zero.","obsolete":false},{"name":"createSVGLength","help":"Creates an <code>SVGLength</code> object outside of any document trees. The object is initialized to a value of zero user units.","obsolete":false},{"name":"createSVGAngle","help":"Creates an <code>SVGAngle</code> object outside of any document trees. The object is initialized to a value of zero degrees (unitless).","obsolete":false},{"name":"createSVGPoint","help":"Creates an <code>SVGPoint</code> object outside of any document trees. The object is initialized to the point (0,0) in the user coordinate system.","obsolete":false},{"name":"createSVGMatrix","help":"Creates an <code>SVGMatrix</code> object outside of any document trees. The object is initialized to the identity matrix.","obsolete":false},{"name":"createSVGRect","help":"Creates an <code>SVGRect</code> object outside of any document trees. The object is initialized such that all values are set to 0 user units.","obsolete":false},{"name":"createSVGTransform","help":"Creates an <code>SVGTransform</code> object outside of any document trees. The object is initialized to an identity matrix transform (<code>SVG_TRANSFORM_MATRIX</code>).","obsolete":false},{"name":"createSVGTransformFromMatrix","help":"Creates an <code>SVGTransform</code> object outside of any document trees. The object is initialized to the given matrix transform (i.e., <code>SVG_TRANSFORM_MATRIX</code>). The values from the parameter matrix are copied, the matrix parameter is not adopted as <code>SVGTransform::matrix</code>.","obsolete":false},{"name":"getElementById","help":"Searches this SVG document fragment (i.e., the search is restricted to a subset of the document tree) for an Element whose id is given by <em>elementId</em>. If an Element is found, that Element is returned. If no such element exists, returns null. Behavior is not defined if more than one element has this id.","obsolete":false},{"name":"width","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/width\">width</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element.","obsolete":false},{"name":"height","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/height\">height</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element.","obsolete":false},{"name":"contentScriptType","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/contentScriptType\">contentScriptType</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element.","obsolete":false},{"name":"contentStyleType","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/contentStyleType\">contentStyleType</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element.","obsolete":false},{"name":"viewport","help":"The position and size of the viewport (implicit or explicit) that corresponds to this <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element. When the browser is actually rendering the content, then the position and size values represent the actual values when rendering. The position and size values are unitless values in the coordinate system of the parent element. If no parent element exists (i.e., <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element represents the root of the document tree), if this SVG document is embedded as part of another document (e.g., via the HTML <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object\"><object></a></code>\n element), then the position and size are unitless values in the coordinate system of the parent document. (If the parent uses CSS or XSL layout, then unitless values represent pixel units for the current CSS or XSL viewport.)","obsolete":false},{"name":"pixelUnitToMillimeterX","help":"Size of a pixel units (as defined by CSS2) along the x-axis of the viewport, which represents a unit somewhere in the range of 70dpi to 120dpi, and, on systems that support this, might actually match the characteristics of the target medium. On systems where it is impossible to know the size of a pixel, a suitable default pixel size is provided.","obsolete":false},{"name":"pixelUnitToMillimeterY","help":"Corresponding size of a pixel unit along the y-axis of the viewport.","obsolete":false},{"name":"screenPixelToMillimeterX","help":"User interface (UI) events in DOM Level 2 indicate the screen positions at which the given UI event occurred. When the browser actually knows the physical size of a \"screen unit\", this attribute will express that information; otherwise, user agents will provide a suitable default value such as .28mm.","obsolete":false},{"name":"screenPixelToMillimeterY","help":"Corresponding size of a screen pixel along the y-axis of the viewport.","obsolete":false},{"name":"useCurrentView","help":"The initial view (i.e., before magnification and panning) of the current innermost SVG document fragment can be either the \"standard\" view (i.e., based on attributes on the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element such as \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewBox\" class=\"new\">viewBox</a></code>) or to a \"custom\" view (i.e., a hyperlink into a particular <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/view\"><view></a></code>\n or other element). If the initial view is the \"standard\" view, then this attribute is false. If the initial view is a \"custom\" view, then this attribute is true.","obsolete":false},{"name":"currentView","help":"The definition of the initial view (i.e., before magnification and panning) of the current innermost SVG document fragment. The meaning depends on the situation:<br> <ul> <li>If the initial view was a \"standard\" view, then: <ul> <li>the values for \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewBox\" class=\"new\">viewBox</a></code>, \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code> and \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/zoomAndPan\" class=\"new\">zoomAndPan</a></code> within \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/currentView\" class=\"new\">currentView</a></code> will match the values for the corresponding DOM attributes that are on <code>SVGSVGElement</code> directly</li> <li>the values for \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/transform\">transform</a></code> and \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewTarget\" class=\"new\">viewTarget</a></code> within \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/currentView\" class=\"new\">currentView</a></code> will be null</li> </ul> </li> <li>If the initial view was a link into a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/view\"><view></a></code>\n element, then: <ul> <li>the values for \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewBox\" class=\"new\">viewBox</a></code>, \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code> and \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/zoomAndPan\" class=\"new\">zoomAndPan</a></code> within \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/currentView\" class=\"new\">currentView</a></code> will correspond to the corresponding attributes for the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/view\"><view></a></code>\n element</li> <li>the values for \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/transform\">transform</a></code> and \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewTarget\" class=\"new\">viewTarget</a></code> within \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/currentView\" class=\"new\">currentView</a></code> will be null</li> </ul> </li> <li>If the initial view was a link into another element (i.e., other than a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/view\"><view></a></code>\n), then: <ul> <li>the values for \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewBox\" class=\"new\">viewBox</a></code>, \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code> and \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/zoomAndPan\" class=\"new\">zoomAndPan</a></code> within \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/currentView\" class=\"new\">currentView</a></code> will match the values for the corresponding DOM attributes that are on <code>SVGSVGElement</code> directly for the closest ancestor <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element</li> <li>the values for \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/transform\">transform</a></code> within \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/currentView\" class=\"new\">currentView</a></code> will be null</li> <li>the \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewTarget\" class=\"new\">viewTarget</a></code> within \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/currentView\" class=\"new\">currentView</a></code> will represent the target of the link</li> </ul> </li> <li>If the initial view was a link into the SVG document fragment using an SVG view specification fragment identifier (i.e., #svgView(...)), then: <ul> <li>the values for \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewBox\" class=\"new\">viewBox</a></code>, \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>, \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/zoomAndPan\" class=\"new\">zoomAndPan</a></code>, \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/transform\">transform</a></code> and \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/viewTarget\" class=\"new\">viewTarget</a></code> within \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/currentView\" class=\"new\">currentView</a></code> will correspond to the values from the SVG view specification fragment identifier</li> </ul> </li> </ul>","obsolete":false},{"name":"currentTranslate","help":"On an outermost <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element, the corresponding translation factor that takes into account user \"magnification\".","obsolete":false},{"name":"currentScale","help":"On an outermost <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element, this attribute indicates the current scale factor relative to the initial view to take into account user magnification and panning operations. DOM attributes <code>currentScale</code> and <code>currentTranslate</code> are equivalent to the 2x3 matrix <code>[a b c d e f] = [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]</code>. If \"magnification\" is enabled (i.e., <code>zoomAndPan=\"magnify\"</code>), then the effect is as if an extra transformation were placed at the outermost level on the SVG document fragment (i.e., outside the outermost <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/svg\"><svg></a></code>\n element).","obsolete":false}]},"SVGPreserveAspectRatio":{"title":"SVGPreserveAspectRatio","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"<p>The <code>SVGPreserveAspectRatio</code> interface corresponds to the \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code> attribute, which is available for some of SVG's elements.</p>\n<p>An <code>SVGPreserveAspectRatio</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>","members":[{"name":"SVG_PRESERVEASPECTRATIO_UNKNOWN","help":"The enumeration was set to a value that is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_NONE","help":"Corresponds to value <code>none</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_XMINYMIN","help":"Corresponds to value <code>xMinYMin</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_XMIDYMIN","help":"Corresponds to value <code>xMidYMin</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_XMAXYMIN","help":"Corresponds to value <code>xMaxYMin</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_XMINYMID","help":"Corresponds to value <code>xMinYMid</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_XMIDYMID","help":"Corresponds to value <code>xMidYMid</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_XMAXYMID","help":"Corresponds to value <code>xMaxYMid</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_XMINYMAX","help":"Corresponds to value <code>xMinYMax</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_XMIDYMAX","help":"Corresponds to value <code>xMidYMax</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_PRESERVEASPECTRATIO_XMAXYMAX","help":"Corresponds to value <code>xMaxYMax</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_MEETORSLICE_UNKNOWN","help":"The enumeration was set to a value that is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.","obsolete":false},{"name":"SVG_MEETORSLICE_MEET","help":"Corresponds to value <code>meet</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"SVG_MEETORSLICE_SLICE","help":"Corresponds to value <code>slice</code> for attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio\">preserveAspectRatio</a></code>.","obsolete":false},{"name":"align","help":"The type of the alignment value as specified by one of the SVG_PRESERVEASPECTRATIO_* constants defined on this interface.","obsolete":false},{"name":"meetOrSlice","help":"The type of the meet-or-slice value as specified by one of the SVG_MEETORSLICE_* constants defined on this interface.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPreserveAspectRatio"},"MediaError":{"title":"HTMLMediaElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLMediaElement","skipped":true,"cause":"Suspect title"},"WebSocket":{"title":"WebSocket","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td>Sub-protocol support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>7.0 (7.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td>Sub-protocol support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>7.0 (7.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/WebSockets/WebSockets_reference/WebSocket","seeAlso":"<li><a title=\"en/WebSockets/Writing WebSocket client applications\" rel=\"internal\" href=\"https://developer.mozilla.org/en/WebSockets/Writing_WebSocket_client_applications\">Writing WebSocket client applications</a></li> <li><a class=\"external\" title=\"http://dev.w3.org/html5/websockets/\" rel=\"external\" href=\"http://dev.w3.org/html5/websockets/\" target=\"_blank\">HTML5: WebSockets</a></li>","summary":"<div><p><strong>This is an experimental feature</strong><br>Because this feature is still in development in some browsers, check the <a href=\"#AutoCompatibilityTable\">compatibility table</a> for the proper prefixes to use in various browsers.</p></div>\n<p></p>\n<p>The <code>WebSocket</code> object provides the API for creating and managing a <a title=\"en/WebSockets\" rel=\"internal\" href=\"https://developer.mozilla.org/en/WebSockets\">WebSocket</a> connection to a server, as well as for sending and receiving data on the connection.</p>","members":[{"name":"send","help":"<p>Transmits data to the server over the WebSocket connection.</p>\n\n<div id=\"section_11\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>data</code></dt> <dd>A text string to send to the server.</dd>\n</dl>\n</div><div id=\"section_12\"><span id=\"Exceptions_thrown_2\"></span><h6 class=\"editable\">Exceptions thrown</h6>\n<dl> <dt><code>INVALID_STATE_ERR</code></dt> <dd>The connection is not currently <code>OPEN</code>.</dd> <dt><code>SYNTAX_ERR</code></dt> <dd>The data is a string that has unpaired surrogates.</dd>\n</dl>\n</div><div id=\"section_13\"><span id=\"Remarks\"></span><h6 class=\"editable\">Remarks</h6>\n<div class=\"geckoVersionNote\"> <p>\n</p><div class=\"geckoVersionHeading\">Gecko 6.0 note<div>(Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n</div></div>\n<p></p> <p>Gecko's implementation of the <code>send()</code> method differs somewhat from the specification in Gecko 6.0; Gecko returns a <code>boolean</code> indicating whether or not the connection is still open (and, by extension, that the data was successfully queued or transmitted); this is corrected in Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)\n. In addition, at this time, Gecko does not support <code><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code> or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n data types.</p>\n</div>\n</div>","idl":"<pre class=\"eval\">void send(\n in DOMString data\n);\n\nvoid send(\n in ArrayBuffer data\n);\n\nvoid send(\n in Blob data\n); \n</pre>","obsolete":false},{"name":"close","help":"<p>Closes the WebSocket connection or connection attempt, if any. If the connection is already <code>CLOSED</code>, this method does nothing.</p>\n\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>code</code> \n<span title=\"\">Optional</span>\n</dt> <dd>A numeric value indicating the status code explaining why the connection is being closed. If this parameter is not specified, a default value of 1000 (indicating a normal \"transaction complete\" closure) is assumed. See the <a title=\"en/WebSockets/WebSockets reference/CloseEvent#Status codes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/WebSockets/WebSockets_reference/CloseEvent#Status_codes\">list of status codes</a> on the <a title=\"en/WebSockets/WebSockets reference/CloseEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/WebSockets/WebSockets_reference/CloseEvent\"><code>CloseEvent</code></a> page for permitted values.</dd> <dt><code>reason</code> \n<span title=\"\">Optional</span>\n</dt> <dd>A human-readable string explaining why the connection is closing. This string must be no longer than 123 UTF-8 characters.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Exceptions_thrown\"></span><h6 class=\"editable\">Exceptions thrown</h6>\n<dl> <dt><code>INVALID_ACCESS_ERR</code></dt> <dd>An invalid <code>code</code> was specified.</dd> <dt><code>SYNTAX_ERR</code></dt> <dd>The <code>reason</code> string is too long or contains unpaired surrogates.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void close(\n in optional unsigned short code,\n in optional DOMString reason\n);\n</pre>","obsolete":false},{"name":"CONNECTING","help":"The connection is not yet open.","obsolete":false},{"name":"OPEN","help":"The connection is open and ready to communicate.","obsolete":false},{"name":"CLOSING","help":"The connection is in the process of closing.","obsolete":false},{"name":"CLOSED","help":"The connection is closed or couldn't be opened.","obsolete":false},{"name":"binaryType","help":"A string indicating the type of binary data being transmitted by the connection. This should be either \"blob\" if DOM <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n objects are being used or \"arraybuffer\" if <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> objects are being used.","obsolete":false},{"name":"bufferedAmount","help":"The number of bytes of data that have been queued using calls to but not yet transmitted to the network. This value does not reset to zero when the connection is closed; if you keep calling , this will continue to climb. <strong>Read only.</strong>","obsolete":false},{"name":"extensions","help":"The extensions selected by the server. This is currently only the empty string or a list of extensions as negotiated by the connection.","obsolete":false},{"name":"onclose","help":"An event listener to be called when the WebSocket connection's <code>readyState</code> changes to <code>CLOSED</code>. The listener receives a <a title=\"en/WebSockets/WebSockets reference/CloseEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/WebSockets/WebSockets_reference/CloseEvent\"><code>CloseEvent</code></a> named \"close\".","obsolete":false},{"name":"onerror","help":"An event listener to be called when an error occurs. This is a simple event named \"error\".","obsolete":false},{"name":"onmessage","help":"An event listener to be called when a message is received from the server. The listener receives a <a title=\"en/WebSockets/WebSockets reference/MessageEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent\"><code>MessageEvent</code></a> named \"message\".","obsolete":false},{"name":"onopen","help":"An event listener to be called when the WebSocket connection's <code>readyState</code> changes to <code>OPEN</code>; this indicates that the connection is ready to send and receive data. The event is a simple one with the name \"open\".","obsolete":false},{"name":"protocol","help":"A string indicating the name of the sub-protocol the server selected; this will be one of the strings specified in the <code>protocols</code> parameter when creating the WebSocket object.","obsolete":false},{"name":"readyState","help":"The current state of the connection; this is one of the <a rel=\"custom\" href=\"https://developer.mozilla.org/en/WebSockets/WebSockets_reference/WebSocket#Ready_state_constants\">Ready state constants</a>. <strong>Read only.</strong>","obsolete":false},{"name":"url","help":"The URL as resolved by the constructor. This is always an absolute URL. <strong>Read only.</strong>","obsolete":false}]},"SVGAnimatedInteger":{"title":"SVGAnimatedInteger","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedInteger</code> interface is used for attributes of basic type <a title=\"https://developer.mozilla.org/en/SVG/Content_type#Integer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Content_type#Integer\"><integer></a> which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"If the given attribute or property is being animated, contains the current animated value of the attribute or property. If the given attribute or property is not currently being animated, contains the same value as <code>baseVal</code>.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedInteger"},"PositionError":{"title":"Using geolocation","members":[],"srcUrl":"https://developer.mozilla.org/en/Using_geolocation","skipped":true,"cause":"Suspect title"},"Worker":{"title":"Worker","srcUrl":"https://developer.mozilla.org/En/DOM/Worker","seeAlso":"<li><a class=\"internal\" title=\"en/Using DOM workers\" rel=\"internal\" href=\"https://developer.mozilla.org/En/Using_web_workers\">Using web workers</a></li> <li><a title=\"https://developer.mozilla.org/En/DOM/Worker/Functions_available_to_workers\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Worker/Functions_available_to_workers\">Functions available to workers</a></li> <li>\n<a rel=\"custom\" href=\"http://www.w3.org/TR/workers/\">Web Workers - W3C</a><span title=\"Working Draft\">WD</span></li> <li><a class=\"external\" title=\"http://www.whatwg.org/specs/web-workers/current-work/\" rel=\"external\" href=\"http://www.whatwg.org/specs/web-workers/current-work/\" target=\"_blank\">Web Workers specification - WHATWG</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SharedWorker\">SharedWorker</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/ChromeWorker\">ChromeWorker</a></code>\n</li>","summary":"<p>Workers are background tasks that can be easily created and can send messages back to their creators. Creating a worker is as simple as calling the <code>Worker()</code> constructor, specifying a script to be run in the worker thread.</p>\n<p>Of note is the fact that workers may in turn spawn new workers as long as those workers are hosted within the same origin as the parent page. In addition, workers may use <a title=\"En/XMLHttpRequest\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/XMLHttpRequest\"><code>XMLHttpRequest</code></a> for network I/O, with the exception that the <code>responseXML</code> and <code>channel</code> attributes on <code>XMLHttpRequest</code> always return <code>null</code>.</p>\n<p>For a list of global functions available to workers, see <a title=\"En/DOM/Worker/Functions available to workers\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Worker/Functions_available_to_workers\">Functions available to workers</a>.</p>\n<div class=\"geckoVersionNote\">\n<p>\n</p><div class=\"geckoVersionHeading\">Gecko 2.0 note<div>(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n</div></div>\n<p></p>\n<p>If you want to use workers in extensions, and would like to have access to <a title=\"en/js-ctypes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/js-ctypes\">js-ctypes</a>, you should use the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/ChromeWorker\">ChromeWorker</a></code>\n object instead.</p>\n</div>\n<p>See <a class=\"internal\" title=\"en/Using DOM workers\" rel=\"internal\" href=\"https://developer.mozilla.org/En/Using_web_workers\">Using web workers</a> for examples and details.</p>","constructor":"<p>The constructor creates a web worker that executes the script at the specified URL. This script must obey the <a title=\"Same origin policy for JavaScript\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript\">same-origin policy</a>. Note that there is a disagreement among browser manufacturers about whether a data URI is of the same origin or not. Though Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0)\n and later accept data URIs, that's not the case in all other browsers.</p>\n<pre>Worker(\n in DOMString aStringURL\n);\n</pre>\n<div id=\"section_6\"><span id=\"Parameters\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt><code>aStringURL</code></dt> <dd>The URL of the script the worker is to execute. It must obey the same-origin policy (or be a data URI for Gecko 10.0 or later).</dd>\n</dl>\n<div id=\"section_7\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>Worker</code>.</p>\n</div></div>","members":[{"name":"postMessage","help":"<p>Sends a message to the worker's inner scope. This accepts a single parameter, which is the data to send to the worker. The data may be any value or JavaScript object that does not contain functions or cyclical references (since the object is converted to <a class=\"internal\" title=\"En/JSON\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JSON\">JSON</a> internally).</p>\n\n<div id=\"section_10\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>aMessage<br> </code></dt> <dd>The object to deliver to the worker; this will be in the data field in the event delivered to the <code>onmessage</code> handler. This may be any value or JavaScript object that does not contain functions or cyclical references (since the object is converted to <a class=\"internal\" title=\"En/JSON\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JSON\">JSON</a> internally).</dd>\n</dl>\n</div>","idl":"<pre>void postMessage(\n in JSObject aMessage\n);\n</pre>","obsolete":false},{"name":"terminate","help":"<p>Immediately terminates the worker. This does not offer the worker an opportunity to finish its operations; it is simply stopped at once.</p>\n<pre>void terminate();\n</pre>","obsolete":false},{"name":"onmessage","help":"An event listener that is called whenever a <code>MessageEvent</code> with type <code>message</code> bubbles through the worker. The message is stored in the event's <code>data</code> member.","obsolete":false},{"name":"onerror","help":"An event listener that is called whenever an <code>ErrorEvent</code> with type <code>error</code> bubbles through the worker.","obsolete":false}]},"Rect":{"title":"rect","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\nFeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari <table class=\"compat-table\"> <tbody> <tr> <td>Basic support</td> <td>1.0</td> <td>1.5 (1.8)\n</td> <td>\n9.0</td> <td>\n8.0</td> <td>\n3.0.4</td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td>\n3.0</td> <td>1.0 (1.8)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>\n3.0.4</td> </tr> </tbody> </table>\n</div>\n<p>The chart is based on <a title=\"en/SVG/Compatibility sources\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Compatibility_sources\">these sources</a>.</p>","srcUrl":"https://developer.mozilla.org/en/SVG/Element/rect","seeAlso":"<path>","summary":"The <code>rect</code> element is an SVG basic shape, used to create rectangles based on the position of a corner and their width and height. It may also be used to create rectangles with rounded corners.","members":[]},"SVGPathSegMovetoRel":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"HTMLDirectoryElement":{"title":"dir","seeAlso":"<li>Other list-related HTML Elements: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ol\"><ol></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/ul\"><ul></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/li\"><li></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/menu\"><menu></a></code>\n;</li> <li>CSS properties that may be specially useful to style the <span><dir></span> element: <ul> <li>the <a title=\"en/CSS/list-style\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/list-style\">list-style</a> property, useful to choose the way the ordinal is displayed,</li> <li><a title=\"en/CSS_Counters\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS_Counters\">CSS counters</a>, useful to handle complex nested lists,</li> <li>the <a title=\"en/CSS/line-height\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/line-height\">line-height</a> property, useful to simulate the deprecated \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/dir#attr-compact\">compact</a></code>\n attribute,</li> <li>the <a title=\"en/CSS/margin\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/margin\">margin</a> property, useful to control the indent of the list.</li> </ul> </li>","summary":"Obsolete","members":[{"obsolete":false,"url":"","name":"compact","help":"This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn't work in all browsers. <div class=\"note\"><strong>Usage note: </strong>Do not use this attribute, as it has been deprecated: the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/dir\"><dir></a></code>\n element should be styled using <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a>. To give a similar effect than the <span>compact</span> attribute, the <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a> property <a title=\"en/CSS/line-height\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/line-height\">line-height</a> can be used with a value of <span>80%</span>.</div>"}],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/dir"},"SVGPointList":{"title":"SVGAnimatedPoints","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedPoints","skipped":true,"cause":"Suspect title"},"SVGFESpecularLightingElement":{"title":"feSpecularLighting","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDistantLight\"><feDistantLight></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/fePointLight\"><fePointLight></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpotLight\"><feSpotLight></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/kernelUnitLength","name":"kernelUnitLength","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/surfaceScale","name":"surfaceScale","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/specularExponent","name":"specularExponent","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/specularConstant","name":"specularConstant","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in","name":"in","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting"},"NodeSelector":{"title":"Locating DOM elements using selectors","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/Locating_DOM_elements_using_selectors","skipped":true,"cause":"Suspect title"},"FileException":{"title":"FileException","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>13\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<strong>DRAFT</strong> <div>This page is not complete.</div>","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/FileException"},"SVGAnimationElement":{"title":"SVGAnimationElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimationElement</code> interface is the base interface for all of the animation element interfaces: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGAnimateElement\">SVGAnimateElement</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGSetElement\">SVGSetElement</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGAnimateColorElement\">SVGAnimateColorElement</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGAnimateMotionElement\">SVGAnimateMotionElement</a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGAnimateTransformElement\">SVGAnimateTransformElement</a></code>\n.","members":[{"name":"getStartTime","help":"Returns the begin time, in seconds, for this animation element's current interval, if it exists, regardless of whether the interval has begun yet. If there is no current interval, then a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code INVALID_STATE_ERR is thrown.","obsolete":false},{"name":"getCurrentTime","help":"Returns the current time in seconds relative to time zero for the given time container.","obsolete":false},{"name":"getSimpleDuration","help":"Returns the number of seconds for the simple duration for this animation. If the simple duration is undefined (e.g., the end time is indefinite), then a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code NOT_SUPPORTED_ERR is raised.","obsolete":false},{"name":"targetElement","help":"The element which is being animated.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimationElement"},"SVGAnimatedBoolean":{"title":"SVGAnimatedBoolean","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedBoolean</code> interface is used for attributes of type boolean which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"If the given attribute or property is being animated, contains the current animated value of the attribute or property. If the given attribute or property is not currently being animated, contains the same value as <code>baseVal</code>.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/SVGAnimatedBoolean"},"XPathExpression":{"title":"XPathExpression","summary":"An XPathExpression is a compiled XPath query returned from <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.createExpression\" title=\"en/DOM/document.createExpression\">document.createExpression()</a>. It has a method <code>evaluate()</code> which can be used to execute the compiled XPath.\n","members":[],"srcUrl":"https://developer.mozilla.org/en/XPathExpression"},"HTMLCollection":{"title":"HTMLCollection","compatibility":"Different browsers behave differently when there are more than one elements matching the string used as an index (or <code>namedItem</code>'s argument). Firefox 8 behaves as specified in DOM 2 and DOM4, returning the first matching element. WebKit browsers and Internet Explorer in this case return another <code>HTMLCollection</code> and Opera returns a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/NodeList\">NodeList</a></code>\n of all matching elements.","srcUrl":"https://developer.mozilla.org/en/DOM/HTMLCollection","specification":"<li><a class=\"external\" title=\"http://www.w3.org/TR/html5/common-dom-interfaces.html#htmlcollection-0\" rel=\"external\" href=\"http://www.w3.org/TR/html5/common-dom-interfaces.html#htmlcollection-0\" target=\"_blank\">HTML 5, Section 2.7.2, Collections</a></li> <li><a class=\"external\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-75708506\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-75708506\" target=\"_blank\">DOM Level 2 HTML, Section 1.4, Miscellaneous Object Definitions</a></li> <li><a class=\"external\" title=\"http://www.w3.org/TR/domcore/#interface-htmlcollection\" rel=\"external\" href=\"http://www.w3.org/TR/domcore/#interface-htmlcollection\" target=\"_blank\">DOM4: HTMLCollection</a></li>","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/NodeList\">NodeList</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLOptionsCollection\">HTMLOptionsCollection</a></code>\n</li>","summary":"<p><code>HTMLCollection</code> is an interface representing a generic collection of elements (in document order) and offers methods and properties for traversing the list.</p>\n<div class=\"note\"><strong>Note:</strong> This interface is called <code>HTMLCollection</code> for historical reasons (before DOM4, collections implementing this interface could only have HTML elements as their items).</div>\n<p><code>HTMLCollection</code>s in the HTML DOM are live; they are automatically updated when the underlying document is changed.</p>","members":[{"name":"item","help":"Returns the specific node at the given zero-based <code>index</code> into the list. Returns <code>null</code> if the <code>index</code> is out of range.","obsolete":false},{"name":"namedItem","help":"Returns the specific node whose ID or, as a fallback, name matches the string specified by <code>name</code>. Matching by name is only done as a last resort, only in HTML, and only if the referenced element supports the <code>name</code> attribute. Returns <code>null</code> if no node exists by the given name.","obsolete":false},{"name":"length","help":"The number of items in the collection. <strong>Read only</strong>.","obsolete":false}]},"HTMLFrameElement":{"title":"frame","examples":["<frameset cols=\"50%,50%\">\n <frame src=\"https://developer.mozilla.org/en/HTML/Element/iframe\" />\n <frame src=\"https://developer.mozilla.org/en/HTML/Element/frame\" />\n</frameset>"],"summary":"<p><code><frame></code> is an HTML element which defines a particular area in which another HTML document can be displayed. A frame should be used within a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/frameset\"><frameset></a></code>\n.</p>\n<p>Using the <code><frame></code> element is not encouraged because of certain disadvantages such as performance problems and lack of accessibility for users with screen readers. Instead of the <code><frame></code> element, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/iframe\"><iframe></a></code>\n may be preferred.</p>","members":[{"obsolete":false,"url":"","name":"src","help":"This attribute is specify document which will be displayed by frame."},{"obsolete":false,"url":"","name":"name","help":"This attribute is used to labeling frames. Without labeling all links will open in the frame that they are in."},{"obsolete":false,"url":"","name":"scrolling","help":"This attribute defines existence of scrollbar. If this attribute is not used, browser put a scrollbar when necessary. There are two choices; \"yes\" for showing a scrollbar even when it is not necessary and \"no\" for do not showing a scrollbar even when it is necessary."},{"obsolete":false,"url":"","name":"noresize","help":"This attribute avoid resizing of frames by users."},{"obsolete":false,"url":"","name":"marginheight","help":"This attribute defines how tall the margin between frames will be."},{"obsolete":false,"url":"","name":"frameborder","help":"This attribute allows you to put borders for frames."},{"obsolete":false,"url":"","name":"marginwidth","help":"This attribute defines how wide the margin between frames will be."}],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/frame"},"SVGTRefElement":{"title":"SVGTRefElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGTRefElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/tref\"><tref></a></code>\n SVG Element","summary":"The <code>SVGTRefElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/tref\"><tref></a></code>\n elements, as well as methods to manipulate them.","members":[]},"Counter":{"title":"CSS Counters","srcUrl":"https://developer.mozilla.org/en/CSS_Counters","specification":"CSS 2.1","seeAlso":"<ul> <li><a title=\"en/CSS/counter-reset\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/counter-reset\">counter-reset</a></li> <li><a title=\"en/CSS/counter-increment\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/counter-increment\">counter-increment</a></li>\n</ul>\n<p><em>There is an additional example available at <a class=\" external\" rel=\"external\" href=\"http://www.mezzoblue.com/archives/2006/11/01/counter_intu/\" title=\"http://www.mezzoblue.com/archives/2006/11/01/counter_intu/\" target=\"_blank\">http://www.mezzoblue.com/archives/20.../counter_intu/</a>. This blog entry was posted on November 01, 2006, but appears to be accurate.</em></p>","summary":"CSS counters are an implementation of <a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/CSS21/generate.html#counters\" title=\"http://www.w3.org/TR/CSS21/generate.html#counters\" target=\"_blank\">Automatic counters and numbering</a> in CSS 2.1. The value of a counter is manipulated through the use of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/counter-reset\">counter-reset</a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/counter-increment\">counter-increment</a></code>\n and is displayed on a page using the <code>counter()</code> or <code>counters()</code> function of the <code><a title=\"en/CSS/content\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/content\">content</a></code> property.","members":[]},"WebKitAnimation":{"title":"CSS animations","examples":["<strong>Note:</strong> The examples here use the <code>-moz-</code> prefix on the animation CSS properties for brevity; the live examples you can click to see in your browser also include the <code>-webkit-</code> prefixed versions."],"srcUrl":"https://developer.mozilla.org/en/CSS/CSS_animations","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Event/AnimationEvent\">AnimationEvent</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation\">animation</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-delay\">animation-delay</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-direction\">animation-direction</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-duration\">animation-duration</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-fill-mode\">animation-fill-mode</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-iteration-count\">animation-iteration-count</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-name\">animation-name</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-play-state\">animation-play-state</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-timing-function\">animation-timing-function</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/@keyframes\">@keyframes</a></code>\n</li> <li><a title=\"en/CSS/CSS animations/Detecting CSS animation support\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/CSS_animations/Detecting_CSS_animation_support\">Detecting CSS animation support</a></li> <li>This <a class=\"external\" title=\"http://hacks.mozilla.org/2011/06/add-on-sdk-and-the-beta-of-add-on-builder-now-available/\" rel=\"external\" href=\"http://hacks.mozilla.org/2011/06/add-on-sdk-and-the-beta-of-add-on-builder-now-available/\" target=\"_blank\">post</a> from Mozilla hacks, provides two additional examples: <ul> <li><a class=\" external\" rel=\"external\" href=\"http://jsfiddle.net/T88X5/3/light/\" title=\"http://jsfiddle.net/T88X5/3/light/\" target=\"_blank\">http://jsfiddle.net/T88X5/3/light/</a></li> <li><a class=\" external\" rel=\"external\" href=\"http://jsfiddle.net/RtvCB/9/light/\" title=\"http://jsfiddle.net/RtvCB/9/light/\" target=\"_blank\">http://jsfiddle.net/RtvCB/9/light/</a></li> </ul> </li>","summary":"<p>CSS animations make it possible to animate transitions from one CSS style configuration to another. Animations consist of two components: A style describing the animation and a set of keyframes that indicate the start and end states of the animation's CSS style, as well as possible intermediate waypoints along the way.</p>\n<p>There are three key advantages to CSS animations over traditional script-driven animation techniques:</p>\n<ol> <li>They're easy to use for simple animations; you can create them without even having to know JavaScript.</li> <li>The animations run well, even under moderate system load. Simple animations can often perform poorly in JavaScript (unless they're well made). The rendering engine can use frame-skipping and other techniques to keep the performance as smooth as possible.</li> <li>Letting the browser control the animation sequence lets the browser optimize performance and efficiency by, for example, reducing the update frequency of animations running in tabs that aren't currently visible.</li>\n</ol>","members":[]},"SVGGlyphElement":{"title":"SVGGlyphElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGGlyphElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/glyph\"><glyph></a></code>\n SVG Element","summary":"<p>The <code>SVGGlyphElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/glyph\"><glyph></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/glyph\"><glyph></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"SVGPathSegCurvetoQuadraticSmoothAbs":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"HTMLTableCaptionElement":{"title":"HTMLTableCaptionElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/caption\"><caption></a></code>\n HTML element","summary":"DOM table caption elements expose the <a title=\"http://www.w3.org/TR/html5/tabular-data.html#htmltablecaptionelement\" class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/html5/tabular-data.html#htmltablecaptionelement\" target=\"_blank\">HTMLTableCaptionElement</a> (or <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-12035137\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-12035137\" target=\"_blank\"><code>HTMLTableCaptionElement</code></a>) interface, which provides special properties (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating definition list elements. In <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML 5</a></span>, this interface inherits from HTMLElement, but defines no additional members.","members":[{"name":"align","help":"Enumerated attribute indicating alignment of the caption with respect to the table.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLTableCaptionElement"},"Crypto":{"title":"JavaScript crypto","summary":"Non-standard","members":[],"srcUrl":"https://developer.mozilla.org/en/JavaScript_crypto"},"Entity":{"title":"Entity","summary":"<p><span>NOTE: This is not implemented in Mozilla</span></p>\n<p>Read-only reference to a DTD entity. Also inherits the methods and properties of <a title=\"En/DOM/Node\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Node\"><code>Node</code></a>.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Entity.xmlEncoding","name":"xmlEncoding","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Entity.systemId","name":"systemId","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Entity.inputEncoding","name":"inputEncoding","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Entity.xmlVersion","name":"xmlVersion","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Entity.notationName","name":"notationName","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Entity.publicId","name":"publicId","help":""}],"srcUrl":"https://developer.mozilla.org/en/DOM/Entity","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...ml#ID-527DCFF2"},"CloseEvent":{"title":"CloseEvent","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>8.0 (8.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>8.0 (8.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/WebSockets/WebSockets_reference/CloseEvent","seeAlso":"WebSocket","summary":"A <code>CloseEvent</code> is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the <code>WebSocket</code> object's <code>onclose</code> attribute.","members":[{"name":"code","help":"The WebSocket connection close code provided by the server. See <a title=\"en/XPCOM_Interface_Reference/nsIWebSocketChannel#Status_codes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIWebSocketChannel#Status_codes\">Status codes</a> for possible values.","obsolete":false},{"name":"reason","help":"A string indicating the reason the server closed the connection. This is specific to the particular server and sub-protocol.","obsolete":false},{"name":"wasClean","help":"Indicates whether or not the connection was cleanly closed.","obsolete":false}]},"TextEvent":{"title":"document.createEvent","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/document.createEvent","skipped":true,"cause":"Suspect title"},"SVGTSpanElement":{"title":"SVGTSpanElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGTSpanElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/tspan\"><tspan></a></code>\n SVG Element","summary":"The <code>SVGTSpanElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/tspan\"><tspan></a></code>\n elements, as well as methods to manipulate them.","members":[]},"Event":{"title":"Event","seeAlso":"<ul> <li><a class=\"internal\" title=\"En/Listening to events\" rel=\"internal\" href=\"https://developer.mozilla.org/En/Listening_to_events\">Listening to events</a></li> <li><a class=\"internal\" title=\"En/Listening to events on all tabs\" rel=\"internal\" href=\"https://developer.mozilla.org/En/Listening_to_events_on_all_tabs\">Listening to events on all tabs</a></li> <li><a title=\"Creating and triggering custom events\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Creating_and_triggering_events\">Creating and triggering custom events</a></li> <li><a class=\"internal\" title=\"En/DOM/Mouse gesture events\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Mouse_gesture_events\">Mouse gesture events</a></li> <li><a title=\"https://wiki.mozilla.org/Events\" class=\" link-https\" rel=\"external\" href=\"https://wiki.mozilla.org/Events\" target=\"_blank\">Mozilla related events</a></li>\n</ul>\n<p></p>\n<div><img alt=\"Replacing Emoji...\" src=\"data:image/gif;base64,R0lGODlhEAAQAOYAAP////7+/qOjo/39/enp6bW1tfn5+fr6+vX19fz8/Kurq+3t7cDAwLGxscfHx+Xl5fT09LS0tPf398HBwc/Pz+bm5gMDA+Tk5N/f38TExO7u7pqamsLCwtTU1OLi4jw8PKioqLCwsPLy8q2trbKystvb26qqqtnZ2dfX17u7uyYmJs3NzdjY2Lm5uZ6ensvLy66urvv7++zs7FJSUurq6oWFhfb29kpKStzc3AwMDNHR0aSkpCkpKefn511dXb29vaenp8zMzLe3t/Hx8dDQ0FlZWWZmZsrKyqampvDw8ODg4Li4uL+/v+jo6PPz88jIyHp6eqWlpb6+vk5OTsPDw8bGxsXFxRQUFGpqat3d3fj4+NbW1rq6ury8vJCQkG5ubhwcHN7e3paWloKCgoyMjImJiWFhYXR0dFRUVIeHh5OTk0ZGRo6OjldXV39/fzIyMnd3d9ra2nx8fDY2NnFxcUFBQWxsbJSUlHh4eKGhoaKioi0tLSMjI4CAgNLS0qysrCH/C05FVFNDQVBFMi4wAwEAAAAh+QQEBQAAACwAAAAAEAAQAAAHyIAAggADgi1oCYOKghVfHQAbVwkHLSWLAE1vPgBqYAAUAj2KFQQAETw/ZXwrOy8ABwQBA2NFPwg+XjoFUSE2FREgEgAYNTNwNlqCk08CBReKL1GFih0sgyk7USAelxAOEwxHQGxeYmGXIi0kDVKDFzoBixjPgxIZG38xiz8CVCIAAZYICOKtA4QhSrogYAHEhAEAJSoAICDgxIsCDwRsAZDkxDQABkhECJBhBAArUTRcIqDgAQAOCgIggIHiUgBhAFakiGcgkaBAACH5BAQFAAAALAAAAAANAAsAAAdvgACCAAOCG3SFg4IXcDgAX3MDWjdMgzI+bgBnHwB3Fg4ADxoAHGgcUDcnFnSEYmNBEnIuOgwgKjIVABUCcmISB4IHIksCg1tcAYoAHSxBP0IFPcoAEA4TDQ0FTdMiLYMLYcmKGBcABhRIITHKPwKBACH5BAQFAAAALAAAAAAQAAgAAAdkgACCAAOCCmSFg4oAPWIPAGVmA04+XYsASWMuAGxGnDxUigROAERQHRtYKDw1AAZZAQMRIHEGG1wYQQ1rMh1FORoAGgwCEQYxggkQchZvBQGDF0TQiml3gysME1ULl00bTAxHgQAh+QQEBQAAACwDAAAADQAKAAAHZ4AAAQAAUkADhIkAMgUEAEhpAwhjRIkIJgUAIGUAAlM6ihh6KCNkODMuABAYATgHXFQXKEx2MlZTdTYCQjEJhAkIbjwzPwEXRIOKG0CJVQuKhBdpZGIwBU3QADgfPCpTC2HJiSFdiYEAIfkEBAUAAAAsBQAAAAsADgAAB3mAAAA6TAGChwALABwmARIuHYcpABlAAC1QOIcCHg55F3IFADYeAVwUMjhBXkkUXz42MQmCA1piM2dBAYaII6KIiE1jX1hkwAAeRTdrX7yHJA6HMYgBN3x5ig4dEEMsRhd3V21aAicvBQ96UgBbGwkRARkjAFZRioKBACH5BAQFAAAALAgAAQAIAA8AAAdigAoBBy0lAIcjABQCFYcAITI7LwBaFwEPWSFOcWpjNgADBiNQYiyOABxPp4cLG2U1Lo49UF92ZY4FVqsBZipnSgAXJm0EAm9vNmRLFgUAcSQDiT58BI6CF2DNhykBACIJjoEAIfkEBAUAAAAsBgACAAoADgAAB22AABkjABQCPQCJHg4hMjsvAAcEARQyD1khNhURIBIJiQMHTwIhGImnAEeQqKcaI0g7BawyG15eSKwcK6yJAWMzZA8AO0pxQmYEBUVmWiFfbQ4qLgAeRwMDPlMAZzwoqGhTARVrUqhQcAMAnqeBACH5BAQFAAAALAMABQANAAsAAAdygAJCMQkAAAMHTwIFFwAXRAGGkh0sklULkpIQDhMMRwVNmYYaJgohUgsskZlEKJJIbQiZAXpQIDIALR5GYhcYGW4aR301WgATYBFjaCszIQAERAMaPHADZ3UAajNhlh84AF9zAzJGVZIDsgBeWIVahYaBACH5BAQFAAAALAAACAAQAAgAAAdlgBMNDUAoAIeIIi0kDVKIFAIDiIcYF5NDUDl7NpMAKQJUIgAJHzkbBFAbND0dGyIoQCYGAEtZAEcqChtnJ1AcAEknkodDN1MDXmYAI3IVnQAdcxMAZD4BSWUvzwEQhztjkloJiIEAIfkEBAUAAAAsAAAGAA0ACgAAB2SAAIJWGwOChx0sUDMzZkGHhxAOfUVtRRmQgiIthywkhpAYFwBDZHt1Epk/AgNGfGU9Yn8LMihdCCwAR5gdM0shaiV5W5AQX3QBIGUAP1EahxdGKwBINQEiMCiHAakAKS6GBgmBACH5BAQFAAAALAAAAwALAA0AAAdygABPGAA6Ah4OITI7Az5XLiJYGTIPWSEATWx8c04xAAADB58ADmQDo59eWF9wHaifeGs3aEevqCUMp68QSG1GBq8DblMuCw0MQ0NKXQAUFAAYUA5MBQ8CozZeagE/IwBWow81JwATCgEIowESnyspAQCBACH5BAQFAAAALAAAAAAIAA8AAAdhgACCAAmCOoM4b4ccg0N8dQAZACgeAFUWIQ0DM3MKCGhQJ5NYKmgIB4MAHF4DgjtlZGolg2RYWGcoqYIXRAGDEiluZagAAxtQBUkZHRAAfnEAPQInL4MGJBEBkoIECg+qgQA7\" title=\"Replacing Emoji...\"></div>","summary":"<p>This chapter describes the DOM Event Model. The <a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-Event\" title=\"http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-Event\" target=\"_blank\">Event</a> interface itself is described, as well as the interfaces for event registration on nodes in the DOM, and <a title=\"en/DOM/element.addEventListener\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element.addEventListener\">event listeners</a>, and several longer examples that show how the various event interfaces relate to one another.</p>\n<p>There is an excellent diagram that clearly explains the three phases of event flow through the DOM in the <a class=\"external\" title=\"http://www.w3.org/TR/DOM-Level-3-Events/#dom-event-architecture\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-3-Events/#dom-event-architecture\" target=\"_blank\">DOM Level 3 Events draft</a>.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.stopPropagation","name":"stopPropagation","help":"Stops the propagation of events further along in the DOM."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.preventDefault","name":"preventDefault","help":"Cancels the event (if it is cancelable)."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/event.preventCapture","name":"preventCapture","help":"Obsolete, use <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/event.stopPropagation\">event.stopPropagation</a></code>\n instead."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.stopImmediatePropagation","name":"stopImmediatePropagation","help":"For this particular event, no other listener will be called. Neither those attached on the same element, nor those attached on elements which will be traversed later (in capture phase, for instance)"},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/event.preventBubble","name":"preventBubble","help":"Prevents the event from bubbling. Obsolete, use <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/event.stopPropagation\">event.stopPropagation</a></code>\n instead."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.initEvent","name":"initEvent","help":"Initializes the value of an Event created through the <code>DocumentEvent</code> interface."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.originalTarget","name":"originalTarget","help":"The original target of the event, before any retargetings (Mozilla-specific)."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.timeStamp","name":"timeStamp","help":"The time that the event was created."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.bubbles","name":"bubbles","help":"A boolean indicating whether the event bubbles up through the DOM or not."},{"name":"webkitInputSource","help":"The type of device that generated the event. This is a Gecko-specific value.","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.defaultPrevented","name":"defaultPrevented","help":"Indicates whether or not <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/event.preventDefault\">event.preventDefault()</a></code>\n has been called on the event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.target","name":"target","help":"A reference to the target to which the event was originally dispatched."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.currentTarget","name":"currentTarget","help":"A reference to the currently registered target for the event."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/event.isTrusted","name":"isTrusted","help":"Indicates whether or not the event was initiated by the browser (after a user click for instance) or by a script (using an event creation method, like <a title=\"event.initEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/event.initEvent\">event.initEvent</a>)"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.eventPhase","name":"eventPhase","help":"Indicates which phase of the event flow is being processed."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.explicitOriginalTarget","name":"explicitOriginalTarget","help":"The explicit original target of the event (Mozilla-specific)."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.cancelBubble","name":"cancelBubble","help":"A boolean indicating whether the bubbling of the event has been canceled or not."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.cancelable","name":"cancelable","help":"A boolean indicating whether the event is cancelable."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.type","name":"type","help":"The name of the event (case-insensitive)."}],"srcUrl":"https://developer.mozilla.org/en/DOM/event"},"SVGTransform":{"title":"SVGTransform","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"<p><code>SVGTransform</code> is the interface for one of the component transformations within an <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGTransformList\">SVGTransformList</a></code>\n; thus, an <code>SVGTransform</code> object corresponds to a single component (e.g., <code>scale(…)</code> or <code>matrix(…)</code>) within a \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/transform\">transform</a></code> attribute.</p>\n<p>An <code>SVGTransform</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>","members":[{"name":"setMatrix","help":"<p>Sets the transform type to <code>SVG_TRANSFORM_MATRIX</code>, with parameter matrix defining the new transformation. Note that the values from the parameter <code>matrix</code> are copied.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when attempting to modify a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"setTranslate","help":"<p>Sets the transform type to <code>SVG_TRANSFORM_TRANSLATE</code>, with parameters <code>tx</code> and <code>ty</code> defining the translation amounts.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when attempting to modify a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"setScale","help":"<p>Sets the transform type to <code>SVG_TRANSFORM_SCALE</code>, with parameters <code>sx</code> and <code>sy</code> defining the scale amounts.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when attempting to modify a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"setRotate","help":"<p>Sets the transform type to <code>SVG_TRANSFORM_ROTATE</code>, with parameter <code>angle</code> defining the rotation angle and parameters <code>cx</code> and <code>cy</code> defining the optional center of rotation.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when attempting to modify a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"setSkewX","help":"<p>Sets the transform type to <code>SVG_TRANSFORM_SKEWX</code>, with parameter <code>angle</code> defining the amount of skew.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when attempting to modify a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"setSkewY","help":"<p>Sets the transform type to <code>SVG_TRANSFORM_SKEWY</code>, with parameter <code>angle</code> defining the amount of skew.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when attempting to modify a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"SVG_TRANSFORM_UNKNOWN","help":"The unit type is not one of predefined unit types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.","obsolete":false},{"name":"SVG_TRANSFORM_MATRIX","help":"A <code>matrix(…)</code> transformation","obsolete":false},{"name":"SVG_TRANSFORM_TRANSLATE","help":"A <code>translate(…)</code> transformation","obsolete":false},{"name":"SVG_TRANSFORM_SCALE","help":"A <code>scale(…)</code> transformation","obsolete":false},{"name":"SVG_ANGLETYPE_ROTATE","help":"A <code>rotate(…)</code> transformation","obsolete":false},{"name":"SVG_ANGLETYPE_SKEWX","help":"A <code>skewx(…)</code> transformation","obsolete":false},{"name":"SVG_ANGLETYPE_SKEWY","help":"A <code>skewy(…)</code> transformation","obsolete":false},{"name":"type","help":"The type of the value as specified by one of the SVG_TRANSFORM_* constants defined on this interface.","obsolete":false},{"name":"angle","help":"A convenience attribute for <code>SVG_TRANSFORM_ROTATE</code>, <code>SVG_TRANSFORM_SKEWX</code> and <code>SVG_TRANSFORM_SKEWY</code>. It holds the angle that was specified.<br> <br> For <code>SVG_TRANSFORM_MATRIX</code>, <code>SVG_TRANSFORM_TRANSLATE</code> and <code>SVG_TRANSFORM_SCALE</code>, <code>angle</code> will be zero.","obsolete":false},{"name":"matrix","help":"<p>The matrix that represents this transformation. The matrix object is live, meaning that any changes made to the <code>SVGTransform</code> object are immediately reflected in the matrix object and vice versa. In case the matrix object is changed directly (i.e., without using the methods on the <code>SVGTransform</code> interface itself) then the type of the <code>SVGTransform</code> changes to <code>SVG_TRANSFORM_MATRIX</code>.</p> <ul> <li>For <code>SVG_TRANSFORM_MATRIX</code>, the matrix contains the a, b, c, d, e, f values supplied by the user.</li> <li>For <code>SVG_TRANSFORM_TRANSLATE</code>, e and f represent the translation amounts (a=1, b=0, c=0 and d=1).</li> <li>For <code>SVG_TRANSFORM_SCALE</code>, a and d represent the scale amounts (b=0, c=0, e=0 and f=0).</li> <li>For <code>SVG_TRANSFORM_SKEWX</code> and <code>SVG_TRANSFORM_SKEWY</code>, a, b, c and d represent the matrix which will result in the given skew (e=0 and f=0).</li> <li>For <code>SVG_TRANSFORM_ROTATE</code>, a, b, c, d, e and f together represent the matrix which will result in the given rotation. When the rotation is around the center point (0, 0), e and f will be zero.</li> </ul>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGTransform"},"SVGFEConvolveMatrixElement":{"title":"feConvolveMatrix","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The filter modifies a pixel by means of a convolution matrix, that also takes neighboring pixels into account.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/targetY","name":"targetY","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/edgeMode","name":"edgeMode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/kernelUnitLength","name":"kernelUnitLength","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in","name":"in","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/preserveAlpha","name":"preserveAlpha","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/divisor","name":"divisor","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/targetX","name":"targetX","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/kernelMatrix","name":"kernelMatrix","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/bias","name":"bias","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/order","name":"order","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix"},"HTMLFormElement":{"title":"HTMLFormElement","examples":["<p>The following example shows how to create a new form element, modify its attributes and submit it.</p>\n<pre class=\"deki-transform\">// Create a form\nvar f = document.createElement(\"form\");\n\n// Add it to the document body\ndocument.body.appendChild(f);\n\n// Add action and method attributes\nf.action = \"/cgi-bin/some.cgi\";\nf.method = \"POST\"\n\n// Call the form's submit method\nf.submit();\n</pre>\n<p>In addition, the following complete HTML document shows how to extract information from a form element and to set some of its attributes.</p>\n<pre class=\"deki-transform\"><title>Form example</title>\n<script type=\"text/javascript\">\n function getFormInfo() {\n var info;\n\n // Get a reference using the forms collection\n var f = document.forms[\"formA\"];\n info = \"f.elements: \" + f.elements + \"\\n\"\n + \"f.length: \" + f.length + \"\\n\"\n + \"f.name: \" + f.name + \"\\n\"\n + \"f.acceptCharset: \" + f.acceptCharset + \"\\n\"\n + \"f.action: \" + f.action + \"\\n\"\n + \"f.enctype: \" + f.enctype + \"\\n\"\n + \"f.encoding: \" + f.encoding + \"\\n\"\n + \"f.method: \" + f.method + \"\\n\"\n + \"f.target: \" + f.target;\n document.forms[\"formA\"].elements['tex'].value = info;\n }\n\n // A reference to the form is passed from the\n // button's onclick attribute using 'this.form'\n function setFormInfo(f) {\n f.method = \"GET\";\n f.action = \"/cgi-bin/evil_executable.cgi\";\n f.name = \"totally_new\";\n }\n</script>\n\n<h1>Form example</h1>\n\n<form name=\"formA\" id=\"formA\"\n action=\"/cgi-bin/test\" method=\"POST\">\n <p>Click \"Info\" to see information about the form.\n Click set to change settings, then info again\n to see their effect</p>\n <p>\n <input type=\"button\" value=\"info\"\n onclick=\"getFormInfo();\">\n <input type=\"button\" value=\"set\"\n onclick=\"setFormInfo(this.form);\">\n <input type=\"reset\" value=\"reset\">\n <br>\n <textarea id=\"tex\" style=\"height:15em; width:20em\">\n </textarea>\n </p>\n</form>\n</pre>"],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLFormElement","specification":"<p><a class=\" external\" title=\"http://www.w3.org/TR/html5/forms.html#the-form-element\" rel=\"external\" href=\"http://www.w3.org/TR/html5/forms.html#the-form-element\" target=\"_blank\">HTML 5, Section 4.10.3, The form Element</a></p>\n<p><a class=\" external\" title=\"http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-40002357\" rel=\"external\" href=\"http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-40002357\" target=\"_blank\">DOM Level 2 HTML, Section 1.6.5, Object definitions</a></p>","summary":"<p><code>FORM</code> elements share all of the properties and methods of other HTML elements described in the <a title=\"en/DOM/element\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> section.</p>\n<p>This interface provides methods to create and modify <code>FORM</code> elements using the DOM.</p>","members":[{"name":"dispatchFormChange","help":"Broadcasts form change events. That is, for each item in the <strong>elements</strong> collection, fire an event named formchange at the item.","obsolete":false},{"name":"dispatchFormInput","help":"Broadcasts form input events. That is, for each item in the <strong>elements</strong> collection, fire an event named <code>forminput</code> at the item.","obsolete":false},{"name":"item","help":"Gets the item in the <strong>elements</strong> collection at the specified index, or null if there is no item at that index. You can also specify the index in array-style brackets or parentheses after the form object name, without calling this method explicitly.","obsolete":false},{"name":"namedItem","help":"Gets the item or list of items in <strong>elements</strong> collection whose <strong>name</strong> or <strong>id</strong> match the specified name, or null if no items match. You can also specify the name in array-style brackets or parentheses after the form object name, without calling this method explicitly.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.submit","name":"submit","help":"Submits the form to the server.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.reset","name":"reset","help":"Resets the forms to its initial state.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.acceptCharset","name":"acceptCharset","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-accept-charset\">accept-charset</a></code>\n HTML attribute, containing a list of character encodings that the server accepts.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.action","name":"action","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-action\">action</a></code>\n HTML attribute, containing the URI of a program that processes the information submitted by the form.","obsolete":false},{"name":"autocomplete","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-autocomplete\">autocomplete</a></code>\n HTML attribute, containing a string that indicates whether the controls in this form can have their values automatically populated by the browser.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.elements","name":"elements","help":"All the form controls belonging to this form element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.encoding","name":"encoding","help":"Synonym for <strong>enctype</strong>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.enctype","name":"enctype","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-enctype\">enctype</a></code>\n HTML attribute, indicating the type of content that is used to transmit the form to the server. Only specified values can be set.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.length","name":"length","help":"The number of controls in the form.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.method","name":"method","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-method\">method</a></code>\n HTML attribute, indicating the HTTP method used to submit the form. Only specified values can be set.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.name","name":"name","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-name\">name</a></code>\n HTML attribute, containing the name of the form.","obsolete":false},{"name":"noValidate","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-novalidate\">novalidate</a></code>\n HTML attribute, indicating that the form should not be validated.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/form.target","name":"target","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-target\">target</a></code>\n HTML attribute, indicating where to display the results received from submitting the form.","obsolete":false}]},"SVGPathSegLinetoHorizontalRel":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"Range":{"title":"range","summary":"<p>The <code>Range</code> object represents a fragment of a document that can contain nodes and parts of text nodes in a given document.</p>\n<p>A range can be created using the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Document.createRange\">Document.createRange</a></code>\n method of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Document\">Document</a></code>\n object. Range objects can also be retrieved by using the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Selection.getRangeAt\" class=\"new\">Selection.getRangeAt</a></code>\n method of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Selection\">Selection</a></code>\n object.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.comparePoint","name":"comparePoint","help":"Returns -1, 0, or 1 indicating whether the point occurs before, inside, or after the range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.intersectsNode","name":"intersectsNode","help":"Returns a <code>boolean</code> indicating whether the given node intersects the range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.selectNode","name":"selectNode","help":"Sets the Range to contain the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n and its contents."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.compareNode","name":"compareNode","help":"Returns a constant representing whether the <a title=\"en/DOM/Node\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a> is before, after, inside, or surrounding the range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.setEndAfter","name":"setEndAfter","help":"Sets the end position of a Range relative to another <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.setEndBefore","name":"setEndBefore","help":"Sets the end position of a Range relative to another <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.extractContents","name":"extractContents","help":"Moves contents of a Range from the document tree into a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DocumentFragment\">DocumentFragment</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.insertNode","name":"insertNode","help":"Insert a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n at the start of a Range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.getClientRects","name":"getClientRects","help":"Returns a list of <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/ClientRect\" class=\"new\">ClientRect</a></code>\n objects that aggregates the results of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Element.getClientRects\">Element.getClientRects()</a></code>\n for all the elements in the range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.cloneContents","name":"cloneContents","help":"Returns a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DocumentFragment\">DocumentFragment</a></code>\n copying the nodes of a Range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.deleteContents","name":"deleteContents","help":"Removes the contents of a Range from the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Document\">Document</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.compareBoundaryPoints","name":"compareBoundaryPoints","help":"Compares the boundary points of two Ranges."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.setStartBefore","name":"setStartBefore","help":"Sets the start position of a Range relative to another <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.detach","name":"detach","help":"Releases Range from use to improve performance."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.getBoundingClientRect","name":"getBoundingClientRect","help":"Returns a <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/ClientRect\" class=\"new\">ClientRect</a></code>\n object which bounds the entire contents of the range; this would be the union of all the rectangles returned by <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/range.getClientRects\">range.getClientRects()</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.isPointInRange","name":"isPointInRange","help":"Returns a <code>boolean</code> indicating whether the given point is in the range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.selectNodeContents","name":"selectNodeContents","help":"Sets the Range to contain the contents of a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.cloneRange","name":"cloneRange","help":"Returns a Range object with boundary points identical to the cloned Range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.toString","name":"toString","help":"Returns the text of the Range"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.setStart","name":"setStart","help":"Sets the start position of a Range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.setStartAfter","name":"setStartAfter","help":"Sets the start position of a Range relative to another <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.createContextualFragment","name":"createContextualFragment","help":"Returns a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DocumentFragment\">DocumentFragment</a></code>\n created from a given string of code."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.setEnd","name":"setEnd","help":"Sets the end position of a Range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.collapse","name":"collapse","help":"Collapses the Range to one of its boundary points."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.surroundContents","name":"surroundContents","help":"Moves content of a Range into a new <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.startOffset","name":"startOffset","help":"Returns a number representing where in the startContainer the Range starts."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.startContainer","name":"startContainer","help":"Returns the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n within which the Range starts."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.endOffset","name":"endOffset","help":"Returns a number representing where in the endContainer the Range ends."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.collapsed","name":"collapsed","help":"Returns a <code>boolean</code> indicating whether the range's start and end points are at the same position."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.endContainer","name":"endContainer","help":"Returns the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n within which the Range ends."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/range.commonAncestorContainer","name":"commonAncestorContainer","help":"Returns the deepest <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n that contains the startContainer and endContainer Nodes."}],"srcUrl":"https://developer.mozilla.org/en/DOM/range"},"HTMLIFrameElement":{"title":"HTMLIFrameElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/iframe\"><iframe></a></code>\n HTML Element","summary":"DOM iframe objects expose the <a class=\"external\" href=\"http://www.w3.org/TR/html5/the-iframe-element.html#htmliframeelement\" rel=\"external nofollow\" target=\"_blank\" title=\"http://www.w3.org/TR/html5/the-iframe-element.html#htmliframeelement\">HTMLIFrameElement</a> (or <span><a href=\"https://developer.mozilla.org/en/HTML\" rel=\"custom nofollow\">HTML 4</a></span> <a class=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-50708718\" rel=\"external nofollow\" target=\"_blank\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-50708718\"><code>HTMLIFrameElement</code></a>) interface, which provides special properties and methods (beyond the regular <a href=\"https://developer.mozilla.org/en/DOM/element\" rel=\"internal\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of inline frame elements.","members":[{"name":"align","help":"Specifies the alignment of the frame with respect to the surrounding context.","obsolete":true},{"name":"contentDocument","help":"The active document in the inline frame's nested browsing context.","obsolete":false},{"name":"contentWindow","help":"The window proxy for the nested browsing context.","obsolete":false},{"name":"frameborder","help":"Indicates whether to create borders between frames.","obsolete":false},{"name":"height","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/iframe#attr-height\">height</a></code>\n HTML attribute, indicating the height of the frame.","obsolete":false},{"name":"longDesc","help":"URI of a long description of the frame.","obsolete":false},{"name":"marginHeight","help":"Height of the frame margin.","obsolete":false},{"name":"marginWidth","help":"Width of the frame margin.","obsolete":false},{"name":"webkitallowfullscreen","help":"Indicates whether or not the inline frame is willing to be placed into full screen mode. See <a title=\"https://developer.mozilla.org/en/DOM/Using_full-screen_mode\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Using_full-screen_mode\">Using full-screen mode</a> for details.","obsolete":false},{"name":"name","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/iframe#attr-name\">name</a></code>\n HTML attribute, containing a name by which to refer to the frame.","obsolete":false},{"name":"sandbox","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/iframe#attr-sandbox\">sandbox</a></code>\n HTML attribute, indicating extra restrictions on the behavior of the nested content.","obsolete":false},{"name":"scrolling","help":"Indicates whether the browser should provide scrollbars for the frame.","obsolete":false},{"name":"seamless","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/iframe#attr-seamless\">seamless</a></code>\n HTML attribute, indicating that the inline frame should be rendered seamlessly with the parent document.","obsolete":false},{"name":"src","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/iframe#attr-src\">src</a></code>\n HTML attribute, containing the address of the content to be embedded.","obsolete":false},{"name":"srcdoc","help":"The content to display in the frame.","obsolete":false},{"name":"width","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/iframe#attr-width\">width</a></code>\n HTML attribute, indicating the width of the frame.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLIFrameElement"},"IDBDatabaseException":{"title":"IDBDatabaseException","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>12 \n<span title=\"prefix\">-webkit</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>VER_ERR</code></td> <td><span title=\"Not supported.\">--</span></td> <td>10.0 (10.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>VER_ERR</code></td> <td><span title=\"Not supported.\">--</span></td> <td>10.0 (10.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"In the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API</a>, an <code>IDBDatabaseException</code> object represents exception conditions that can be encountered while performing database operations.","members":[{"url":"","name":"ABORT_ERR","help":"A request was aborted, for example, through a call to<a title=\"en/IndexedDB/IDBTransaction#abort\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#abort\"> <code>IDBTransaction.abort</code></a>.","obsolete":false},{"url":"","name":"CONSTRAINT_ERR","help":"A mutation operation in the transaction failed because a constraint was not satisfied. For example, an object, such as an object store or index, already exists and a request attempted to create a new one.","obsolete":false},{"url":"","name":"DATA_ERR","help":"Data provided to an operation does not meet requirements.","obsolete":false},{"url":"","name":"NON_TRANSIENT_ERR","help":"An operation was not allowed on an object. Unless the cause of the error is corrected, retrying the same operation would result in failure.","obsolete":false},{"url":"","name":"NOT_ALLOWED_ERR","help":"<p>An operation was called on an object where it is not allowed or at a time when it is not allowed. It also occurs if a request is made on a source object that has been deleted or removed.</p> <p>More specific variants of this error includes: <code> TRANSACTION_INACTIVE_ERR</code> and <code>READ_ONLY_ERR</code>.</p>","obsolete":false},{"url":"","name":"NOT_FOUND_ERR","help":"The operation failed, because the requested database object could not be found; for example, an object store did not exist but was being opened.","obsolete":false},{"url":"","name":"QUOTA_ERR","help":"Either there's not enough remaining storage space or the storage quota was reached and the user declined to give more space to the database.","obsolete":false},{"url":"","name":"READ_ONLY_ERR","help":"A mutation operation was attempted in a <code>READ_ONLY</code> transaction.","obsolete":false},{"url":"","name":"TIMEOUT_ERR","help":"A lock for the transaction could not be obtained in a reasonable time.","obsolete":false},{"url":"","name":"TRANSACTION_INACTIVE_ERR","help":"A request was made against a transaction that is either not currently active or is already finished.","obsolete":false},{"url":"","name":"UNKNOWN_ERR","help":"The operation failed for reasons unrelated to the database itself, and it is not covered by any other error code; for example, a failure due to disk IO errors.","obsolete":false},{"url":"","name":"VER_ERR","help":"A request to open a database with a version lower than the one it already has. This can only happen with <a title=\"en/IndexedDB/IDBOpenDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBOpenDBRequest\"><code>IDBOpenDBRequest</code></a>.","obsolete":false},{"url":"","name":"code","help":"The most appropriate error code for the condition.","obsolete":false},{"url":"","name":"message","help":"Error message describing the exception raised.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException"},"DirectoryEntry":{"title":"DirectoryEntry","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>13\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<div><strong>DRAFT</strong> <div>This page is not complete.</div>\n</div>\n<p>The <code>DirectoryEntry</code> interface of the <a title=\"en/DOM/File_API/File_System_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File_API/File_System_API\">FileSystem API</a> represents a directory in a file system.</p>","members":[{"name":"getFile","help":"<p>Creates or looks up a file.</p>\n<pre>void moveTo (\n <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_9\"><span id=\"Parameter\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>path</dt> <dd>Either an absolute path or a relative path from this DirectoryEntry to the file to be looked up or created. It is an error to attempt to create a file whose immediate parent does not yet exist.</dd> <dt>options</dt>\n</dl>\n<ul> <li>If create and exclusive are both true, and the path already exists, getFile must fail.</li> <li> If create is true, the path doesn't exist, and no other error occurs, getFile must create it as a zero-length file and return a corresponding FileEntry. </li> <li>If create is not true and the path doesn't exist, getFile must fail. </li> <li>If create is not true and the path exists, but is a directory, getFile must fail. </li> <li>Otherwise, if no other error occurs, getFile must return a FileEntry corresponding to path.</li>\n</ul>\n<dl> <dt>successCallback</dt> <dd>A callback that is called to return the file selected or created.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd> </dl> </div><div id=\"section_10\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl> </div>","obsolete":false},{"name":"getDirectory","help":"<p>Creates or looks up a directory.</p>\n<pre>void vopyTo (\n <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_12\"><span id=\"Parameter_2\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>path</dt> <dd>Either an absolute path or a relative path from this DirectoryEntry to the file to be looked up or created. It is an error to attempt to create a file whose immediate parent does not yet exist.</dd> <dt>options</dt>\n</dl>\n<ul> <li>If create and exclusive are both true, and the path already exists, getDirectory must fail.</li> <li> If create is true, the path doesn't exist, and no other error occurs, getDirectory must create it as a zero-length file and return a corresponding getDirectory. </li> <li>If create is not true and the path doesn't exist, getDirectory must fail. </li> <li>If create is not true and the path exists, but is a directory, getDirectory must fail. </li> <li>Otherwise, if no other error occurs, getFile must return a getDirectory corresponding to path.</li>\n</ul> <dt>successCallback</dt> <dd>A callback that is called to return the DirectoryEntry selected or created.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n </div><div id=\"section_13\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl> </div>","obsolete":false},{"name":"removeRecursively","help":"<p>Deletes a directory and all of its contents, if any. If you are deleting a directory that contains a file that cannot be removed, some of the contents of the directory might be deleted. You cannot delete the root directory of a file system.</p>\n<pre>DOMString toURL (\n <em>(in </em>VoidCallback successCallback, optional ErrorCallback errorCallback<em>);</em>\n);</pre>\n<div id=\"section_15\"><span id=\"Parameter_3\"></span><h5 class=\"editable\">Parameter</h5>\n<dl>\n<dt>successCallback</dt> <dd>A callback that is called to return the DirectoryEntry selected or created.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl> </div><div id=\"section_16\"><span id=\"Returns_5\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"createReader","help":"<p>Creates a new DirectoryReader to read entries from this Directory.</p>\n<pre>void getMetada ();</pre> <div id=\"section_7\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>DirectoryReader</code></dt>\n</dl> </div>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/DirectoryEntry"},"HTMLOptGroupElement":{"title":"optgroup","examples":["<pre name=\"code\" class=\"xml\"><select>\n <optgroup label=\"Group 1\">\n <option>Option 1.1</option>\n </optgroup> \n <optgroup label=\"Group 2\">\n <option>Option 2.1</option>\n <option>Option 2.2</option>\n </optgroup>\n <optgroup label=\"Group 3\" disabled>\n <option>Option 3.1</option>\n <option>Option 3.2</option>\n <option>Option 3.3</option>\n </optgroup>\n</select></pre>\n \n<p><form> <select> <optgroup label=\"Group 1\">\n<option>Option 1.1</option>\n</optgroup> <optgroup label=\"Group 2\">\n<option>Option 2.1</option>\n<option>Option 2.2</option>\n</optgroup> <optgroup disabled=\"\" label=\"Group 3\">\n<option>Option 3.1</option>\n<option>Option 3.2</option>\n<option>Option 3.3</option>\n</optgroup> </select> </form></p>"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/optgroup","seeAlso":"Other form-related elements: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/legend\"><legend></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/label\"><label></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/button\"><button></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/select\"><select></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/datalist\"><datalist></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/option\"><option></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/fieldset\"><fieldset></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea\"><textarea></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/keygen\"><keygen></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input\"><input></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/output\"><output></a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/progress\"><progress></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/meter\"><meter></a></code>\n.","summary":"In a web form, the HTML <em>optgroup</em> element (<optgroup>) creates a grouping of options within a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/select\"><select></a></code>\n element.","members":[{"obsolete":false,"url":"","name":"label","help":"The name of the group of options, which the browser can use when labeling the options in the user interface. This attribute is mandatory if this element is used."},{"obsolete":false,"url":"","name":"disabled","help":"If this Boolean attribute is set, none of the items in this option group is selectable. Often browsers grey out such control and it won't received any browsing events, like mouse clicks or focus-related ones."}]},"SVGZoomAndPan":{"title":"SVGViewElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGViewElement","skipped":true,"cause":"Suspect title"},"Console":{"title":"Using the Web Console","examples":["<p>Let's say you have a DOM node with the ID \"title\". In fact, this page you're reading right now has one, so you can open up the Web Console and try this right now.</p>\n<p>Let's take a look at the contents of that node by using the <code>$()</code> and <code>inspect()</code> functions:</p>\n<p><code>inspect($(\"title\"))</code></p>\n<p>This automatically opens up the object inspector, showing you the contents of the DOM node with the ID \"title\".</p>","<p>Let's say you have a DOM node with the ID \"title\". In fact, this page you're reading right now has one, so you can open up the Web Console and try this right now.</p>\n<p>Let's take a look at the contents of that node by using the <code>$()</code> and <code>inspect()</code> functions:</p>\n<p><code>inspect($(\"title\"))</code></p>\n<p>This automatically opens up the object inspector, showing you the contents of the DOM node with the ID \"title\".</p>","<p>That's well and good if you happen to be sitting at the browser exhibiting some problem, but let's say you're debugging remotely for a user, and need a look at the contents of a node. You can have your user open up the Web Console and dump the contents of the node into the log, then copy and paste it into an email to you, using the <code>pprint()</code> function:</p>\n<pre>pprint($(\"title\"))\n</pre>\n<p>This spews out the contents of the node so you can take a look. Of course, this may be more useful with other objects than a DOM node, but you get the idea.</p>","<p>That's well and good if you happen to be sitting at the browser exhibiting some problem, but let's say you're debugging remotely for a user, and need a look at the contents of a node. You can have your user open up the Web Console and dump the contents of the node into the log, then copy and paste it into an email to you, using the <code>pprint()</code> function:</p>\n<pre>pprint($(\"title\"))\n</pre>\n<p>This spews out the contents of the node so you can take a look. Of course, this may be more useful with other objects than a DOM node, but you get the idea.</p>"],"srcUrl":"https://developer.mozilla.org/en/Using_the_Web_Console","seeAlso":"Web Console Helpers","summary":"<p>Beginning with Firefox 4, the old <a title=\"en/Error Console\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Error_Console\">Error Console</a> has been deprecated in favor of the new, improved Web Console. The Web Console is something of a heads-up display for the web, letting you view error messages and other logged information. In addition, there are methods you can call to output information to the console, making it a useful debugging aid, and you can evaluate JavaScript on the fly.</p>\n<p><a title=\"webconsole.png\" rel=\"internal\" href=\"https://developer.mozilla.org/@api/deki/files/4748/=webconsole.png\"><img alt=\"webconsole.png\" class=\"internal default\" src=\"https://developer.mozilla.org/@api/deki/files/4748/=webconsole.png\"></a></p>\n<p>The Web Console won't replace more advanced debugging tools like <a class=\"external\" title=\"http://getfirebug.com/\" rel=\"external\" href=\"http://getfirebug.com/\" target=\"_blank\">Firebug</a>; what it does give you, however, is a way to let remote users of your site or web application gather and report console logs and other information to you. It also provides a lightweight way to debug content if you don't happen to have Firebug installed when something goes wrong.</p>\n<div class=\"note\"><strong>Note:</strong> The Error Console is still available; you can re-enable it by changing the <code>devtools.errorconsole.enabled</code> preference to <code>true</code> and restarting the browser.</div>","members":[]},"EntrySync":{"title":"EntrySync","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>13\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<div><strong>DRAFT</strong> <div>This page is not complete.</div>\n</div>\n<p>The <code>EntrySync</code> interface of the <a title=\"en/DOM/File_API/File_System_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File_API/File_System_API\">FileSystem API</a> represents entries in a file system. The entries can be a file or a <a href=\"https://developer.mozilla.org/en/DOM/File_API/File_system_API/DirectoryEntry\" rel=\"internal\" title=\"en/DOM/File_API/File_system_API/DirectoryEntry\">DirectoryEntry</a>.</p>","members":[{"name":"getMetadata","help":"<p>Look up metadata about this entry.</p>\n<pre>void getMetada (\n in MetadataCallback ErrorCallback\n);</pre>\n<div id=\"section_4\"><span id=\"Parameter\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>successCallback</dt> <dd>A callback that is called with the time of the last modification.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_5\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"getParent","help":"<p>Look up the parent <code>DirectoryEntry</code> containing this entry. If this entry is the root of its filesystem, its parent is itself.</p>\n<pre>void getParent (\n <em>(in EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_19\"><span id=\"Parameter_6\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>parent</dt> <dd>The directory to which to move the entry.</dd> <dt>newName</dt> <dd>The new name of the entry. Defaults to the entry's current name if unspecified.</dd> <dt>successCellback</dt> <dd>A callback that is called with the entry for the new object.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_20\"><span id=\"Returns_6\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl> </div>","obsolete":false},{"name":"remove","help":"<p>Deletes a file or directory. You cannot delete an empty directory or the root directory of a filesystem.</p>\n<pre>void remove (\n <em>(in VoidCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_16\"><span id=\"Parameter_5\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>successCallback</dt> <dd>A callback that is called with the entry for the new object.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_17\"><span id=\"Returns_5\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"copyTo","help":"<p>Copy an entry to a different location on the file system. You cannot copy an entry inside itself if it is a directory nor can you copy it into its parent if a name different from its current one isn't provided. Directory copies are always recursive—that is, they copy all contents of the directory.</p>\n<pre>void vopyTo (\n <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_10\"><span id=\"Parameter_3\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>parent</dt> <dd>The directory to which to move the entry.</dd> <dt>newName</dt> <dd>The new name of the entry. Defaults to the entry's current name if unspecified.</dd> <dt>successCallback</dt> <dd>A callback that is called with the entry for the new object.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_11\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"moveTo","help":"<p>Move an entry to a different location on the file system. You cannot do the following:</p>\n<ul> <li>move a directory inside itself or to any child at any depth;</li> <li>move an entry into its parent if a name different from its current one isn't provided;</li> <li>move a file to a path occupied by a directory;</li> <li>move a directory to a path occupied by a file;</li> <li>move any element to a path occupied by a directory which is not empty.</li>\n</ul>\n<p>Moving a file over an existing file replaces that existing file. A move of a directory on top of an existing empty directory replaces that directory.</p>\n<pre>void moveTo (\n <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_7\"><span id=\"Parameter_2\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>parent</dt> <dd>The directory to which to move the entry.</dd> <dt>newName</dt> <dd>The new name of the entry. Defaults to the entry's current name if unspecified.</dd> <dt>successCallback</dt> <dd>A callback that is called with the entry for the new object.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"toURL","help":"<p>Returns a URL that can be used to identify this entry. It has no specific expiration. Bcause it describes a location on disk, it is valid for as long as that location exists. Users can supply <code>mimeType</code> to simulate the optional mime-type header associated with HTTP downloads.</p>\n<pre>DOMString toURL (\n <em>(in </em>optional DOMString mimeType<em>);</em>\n);</pre>\n<div id=\"section_13\"><span id=\"Parameter_4\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>mimeType</dt> <dd>For a FileEntry, the mime type to be used to interpret the file, when loaded through this URL.</dd>\n</dl>\n</div><div id=\"section_14\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>DOMString</code></dt>\n</dl>\n</div>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/EntrySync"},"SVGException":{"title":"User talk:Jeff Schiller","members":[],"srcUrl":"https://developer.mozilla.org/User_talk:Jeff_Schiller","skipped":true,"cause":"Suspect title"},"XPathEvaluator":{"title":"nsIDOMXPathEvaluator","seeAlso":"<li><a title=\"en/Introduction to using XPath in JavaScript\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript\">Introduction to using XPath in JavaScript</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document.evaluate\">document.evaluate</a></code>\n</li> <li>\n<a rel=\"custom\" href=\"http://www.w3.org/TR/DOM-Level-3-XPath\">DOM Level 3 XPath Specification</a></li> <li>\n<a rel=\"custom\" href=\"http://www.w3.org/TR/xpath\">XML Path Language (XPath)</a><span title=\"Recommendation\">REC</span></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathResult\">nsIDOMXPathResult</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathException\">nsIDOMXPathException</a></code>\n</li>","summary":"<div><div>\n\n<a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/xpath/nsIDOMXPathEvaluator.idl\"><code>dom/interfaces/xpath/nsIDOMXPathEvaluator.idl</code></a><span><a rel=\"internal\" href=\"https://developer.mozilla.org/en/Interfaces/About_Scriptable_Interfaces\" title=\"en/Interfaces/About_Scriptable_Interfaces\">Scriptable</a></span></div><span>This interface is used to evaluate XPath expressions against a DOM node.</span><div>Inherits from: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISupports\">nsISupports</a></code>\n<span>Last changed in Gecko 1.7 \n</span></div></div>\n<p></p>\n<p>Implemented by: <code>@mozilla.org/dom/xpath-evaluator;1</code>. To create an instance, use:</p>\n<pre class=\"eval\">var domXPathEvaluator = Components.classes[\"@mozilla.org/dom/xpath-evaluator;1\"]\n .createInstance(Components.interfaces.nsIDOMXPathEvaluator);\n</pre>","members":[{"name":"createExpression","help":"<p>Creates an <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathExpression\">nsIDOMXPathExpression</a></code>\n which can then be used for (repeated) evaluations.</p>\n<div class=\"geckoVersionNote\">\n<p>\n</p><div class=\"geckoVersionHeading\">Gecko 1.9 note<div>(Firefox 3)\n</div></div>\n<p></p>\n<p>Prior to Gecko 1.9, you could call this method on documents other than the one you planned to run the XPath against; starting with Gecko 1.9, however, you must call it on the same document.</p>\n</div>\n\n<div id=\"section_4\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>expression</code></dt> <dd>A string representing the XPath to be created.</dd> <dt><code>resolver</code></dt> <dd>A name space resolver created by , or a user defined name space resolver. Read more on <a title=\"en/Introduction to using XPath in JavaScript#Implementing a User Defined Namespace Resolver\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript#Implementing_a_User_Defined_Namespace_Resolver\">Implementing a User Defined Namespace Resolver</a> if you wish to take the latter approach.</dd>\n</dl>\n</div><div id=\"section_5\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>An XPath expression, as an <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathExpression\">nsIDOMXPathExpression</a></code>\n object.</p>\n</div>","idl":"<pre class=\"eval\"> nsIDOMXPathExpression createExpression(\n in DOMString expression,\n in nsIDOMXPathNSResolver resolver\n );\n</pre>","obsolete":false},{"name":"createNSResolver","help":"<p>Creates an <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathExpression\">nsIDOMXPathExpression</a></code>\n which resolves name spaces with respect to the definitions in scope for a specified node. It is used to resolve prefixes within the XPath itself, so that they can be matched with the document. <code>null</code> is common for HTML documents or when no name space prefixes are used.</p>\n\n<div id=\"section_7\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>nodeResolver</code></dt> <dd>The node to be used as a context for name space resolution.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Return_value_2\"></span><h6 class=\"editable\">Return value</h6>\n<p>A name space resolver.</p>\n</div>","idl":"<pre class=\"eval\">nsIDOMXPathNSResolver createNSResolver(\n in nsIDOMNode nodeResolver\n);\n</pre>","obsolete":false},{"name":"evaluate","help":"<p>Evaluate the specified XPath expression.</p>\n\n<div id=\"section_10\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>expression</code></dt> <dd>A string representing the XPath to be evaluated.</dd> <dt><code>contextNode</code></dt> <dd>A DOM Node to evaluate the XPath expression against. To evaluate against a whole document, use the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document.documentElement\">document.documentElement</a></code>\n.</dd> <dt><code>resolver</code></dt> <dd>A name space resolver created by , or a user defined name space resolver. Read more on <a title=\"en/Introduction to using XPath in JavaScript#Implementing a User Defined Namespace Resolver\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript#Implementing_a_User_Defined_Namespace_Resolver\">Implementing a User Defined Namespace Resolver</a> if you wish to take the latter approach.</dd> <dt><code>type</code></dt> <dd>A number that corresponds to one of the type constants of <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsIXPathResult&ident=nsIXPathResult\" class=\"new\">nsIXPathResult</a></code>\n.</dd> <dt><code>result</code></dt> <dd>An existing <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsIXPathResult&ident=nsIXPathResult\" class=\"new\">nsIXPathResult</a></code>\n to use for the result. Using <code>null</code> will create a new <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsIXPathResult&ident=nsIXPathResult\" class=\"new\">nsIXPathResult</a></code>\n.</dd>\n</dl>\n</div><div id=\"section_11\"><span id=\"Return_value_3\"></span><h6 class=\"editable\">Return value</h6>\n<p>An XPath result.</p>\n</div>","idl":"<pre class=\"eval\">nsISupports evaluate(\n in DOMString expression,\n in nsIDOMNode contextNode,\n in nsIDOMXPathNSResolver resolver,\n in unsigned short type,\n in nsISupports result\n);\n</pre>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathEvaluator"},"SharedWorker":{"title":"SharedWorker","seeAlso":"<li><a title=\"En/DOM/Worker\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Worker\"><code>Worker</code></a></li> <li><a title=\"en/Using DOM workers\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Using_DOM_workers\">Using DOM workers</a></li>","summary":"Not yet implemented by Firefox.","members":[],"srcUrl":"https://developer.mozilla.org/En/DOM/SharedWorker"},"WebKitCSSKeyframesRule":{"title":"CSSRuleList","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/CSSRuleList","skipped":true,"cause":"Suspect title"},"HTMLSourceElement":{"title":"HTMLSourceElement","members":[{"name":"media","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/source#attr-media\">media</a></code>\n HTML attribute, containing the intended type of the media resource.","obsolete":false},{"name":"src","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/source#attr-src\">src</a></code>\n HTML attribute, containing the URL for the media resource.","obsolete":false},{"name":"type","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/source#attr-type\">type</a></code>\n HTML attribute, containing the type of the media resource.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLSourceElement"},"HTMLMetaElement":{"title":"HTMLMetaElement","summary":"The meta objects expose the <a class=\" external\" target=\"_blank\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-37041454\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-37041454\">HTMLMetaElement</a> interface which contains descriptive metadata about a document. This object inherits all of the properties and methods described in the <a class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> section.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/meta.scheme","name":"scheme","help":"Gets or sets the name of a scheme used to interpret the value of a meta-data property."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/meta.content","name":"content","help":"Gets or sets the value of meta-data property."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/meta.httpEquiv","name":"httpEquiv","help":"Gets or sets the name of an HTTP response header to define for a document."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/meta.name","name":"name","help":"Gets or sets the name of a meta-data property to define for a document."}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLMetaElement"},"ElementTimeControl":{"title":"SVGAnimationElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimationElement","skipped":true,"cause":"Suspect title"},"SVGMPathElement":{"title":"SVGMPathElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGMPathElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/mpath\"><mpath></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGMPathElement"},"SVGPathSegLinetoVerticalAbs":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"SVGRectElement":{"title":"SVGRectElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/SVGRectElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/rect\"><rect></a></code>\n SVG Element","summary":"The <code>SVGRectElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/rect\"><rect></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"width","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/width\">width</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/rect\"><rect></a></code>\n element.","obsolete":false},{"name":"height","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/height\">height</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/rect\"><rect></a></code>\n element.","obsolete":false},{"name":"rx","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/rx\">rx</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/rect\"><rect></a></code>\n element.","obsolete":false},{"name":"ry","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/ry\">ry</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/rect\"><rect></a></code>\n element.","obsolete":false}]},"TreeWalker":{"title":"treeWalker","summary":"<p>The <code>TreeWalker</code> object represents the nodes of a document subtree and a position within them.</p>\n<p>A TreeWalker can be created using the <code><a title=\"en/DOM/document.createTreeWalker\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.createTreeWalker\">createTreeWalker()</a></code> method of the <code><a title=\"en/DOM/document\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document\">document</a></code> object.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.previousSibling","name":"previousSibling","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.nextNode","name":"nextNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.lastChild","name":"lastChild","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.previousNode","name":"previousNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.firstChild","name":"firstChild","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.parentNode","name":"parentNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.nextSibling","name":"nextSibling","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.filter","name":"filter","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.ExpandEntityReferences","name":"expandEntityReferences","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.whatToShow","name":"whatToShow","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.root","name":"root","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/treeWalker.currentNode","name":"currentNode","help":""}],"srcUrl":"https://developer.mozilla.org/en/DOM/Treewalker","specification":"DOM Level 2 Traversal: TreeWalker"},"HTMLVideoElement":{"title":"HTMLVideoElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/HTMLVideoElement","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLAudioElement\">HTMLAudioElement</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLMediaELement\">HTMLMediaELement</a></code>\n</li> <li><a class=\" external\" rel=\"external\" href=\"http://people.mozilla.org/~cpearce/paint-stats-demo.html\" title=\"http://people.mozilla.org/~cpearce/paint-stats-demo.html\" target=\"_blank\">Demo of video paint statistics</a></li>","summary":"DOM <code>video</code> objects expose the <a class=\"external\" title=\"http://www.w3.org/TR/html5/video.html#htmlvideoelement\" rel=\"external\" href=\"http://www.w3.org/TR/html5/video.html#htmlvideoelement\" target=\"_blank\">HTMLVideoElement</a> interface, which provides special properties (beyond the regular <a href=\"https://developer.mozilla.org/en/DOM/element\" rel=\"internal\">element</a> object and <a title=\"en/DOM/HTMLMediaElement\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/HTMLMediaElement\">HTMLMediaElement</a> interfaces they also have available to them by inheritance) for manipulating video objects.","members":[{"name":"height","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video#attr-height\">height</a></code>\n HTML attribute, which specifies the height of the display area, in CSS pixels.","obsolete":false},{"name":"poster","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video#attr-poster\">poster</a></code>\n HTML attribute, which specifies an image to show while no video data is available.","obsolete":false},{"name":"videoHeight","help":"The intrinsic height of the resource in CSS pixels, taking into account the dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the format used by the resource. If the element's ready state is HAVE_NOTHING, the value is 0.","obsolete":false},{"name":"videoWidth","help":"The intrinsic width of the resource in CSS pixels, taking into account the dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the format used by the resource. If the element's ready state is HAVE_NOTHING, the value is 0.","obsolete":false},{"name":"width","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video#attr-width\">width</a></code>\n HTML attribute, which specifies the width of the display area, in CSS pixels.","obsolete":false}]},"FileReaderSync":{"title":"FileReaderSync","seeAlso":"<li>\n<a rel=\"custom\" href=\"http://dev.w3.org/2006/webapi/FileAPI/#FileReader-interface\">File API Specification: FileReaderSync</a><span title=\"Working Draft\">WD</span></li> <li>Related interfaces: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/FileReader\">FileReader</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/BlobBuilder\">BlobBuilder</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n</li>","summary":"<p>The <code>FileReaderSync</code> interface allows to read <code>File</code> or <code>Blob</code> objects in a synchronous way.</p>\n<p>This interface is <a title=\"https://developer.mozilla.org/En/DOM/Worker/Functions_available_to_workers\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Worker/Functions_available_to_workers\">only available</a> in <a title=\"Worker\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Worker\">workers</a> as it enables synchronous I/O that could potentially block.</p>","members":[{"name":"readAsDataURL","help":"<p>This method reads the contents of the specified <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code>. When the read operation is finished, it returns a data URL representing the file's data. If an error happened during the read, the adequate exception is sent.</p>\n\n<div id=\"section_5\"> <div id=\"section_17\"><span id=\"Parameters_4\"></span><h4 class=\"editable\"><span>Parameters</span></h4> <dl> <dt><code>blob</code></dt> <dd>The DOM <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code> to read.</dd> </dl>\n</div></div>\n<div id=\"section_6\"> <div id=\"section_18\"><span id=\"Return_value_4\"></span><h4 class=\"editable\"><span>Return value</span></h4> <p>An <a title=\"DOMString\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMString\"><code>DOMString</code></a> representing the file's data as a data URL.</p>\n</div></div>\n<div id=\"section_19\"><span id=\"Exceptions_4\"></span><h4 class=\"editable\"><span>Exceptions</span></h4>\n<p>The following exceptions can be raised by this method:</p>\n<dl> <dt><code>NotFoundError</code></dt> <dd>is raised when the resource represented by the DOM <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code> cannot be found, e. g. because it has been erased.</dd> <dt><code>SecurityError</code></dt> <dd>is raised when one of the following problematic situation is detected: <ul> <li>the resource has been modified by a third party;</li> <li>too many read are performed simultaneously;</li> <li>the file pointed by the resource is unsafe for a use from the Web (like it is a system file).</li> </ul> </dd> <dt><code>NotReadableError</code></dt> <dd>is raised when the resource cannot be read due to a permission problem, like a concurrent lock.</dd> <dt><code>EncodingError</code></dt> <dd>is raised when the resource is a data URL and exceed the limit length defined by each browser.</dd>\n</dl>\n<dl> <dt></dt>\n</dl></div>","idl":"<pre class=\"eval\">void readAsDataURL(\n in Blob file\n);\n</pre>","obsolete":false},{"name":"readAsText","help":"<p>This methods reads the specified blob's contents. When the read operation is finished, it returns a <a title=\"DOMString\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMString\"><code>DOMString</code></a> containing the file represented as a text string. The optional <strong><code>encoding</code></strong> parameter indicates the encoding to be used. If not present, the method will apply a detection algorithm for it. If an error happened during the read, the adequate exception is sent.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_3\"></span><h4 class=\"editable\">Parameters</h4>\n<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code> to read into the <a title=\"DOMString\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMString\"><code>DOMString</code></a>.</dd> <dt><code>encoding</code></dt> <dd>Optional. A string representing the encoding to be used, like <strong>iso-8859-1</strong> or <strong>UTF-8</strong>.</dd>\n</dl>\n</div><div id=\"section_14\"><span id=\"Return_value_3\"></span><h4 class=\"editable\">Return value</h4>\n<p>A <a href=\"https://developer.mozilla.org/en/DOM/DOMString\" rel=\"internal\" title=\"DOMString\"><code>DOMString</code></a> containing the raw binary data from the resource</p>\n</div><div id=\"section_15\"><span id=\"Exceptions_3\"></span><h4 class=\"editable\">Exceptions</h4>\n<p>The following exceptions can be raised by this method:</p>\n<dl> <dt><code>NotFoundError</code></dt> <dd>is raised when the resource represented by the DOM <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code> cannot be found, e. g. because it has been erased.</dd> <dt><code>SecurityError</code></dt> <dd>is raised when one of the following problematic situation is detected: <ul> <li>the resource has been modified by a third party;</li> <li>two many read are performed simultaneously;</li> <li>the file pointed by the resource is unsafe for a use from the Web (like it is a system file).</li> </ul> </dd> <dt><code>NotReadableError</code></dt> <dd>is raised when the resource cannot be read due to a permission problem, like a concurrent lock.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void readAsText(\n in Blob blob,\n in DOMString encoding \n<span style=\"border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;\" title=\"\">Optional</span>\n\n);\n</pre>","obsolete":false},{"name":"readAsBinaryString","help":"<p>This method reads the contents of the specified <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code>, which may be a <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code>. When the read operation is finished, it returns a <a title=\"DOMString\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMString\"><code>DOMString</code></a> containing the raw binary data from the file. If an error happened during the read, the adequate exception is sent.</p>\n<div class=\"note\"><strong>Note</strong> <strong>: </strong>This method is deprecated and <code>readAsArrayBuffer()</code> should be used instead.</div>\n\n<div id=\"section_9\"><span id=\"Parameters_2\"></span><h4 class=\"editable\">Parameters</h4>\n<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code> to read into the <a title=\"DOMString\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMString\"><code>DOMString</code></a>.</dd>\n</dl>\n</div><div id=\"section_10\"><span id=\"Return_value_2\"></span><h4 class=\"editable\">Return value</h4>\n<p><code>A </code><a title=\"DOMString\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMString\"><code>DOMString</code></a> containing the raw binary data from the resource</p>\n</div><div id=\"section_11\"><span id=\"Exceptions_2\"></span><h4 class=\"editable\">Exceptions</h4>\n<p>The following exceptions can be raised by this method:</p>\n<dl> <dt><code>NotFoundError</code></dt> <dd>is raised when the resource represented by the DOM <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code> cannot be found, e. g. because it has been erased.</dd> <dt><code>SecurityError</code></dt> <dd>is raised when one of the following problematic situation is detected: <ul> <li>the resource has been modified by a third party;</li> <li>two many read are performed simultaneously;</li> <li>the file pointed by the resource is unsafe for a use from the Web (like it is a system file).</li> </ul> </dd> <dt><code>NotReadableError</code></dt> <dd>is raised when the resource cannot be read due to a permission problem, like a concurrent lock.</dd> <dt><code>EncodingError</code></dt> <dd>is raised when the resource is a data URL and exceed the limit length defined by each browser.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void readAsBinaryString(\n in Blob blob\n);\n</pre>","obsolete":false},{"name":"readAsArrayBuffer","help":"<p>This method reads the contents of the specified <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code>. When the read operation is finished, it returns an <code><a href=\"../JavaScript_typed_arrays/ArrayBuffer\" rel=\"internal\" title=\"/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code> representing the file's data. If an error happened during the read, the adequate exception is sent.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h4 class=\"editable\">Parameters</h4>\n<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code> to read into the <code><a href=\"../JavaScript_typed_arrays/ArrayBuffer\" rel=\"internal\" title=\"/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>.</dd>\n</dl>\n</div><div id=\"section_6\"><span id=\"Return_value\"></span><h4 class=\"editable\">Return value</h4>\n<p>An <code><a href=\"../JavaScript_typed_arrays/ArrayBuffer\" rel=\"internal\" title=\"/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code> representing the file's data.</p>\n</div><div id=\"section_7\"><span id=\"Exceptions\"></span><h4 class=\"editable\">Exceptions</h4>\n<p>The following exceptions can be raised by this method:</p>\n<dl> <dt><code>NotFoundError</code></dt> <dd>is raised when the resource represented by the DOM <code><a href=\"https://developer.mozilla.org/en/DOM/Blob\" rel=\"custom\">Blob</a></code> or <code><a href=\"https://developer.mozilla.org/en/DOM/File\" rel=\"custom\">File</a></code> cannot be found, e. g. because it has been erased.</dd> <dt><code>SecurityError</code></dt> <dd>is raised when one of the following problematic situation is detected: <ul> <li>the resource has been modified by a third party;</li> <li>two many read are performed simultaneously;</li> <li>the file pointed by the resource is unsafe for a use from the Web (like it is a system file).</li> </ul> </dd> <dt><code>NotReadableError</code></dt> <dd>is raised when the resource cannot be read due to a permission problem, like a concurrent lock.</dd> <dt><code>EncodingError</code></dt> <dd>is raised when the resource is a data URL and exceed the limit length defined by each browser.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void readAsArrayBuffer(\n in Blob blob\n);\n</pre>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/FileReaderSync"},"MediaList":{"title":"XPCOM array guide","members":[],"srcUrl":"https://developer.mozilla.org/en/XPCOM_array_guide","skipped":true,"cause":"Suspect title"},"ValidityState":{"title":"ValidityState","summary":"The DOM <code>ValidityState</code> interface represents the <em>validity states</em> that an element can be in, with respect to constraint validation.","members":[{"name":"customError","help":"The element's custom validity message has been set to a non-empty string by calling the element's setCustomValidity() method.","obsolete":false},{"name":"patternMismatch","help":"The value does not match the specified \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-pattern\">pattern</a></code>\n.","obsolete":false},{"name":"rangeOverflow","help":"The value is greater than the specified \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-max\">max</a></code>\n.","obsolete":false},{"name":"rangeUnderflow","help":"The value is less than the specified \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-min\">min</a></code>\n.","obsolete":false},{"name":"stepMismatch","help":"The value does not fit the rules determined by \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-step\">step</a></code>\n.","obsolete":false},{"name":"tooLong","help":"<p>The value exceeds the specified <strong>maxlength</strong> for <a title=\"en/DOM/HTMLInputElement\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/HTMLInputElement\">HTMLInputElement</a> or <a title=\"en/DOM/textarea\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/HTMLTextAreaElement\">HTMLTextAreaElement</a> objects.</p> <div class=\"note\"><strong>Note:</strong> This will never be <code>true</code> in Gecko, because elements' values are prevented from being longer than <strong>maxlength</strong>.</div>","obsolete":false},{"name":"typeMismatch","help":"The value is not in the required syntax (when \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-type\">type</a></code>\n is <code>email</code> or <code>url</code>).","obsolete":false},{"name":"valid","help":"No other constraint validation conditions are true.","obsolete":false},{"name":"valueMissing","help":"The element has a \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-required\">required</a></code>\n attribute, but no value.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/ValidityState","specification":"W3C HTML5 Specification: Constraints: The Constraint Validation API"},"CSSStyleDeclaration":{"title":"CSSStyleDeclaration","examples":["var styleObj= document.styleSheets[0].cssRules[0].style;\nalert(styleObj.cssText);\nfor (var i = styleObj.length-1; i >= 0; i--) {\n var nameString = styleObj[i];\n styleObj.removeProperty(nameString);\n}\nalert(styleObj.cssText);"],"srcUrl":"https://developer.mozilla.org/en/DOM/CSSStyleDeclaration","specification":"DOM Level 2 CSS: CSSStyleDeclaration","summary":"<p>A CSSStyleDeclaration is an interface to the <a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#block\" title=\"http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#block\" target=\"_blank\">declaration block</a> returned by the <code><a href=\"https://developer.mozilla.org/en/DOM/cssRule.style\" rel=\"internal\" title=\"en/DOM/cssRule.style\">style</a></code> property of a <code><a href=\"https://developer.mozilla.org/en/DOM/cssRule\" rel=\"internal\" title=\"en/DOM/cssRule\">cssRule</a></code> in a <a href=\"https://developer.mozilla.org/en/DOM/stylesheet\" rel=\"internal\" title=\"en/DOM/stylesheet\">stylesheet</a>, when the rule is a <a title=\"en/DOM/cssRule#CSSStyleRule\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/cssRule#CSSStyleRule\">CSSStyleRule</a>.</p>\n<p>CSSStyleDeclaration is also a <strong>read-only </strong>interface to the result of <a title=\"en/DOM/window.getComputedStyle\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window.getComputedStyle\">getComputedStyle</a>.</p>","members":[{"name":"removeProperty","help":" Returns the value deleted.<br> Example: <em>valString</em>= <em>styleObj</em>.removeProperty('color')","obsolete":false},{"name":"setProperty","help":" No return.<br> Example: <em>styleObj</em>.setProperty('color', 'red', 'important')","obsolete":false},{"name":"item","help":" Returns a property name.<br> Example: <em>nameString</em>= <em>styleObj</em>.item(0)<br> Alternative: <em>nameString</em>= <em>styleObj</em>[0]","obsolete":false},{"name":"getPropertyValue","help":" Returns the property value.<br> Example: <em>valString</em>= <em>styleObj</em>.getPropertyValue('color')","obsolete":false},{"name":"getPropertyCSSValue","help":"<span>Only supported via getComputedStyle.<br> </span>Returns a <a class=\"external\" title=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSValue\" target=\"_blank\">CSSValue</a>, or <code>null</code> for <a title=\"en/Guide to Shorthand CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Guide_to_Shorthand_CSS\">Shorthand properties</a>.<br> Example: <em>cssString</em>= window.getComputedStyle(<em>elem</em>, <code>null</code>).getPropertyCSSValue('color').cssText;<br> Note: Gecko 1.9 returns null unless using <a title=\"en/DOM/window.getComputedStyle\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window.getComputedStyle\">getComputedStyle()</a>.<br> Note: this method may be <a class=\"external\" title=\"http://lists.w3.org/Archives/Public/www-style/2003Oct/0347.html\" rel=\"external\" href=\"http://lists.w3.org/Archives/Public/www-style/2003Oct/0347.html\" target=\"_blank\">deprecated by the W3C</a>.","obsolete":false},{"name":"getPropertyPriority","help":" Returns the optional priority, \"important\".<br> Example: <em>priString</em>= <em>styleObj</em>.getPropertyPriority('color')","obsolete":false},{"name":"parentRule","help":" The containing <code><a href=\"https://developer.mozilla.org/en/DOM/cssRule\" rel=\"internal\" title=\"en/DOM/cssRule\">cssRule</a>.</code>","obsolete":false},{"name":"cssText","help":" Textual representation of the declaration block. Setting this attribute changes the style.","obsolete":false},{"name":"length","help":" The number of properties. See the <strong>item</strong> method below.","obsolete":false}]},"HTMLBaseFontElement":{"title":"basefont","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","examples":["<basefont color=\"#FF0000\" face=\"Helvetica\" size=\"+2\" />\n"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/basefont","summary":"Obsolete","members":[{"obsolete":false,"url":"","name":"face","help":"This attribute contains a list of one or more font names. The document text in the default style is rendered in the first font face that the client's browser supports. If no font listed is installed on the local system, the browser typically defaults to the proportional or fixed-width font for that system."},{"obsolete":false,"url":"","name":"color","help":"This attribute sets the text color using either a named color or a color specified in the hexadecimal #RRGGBB format."},{"obsolete":false,"url":"","name":"size","help":"This attribute specifies the font size as either a numeric or relative value. Numeric values range from 1 to 7 with 1 being the smallest and 3 the default."}]},"SVGAElement":{"title":"SVGAElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/SVGAElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/a\"><a></a></code>\n SVG Element","summary":"The <code>SVGAElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/a\"><a></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"target","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/target\" class=\"new\">target</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/a\"><a></a></code>\n element.","obsolete":false}]},"DeviceMotionEvent":{"title":"DeviceMotionEvent","examples":["<coming soon>"],"srcUrl":"https://developer.mozilla.org/en/DOM/DeviceMotionEvent","specification":"DeviceOrientation specification","summary":"A <code>DeviceMotionEvent</code> object describes an event that indicates the amount of physical motion of the device that has occurred, and is fired at a set interval (rather than in response to motion). It provides information about the rate of rotation, as well as acceleration along all three axes.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/DeviceMotionEvent.accelerationIncludingGravity","name":"accelerationIncludingGravity","help":"The acceleration of the device. This value includes the effect of gravity, and may be the only value available on devices that don't have a gyroscope to allow them to properly remove gravity from the data. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/DeviceMotionEvent.interval","name":"interval","help":"The interval, in milliseconds, at which the <code>DeviceMotionEvent</code> is fired. The next event will be fired in approximately this amount of time."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/DeviceMotionEvent.acceleration","name":"acceleration","help":"The acceleration of the device. This value has taken into account the effect of gravity and removed it from the figures. This value may not exist if the hardware doesn't know how to remove gravity from the acceleration data. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/DeviceMotionEvent.rotationRate","name":"rotationRate","help":"The rates of rotation of the device about all three axes. <strong>Read only.</strong>"}]},"ErrorEvent":{"title":"error","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/DOM_event_reference/error","skipped":true,"cause":"Suspect title"},"SVGFEGaussianBlurElement":{"title":"feGaussianBlur","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The filter blurs the input image by the amount specified in \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/stdDeviation\" class=\"new\">stdDeviation</a></code>, which defines the bell-curve.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur"},"MouseEvent":{"title":"MouseEvent","srcUrl":"https://developer.mozilla.org/en/DOM/MouseEvent","specification":"DOM Level 2: MouseEvent","seeAlso":"<li><a title=\"UIEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Event/UIEvent\">UIEvent</a></li> <li><a title=\"Event\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/event\">Event</a></li>","summary":"The DOM <code>MouseEvent</code> represents events that occur due to the user interacting with a pointing device (such as a mouse). It's represented by the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsINSDOMMouseEvent&ident=nsINSDOMMouseEvent\" class=\"new\">nsINSDOMMouseEvent</a></code>\n interface, which extends the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsIDOMMouseEvent&ident=nsIDOMMouseEvent\" class=\"new\">nsIDOMMouseEvent</a></code>\n interface.","members":[{"name":"screenX","help":"The X coordinate of the mouse pointer in global (screen) coordinates. <strong>Read only.</strong>","obsolete":false},{"name":"screenY","help":"The Y coordinate of the mouse pointer in global (screen) coordinates. <strong>Read only.</strong>","obsolete":false},{"name":"clientX","help":"The X coordinate of the mouse pointer in local (DOM content) coordinates. <strong>Read only.</strong>","obsolete":false},{"name":"clientY","help":"The Y coordinate of the mouse pointer in local (DOM content) coordinates. <strong>Read only.</strong>","obsolete":false},{"name":"ctrlKey","help":"<code>true</code> if the control key was down when the mouse event was fired. <strong>Read only.</strong>","obsolete":false},{"name":"shiftKey","help":"<code>true</code> if the shift key was down when the mouse event was fired. <strong>Read only.</strong>","obsolete":false},{"name":"altKey","help":"<code>true</code> if the alt key was down when the mouse event was fired. <strong>Read only.</strong>","obsolete":false},{"name":"metaKey","help":"<code>true</code> if the meta key was down when the mouse event was fired. <strong>Read only.</strong>","obsolete":false},{"name":"button","help":"The button number that was pressed when the mouse event was fired: Left button=0, middle button=1 (if present), right button=2. For mice configured for left handed use in which the button actions are reversed the values are instead read from right to left. <strong>Read only.</strong>","obsolete":false},{"name":"relatedTarget","help":"The target to which the event applies. <strong>Read only.</strong>","obsolete":false},{"name":"webkitPressure","help":"The amount of pressure applied to a touch or tablet device when generating the event; this value ranges between 0.0 (minimum pressure) and 1.0 (maximum pressure). <strong>Read only.</strong>","obsolete":false}]},"HTMLUnknownElement":{"title":"Gecko DOM Referenz","summary":"<p>Dies ist die Übersichtsseite der Gecko DOM Referenz.</p>\n<div class=\"warning\">Diese Referenz ist im Moment noch sehr unvollständig. Hilf mit: registriere dich und schreib mit!</div>\n<div class=\"note\">Diese Referenz trennt zwischen Methoden und Eigenschaften die für Webinhalte verfügbar oder nur für Entwickler von Erweiterungen verfügbar sind. Erweiterungsentwickler halten sich bitte an die englische Funktionsreferenz im Mozilla Developer Center.</div>","members":[],"srcUrl":"https://developer.mozilla.org/de/Gecko-DOM-Referenz"},"XMLHttpRequestUpload":{"title":"Using XMLHttpRequest","members":[],"srcUrl":"https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest","skipped":true,"cause":"Suspect title"},"HTMLOptionsCollection":{"title":"HTMLOptionsCollection","srcUrl":"https://developer.mozilla.org/en/DOM/HTMLOptionsCollection","specification":"<li><a class=\" external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#HTMLOptionsCollection\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#HTMLOptionsCollection\" target=\"_blank\">http://www.w3.org/TR/DOM-Level-2-HTM...ionsCollection</a></li> <li><a class=\" external\" rel=\"external\" href=\"http://dev.w3.org/html5/spec/common-dom-interfaces.html#htmloptionscollection\" title=\"http://dev.w3.org/html5/spec/common-dom-interfaces.html#htmloptionscollection\" target=\"_blank\">http://dev.w3.org/html5/spec/common-...ionscollection</a></li>","seeAlso":"HTMLCollection","summary":"HTMLOptionsCollection is an interface representing a collection of HTML option elements (in document order) and offers methods and properties for traversing the list as well as optionally altering its items. This type is returned solely by the \"options\" property of <a title=\"En/DOM/select\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/HTMLSelectElement\">select</a>.","members":[{"name":"length","help":"As optionally allowed by the spec, Mozilla allows this property to be set, either removing options at the end when using a shorter length, or adding blank options at the end when setting a longer length. Other implementations could potentially throw a <a title=\"En/DOM/DOMException\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMException\">DOMException</a>.","obsolete":false}]},"Storage":{"title":"Storage","seeAlso":"<ul> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/mozIStorageConnection\">mozIStorageConnection</a></code>\n Database connection to a specific file or in-memory data storage</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/mozIStorageStatement\">mozIStorageStatement</a></code>\n Create and execute SQL statements on a SQLite database.</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/mozIStorageValueArray\">mozIStorageValueArray</a></code>\n Wraps an array of SQL values, such as a result row.</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/mozIStorageFunction\">mozIStorageFunction</a></code>\n Create a new SQLite function.</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/mozIStorageAggregateFunction\">mozIStorageAggregateFunction</a></code>\n Create a new SQLite aggregate function.</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/mozIStorageProgressHandler\">mozIStorageProgressHandler</a></code>\n Monitor progress during the execution of a statement.</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/mozIStorageStatementWrapper\">mozIStorageStatementWrapper</a></code>\n Storage statement wrapper</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/mozIStorageService\">mozIStorageService</a></code>\n Storage Service</li>\n</ul>\n<ul> <li><a title=\"en/Storage/Performance\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Storage/Performance\">Storage:Performance</a> How to get your database connection performing well.</li> <li><a class=\"link-https\" rel=\"external\" href=\"https://addons.mozilla.org/en-US/firefox/addon/3072\" title=\"https://addons.mozilla.org/en-US/firefox/addon/3072\" target=\"_blank\">Storage Inspector Extension</a> Makes it easy to view any sqlite database files in the current profile.</li> <li><a class=\"external\" rel=\"external\" href=\"http://www.sqlite.org/lang.html\" title=\"http://www.sqlite.org/lang.html\" target=\"_blank\">SQLite Syntax</a> Query language understood by SQLite</li> <li><a class=\"external\" rel=\"external\" href=\"http://sqlitebrowser.sourceforge.net/\" title=\"http://sqlitebrowser.sourceforge.net/\" target=\"_blank\">SQLite Database Browser</a> is a capable free tool available for many platforms. It can be handy for examining existing databases and testing SQL statements.</li> <li><a class=\"link-https\" rel=\"external\" href=\"https://addons.mozilla.org/en-US/firefox/addon/5817\" title=\"https://addons.mozilla.org/en-US/firefox/addon/5817\" target=\"_blank\">SQLite Manager Extension</a> helps manage sqlite database files on your computer.</li>\n</ul>","summary":"<p><strong>Storage</strong> is a <a class=\"external\" rel=\"external\" href=\"http://www.sqlite.org/\" title=\"http://www.sqlite.org/\" target=\"_blank\">SQLite</a> database API. It is available to trusted callers, meaning extensions and Firefox components only.</p>\n<p>The API is currently \"unfrozen\", which means it is subject to change at any time; in fact, it has changed somewhat with each release of Firefox since it was introduced, and will likely continue to do so for a while.</p>\n<div class=\"note\"><strong>Note:</strong> Storage is not the same as the <a title=\"en/DOM/Storage\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Storage\">DOM:Storage</a> feature which can be used by web pages to store persistent data or the <a title=\"en/Session_store_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Session_store_API\">Session store API</a> (an <a title=\"en/XPCOM\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPCOM\">XPCOM</a> storage utility for use by extensions).</div>","members":[],"srcUrl":"https://developer.mozilla.org/en/Storage"},"SVGFontFaceFormatElement":{"title":"SVGFontFaceFormatElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGFontFaceFormatElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-format\"><font-face-format></a></code>\n SVG Element","summary":"<p>The <code>SVGFontFaceFormatElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-format\"><font-face-format></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-format\"><font-face-format></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"SVGUnitTypes":{"title":"SVGPatternElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPatternElement","skipped":true,"cause":"Suspect title"},"Attr":{"title":"Attr","summary":"<p>This type represents a DOM element's attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Element.getAttribute\">Element.getAttribute()</a></code>\n, but certain functions (e.g., <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Element.getAttributeNode\">Element.getAttributeNode()</a></code>\n) or means of iterating give <code>Attr</code> types.</p>\n<div class=\"warning\"><strong>Warning:</strong> In DOM Core 1, 2 and 3, Attr inherited from Node. This is no longer the case in <a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/dom/\" title=\"http://www.w3.org/TR/dom/\" target=\"_blank\">DOM4</a>. In order to bring the implementation of <code>Attr</code> up to specification, work is underway to change it to no longer inherit from <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n. You should not be using any <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code>\n properties or methods on <code>Attr</code> objects. Starting in Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n, the ones that are going to be removed output warning messages to the console. You should revise your code accordingly. See <a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Attr#Deprecated_properties_and_methods\">Deprecated properties and methods</a> for a complete list.</div>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Attr.schemaTypeInfo","name":"schemaTypeInfo","help":"?"},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Attr.ownerElement","name":"ownerElement","help":"This property has been deprecated and will be removed in the future. Since you can only get Attr objects from elements, you should already know th"},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Attr.isId","name":"isId","help":"Indicates whether the attribute is an \"ID attribute\". An \"ID attribute\" being an attribute which value is expected to be unique across a DOM Document. In HTML DOM, \"id\" is the only ID attribute, but XML documents could define others. Whether or not an attribute is unique is often determined by a DTD or other schema description."},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Attr.name","name":"name","help":"The attribute's name."},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Attr.specified","name":"specified","help":"This property has been deprecated and will be removed in the future; it now always returns <code>true</code>."},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Attr.value","name":"value","help":"The attribute's value."}],"srcUrl":"https://developer.mozilla.org/en/DOM/Attr","specification":"<li><a class=\"external\" title=\"http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-637646024\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-637646024\" target=\"_blank\">Document Object Model Core level 3: Interface Attr</a></li> <li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/dom/#interface-attr\" title=\"http://www.w3.org/TR/dom/#interface-attr\" target=\"_blank\">Document Object Model 4: Interface Attr</a></li>"},"PopStateEvent":{"title":"Manipulating the browser history","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history","skipped":true,"cause":"Suspect title"},"DocumentFragment":{"title":"DocumentFragment","summary":"<p>DocumentFragment has no properties or methods of its own, but inherits from <a title=\"En/DOM/Node\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node\"><code>Node</code></a>. </p>\n<p>A <code><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-B63ED1A3\" title=\"http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-B63ED1A3\" target=\"_blank\">DocumentFragment</a></code> is a minimal document object that has no parent. It is used as a light-weight version of document to store well-formed or potentially non-well-formed fragments of XML.</p>\n<p>See <a title=\"En/DOM/Node\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node\"><code>Node</code></a> for a listing of its properties, constants and methods.</p>\n<p>Various other methods can take a document fragment as an argument (e.g., any <code><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1950641247\" title=\"http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1950641247\" target=\"_blank\">Node</a></code> interface methods such as <code><a title=\"En/DOM/Node.appendChild\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node.appendChild\">appendChild</a></code> and <code><a title=\"En/DOM/Node.insertBefore\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node.insertBefore\">insertBefore</a></code>), in which case the children of the fragment are appended or inserted, not the fragment itself.</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/DocumentFragment","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...ml#ID-B63ED1A3"},"SVGAltGlyphDefElement":{"title":"altGlyphDef","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/glyph\"><glyph></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/glyphRef\"><glyphRef></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/altGlyphDef\"><altGlyphDef></a></code>\n</li>","summary":"The <code>altGlyphDef</code> element defines a substitution representation for glyphs.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/altGlyphDef"},"SVGFontFaceSrcElement":{"title":"SVGFontFaceSrcElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGFontFaceSrcElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-src\"><font-face-src></a></code>\n SVG Element","summary":"<p>The <code>SVGFontFaceSrcElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-src\"><font-face-src></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-src\"><font-face-src></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"SVGUseElement":{"title":"SVGUseElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGUseElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/use\"><use></a></code>\n SVG Element","summary":"The <code>SVGUseElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/use\"><use></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"width","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/width\">width</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/use\"><use></a></code>\n element.","obsolete":false},{"name":"height","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/height\">height</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/use\"><use></a></code>\n element.","obsolete":false},{"name":"instanceRoot","help":"The root of the instance tree. See description of <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGElementInstance\" class=\"new\">SVGElementInstance</a></code>\n to learn more about the instance tree.","obsolete":false},{"name":"animatedInstanceRoot","help":"If the \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/xlink%3Ahref\">xlink:href</a></code> attribute is being animated, contains the current animated root of the instance tree. If the \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/xlink%3Ahref\">xlink:href</a></code> attribute is not currently being animated, contains the same value as <code>instanceRoot</code>. See description of <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGElementInstance\" class=\"new\">SVGElementInstance</a></code>\n to learn more about the instance tree.","obsolete":false}]},"SVGPathSegCurvetoCubicSmoothRel":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"FileWriter":{"title":"FileEntrySync","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/FileEntrySync","skipped":true,"cause":"Suspect title"},"SVGLength":{"title":"SVGLength","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"<p>The <code>SVGLength</code> interface correspond to the <a title=\"https://developer.mozilla.org/en/SVG/Content_type#Length\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Content_type#Length\"><length></a> basic data type.</p>\n<p>An <code>SVGLength</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>","members":[{"name":"newValueSpecifiedUnits","help":"<p>Reset the value as a number with an associated unitType, thereby replacing the values for all of the attributes on the object.</p> <p><strong>Exceptions:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NOT_SUPPORTED_ERR</code> is raised if <code>unitType</code> is <code>SVG_LENGTHTYPE_UNKNOWN</code> or not a valid unit type constant (one of the other <code>SVG_LENGTHTYPE_*</code> constants defined on this interface).</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the length corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false},{"name":"convertToSpecifiedUnits","help":"Preserve the same underlying stored value, but reset the stored unit identifier to the given <code><em>unitType</em></code>. Object attributes <code>unitType</code>, <code>valueInSpecifiedUnits</code> and <code>valueAsString</code> might be modified as a result of this method. For example, if the original value were \"<em>0.5cm</em>\" and the method was invoked to convert to millimeters, then the <code>unitType</code> would be changed to <code>SVG_LENGTHTYPE_MM</code>, <code>valueInSpecifiedUnits</code> would be changed to the numeric value 5 and <code>valueAsString</code> would be changed to \"<em>5mm</em>\".","obsolete":false},{"name":"SVG_LENGTHTYPE_UNKNOWN","help":"The unit type is not one of predefined unit types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.","obsolete":false},{"name":"SVG_LENGTHTYPE_NUMBER","help":"No unit type was provided (i.e., a unitless value was specified), which indicates a value in user units.","obsolete":false},{"name":"SVG_LENGTHTYPE_PERCENTAGE","help":"A percentage value was specified.","obsolete":false},{"name":"SVG_LENGTHTYPE_EMS","help":"A value was specified using the em units defined in CSS2.","obsolete":false},{"name":"SVG_LENGTHTYPE_EXS","help":"A value was specified using the ex units defined in CSS2.","obsolete":false},{"name":"SVG_LENGTHTYPE_PX","help":"A value was specified using the px units defined in CSS2.","obsolete":false},{"name":"SVG_LENGTHTYPE_CM","help":"A value was specified using the cm units defined in CSS2.","obsolete":false},{"name":"SVG_LENGTHTYPE_MM","help":"A value was specified using the mm units defined in CSS2.","obsolete":false},{"name":"SVG_LENGTHTYPE_IN","help":"A value was specified using the in units defined in CSS2.","obsolete":false},{"name":"SVG_LENGTHTYPE_PT","help":"A value was specified using the pt units defined in CSS2.","obsolete":false},{"name":"SVG_LENGTHTYPE_PC","help":"A value was specified using the pc units defined in CSS2.","obsolete":false},{"name":"unitType","help":"The type of the value as specified by one of the SVG_LENGTHTYPE_* constants defined on this interface.","obsolete":false},{"name":"value","help":"<p>The value as a floating point value, in user units. Setting this attribute will cause <code>valueInSpecifiedUnits</code> and <code>valueAsString</code> to be updated automatically to reflect this setting.</p> <p><strong>Exceptions on setting:</strong> a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the length corresponds to a read only attribute or when the object itself is read only.</p>","obsolete":false},{"name":"valueInSpecifiedUnits","help":"<p>The value as a floating point value, in the units expressed by <code>unitType</code>. Setting this attribute will cause <code>value</code> and <code>valueAsString</code> to be updated automatically to reflect this setting.</p> <p><strong>Exceptions on setting:</strong> a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the length corresponds to a read only attribute or when the object itself is read only.</p>","obsolete":false},{"name":"valueAsString","help":"<p>The value as a string value, in the units expressed by <code>unitType</code>. Setting this attribute will cause <code>value</code>, <code>valueInSpecifiedUnits</code> and <code>unitType</code> to be updated automatically to reflect this setting.</p> <p><strong>Exceptions on setting:</strong></p> <ul> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>SYNTAX_ERR</code> is raised if the assigned string cannot be parsed as a valid <a title=\"https://developer.mozilla.org/en/SVG/Content_type#Length\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Content_type#Length\"><length></a>.</li> <li>a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is raised when the length corresponds to a read only attribute or when the object itself is read only.</li> </ul>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/SVGLength"},"HTMLMediaElement":{"title":"HTMLMediaElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.5 (1.9.1)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span>`</td> </tr> <tr> <td><code>buffered</code> property</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>loop</code> property</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>11.0 (11.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>defaultMuted</code> property</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>11.0 (11.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>seekable</code> property</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>8.0 (8.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>buffered</code> property</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>defaultMuted</code> property</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>11.0 (11.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>loop</code> property</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>11.0 (11.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>seekable</code> property</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>8.0 (8.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","summary":"HTML media elements (such as <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/audio\"><audio></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video\"><video></a></code>\n) expose the <code>HTMLMediaElement</code> interface which provides special properties and methods (beyond the regular <a href=\"https://developer.mozilla.org/en/DOM/element\" rel=\"internal\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of media elements.","members":[{"name":"canPlayType","help":"Determines whether the specified media type can be played back.","obsolete":false},{"name":"load","help":"Begins loading the media content from the server.","obsolete":false},{"name":"pause","help":"Pauses the media playback.","obsolete":false},{"name":"play","help":"Begins playback of the media. If you have changed the <strong>src</strong> attribute of the media element since the page was loaded, you must call load() before play(), otherwise the original media plays again.","obsolete":false},{"name":"autoplay","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video#attr-autoplay\">autoplay</a></code>\n HTML attribute, indicating whether to begin playing as soon as enough media is available.","obsolete":false},{"name":"buffered","help":"The ranges of the media source that the browser has buffered, if any.","obsolete":false},{"name":"controls","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video#attr-controls\">controls</a></code>\n HTML attribute, indicating whether user interface items for controlling the resource should be displayed.","obsolete":false},{"name":"currentSrc","help":"The absolute URL of the chosen media resource (if, for example, the server selects a media file based on the resolution of the user's display), or an empty string if the <code>networkState</code> is <code>EMPTY</code>.","obsolete":false},{"name":"currentTime","help":"The current playback time, in seconds. Setting this value seeks the media to the new time.","obsolete":false},{"name":"defaultMuted","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video#attr-muted\">muted</a></code>\n HTML attribute, indicating whether the media element's audio output should be muted by default. Changing the value dynamically will not unmute the audio (it only controls the default state).","obsolete":false},{"name":"defaultPlaybackRate","help":"The default playback rate for the media. The Ogg backend does not support this. 1.0 is \"normal speed,\" values lower than 1.0 make the media play slower than normal, higher values make it play faster. The value 0.0 is invalid and throws a <code>NOT_SUPPORTED_ERR</code> exception.","obsolete":false},{"name":"duration","help":"The length of the media in seconds, or zero if no media data is available. If the media data is available but the length is unknown, this value is <code>NaN</code>. If the media is streamed and has no predefined length, the value is <code>Inf</code>.","obsolete":false},{"name":"ended","help":"Indicates whether the media element has ended playback.","obsolete":false},{"name":"error","help":"The media error object for the most recent error, or null if there has not been an error.","obsolete":false},{"name":"loop","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video#attr-loop\">loop</a></code>\n HTML attribute, indicating whether the media element should start over when it reaches the end.","obsolete":false},{"name":"webkitChannels","help":"The number of channels in the audio resource (e.g., 2 for stereo). ","obsolete":false},{"name":"webkitFrameBufferLength","help":"Indicates the number of samples that will be returned in the framebuffer of each <code>MozAudioAvailable</code> event. This number is a total for all channels, and by default is set to be the number of channels * 1024 (e.g., 2 channels * 1024 samples = 2048 total).","obsolete":false},{"name":"webkitFrameBufferLength","help":"The <code>mozFrameBufferLength</code> property can be set to a new value, for lower latency, or larger amounts of data, etc. The size given <em>must</em> be a number between 512 and 16384. Using any other size results in an exception being thrown. The best time to set a new length is after the <code>loadedmetadata</code> event fires, when the audio info is known, but before the audio has started or <code>MozAudioAvailable</code> events have begun firing.","obsolete":false},{"name":"webkitSampleRate","help":"The number of samples per second that will be played, for example 44100. ","obsolete":false},{"name":"muted","help":"<code>true</code> if the audio is muted, and <code>false</code> otherwise.","obsolete":false},{"name":"networkState","help":"<p>The current state of fetching the media over the network.</p> <table class=\"standard-table\"> <tbody> <tr> <td class=\"header\">Constant</td> <td class=\"header\">Value</td> <td class=\"header\">Description</td> </tr> <tr> <td><code>EMPTY</code></td> <td>0</td> <td>There is no data yet. The <code>readyState</code> is also <code>HAVE_NOTHING</code>.</td> </tr> <tr> <td><code>LOADING</code></td> <td>1</td> <td>The media is loading.</td> </tr> <tr> <td><code>LOADED_METADATA</code></td> <td>2</td> <td>The media's metadata has been loaded.</td> </tr> <tr> <td><code>LOADED_FIRST_FRAME</code></td> <td>3</td> <td>The media's first frame has been loaded.</td> </tr> <tr> <td><code>LOADED</code></td> <td>4</td> <td>The media has been fully loaded.</td> </tr> </tbody> </table>","obsolete":false},{"name":"EMPTY","help":"There is no data yet. The <code>readyState</code> is also <code>HAVE_NOTHING</code>.","obsolete":false},{"name":"LOADING","help":"The media is loading.","obsolete":false},{"name":"LOADED_METADATA","help":"The media's metadata has been loaded.","obsolete":false},{"name":"LOADED_FIRST_FRAME","help":"The media's first frame has been loaded.","obsolete":false},{"name":"LOADED","help":"The media has been fully loaded.","obsolete":false},{"name":"paused","help":"Indicates whether the media element is paused.","obsolete":false},{"name":"playbackRate","help":"The current rate at which the media is being played back. This is used to implement user controls for fast forward, slow motion, and so forth. The normal playback rate is multiplied by this value to obtain the current rate, so a value of 1.0 indicates normal speed. Not supported by the Ogg backend.","obsolete":false},{"name":"played","help":"The ranges of the media source that the browser has played, if any.","obsolete":false},{"name":"preload","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video#attr-preload\">preload</a></code>\n HTML attribute, indicating what data should be preloaded at page-load time, if any.","obsolete":false},{"name":"readyState","help":"<p>The readiness state of the media:</p> <table class=\"standard-table\"> <tbody> <tr> <td class=\"header\">Constant</td> <td class=\"header\">Value</td> <td class=\"header\">Description</td> </tr> <tr> <td><code>HAVE_NOTHING</code></td> <td>0</td> <td>No information is available about the media resource.</td> </tr> <tr> <td><code>HAVE_METADATA</code></td> <td>1</td> <td>Enough of the media resource has been retrieved that the metadata attributes are initialized. Seeking will no longer raise an exception.</td> </tr> <tr> <td><code>HAVE_CURRENT_DATA</code></td> <td>2</td> <td>Data is available for the current playback position, but not enough to actually play more than one frame.</td> </tr> <tr> <td><code>HAVE_FUTURE_DATA</code></td> <td>3</td> <td>Data for the current playback position as well as for at least a little bit of time into the future is available (in other words, at least two frames of video, for example).</td> </tr> <tr> <td><code>HAVE_ENOUGH_DATA</code></td> <td>4</td> <td>Enough data is available—and the download rate is high enough—that the media can be played through to the end without interruption.</td> </tr> </tbody> </table>","obsolete":false},{"name":"HAVE_NOTHING","help":"No information is available about the media resource.","obsolete":false},{"name":"HAVE_METADATA","help":"Enough of the media resource has been retrieved that the metadata attributes are initialized. Seeking will no longer raise an exception.","obsolete":false},{"name":"HAVE_CURRENT_DATA","help":"Data is available for the current playback position, but not enough to actually play more than one frame.","obsolete":false},{"name":"HAVE_FUTURE_DATA","help":"Data for the current playback position as well as for at least a little bit of time into the future is available (in other words, at least two frames of video, for example).","obsolete":false},{"name":"HAVE_ENOUGH_DATA","help":"Enough data is available—and the download rate is high enough—that the media can be played through to the end without interruption.","obsolete":false},{"name":"seekable","help":"The time ranges that the user is able to seek to, if any.","obsolete":false},{"name":"seeking","help":"Indicates whether the media is in the process of seeking to a new position.","obsolete":false},{"name":"src","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video#attr-src\">src</a></code>\n HTML attribute, containing the URL of a media resource to use.","obsolete":false},{"name":"startTime","help":"The earliest possible position in the media, in seconds.","obsolete":false},{"name":"volume","help":"The audio volume, from 0.0 (silent) to 1.0 (loudest).","obsolete":false},{"name":"EMPTY","help":"There is no data yet. The <code>readyState</code> is also <code>HAVE_NOTHING</code>.","obsolete":false},{"name":"LOADING","help":"The media is loading.","obsolete":false},{"name":"LOADED_METADATA","help":"The media's metadata has been loaded.","obsolete":false},{"name":"LOADED_FIRST_FRAME","help":"The media's first frame has been loaded.","obsolete":false},{"name":"LOADED","help":"The media has been fully loaded.","obsolete":false},{"name":"HAVE_NOTHING","help":"No information is available about the media resource.","obsolete":false},{"name":"HAVE_METADATA","help":"Enough of the media resource has been retrieved that the metadata attributes are initialized. Seeking will no longer raise an exception.","obsolete":false},{"name":"HAVE_CURRENT_DATA","help":"Data is available for the current playback position, but not enough to actually play more than one frame.","obsolete":false},{"name":"HAVE_FUTURE_DATA","help":"Data for the current playback position as well as for at least a little bit of time into the future is available (in other words, at least two frames of video, for example).","obsolete":false},{"name":"HAVE_ENOUGH_DATA","help":"Enough data is available—and the download rate is high enough—that the media can be played through to the end without interruption.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLMediaElement"},"SVGPathSegLinetoHorizontalAbs":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"SVGDocument":{"title":"Scripting","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Scripting","skipped":true,"cause":"Suspect title"},"XPathException":{"title":"Interface documentation status","members":[],"srcUrl":"https://developer.mozilla.org/User:trevorh/Interface_documentation_status","skipped":true,"cause":"Suspect title"},"SVGMissingGlyphElement":{"title":"SVGMissingGlyphElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGMissingGlyphElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/missing-glyph\"><missing-glyph></a></code>\n SVG Element","summary":"<p>The <code>SVGMissingGlyphElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/missing-glyph\"><missing-glyph></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/missing-glyph\"><missing-glyph></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"CSSCharsetRule":{"title":"cssRule","members":[],"srcUrl":"https://developer.mozilla.org/pl/DOM/cssRule","skipped":true,"cause":"Suspect title"},"WebGLRenderingContext":{"title":"HTMLCanvasElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLCanvasElement","skipped":true,"cause":"Suspect title"},"SVGAnimateColorElement":{"title":"SVGAnimateColorElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimateColorElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animateColor\"><animateColor></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimateColorElement"},"HTMLMarqueeElement":{"title":"marquee","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.0 (1.7 or earlier)\n</td> <td>2.0</td> <td>7.2</td> <td>1.2</td> </tr> <tr> <td><code>truespeed</code> attribute</td> <td><span title=\"Not supported.\">--</span></td> <td>3.0 (1.9)\n</td> <td>4.0</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>hspace/vspace</code> attribute</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.0 (1.9)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>loop</code> attribute</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>3.0 (1.9)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>truespeed</code> attribute</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>hspace/vspace</code> attribute</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> <tr> <td><code>loop</code> attribute</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>1.0 (1.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","examples":[" <marquee>This text will scroll from right to left</marquee>\n\n <marquee direction=\"up\">This text will scroll from bottom to top</marquee>\n\n <marquee direction=\"down\" width=\"250\" height=\"200\" behavior=\"alternate\" style=\"border:solid\">\n <marquee behavior=\"alternate\">\n This text will bounce\n </marquee>\n </marquee>\n"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/marquee","summary":"Non-standard","members":[{"name":"stop","help":"Stops scrolling of the marquee.","obsolete":false},{"name":"start","help":"Starts scrolling of the marquee.","obsolete":false},{"obsolete":false,"url":"","name":"truespeed","help":"By default,<code> scrolldelay </code>values lower than 60 are ignored. If<code> truespeed </code>is present, those values are not ignored."},{"obsolete":false,"url":"","name":"vspace","help":"Sets the vertical margin in pixels or percentage value."},{"obsolete":false,"url":"","name":"bgcolor","help":"Sets the background color through color name or hexadecimal value."},{"obsolete":false,"url":"","name":"scrollamount","help":"Sets the amount of scrolling at each interval in pixels. The default value is 6."},{"obsolete":false,"url":"","name":"height","help":"Sets the height in pixels or percentage value."},{"obsolete":false,"url":"","name":"loop","help":"Sets the number of times the marquee will scroll. If no value is specified, the default value is −1, which means the marquee will scroll continuously."},{"obsolete":false,"url":"","name":"width","help":"Sets the width in pixels or percentage value."},{"obsolete":false,"url":"","name":"direction","help":"Sets the direction of the scrolling within the marquee. Possible values are <code>left</code>, <code>right</code>, <code>up</code> and <code>down</code>. If no value is specified, the default value is <code>left</code>."},{"obsolete":false,"url":"","name":"behavior","help":"Sets how the text is scrolled within the marquee. Possible values are <code>scroll</code>, <code>slide</code> and <code>alternate</code>. If no value is specified, the default value is <code>scroll</code>."},{"obsolete":false,"url":"","name":"hspace","help":"Sets the horizontal margin"},{"obsolete":false,"url":"","name":"scrolldelay","help":"Sets the interval between each scroll movement in milliseconds. The default value is 85. Note that any value smaller than 60 is ignored and the value 60 is used instead, unless<code> truespeed </code>is specified."}]},"FileList":{"title":"FileList","examples":["<p>This example iterates over all the files selected by the user using an <code>input</code> element:</p>\n<pre class=\"eval\">// fileInput is an HTML input element: <input type=\"file\" id=\"myfileinput\" multiple>\nvar fileInput = document.getElementById(\"myfileinput\");\n\n// files is a FileList object (similar to NodeList)\nvar files = fileInput.files;\nvar file;\n\n// loop trough files\nfor (var i = 0; i < files.length; i++) {\n\n // get item\n file = files.item(i);\n //or\n file = files[i];\n\n alert(file.name);\n}</pre>"],"srcUrl":"https://developer.mozilla.org/en/DOM/FileList","specification":"<a title=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/number-state.html#concept-input-type-file-selected\" class=\" external\" rel=\"external\" href=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/number-state.html#concept-input-type-file-selected\" target=\"_blank\">File upload state</a> (HTML 5 working draft)","summary":"<p>An object of this type is returned by the <code>files</code> property of the HTML input element; this lets you access the list of files selected with the <code><input type=\"file\"></code> element. It's also used for a list of files dropped into web content when using the drag and drop API; see the <a title=\"En/DragDrop/DataTransfer\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DragDrop/DataTransfer\"><code>DataTransfer</code></a> object for details on this usage.</p>\n<p>\n\n</p><div><p>Gecko 1.9.2 note</p><p>Prior to Gecko 1.9.2, the input element only supported a single file being selected at a time, meaning that the FileList would contain only one file. Starting with Gecko 1.9.2, if the input element's multiple attribute is true, the FileList may contain multiple files.</p></div>","members":[{"name":"item","help":"<p>Returns a <a title=\"en/DOM/File\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File\"><code>File</code></a> object representing the file at the specified index in the file list.</p>\n\n<div id=\"section_6\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>index</code></dt> <dd>The zero-based index of the file to retrieve from the list.</dd>\n</dl>\n</div><div id=\"section_7\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>The <a title=\"en/DOM/File\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File\"><code>File</code></a> representing the requested file.</p>\n</div>","idl":"<pre class=\"eval\"> File item(\n index\n );\n</pre>","obsolete":false},{"name":"length","help":"A read-only value indicating the number of files in the list.","obsolete":false},{"name":"length","help":"A read-only value indicating the number of files in the list.","obsolete":false}]},"SVGVKernElement":{"title":"SVGVKernElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGVKernElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/vkern\"><vkern></a></code>\n SVG Element","summary":"<p>The <code>SVGVKernElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/vkern\"><vkern></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/vkern\"><vkern></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"CSSValueList":{"title":"Interface documentation status","members":[],"srcUrl":"https://developer.mozilla.org/User:trevorh/Interface_documentation_status","skipped":true,"cause":"Suspect title"},"SVGAnimateTransformElement":{"title":"SVGAnimateTransformElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimateTransformElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animateTransform\"><animateTransform></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimateTransformElement"},"Float32Array":{"title":"Float32Array","srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array","seeAlso":"<li><a class=\"link-https\" title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"<p>The <code>Float32Array</code> type represents an array of 32-bit floating point numbers (corresponding to the C <code>float</code> data type).</p>\n<p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p>","constructor":"<div class=\"note\"><strong>Note:</strong> In these methods, <code><em>TypedArray</em></code> represents any of the <a title=\"en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses\">typed array object types</a>.</div>\n<table class=\"standard-table\"> <tbody> <tr> <td><code>Float32Array <a title=\"en/JavaScript typed arrays/Float32Array#Float32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array#Float32Array()\">Float32Array</a>(unsigned long length);<br> </code></td> </tr> <tr> <td><code>Float32Array </code><code><a title=\"en/JavaScript typed arrays/Float32Array#Float32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array#Float32Array%28%29\">Float32Array</a></code><code>(<em>TypedArray</em> array);<br> </code></td> </tr> <tr> <td><code>Float32Array </code><code><a title=\"en/JavaScript typed arrays/Float32Array#Float32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array#Float32Array%28%29\">Float32Array</a></code><code>(sequence<type> array);<br> </code></td> </tr> <tr> <td><code>Float32Array </code><code><a title=\"en/JavaScript typed arrays/Float32Array#Float32Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float32Array#Float32Array%28%29\">Float32Array</a></code><code>(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);<br> </code></td> </tr> </tbody>\n</table><p>Returns a new <code>Float32Array</code> object.</p>\n<pre>Float32Array Float32Array(\n unsigned long length\n);\n\nFloat32Array Float32Array(\n <em>TypedArray</em> array\n);\n\nFloat32Array Float32Array(\n sequence<type> array\n);\n\nFloat32Array Float32Array(\n ArrayBuffer buffer,\n optional unsigned long byteOffset,\n optional unsigned long length\n);\n</pre>\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>length</code></dt> <dd>The number of elements in the byte array. If unspecified, length of the array view will match the buffer's length.</dd> <dt><code>array</code></dt> <dd>An object of any of the typed array types (such as <span>Uint8</span><code>Array</code>), or a sequence of objects of a particular type, to copy into a new <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>. Each value in the source array is converted to a 32-bit floating point number before being copied into the new array.</dd> <dt><code>buffer</code></dt> <dd>An existing <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> to use as the storage for the new <code>Float32Array</code> object.</dd> <dt><code>byteOffset<br> </code></dt> <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the <code>Float32Array</code>'s view of the buffer will start with the first byte.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>Float32Array</code> object representing the specified data buffer.</p>\n</div>","members":[{"name":"subarray","help":"<p>Returns a new <code>Float32Array</code> view on the <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> store for this <code>Float32Array</code> object.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>begin</code></dt> <dd>The offset to the first element in the array to be referenced by the new <code>Float32Array</code> object.</dd> <dt><code>end</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The offset to the last element in the array to be referenced by the new <code>Float32Array</code> object; if not specified, all elements from the one specified by <code>begin</code> to the end of the array are included in the new view.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Notes_2\"></span><h6 class=\"editable\">Notes</h6>\n<p>The range specified by <code>begin</code> and <code>end</code> is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it's clamped to zero. If either <code>begin</code> or <code>end</code> is negative, it refers to an index from the end of the array instead of from the beginning.</p>\n<div class=\"note\"><strong>Note:</strong> Keep in mind that this is creating a new view on the existing buffer; changes to the new object's contents will impact the original object and vice versa.</div>\n</div>","idl":"<pre>Float32Array subarray(\n long begin,\n optional long end\n);\n</pre>","obsolete":false},{"name":"set","help":"<p>Sets multiple values in the typed array, reading input values from a specified array.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset \n<span title=\"\">Optional</span>\n</dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>\n</dl>\n</div>","idl":"<pre>void set(\n <em>TypedArray</em> array,\n optional unsigned long offset\n);\n\nvoid set(\n type[] array,\n optional unsigned long offset\n);\n</pre>","obsolete":false},{"name":"BYTES_PER_ELEMENT","help":"The size, in bytes, of each array element.","obsolete":false},{"name":"length","help":"The number of entries in the array. <strong>Read only.</strong>","obsolete":false}]},"ArrayBufferView":{"title":"ArrayBufferView","seeAlso":"<li><a title=\"en/JavaScript typed arrays/DataView\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/DataView\"><code>DataView</code></a></li> <li><a class=\"link-https\" title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"<p>The <code>ArrayBufferView</code> type describes a particular view on the contents of an <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>'s data.</p>\n<p>Of note is that you may create multiple views into the same buffer, each looking at the buffer's contents starting at a particular offset. This makes it possible to set up views of different data types to read the contents of a buffer based on the types of data at specific offsets into the buffer.</p>\n<div class=\"note\"><strong>Note:</strong> Typically, you'll instantiate one of the <a title=\"en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses\">subclasses</a> of this object instead of this base class. Those provide access to the data formatted using specific data types.</div>","members":[{"name":"buffer","help":"The buffer this view references. <strong>Read only.</strong>","obsolete":false},{"name":"byteLength","help":"The length, in bytes, of the view. <strong>Read only.</strong>","obsolete":false},{"name":"byteOffset","help":"The offset, in bytes, to the first byte of the view within the <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView"},"HTMLTableColElement":{"title":"HTMLTableColElement","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/col\"><col></a></code>\n HTML element</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/colgroup\"><colgroup></a></code>\n HTML element</li>","summary":"DOM table column objects (which may correspond to <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/col\"><col></a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/colgroup\"><colgroup></a></code>\n HTML elements) expose the <a target=\"_blank\" href=\"http://www.w3.org/TR/html5/tabular-data.html#htmltablecolelement\" rel=\"external nofollow\" class=\" external\" title=\"http://www.w3.org/TR/html5/tabular-data.html#htmltablecolelement\">HTMLTableColElement</a> (or <span><a href=\"https://developer.mozilla.org/en/HTML\" rel=\"custom nofollow\">HTML 4</a></span> <a target=\"_blank\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-84150186\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-84150186\" rel=\"external nofollow\" class=\" external\"><code>HTMLTableColElement</code></a>) interface, which provides special properties (beyond the regular <a href=\"https://developer.mozilla.org/en/DOM/element\" rel=\"internal\">element</a> object interface they also have available to them by inheritance) for manipulating table column elements.","members":[{"name":"align","help":"Indicates the horizontal alignment of the cell data in the column.","obsolete":true},{"name":"ch","help":"Alignment character for cell data.","obsolete":true},{"name":"chOff","help":"Offset for the alignment character.","obsolete":true},{"name":"span","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/col#attr-span\">span</a></code>\n HTML attribute, indicating the number of columns to apply this object's attributes to. Must be a positive integer.","obsolete":false},{"name":"vAlign","help":"Indicates the vertical alignment of the cell data in the column.","obsolete":true},{"name":"width","help":"Default column width.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLTableColElement"},"SVGCursorElement":{"title":"SVGCursorElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGCursorElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/cursor\"><cursor></a></code>\n SVG Element","summary":"The <code>SVGCursorElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/cursor\"><cursor></a></code>\n elements, as well as methods to manipulate them.","members":[]},"XPathNSResolver":{"title":"document.createNSResolver","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/document.createNSResolver","skipped":true,"cause":"Suspect title"},"SVGTransformable":{"title":"SVGTransformable","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"Interface <code>SVGTransformable</code> contains properties and methods that apply to all elements which have attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/transform\">transform</a></code>.","members":[{"name":"transform","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/transform\">transform</a></code> on the given element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/SVGTransformable"},"IDBDatabase":{"title":"IDBDatabase","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>12\n<span title=\"prefix\">webkit</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>setVersion</code></td> <td>12\n<span title=\"prefix\">webkit</span></td> <td>From 4.0 (2.0)\n to 9.0 (9.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td>2-parameter <code>open</code></td> <td><span title=\"Not supported.\">--</span></td> <td>10.0 (10.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["<h4 class=\"editable\">Example</h4>\n<p>In the following code snippet, we open a database asynchronously and make a request. Because the specification is still evolving, Chrome and Firefox put prefixes in the methods. Chrome uses the <code>webkit</code> prefix while Firefox uses the <code>moz</code> prefix. Event handlers are registered for responding to various situations.</p>\n\n <pre name=\"code\" class=\"js\">// Taking care of the browser-specific prefixes.\nif ('webkitIndexedDB' in window) {\n window.indexedDB = window.webkitIndexedDB;\n window.IDBTransaction = window.webkitIDBTransaction;\n} else if ('mozIndexedDB' in window) {\n window.indexedDB = window.mozIndexedDB;\n}\n\n//Open a connection to the database with the name \"creatures\" \n//with the empty string as its version. \n\nvar creatures = {};\ncreatures.indexedDB = {};\n\ncreatures.indexedDB.open = function() {\n var request = indexedDB.open(\"creatures\");\n\n //The open request isn't executed yet, but an IDBRequest object is returned. \n //Create listeners to the IDBRequest. \n \n //If the version of the db changes, the onupgradeneeded callback is executed.\n request.onupgradeneeded = function(event) {\n // event.target.trans is a CHANGE_VERSION transaction\n \n // create an object store called \"swamp\"\n // and define an optional parameter object, the \"terrorizedPopulace\" keyPath. \n // The keyPath must be what makes an object unique and every object must have it. \n // If every creature had a unique identification number, that would also be a good keyPath. \n \n var datastore = db.createObjectStore(\"swamp\",\n {keyPath: \"terrorizedPopulace\"});\n }\n \n //If the open request is successful, the onsuccess callback is executed. \n request.onsuccess = function(event) {\n creatures.indexedDB.db = event.target.result; \n creatures.indexedDB.getAllSwampCreatures();\n };\n\n request.onerror = creatures.indexedDB.onerror;\n}</pre>","<h4 class=\"editable\">Example</h4>\n<p>In the following code snippet, we open a database asynchronously and make a request. Because the specification is still evolving, Chrome and Firefox put prefixes in the methods. Chrome uses the <code>webkit</code> prefix while Firefox uses the <code>moz</code> prefix. Event handlers are registered for responding to various situations.</p>\n\n <pre name=\"code\" class=\"js\">// Taking care of the browser-specific prefixes.\nif ('webkitIndexedDB' in window) {\n window.indexedDB = window.webkitIndexedDB;\n window.IDBTransaction = window.webkitIDBTransaction;\n} else if ('mozIndexedDB' in window) {\n window.indexedDB = window.mozIndexedDB;\n}\n\n//Open a connection to the database with the name \"creatures\" \n//with the empty string as its version. \n\nvar creatures = {};\ncreatures.indexedDB = {};\n\ncreatures.indexedDB.open = function() {\n var request = indexedDB.open(\"creatures\");\n\n //The open request isn't executed yet, but an IDBRequest object is returned. \n //Create listeners to the IDBRequest. \n \n //If the version of the db changes, the onupgradeneeded callback is executed.\n request.onupgradeneeded = function(event) {\n // event.target.trans is a CHANGE_VERSION transaction\n \n // create an object store called \"swamp\"\n // and define an optional parameter object, the \"terrorizedPopulace\" keyPath. \n // The keyPath must be what makes an object unique and every object must have it. \n // If every creature had a unique identification number, that would also be a good keyPath. \n \n var datastore = db.createObjectStore(\"swamp\",\n {keyPath: \"terrorizedPopulace\"});\n }\n \n //If the open request is successful, the onsuccess callback is executed. \n request.onsuccess = function(event) {\n creatures.indexedDB.db = event.target.result; \n creatures.indexedDB.getAllSwampCreatures();\n };\n\n request.onerror = creatures.indexedDB.onerror;\n}</pre>","<h4 class=\"editable\">Example</h4>\n<p>The following is an example of how to open a read-write transaction.</p>\n\n <pre name=\"code\" class=\"js\">//Open a transaction with a scope of data stores and a read-write mode.\nvar trans = db.transaction(['list-of-store-names'], IDBTransaction.READ_WRITE);\n\n//\"objectStore()\" is an IDBTransaction method that returns an object store \n//that has already been added to the scope of the transaction. \nvar store = trans.objectStore('your-store-name');\nvar req = store.put(value, key); \nreq.onsuccess = ...; \nreq.onerror = ...;</pre>","<h4 class=\"editable\">Example</h4>\n<p>The following is an example of how to open a read-write transaction.</p>\n\n <pre name=\"code\" class=\"js\">//Open a transaction with a scope of data stores and a read-write mode.\nvar trans = db.transaction(['list-of-store-names'], IDBTransaction.READ_WRITE);\n\n//\"objectStore()\" is an IDBTransaction method that returns an object store \n//that has already been added to the scope of the transaction. \nvar store = trans.objectStore('your-store-name');\nvar req = store.put(value, key); \nreq.onsuccess = ...; \nreq.onerror = ...;</pre>"],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBDatabase","summary":"<p>The <code>IDBDatabase</code> interface of the IndexedDB API provides asynchronous access to a <a title=\"en/IndexedDB#database connection\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#database_connection\">connection to a database</a>. Use it to create, manipulate, and delete objects in that database. The interface also provides the only way to get a <a title=\"en/IndexedDB#gloss transaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_transaction\">transaction</a> and manage versions on that database.</p>\n<p>Inherits from: <a title=\"en/DOM/EventTarget\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/EventTarget\">EventTarget</a></p>","members":[{"name":"keyPath","help":"The <a title=\"en/IndexedDB#gloss key path\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_key_path\">key path</a> to be used by the new object store. If empty or not specified, the object store is created without a key path and uses <a title=\"en/IndexedDB#gloss out-of-line key\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_out-of-line_key\">out-of-line keys</a>.","obsolete":false},{"name":"autoIncrement","help":"If true, the object store has a <a title=\"en/IndexedDB#gloss key generator\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_key_generator\">key generator</a>. Defaults to <code>false</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The method was not called from a <code><a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a></code> transaction callback. You must call <code>setVersion()</code> first.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#CONSTRAINT_ERR","name":"CONSTRAINT_ERR","help":"An object store with the given name (based on case-sensitive comparison) already exists in the connected database.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NON_TRANSIENT_ERR","name":"NON_TRANSIENT_ERR","help":"<code>optionalParameters</code> has attributes other than <code>keyPath</code> and <code>autoIncrement</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The method was not called from a <code><a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a></code> transaction callback. You must call <code>setVersion()</code> first.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR","name":"NOT_FOUND_ERR","help":"You are trying to delete an object store that does not exist. Names are case sensitive.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The error is thrown for one of two reasons: <ul> <li>The <code>close()</code> method has been called on this IDBDatabase instance.</li> <li>The object store has been deleted or removed.</li> </ul>","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR","name":"NOT_FOUND_ERR","help":"One of the object stores doesn't exist in the connected database.","obsolete":false},{"name":"deleteObjectStore","help":"<p>Destroys the object store with the given name in the connected database, along with any indexes that reference it. </p>\n<p>As with <code>createObjectStore()</code>, this method can be called <em>only</em> within a <code><a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a></code> transaction. So you must call the <code>setVersion()</code> method first before you can remove any object store or index.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_2\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>name</dt> <dd>The name of the data store to delete.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<p><code>void</code></p>\n</div><div id=\"section_17\"><span id=\"Exceptions_2\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Exception</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code><a title=\"en/IndexedDB/DatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The method was not called from a <code><a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a></code> transaction callback. You must call <code>setVersion()</code> first.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_FOUND_ERR</a></code></td> <td>You are trying to delete an object store that does not exist. Names are case sensitive.</td> </tr> </tbody>\n</table>\n</div>","idl":"<pre>IDBRequest deleteObjectStore(\n in DOMString <em>name</em>\n) raises (IDBDatabaseException);\n</pre>","obsolete":false},{"name":"transaction","help":"<p>Immediately returns an <a title=\"en/IndexedDB/IDBTransaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction\">IDBTransaction</a> object, and starts a transaction in a separate thread. The method returns a transaction object (<a title=\"en/IndexedDB/IDBTransaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction\"><code>IDBTransaction</code></a>) containing the <a title=\"en/IndexedDB/IDBTransaction#objectStore()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#objectStore()\">objectStore()</a> method, which you can use to access your object store. </p>\n\n<div id=\"section_22\"><span id=\"Parameters_4\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>storeNames</dt> <dd>The names of object stores and indexes that are in the scope of the new transaction. Specify only the object stores that you need to access.</dd> <dt>mode</dt> <dd><em>Optional</em>. The types of access that can be performed in the transaction. Transactions are opened in one of three modes: <code>READ_ONLY</code>, <code>READ_WRITE</code>, and <code>VERSION_CHANGE</code>. If you don't provide the parameter, the default access mode is <code>READ_ONLY</code>. To avoid slowing things down, don't open a <code>READ_WRITE</code> transaction, unless you actually need to write into the database.</dd>\n</dl>\n</div><div id=\"section_23\"><span id=\"Sample_code\"></span><h5 class=\"editable\">Sample code</h5>\n<p>To start a transaction with the following scope, you can use the code snippets in the table. As noted earlier:</p>\n<ul> <li>Add prefixes to the methods in WebKit browsers, (that is, instead of <code>IDBTransaction.READ_ONLY</code>, use <code>webkitIDBTransaction.READ_ONLY</code>).</li> <li>The default mode is <code>READ_ONLY</code>, so you don't really have to specify it. Of course, if you need to write into the object store, you can open the transaction in the <code>READ_WRITE</code> mode.</li>\n</ul>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"185\">Scope</th> <th scope=\"col\" width=\"1018\">Code</th> </tr> <tr> <td>Single object store</td> <td> <p><code>var transaction = db.transaction(['my-store-name'], IDBTransaction.READ_ONLY); </code></p> <p>Alternatively:</p> <p><code>var transaction = db.transaction('my-store-name', IDBTransaction.READ_ONLY);</code></p> </td> </tr> <tr> <td>Multiple object stores</td> <td><code>var transaction = db.transaction(['my-store-name', 'my-store-name2'], IDBTransaction.READ_ONLY);</code></td> </tr> <tr> <td>All object stores</td> <td> <p><code>var transaction = db.transaction(db.objectStoreNames, IDBTransaction.READ_ONLY);</code></p> <p>You cannot pass an empty array into the storeNames parameter, such as in the following: <code>var transaction = db.transaction([], IDBTransaction.READ_ONLY);.</code></p> <div class=\"warning\"><strong>Warning:</strong> Accessing all obejct stores under the <code>READ_WRITE</code> mode means that you can run only that transaction. You cannot have writing transactions with overlapping scopes.</div> </td> </tr> </thead> <tbody> </tbody>\n</table>\n</div><div id=\"section_24\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBTransaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBVersionChangeRequest\">IDBTransaction</a></code></dt> <dd>The transaction object.</dd>\n</dl>\n</div><div id=\"section_25\"><span id=\"Exceptions_3\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Exception</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code><a title=\"en/IndexedDB/DatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The error is thrown for one of two reasons: <ul> <li>The <code>close()</code> method has been called on this IDBDatabase instance.</li> <li>The object store has been deleted or removed.</li> </ul> </td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_FOUND_ERR</a></code></td> <td>One of the object stores doesn't exist in the connected database.</td> </tr> </tbody>\n</table>\n</div>","idl":"<pre>IDBTransaction transaction(\n in optional any <em>storeNames</em>,\n in optional unsigned short <em>mode</em> \n) raises (IDBDatabaseException);</pre>","obsolete":false},{"name":"setVersion","help":"<div class=\"warning\"><strong>Warning:</strong> The latest draft of the specification dropped this method. Some not up-to-date browsers still implement this method. The new way is to define the version in the <code>IDBDatabase.open()</code> method and to create and delete object stores in the <code>onupdateneeded</code> event handler associated to the returned request.</div>\n<p>Updates the version of the database. Returns immediately and runs a <code><a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a></code> transaction on the connected database in a separate thread.</p>\n<p>Call this method before creating or deleting an object store.</p>\n\n<div id=\"section_19\"><span id=\"Parameters_3\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>version</dt> <dd>The version to store in the database.</dd>\n</dl>\n</div><div id=\"section_20\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBObjectStore\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBVersionChangeRequest\">IDBVersionChangeRequest</a></code></dt> <dd>The request to change the version of a database.</dd>\n</dl>\n</div>","idl":"<pre>IDBVersionChangeRequest setVersion(\n in DOMString <em>version</em>\n) raises (IDBDatabaseException);\n</pre>","obsolete":false},{"name":"createObjectStore","help":"<p>Creates and returns a new object store or index. The method takes the name of the store as well as a parameter object. The parameter object lets you define important optional properties. You can use the property to uniquely identify individual objects in the store. As the property is an identifier, it should be unique to every object, and every object should have that property.</p>\n<p>But before you can create any object store or index, you must first call the <code><a href=\"#setVersion()\">setVersion()</a></code><a href=\"#setVersion()\"> method</a>.</p>\n\n<div id=\"section_11\"><span id=\"Parameters\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>name</dt> <dd>The name of the new object store.</dd> <dt>optionalParameters</dt> <dd> <div class=\"warning\"><strong>Warning:</strong> The latest draft of the specification changed this to <code>IDBDatabaseOptionalParameters</code>, which is not yet recognized by any browser</div> <p><em>Optional</em>. Options object whose attributes are optional parameters to the method. It includes the following properties:</p> <table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Attribute</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code>keyPath</code></td> <td>The <a title=\"en/IndexedDB#gloss key path\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_key_path\">key path</a> to be used by the new object store. If empty or not specified, the object store is created without a key path and uses <a title=\"en/IndexedDB#gloss out-of-line key\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_out-of-line_key\">out-of-line keys</a>.</td> </tr> <tr> <td><code>autoIncrement</code></td> <td>If true, the object store has a <a title=\"en/IndexedDB#gloss key generator\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_key_generator\">key generator</a>. Defaults to <code>false</code>.</td> </tr> </tbody> </table> <p>Unknown parameters are ignored.</p> </dd>\n</dl>\n</div><div id=\"section_12\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBObjectStore\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBObjectStore\">IDBObjectStore</a></code></dt> <dd>The newly created object store.</dd>\n</dl>\n</div><div id=\"section_13\"><span id=\"Exceptions\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Exception</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code><a title=\"en/IndexedDB/DatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The method was not called from a <code><a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a></code> transaction callback. You must call <code>setVersion()</code> first.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/DatabaseException#CONSTRAINT ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#CONSTRAINT_ERR\">CONSTRAINT_ERR</a></code></td> <td>An object store with the given name (based on case-sensitive comparison) already exists in the connected database.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NON_TRANSIENT_ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NON_TRANSIENT_ERR\">NON_TRANSIENT_ERR</a></code></td> <td><code>optionalParameters</code> has attributes other than <code>keyPath</code> and <code>autoIncrement</code>.</td> </tr> </tbody>\n</table>\n</div>","idl":"<pre>IDBObjectStore createObjectStore(\n in DOMString <em>name</em>,\n in <code>Object <em>optionalParameters</em></code>\n) raises (IDBDatabaseException);\n</pre>","obsolete":false},{"name":"close","help":"<p>Returns immediately and closes the connection in a separate thread. The connection is not actually closed until all transactions created using this connection are complete. No new transactions can be created for this connection once this method is called. Methods that create transactions throw an exception if a closing operation is pending.</p>\n<pre>void close();\n</pre>","obsolete":false},{"url":"","name":"name","help":"Name of the connected database.","obsolete":false},{"url":"","name":"version","help":"The version of the connected database. When a database is first created, this attribute is the empty string.","obsolete":false},{"url":"","name":"objectStoreNames","help":"A list of the names of the <a title=\"en/IndexedDB#gloss object store\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_object_store\">object stores</a> currently in the connected database.","obsolete":false},{"name":"onabort","help":"","obsolete":false},{"name":"onerror","help":"","obsolete":false},{"name":"onversionchange","help":"","obsolete":false}]},"CSSRule":{"title":"CSSRule","srcUrl":"https://developer.mozilla.org/en/DOM/cssRule","specification":"<li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule\" title=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRule\" target=\"_blank\">DOM Level 2 CSS: CSSRule</a></li> <li><a class=\" external\" title=\"http://dev.w3.org/csswg/cssom/#css-rules\" rel=\"external\" href=\"http://dev.w3.org/csswg/cssom/#css-rules\" target=\"_blank\">CSS Object Model: CSS Rules</a></li>","seeAlso":"Using dynamic styling information","summary":"<p>An object implementing the <code>CSSRule</code> DOM interface represents a single CSS rule. References to a <code>CSSRule</code>-implementing object may be obtained by looking at a <a title=\"en/DOM/stylesheet\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSSStyleSheet\">CSS style sheet's</a> <code><a title=\"en/DOM/CSSStyleSheet/cssRules\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSSStyleSheet\">cssRules</a></code> list.</p>\n<p>There are several kinds of rules. The <code>CSSRule</code> interface specifies the properties common to all rules, while properties unique to specific rule types are specified in the more specialized interfaces for those rules' respective types.</p>","members":[{"name":"STYLE_RULE","help":"","obsolete":false},{"name":"MEDIA_RULE","help":"","obsolete":false},{"name":"FONT_FACE_RULE","help":"","obsolete":false},{"name":"PAGE_RULE","help":"","obsolete":false},{"name":"IMPORT_RULE","help":"","obsolete":false},{"name":"CHARSET_RULE","help":"","obsolete":false},{"name":"UNKNOWN_RULE","help":"","obsolete":false},{"name":"KEYFRAMES_RULE","help":"","obsolete":false},{"name":"KEYFRAME_RULE","help":"","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/cssRule/parentRule","name":"parentRule","help":"Returns the containing rule, otherwise <code>null</code>. E.g. if this rule is a style rule inside an <code><a title=\"en/CSS/@media\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/@media\">@media</a></code> block, the parent rule would be that <code><a title=\"en/DOM/CSSMediaRule\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSSMediaRule\">CSSMediaRule</a></code>."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/CSSRule/parentStyleSheet","name":"parentStyleSheet","help":"Returns the <code><a title=\"en/DOM/CSSStyleSheet\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSSStyleSheet\">CSSStyleSheet</a></code> object for the style sheet that contains this rule"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/CSSRule/cssText","name":"cssText","help":"Returns the textual representation of the rule, e.g. <code>\"h1,h2 { font-size: 16pt }\"</code>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/cssRule/type","name":"type","help":"One of the <a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/cssRule#Type_constants\">Type constants</a> indicating the type of CSS rule."}]},"DOMSelection":{"title":"Selection","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.getSelection\">window.getSelection</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document.getSelection\">document.getSelection</a></code>\n, <a title=\"en/dom/Range\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/range\">Range</a>","summary":"<p>Selection is the class of the object returned by <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.getSelection\">window.getSelection()</a></code>\n and other methods. It represents the text selection in the greater page, possibly spanning multiple elements, when the user drags over static text and other parts of the page. For information about text selection in an individual text editing element, see <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLInputElement\">Input</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLTextAreaElement\">TextArea</a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document.activeElement\">document.activeElement</a></code>\n which typically return the parent object returned from <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.getSelection\">window.getSelection()</a></code>\n.</p>\n<p>A selection object represents the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/range\">ranges</a></code>\n that the user has selected. Typically, it holds only one range, accessed as follows:</p>\n\n <pre name=\"code\" class=\"js\">var selObj = window.getSelection();\nvar range = selObj.getRangeAt(0);</pre>\n \n<ul> <li><code>selObj</code> is a Selection object</li> <li><code>range</code> is a <a title=\"en/DOM/Range\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/range\">Range</a> object</li>\n</ul>\n<p>Calling the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Selection/toString\">Selection/toString()</a></code>\n method returns the text contained in the selection, e.g</p>\n\n <pre name=\"code\" class=\"js\">var selObj = window.getSelection();\nwindow.alert(selObj);</pre>\n \n<p>Note that using a selection object as the argument to <code>window.alert</code> will call the object's <code>toString</code> method.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/selectAllChildren","name":"selectAllChildren","help":"Adds all the children of the specified node to the selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/removeRange","name":"removeRange","help":"Removes a range from the selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/extend","name":"extend","help":"Moves the focus of the selection to a specified point."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/modify","name":"modify","help":"Changes the current selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/addRange","name":"addRange","help":"A range object that will be added to the selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/collapseToStart","name":"collapseToStart","help":"Collapses the selection to the start of the first range in the selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/collapseToEnd","name":"collapseToEnd","help":"Collapses the selection to the end of the last range in the selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/toString","name":"toString","help":"Returns a string currently being represented by the selection object, i.e. the currently selected text."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/selectionLanguageChange","name":"selectionLanguageChange","help":"Modifies the cursor Bidi level after a change in keyboard direction."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/getRangeAt","name":"getRangeAt","help":"Returns a range object representing one of the ranges currently selected."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/collapse","name":"collapse","help":"Collapses the current selection to a single point."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/removeAllRanges","name":"removeAllRanges","help":"Removes all ranges from the selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/deleteFromDocument","name":"deleteFromDocument","help":"Deletes the selection's content from the document."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/containsNode","name":"containsNode","help":"Indicates if a certain node is part of the selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/focusOffset","name":"focusOffset","help":"Returns the number of characters that the selection's focus is offset within the focusNode."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/rangeCount","name":"rangeCount","help":"Returns the number of ranges in the selection."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/anchorNode","name":"anchorNode","help":"Returns the node in which the selection begins."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/anchorOffset","name":"anchorOffset","help":"Returns the number of characters that the selection's anchor is offset within the anchorNode."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/isCollapsed","name":"isCollapsed","help":"Returns a Boolean indicating whether the selection's start and end points are at the same position."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Selection/focusNode","name":"focusNode","help":"Returns the node in which the selection ends."}],"srcUrl":"https://developer.mozilla.org/en/DOM/Selection"},"SVGPathSegArcRel":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"CSSStyleRule":{"title":"CSSStyleRule","seeAlso":"CSSRule","summary":"An object representing a single CSS style rule. <code>CSSStyleRule</code> implements the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/CSSRule\">CSSRule</a></code>\n interface.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/CSSStyleRule/selectorText","name":"selectorText","help":"Gets/sets the textual representation of the selector for this rule, e.g. <code>\"h1,h2\"</code>."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/CSSStyleRule/style","name":"style","help":"Returns the <code><a title=\"en/DOM/CSSStyleDeclaration\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSSStyleDeclaration\">CSSStyleDeclaration</a></code> object for the rule. <strong>Read only.</strong>"}],"srcUrl":"https://developer.mozilla.org/en/DOM/CSSStyleRule"},"Blob":{"title":"Blob","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>5 \n<span title=\"prefix\">webkit</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span>\n<span title=\"prefix\">moz</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/Blob","seeAlso":"<li>\n<a rel=\"custom\" href=\"http://www.w3.org/TR/FileAPI/#dfn-Blob\">File API Specification: Blob</a><span title=\"Working Draft\">WD</span></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/BlobBuilder\">BlobBuilder</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/XMLHttpRequest/FormData\">FormData</a></code>\n</li>","summary":"<div><p><strong>This is an experimental feature</strong><br>Because this feature is still in development in some browsers, check the <a href=\"#AutoCompatibilityTable\">compatibility table</a> for the proper prefixes to use in various browsers.</p></div>\n<p></p>\n<p>A <code>Blob</code> object represents a file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n interface is based on <code>Blob</code>, inheriting blob functionality and expanding it to support files on the user's system.</p>\n<p>An easy way to construct a <code>Blob</code> is by using the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/BlobBuilder\">BlobBuilder</a></code>\n interface, which lets you iteratively append data to a blob, then retrieve the completed blob when you're ready to use it for something. Another way is to use the <code>slice()</code> method to create a blob that contains a subset of another blob's data.</p>\n<div class=\"note\"><strong>Note:</strong> The <code>slice()</code> method has vendor prefixes: <code>blob.mozSlice()</code> for Firefox and <code>blob.webkitSlice()</code> for Chrome. An old version of the <code>slice()</code> method, without vendor prefixes, had different semantics, as described below.</div>","members":[{"name":"size","help":"The size, in bytes, of the data contained in the <code>Blob</code> object. <strong>Read only.</strong>","obsolete":false},{"name":"type","help":"An ASCII-encoded string, in all lower case, indicating the MIME type of the data contained in the <code>Blob</code>. If the type is unknown, this string is empty. <strong>Read only.</strong>","obsolete":false}]},"HTMLHRElement":{"title":"HTMLHRElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/hr\"><hr></a></code>\n HTML element","summary":"DOM <code>hr</code> elements expose the <a target=\"_blank\" rel=\"external nofollow\" class=\" external\" title=\"http://www.w3.org/TR/html5/grouping-content.html#htmlhrelement\" href=\"http://www.w3.org/TR/html5/grouping-content.html#htmlhrelement\">HTMLHRElement</a> (or <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a target=\"_blank\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-68228811\" rel=\"external nofollow\" class=\" external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-68228811\"><code>HTMLHRElement</code></a>) interface, which provides special properties (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating <code>hr</code> elements. In <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML 5</a></span>, this interface inherits from HTMLElement, but defines no additional members.","members":[{"name":"align","help":"Enumerated attribute indicating alignment of the rule with respect to the surrounding context.","obsolete":true},{"name":"noshade","help":"Sets the rule to have no shading.","obsolete":true},{"name":"size","help":"The height of the rule.","obsolete":true},{"name":"width","help":"The width of the rule on the page.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLHRElement"},"DirectoryReader":{"title":"DirectoryReader","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>13\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<div><strong>`DRAFT</strong> <div>This page is not complete.</div>\n</div>\n<p>The <code>DirectoryReader</code> interface of the <a title=\"en/DOM/File_API/File_System_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File_API/File_System_API\">FileSystem API</a> lets a user list files and directories in a directory.</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/DirectoryReader"},"WebKitBlobBuilder":{"title":"BlobBuilder","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td> <p>8</p> <p>As <code>WebKitBlobBuilder</code>.</p> </td> <td> <p>6.0 (6.0)\n</p> <p>As <code>MozBlobBuilder</code>.</p> </td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td> <p>\n<em>Nightly build</em></p> <p>As <code>WebKitBlobBuilder</code>.</p> </td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td> <p>6.0 (6.0)\n</p> <p>As <code>MozBlobBuilder</code>.</p> </td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/BlobBuilder","seeAlso":"<li>\n<a rel=\"custom\" href=\"http://dev.w3.org/2009/dap/file-system/file-writer.html#idl-def-BlobBuilder\">File API Specification: BlobBuilder</a><span title=\"Working Draft\">WD</span></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n</li>","summary":"<div><p><strong>This is an experimental feature</strong><br>Because this feature is still in development in some browsers, check the <a href=\"#AutoCompatibilityTable\">compatibility table</a> for the proper prefixes to use in various browsers.</p></div>\n<p></p>\n<p>The <code>BlobBuilder</code> interface provides an easy way to construct <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n objects. Just create a <code>BlobBuilder</code> and append chunks of data to it by calling the method. When you're done building your blob, call to retrieve a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n containing the data you sent into the blob builder.</p>","members":[{"name":"getBlob","help":"<p>Returns the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n object that has been constructed using the data passed through calls to .</p>\n\n<div id=\"section_6\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt>contentType \n<span title=\"\">Optional</span>\n</dt> <dd>The MIME type of the data to be returned in the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n. This will be the value of the <code>Blob</code> object's type property.</dd>\n</dl>\n</div><div id=\"section_7\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n object containing all of the data passed to any calls to made since the <code>BlobBuilder</code> was created. This also resets the BlobBuilder so that the next call to is starting a new, empty blob.</p>\n</div>","idl":"<pre class=\"eval\">Blob getBlob(\n in DOMString contentType \n<span style=\"border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;\" title=\"\">Optional</span>\n\n); \n</pre>","obsolete":false},{"name":"append","help":"<p>Appends the contents of the specified JavaScript object to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n being built. If the value you specify isn't a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n, <a title=\"en/JavaScript typed arrays/Arraybuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>, or <a title=\"en/JavaScript/Reference/Global Objects/String\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String\"><code>String</code></a>, the value is coerced to a string before being appended to the blob.</p>\n<pre>void append(\n in ArrayBuffer data\n};\n\nvoid append(\n in Blob data\n};\n\n\nvoid append(\n in String data,\n [optional] in String endings\n};\n</pre>\n<div id=\"section_4\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>data</code></dt> <dd>The data to append to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n being constructed.</dd> <dt><code>endings</code></dt> <dd>Specifies how strings containing <code>\\n</code> are to be written out. This can be <code>\"transparent\"</code> (endings unchanged) or <code>\"native\"</code> (endings changed to match host OS filesystem convention). The default value is <code>\"transparent\"</code>.</dd>\n</dl>\n</div>","obsolete":false}]},"HTMLParamElement":{"title":"param","examples":["Please see the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object\"><object></a></code>\n page for examples on <param>."],"summary":"<strong>Parameter </strong>element which defines parameters for <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object\"><object></a></code>\n.","members":[{"obsolete":false,"url":"","name":"valuetype","help":"<p>Specifies the type of the <code>value</code> attribute. Possible values are:</p> <ul> <li>data: Default value. The value is passed to the object's implementation as a string.</li> <li>ref: The value is a URI to a resource where run-time values are stored.</li> <li>object: An ID of another <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/object\"><object></a></code>\n in the same document.</li> </ul>"},{"obsolete":false,"url":"","name":"name","help":"Name of the parameter."},{"obsolete":false,"url":"","name":"type","help":"Only used if the <code>valuetype</code> is set to \"ref\". Specifies the type of values found at the URI specified by value."},{"obsolete":false,"url":"","name":"value","help":"Value of the parameter."}],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/param"},"SVGMetadataElement":{"title":"metadata","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> \n<tr><th scope=\"col\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Firefox (Gecko)</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.5 (1.8)\n</td> <td>\n9.0</td> <td>\n8.0</td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td>\n3.0</td> <td>1.0 (1.8)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<p>The chart is based on <a title=\"en/SVG/Compatibility sources\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Compatibility_sources\">these sources</a>.</p>","summary":"Metadata is structured data about data. Metadata which is included with SVG content should be specified within <code>metadata</code> elements. The contents of the <code>metadata</code> should be elements from other XML namespaces such as RDF, FOAF, etc.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/metadata"},"Notification":{"title":"notification","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/navigator.mozNotification\">navigator.mozNotification</a></code>\n</li> <li><a title=\"en/DOM/Displaying notifications\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Displaying_notifications\">Displaying notifications</a></li>","summary":"<div class=\"geckoMinversionHeaderTemplate\"><p>Mobile Only in Gecko 2.0</p><p>Available only in Firefox Mobile as of Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n</p></div>\n\n<div><p>Non-standard</p></div><p></p>\n<p>The notification object, which you create using the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/navigator.mozNotification\">navigator.mozNotification</a></code>\n object's <code>createNotification()</code> method, is used to configure and display desktop notifications to the user.</p>","members":[{"name":"show","help":"Displays the notification.","idl":"<pre class=\"eval\">void show();\n</pre>","obsolete":false},{"name":"onclick","help":" A function to call when the notification is clicked.","obsolete":false},{"name":"onclose","help":" A function to call when the notification is dismissed.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/notification"},"HTMLTitleElement":{"title":"HTMLTitleElement","summary":"The <code>title</code> object exposes the <a target=\"_blank\" class=\" external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-79243169\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-79243169\">HTMLTitleElement</a> interface which contains the title for a document. This element inherits all of the properties and methods described in the <a title=\"en/DOM/element\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> section.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/title.text","name":"text","help":"Gets or sets the text content of the document's title."}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLTitleElement"},"Performance":{"title":"Performance","summary":"The articles linked to from here will help you improve performance, whether you're developing core Mozilla code or an add-on.","members":[],"srcUrl":"https://developer.mozilla.org/en/Performance"},"MessagePort":{"title":"nsIWorkerMessagePort","seeAlso":"<li><a class=\"internal\" title=\"En/Using DOM workers\" rel=\"internal\" href=\"https://developer.mozilla.org/En/Using_web_workers\">Using web workers</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIWorkerMessageEvent\">nsIWorkerMessageEvent</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIWorkerGlobalScope\">nsIWorkerGlobalScope</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIWorkerScope\">nsIWorkerScope</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIAbstractWorker\">nsIAbstractWorker</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIWorker\">nsIWorker</a></code>\n</li>","summary":"<div>\n\n<a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/threads/nsIDOMWorkers.idl\"><code>dom/interfaces/threads/nsIDOMWorkers.idl</code></a><span><a rel=\"internal\" href=\"https://developer.mozilla.org/en/Interfaces/About_Scriptable_Interfaces\" title=\"en/Interfaces/About_Scriptable_Interfaces\">Scriptable</a></span></div><span>This interface represents a worker thread's message port, which is used to allow the worker to post messages back to its creator.</span><div><div>1.0</div><div>11.0</div><div></div><div>Introduced</div><div>Gecko 1.9.1</div><div title=\"Introduced in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n\"></div><div title=\"Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n\"></div></div>\n<div>Inherits from: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISupports\">nsISupports</a></code>\n<span>Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n</span></div>","members":[{"name":"postMessage","help":"<p>Posts a message into the event queue.</p>\n\n<div id=\"section_4\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>aMessage</code></dt> <dd>The message to post.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\"> void postMessage(\n in DOMString aMessage\n );\n</pre>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/XPCOM_Interface_Reference/NsIWorkerMessagePort"},"HTMLHeadingElement":{"title":"HTMLHeadingElement","seeAlso":"HTML Heading elements","summary":"DOM heading elements expose the <a title=\"http://www.w3.org/TR/html5/sections.html#htmlheadingelement\" class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/html5/sections.html#htmlheadingelement\" target=\"_blank\">HTMLHeadingElement</a> (or <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" rel=\"external nofollow\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-43345119\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-43345119\" target=\"_blank\"><code>HTMLHeadingElement</code></a>) interface. In <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML 5</a></span>, this interface inherits from HTMLElement, but defines no additional members, though in <span><a rel=\"custom nofollow\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> it introduces the deprecated <code>align</code> property.","members":[{"name":"align","help":"Enumerated attribute indicating alignment of the heading with respect to the surrounding context.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLHeadingElement"},"SVGFontFaceElement":{"title":"SVGFontFaceElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGFontFaceElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face\"><font-face></a></code>\n SVG Element","summary":"<p>The <code>SVGFontFaceElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face\"><font-face></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face\"><font-face></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"SVGExternalResourcesRequired":{"title":"SVGImageElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGImageElement","skipped":true,"cause":"Suspect title"},"WebKitAnimationEvent":{"title":"AnimationEvent","srcUrl":"https://developer.mozilla.org/en/DOM/event/AnimationEvent","specification":"<a rel=\"custom\" href=\"http://www.w3.org/TR/css3-animations/#animation-events-\">CSS Animations Module Level 3: Animation Events</a><span title=\"Working Draft\">WD</span>","seeAlso":"<li><a rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/CSS_animations\" title=\"en/CSS/CSS_animations\">CSS animations</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation\">animation</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-delay\">animation-delay</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-direction\">animation-direction</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-duration\">animation-duration</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-fill-mode\">animation-fill-mode</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-iteration-count\">animation-iteration-count</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-name\">animation-name</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-play-state\">animation-play-state</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/animation-timing-function\">animation-timing-function</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/@keyframes\">@keyframes</a></code>\n</li>","summary":"<code>AnimationEvent</code> objects provide information about events that occur related to <a rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/CSS_animations\" title=\"en/CSS/CSS_animations\">CSS animations</a>.","members":[{"name":"animationName","help":"The name of the animation on which the animation event occurred.","obsolete":false},{"name":"elapsedTime","help":"The amount of time, in seconds, the animation had been running at the time the event occurred.","obsolete":false}]},"HTMLBodyElement":{"title":"HTMLBodyElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body\"><body></a></code>\n HTML element","summary":"DOM body elements expose the <a href=\"http://www.w3.org/TR/html5/sections.html#the-body-element\" target=\"_blank\" rel=\"external nofollow\" class=\" external\" title=\"http://www.w3.org/TR/html5/sections.html#the-body-element\">HTMLBodyElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-48250443\" target=\"_blank\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-48250443\" rel=\"external nofollow\" class=\" external\"><code>HTMLBodyElement</code></a>) interface, which provides special properties (beyond the regular <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a></code>\n object interface they also have available to them by inheritance) for manipulating body elements.","members":[{"name":"aLink","help":"Color of active hyperlinks.","obsolete":true},{"name":"background","help":"<p>URI for a background image resource.</p> <div class=\"note\"><strong>Note:</strong> Starting in Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n, this value is no longer resolved as a URI; instead, it's treated as a simple string.</div>","obsolete":true},{"name":"bgColor","help":"Background color for the document.","obsolete":true},{"name":"link","help":"Color of unvisited links.","obsolete":true},{"name":"onafterprint","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onafterprint\">onafterprint</a></code>\n HTML attribute value for a function to call after the user has printed the document.","obsolete":false},{"name":"onbeforeprint","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onbeforeprint\">onbeforeprint</a></code>\n HTML attribute value for a function to call when the user has requested printing the document.","obsolete":false},{"name":"onbeforeunload","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onbeforeunload\">onbeforeunload</a></code>\n HTML attribute value for a function to call when the document is about to be unloaded.","obsolete":false},{"name":"onblur","help":"<p>Exposes the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.onblur\">window.onblur</a></code>\n event handler to call when the window loses focus.</p> <div class=\"note\"><strong>Note:</strong> This handler is triggered when the event reaches the window, not the body element. Use <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element.addEventListener\">addEventListener()</a></code>\n to attach an event listener to the body element.</div>","obsolete":false},{"name":"onerror","help":"<p>Exposes the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.onerror\">window.onerror</a></code>\n event handler to call when the document fails to load properly.</p> <div class=\"note\"><strong>Note:</strong> This handler is triggered when the event reaches the window, not the body element. Use <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element.addEventListener\">addEventListener()</a></code>\n to attach an event listener to the body element.</div>","obsolete":false},{"name":"onfocus","help":"<p>Exposes the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.onfocus\">window.onfocus</a></code>\n event handler to call when the window gains focus.</p> <div class=\"note\"><strong>Note:</strong> This handler is triggered when the event reaches the window, not the body element. Use <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element.addEventListener\">addEventListener()</a></code>\n to attach an event listener to the body element.</div>","obsolete":false},{"name":"onhashchange","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onhashchange\">onhashchange</a></code>\n HTML attribute value for a function to call when the fragment identifier in the address of the document changes.","obsolete":false},{"name":"onload","help":"<p>Exposes the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/window.onload\">window.onload</a></code>\n event handler to call when the window gains focus.</p> <div class=\"note\"><strong>Note:</strong> This handler is triggered when the event reaches the window, not the body element. Use <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element.addEventListener\">addEventListener()</a></code>\n to attach an event listener to the body element.</div>","obsolete":false},{"name":"onmessage","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onmessage\">onmessage</a></code>\n HTML attribute value for a function to call when the document receives a message.","obsolete":false},{"name":"onoffline","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onoffline\">onoffline</a></code>\n HTML attribute value for a function to call when network communication fails.","obsolete":false},{"name":"ononline","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-ononline\">ononline</a></code>\n HTML attribute value for a function to call when network communication is restored.","obsolete":false},{"name":"onpopstate","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onpopstate\">onpopstate</a></code>\n HTML attribute value for a function to call when the user has navigated session history.","obsolete":false},{"name":"onredo","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onredo\">onredo</a></code>\n HTML attribute value for a function to call when the user has moved forward in undo transaction history.","obsolete":false},{"name":"onresize","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onresize\">onresize</a></code>\n HTML attribute value for a function to call when the document has been resized.","obsolete":false},{"name":"onstorage","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onpopstate\">onpopstate</a></code>\n HTML attribute value for a function to call when the storage area has changed.","obsolete":false},{"name":"onundo","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onundo\">onundo</a></code>\n HTML attribute value for a function to call when the user has moved backward in undo transaction history.","obsolete":false},{"name":"onunload","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body#attr-onunload\">onunload</a></code>\n HTML attribute value for a function to call when when the document is going away.","obsolete":false},{"name":"text","help":"Foreground color of text.","obsolete":true},{"name":"vLink","help":"Color of visited links.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLBodyElement"},"Uint8Array":{"title":"Uint8Array","srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array","seeAlso":"<li><a title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" class=\" link-https\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"<p>The <code>UInt8Array</code> type represents an array of 8-bit unsigned integers.</p>\n<p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p>","constructor":"<div class=\"note\"><strong>Note:</strong> In these methods, <code><em>TypedArray</em></code> represents any of the <a title=\"en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses\">typed array object types</a>.</div>\n<table class=\"standard-table\"> <tbody> <tr> <td><code>Uint8Array <a title=\"en/JavaScript typed arrays/Uint8Array#Int8Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array#Int8Array%28%29\">Uint8Array</a>(unsigned long length);<br> </code></td> </tr> <tr> <td><code>Uint8Array </code><code><a title=\"en/JavaScript typed arrays/Uint8Array#Int8Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array#Int8Array%28%29\">Uint8Array</a></code><code>(<em>TypedArray</em> array);<br> </code></td> </tr> <tr> <td><code>Uint8Array </code><code><a title=\"en/JavaScript typed arrays/Uint8Array#Int8Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array#Int8Array%28%29\">Uint8Array</a></code><code>(sequence<type> array);<br> </code></td> </tr> <tr> <td><code>Uint8Array </code><code><a title=\"en/JavaScript typed arrays/Uint8Array#Int8Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint8Array#Int8Array%28%29\">Uint8Array</a></code><code>(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);<br> </code></td> </tr> </tbody>\n</table><p>Returns a new Uint8Array object.</p>\n<pre>Uint8Array Uint8Array(\n unsigned long length\n);\n\nUint8Array Uint8Array(\n <em>TypedArray</em> array\n);\n\nUint8Array Uint8Array(\n sequence<type> array\n);\n\nUint8Array Uint8Array(\n ArrayBuffer buffer,\n optional unsigned long byteOffset,\n optional unsigned long length\n);\n</pre>\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>length</code></dt> <dd>The number of elements in the byte array. If unspecified, length of the array view will match the buffer's length.</dd> <dt><code>array</code></dt> <dd>An object of any of the typed array types (such as <code>Int32Array</code>), or a sequence of objects of a particular type, to copy into a new <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>. Each value in the source array is converted to an 8-bit unsigned integer before being copied into the new array.</dd> <dt><code>buffer</code></dt> <dd>An existing <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> to use as the storage for the new <code>Uint8Array</code> object.</dd> <dt><code>byteOffset<br> </code></dt> <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the <code>Uint8Array</code>'s view of the buffer will start with the first byte.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>Uint8Array</code> object representing the specified data buffer.</p>\n</div>","members":[{"name":"subarray","help":"<p>Returns a new <code>Uint8Array</code> view on the <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> store for this <code>Uint8Array</code> object.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>begin</code></dt> <dd>The offset to the first element in the array to be referenced by the new <code>Uint8Array</code> object.</dd> <dt><code>end</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The offset to the element after last element in the array to be referenced by the new <code>Uint8Array</code> object; if not specified, all elements from the one specified by <code>begin</code> to the end of the array are included in the new view.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Notes_2\"></span><h6 class=\"editable\">Notes</h6>\n<p>The range specified by <code>begin</code> and <code>end</code> is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it's clamped to zero. If either begin or end is negative, it refers to an index from the end of the array instead of from the beginning.</p>\n<div class=\"note\"><strong>Note:</strong> Keep in mind that this is creating a new view on the existing buffer; changes to the new object's contents will impact the original object and vice versa.</div></div>","idl":"<pre>Uint8Array subarray(\n long begin,\n optional long end\n);\n</pre>","obsolete":false},{"name":"set","help":"<p>Sets multiple values in the typed array, reading input values from a specified array.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset \n<span title=\"\">Optional</span>\n</dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>\n</dl>\n</div>","idl":"<pre>void set(\n <em>TypedArray</em> array,\n optional unsigned long offset\n);\n\nvoid set(\n type[] array,\n optional unsigned long offset\n);\n</pre>","obsolete":false},{"name":"BYTES_PER_ELEMENT","help":"The size, in bytes, of each array element.","obsolete":false},{"name":"length","help":"The number of entries in the array; for these 8-bit values, this is the same as the size of the array in bytes. <strong>Read only.</strong>","obsolete":false}]},"NodeList":{"title":"NodeList","examples":["<p>It's possible to loop over the items in a <code>NodeList</code> using:</p>\n\n <pre name=\"code\" class=\"js\">for (var i = 0; i < myNodeList.length; ++i) {\n var item = myNodeList[i]; // Calling myNodeList.item(i) isn't necessary in JavaScript\n}</pre>\n \n<p>Don't be tempted to use <code><a title=\"en/Core JavaScript 1.5 Reference/Statements/for...in\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in\">for...in</a></code> or <code><a title=\"en/Core JavaScript 1.5 Reference/Statements/for each...in\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript/Reference/Statements/for_each...in\">for each...in</a></code> to enumerate the items in the list, since that will also enumerate the length and item properties of the <code>NodeList</code> and cause errors if your script assumes it only has to deal with <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a></code>\n objects.</p>"],"srcUrl":"https://developer.mozilla.org/En/DOM/NodeList","specification":"DOM Level 3","summary":"NodeList objects are collections of nodes returned by <a title=\"document.getElementsByTagName\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.getElementsByTagName\"><code>getElementsByTagName</code></a>, <a title=\"document.getElementsByTagNameNS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.getElementsByTagNameNS\"><code>getElementsByTagNameNS</code></a>, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.childNodes\">Node.childNodes</a></code>\n, <a title=\"document.querySelectorAll\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Document.querySelectorAll\">querySelectorAll</a>, <a title=\"document.getElementsByClassName\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.getElementsByClassName\"><code>getElementsByClassName</code></a>, etc.NodeList objects are collections of nodes returned by <a title=\"document.getElementsByTagName\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.getElementsByTagName\"><code>getElementsByTagName</code></a>, <a title=\"document.getElementsByTagNameNS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.getElementsByTagNameNS\"><code>getElementsByTagNameNS</code></a>, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.childNodes\">Node.childNodes</a></code>\n, <a title=\"document.querySelectorAll\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Document.querySelectorAll\">querySelectorAll</a>, <a title=\"document.getElementsByClassName\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.getElementsByClassName\"><code>getElementsByClassName</code></a>, etc.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/NodeList.item","name":"item","help":"Returns an item in the list by its index, or <code>null</code> if out-of-bounds. Equivalent to nodeList[idx]"},{"name":"length","help":"Reflects the number of elements in the NodeList. ","obsolete":false}]},"DOMURL":{"title":"Drawing DOM objects into a canvas","members":[],"srcUrl":"https://developer.mozilla.org/en/HTML/Canvas/Drawing_DOM_objects_into_a_canvas","skipped":true,"cause":"Suspect title"},"FileError":{"title":"FileError","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/FileReader\">FileReader</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n</li> <li>\n<a rel=\"custom\" href=\"http://www.w3.org/TR/FileAPI/#FileErrorInterface\">Specification: FileAPI FileError</a><span title=\"Working Draft\">WD</span></li>","summary":"Represents an error that occurs while using the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/FileReader\">FileReader</a></code>\n interface.","members":[{"name":"ABORT_ERR","help":"The file operation was aborted, probably due to a call to the <code>FileReader</code> <code>abort()</code> method.","obsolete":false},{"name":"ENCODING_ERR","help":"The file data cannot be accurately represented in a data URL.","obsolete":false},{"name":"NOT_FOUND_ERR","help":"File not found.","obsolete":false},{"name":"NOT_READABLE_ERR","help":"File could not be read.","obsolete":false},{"name":"SECURITY_ERR","help":"The file could not be accessed for security reasons.","obsolete":false},{"name":"code","help":"The <a title=\"en/nsIDOMFileError#Error codes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/nsIDOMFileError#Error_codes\">error code</a>.","obsolete":false},{"name":"code","help":"The <a title=\"en/nsIDOMFileError#Error codes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/nsIDOMFileError#Error_codes\">error code</a>.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/FileError"},"CSSMediaRule":{"title":"cssMediaRule","srcUrl":"https://developer.mozilla.org/en/DOM/cssMediaRule","specification":"<li><a class=\"external\" title=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule\" target=\"_blank\">DOM Level 2 CSS: CSSRule</a></li> <li><a class=\"external\" title=\"http://dev.w3.org/csswg/cssom/#cssmediarule\" rel=\"external\" href=\"http://dev.w3.org/csswg/cssom/#cssmediarule\" target=\"_blank\">CSS Object Model: CSS Media Rule</a></li>","seeAlso":"CSSRule","summary":"An object representing a single CSS media rule. <code>CSSMediaRule</code> implements the <code><a href=\"https://developer.mozilla.org/en/DOM/CSSRule\" rel=\"custom\">CSSRule</a></code> interface.","members":[{"name":"insertRule","help":"Inserts a new style rule into the current style sheet.","obsolete":false},{"name":"deleteRule","help":"Deletes a rule from the style sheet.","obsolete":false},{"name":"media","help":"Specifies the intended destination medium for style information.","obsolete":false},{"name":"cssRules","help":"Returns a <code><a title=\"en/DOM/CSSRuleList\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSSRuleList\">CSSRuleList</a></code> of the CSS rules in the media rule.","obsolete":false}]},"HTMLElement":{"title":"element","summary":"<p>This chapter provides a brief reference for the general methods, properties, and events available to most HTML and XML elements in the Gecko DOM.</p>\n<p>Various W3C specifications apply to elements:</p>\n<ul> <li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Core/\" title=\"http://www.w3.org/TR/DOM-Level-2-Core/\" target=\"_blank\">DOM Core Specification</a>—describes the core interfaces shared by most DOM objects in HTML and XML documents</li> <li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/\" target=\"_blank\">DOM HTML Specification</a>—describes interfaces for objects in HTML and XHTML documents that build on the core specification</li> <li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Events/\" title=\"http://www.w3.org/TR/DOM-Level-2-Events/\" target=\"_blank\">DOM Events Specification</a>—describes events shared by most DOM objects, building on the DOM Core and <a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Views/\" title=\"http://www.w3.org/TR/DOM-Level-2-Views/\" target=\"_blank\">Views</a> specifications</li> <li><a class=\"external\" title=\"http://www.w3.org/TR/ElementTraversal/\" rel=\"external\" href=\"http://www.w3.org/TR/ElementTraversal/\" target=\"_blank\">Element Traversal Specification</a>—describes the new attributes that allow traversal of elements in the DOM tree \n<span>New in <a rel=\"custom\" href=\"https://developer.mozilla.org/en/Firefox_3.5_for_developers\">Firefox 3.5</a></span>\n</li>\n</ul>\n<p>The articles listed here span the above and include links to the appropriate W3C DOM specification.</p>\n<p>While these interfaces are generally shared by most HTML and XML elements, there are more specialized interfaces for particular objects listed in the DOM HTML Specification. Note, however, that these HTML interfaces are \"only for [HTML 4.01] and [XHTML 1.0] documents and are not guaranteed to work with any future version of XHTML.\" The HTML 5 draft does state it aims for backwards compatibility with these HTML interfaces but says of them that \"some features that were formerly deprecated, poorly supported, rarely used or considered unnecessary have been removed.\" One can avoid the potential conflict by moving entirely to DOM XML attribute methods such as <code>getAttribute()</code>.</p>\n<p><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLHtmlElement\">Html</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLHeadElement\">Head</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLLinkElement\">Link</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLTitleElement\">Title</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLMetaElement\">Meta</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLBaseElement\">Base</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/HTMLIsIndexElement\" class=\"new\">IsIndex</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLStyleElement\">Style</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLBodyElement\">Body</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLFormElement\">Form</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLSelectElement\">Select</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/HTMLOptGroupElement\" class=\"new\">OptGroup</a></code>\n, <a title=\"en/HTML/Element/HTMLOptionElement\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Element/HTMLOptionElement\" class=\"new \">Option</a>, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLInputElement\">Input</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLTextAreaElement\">TextArea</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLButtonElement\">Button</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLLabelElement\">Label</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLFieldSetElement\">FieldSet</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLLegendElement\">Legend</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/HTMLUListElement\" class=\"new\">UList</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/OList\" class=\"new\">OList</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/DList\" class=\"new\">DList</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Directory\" class=\"new\">Directory</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Menu\" class=\"new\">Menu</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/LI\" class=\"new\">LI</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Div\" class=\"new\">Div</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Paragraph\" class=\"new\">Paragraph</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Heading\" class=\"new\">Heading</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Quote\" class=\"new\">Quote</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Pre\" class=\"new\">Pre</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/BR\" class=\"new\">BR</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/BaseFont\" class=\"new\">BaseFont</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Font\" class=\"new\">Font</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/HR\" class=\"new\">HR</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Mod\" class=\"new\">Mod</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLAnchorElement\">Anchor</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Image\" class=\"new\">Image</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLObjectElement\">Object</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Param\" class=\"new\">Param</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Applet\" class=\"new\">Applet</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Map\" class=\"new\">Map</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Area\" class=\"new\">Area</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Script\" class=\"new\">Script</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLTableElement\">Table</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableCaption\" class=\"new\">TableCaption</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableCol\" class=\"new\">TableCol</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableSection\" class=\"new\">TableSection</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLTableRowElement\">TableRow</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableCell\" class=\"new\">TableCell</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/FrameSet\" class=\"new\">FrameSet</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Frame\" class=\"new\">Frame</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLIFrameElement\">IFrame</a></code>\n</p>","members":[{"url":"https://developer.mozilla.org/en/DOM/element.addEventListener","name":"addEventListener","help":" Register an event handler to a specific event type on the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.appendChild","name":"appendChild","help":" Insert a node as the last child node of this element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.blur","name":"blur","help":" Removes keyboard focus from the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.click","name":"click","help":" Simulates a click on the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.cloneNode","name":"cloneNode","help":" Clone a node, and optionally, all of its contents.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.compareDocumentPosition","name":"compareDocumentPosition","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.dispatchEvent","name":"dispatchEvent","help":" Dispatch an event to this node in the DOM.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.focus","name":"focus","help":" Gives keyboard focus to the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getAttribute","name":"getAttribute","help":" Retrieve the value of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getAttributeNS","name":"getAttributeNS","help":" Retrieve the value of the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getAttributeNode","name":"getAttributeNode","help":" Retrieve the node representation of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getAttributeNodeNS","name":"getAttributeNodeNS","help":" Retrieve the node representation of the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getBoundingClientRect","name":"getBoundingClientRect","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.getElementsByClassName","name":"getElementsByClassName","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getElementsByTagName","name":"getElementsByTagName","help":" Retrieve a set of all descendant elements, of a particular tag name, from the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getElementsByTagNameNS","name":"getElementsByTagNameNS","help":" Retrieve a set of all descendant elements, of a particular tag name and namespace, from the current element.","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Node.getFeature","name":"getFeature","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.getUserData","name":"getUserData","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.hasAttribute","name":"hasAttribute","help":" Check if the element has the specified attribute, or not.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.hasAttributeNS","name":"hasAttributeNS","help":" Check if the element has the specified attribute, in the specified namespace, or not.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.hasAttributes","name":"hasAttributes","help":" Check if the element has any attributes, or not.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.hasChildNodes","name":"hasChildNodes","help":" Check if the element has any child nodes, or not.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.insertBefore","name":"insertBefore","help":" Inserts the first node before the second, child, Node in the DOM.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.isDefaultNamespace","name":"isDefaultNamespace","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.isEqualNode","name":"isEqualNode","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.isSameNode","name":"isSameNode","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.isSupported","name":"isSupported","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.lookupNamespaceURI","name":"lookupNamespaceURI","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.lookupPrefix","name":"lookupPrefix","help":"","obsolete":false},{"name":"webkitMatchesSelector","help":" Returns whether or not the element would be selected by the specified selector string.","obsolete":false},{"name":"webkitRequestFullScreen","help":" Asynchronously asks the browser to make the element full-screen.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.normalize","name":"normalize","help":" Clean up all the text nodes under this element (merge adjacent, remove empty).","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.querySelector","name":"querySelector","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.querySelectorAll","name":"querySelectorAll","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeAttribute","name":"removeAttribute","help":" Remove the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeAttributeNS","name":"removeAttributeNS","help":" Remove the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeAttributeNode","name":"removeAttributeNode","help":" Remove the node representation of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.removeChild","name":"removeChild","help":" Removes a child node from the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeEventListener","name":"removeEventListener","help":" Removes an event listener from the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.replaceChild","name":"replaceChild","help":" Replaces one child node in the current element with another.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollIntoView","name":"scrollIntoView","help":" Scrolls the page until the element gets into the view.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setAttribute","name":"setAttribute","help":" Set the value of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setAttributeNS","name":"setAttributeNS","help":" Set the value of the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setAttributeNode","name":"setAttributeNode","help":" Set the node representation of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setAttributeNodeNS","name":"setAttributeNodeNS","help":" Set the node representation of the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setCapture","name":"setCapture","help":" Sets up mouse event capture, redirecting all mouse events to this element.","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/element.setIdAttributeNS","name":"setIdAttributeNS","help":" Sets the attribute to be treated as an ID type attribute.","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/element.setIdAttributeNode","name":"setIdAttributeNode","help":" Sets the attribute to be treated as an ID type attribute.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.setUserData","name":"setUserData","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.insertAdjacentHTML","name":"insertAdjacentHTML","help":" Parses the text as HTML or XML and inserts the resulting nodes into the tree in the position given.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.attributes","name":"attributes","help":"All attributes associated with an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.baseURI","name":"baseURI","help":"Base URI as a string","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.baseURIObject","name":"baseURIObject","help":"The read-only <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIURI\">nsIURI</a></code>\n object representing the base URI for the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.childElementCount","name":"childElementCount","help":"The number of child nodes that are elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.childNodes","name":"childNodes","help":"All child nodes of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.children","name":"children","help":"A live <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsIDOMNodeList&ident=nsIDOMNodeList\" class=\"new\">nsIDOMNodeList</a></code>\n of the current child elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.classList","name":"classList","help":"Token list of class attribute","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.className","name":"className","help":"Gets/sets the class of the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.clientHeight","name":"clientHeight","help":"The inner height of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.clientLeft","name":"clientLeft","help":"The width of the left border of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.clientTop","name":"clientTop","help":"The width of the top border of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.clientWidth","name":"clientWidth","help":"The inner width of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.contentEditable","name":"contentEditable","help":"Gets/sets whether or not the element is editable.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.dataset","name":"dataset","help":"Allows access to read and write custom data attributes on the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.dir","name":"dir","help":"Gets/sets the directionality of the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.firstChild","name":"firstChild","help":"The first direct child node of an element, or <code>null</code> if this element has no child nodes.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.firstElementChild","name":"firstElementChild","help":"The first direct child element of an element, or <code>null</code> if the element has no child elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.id","name":"id","help":"Gets/sets the id of the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.innerHTML","name":"innerHTML","help":"Gets/sets the markup of the element's content.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.isContentEditable","name":"isContentEditable","help":"Indicates whether or not the content of the element can be edited. Read only.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.lang","name":"lang","help":"Gets/sets the language of an element's attributes, text, and element contents.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.lastChild","name":"lastChild","help":"The last direct child node of an element, or <code>null</code> if this element has no child nodes.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.lastElementChild","name":"lastElementChild","help":"The last direct child element of an element, or <code>null</code> if the element has no child elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.localName","name":"localName","help":"The local part of the qualified name of an element. In Firefox 3.5 and earlier, the property upper-cases the local name for HTML elements (but not XHTML elements). In later versions, this does not happen, so the property is in lower case for both HTML and XHTML. \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.name","name":"name","help":"Gets/sets the name attribute of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.namespaceURI","name":"namespaceURI","help":"The namespace URI of this node, or <code>null</code> if it is no namespace. In Firefox 3.5 and earlier, HTML elements are in no namespace. In later versions, HTML elements are in the <code><a class=\"linkification-ext external\" title=\"Linkification: http://www.w3.org/1999/xhtml\" rel=\"external\" href=\"http://www.w3.org/1999/xhtml\" target=\"_blank\">http://www.w3.org/1999/xhtml</a></code> namespace in both HTML and XML trees. \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nextSibling","name":"nextSibling","help":"The node immediately following the given one in the tree, or <code>null</code> if there is no sibling node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.nextElementSibling","name":"nextElementSibling","help":"The element immediately following the given one in the tree, or <code>null</code> if there's no sibling node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nodeName","name":"nodeName","help":"The name of the node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nodePrincipal","name":"nodePrincipal","help":"The node's principal.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nodeType","name":"nodeType","help":"A number representing the type of the node. Is always equal to <code>1</code> for DOM elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nodeValue","name":"nodeValue","help":"The value of the node. Is always equal to <code>null</code> for DOM elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetHeight","name":"offsetHeight","help":"The height of an element, relative to the layout.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetLeft","name":"offsetLeft","help":"The distance from this element's left border to its <code>offsetParent</code>'s left border.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetParent","name":"offsetParent","help":"The element from which all offset calculations are currently computed.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetTop","name":"offsetTop","help":"The distance from this element's top border to its <code>offsetParent</code>'s top border.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetWidth","name":"offsetWidth","help":"The width of an element, relative to the layout.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.outerHTML","name":"outerHTML","help":"Gets the markup of the element including its content. When used as a setter, replaces the element with nodes parsed from the given string.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.ownerDocument","name":"ownerDocument","help":"The document that this node is in, or <code>null</code> if the node is not inside of one.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.parentNode","name":"parentNode","help":"The parent element of this node, or <code>null</code> if the node is not inside of a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document\">DOM Document</a></code>\n.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.prefix","name":"prefix","help":"The namespace prefix of the node, or <code>null</code> if no prefix is specified.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.previousSibling","name":"previousSibling","help":"The node immediately preceding the given one in the tree, or <code>null</code> if there is no sibling node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.previousElementSibling","name":"previousElementSibling","help":"The element immediately preceding the given one in the tree, or <code>null</code> if there is no sibling element.","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/element.schemaTypeInfo","name":"schemaTypeInfo","help":"Returns TypeInfo regarding schema information for the element (also available on <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Attr\">Attr</a></code>\n).","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollHeight","name":"scrollHeight","help":"The scroll view height of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollLeft","name":"scrollLeft","help":"Gets/sets the left scroll offset of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollTop","name":"scrollTop","help":"Gets/sets the top scroll offset of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollWidth","name":"scrollWidth","help":"The scroll view width of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/XUL/Attribute/spellcheck","name":"spellcheck","help":"Controls <a title=\"en/Controlling_spell_checking_in_HTML_forms\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Controlling_spell_checking_in_HTML_forms\">spell-checking</a> (present on all HTML elements)","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.style","name":"style","help":"An object representing the declarations of an element's style attributes.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.tabIndex","name":"tabIndex","help":"Gets/sets the position of the element in the tabbing order.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.tagName","name":"tagName","help":"The name of the tag for the given element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.textContent","name":"textContent","help":"Gets/sets the textual contents of an element and all its descendants.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.title","name":"title","help":"A string that appears in a popup box when mouse is over the element.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/element"},"SVGZoomEvent":{"title":"document.createEvent","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/document.createEvent","skipped":true,"cause":"Suspect title"},"Document":{"title":"document","summary":"<p>Each web page loaded in the browser has its own <strong>document</strong> object. This object serves as an entry point to the web page's content (the <a title=\"en/Using_the_W3C_DOM_Level_1_Core\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Using_the_W3C_DOM_Level_1_Core\">DOM tree</a>, including elements such as <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/body\"><body></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/table\"><table></a></code>\n) and provides functionality global to the document (such as obtaining the page's URL and creating new elements in the document).</p>\n<p>A document object can be obtained from various APIs:</p>\n<ul> <li>Most commonly, you work with the document the script is running in by using <code>document</code> in document's <a title=\"en/HTML/Element/Script\" rel=\"internal\" href=\"https://developer.mozilla.org/En/HTML/Element/Script\">scripts</a>. (The same document can also be referred to as <a title=\"window.document\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window.document\"><code>window.document</code></a>.)</li> <li>The document of an iframe via the iframe's <code><a title=\"en/DOM/HTMLIFrameElement#Properties\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/HTMLIFrameElement#Properties\">contentDocument</a></code> property.</li> <li>The <a title=\"en/XMLHttpRequest#Attributes\" rel=\"internal\" href=\"https://developer.mozilla.org/en/nsIXMLHttpRequest#Attributes\"><code>responseXML</code> of an <code>XMLHttpRequest</code> object</a>.</li> <li>The document, that given node or element belongs to, can be retrieved using the node's <code><a title=\"en/DOM/Node.ownerDocument\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node.ownerDocument\">ownerDocument</a></code> property.</li> <li>...and more.</li>\n</ul>\n<p>Depending on the kind of the document (e.g. <a title=\"en/HTML\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML\">HTML</a> or <a title=\"en/XML\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XML\">XML</a>) different APIs may be available on the document object. This theoretical availability of APIs is usually described in terms of <em>implementing interfaces</em> defined in the relevant W3C DOM specifications:</p>\n<ul> <li>All document objects implement the DOM Core <a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Core/core.html#i-Document\" title=\"http://www.w3.org/TR/DOM-Level-2-Core/core.html#i-Document\" target=\"_blank\"><code>Document</code></a> and <code><a title=\"en/DOM/Node\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Node\">Node</a></code> interfaces, meaning that the \"core\" properties and methods are available for all kinds of documents.</li> <li>In addition to the generalized DOM Core document interface, HTML documents also implement the <code><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26809268\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26809268\" target=\"_blank\">HTMLDocument</a></code> interface, which is a more specialized interface for dealing with HTML documents (e.g., <a title=\"en/DOM/document.cookie\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.cookie\">document.cookie</a>, <a title=\"en/DOM/document.alinkColor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.alinkColor\">document.alinkColor</a>).</li> <li><a title=\"en/XUL\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XUL\">XUL</a> documents (available to Mozilla add-on and application developers) implement their own additions to the core Document functionality.</li>\n</ul>\n<p>Methods or properties listed here that are part of a more specialized interface have an asterisk (*) next to them and have additional information in the Availability column.</p>\n<p>Note that some APIs listed below are not available in all browsers for various reasons:</p>\n<ul> <li><strong>Obsolete</strong>: on its way of being removed from supporting browsers.</li> <li><strong>Non-standard</strong>: either an experimental feature not (yet?) agreed upon by all vendors, or a feature targeted specifically at the code running in a specific browser (e.g. Mozilla has a few DOM APIs created for its add-ons and application development).</li> <li>Part of a completed or an emerging standard, but not (yet?) implemented in all browsers or implemented in the newest versions of the browsers.</li>\n</ul>\n<p>Detailed browser compatibility tables are located at the pages describing each property or method.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.getElementById","name":"getElementById","help":"Returns an object reference to the identified element."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.captureEvents","name":"captureEvents","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.routeEvent","name":"routeEvent","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.queryCommandIndeterm","name":"queryCommandIndeterm","help":"Returns true if the <a title=\"en/Midas\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Midas\">Midas</a> command is in a indeterminate state on the current range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createEvent","name":"createEvent","help":"Creates an event."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.execCommandShowHelp","name":"execCommandShowHelp","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createDocumentFragment","name":"createDocumentFragment","help":"Creates a new document fragment."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.elementFromPoint","name":"elementFromPoint","help":"Returns the element visible at the specified coordinates."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.load","name":"load","help":"Load an XML document"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.getElementsByTagName","name":"getElementsByTagName","help":"Returns a list of elements with the given tag name."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.getBoxObjectFor","name":"getBoxObjectFor","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.createAttributeNS","name":"createAttributeNS","help":"Creates a new attribute node in a given namespace and returns it."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.getElementsByClassName","name":"getElementsByClassName","help":"Returns a list of elements with the given class name."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.normalizeDocument","name":"normalizeDocument","help":"Replaces entities, normalizes text nodes, etc."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.queryCommandState","name":"queryCommandState","help":"Returns true if the <a title=\"en/Midas\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Midas\">Midas</a> command has been executed on the current range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.queryCommandSupported","name":"queryCommandSupported","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.hasFocus","name":"hasFocus","help":"Returns <code>true</code> if the focus is currently located anywhere inside the specified document."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.queryCommandText","name":"queryCommandText","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.releaseEvents","name":"releaseEvents","help":"<dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.removeChild\">Node.removeChild</a></code>\n</dt> <dd>Removes a child node from the DOM</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.importNode","name":"importNode","help":"<dd>Returns a clone of a node from an external document</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.insertBefore\">Node.insertBefore</a></code>\n</dt> <dd>Inserts the specified node before a reference node as a child of the current node.</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.isDefaultNamespace\">Node.isDefaultNamespace</a></code>\n</dt> <dd>Returns true if the namespace is the default namespace on the given node</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.isEqualNode\">Node.isEqualNode</a></code>\n</dt> <dd>Indicates whether the node is equal to the given node</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.isSameNode\">Node.isSameNode</a></code>\n</dt> <dd>Indicates whether the node is the same as the given node</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.isSupported\">Node.isSupported</a></code>\n</dt> <dd>Tests whether the DOM implementation implements a specific feature and that feature is supported by this node or document</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.write","name":"write","help":"Writes text to a document."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.releaseCapture","name":"releaseCapture","help":"Releases the current mouse capture if it's on an element in this document."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.evaluate","name":"evaluate","help":"Evaluates an XPath expression."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createTextNode","name":"createTextNode","help":"Creates a text node."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.querySelector","name":"querySelector","help":"Returns the first Element node within the document, in document order, that matches the specified selectors."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createExpression","name":"createExpression","help":"Compiles an <code><a title=\"en/XPathExpression\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XPathExpression\">XPathExpression</a></code> which can then be used for (repeated) evaluations."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createElement","name":"createElement","help":"Creates a new element with the given tag name."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createCDATASection","name":"createCDATASection","help":"Creates a new CDATA node and returns it."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createComment","name":"createComment","help":"Creates a new comment node and returns it."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.adoptNode","name":"adoptNode","help":"<dd>Adopt node from an external document</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.appendChild\">Node.appendChild</a></code>\n</dt> <dd>Adds a node to the end of the list of children of a specified parent node.</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createAttribute","name":"createAttribute","help":"Creates a new attribute node and returns it."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.querySelectorAll","name":"querySelectorAll","help":"Returns a list of all the Element nodes within the document that match the specified selectors."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createElementNS","name":"createElementNS","help":"Creates a new element with the given tag name and namespace URI."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createEntityReference","name":"createEntityReference","help":"Creates a new entity reference object and returns it."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.open","name":"open","help":"Opens a document stream for writing."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createProcessingInstruction","name":"createProcessingInstruction","help":"Creates a new processing instruction element and returns it."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createTreeWalker","name":"createTreeWalker","help":"Creates a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/treeWalker\">treeWalker</a></code>\n object."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.getElementsByName","name":"getElementsByName","help":"Returns a list of elements with the given name."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.close","name":"close","help":"<dd>Closes a document stream for writing.</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.compareDocumentPosition\">Node.compareDocumentPosition</a></code>\n</dt> <dd>Compares the position of the current node against another node in any other document.</dd>"},{"name":"webkitSetImageElement","help":"<dd>Allows you to change the element being used as the background image for a specified element ID.</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.setUserData\">Node.setUserData</a></code>\n</dt> <dd>Attaches arbitrary data to a node, along with a user-defined key and an optional handler to be triggered upon events such as cloning of the node upon which the data was attached</dd>","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.writeln","name":"writeln","help":"Write a line of text to a document."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createNSResolver","name":"createNSResolver","help":"Creates an XPathNSResolver."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.enableStyleSheetsForSet","name":"enableStyleSheetsForSet","help":"Enables the style sheets for the specified style sheet set."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.removeEventListener","name":"removeEventListener","help":"<dd>Removes an event listener from the document</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.replaceChild\">Node.replaceChild</a></code>\n</dt> <dd>Replaces one child node of the specified node with another</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.loadOverlay","name":"loadOverlay","help":"<dd>Loads a <a title=\"en/XUL_Overlays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XUL_Overlays\">XUL overlay</a> dynamically. This only works in XUL documents.</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.lookupNamespaceURI\">Node.lookupNamespaceURI</a></code>\n</dt> <dd>Returns the namespaceURI associated with a given prefix on the given node object</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.lookupPrefix\">Node.lookupPrefix</a></code>\n</dt> <dd>Returns the prefix for a given namespaceURI on the given node if present</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.normalize\">Node.normalize</a></code>\n</dt> <dd>Normalizes the node or document</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla#Executing_Commands","name":"execCommand","help":"Executes a <a title=\"en/Midas\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Midas\">Midas</a> command."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.clear","name":"clear","help":"<dd>In majority of modern browsers, including recent versions of Firefox and Internet Explorer, this method does nothing.</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.cloneNode\">Node.cloneNode</a></code>\n</dt> <dd>Makes a copy of a node or document</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.queryCommandValue","name":"queryCommandValue","help":"Returns the current value of the current range for <a title=\"en/Midas\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Midas\">Midas</a> command. As of Firefox 2.0.0.2, queryCommandValue will return an empty string when a command value has not been explicitly set."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.getSelection","name":"getSelection","help":"<dd>Returns a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Selection\">Selection</a></code>\n object related to text selected in the document.</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.getUserData\">Node.getUserData</a></code>\n</dt> <dd>Returns any data previously set on the node via setUserData() by key</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.hasAttributes\">Node.hasAttributes</a></code>\n</dt> <dd>Indicates whether the node possesses attributes</dd> <dt><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Node.hasChildNodes\">Node.hasChildNodes</a></code>\n</dt> <dd>Returns a Boolean value indicating whether the current element has child nodes or not.</dd>"},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.queryCommandEnabled","name":"queryCommandEnabled","help":"Returns true if the <a title=\"en/Midas\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Midas\">Midas</a> command can be executed on the current range."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.getElementsByTagNameNS","name":"getElementsByTagNameNS","help":"<dd>Returns a list of elements with the given tag name and namespace.</dd> <dt><code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Node.getFeature\" class=\"new\">Node.getFeature</a></code>\n</dt>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.createRange","name":"createRange","help":"Creates a Range object."},{"url":"https://developer.mozilla.org/en/DOM/document.activeElement","name":"activeElement","help":"Returns the currently focused element","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.alinkColor","name":"alinkColor","help":"Returns or sets the color of active links in the document body.","obsolete":true},{"url":"https://developer.mozilla.org/En/DOM/document.all","name":"all","help":"","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/document.anchors","name":"anchors","help":"Returns a list of all of the anchors in the document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.applets","name":"applets","help":"Returns an ordered list of the applets within a document.","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/document.async","name":"async","help":"Used with <a title=\"en/DOM/document.load\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.load\">document.load</a> to indicate an asynchronous request.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.baseURIObject","name":"baseURIObject","help":"(<span>Mozilla</span><strong> add-ons only!</strong>) Returns an <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIURI\">nsIURI</a></code>\n object representing the base URI for the document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.bgColor","name":"bgColor","help":"Gets/sets the background color of the current document.","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/document.body","name":"body","help":"Returns the BODY node of the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.characterSet","name":"characterSet","help":"Returns the character set being used by the document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.compatMode","name":"compatMode","help":"Indicates whether the document is rendered in Quirks or Strict mode.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.contentType","name":"contentType","help":"Returns the Content-Type from the MIME Header of the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.cookie","name":"cookie","help":"Returns a semicolon-separated list of the cookies for that document or sets a single cookie.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.currentScript","name":"currentScript","help":"Returns the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/script\"><script></a></code>\n element that is currently executing.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.defaultView","name":"defaultView","help":"Returns a reference to the window object.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.designMode","name":"designMode","help":"Gets/sets WYSYWIG editing capability of <a title=\"en/Midas\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Midas\">Midas</a>. It can only be used for HTML documents.","obsolete":false},{"url":"https://developer.mozilla.org/En/DOM/Document.dir","name":"dir","help":"Gets/sets directionality (rtl/ltr) of the document","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.doctype","name":"doctype","help":"Returns the Document Type Definition (DTD) of the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.documentElement","name":"documentElement","help":"Returns the Element that is a direct child of document. For HTML documents, this is normally the HTML element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.documentURI","name":"documentURI","help":"Returns the document location.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.documentURIObject","name":"documentURIObject","help":"(<strong>Mozilla add-ons only!</strong>) Returns the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIURI\">nsIURI</a></code>\n object representing the URI of the document. This property only has special meaning in privileged JavaScript code (with UniversalXPConnect privileges).","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.domain","name":"domain","help":"Returns the domain of the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.embeds","name":"embeds","help":"Returns a list of the embedded OBJECTS within the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.fgColor","name":"fgColor","help":"Gets/sets the foreground color, or text color, of the current document.","obsolete":true},{"name":"fileSize","help":"(<strong>IE-only!</strong>) Returns size in bytes of the document. See <a class=\"external\" title=\"http://msdn.microsoft.com/en-us/library/ms533752%28v=VS.85%29.aspx\" rel=\"external\" href=\"http://msdn.microsoft.com/en-us/library/ms533752%28v=VS.85%29.aspx\" target=\"_blank\">MSDN</a>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.forms","name":"forms","help":"Returns a list of the FORM elements within the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.head","name":"head","help":"Returns the HEAD node of the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.height","name":"height","help":"Gets/sets the height of the current document.","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/document.images","name":"images","help":"Returns a list of the images in the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.implementation","name":"implementation","help":"Returns the DOM implementation associated with the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.inputEncoding","name":"inputEncoding","help":"Returns the encoding used when the document was parsed.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.lastModified","name":"lastModified","help":"Returns the date on which the document was last modified.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.lastStyleSheetSet","name":"lastStyleSheetSet","help":"Returns the name of the style sheet set that was last enabled. Has the value <code>null</code> until the style sheet is changed by setting the value of <code>selectedStyleSheetSet</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.linkColor","name":"linkColor","help":"Gets/sets the color of hyperlinks in the document.","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/document.links","name":"links","help":"Returns a list of all the hyperlinks in the document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.location","name":"location","help":"Returns the URI of the current document.","obsolete":false},{"name":"webkitSyntheticDocument","help":"<code>true</code> if this document is synthetic, such as a standalone image, video, audio file, or the like.","obsolete":false},{"name":"webkitFullScreen","help":"<code>true</code> when the document is in <a title=\"en/DOM/Using full-screen mode\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Using_full-screen_mode\">full-screen mode</a>.","obsolete":false},{"name":"webkitFullScreenElement","help":"The element that's currently in full screen mode for this document.","obsolete":false},{"name":"webkitFullScreenEnabled","help":"<code>true</code> if calling <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element.mozRequestFullscreen\">element.mozRequestFullscreen()</a></code>\n would succeed in the curent document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.plugins","name":"plugins","help":"Returns a list of the available plugins.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.popupNode","name":"popupNode","help":"Returns the node upon which a popup was invoked (XUL documents only).","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.preferredStyleSheetSet","name":"preferredStyleSheetSet","help":"Returns the preferred style sheet set as specified by the page author.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.readyState","name":"readyState","help":"Returns loading status of the document","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.referrer","name":"referrer","help":"Returns the URI of the page that linked to this page.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.scripts","name":"scripts","help":"Returns all the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/script\"><script></a></code>\n elements on the document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.selectedStyleSheetSet","name":"selectedStyleSheetSet","help":"Returns which style sheet set is currently in use.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.styleSheets","name":"styleSheets","help":"Returns a list of the stylesheet objects on the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.styleSheetSets","name":"styleSheetSets","help":"Returns a list of the style sheet sets available on the document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.title","name":"title","help":"Returns the title of the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.tooltipNode","name":"tooltipNode","help":"Returns the node which is the target of the current tooltip.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.URL","name":"URL","help":"Returns a string containing the URL of the current document.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/document.vlinkColor","name":"vlinkColor","help":"Gets/sets the color of visited hyperlinks.","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/document.width","name":"width","help":"Returns the width of the current document.","obsolete":true},{"url":"https://developer.mozilla.org/En/DOM/Document.xmlEncoding","name":"xmlEncoding","help":"Returns the encoding as determined by the XML declaration.<br> <div class=\"note\">Firefox 10 and later don't implement it anymore.</div>","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/document.xmlStandalone","name":"xmlStandalone","help":"Returns <code>true</code> if the XML declaration specifies the document is standalone (<em>e.g.,</em> An external part of the DTD affects the document's content), else <code>false</code>.","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/document.xmlVersion","name":"xmlVersion","help":"Returns the version number as specified in the XML declaration or <code>\"1.0\"</code> if the declaration is absent.","obsolete":true},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.ononline","name":"ononline","help":"Returns the event handling code for the <code>online</code> event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/document.onreadystatechange","name":"onreadystatechange","help":"<dl><dd>Returns the event handling code for the <code>readystatechange</code> event.</dd>\n</dl>\n<div class=\"geckoVersionNote\"> <p>\n</p><div class=\"geckoVersionHeading\">Gecko 9.0 note<div>(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n</div></div>\n<p></p> <p>Starting in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n, you can now use the syntax <code>if (\"onabort\" in document)</code> to determine whether or not a given event handler property exists. This is because event handler interfaces have been updated to be proper web IDL interfaces. See <a title=\"en/DOM/DOM event handlers\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/DOM_event_handlers\">DOM event handlers</a> for details.</p>\n</div>"},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/document.onoffline","name":"onoffline","help":"Returns the event handling code for the <code>offline</code> event."}],"srcUrl":"https://developer.mozilla.org/en/DOM/document","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...tml#i-Document"},"SVGPathSeg":{"title":"User talk:Jeff Schiller","members":[],"srcUrl":"https://developer.mozilla.org/User_talk:Jeff_Schiller","skipped":true,"cause":"Suspect title"},"HTMLHtmlElement":{"title":"HTMLHtmlElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/html\"><html></a></code>\n HTML element","summary":"<p>The <code>html</code> object exposes the <a class=\" external\" title=\"http://www.w3.org/TR/html5/semantics.html#htmlhtmlelement\" rel=\"external\" href=\"http://www.w3.org/TR/html5/semantics.html#htmlhtmlelement\" target=\"_blank\">HTMLHtmlElement</a> (\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a target=\"_blank\" class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-33759296\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-33759296\">HTMLHtmlElement</a>) interface and serves as the root node for a given HTML document. This object inherits the properties and methods described in the <a title=\"en/DOM/element\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> section. In \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>, this interface inherits from HTMLElement, but provides no other members.</p>\n<p>You can retrieve the <code>html</code> object for a document by obtaining the value of the <a class=\"internal\" title=\"en/DOM/document.documentElement\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.documentElement\"><code>document.documentElement</code></a> property.</p>","members":[{"name":"version","help":"Version of the HTML Document Type Definition that governs this document.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/En/DOM/Html"},"HTMLStyleElement":{"title":"HTMLStyleElement","seeAlso":"<li><a title=\"en/DOM/element.style\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element.style\">DOM element.style Object</a></li> <li><a title=\"en/DOM/stylesheet\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/stylesheet\">DOM stylesheet Object</a></li> <li><a title=\"en/DOM/cssRule\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/cssRule\">DOM cssRule Object</a></li> <li><a title=\"en/DOM/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSS\">DOM CSS Properties List</a></li> <li><a title=\"http://www.whatwg.org/html/#the-style-element\" class=\" external\" rel=\"external\" href=\"http://www.whatwg.org/html/#the-style-element\" target=\"_blank\">The <code>style</code> element in the HTML specification</a></li>","summary":"See <a title=\"en/DOM/Using_dynamic_styling_information\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Using_dynamic_styling_information\">Using dynamic styling information</a> for an overview of the objects used to manipulate specified CSS properties using the DOM.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/style.media","name":"media","help":"Specifies the intended destination medium for style information."},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/style.disabled","name":"disabled","help":"Returns true if the stylesheet is disabled, and false if not"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/style.type","name":"type","help":"Returns the type of style being applied by this statement."}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLStyleElement"},"ClientRect":{"title":"nsIDOMClientRect","seeAlso":"<a rel=\"custom\" href=\"http://www.w3.org/TR/cssom-view/#the-clientrect-interface\">CSSOM View Module : The ClientRect Interface</a><span title=\"Working Draft\">WD</span>","summary":"<div>\n\n<a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/source/dom/interfaces/base/nsIDOMClientRect.idl\"><code>dom/interfaces/base/nsIDOMClientRect.idl</code></a><span><a rel=\"internal\" href=\"https://developer.mozilla.org/en/Interfaces/About_Scriptable_Interfaces\" title=\"en/Interfaces/About_Scriptable_Interfaces\">Scriptable</a></span></div><span>Represents a rectangular box. The type of box is specified by the method that returns such an object. It is returned by functions like <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element.getBoundingClientRect\">element.getBoundingClientRect</a></code>\n.</span><div><div>1.0</div><div>11.0</div><div></div><div>Introduced</div><div>Gecko 1.9</div><div title=\"Introduced in Gecko 1.9 (Firefox 3)\n\"></div><div title=\"Last changed in Gecko 1.9.1 (Firefox 3)\n\"></div></div>\n<div>Inherits from: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISupports\">nsISupports</a></code>\n<span>Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n</span></div>","members":[{"name":"bottom","help":"Y-coordinate, relative to the viewport origin, of the bottom of the rectangle box. <strong>Read only.</strong>","obsolete":false},{"name":"height","help":"Height of the rectangle box (This is identical to <code>bottom</code> minus <code>top</code>). <strong>Read only.</strong>","obsolete":false},{"name":"left","help":"X-coordinate, relative to the viewport origin, of the left of the rectangle box. <strong>Read only.</strong>","obsolete":false},{"name":"right","help":"X-coordinate, relative to the viewport origin, of the right of the rectangle box. <strong>Read only.</strong>","obsolete":false},{"name":"top","help":"Y-coordinate, relative to the viewport origin, of the top of the rectangle box. <strong>Read only.</strong>","obsolete":false},{"name":"width","help":"Width of the rectangle box (This is identical to <code>right</code> minus <code>left</code>). <strong>Read only.</strong> \n<span title=\"(Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)\n\">Requires Gecko 1.9.1</span>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMClientRect"},"SVGPathSegLinetoAbs":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"XMLSerializer":{"title":"XMLSerializer","seeAlso":"<li><a title=\"en/Parsing_and_serializing_XML\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Parsing_and_serializing_XML\">Parsing and serializing XML</a></li> <li><a title=\"en/XMLHttpRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XMLHttpRequest\">XMLHttpRequest</a></li> <li><a title=\"en/DOMParser\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOMParser\">DOMParser</a></li>","summary":"<div dir=\"ltr\" id=\"result_box\">XMLSerializer can be used to convert DOM subtree or DOM document into text. XMLSerializer is available to unprivileged scripts.</div>\n<p><code> </code></p>\n<div class=\"note\">\n<div dir=\"ltr\">XMLSerializer is mainly useful for applications and extensions based on the Mozilla platform. While it is available for web pages, it's not part of any standard and level of support in other browsers unknown.</div>\n<div id=\"result_box\" dir=\"ltr\"> </div>\n</div>","members":[{"name":"serializeToString","help":"<div dir=\"ltr\" id=\"serializeToString\" class=\"\">\n Returns the serialized subtree of a string.\n<dt></dt>\n</div>\n<div dir=\"ltr\" id=\"serializeToStream\"><strong>serializeToStream </strong></div>\n<div dir=\"ltr\"> The subtree rooted by the specified element is serialized to a byte stream using the character set specified. </div>\n<div dir=\"ltr\" id=\"Example\"><span>Example</span></div>\n\n <pre name=\"code\" class=\"js\">var s = new XMLSerializer();\n var d = document;\n var str = s.serializeToString(d);\n alert(str);</pre>\n \n\n <pre name=\"code\" class=\"js\">var s = new XMLSerializer();\n var stream = {\n close : function()\n {\n alert(\"Stream closed\");\n },\n flush : function()\n {\n },\n write : function(string, count)\n {\n alert(\"'\" + string + \"'\\n bytes count: \" + count + \"\");\n }\n };\n s.serializeToStream(document, stream, \"UTF-8\");</pre>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/XMLSerializer"},"Element":{"title":"element","summary":"<p>This chapter provides a brief reference for the general methods, properties, and events available to most HTML and XML elements in the Gecko DOM.</p>\n<p>Various W3C specifications apply to elements:</p>\n<ul> <li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Core/\" title=\"http://www.w3.org/TR/DOM-Level-2-Core/\" target=\"_blank\">DOM Core Specification</a>—describes the core interfaces shared by most DOM objects in HTML and XML documents</li> <li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/\" target=\"_blank\">DOM HTML Specification</a>—describes interfaces for objects in HTML and XHTML documents that build on the core specification</li> <li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Events/\" title=\"http://www.w3.org/TR/DOM-Level-2-Events/\" target=\"_blank\">DOM Events Specification</a>—describes events shared by most DOM objects, building on the DOM Core and <a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Views/\" title=\"http://www.w3.org/TR/DOM-Level-2-Views/\" target=\"_blank\">Views</a> specifications</li> <li><a class=\"external\" title=\"http://www.w3.org/TR/ElementTraversal/\" rel=\"external\" href=\"http://www.w3.org/TR/ElementTraversal/\" target=\"_blank\">Element Traversal Specification</a>—describes the new attributes that allow traversal of elements in the DOM tree \n<span>New in <a rel=\"custom\" href=\"https://developer.mozilla.org/en/Firefox_3.5_for_developers\">Firefox 3.5</a></span>\n</li>\n</ul>\n<p>The articles listed here span the above and include links to the appropriate W3C DOM specification.</p>\n<p>While these interfaces are generally shared by most HTML and XML elements, there are more specialized interfaces for particular objects listed in the DOM HTML Specification. Note, however, that these HTML interfaces are \"only for [HTML 4.01] and [XHTML 1.0] documents and are not guaranteed to work with any future version of XHTML.\" The HTML 5 draft does state it aims for backwards compatibility with these HTML interfaces but says of them that \"some features that were formerly deprecated, poorly supported, rarely used or considered unnecessary have been removed.\" One can avoid the potential conflict by moving entirely to DOM XML attribute methods such as <code>getAttribute()</code>.</p>\n<p><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLHtmlElement\">Html</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLHeadElement\">Head</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLLinkElement\">Link</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLTitleElement\">Title</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLMetaElement\">Meta</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLBaseElement\">Base</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/HTMLIsIndexElement\" class=\"new\">IsIndex</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLStyleElement\">Style</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLBodyElement\">Body</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLFormElement\">Form</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLSelectElement\">Select</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/HTMLOptGroupElement\" class=\"new\">OptGroup</a></code>\n, <a title=\"en/HTML/Element/HTMLOptionElement\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Element/HTMLOptionElement\" class=\"new \">Option</a>, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLInputElement\">Input</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLTextAreaElement\">TextArea</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLButtonElement\">Button</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLLabelElement\">Label</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLFieldSetElement\">FieldSet</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLLegendElement\">Legend</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/HTMLUListElement\" class=\"new\">UList</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/OList\" class=\"new\">OList</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/DList\" class=\"new\">DList</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Directory\" class=\"new\">Directory</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Menu\" class=\"new\">Menu</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/LI\" class=\"new\">LI</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Div\" class=\"new\">Div</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Paragraph\" class=\"new\">Paragraph</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Heading\" class=\"new\">Heading</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Quote\" class=\"new\">Quote</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Pre\" class=\"new\">Pre</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/BR\" class=\"new\">BR</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/BaseFont\" class=\"new\">BaseFont</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Font\" class=\"new\">Font</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/HR\" class=\"new\">HR</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Mod\" class=\"new\">Mod</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLAnchorElement\">Anchor</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Image\" class=\"new\">Image</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLObjectElement\">Object</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Param\" class=\"new\">Param</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Applet\" class=\"new\">Applet</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Map\" class=\"new\">Map</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Area\" class=\"new\">Area</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Script\" class=\"new\">Script</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLTableElement\">Table</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableCaption\" class=\"new\">TableCaption</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableCol\" class=\"new\">TableCol</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableSection\" class=\"new\">TableSection</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLTableRowElement\">TableRow</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableCell\" class=\"new\">TableCell</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/FrameSet\" class=\"new\">FrameSet</a></code>\n, <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Frame\" class=\"new\">Frame</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLIFrameElement\">IFrame</a></code>\n</p>","members":[{"url":"https://developer.mozilla.org/en/DOM/element.addEventListener","name":"addEventListener","help":" Register an event handler to a specific event type on the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.appendChild","name":"appendChild","help":" Insert a node as the last child node of this element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.blur","name":"blur","help":" Removes keyboard focus from the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.click","name":"click","help":" Simulates a click on the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.cloneNode","name":"cloneNode","help":" Clone a node, and optionally, all of its contents.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.compareDocumentPosition","name":"compareDocumentPosition","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.dispatchEvent","name":"dispatchEvent","help":" Dispatch an event to this node in the DOM.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.focus","name":"focus","help":" Gives keyboard focus to the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getAttribute","name":"getAttribute","help":" Retrieve the value of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getAttributeNS","name":"getAttributeNS","help":" Retrieve the value of the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getAttributeNode","name":"getAttributeNode","help":" Retrieve the node representation of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getAttributeNodeNS","name":"getAttributeNodeNS","help":" Retrieve the node representation of the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getBoundingClientRect","name":"getBoundingClientRect","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.getElementsByClassName","name":"getElementsByClassName","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getElementsByTagName","name":"getElementsByTagName","help":" Retrieve a set of all descendant elements, of a particular tag name, from the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.getElementsByTagNameNS","name":"getElementsByTagNameNS","help":" Retrieve a set of all descendant elements, of a particular tag name and namespace, from the current element.","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Node.getFeature","name":"getFeature","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.getUserData","name":"getUserData","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.hasAttribute","name":"hasAttribute","help":" Check if the element has the specified attribute, or not.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.hasAttributeNS","name":"hasAttributeNS","help":" Check if the element has the specified attribute, in the specified namespace, or not.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.hasAttributes","name":"hasAttributes","help":" Check if the element has any attributes, or not.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.hasChildNodes","name":"hasChildNodes","help":" Check if the element has any child nodes, or not.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.insertBefore","name":"insertBefore","help":" Inserts the first node before the second, child, Node in the DOM.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.isDefaultNamespace","name":"isDefaultNamespace","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.isEqualNode","name":"isEqualNode","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.isSameNode","name":"isSameNode","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.isSupported","name":"isSupported","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.lookupNamespaceURI","name":"lookupNamespaceURI","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.lookupPrefix","name":"lookupPrefix","help":"","obsolete":false},{"name":"webkitMatchesSelector","help":" Returns whether or not the element would be selected by the specified selector string.","obsolete":false},{"name":"webkitRequestFullScreen","help":" Asynchronously asks the browser to make the element full-screen.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.normalize","name":"normalize","help":" Clean up all the text nodes under this element (merge adjacent, remove empty).","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.querySelector","name":"querySelector","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.querySelectorAll","name":"querySelectorAll","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeAttribute","name":"removeAttribute","help":" Remove the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeAttributeNS","name":"removeAttributeNS","help":" Remove the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeAttributeNode","name":"removeAttributeNode","help":" Remove the node representation of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.removeChild","name":"removeChild","help":" Removes a child node from the current element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeEventListener","name":"removeEventListener","help":" Removes an event listener from the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.replaceChild","name":"replaceChild","help":" Replaces one child node in the current element with another.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollIntoView","name":"scrollIntoView","help":" Scrolls the page until the element gets into the view.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setAttribute","name":"setAttribute","help":" Set the value of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setAttributeNS","name":"setAttributeNS","help":" Set the value of the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setAttributeNode","name":"setAttributeNode","help":" Set the node representation of the named attribute from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setAttributeNodeNS","name":"setAttributeNodeNS","help":" Set the node representation of the attribute with the specified name and namespace, from the current node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.setCapture","name":"setCapture","help":" Sets up mouse event capture, redirecting all mouse events to this element.","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/element.setIdAttributeNS","name":"setIdAttributeNS","help":" Sets the attribute to be treated as an ID type attribute.","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/element.setIdAttributeNode","name":"setIdAttributeNode","help":" Sets the attribute to be treated as an ID type attribute.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.setUserData","name":"setUserData","help":"","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.insertAdjacentHTML","name":"insertAdjacentHTML","help":" Parses the text as HTML or XML and inserts the resulting nodes into the tree in the position given.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.attributes","name":"attributes","help":"All attributes associated with an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.baseURI","name":"baseURI","help":"Base URI as a string","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.baseURIObject","name":"baseURIObject","help":"The read-only <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIURI\">nsIURI</a></code>\n object representing the base URI for the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.childElementCount","name":"childElementCount","help":"The number of child nodes that are elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.childNodes","name":"childNodes","help":"All child nodes of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.children","name":"children","help":"A live <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsIDOMNodeList&ident=nsIDOMNodeList\" class=\"new\">nsIDOMNodeList</a></code>\n of the current child elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.classList","name":"classList","help":"Token list of class attribute","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.className","name":"className","help":"Gets/sets the class of the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.clientHeight","name":"clientHeight","help":"The inner height of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.clientLeft","name":"clientLeft","help":"The width of the left border of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.clientTop","name":"clientTop","help":"The width of the top border of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.clientWidth","name":"clientWidth","help":"The inner width of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.contentEditable","name":"contentEditable","help":"Gets/sets whether or not the element is editable.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.dataset","name":"dataset","help":"Allows access to read and write custom data attributes on the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.dir","name":"dir","help":"Gets/sets the directionality of the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.firstChild","name":"firstChild","help":"The first direct child node of an element, or <code>null</code> if this element has no child nodes.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.firstElementChild","name":"firstElementChild","help":"The first direct child element of an element, or <code>null</code> if the element has no child elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.id","name":"id","help":"Gets/sets the id of the element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.innerHTML","name":"innerHTML","help":"Gets/sets the markup of the element's content.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.isContentEditable","name":"isContentEditable","help":"Indicates whether or not the content of the element can be edited. Read only.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.lang","name":"lang","help":"Gets/sets the language of an element's attributes, text, and element contents.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.lastChild","name":"lastChild","help":"The last direct child node of an element, or <code>null</code> if this element has no child nodes.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.lastElementChild","name":"lastElementChild","help":"The last direct child element of an element, or <code>null</code> if the element has no child elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.localName","name":"localName","help":"The local part of the qualified name of an element. In Firefox 3.5 and earlier, the property upper-cases the local name for HTML elements (but not XHTML elements). In later versions, this does not happen, so the property is in lower case for both HTML and XHTML. \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.name","name":"name","help":"Gets/sets the name attribute of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.namespaceURI","name":"namespaceURI","help":"The namespace URI of this node, or <code>null</code> if it is no namespace. In Firefox 3.5 and earlier, HTML elements are in no namespace. In later versions, HTML elements are in the <code><a class=\"linkification-ext external\" title=\"Linkification: http://www.w3.org/1999/xhtml\" rel=\"external\" href=\"http://www.w3.org/1999/xhtml\" target=\"_blank\">http://www.w3.org/1999/xhtml</a></code> namespace in both HTML and XML trees. \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nextSibling","name":"nextSibling","help":"The node immediately following the given one in the tree, or <code>null</code> if there is no sibling node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.nextElementSibling","name":"nextElementSibling","help":"The element immediately following the given one in the tree, or <code>null</code> if there's no sibling node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nodeName","name":"nodeName","help":"The name of the node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nodePrincipal","name":"nodePrincipal","help":"The node's principal.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nodeType","name":"nodeType","help":"A number representing the type of the node. Is always equal to <code>1</code> for DOM elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.nodeValue","name":"nodeValue","help":"The value of the node. Is always equal to <code>null</code> for DOM elements.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetHeight","name":"offsetHeight","help":"The height of an element, relative to the layout.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetLeft","name":"offsetLeft","help":"The distance from this element's left border to its <code>offsetParent</code>'s left border.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetParent","name":"offsetParent","help":"The element from which all offset calculations are currently computed.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetTop","name":"offsetTop","help":"The distance from this element's top border to its <code>offsetParent</code>'s top border.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.offsetWidth","name":"offsetWidth","help":"The width of an element, relative to the layout.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.outerHTML","name":"outerHTML","help":"Gets the markup of the element including its content. When used as a setter, replaces the element with nodes parsed from the given string.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.ownerDocument","name":"ownerDocument","help":"The document that this node is in, or <code>null</code> if the node is not inside of one.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.parentNode","name":"parentNode","help":"The parent element of this node, or <code>null</code> if the node is not inside of a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/document\">DOM Document</a></code>\n.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.prefix","name":"prefix","help":"The namespace prefix of the node, or <code>null</code> if no prefix is specified.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.previousSibling","name":"previousSibling","help":"The node immediately preceding the given one in the tree, or <code>null</code> if there is no sibling node.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Element.previousElementSibling","name":"previousElementSibling","help":"The element immediately preceding the given one in the tree, or <code>null</code> if there is no sibling element.","obsolete":false},{"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/element.schemaTypeInfo","name":"schemaTypeInfo","help":"Returns TypeInfo regarding schema information for the element (also available on <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Attr\">Attr</a></code>\n).","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollHeight","name":"scrollHeight","help":"The scroll view height of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollLeft","name":"scrollLeft","help":"Gets/sets the left scroll offset of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollTop","name":"scrollTop","help":"Gets/sets the top scroll offset of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.scrollWidth","name":"scrollWidth","help":"The scroll view width of an element.","obsolete":false},{"url":"https://developer.mozilla.org/en/XUL/Attribute/spellcheck","name":"spellcheck","help":"Controls <a title=\"en/Controlling_spell_checking_in_HTML_forms\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Controlling_spell_checking_in_HTML_forms\">spell-checking</a> (present on all HTML elements)","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.style","name":"style","help":"An object representing the declarations of an element's style attributes.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.tabIndex","name":"tabIndex","help":"Gets/sets the position of the element in the tabbing order.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.tagName","name":"tagName","help":"The name of the tag for the given element.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Node.textContent","name":"textContent","help":"Gets/sets the textual contents of an element and all its descendants.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.title","name":"title","help":"A string that appears in a popup box when mouse is over the element.","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onkeyup","name":"onkeyup","help":"Returns the event handling code for the keyup event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.oncut","name":"oncut","help":"Returns the event handling code for the cut event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onbeforescriptexecute","name":"onbeforescriptexecute","help":"The event handling code for the <code>beforescriptexecute</code> event; this is used only for <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/script\"><script></a></code>\n elements."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onkeydown","name":"onkeydown","help":"Returns the event handling code for the keydown event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onpaste","name":"onpaste","help":"Returns the event handling code for the paste event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onkeypress","name":"onkeypress","help":"Returns the event handling code for the keypress event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onscroll","name":"onscroll","help":"Returns the event handling code for the scroll event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmouseout","name":"onmouseout","help":"Returns the event handling code for the mouseout event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmousemove","name":"onmousemove","help":"Returns the event handling code for the mousemove event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onclick","name":"onclick","help":"Returns the event handling code for the click event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.oncopy","name":"oncopy","help":"Returns the event handling code for the copy event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onresize","name":"onresize","help":"Returns the event handling code for the resize event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onblur","name":"onblur","help":"Returns the event handling code for the blur event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmouseover","name":"onmouseover","help":"Returns the event handling code for the mouseover event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onafterscriptexecute","name":"onafterscriptexecute","help":"The event handling code for the <code>afterscriptexecute</code> event; this is used only for <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/script\"><script></a></code>\n elements."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.ondblclick","name":"ondblclick","help":"Returns the event handling code for the dblclick event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onfocus","name":"onfocus","help":"Returns the event handling code for the focus event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmousedown","name":"onmousedown","help":"Returns the event handling code for the mousedown event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmouseup","name":"onmouseup","help":"Returns the event handling code for the mouseup event."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/element.oncontextmenu","name":"oncontextmenu","help":"Returns the event handling code for the contextmenu event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onchange","name":"onchange","help":"Returns the event handling code for the change event."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/element.onbeforeunload","name":"onbeforeunload","help":"Returns the event handling code for the beforeunload event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onkeyup","name":"onkeyup","help":"Returns the event handling code for the keyup event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.oncut","name":"oncut","help":"Returns the event handling code for the cut event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onkeydown","name":"onkeydown","help":"Returns the event handling code for the keydown event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onpaste","name":"onpaste","help":"Returns the event handling code for the paste event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onkeypress","name":"onkeypress","help":"Returns the event handling code for the keypress event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onscroll","name":"onscroll","help":"Returns the event handling code for the scroll event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmouseout","name":"onmouseout","help":"Returns the event handling code for the mouseout event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmousemove","name":"onmousemove","help":"Returns the event handling code for the mousemove event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onclick","name":"onclick","help":"Returns the event handling code for the click event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.oncopy","name":"oncopy","help":"Returns the event handling code for the copy event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onblur","name":"onblur","help":"Returns the event handling code for the blur event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmouseover","name":"onmouseover","help":"Returns the event handling code for the mouseover event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.ondblclick","name":"ondblclick","help":"Returns the event handling code for the dblclick event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onfocus","name":"onfocus","help":"Returns the event handling code for the focus event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmousedown","name":"onmousedown","help":"Returns the event handling code for the mousedown event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onmouseup","name":"onmouseup","help":"Returns the event handling code for the mouseup event."},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/element.oncontextmenu","name":"oncontextmenu","help":"Returns the event handling code for the contextmenu event."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/element.onchange","name":"onchange","help":"Returns the event handling code for the change event."}],"srcUrl":"https://developer.mozilla.org/en/DOM/element"},"SVGLineElement":{"title":"SVGLineElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGLineElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/line\"><line></a></code>\n SVG Element","summary":"The <code>SVGLineElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/line\"><line></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"x1","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/x1\">x1</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/line\"><line></a></code>\n element.","obsolete":false},{"name":"y1","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/y1\">y1</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/line\"><line></a></code>\n element.","obsolete":false},{"name":"x2","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/x2\">x2</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/line\"><line></a></code>\n element.","obsolete":false},{"name":"y2","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/y2\">y2</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/line\"><line></a></code>\n element.","obsolete":false}]},"SVGFETurbulenceElement":{"title":"feTurbulence","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The filter primitive creates a perturbation image, like cloud or marble textures.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/stitchTiles","name":"stitchTiles","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/numOctaves","name":"numOctaves","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/seed","name":"seed","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/baseFrequency","name":"baseFrequency","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/type","name":"type","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feTurbulence"},"CSSFontFaceRule":{"title":"CSSRule","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/cssRule","skipped":true,"cause":"Suspect title"},"DOMImplementation":{"title":"DOMImplementation","summary":"Provides methods which are not dependent on any particular DOM instances. Returned by <code><a title=\"En/DOM/Document.implementation\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.implementation\">document.implementation</a></code>.","members":[{"url":"https://developer.mozilla.org/En/DOM/DOMImplementation.createDocument","name":"createDocument","help":"","obsolete":false},{"url":"https://developer.mozilla.org/En/DOM/DOMImplementation.createDocumentType","name":"createDocumentType","help":"","obsolete":false},{"url":"https://developer.mozilla.org/En/DOM/DOMImplementation.createHTMLDocument","name":"createHTMLDocument","help":"","obsolete":false},{"url":"https://developer.mozilla.org/En/DOM/DOMImplementation.getFeature","name":"getFeature","help":"","obsolete":false},{"url":"https://developer.mozilla.org/En/DOM/DOMImplementation.hasFeature","name":"hasFeature","help":"","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/DOMImplementation","specification":"DOM Level 3"},"HTMLAudioElement":{"title":"HTMLAudioElement","seeAlso":"<li><a title=\"en/Introducing the Audio API Extension\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Introducing_the_Audio_API_Extension\">Introducing the Audio API Extension</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/audio\"><audio></a></code>\n</li>","summary":"<p>The <code>HTMLAudioElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/audio\"><audio></a></code>\n elements, as well as methods to manipulate them. It's derived from the <a title=\"en/DOM/HTMLMediaElement\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/HTMLMediaElement\" class=\" new\"><code>HTMLMediaElement</code></a> interface; it's implemented by <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMHTMLMediaElement\">nsIDOMHTMLMediaElement</a></code>\n.</p>\n<p>For details on how to use the audio streaming features exposed by this interface, please see <a title=\"en/Introducing the Audio API Extension\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Introducing_the_Audio_API_Extension\">Introducing the Audio API Extension</a>.</p>","members":[{"name":"webkitWriteAudio","help":"Writes audio into the stream at the current offset. Returns the number of bytes actually written to the stream.","obsolete":false},{"name":"webkitCurrentSampleOffset","help":"Indicates the current offset of the audio stream that was created by a call to <code>mozWriteAudio()</code>. This offset is specified as the number of samples since the beginning of the stream.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/HTMLAudioElement"},"SVGSetElement":{"title":"SVGSetElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGSetElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGSetElement"},"SVGFEImageElement":{"title":"feImage","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animateTransform\"><animateTransform></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The feImage filter fetches image data from an external source and provides the pixel data as output.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/externalResourcesRequired","name":"externalResourcesRequired","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio","name":"preserveAspectRatio","help":""}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feImage"},"IDBIndex":{"title":"IDBIndex","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>12\n<span title=\"prefix\">-webkit</span> </td> <td>4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>count()</code></td> <td><span title=\"Not supported.\">--</span></td> <td>10.0 (10.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>count()</code></td> <td><span title=\"Not supported.\">--</span></td> <td>10.0 (10.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["<p>The following is an example based on the HTML5Rocks article on <a class=\"external\" rel=\"external\" href=\"http://www.html5rocks.com/en/tutorials/indexeddb/todo/#toc-step4\" title=\"http://www.html5rocks.com/en/tutorials/indexeddb/todo/#toc-step4\" target=\"_blank\">IndexedDB</a>. For Chrome, use the <code>webkit</code> prefix. For example, <code>IDBKeyRange</code> would be <code>webkitIDBKeyRange</code>.</p>\n\n <pre name=\"code\" class=\"js\">// Taking care of the browser-specific prefixes.\nif ('webkitIndexedDB' in window) {\n window.indexedDB = window.webkitIndexedDB;\n window.IDBTransaction = window.webkitIDBTransaction;\n window.IDBKeyRange = window.webkitIDBKeyRange;\n} else if ('mozIndexedDB' in window) {\n window.indexedDB = window.mozIndexedDB;\n}\n\n...\n \nhtml5rocks.indexedDB.getAllTodoItems = function() {\n var todos = document.getElementById(\"todoItems\");\n todos.innerHTML = \"\";\n \n // Start a transaction.\n var db = html5rocks.indexedDB.db;\n // Open an object store called \"todo\" \n // in \"READ_WRITE\" mode. \n var trans = db.transaction([\"todo\"], IDBTransaction.READ_WRITE, 0);\n var store = trans.objectStore(\"todo\");\n\n // We select the range of data we want to make queries over \n // In this case, we get everything. \n // To see how you set ranges, see IDBKeyRange.\n var keyRange = IDBKeyRange.lowerBound(0);\n // We open a cursor and attach events.\n var cursorRequest = store.openCursor(keyRange);\n\n cursorRequest.onsuccess = function(e) {\n var result = e.target.result;\n if(!!result == false)\n return;\n\n renderTodo(result.value);\n // The success event handler is fired once for each entry.\n // So call \"continue\" on your result object.\n // This lets you iterate across the data\n\n result.continue();\n };\n\n cursorRequest.onerror = html5rocks.indexedDB.onerror;\n};</pre>"],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBIndex","summary":"<p>The <code>IDBIndex</code> interface of the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API</a> provides asynchronous access to an <a title=\"en/IndexedDB#gloss index\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_index\">index</a> in a database. An index is a kind of object store for looking up records in another object store, called the <em>referenced object store</em>. You use this interface to retrieve data.</p>\n<p>Inherits from: <a title=\"en/DOM/EventTarget\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/EventTarget\">EventTarget</a></p>","members":[{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR","name":"TRANSACTION_INACTIVE_ERR","help":"The index's transaction is not active.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR","name":"DATA_ERR","help":"The <code>key</code> parameter was not a valid value.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The request was made on a source object that has been deleted or removed.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR","name":"TRANSACTION_INACTIVE_ERR","help":"The index's transaction is not active.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR","name":"DATA_ERR","help":"The <code>key</code> parameter was not a valid value.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The request was made on a source object that has been deleted or removed.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR","name":"DATA_ERR","help":"The <code>key</code> parameter was not a valid value.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The request was made on a source object that has been deleted or removed.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR","name":"TRANSACTION_INACTIVE_ERR","help":"The index's transaction is not active.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR","name":"DATA_ERR","help":"The <code>key</code> parameter was not a valid value.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The request was made on a source object that has been deleted or removed.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR","name":"TRANSACTION_INACTIVE_ERR","help":"The index's transaction is not active.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR","name":"DATA_ERR","help":"The <code>key</code> parameter was not a valid value.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The request was made on a source object that has been deleted or removed.","obsolete":false},{"name":"openKeyCursor","help":"<p>Returns an <a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and, in a separate thread, creates a cursor over the specified key range, as arranged by this index. The method sets the position of the cursor to the appropriate record, based on the specified direction.</p>\n<ul> <li>If the key range is not specified or is null, then the range includes all the records.</li> <li>If at least one record matches the key range, then a <a title=\"en/IndexedDB/IDBSuccessEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent\">success event</a> is fired on the result object, with its <a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a> set to the new <a title=\"en/IndexedDB/IDBCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBCursor\">IDBCursor</a> object; the <code><a title=\"en/IndexedDB/IDBCursor#attr value\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBCursor#attr_value\">value</a></code> of the cursor object is set to the value of the found record.</li> <li>If no records match the key range, then then an <a title=\"en/IndexedDB/IDBErrorEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent\">error event</a> is fired on the request object, with its <code><a title=\"en/IndexedDB/IDBErrorEvent#attr code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_code\">code</a></code> set to <code><a href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\" rel=\"internal\">NOT_FOUND_ERR</a></code> and a suitable <code><a title=\"en/IndexedDB/IDBErrorEvent#attr message\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_message\">message</a></code>.</li>\n</ul>\n<pre>IDBRequest openKeyCursor (\n in optional any? range, \n in optional unsigned short direction\n) raises (IDBDatabaseException);\n</pre>\n<div id=\"section_23\"><span id=\"Parameters_5\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>range</dt> <dd><em>Optional.</em> The key range to use as the cursor's range.</dd> <dt>direction</dt> <dd><em>Optional.</em> The cursor's required direction. See <a title=\"en/IndexedDB/IDBCursor#Constants\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBCursor#Constants\">IDBCursor Constants</a> for possible values.</dd>\n</dl>\n</div><div id=\"section_24\"><span id=\"Returns_5\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\" rel=\"internal\">IDBRequest</a></code></dt>\n</dl>\n<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_25\"><span id=\"Exceptions_5\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Attribute</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\"><code>TRANSACTION_INACTIVE_ERR</code></a></td> <td>The index's transaction is not active.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#DATA ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></td> <td>The <code>key</code> parameter was not a valid value.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The request was made on a source object that has been deleted or removed.</td> </tr> </tbody>\n</table>\n</div>","obsolete":false},{"name":"openCursor","help":"<p>Returns an <a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and, in a separate thread, creates a <a title=\"en/IndexedDB#gloss cursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_cursor\">cursor</a> over the specified key range. The method sets the position of the cursor to the appropriate record, based on the specified direction.</p>\n<ul> <li>If the key range is not specified or is null, then the range includes all the records.</li> <li>If at least one record matches the key range, then a <a title=\"en/IndexedDB/IDBSuccessEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent\">success event</a> is fired on the result object, with its <a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a> set to the new <a title=\"en/IndexedDB/IDBCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBCursor\">IDBCursor</a> object; the <code><a title=\"en/IndexedDB/IDBCursor#attr value\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBCursor#attr_value\">value</a></code> of the cursor object is set to a structured clone of the referenced value.</li> <li>If no records match the key range, then then an <a title=\"en/IndexedDB/IDBErrorEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent\">error event</a> is fired on the request object, with its <code><a title=\"en/IndexedDB/IDBErrorEvent#attr code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_code\">code</a></code> set to <code><a href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\" rel=\"internal\">NOT_FOUND_ERR</a></code> and a suitable <code><a title=\"en/IndexedDB/IDBErrorEvent#attr message\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_message\">message</a></code>.</li>\n</ul>\n<pre>IDBRequest openCursor (\n in optional any? range, \n in optional unsigned short direction\n) raises (IDBDatabaseException);\n</pre>\n<div id=\"section_19\"><span id=\"Parameters_4\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>range</dt> <dd><em>Optional.</em> The key range to use as the cursor's range.</dd> <dt>direction</dt> <dd><em>Optional.</em> The cursor's required <a title=\"en/indexedDB#gloss direction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_direction\">direction</a>. See <a title=\"en/IndexedDB/IDBCursor#Constants\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBCursor#Constants\">IDBCursor Constants</a> for possible values.</dd>\n</dl>\n</div><div id=\"section_20\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\" rel=\"internal\">IDBRequest</a></code></dt>\n</dl>\n<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_21\"><span id=\"Exceptions_4\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Attribute</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\"><code>TRANSACTION_INACTIVE_ERR</code></a></td> <td>The index's transaction is not active.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#DATA ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></td> <td>The <code>key</code> parameter was not a valid value.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The request was made on a source object that has been deleted or removed.</td> </tr> </tbody>\n</table>\n</div>","obsolete":false},{"name":"get","help":"<p>Returns an <a title=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and, in a separate thread, finds either:</p>\n<ul> <li>The value in the referenced object store that corresponds to the given key.</li> <li>The first corresponding value, if <code>key</code> is a key range.</li>\n</ul>\n<p>If a value is successfully found, then a structured clone of it is created and set as the <code><a title=\"en/IndexedDB/IDBRequest#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest#attr_result\">result</a></code> of the request object.</p>\n<p></p><div class=\"note\"><strong>Note:</strong> This method produces the same result for: a) a record that doesn't exist in the database and b) a record that has an undefined value. To tell these situations apart, call the openCursor() method with the same key. That method provides a cursor if the record exists, and not if it does not.</div>\n<p></p>\n<pre>IDBRequest get (\n in any key\n) raises (IDBDatabaseException);\n</pre>\n<div id=\"section_7\"><span id=\"Parameters\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>key</dt> <dd>The key or key range that identifies the record to be retrieved.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\" rel=\"internal\">IDBRequest</a></code></dt>\n</dl>\n<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_9\"><span id=\"Exceptions\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Attribute</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\"><code>TRANSACTION_INACTIVE_ERR</code></a></td> <td>The index's transaction is not active.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#DATA ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></td> <td>The <code>key</code> parameter was not a valid value.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The request was made on a source object that has been deleted or removed.</td> </tr> </tbody>\n</table>\n</div>","obsolete":false},{"name":"getKey","help":"<p>Returns an <a title=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and, in a separate thread, finds either:</p>\n<ul> <li>The value in the index that corresponds to the given key</li> <li>The first corresponding value, if <code>key</code> is a key range.</li>\n</ul>\n<p>If a value is successfully found, then a structured clone of it is created and set as the <code><a title=\"en/IndexedDB/IDBRequest#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest#attr_result\">result</a></code> of the request object.</p>\n<p></p><div class=\"note\"><strong>Note:</strong> This method produces the same result for: a) a record that doesn't exist in the database and b) a record that has an undefined value. To tell these situations apart, call the openCursor() method with the same key. That method provides a cursor if the record exists, and not if it does not.</div>\n<p></p>\n<pre>IDBRequest getKey (\n in any key\n) raises (IDBDatabaseException);\n</pre>\n<div id=\"section_11\"><span id=\"Parameters_2\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>key</dt> <dd>The key or key range that identifies the record to be retrieved.</dd>\n</dl>\n</div><div id=\"section_12\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\" rel=\"internal\">IDBRequest</a></code></dt>\n</dl>\n<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_13\"><span id=\"Exceptions_2\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise a <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Attribute</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\"><code>TRANSACTION_INACTIVE_ERR</code></a></td> <td>The index's transaction is not active.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#DATA ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></td> <td>The <code>key</code> parameter was not a valid value.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The request was made on a source object that has been deleted or removed.</td> </tr> </tbody>\n</table>\n</div>","obsolete":false},{"name":"count","help":"<p>Returns an <a title=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and in a separate thread, returns the number of records within a key range. For example, if you want to see how many records are between keys 1000 and 2000 in an object store, you can write the following: <code> var req = store.count(<a title=\"en/IndexedDB/IDBKeyRange\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBKeyRange\">IDBKeyRange</a>.bound(1000, 2000));</code></p>\n<pre>IDBRequest count (\n in optional any key\n) raises (IDBDatabaseException);\n</pre>\n<div id=\"section_15\"><span id=\"Parameters_3\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>key</dt> <dd>The key or key range that identifies the record to be counted.</dd>\n</dl></div><div id=\"section_16\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\" rel=\"internal\">IDBRequest</a></code></dt>\n</dl>\n<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_17\"><span id=\"Exceptions_3\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise a <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Attribute</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#DATA ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></td> <td>The <code>key</code> parameter was not a valid value.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The request was made on a source object that has been deleted or removed.</td> </tr> </tbody>\n</table>\n</div>","obsolete":false}]},"DatabaseSync":{"title":"IDBDatabaseSync","summary":"<div><strong>DRAFT</strong>\n<div>This page is not complete.</div>\n</div>\n\n<p></p>\n<p>The <code>DatabaseSync</code> interface in the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API</a> represents a synchronous <a title=\"en/IndexedDB#gloss database connection\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_database_connection\">connection to a database</a>.</p>","members":[{"name":"setVersion","help":"<p>Sets the version of the connected database.</p>\n<pre>void setVersion (\n in DOMString version\n);\n</pre>\n<div id=\"section_17\"><span id=\"Parameters_4\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>version</dt> <dd>The version to store in the database.</dd> <div id=\"section_18\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5> <p><code>void</code></p>\n</div></dl>\n</div>","obsolete":false},{"name":"transaction","help":"<p>Creates and returns a transaction, acquiring locks on the given database objects, within the specified timeout duration, if possible.</p>\n<pre>IDBTransactionSync transaction (\n in optional DOMStringList storeNames,\n in optional unsigned int timeout\n) raises (IDBDatabaseException);\n</pre>\n<div id=\"section_20\"><span id=\"Parameters_5\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>storeNames</dt> <dd>The names of object stores and indexes in the scope of the new transaction.</dd> <dt>timeout</dt> <dd>The interval that this operation is allowed to take to acquire locks on all the objects stores and indexes identified in <code>storeNames</code>.</dd>\n</dl>\n</div><div id=\"section_21\"><span id=\"Returns_5\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/TransactionSync\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransactionSync\">IDBTransactionSync</a></code></dt> <dd>An object to access the newly created transaction.</dd>\n</dl>\n</div><div id=\"section_22\"><span id=\"Exceptions_4\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an IDBDatabaseException with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#TIMEOUT ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TIMEOUT_ERR\">TIMEOUT_ERR</a></code></dt> <dd>If reserving all the database objects identified in <code>storeNames</code> takes longer than the <code>timeout</code> interval.</dd>\n</dl></div>","obsolete":false},{"name":"removeObjectStore","help":"<p>Destroys an object store with the given name, as well as all indexes that reference that object store.</p>\n<pre>void removeObjectStore (\n in DOMString storeName\n) raises (IDBDatabaseException);\n</pre>\n<div id=\"section_13\"><span id=\"Parameters_3\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>storeName</dt> <dd>The name of an existing object store to remove.</dd>\n</dl>\n</div><div id=\"section_14\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<p><code>void</code></p>\n</div><div id=\"section_15\"><span id=\"Exceptions_3\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an IDBDatabaseException with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_FOUND_ERR</a></code></dt>\n</dl>\n<dl> <dd>If the object store with the given name (based on case-sensitive comparison) does not exist in the connected database.</dd>\n</dl>\n</div>","obsolete":false},{"name":"createObjectStore","help":"<p>Creates and returns a new object store with the given name in the connected database.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>name</dt> <dd>The name of a new object store.</dd> <dt>keypath</dt> <dd>The <a title=\"en/IndexedDB#gloss key path\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_key_path\">key path</a> used by the new object store. If a null path is specified, then the object store does not have a key path, and uses out-of-line keys.</dd> <dt>autoIncrement</dt> <dd>If true, the object store uses a <a title=\"en/IndexedDB#gloss key generator\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_key_generator\">key generator</a>; if false, it does not use one.</dd>\n</dl>\n</div><div id=\"section_6\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><a title=\"en/IndexedDB/ObjectStoreSync\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBObjectStoreSync\"><code>IDBObjectStoreSync</code></a></dt> <dd>An object to access the newly created object store.</dd>\n</dl>\n</div><div id=\"section_7\"><span id=\"Exceptions\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an IDBDatabaseException with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#CONSTRAINT ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#CONSTRAINT_ERR\">CONSTRAINT_ERR</a></code></dt> <dd>If an object store with the same name (based on case-sensitive comparison) already exists in the connected database.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\"> IDBObjectStoreSync createObjectStore( \n in DOMString name, \n in DOMString keypath, \n in optional boolean autoIncrement \n) raises (IDBDatabaseException);\n</pre>","obsolete":false},{"name":"openObjectStore","help":"<p>Opens the object store with the given name in the connected database using the specified mode.</p>\n<pre>IDBObjectStoreSync openObjectStore (\n in DOMString name, \n in optional unsigned short mode\n) raises (IDBDatabaseException);\n</pre>\n<div id=\"section_9\"><span id=\"Parameters_2\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>name</dt> <dd>The name of the object store to open.</dd> <dt>mode</dt> <dd>The mode that is used to access the object store.</dd>\n</dl>\n</div><div id=\"section_10\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><a title=\"en/IndexedDB/ObjectStoreSync\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBObjectStoreSync\"><code>IDBObjectStoreSync</code></a></dt> <dd>An object to access the opened object store.</dd>\n</dl>\n</div><div id=\"section_11\"><span id=\"Exceptions_2\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an IDBDatabaseException with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_FOUND_ERR</a></code></dt> <dd>If an object store with the given name (based on case-sensitive comparison) already exists in the connected database.</dd>\n</dl>\n</div>","obsolete":false},{"url":"","name":"name","help":"The name of the connected database.","obsolete":false},{"url":"","name":"objectStores","help":"The names of the object stores that exist in the connected database.","obsolete":false},{"url":"","name":"version","help":"The version of the connected database. Has the null value when the database is first created.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseSync"},"DOMTokenList":{"title":"DOMTokenList","summary":"This type represents a set of space-separated tokens. Commonly returned by <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element.classList\">HTMLElement.classList</a></code>\n, HTMLLinkElement.relList, HTMLAnchorElement.relList or HTMLAreaElement.relList. It is indexed beginning with 0 as with JavaScript arrays. DOMTokenList is always case-sensitive.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/DOMTokenList.remove","name":"remove","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/DOMTokenList.contains","name":"contains","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/DOMTokenList.add","name":"add","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/DOMTokenList.item","name":"item","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/DOMTokenList.toggle","name":"toggle","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/DOMTokenList.length","name":"length","help":""}],"srcUrl":"https://developer.mozilla.org/en/DOM/DOMTokenList","specification":"http://www.whatwg.org/specs/web-apps/current-work/#domtokenlist"},"HTMLHeadElement":{"title":"HTMLHeadElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/head\"><head></a></code>\n HTML element","summary":"The DOM <code>head</code> element exposes the <a title=\"http://www.w3.org/TR/html5/semantics.html#htmlheadelement\" class=\" external\" rel=\"external\" href=\"http://www.w3.org/TR/html5/semantics.html#htmlheadelement\" target=\"_blank\">HTMLHeadElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" target=\"_blank\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-77253168\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-77253168\">HTMLHeadElement</a>) interface, which contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a></code>\n section. In \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>, this interface inherits from HTMLElement, but defines no additional members.","members":[{"name":"profile","help":"The URIs of one or more metadata profiles (white space separated). \n\n<span class=\"deprecatedInlineTemplate\" title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Deprecated since Gecko 2.0</span>\n\n \n\n<span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Obsolete since Gecko 7.0</span>","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLHeadElement"},"SVGFEPointLightElement":{"title":"fePointLight","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDistantLight\"><feDistantLight></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpotLight\"><feSpotLight></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/fePointLight"},"SVGPolylineElement":{"title":"polyline","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> \n<tr><th scope=\"col\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Firefox (Gecko)</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.5 (1.8)\n</td> <td>\n9.0</td> <td>\n8.0</td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td>\n3.0</td> <td>1.0 (1.8)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<p>The chart is based on <a title=\"en/SVG/Compatibility sources\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Compatibility_sources\">these sources</a>.</p>","examples":["<tr> <th scope=\"col\">Source code</th> <th scope=\"col\">Output result</th> </tr> <tr> <td>\n <pre name=\"code\" class=\"xml\"><?xml version=\"1.0\"?>\n<svg width=\"120\" height=\"120\" \n viewPort=\"0 0 120 120\" version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\">\n\n <polyline fill=\"none\" stroke=\"black\" \n points=\"20,100 40,60 70,80 100,20\"/>\n\n</svg></pre>\n </td> <td>\n<iframe src=\"https://developer.mozilla.org/@api/deki/services/developer.mozilla.org/39/images/00770706-ef3b-c098-02e7-ff059dc17fa0.svg\" width=\"120px\" height=\"120px\" marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\"></iframe>\n</td> </tr>"],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/polyline","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/line\"><line></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/polygon\"><polygon></a></code>\n</li>","summary":"The <code>polyline</code> element is an SVG basic shape, used to create a series of straight lines connecting several points. Typically a <code>polyline</code> is used to create open shapes","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/points","name":"points","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/transform","name":"transform","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/externalResourcesRequired","name":"externalResourcesRequired","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""}]},"FileEntrySync":{"title":"FileEntrySync","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>13\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<div><strong>DRAFT</strong> <div>This page is not complete.</div>\n</div>\n<p>The <code>FileEntrySync</code> interface of the <a title=\"en/DOM/File_API/File_System_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File_API/File_System_API\">FileSystem API</a> represents a file in a file system.</p>","members":[{"name":"createWriter","help":"<p>Creates a new <code>FileWriter</code> associated with the file that the <code>FileEntry</code> represents.</p>\n<pre>void createWriter (\n in FileWriterCallback successCallback, optional ErrorCallback errorCallback\n);</pre>\n<div id=\"section_4\"><span id=\"Parameter\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>successCallback</dt> <dd>A callback that is called with the new <code>FileWriter</code>.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_5\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"file","help":"<p>Returns a File that represents the current state of the file that this <code>FileEntry</code> represents.</p>\n<pre>void file (\n <em>FileCallback successCallback, optional ErrorCallback errorCallback</em>\n);</pre>\n<div id=\"section_7\"><span id=\"Parameter_2\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>successCallback</dt> <dd>A callback that is called with the new <code>FileWriter</code>.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/FileEntrySync"},"SVGFilterElement":{"title":"filter","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<p></p><div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th scope=\"col\">Feature</th> <th scope=\"col\">Chrome</th> <th scope=\"col\">Firefox (Gecko)</th> <th scope=\"col\">Internet Explorer</th> <th scope=\"col\">Opera</th> <th scope=\"col\">Safari</th> </tr><tr><td>Basic Support</td><td>1.0 [1]</td><td>4.0 (2.0)\n</td><td>\n10.0</td><td>9.0\n</td><td>\n3.0 [1]</td></tr></tbody></table></div>\n <div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th scope=\"col\">Feature</th> <th scope=\"col\">Android</th> <th scope=\"col\">Firefox Mobile (Gecko)</th> <th scope=\"col\">IE Phone</th> <th scope=\"col\">Opera Mobile</th> <th scope=\"col\">Safari Mobile</th> </tr><tr><td>Basic Support</td><td><span title=\"Compatibility unknown; please update this.\">?</span></td><td>4.0 (2.0)\n</td><td><span title=\"Not supported.\">--</span></td><td>9.5\n</td><td>\n3.0 [1]</td></tr></tbody></table></div><p></p>\n<p id=\"compatWebkit\">[1] There remain <a class=\"link-https\" rel=\"external\" href=\"https://bugs.webkit.org/show_bug.cgi?id=26389\" title=\"https://bugs.webkit.org/show_bug.cgi?id=26389\" target=\"_blank\">some issues</a> in Webkit browsers.</p>\n<p>The chart is based on <a title=\"en/SVG/Compatibility sources\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Compatibility_sources\">these sources</a>.</p>","srcUrl":"https://developer.mozilla.org/en/SVG/Element/filter","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The <code>filter</code> element serves as container for atomic filter operations. It is never rendered directly. A filter is referenced by using the \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/filter\" class=\"new\">filter</a></code> attribute on the target SVG element.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/filterRes","name":"filterRes","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/height","name":"height","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/primitiveUnits","name":"primitiveUnits","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/width","name":"width","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/filterUnits","name":"filterUnits","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/externalResourcesRequired","name":"externalResourcesRequired","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":""}]},"EntryCallback":{"title":"DirectoryEntrySync","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/DirectoryEntrySync","skipped":true,"cause":"Suspect title"},"AudioBuffer":{"title":"Introducing the Audio API extension","members":[],"srcUrl":"https://developer.mozilla.org/en/Introducing_the_Audio_API_Extension","skipped":true,"cause":"Suspect title"},"SVGAnimatedString":{"title":"SVGAnimatedString","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedString</code> interface is used for attributes of type <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMString\">DOMString</a></code>\n which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"If the given attribute or property is being animated, contains the current animated value of the attribute or property. If the given attribute or property is not currently being animated, contains the same value as <code>baseVal</code>.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedString"},"RangeException":{"title":"window.btoa","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/window.btoa","skipped":true,"cause":"Suspect title"},"ProcessingInstruction":{"title":"ProcessingInstruction","srcUrl":"https://developer.mozilla.org/en/DOM/ProcessingInstruction","specification":"DOM Level 1 Core: ProcessingInstruction interface","seeAlso":"document.createProcessingInstruction","summary":"<p>A processing instruction provides an opportunity for application-specific instructions to be embedded within XML and which can be ignored by XML processors which do not support processing their instructions (outside of their having a place in the DOM).</p>\n<p>A Processing instruction is distinct from a <a title=\"en/XML/XML_Declaration\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XML/XML_Declaration\" class=\"new \">XML Declaration</a> which is used for other information about the document such as encoding and which appear (if it does) as the first item in the document.</p>\n<p>User-defined processing instructions cannot begin with 'xml', as these are reserved (e.g., as used in <?<a title=\"en/XML/xml-stylesheet\" rel=\"internal\" href=\"https://developer.mozilla.org/en/XML/xml-stylesheet\" class=\"new \">xml-stylesheet</a> ?>).</p>\n<p>Also inherits methods and properties from <a class=\"internal\" title=\"En/DOM/Node\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Node\"><code>Node</code></a>.</p>","members":[{"name":"target","help":"","obsolete":false},{"name":"data","help":"","obsolete":false}]},"Uint16Array":{"title":"Uint16Array","srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array","seeAlso":"<li><a class=\"link-https\" title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"<p>The <code>Uint16Array</code> type represents an array of unsigned 16-bit integers..</p>\n<p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p>","constructor":"<div class=\"note\"><strong>Note:</strong> In these methods, <code><em>TypedArray</em></code> represents any of the <a title=\"en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses\">typed array object types</a>.</div>\n<table class=\"standard-table\"> <tbody> <tr> <td><code>Uint16Array <a title=\"en/JavaScript typed arrays/Uint16Array#Uint16Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array#Uint16Array()\">Uint16Array</a>(unsigned long length);<br> </code></td> </tr> <tr> <td><code>Uint16Array </code><code><a title=\"en/JavaScript typed arrays/Uint16Array#Uint16Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array#Uint16Array%28%29\">Uint16Array</a></code><code>(<em>TypedArray</em> array);<br> </code></td> </tr> <tr> <td><code>Uint16Array </code><code><a title=\"en/JavaScript typed arrays/Uint16Array#Uint16Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array#Uint16Array%28%29\">Uint16Array</a></code><code>(sequence<type> array);<br> </code></td> </tr> <tr> <td><code>Uint16Array </code><code><a title=\"en/JavaScript typed arrays/Uint16Array#Uint16Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Uint16Array#Uint16Array%28%29\">Uint16Array</a></code><code>(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);<br> </code></td> </tr> </tbody>\n</table><p>Returns a new <code>Uint16Array</code> object.</p>\n<pre>Uint16Array Uint16Array(\n unsigned long length\n);\n\nUint16Array Uint16Array(\n <em>TypedArray</em> array\n);\n\nUint16Array Uint16Array(\n sequence<type> array\n);\n\nUint16Array Uint16Array(\n ArrayBuffer buffer,\n optional unsigned long byteOffset,\n optional unsigned long length\n);\n</pre>\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>length</code></dt> <dd>The number of elements in the byte array. If unspecified, length of the array view will match the buffer's length.</dd> <dt><code>array</code></dt> <dd>An object of any of the typed array types (such as <code>Int32Array</code>), or a sequence of objects of a particular type, to copy into a new <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>. Each value in the source array is converted to a 16-bit unsigned integer before being copied into the new array.</dd> <dt><code>buffer</code></dt> <dd>An existing <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> to use as the storage for the new <code>Uint16Array</code> object.</dd> <dt><code>byteOffset<br> </code></dt> <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the <code>Uint16Array</code>'s view of the buffer will start with the first byte.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>Uint16Array</code> object representing the specified data buffer.</p>\n</div>","members":[{"name":"subarray","help":"<p>Returns a new <code>Uint16Array</code> view on the <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> store for this <code>Uint16Array</code> object.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>begin</code></dt> <dd>The offset to the first element in the array to be referenced by the new <code>Uint16Array</code> object.</dd> <dt><code>end</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The offset to the last element in the array to be referenced by the new <code>Uint16Array</code> object; if not specified, all elements from the one specified by <code>begin</code> to the end of the array are included in the new view.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Notes_2\"></span><h6 class=\"editable\">Notes</h6>\n<p>The range specified by <code>begin</code> and <code>end</code> is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it's clamped to zero. If either <code>begin</code> or <code>end</code> is negative, it refers to an index from the end of the array instead of from the beginning.</p>\n<div class=\"note\"><strong>Note:</strong> Keep in mind that this is creating a new view on the existing buffer; changes to the new object's contents will impact the original object and vice versa.</div>\n</div>","idl":"<pre>Uint16Array subarray(\n long begin,\n optional long end\n);\n</pre>","obsolete":false},{"name":"set","help":"<p>Sets multiple values in the typed array, reading input values from a specified array.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset \n<span title=\"\">Optional</span>\n</dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>\n</dl>\n</div>","idl":"<pre>void set(\n <em>TypedArray</em> array,\n optional unsigned long offset\n);\n\nvoid set(\n type[] array,\n optional unsigned long offset\n);\n</pre>","obsolete":false},{"name":"BYTES_PER_ELEMENT","help":"The size, in bytes, of each array element.","obsolete":false},{"name":"length","help":"The number of entries in the array. <strong>Read only.</strong>","obsolete":false}]},"HTMLTextAreaElement":{"title":"HTMLTextAreaElement","examples":["<p>Insert HTML tags or <em>smiles</em> or any custom text in a textarea:</p>\n\n <pre name=\"code\" class=\"xml\"><!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title>MDC Example</title>\n<script type=\"text/javascript\">\n\tfunction insertMetachars(sStartTag, sEndTag) {\n\t\tvar bDouble = arguments.length > 1, oMsgInput = document.myForm.myTxtArea, nSelStart = oMsgInput.selectionStart, nSelEnd = oMsgInput.selectionEnd, sOldText = oMsgInput.value;\n\t\toMsgInput.value = sOldText.substring(0, nSelStart) + (bDouble ? sStartTag + sOldText.substring(nSelStart, nSelEnd) + sEndTag : sStartTag) + sOldText.substring(nSelEnd);\n\t\toMsgInput.setSelectionRange(bDouble || nSelStart === nSelEnd ? nSelStart + sStartTag.length : nSelStart, (bDouble ? nSelEnd : nSelStart) + sStartTag.length);\n\t\toMsgInput.focus();\n\t}\n</script>\n<style type=\"text/css\">\n\t.intLink {\n\t\tcursor: pointer;\n\t\ttext-decoration: underline;\n\t\tcolor: #0000ff;\n\t}\n</style>\n</head>\n\n<body>\n\n<form name=\"myForm\">\n<p>[&nbsp;<span class=\"intLink\" onclick=\"insertMetachars('&lt;strong&gt;','&lt;\\/strong&gt;');\"><strong>Bold</strong></span> | <span class=\"intLink\" onclick=\"insertMetachars('&lt;em&gt;','&lt;\\/em&gt;');\"><em>Italic</em></span> | <span class=\"intLink\" onclick=\"var newURL=prompt('Enter the full URL for the link');if(newURL){insertMetachars('&lt;a href=\\u0022'+newURL+'\\u0022&gt;','&lt;\\/a&gt;');}else{document.myForm.myTxtArea.focus();}\">URL</span> | <span class=\"intLink\" onclick=\"insertMetachars('\\n&lt;code&gt;\\n','\\n&lt;\\/code&gt;\\n');\">code</span> | <span class=\"intLink\" onclick=\"insertMetachars(' :-)');\">smile</span> | etc. etc.&nbsp;]</p>\n<p><textarea rows=\"10\" cols=\"50\" name=\"myTxtArea\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut facilisis, arcu vitae adipiscing placerat, nisl lectus accumsan nisi, vitae iaculis sem neque vel lectus. Praesent tristique commodo lorem quis fringilla. Sed ac tellus eros. Sed consectetur eleifend felis vitae luctus. Praesent sagittis, est eget bibendum tincidunt, ligula diam tincidunt augue, a fermentum odio velit eget mi. Phasellus mattis, elit id fringilla semper, orci magna cursus ligula, non venenatis lacus augue sit amet dui. Pellentesque lacinia odio id nisi pulvinar commodo tempus at odio. Ut consectetur eros porttitor nunc mollis ultrices. Aenean porttitor, purus sollicitudin viverra auctor, neque erat blandit sapien, sit amet tincidunt massa mi ac nibh. Proin nibh sem, bibendum ut placerat nec, cursus et lacus. Phasellus vel augue turpis. Nunc eu mauris eu leo blandit mollis interdum eget lorem. </textarea></p>\n</form>\n\n</body>\n</html></pre>\n \n<p>Create a textarea with a maximum number of characters per line and a maximum number of lines:</p>\n\n <pre name=\"code\" class=\"xml\"><!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title>MDC Example</title>\n<script type=\"text/javascript\">\nfunction checkRows(oField, oKeyEvent) {\n\tvar\tnKey = (oKeyEvent || /* old IE */ window.event || /* check is not supported! */ { keyCode: 38 }).keyCode,\n\n\t\t// put here the maximum number of characters per line:\n\t\tnCols = 30,\n\t\t// put here the maximum number of lines:\n\t\tnRows = 5,\n\n\t\tnSelS = oField.selectionStart, nSelE = oField.selectionEnd,\n\t\tsVal = oField.value, nLen = sVal.length,\n\n\t\tnBackward = nSelS >= nCols ? nSelS - nCols : 0,\n\t\tnDeltaForw = sVal.substring(nBackward, nSelS).search(new RegExp(\"\\\\n(?!.{0,\" + String(nCols - 2) + \"}\\\\n)\")) + 1,\n\t\tnRowStart = nBackward + nDeltaForw,\n\t\taReturns = (sVal.substring(0, nSelS) + sVal.substring(nSelE, sVal.length)).match(/\\n/g),\n\t\tnRowEnd = nSelE + nRowStart + nCols - nSelS,\n\t\tsRow = sVal.substring(nRowStart, nSelS) + sVal.substring(nSelE, nRowEnd > nLen ? nLen : nRowEnd),\n\t\tbKeepCols = nKey === 13 || nLen + 1 < nCols || /\\n/.test(sRow) || ((nRowStart === 0 || nDeltaForw > 0 || nKey > 0) && (sRow.length < nCols || (nKey > 0 && (nLen === nRowEnd || sVal.charAt(nRowEnd) === \"\\n\"))));\n\n\treturn (nKey !== 13 || (aReturns ? aReturns.length + 1 : 1) < nRows) && ((nKey > 32 && nKey < 41) || bKeepCols);\n}\n</script>\n</head>\n\n<body>\n<p>Textarea with fixed number of characters per line:<br />\n<textarea cols=\"50\" rows=\"10\" name=\"myInput\" onkeypress=\"return checkRows(this, event);\" onpaste=\"return false;\" /></textarea></p>\n</form>\n</body>\n</html></pre>"],"summary":"DOM <code>TextArea</code> objects expose the <a title=\"http://dev.w3.org/html5/spec/the-button-element.html#the-textarea-element\" class=\" external\" rel=\"external\" href=\"http://dev.w3.org/html5/spec/the-button-element.html#the-textarea-element\" target=\"_blank\">HTMLTextAreaElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <code><a title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-24874179\" class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-24874179\" target=\"_blank\">HTMLTextAreaElement</a></code>) interface, which provides special properties and methods (beyond the regular <a title=\"en/DOM/element\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea\"><textarea></a></code>\n elements.","members":[{"name":"blur","help":"Removes input focus from this control. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"checkValidity","help":"Returns false if the button is a candidate for constraint validation, and it does not satisfy its constraints. In this case, it also fires an <code>invalid</code> event at the control. It returns true if the control is not a candidate for constraint validation, or if it satisfies its constraints.","obsolete":false},{"name":"focus","help":"Gives input focus to this control. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"select","help":"Selects the contents of the control.","obsolete":false},{"name":"setCustomValidity","help":"Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Input.setSelectionRange","name":"setSelectionRange","help":"Selects a range of text, and sets <code>selectionStart</code> and <code>selectionEnd</code>. If either argument is greater than the length of the value, it is treated as pointing to the end of the value. If <code>end</code> is less than <code>start</code>, then both are treated as the value of <code>end</code>.","obsolete":false},{"name":"accessKey","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-accesskey\">accesskey</a></code>\n HTML attribute. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"autofocus","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-autofocus\">autofocus</a></code>\n HTML attribute, indicating that the control should have input focus when the page loads","obsolete":false},{"name":"cols","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-cols\">cols</a></code>\n HTML attribute, indicating the visible width of the text area.","obsolete":false},{"name":"defaultValue","help":"The control's default value, which behaves like the <strong><a title=\"en/DOM/element.textContent\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node.textContent\">textContent</a></strong> property.","obsolete":false},{"name":"disabled","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-disabled\">disabled</a></code>\n HTML attribute, indicating that the control is not available for interaction.","obsolete":false},{"name":"form","help":"<p>The containing form element, if this element is in a form. If this element is not contained in a form element:</p> <ul> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> this can be the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-id\">id</a></code>\n attribute of any <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element in the same document.</li> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> this must be <code>null</code>.</li> </ul>","obsolete":false},{"name":"labels","help":"A list of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/label\"><label></a></code>\n elements that are labels for this element.","obsolete":false},{"name":"maxLength","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-maxlength\">maxlength</a></code>\n HTML attribute, indicating the maximum number of characters the user can enter. This constraint is evaluated only when the value changes.","obsolete":false},{"name":"name","help":"Reflects \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-name\">name</a></code>\n HTML attribute, containing the name of the control.","obsolete":false},{"name":"placeholder","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-placeholder\">placeholder</a></code>\n HTML attribute, containing a hint to the user about what to enter in the control.","obsolete":false},{"name":"readOnly","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-readonly\">readonly</a></code>\n HTML attribute, indicating that the user cannot modify the value of the control.","obsolete":false},{"name":"required","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-required\">required</a></code>\n HTML attribute, indicating that the user must specify a value before submitting the form.","obsolete":false},{"name":"rows","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-rows\">rows</a></code>\n HTML attribute, indicating the number of visible text lines for the control.","obsolete":false},{"name":"selectionDirection","help":"The direction in which selection occurred. This is \"forward\" if selection was performed in the start-to-end direction of the current locale, or \"backward\" for the opposite direction. This can also be \"none\" if the direction is unknown.\"","obsolete":false},{"name":"selectionEnd","help":"The index of the end of selected text. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> If no text is selected, contains the index of the character that follows the input cursor. On being set, the control behaves as if <strong>setSelectionRange</strong>() had been called with this as the second argument, and <strong>selectionStart</strong> as the first argument.","obsolete":false},{"name":"selectionStart","help":"The index of the beginning of selected text. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> If no text is selected, contains the index of the character that follows the input cursor. On being set, the control behaves as if <strong>setSelectionRange</strong>() had been called with this as the first argument, and <strong>selectionEnd</strong> as the second argument.","obsolete":false},{"name":"tabIndex","help":"The position of the element in the tabbing navigation order for the current document. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"textLength","help":"The codepoint length of the control's value.","obsolete":false},{"name":"type","help":"The string <code>textarea</code>.","obsolete":false},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.","obsolete":false},{"name":"validity","help":"The validity states that this element is in.","obsolete":false},{"name":"value","help":"The raw value contained in the control.","obsolete":false},{"name":"willValidate","help":"Indicates whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation.","obsolete":false},{"name":"wrap","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-wrap\">wrap</a></code>\n HTML attribute, indicating how the control wraps text.","obsolete":false},{"name":"blur","help":"Removes input focus from this control. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"checkValidity","help":"Returns false if the button is a candidate for constraint validation, and it does not satisfy its constraints. In this case, it also fires an <code>invalid</code> event at the control. It returns true if the control is not a candidate for constraint validation, or if it satisfies its constraints.","obsolete":false},{"name":"focus","help":"Gives input focus to this control. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"select","help":"Selects the contents of the control.","obsolete":false},{"name":"setCustomValidity","help":"Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Input.setSelectionRange","name":"setSelectionRange","help":"Selects a range of text, and sets <code>selectionStart</code> and <code>selectionEnd</code>. If either argument is greater than the length of the value, it is treated as pointing to the end of the value. If <code>end</code> is less than <code>start</code>, then both are treated as the value of <code>end</code>.","obsolete":false},{"name":"accessKey","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-accesskey\">accesskey</a></code>\n HTML attribute. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"autofocus","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-autofocus\">autofocus</a></code>\n HTML attribute, indicating that the control should have input focus when the page loads","obsolete":false},{"name":"cols","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-cols\">cols</a></code>\n HTML attribute, indicating the visible width of the text area.","obsolete":false},{"name":"defaultValue","help":"The control's default value, which behaves like the <strong><a title=\"en/DOM/element.textContent\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node.textContent\">textContent</a></strong> property.","obsolete":false},{"name":"disabled","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-disabled\">disabled</a></code>\n HTML attribute, indicating that the control is not available for interaction.","obsolete":false},{"name":"form","help":"<p>The containing form element, if this element is in a form. If this element is not contained in a form element:</p> <ul> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> this can be the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-id\">id</a></code>\n attribute of any <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element in the same document.</li> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> this must be <code>null</code>.</li> </ul>","obsolete":false},{"name":"labels","help":"A list of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/label\"><label></a></code>\n elements that are labels for this element.","obsolete":false},{"name":"maxLength","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-maxlength\">maxlength</a></code>\n HTML attribute, indicating the maximum number of characters the user can enter. This constraint is evaluated only when the value changes.","obsolete":false},{"name":"name","help":"Reflects \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-name\">name</a></code>\n HTML attribute, containing the name of the control.","obsolete":false},{"name":"placeholder","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-placeholder\">placeholder</a></code>\n HTML attribute, containing a hint to the user about what to enter in the control.","obsolete":false},{"name":"readOnly","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-readonly\">readonly</a></code>\n HTML attribute, indicating that the user cannot modify the value of the control.","obsolete":false},{"name":"required","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-required\">required</a></code>\n HTML attribute, indicating that the user must specify a value before submitting the form.","obsolete":false},{"name":"rows","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-rows\">rows</a></code>\n HTML attribute, indicating the number of visible text lines for the control.","obsolete":false},{"name":"selectionDirection","help":"The direction in which selection occurred. This is \"forward\" if selection was performed in the start-to-end direction of the current locale, or \"backward\" for the opposite direction. This can also be \"none\" if the direction is unknown.\"","obsolete":false},{"name":"selectionEnd","help":"The index of the end of selected text. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> If no text is selected, contains the index of the character that follows the input cursor. On being set, the control behaves as if <strong>setSelectionRange</strong>() had been called with this as the second argument, and <strong>selectionStart</strong> as the first argument.","obsolete":false},{"name":"selectionStart","help":"The index of the beginning of selected text. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> If no text is selected, contains the index of the character that follows the input cursor. On being set, the control behaves as if <strong>setSelectionRange</strong>() had been called with this as the first argument, and <strong>selectionEnd</strong> as the second argument.","obsolete":false},{"name":"tabIndex","help":"The position of the element in the tabbing navigation order for the current document. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"textLength","help":"The codepoint length of the control's value.","obsolete":false},{"name":"type","help":"The string <code>textarea</code>.","obsolete":false},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.","obsolete":false},{"name":"validity","help":"The validity states that this element is in.","obsolete":false},{"name":"value","help":"The raw value contained in the control.","obsolete":false},{"name":"willValidate","help":"Indicates whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation.","obsolete":false},{"name":"wrap","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/textarea#attr-wrap\">wrap</a></code>\n HTML attribute, indicating how the control wraps text.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLTextAreaElement"},"HTMLProgressElement":{"title":"progress","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>6.0</td> <td>6.0 (6.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td>11.0</td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td>11.0</td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["<progress value=\"70\" max=\"100\">70 %</progress>"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/progress","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/orient\">orient</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/%3Aindeterminate\">:indeterminate</a></code>\n</li>","summary":"The HTML <em>progress</em> (<code><progress></code>) element is used to view the completion progress of a task. While the specifics of how it's displayed is left up to the browser developer, it's typically displayed as a progress bar.","members":[{"obsolete":false,"url":"","name":"max","help":"This attribute describes how much work the task indicated by the <code>progress</code> element requires."},{"obsolete":false,"url":"","name":"form","help":"This attribute specifies the form which the <code>progress</code> element belongs to."},{"obsolete":false,"url":"","name":"value","help":"<dl><dd>This attribute specifies how much of the task that has been completed. If there is no <code>value</code> attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take.</dd>\n</dl>\n<p>You can use the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/orient\">orient</a></code>\n property to specify whether the progress bar should be rendered horizontally (the default) or vertically. The <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/CSS/%3Aindeterminate\">:indeterminate</a></code>\n pseudo-class can be used to match against indeterminate progress bars.</p>"}]},"Float64Array":{"title":"Float64Array","srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array","seeAlso":"<li><a class=\"link-https\" title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"<p>The <code>Float64Array</code> type represents an array of 64-bit floating point numbers (corresponding to the C <code>double</code> data type).</p>\n<p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p>","constructor":"<div class=\"note\"><strong>Note:</strong> In these methods, <code><em>TypedArray</em></code> represents any of the <a title=\"en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses\">typed array object types</a>.</div>\n<table class=\"standard-table\"> <tbody> <tr> <td><code>Float64Array <a title=\"en/JavaScript typed arrays/Float64Array#Float64Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array#Float64Array%28%29\">Float64Array</a>(unsigned long length);<br> </code></td> </tr> <tr> <td><code>Float64Array </code><code><a title=\"en/JavaScript typed arrays/Float64Array#Float64Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array#Float64Array%28%29\">Float64Array</a></code><code>(<em>TypedArray</em> array);<br> </code></td> </tr> <tr> <td><code>Float64Array </code><code><a title=\"en/JavaScript typed arrays/Float64Array#Float64Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array#Float64Array%28%29\">Float64Array</a></code><code>(sequence<type> array);<br> </code></td> </tr> <tr> <td><code>Float64Array </code><code><a title=\"en/JavaScript typed arrays/Float64Array#Float64Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Float64Array#Float64Array%28%29\">Float64Array</a></code><code>(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);<br> </code></td> </tr> </tbody>\n</table><p>Returns a new <code>Float64Array</code> object.</p>\n<pre>Float64Array Float64Array(\n unsigned long length\n);\n\nFloat64Array Float64Array(\n <em>TypedArray</em> array\n);\n\nFloat64Array Float64Array(\n sequence<type> array\n);\n\nFloat64Array Float64Array(\n ArrayBuffer buffer,\n optional unsigned long byteOffset,\n optional unsigned long length\n);\n</pre>\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>length</code></dt> <dd>The number of elements in the byte array. If unspecified, length of the array view will match the buffer's length.</dd> <dt><code>array</code></dt> <dd>An object of any of the typed array types (such as <span>Uint8</span><code>Array</code>), or a sequence of objects of a particular type, to copy into a new <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>. Each value in the source array is converted to a 64-bit floating point number before being copied into the new array.</dd> <dt><code>buffer</code></dt> <dd>An existing <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> to use as the storage for the new <code>Float64Array</code> object.</dd> <dt><code>byteOffset<br> </code></dt> <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the <code>Float64Array</code>'s view of the buffer will start with the first byte.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>Float64Array</code> object representing the specified data buffer.</p>\n</div>","members":[{"name":"subarray","help":"<p>Returns a new <code>Float64Array</code> view on the <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> store for this <code>Float64Array</code> object.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>begin</code></dt> <dd>The offset to the first element in the array to be referenced by the new <code>Float64Array</code> object.</dd> <dt><code>end</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The offset to the last element in the array to be referenced by the new <code>Float64Array</code> object; if not specified, all elements from the one specified by <code>begin</code> to the end of the array are included in the new view.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Notes_2\"></span><h6 class=\"editable\">Notes</h6>\n<p>The range specified by <code>begin</code> and <code>end</code> is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it's clamped to zero. If either <code>begin</code> or <code>end</code> is negative, it refers to an index from the end of the array instead of from the beginning.</p>\n<div class=\"note\"><strong>Note:</strong> Keep in mind that this is creating a new view on the existing buffer; changes to the new object's contents will impact the original object and vice versa.</div>\n</div>","idl":"<pre>Float64Array subarray(\n long begin,\n optional long end\n);\n</pre>","obsolete":false},{"name":"set","help":"<p>Sets multiple values in the typed array, reading input values from a specified array.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset \n<span title=\"\">Optional</span>\n</dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>\n</dl>\n</div>","idl":"<pre>void set(\n <em>TypedArray</em> array,\n optional unsigned long offset\n);\n\nvoid set(\n type[] array,\n optional unsigned long offset\n);\n</pre>","obsolete":false},{"name":"BYTES_PER_ELEMENT","help":"The size, in bytes, of each array element.","obsolete":false},{"name":"length","help":"The number of entries in the array. <strong>Read only.</strong>","obsolete":false}]},"XMLHttpRequest":{"title":"XMLHttpRequest","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>1</td> <td>1.0</td> <td> <p>5 (via ActiveXObject)</p> <p>7 (XMLHttpRequest)</p> </td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>1.2</td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/XMLHttpRequest","seeAlso":"<li>MDN articles about XMLHttpRequest: <ul> <li><a title=\"en/AJAX/Getting_Started\" rel=\"internal\" href=\"https://developer.mozilla.org/en/AJAX/Getting_Started\">AJAX - Getting Started</a></li> <li><a class=\"internal\" title=\"En/Using XMLHttpRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest\">Using XMLHttpRequest</a></li> <li><a title=\"en/HTML_in_XMLHttpRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML_in_XMLHttpRequest\">HTML in XMLHttpRequest</a></li> <li><a title=\"en/XMLHttpRequest/FormData\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/XMLHttpRequest/FormData\"><code>FormData</code></a></li> </ul> </li> <li>XMLHttpRequest references from W3C and browser vendors: <ul> <li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/XMLHttpRequest/\" title=\"http://www.w3.org/TR/XMLHttpRequest/\" target=\"_blank\">W3C: XMLHttpRequest</a> (base features)</li> <li><a class=\"external\" title=\"http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html\" rel=\"external\" href=\"http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html\" target=\"_blank\">W3C: XMLHttpRequest</a> (latest editor's draft with extensions to the base functionality, formerly <a class=\"external\" title=\"http://www.w3.org/TR/XMLHttpRequest2/\" rel=\"external\" href=\"http://www.w3.org/TR/XMLHttpRequest2/\" target=\"_blank\">XMLHttpRequest Level 2</a>)</li> <li><a class=\"external\" rel=\"external\" href=\"http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/xmobjxmlhttprequest.asp\" title=\"http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/xmobjxmlhttprequest.asp\" target=\"_blank\">Microsoft documentation</a></li> <li><a class=\"external\" rel=\"external\" href=\"http://developer.apple.com/internet/webcontent/xmlhttpreq.html\" title=\"http://developer.apple.com/internet/webcontent/xmlhttpreq.html\" target=\"_blank\">Apple developers' reference</a></li> </ul> </li> <li><a class=\"external\" rel=\"external\" href=\"http://jibbering.com/2002/4/httprequest.html\" title=\"http://jibbering.com/2002/4/httprequest.html\" target=\"_blank\">\"Using the XMLHttpRequest Object\" (jibbering.com)</a></li> <li><a class=\"external\" rel=\"external\" href=\"http://www.peej.co.uk/articles/rich-user-experience.html\" title=\"http://www.peej.co.uk/articles/rich-user-experience.html\" target=\"_blank\">XMLHttpRequest - REST and the Rich User Experience</a></li>","summary":"<p><code>XMLHttpRequest</code> is a <a class=\"internal\" title=\"En/JavaScript\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript\">JavaScript</a> object that was designed by Microsoft and adopted by Mozilla, Apple, and Google. It's now being <a class=\"external\" title=\"http://www.w3.org/TR/XMLHttpRequest/\" rel=\"external\" href=\"http://www.w3.org/TR/XMLHttpRequest/\" target=\"_blank\">standardized in the W3C</a>. It provides an easy way to retrieve data at a URL. Despite its name, <code>XMLHttpRequest</code> can be used to retrieve any type of data, not just XML, and it supports protocols other than <a title=\"en/HTTP\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTTP\">HTTP</a> (including <code>file</code> and <code>ftp</code>).</p>\n<p>To create an instance of <code>XMLHttpRequest</code>, simply do this:</p>\n<pre>var req = new XMLHttpRequest();\n</pre>\n<p>For details about how to use <code>XMLHttpRequest</code>, see <a class=\"internal\" title=\"En/Using XMLHttpRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest\">Using XMLHttpRequest</a>.</p>","members":[{"name":"sendAsBinary","help":"<div id=\"section_12\"><p><span title=\"(Firefox 3)\n\">Requires Gecko 1.9</span>\n</p>\n<p>A variant of the <code>send()</code>method that sends binary data.</p>\n\n</div><div id=\"section_13\"><span id=\"Parameters_4\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>body</code></dt> <dd>The request body as a DOMstring. This data is converted to a string of single-byte characters by truncation (removing the high-order byte of each character).</dd>\n</dl>\n</div>","idl":"<pre>void sendAsBinary(\n in DOMString body\n);\n</pre>","obsolete":false},{"name":"send","help":"<p>Sends the request. If the request is asynchronous (which is the default), this method returns as soon as the request is sent. If the request is synchronous, this method doesn't return until the response has arrived.</p>\n<div class=\"note\"><strong>Note:</strong> Any event listeners you wish to set must be set before calling <code>send()</code>.</div>\n\n<div id=\"section_11\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>body</code></dt> <dd>This may be an <code>nsIDocument</code>, <code>nsIInputStream</code>, or a string (an <code>nsISupportsString</code> if called from native code) that is used to populate the body of a POST request. Starting with Gecko 1.9.2, you may also specify an DOM<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n , and starting with Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n you may also specify a <a title=\"en/XMLHttpRequest/FormData\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/XMLHttpRequest/FormData\"><code>FormData</code></a> object.</dd>\n</dl>\n</div>","idl":"<pre>void send(\n [optional] in nsIVariant body\n);\n</pre>","obsolete":false},{"name":"getResponseHeader","help":"Returns the string containing the text of the specified header, or <code>null</code> if either the response has not yet been received or the header doesn't exist in the response.","idl":"<pre>ACString getResponseHeader(\n in AUTF8String header\n);\n</pre>","obsolete":false},{"name":"setRequestHeader","help":"<p>Sets the value of an HTTP request header.You must call <a class=\"internal\" title=\"/en/XMLHttpRequest#open()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/nsIXMLHttpRequest#open()\"><code>open()</code></a>before using this method.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_5\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>header</code></dt> <dd>The name of the header whose value is to be set.</dd> <dt><code>value</code></dt> <dd>The value to set as the body of the header.</dd>\n</dl>\n</div>","idl":"<pre>void setRequestHeader(\n in AUTF8String header,\n in AUTF8String value\n);\n</pre>","obsolete":false},{"name":"init","help":"<p>Initializes the object for use from C++code.</p>\n<div class=\"warning\"><strong>Warning:</strong> This method must <em>not</em> be called from JavaScript.</div>\n\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>principal</code></dt> <dd>The principal to use for the request; must not be <code>null</code>.</dd> <dt><code>scriptContext</code></dt> <dd>The script context to use for the request; must not be <code>null</code>.</dd> <dt><code>ownerWindow</code></dt> <dd>The window associated with the request; may be <code>null</code>.</dd>\n</dl>\n</div>","idl":"<pre>[noscript] void init(\n in nsIPrincipal principal,\n in nsIScriptContext scriptContext,\n in nsPIDOMWindow ownerWindow\n);\n</pre>","obsolete":false},{"name":"open","help":"<p>Initializes a request. This method is to be used from JavaScript code; to initialize a request from native code, use <a class=\"internal\" title=\"/en/XMLHttpRequest#openRequest()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/nsIXMLHttpRequest#openRequest()\"><code>openRequest()</code></a>instead.</p>\n<div class=\"note\"><strong>Note:</strong> Calling this method an already active request (one for which <code>open()</code>or <code>openRequest()</code>has already been called) is the equivalent of calling <code>abort()</code>.</div>\n\n<div id=\"section_9\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>method</code></dt> <dd>The HTTP method to use; either \"POST\" or \"GET\". Ignored for non-HTTP(S) URLs.</dd> <dt><code>url</code></dt> <dd>The URL to which to send the request.</dd> <dt><code>async</code></dt> <dd>An optional boolean parameter, defaulting to <code>true</code>, indicating whether or not to perform the operation asynchronously. If this value is <code>false</code>, the <code>send()</code>method does not return until the response is received. If <code>true</code>, notification of a completed transaction is provided using event listeners. This <em>must</em> be true if the <code>multipart</code> attribute is <code>true</code>, or an exception will be thrown.</dd> <dt><code>user</code></dt> <dd>The optional user name to use for authentication purposes; by default, this is an empty string.</dd> <dt><code>password</code></dt> <dd>The optional password to use for authentication purposes; by default, this is an empty string.</dd>\n</dl>\n<p></p></div>","idl":"<pre>void open(\n in AUTF8String method,\n in AUTF8String url,\n [optional] in boolean async,\n [optional] in AString user,\n [optional] in AString password\n);\n</pre>","obsolete":false},{"name":"openRequest","help":"Initializes a request. This method is to be used from native code; to initialize a request from JavaScript code, use <a class=\"internal\" title=\"/en/XMLHttpRequest#open()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/nsIXMLHttpRequest#open()\"><code>open()</code></a>instead. See the documentation for <code>open()</code>.","obsolete":false},{"name":"abort","help":"Aborts the request if it has already been sent.","obsolete":false},{"name":"overrideMimeType","help":"Overrides the MIME type returned by the server. This may be used, for example, to force a stream to be treated and parsed as text/xml, even if the server does not report it as such.This method must be called before <code>send()</code>.","idl":"<pre>void overrideMimeType(\n in AUTF8String mimetype\n);\n</pre>","obsolete":false},{"name":"getAllResponseHeaders","help":"<pre>string getAllResponseHeaders();\n</pre>\n<p>Returns all the response headers as a string, or <code>null</code> if no response has been received.<strong> Note:</strong> For multipart requests, this returns the headers from the <em>current</em> part of the request, not from the original channel.</p>","obsolete":false},{"name":"channel","help":"The channel used by the object when performing the request. This is <code>null</code> if the channel hasn't been created yet. In the case of a multi-part request, this is the initial channel, not the different parts in the multi-part request. <strong>Requires elevated privileges to access; read-only.</strong>","obsolete":false},{"name":"webkitBackgroundRequest","help":"<p>Indicates whether or not the object represents a background service request. If <code>true</code>, no load group is associated with the request, and security dialogs are prevented from being shown to the user. <strong>Requires elevated privileges to access.</strong></p> <p>In cases in which a security dialog (such as authentication or a bad certificate notification) would normally be shown, the request simply fails instead.</p>","obsolete":false},{"name":"webkitResponseArrayBuffer","help":"The response to the request, as a JavaScript typed array. This is NULL if the request was not successful, or if it hasn't been sent yet. <strong>Read only.</strong>","obsolete":true},{"name":"multipart","help":"<p>Indicates whether or not the response is expected to be a stream of possibly multiple XML documents. If set to <code>true</code>, the content type of the initial response must be <code>multipart/x-mixed-replace</code> or an error will occur. All requests must be asynchronous.</p> <p>This enables support for server push; for each XML document that's written to this request, a new XML DOM document is created and the <code>onload</code> handler is called between documents.</p> <div class=\"note\"><strong>Note:</strong> When this is set, the <code>onload</code> handler and other event handlers are not reset after the first XMLdocument is loaded, and the <code>onload</code> handler is called after each part of the response is received.</div>","obsolete":false},{"name":"readyState","help":"<p>The state of the request:</p> <table class=\"standard-table\"> <tbody> <tr> <td class=\"header\">Value</td> <td class=\"header\">State</td> <td class=\"header\">Description</td> </tr> <tr> <td><code>0</code></td> <td><code>UNSENT</code></td> <td><code>open()</code>has not been called yet.</td> </tr> <tr> <td><code>1</code></td> <td><code>OPENED</code></td> <td><code>send()</code>has not been called yet.</td> </tr> <tr> <td><code>2</code></td> <td><code>HEADERS_RECEIVED</code></td> <td><code>send()</code> has been called, and headers and status are available.</td> </tr> <tr> <td><code>3</code></td> <td><code>LOADING</code></td> <td>Downloading; <code>responseText</code> holds partial data.</td> </tr> <tr> <td><code>4</code></td> <td><code>DONE</code></td> <td>The operation is complete.</td> </tr> </tbody> </table>","obsolete":false},{"name":"response","help":"The response entity body according to <code><a href=\"#responseType\">responseType</a></code>, as an <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>, <a title=\"en/DOM/Blob\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Blob\"><code>Blob</code></a>, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Document\">Document</a></code>\n, JavaScript object (for \"moz-json\"), or string. This is <code>NULL</code> if the request is not complete or was not successful.","obsolete":false},{"name":"responseText","help":"The response to the request as text, or <code>null</code> if the request was unsuccessful or has not yet been sent. <strong>Read-only.</strong>","obsolete":false},{"name":"responseType","help":"<p>Can be set to change the response type. This tells the server what format you want the response to be in.</p> <table class=\"standard-table\"> <tbody> <tr> <td class=\"header\">Value</td> <td class=\"header\">Data type of <code>response</code> property</td> </tr> <tr> <td><em>empty string</em></td> <td>String (this is the default)</td> </tr> <tr> <td>\"arraybuffer\"</td> <td><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a></td> </tr> <tr> <td>\"blob\"</td> <td><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n</td> </tr> <tr> <td>\"document\"</td> <td><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Document\">Document</a></code>\n</td> </tr> <tr> <td>\"text\"</td> <td>String</td> </tr> <tr> <td>\"moz-json\"</td> <td>JavaScript object, parsed from a JSON string returned by the server \n<span title=\"(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)\n\">Requires Gecko 9.0</span>\n</td> </tr> </tbody> </table>","obsolete":false},{"name":"responseXML","help":"<p>The response to the request as a DOM <code><a class=\"internal\" title=\"En/DOM/Document\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document\">Document</a></code> object, or <code>null</code> if the request was unsuccessful, has not yet been sent, or cannot be parsed as XML. The response is parsed as if it were a <code>text/xml</code> stream. <strong>Read-only.</strong></p> <div class=\"note\"><strong>Note:</strong> If the server doesn't apply the <code>text/xml</code> Content-Type header, you can use <code>overrideMimeType()</code>to force <code>XMLHttpRequest</code> to parse it as XML anyway.</div>","obsolete":false},{"name":"status","help":"The status of the response to the request. This is the HTTP result code (for example, <code>status</code> is 200 for a successful request). <strong>Read-only.</strong>","obsolete":false},{"name":"statusText","help":"The response string returned by the HTTP server. Unlike <code>status</code>, this includes the entire text of the response message (\"<code>200 OK</code>\", for example). <strong>Read-only.</strong>","obsolete":false},{"name":"upload","help":"The upload process can be tracked by adding an event listener to <code>upload</code>. \n<span>New in <a rel=\"custom\" href=\"https://developer.mozilla.org/en/Firefox_3.5_for_developers\">Firefox 3.5</a></span>","obsolete":false},{"name":"withCredentials","help":"<p>Indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies or authorization headers. \n<span>New in <a rel=\"custom\" href=\"https://developer.mozilla.org/en/Firefox_3.5_for_developers\">Firefox 3.5</a></span>\n</p> <div class=\"note\"><strong>Note:</strong> This never affects same-site requests.</div> <p>The default is <code>false</code>.</p>","obsolete":false},{"name":"UNSENT","help":"<code>open()</code>has not been called yet.","obsolete":false},{"name":"OPENED","help":"<code>send()</code>has not been called yet.","obsolete":false},{"name":"HEADERS_RECEIVED","help":"<code>send()</code> has been called, and headers and status are available.","obsolete":false},{"name":"LOADING","help":"Downloading; <code>responseText</code> holds partial data.","obsolete":false},{"name":"DONE","help":"The operation is complete.","obsolete":false},{"name":"empty","help":"","obsolete":false}]},"SVGCircleElement":{"title":"SVGCircleElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/SVGCircleElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/circle\"><circle></a></code>\n SVG Element","summary":"The <code>SVGCircleElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/circle\"><circle></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"cx","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/cx\">cx</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/circle\"><circle></a></code>\n element.","obsolete":false},{"name":"cy","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/cy\">cy</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/circle\"><circle></a></code>\n element.","obsolete":false}]},"IDBObjectStore":{"title":"IDBObjectStore","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>12</td> <td>4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>count()</code></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>10.0 (10.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>count()</code></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"The <code>IDBObjectStore</code> interface of the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API</a> represents an <a title=\"en/IndexedDB#gloss object store\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_object_store\">object store</a> in a database. Records within an object store are sorted according to their keys. This sorting enable fast insertion, look-up, and ordered retrieval. ","members":[{"name":"unique","help":"If true, the index will not allow duplicate values for a single key.","obsolete":false},{"name":"multientry","help":"If true, the index will add an entry in the index for each array element when the <em>keypath</em> resolves to an Array. If false, it will add one single entry containing the Array.","obsolete":false},{"name":"add","help":"<p>Returns an <a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and, in a separate thread, creates a <a class=\"external\" title=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#structured-clone\" rel=\"external\" href=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#structured-clone\" target=\"_blank\">structured clone</a> of the <code>value</code>, and stores the cloned value in the object store. If the record is successfully stored, then a success event is fired on the returned request object, using the <a title=\"en/IndexedDB/IDBTransactionEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransactionEvent\">IDBTransactionEvent</a> interface, with the <code><a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a></code> set to the key for the stored record, and <code><a title=\"en/IndexedDB/IDBTransactionEvent#attr transaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransactionEvent#attr_transaction\">transaction</a></code> set to the transaction in which this object store is opened. If a record already exists in the object store with the <code>key</code> parameter as its key, then an error event is fired on the returned request object, with <a title=\"en/IndexedDB/IDBErrorEvent#attr code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_code\">code</a> set to <code><a title=\"en/IndexedDB/DatabaseException#CONSTRAINT ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#CONSTRAINT_ERR\">CONSTRAINT_ERR</a></code>.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>value</dt> <dd>The value to be stored.</dd> <dt>key</dt> <dd>The key to use to identify the record. If unspecified, it results to null.</dd>\n</dl>\n</div><div id=\"section_6\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_7\"><span id=\"Exceptions\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#DATA ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></dt> <dd>If the object store uses in-line keys or has a key generator, and a key parameter was provided.<br> If the object store uses out-of-line keys and has no key generator, and no key parameter was provided.<br> If the object store uses in-line keys but no key generator, and the object store's key path does not yield a valid key.<br> If the key parameter was provided but does not contain a valid key.<br> If there are indexed on this object store, and using their key path on the value parameter yields a value that is not a valid key.</dd> <dt><code><a title=\"en/IndexedDB/IDBDatabaseException#READ ONLY ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#READ_ONLY_ERR\">READ_ONLY_ERR</a></code></dt> <dd>If the mode of the associated transaction is <code><a title=\"en/IndexedDB/IDBTransaction#READ ONLY\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#READ_ONLY\">READ_ONLY</a></code>.</dd> <dt><code><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\">TRANSACTION_INACTIVE_ERR</a></code></dt> <dd>If the associated transaction is not active.</dd>\n</dl>\n<p>This method can raise a <a title=\"en/DOM/DOMException\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMException\">DOMException</a> with the following code:</p>\n<dl> <dt><code>DATA_CLONE_ERR</code></dt> <dd>If the data being stored could not be cloned by the internal structured cloning algorithm.</dd>\n</dl>\n<dl>\n</dl>\n</div>","idl":"<pre>IDBRequest add(\n in any value,\n in optional any key\n) raises (IDBDatabaseException, DOMException);\n</pre>","obsolete":false},{"name":"put","help":"<p>Returns an <a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and, in a separate thread, creates a <a class=\"external\" title=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#structured-clone\" rel=\"external\" href=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#structured-clone\" target=\"_blank\">structured clone</a> of the <code>value</code>, and stores the cloned value in the object store. If the record is successfully stored, then a success event is fired on the returned request object, using the <a title=\"en/IndexedDB/IDBTransactionEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransactionEvent\">IDBTransactionEvent</a> interface, with the <code><a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a></code> set to the key for the stored record, and <code><a title=\"en/IndexedDB/IDBTransactionEvent#attr transaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransactionEvent#attr_transaction\">transaction</a></code> set to the transaction in which this object store is opened.</p>\n\n<div id=\"section_39\"><span id=\"Parameters_9\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>value</dt> <dd>The value to be stored.</dd> <dt>key</dt> <dd>The key to use to identify the record. If unspecified, it results to null.</dd>\n</dl>\n</div><div id=\"section_40\"><span id=\"Returns_9\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt>IDBRequest</dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_41\"><span id=\"Exceptions_10\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<dl> <li> <ul> <li>If this object store uses <a title=\"en/IndexedDB#gloss out-of-line key\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_out-of-line_key\">out-of-line keys</a> and does not use a <a title=\"en/IndexedDB#gloss key generator\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_key_generator\">key generator</a>, but the <code>key</code> parameter was not passed</li> <li>If the object store uses <a title=\"en/IndexedDB#gloss in-line key\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_in-line_key\">in-line keys</a>, but the <code>value</code> object does not have a property identified by the object store's key path.</li> </ul> </li> <dt><code><a title=\"en/IndexedDB/DatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></dt> <dd>If the object store is not in the <a title=\"en/IndexedDB#gloss scope\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_scope\">scope</a> of any existing <a title=\"en/IndexedDB#gloss transaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_transaction\">transaction</a>, or if the associated transaction's mode is <a title=\"en/IndexedDB/IDBTransaction#const read only\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#const_read_only\"><code>READ_ONLY</code></a> or <a title=\"en/IndexedDB/IDBTransaction#const snapshot read\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#const_snapshot_read\"><code>SNAPSHOT_READ</code></a>.</dd> <dt><code><a title=\"en/IndexedDB/IDBDatabaseException#SERIAL ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#SERIAL_ERR\">SERIAL_ERR</a></code></dt> <dd>If the data being stored could not be serialized by the internal structured cloning algorithm.</dd>\n</dl>\n<p>This method can raise a <a title=\"en/DOM/DOMException\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMException\">DOMException</a> with the following code:</p>\n<dl> <dt><code>DATA_CLONE_ERR</code></dt> <dd>If the data being stored could not be cloned by the internal structured cloning algorithm.</dd>\n</dl>\n</div>","idl":"<pre>IDBRequest put(\n in any value,\n in optional any key\n) raises (IDBDatabaseException, DOMException);\n</pre>","obsolete":false},{"name":"createIndex","help":"<p>Creates and returns a new index in the connected database. Note that this method must be called only from a <a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\"><code>VERSION_CHANGE</code></a> transaction callback.</p>\n<pre>IDBIndex createIndex (\n in DOMString name, \n in DOMString keyPath, \n in Object optionalParameters\n) raises (IDBDatabaseException);\n\n</pre>\n<div id=\"section_16\"><span id=\"Parameters_3\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>name</dt> <dd>The name of the index to create.</dd> <dt>keyPath</dt> <dd>The key path for the index to use.</dd> <dt>optionalParameters</dt> <dd> <div class=\"warning\"><strong>Warning:</strong> The latest draft of the specification changed this to <code>IDBIndexParameters</code>, which is not yet recognized by any browser</div> <p>Options object whose attributes are optional parameters to the method. It includes the following properties:</p> <table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Attribute</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code>unique</code></td> <td>If true, the index will not allow duplicate values for a single key.</td> </tr> <tr> <td><code>multientry</code></td> <td>If true, the index will add an entry in the index for each array element when the <em>keypath</em> resolves to an Array. If false, it will add one single entry containing the Array.</td> </tr> </tbody> </table> <p>Unknown parameters are ignored.</p> </dd> <dd></dd>\n</dl>\n</div><div id=\"section_17\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><a title=\"en/IndexedDB/IDBIndex\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex\">IDBIndex</a></dt> <dd>The newly created index.</dd>\n</dl>\n</div><div id=\"section_18\"><span id=\"Exceptions_4\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#CONSTRAINT ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#CONSTRAINT_ERR\">CONSTRAINT_ERR</a></code></dt> <dd>If an index with the same name (based on case-sensitive comparison) already exists in the connected database.</dd> <dt><code><a title=\"en/IndexedDB/DatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></dt> <dd>If this method was not called from a <a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\"><code>VERSION_CHANGE</code></a> transaction callback.</dd>\n</dl></div>","obsolete":false},{"name":"index","help":"<p>Opens the named index in this object store.</p>\n\n<div id=\"section_31\"><span id=\"Parameters_7\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>name</dt> <dd>The name of the index to open.</dd>\n</dl>\n</div><div id=\"section_32\"><span id=\"Returns_7\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBIndex\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex\">IDBIndex</a></code></dt> <dd>An object for accessing the index.</dd>\n</dl>\n</div><div id=\"section_33\"><span id=\"Exceptions_8\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_FOUND_ERR</a></code></dt> <dd>If no index exists with the specified name (based on case-sensitive comparison) in the connected database.</dd>\n</dl>\n</div>","idl":"<pre>IDBIndex index(\n in DOMString name\n) raises (IDBDatabaseException);\n</pre>","obsolete":false},{"name":"clear","help":"<p>If the mode of the transaction that this object store belongs to is <code><a title=\"en/IndexedDB/IDBTransaction#READ ONLY\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#READ_ONLY\">READ_ONLY</a></code>, this method raises an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with its code set to <code><a title=\"en/IndexedDB/IDBDatabaseException#READ ONLY ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#READ_ONLY_ERR\">READ_ONLY_ERR</a></code>. Otherwise, this method creates and immediately returns an <a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and clears this object store in a separate thread. Clearing an object store consists of removing all records from the object store and removing all records in indexes that reference the object store.</p>\n\n<div id=\"section_9\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_10\"><span id=\"Exceptions_2\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<dl> <dt><a title=\"en/IndexedDB/IDBDatabaseException#READ ONLY ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#READ_ONLY_ERR\"><code>READ_ONLY_ERR</code></a></dt> <dd>If the mode of the transaction that this object store belongs to is READ_ONLY.</dd> <dt><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\"><code>TRANSACTION_INACTIVE_ERR</code></a></dt> <dd>If the transaction that this object store belongs to is not active.</dd>\n</dl></div>","idl":"<pre>IDBRequest clear(\n) raises (IDBDatabaseException); \n</pre>","obsolete":false},{"name":"openCursor","help":"<p>Immediately returns an <a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and creates a <a title=\"en/IndexedDB#gloss cursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_cursor\">cursor</a> over the records in this object store, in a separate thread. If there is even a single record that matches the <a title=\"en/IndexedDB#gloss key range\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_key_range\">key range</a>, then a success event is fired on the returned object, with its <code><a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a></code> set to the <a title=\"en/IndexedDB/IDBCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBCursor\">IDBCursor</a> object for the new cursor. If no records match the key range, then a success event is fired on the returned object, with its <code><a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a></code> set to null.</p>\n<pre>IDBRequest openCursor (\n in optional IDBKeyRange range, \n in optional unsigned short direction\n) raises (IDBDatabaseException);\n</pre>\n<div id=\"section_35\"><span id=\"Parameters_8\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>range</dt> <dd>The key range to use as the cursor's range. If this parameter is unspecified or null, then the range includes all the records in the object store.</dd> <dt>direction</dt> <dd>The cursor's <a title=\"en/IndexedDB#gloss direction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_direction\">direction</a>.</dd>\n</dl>\n</div><div id=\"section_36\"><span id=\"Returns_8\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></code></dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_37\"><span id=\"Exceptions_9\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an IDBDatabaseException with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></dt> <dd>If this object store is not in the scope of any existing transaction on the connected database.</dd>\n</dl>\n</div>","obsolete":false},{"name":"get","help":"<p>Immediately returns an <a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object, and retrieves the requested record from the object store in a separate thread. If the operation is successful, then a success event is fired on the returned object, using the <a title=\"en/IndexedDB/IDBTransactionEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransactionEvent\">IDBTransactionEvent</a> interface, with its <code><a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a></code> set to the retrieved value, and <code><a title=\"en/IndexedDB/IDBTransactionEvent#attr transaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransactionEvent#attr_transaction\">transaction</a></code> set to the transaction in which this object store is opened. If a record does not exist in the object store for the key parameter, then an error event is fired on the returned object, with its <code><a title=\"en/IndexedDB/IDBErrorEvent#attr code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_code\">code</a></code> set to <code><a title=\"en/IndexedDB/IDBDatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_FOUND_ERR</a></code> and an appropriate <code><a title=\"en/IndexedDB/IDBErrorEvent#attr message\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_message\">message</a></code>.</p>\n<p></p><div class=\"note\"><strong>Note:</strong> This function produces the same result if no record with the given key exists in the database as when a record exists, but with an undefined value. To tell these situations apart, call the openCursor() method with the same key. That method provides a cursor if the record exists, and not if it does not.</div>\n<p></p>\n\n<div id=\"section_27\"><span id=\"Parameters_6\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>key</dt> <dd>The key identifying the record to retrieve.</dd>\n</dl>\n</div><div id=\"section_28\"><span id=\"Returns_6\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></code></dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_29\"><span id=\"Exceptions_7\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBDatabaseException#DATA ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></dt> <dd>If the <code>key</code> parameter was not a valid value.</dd> <dt><code><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\">TRANSACTION_INACTIVE_ERR</a></code></dt> <dd>If the associated transaction is not active.</dd>\n</dl>\n</div>","idl":"<pre>IDBRequest get(\n in any key\n) raises (IDBDatabaseException);\n</pre>","obsolete":false},{"name":"delete","help":"<p>Immediately returns an <code><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></code> object, and removes the record specified by the given key from this object store, and any indexes that reference it, in a separate thread. If no record exists in this object store corresponding to the key, an error event is fired on the returned request object, with its <code><a title=\"en/IndexedDB/IDBErrorEvent#attr code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_code\">code</a></code> set to <code><a title=\"en/IndexedDB/IDBDatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_FOUND_ERR</a></code> and an appropriate <code><a title=\"en/IndexedDB/IDBErrorEvent#attr message\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBErrorEvent#attr_message\">message</a></code>. If the record is successfully removed, then a success event is fired on the returned request object, using the <code><a title=\"en/IndexedDB/IDBTransactionEvent\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransactionEvent\">IDBTransactionEvent</a></code> interface, with the <code><a title=\"en/IndexedDB/IDBSuccessEvent#attr result\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBSuccessEvent#attr_result\">result</a></code> set to <code>undefined</code>, and <a title=\"en/IndexedDB/IDBTransactionEvent#attr transaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransactionEvent#attr_transaction\">transaction</a> set to the transaction in which this object store is opened.</p>\n<pre>IDBRequest delete (\n in any key\n) raises (IDBDatabaseException); \n</pre>\n<div id=\"section_20\"><span id=\"Parameters_4\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>key</dt> <dd>The key to use to identify the record.</dd>\n</dl>\n</div><div id=\"section_21\"><span id=\"Returns_5\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_22\"><span id=\"Exceptions_5\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p></div>","obsolete":false},{"name":"deleteIndex","help":"<p>Destroys the index with the specified name in the connected database. Note that this method must be called only from a <code><a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a></code> transaction callback.</p>\n<pre>void removeIndex(\n in DOMString indexName\n) raises (IDBDatabaseException); \n</pre>\n<div id=\"section_24\"><span id=\"Parameters_5\"></span><h5 class=\"editable\">Parameters</h5>\n<p> </p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></dt> <dd>If the object store is not in the <a title=\"en/IndexedDB#gloss scope\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_scope\">scope</a> of any existing <a title=\"en/IndexedDB#gloss transaction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_transaction\">transaction</a>, or if the associated transaction's mode is <a title=\"en/IndexedDB/IDBTransaction#const read only\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#const_read_only\"><code>READ_ONLY</code></a> or <a title=\"en/IndexedDB/IDBTransaction#const snapshot read\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#const_snapshot_read\"><code>SNAPSHOT_READ</code></a>.</dd> <dt><code><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\">TRANSACTION_INACTIVE_ERR</a></code></dt> <dd>If the associated transaction is not active.</dd> <dt>indexName</dt> <dd>The name of the existing index to remove.</dd>\n</dl>\n</div><div id=\"section_25\"><span id=\"Exceptions_6\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<dl> <dt><code><a title=\"en/IndexedDB/DatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></dt> <dd>If this method was not called from a <a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a> transaction callback.</dd> <dt><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT FOUND ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_FOUND_ERR\">NOT_FOUND_ERR</a></code></dt> <dd>If no index exists with the specified name (based on case-sensitive comparison) in the connected database.</dd>\n</dl>\n</div>","obsolete":false},{"name":"count","help":"<p>Immediately returns an <a title=\"IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a> object and asynchronously count the amount of objects in the object store that match the parameter, a key or a key range. If the parameter is not valid returns an exception.</p>\n\n<div id=\"section_12\"><span id=\"Parameters_2\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>key</dt> <dd>The key or key range that identifies the records to be counted.</dd>\n</dl>\n</div><div id=\"section_13\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_14\"><span id=\"Exceptions_3\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<dl> <dt><code><a href=\"IDBDatabaseException#DATA_ERR\" rel=\"internal\" title=\"en/IndexedDB/DatabaseException#DATA ERR\">DATA_ERR</a></code></dt> <dd>If the object store uses in-line keys or has a key generator, and a key parameter was provided.<br> If the object store uses out-of-line keys and has no key generator, and no key parameter was provided.<br> If the object store uses in-line keys but no key generator, and the object store's key path does not yield a valid key.<br> If the key parameter was provided but does not contain a valid key.<br> If there are indexed on this object store, and using their key path on the value parameter yields a value that is not a valid key.</dd> <dt><code><a href=\"IDBDatabaseException#NOT_ALLOWED_ERR\" rel=\"internal\" title=\"en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></dt> <dd>The request was made on a source object that has been deleted or removed.</dd>\n</dl></div>","idl":"<pre>IDBRequest count(\n in option any key\n) raises (IDBDatabaseException);\n</pre>","obsolete":false},{"url":"","name":"indexNames","help":"A list of the names of <a title=\"en/IndexedDB#gloss index\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_index\">indexes</a> on objects in this object store.","obsolete":false},{"url":"","name":"keyPath","help":"The <a title=\"en/IndexedDB#gloss key path\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB#gloss_key_path\">key path</a> of this object store. If this attribute is null, the application must provide a key for each modification operation.","obsolete":false},{"url":"","name":"name","help":"The name of this object store.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBObjectStore"},"SVGFEMergeElement":{"title":"feMerge","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMergeNode\"><feMergeNode></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The feMerge filter allows filter effects to be applied concurrently instead of sequentially. This is achieved by other filters storing their output via the \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/result\" class=\"new\">result</a></code> attribute and then accessing it in a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMergeNode\"><feMergeNode></a></code>\n child.","members":[],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feMerge"},"CDATASection":{"title":"CDATASection","summary":"<p>A CDATA Section can be used within XML to include extended portions of unescaped text, such that the symbols < and & do not need escaping as they normally do within XML when used as text.</p>\n<p>It takes the form:</p>\n<pre class=\"eval\"><![CDATA[ ... ]]>\n</pre>\n<p>For example:</p>\n<pre class=\"eval\"><foo>Here is a CDATA section: <![CDATA[ < > & ]]> with all kinds of unescaped text. </foo>\n</pre>\n<p>The only sequence which is not allowed within a CDATA section is the closing sequence of a CDATA section itself:</p>\n<pre class=\"eval\"><![CDATA[ ]]> will cause an error ]]>\n</pre>\n<p>Note that CDATA sections should not be used (without hiding) within HTML.</p>\n<p>As a CDATASection has no properties or methods unique to itself and only directly implements the Text interface, one can refer to <a title=\"En/DOM/Text\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Text\">Text</a> to find its properties and methods.</p>","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/CDATASection","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...l#ID-667469212"},"Node":{"title":"Node","summary":"A <code>Node</code> is an interface from which a number of DOM types inherit, and allows these various types to be treated (or tested) similarly.<br> The following all inherit this interface and its methods and properties (though they may return null in particular cases where not relevant; or throw an exception when adding children to a node type for which no children can exist): <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Document\">Document</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Element\">Element</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Attr\">Attr</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/CharacterData\">CharacterData</a></code>\n (which <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Text\">Text</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Comment\">Comment</a></code>\n, and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/CDATASection\">CDATASection</a></code>\n inherit), <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/ProcessingInstruction\">ProcessingInstruction</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DocumentFragment\">DocumentFragment</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DocumentType\">DocumentType</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Notation\">Notation</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Entity\">Entity</a></code>\n, <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/EntityReference\">EntityReference</a></code>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.isDefaultNamespace","name":"isDefaultNamespace","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.appendChild","name":"appendChild","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.isSupported","name":"isSupported","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.contains","name":"contains","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.compareDocumentPosition","name":"compareDocumentPosition","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.isEqualNode","name":"isEqualNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.removeChild","name":"removeChild","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.setUserData","name":"setUserData","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.hasChildNodes","name":"hasChildNodes","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.hasAttributes","name":"hasAttributes","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.isSameNode","name":"isSameNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.cloneNode","name":"cloneNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.lookupNamespaceURI","name":"lookupNamespaceURI","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/Article_not_found?uri=en/DOM/Node.getFeature","name":"getFeature","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.normalize","name":"normalize","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.getUserData","name":"getUserData","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.replaceChild","name":"replaceChild","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.insertBefore","name":"insertBefore","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.lookupPrefix","name":"lookupPrefix","help":""},{"name":"ELEMENT_NODE","help":"","obsolete":false},{"name":"ATTRIBUTE_NODE","help":"","obsolete":false},{"name":"TEXT_NODE","help":"","obsolete":false},{"name":"DATA_SECTION_NODE","help":"","obsolete":false},{"name":"ENTITY_REFERENCE_NODE","help":"","obsolete":false},{"name":"ENTITY_NODE","help":"","obsolete":false},{"name":"PROCESSING_INSTRUCTION_NODE","help":"","obsolete":false},{"name":"COMMENT_NODE","help":"","obsolete":false},{"name":"DOCUMENT_NODE","help":"","obsolete":false},{"name":"DOCUMENT_TYPE_NODE","help":"","obsolete":false},{"name":"DOCUMENT_FRAGMENT_NODE","help":"","obsolete":false},{"name":"NOTATION_NODE","help":"","obsolete":false},{"name":"DOCUMENT_POSITION_DISCONNECTED","help":"","obsolete":false},{"name":"DOCUMENT_POSITION_PRECEDING","help":"","obsolete":false},{"name":"DOCUMENT_POSITION_FOLLOWING","help":"","obsolete":false},{"name":"DOCUMENT_POSITION_CONTAINS","help":"","obsolete":false},{"name":"DOCUMENT_POSITION_CONTAINED_BY","help":"","obsolete":false},{"name":"DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC","help":"","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.previousSibling","name":"previousSibling","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.textContent","name":"textContent","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.firstChild","name":"firstChild","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.nodeType","name":"nodeType","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.prefix","name":"prefix","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.parentNode","name":"parentNode","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.nextSibling","name":"nextSibling","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.baseURI","name":"baseURI","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.childNodes","name":"childNodes","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.namespaceURI","name":"namespaceURI","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.lastChild","name":"lastChild","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.parentElement","name":"parentElement","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.nodePrincipal","name":"nodePrincipal","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.attributes","name":"attributes","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.nodeValue","name":"nodeValue","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.nodeName","name":"nodeName","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.ownerDocument","name":"ownerDocument","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/Node.localName","name":"localName","help":""}],"srcUrl":"https://developer.mozilla.org/en/DOM/Node","specification":"<li><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1950641247\" title=\"http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1950641247\" target=\"_blank\">DOM Level 1 Core: Node interface</a></li> <li><a class=\"external\" title=\"http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1950641247\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1950641247\" target=\"_blank\">DOM Level 2 Core: Node interface</a></li> <li><a class=\"external\" title=\"http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1950641247\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1950641247\" target=\"_blank\">DOM Level 3 Core: Node interface</a></li>"},"File":{"title":"File","srcUrl":"https://developer.mozilla.org/en/DOM/File","specification":"<a title=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/number-state.html#concept-input-type-file-selected\" class=\" external\" rel=\"external\" href=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/number-state.html#concept-input-type-file-selected\" target=\"_blank\">File upload state</a> (HTML 5 working draft)","seeAlso":"<li><a title=\"en/Using files from web applications\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Using_files_from_web_applications\">Using files from web applications</a></li> <li><a title=\"en/Extensions/Using the DOM File API in chrome code\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Extensions/Using_the_DOM_File_API_in_chrome_code\">Using the DOM File API in chrome code</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/FileReader\">FileReader</a></code>\n</li> <li><a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=523771\" class=\"external\" title=\"\">\nbug 523771</a>\n - Support <input type=file multiple></li>","summary":"<p>The <code>File</code> object provides information about -- and access to the contents of -- files. These are generally retrieved from a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/FileList\">FileList</a></code>\n object returned as a result of a user selecting files using the <code>input</code> element, or from a drag and drop operation's <a title=\"En/DragDrop/DataTransfer\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DragDrop/DataTransfer\"><code>DataTransfer</code></a> object.</p>\n<div class=\"geckoVersionNote\">\n<p>\n</p><div class=\"geckoVersionHeading\">Gecko 2.0 note<div>(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n</div></div>\n<p></p>\n<p>Starting in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n, the File object inherits from the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n interface, which provides methods and properties providing further information about the file.</p>\n</div>\n<p>The file reference can be saved when the form is submitted while the user is offline, so that the data can be retrieved and uploaded when the Internet connection is restored.</p>\n<div class=\"note\"><strong>Note:</strong> The <code>File</code> object as implemented by Gecko offers several non-standard methods for reading the contents of the file. These should <em>not</em> be used, as they will prevent your web application from being used in other browsers, as well as in future versions of Gecko, which will likely remove these methods.</div>","members":[{"url":"https://developer.mozilla.org/en/DOM/File.fileName","name":"fileName","help":"The name of the file referenced by the <code>File</code> object. <strong>Read only.</strong> \n\n<span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Obsolete since Gecko 7.0</span>","obsolete":true},{"url":"https://developer.mozilla.org/en/DOM/File.fileSize","name":"fileSize","help":"The size of the referenced file in bytes. <strong>Read only.</strong> \n\n<span title=\"(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)\n\">Obsolete since Gecko 7.0</span>","obsolete":true},{"name":"webkitFullPath","help":"The full path of the referenced file; available only to code with UniversalFileRead privileges in chrome. <strong>Read only.</strong> \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false},{"name":"webkitFullPathInternal","help":"This is an internal-use-only property that does not do security checks. It can only be used from native code, and is used to optimize performance in special cases in which security is not a concern. <strong>Read only.</strong> \n<span title=\"(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)\n\">Requires Gecko 2.0</span>","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/File.name","name":"name","help":"The name of the file referenced by the <code>File</code> object. <strong>Read only.</strong> \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/File.size","name":"size","help":"The size (in bytes) of the file referenced by the File object. <strong>Read only.</strong> \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/File.type","name":"type","help":"The type (MIME type) of the file referenced by the File object. <strong>Read only.</strong> \n<span title=\"(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)\n\">Requires Gecko 1.9.2</span>","obsolete":false}]},"SVGAnimateMotionElement":{"title":"SVGAnimateMotionElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimateMotionElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animateMotion\"><animateMotion></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimateMotionElement"},"CSSImportRule":{"title":"cssRule","members":[],"srcUrl":"https://developer.mozilla.org/pl/DOM/cssRule","skipped":true,"cause":"Suspect title"},"IDBCursor":{"title":"IDBCursor","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>12\n<span title=\"prefix\">webkit</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","examples":["<h4 class=\"editable\">Example</h4>\n<p>In the following code snippet, we open a transaction and manipulate an entire data set using a cursor. Because the specification is still evolving, Chrome uses prefixes in the methods. Chrome uses the <code>webkit</code> prefix. For example, instead of just <code>IDBCursor.NEXT</code>, use <code>webkitIDBCursor.NEXT</code>. Firefox does not use prefixes, except in the opening method (<code>mozIndexedDB</code>). Event handlers are registered for responding to various situations.</p>\n\n <pre name=\"code\" class=\"js\">// Taking care of the browser-specific prefixes.\nwindow.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB;\nwindow.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;\nwindow.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange;\nwindow.IDBCursor = window.IDBCursor || window.webkitIDBCursor;\nvar db;\n\n...\n\nfunction cursorTest() {\n // Start a transaction on an object store called \"my-store-name\"\n // By default, transactions are opened with read-only access.\n // If you want to have write access, see IDBDatabase.\n var trans = db.transaction('my-store-name');\n // Get a reference to the object store.\n var store = trans.objectStore('my-store-name');\n // Create a cursor with two optional parameters. \n // The first parameter sets the cursor over a specified key range;\n // while the second one sets the direction of the cursor. \n // In this case, the direction is set to IDBCursor.PREV, \n // which lets you start at the upper bound of the key range\n // and then moves downwards. \n // If you don't want duplicates included, use PREV_NO_DUPLICATE instead.\n var curreq = store.openCursor(IDBKeyRange.bound(1, 4), IDBCursor.PREV); \n // The \"onsuccess\" event fires when the cursor is created and \n // every time the cursor iterates over data. \n // The following block of code runs multiple times,\n // until the cursor runs out of data to iterate over.\n // At that point, the result's request becomes null.\n curreq.onsuccess = function (e) {\n var cursor = curreq.result;\n // If the cursor is pointing at something, ask for the data. \n if (cursor) {\n var getreq = store.get(cursor.key);\n // After the data has been retrieved, show it.\n getreq.onsuccess = function (e) {\n console.log('key:', cursor.key, 'value:', getreq.result);\n // OK, now move the cursor to the next item. \n cursor.continue();\n };\n }\n };\n};</pre>\n \n<p>To learn more about various topics, see the following</p>\n<ul> <li>Starting transactions - <span class=\"eval deki-transform\"><a title=\"en/IndexedDB/IDBDatabase#transaction()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabase#transaction()\">IDBDatabase</a></span></li> <li>Setting transaction modes - <a title=\"en/IndexedDB/IDBTransaction#Mode_constants\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#Mode_constants\">IDBTransaction</a></li> <li>Setting a range of keys - <a title=\"en/IndexedDB/IDBKeyRange\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBKeyRange\">IDBKeyRange</a></li> <li>Creating cursors - <a title=\"en/IndexedDB/IDBIndex#openCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openCursor\">IDBIndex</a></li>\n</ul>","<h4 class=\"editable\">Example</h4>\n<p>In the following code snippet, we open a transaction and manipulate an entire data set using a cursor. Because the specification is still evolving, Chrome uses prefixes in the methods. Chrome uses the <code>webkit</code> prefix. For example, instead of just <code>IDBCursor.NEXT</code>, use <code>webkitIDBCursor.NEXT</code>. Firefox does not use prefixes, except in the opening method (<code>mozIndexedDB</code>). Event handlers are registered for responding to various situations.</p>\n\n <pre name=\"code\" class=\"js\">// Taking care of the browser-specific prefixes.\nwindow.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB;\nwindow.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;\nwindow.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange;\nwindow.IDBCursor = window.IDBCursor || window.webkitIDBCursor;\nvar db;\n\n...\n\nfunction cursorTest() {\n // Start a transaction on an object store called \"my-store-name\"\n // By default, transactions are opened with read-only access.\n // If you want to have write access, see IDBDatabase.\n var trans = db.transaction('my-store-name');\n // Get a reference to the object store.\n var store = trans.objectStore('my-store-name');\n // Create a cursor with two optional parameters. \n // The first parameter sets the cursor over a specified key range;\n // while the second one sets the direction of the cursor. \n // In this case, the direction is set to IDBCursor.PREV, \n // which lets you start at the upper bound of the key range\n // and then moves downwards. \n // If you don't want duplicates included, use PREV_NO_DUPLICATE instead.\n var curreq = store.openCursor(IDBKeyRange.bound(1, 4), IDBCursor.PREV); \n // The \"onsuccess\" event fires when the cursor is created and \n // every time the cursor iterates over data. \n // The following block of code runs multiple times,\n // until the cursor runs out of data to iterate over.\n // At that point, the result's request becomes null.\n curreq.onsuccess = function (e) {\n var cursor = curreq.result;\n // If the cursor is pointing at something, ask for the data. \n if (cursor) {\n var getreq = store.get(cursor.key);\n // After the data has been retrieved, show it.\n getreq.onsuccess = function (e) {\n console.log('key:', cursor.key, 'value:', getreq.result);\n // OK, now move the cursor to the next item. \n cursor.continue();\n };\n }\n };\n};</pre>\n \n<p>To learn more about various topics, see the following</p>\n<ul> <li>Starting transactions - <span class=\"eval deki-transform\"><a title=\"en/IndexedDB/IDBDatabase#transaction()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabase#transaction()\">IDBDatabase</a></span></li> <li>Setting transaction modes - <a title=\"en/IndexedDB/IDBTransaction#Mode_constants\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#Mode_constants\">IDBTransaction</a></li> <li>Setting a range of keys - <a title=\"en/IndexedDB/IDBKeyRange\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBKeyRange\">IDBKeyRange</a></li> <li>Creating cursors - <a title=\"en/IndexedDB/IDBIndex#openCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openCursor\">IDBIndex</a></li>\n</ul>"],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBCursor","summary":"The <code>IDBCursor</code> interface of the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API</a> represents a <a title=\"en/IndexedDB#gloss_cursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/Basic_Concepts_Behind_IndexedDB#gloss_cursor\">cursor</a> for traversing or iterating over multiple records in a database.","members":[{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR","name":"DATA_ERR","help":"The underlying object store uses <a title=\"en/IndexedDB/Basic_Concepts_Behind_IndexedDB#gloss in-line keys\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/Basic_Concepts_Behind_IndexedDB#gloss_in-line_keys\">in-line keys</a>, and the key for the cursor's position does not match the <code>value</code> property at the object store's <a class=\"external\" title=\"object store key path\" rel=\"external\" href=\"http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#dfn-object-store-key-path\" target=\"_blank\">key path</a>.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The cursor was created using <a title=\"en/IndexedDB/IDBIndex#openKeyCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openKeyCursor\">openKeyCursor()</a>, or if it is currently being iterated (you cannot call this method again until the new cursor data has been loaded), or if it has iterated past the end of its range.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#READ_ONLY_ERR","name":"READ_ONLY_ERR","help":"The cursor is in a transaction whose mode is <code><a title=\"en/IndexedDB/IDBTransaction#READ ONLY\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#READ_ONLY\">READ_ONLY</a></code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR","name":"TRANSACTION_INACTIVE_ERR","help":"The transaction that this cursor belongs to is inactive.","obsolete":false},{"name":"DATA_CLONE_ERR","help":"If the value could not be cloned.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NON_TRANSIET_ERR","name":"NON_TRANSIENT_ERR","help":"The value passed into the <code>count</code> parameter was zero or a negative number.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The cursor was created using <a title=\"en/IndexedDB/IDBIndex#openKeyCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openKeyCursor\">openKeyCursor()</a>, or if it is currently being iterated (you cannot call this method again until the new cursor data has been loaded), or if it has iterated past the end of its range.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR","name":"TRANSACTION_INACTIVE_ERR","help":"The transaction that this cursor belongs to is inactive.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR","name":"DATA_ERR","help":"If the <code>key</code> parameter was specified, but did not contain a valid key.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The cursor was created using <a title=\"en/IndexedDB/IDBIndex#openKeyCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openKeyCursor\">openKeyCursor()</a>, or if it is currently being iterated (you cannot call this method again until the new cursor data has been loaded), or if it has iterated past the end of its range.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR","name":"TRANSACTION_INACTIVE_ERR","help":"The transaction that this cursor belongs to is inactive.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR","name":"NOT_ALLOWED_ERR","help":"The cursor was created using <a title=\"en/IndexedDB/IDBIndex#openKeyCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openKeyCursor\">openKeyCursor()</a>, or if it is currently being iterated (you cannot call this method again until the new cursor data has been loaded), or if it has iterated past the end of its range.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#READ_ONLY_ERR","name":"READ_ONLY_ERR","help":"The cursor is in a transaction whose mode is <code><a title=\"en/IndexedDB/IDBTransaction#READ ONLY\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#READ_ONLY\">READ_ONLY</a></code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR","name":"TRANSACTION_INACTIVE_ERR","help":"The transaction that this cursor belongs to is inactive.","obsolete":false},{"name":"advance","help":"<p>Sets the number times a cursor should move its position forward.</p>\n<pre>IDBRequest advance (\n in long <em>count</em>\n) raises (IDBDatabaseException);</pre>\n<div id=\"section_13\"><span id=\"Parameter_2\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>count</dt> <dd>The number of advances forward the cursor should make.</dd>\n</dl>\n</div><div id=\"section_14\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div><div id=\"section_15\"><span id=\"Exceptions_2\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Exception</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><a title=\"en/IndexedDB/IDBDatabaseException#NON_TRANSIET_ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NON_TRANSIET_ERR\"><code>NON_TRANSIENT_ERR</code></a></td> <td> <p>The value passed into the <code>count</code> parameter was zero or a negative number.</p> </td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The cursor was created using <a title=\"en/IndexedDB/IDBIndex#openKeyCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openKeyCursor\">openKeyCursor()</a>, or if it is currently being iterated (you cannot call this method again until the new cursor data has been loaded), or if it has iterated past the end of its range.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\">TRANSACTION_INACTIVE_ERR</a></code></td> <td>The transaction that this cursor belongs to is inactive.</td> </tr> </tbody>\n</table>\n</div>","obsolete":false},{"name":"delete","help":"<p>Returns an <code><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></code> object, and, in a separate thread, deletes the record at the cursor's position, without changing the cursor's position. Once the record is deleted, the cursor's <code>value</code> is set to <code>null</code>.</p>\n<pre>IDBRequest delete (\n) raises (IDBDatabaseException);</pre>\n<div id=\"section_21\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></code></dt> <dd>A request object on which subsequent events related to this operation are fired. The <code>result</code> attribute is set to <code>undefined</code>.</dd>\n</dl>\n</div><div id=\"section_22\"><span id=\"Exceptions_4\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following code:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Exception</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The cursor was created using <a title=\"en/IndexedDB/IDBIndex#openKeyCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openKeyCursor\">openKeyCursor()</a>, or if it is currently being iterated (you cannot call this method again until the new cursor data has been loaded), or if it has iterated past the end of its range.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#READ ONLY ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#READ_ONLY_ERR\">READ_ONLY_ERR</a></code></td> <td>The cursor is in a transaction whose mode is <code><a title=\"en/IndexedDB/IDBTransaction#READ ONLY\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#READ_ONLY\">READ_ONLY</a></code>.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\">TRANSACTION_INACTIVE_ERR</a></code></td> <td>The transaction that this cursor belongs to is inactive.</td> </tr> </tbody>\n</table>\n</div>","obsolete":false},{"name":"continue","help":"<p>Advances the cursor to the next position along its direction, to the item whose key matches the optional <code>key</code> parameter. If no key is specified, advance to the immediate next position, based on the cursor's direction.</p>\n<pre>void continue (\n in optional any <em>key</em>\n) raises (IDBDatabaseException);</pre>\n<div id=\"section_17\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div><div id=\"section_18\"><span id=\"Parameters\"></span><h5 class=\"editable\">Parameters</h5>\n<dl> <dt>key</dt> <dd>The key to position the cursor at.</dd>\n</dl>\n</div><div id=\"section_19\"><span id=\"Exceptions_3\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a>, with the following codes:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Exception</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#DATA ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></td> <td>If the <code>key</code> parameter was specified, but did not contain a valid key.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The cursor was created using <a title=\"en/IndexedDB/IDBIndex#openKeyCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openKeyCursor\">openKeyCursor()</a>, or if it is currently being iterated (you cannot call this method again until the new cursor data has been loaded), or if it has iterated past the end of its range.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\">TRANSACTION_INACTIVE_ERR</a></code></td> <td>The transaction that this cursor belongs to is inactive.</td> </tr> </tbody>\n</table>\n</div>","obsolete":false},{"name":"update","help":"<p>Returns an IDBRequest object, and, in a separate thread, updates the value at the current position of the cursor in the object store. If the cursor points to a record that has just been deleted, a new record is created.</p>\n<pre>IDBRequest update (\n in any <em>value</em>\n) raises (IDBDatabaseException, DOMException);\n</pre>\n<div id=\"section_9\"><span id=\"Parameter\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>value</dt> <dd>The value to be stored.</dd>\n</dl>\n</div><div id=\"section_10\"><span id=\"Returns\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></code></dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>\n</dl>\n</div><div id=\"section_11\"><span id=\"Exceptions\"></span><h5 class=\"editable\">Exceptions</h5>\n<p>This method can raise an <a title=\"en/IndexedDB/IDBDatabaseException\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException\">IDBDatabaseException</a> with the following codes:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Exception</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#DATA ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#DATA_ERR\">DATA_ERR</a></code></td> <td> <p>The underlying object store uses <a title=\"en/IndexedDB/Basic_Concepts_Behind_IndexedDB#gloss in-line keys\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/Basic_Concepts_Behind_IndexedDB#gloss_in-line_keys\">in-line keys</a>, and the key for the cursor's position does not match the <code>value</code> property at the object store's <a class=\"external\" title=\"object store key path\" rel=\"external\" href=\"http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#dfn-object-store-key-path\" target=\"_blank\">key path</a>.</p> </td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#NOT ALLOWED ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#NOT_ALLOWED_ERR\">NOT_ALLOWED_ERR</a></code></td> <td>The cursor was created using <a title=\"en/IndexedDB/IDBIndex#openKeyCursor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBIndex#openKeyCursor\">openKeyCursor()</a>, or if it is currently being iterated (you cannot call this method again until the new cursor data has been loaded), or if it has iterated past the end of its range.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#READ ONLY ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#READ_ONLY_ERR\">READ_ONLY_ERR</a></code></td> <td>The cursor is in a transaction whose mode is <code><a title=\"en/IndexedDB/IDBTransaction#READ ONLY\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#READ_ONLY\">READ_ONLY</a></code>.</td> </tr> <tr> <td><code><a title=\"en/IndexedDB/IDBDatabaseException#TRANSACTION INACTIVE ERR\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabaseException#TRANSACTION_INACTIVE_ERR\">TRANSACTION_INACTIVE_ERR</a></code></td> <td>The transaction that this cursor belongs to is inactive.</td> </tr> </tbody>\n</table>\n<p>It can also raise a <a title=\"En/DOM/DOMException\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/DOMException\">DOMException</a> with the following code:</p>\n<table class=\"standard-table\"> <thead> <tr> <th scope=\"col\" width=\"131\">Attribute</th> <th scope=\"col\" width=\"698\">Description</th> </tr> </thead> <tbody> <tr> <td><code>DATA_CLONE_ERR</code></td> <td>If the value could not be cloned.</td> </tr> </tbody>\n</table>\n</div>","obsolete":false},{"url":"","name":"NEXT","help":"The cursor shows all records, including duplicates. It starts at the lower bound of the key range and moves upwards (monotonically increasing in the order of keys).","obsolete":false},{"url":"","name":"NEXT_NO_DUPLICATE","help":"The cursor shows all records, excluding duplicates. If multiple records exist with the same key, only the first one iterated is retrieved. It starts at the lower bound of the key range and moves upwards.","obsolete":false},{"url":"","name":"PREV","help":"The cursor shows all records, including duplicates. It starts at the upper bound of the key range and moves downwards (monotonically decreasing in the order of keys).","obsolete":false},{"url":"","name":"PREV_NO_DUPLICATE","help":"The cursor shows all records, excluding duplicates. If multiple records exist with the same key, only the first one iterated is retrieved. It starts at the upper bound of the key range and moves downwards.","obsolete":false},{"url":"","name":"source","help":"On getting, returns the <code>IDBObjectStore</code> or <code>IDBIndex</code> that the cursor is iterating. This function never returns null or throws an exception, even if the cursor is currently being iterated, has iterated past its end, or its transaction is not active.","obsolete":false},{"url":"","name":"direction","help":"On getting, returns the <a title=\"en/IndexedDB/Basic_Concepts_Behind_IndexedDB#gloss direction\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/Basic_Concepts_Behind_IndexedDB#gloss_direction\">direction</a> of traversal of the cursor. See Constants for possible values.","obsolete":false},{"url":"","name":"key","help":"Returns the key for the record at the cursor's position. If the cursor is outside its range, this is <code>undefined</code>.","obsolete":false},{"url":"","name":"primaryKey","help":"Returns the cursor's current effective key. If the cursor is currently being iterated or has iterated outside its range, this is <code>undefined</code>.","obsolete":false}]},"CSSPrimitiveValue":{"title":"Interface documentation status","members":[],"srcUrl":"https://developer.mozilla.org/User:trevorh/Interface_documentation_status","skipped":true,"cause":"Suspect title"},"SVGPoint":{"title":"SVGSVGElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGSVGElement","skipped":true,"cause":"Suspect title"},"VoidCallback":{"title":"Mouse Lock API","members":[],"srcUrl":"https://developer.mozilla.org/en/API/Mouse_Lock_API","skipped":true,"cause":"Suspect title"},"EventTarget":{"title":"EventTarget","summary":"An <code>EventTarget</code> is a DOM interface implemented by objects that can receive DOM events and have listeners for them. The most common <code>EventTarget</code>s are <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\" title=\"en/DOM/element\">DOM elements</a>, although other objects can be <code>EventTarget</code>s too, for example <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document\" title=\"en/DOM/document\">document</a>, <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/window\" title=\"en/DOM/window\">window</a>, <a rel=\"internal\" href=\"https://developer.mozilla.org/en/XMLHttpRequest\" title=\"en/XMLHttpRequest\">XMLHttpRequest</a>, and others.\n","members":[{"url":"https://developer.mozilla.org/en/DOM/element.addEventListener","name":"addEventListener","help":"\nRegister an event handler of a specific event type on the <code>EventTarget</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeEventListener","name":"removeEventListener","help":"\nRemoves an event listener from the <code>EventTarget</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.dispatchEvent","name":"dispatchEvent","help":"\nDispatch an event to this <code>EventTarget</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.addEventListener","name":"addEventListener","help":"\nRegister an event handler of a specific event type on the <code>EventTarget</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeEventListener","name":"removeEventListener","help":"\nRemoves an event listener from the <code>EventTarget</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.dispatchEvent","name":"dispatchEvent","help":"\nDispatch an event to this <code>EventTarget</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.addEventListener","name":"addEventListener","help":"\nRegister an event handler of a specific event type on the <code>EventTarget</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.removeEventListener","name":"removeEventListener","help":"\nRemoves an event listener from the <code>EventTarget</code>.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/element.dispatchEvent","name":"dispatchEvent","help":"\nDispatch an event to this <code>EventTarget</code>.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/EventTarget","specification":"DOM Level 2 Events: EventTarget"},"SVGAnimatedNumberList":{"title":"SVGAnimatedNumberList","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedNumber</code> interface is used for attributes which take a list of numbers and which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"A read only <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGNumberList\">SVGNumberList</a></code>\n representing the current animated value of the given attribute. If the given attribute is not currently being animated, then the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/SVGNumberList\">SVGNumberList</a></code>\n will have the same contents as <code>baseVal</code>. The object referenced by <code>animVal</code> will always be distinct from the one referenced by <code>baseVal</code>, even when the attribute is not animated.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedNumberList"},"ImageData":{"title":"ImageData","srcUrl":"https://developer.mozilla.org/en/DOM/ImageData","specification":"http://www.whatwg.org/specs/web-apps...html#imagedata","seeAlso":"Pixel manipulation with canvas","summary":"Used with the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/canvas\"><canvas></a></code>\n element. Returned by <a title=\"en/DOM/CanvasRenderingContext2D\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D\">CanvasRenderingContext2D</a>'s <a title=\"en/DOM/CanvasRenderingContext2D.createImageData\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D.createImageData\" class=\"new \">createImageData</a> and <a title=\"en/DOM/CanvasRenderingContext2D.getImageData\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D.getImageData\" class=\"new \">getImageData</a> (and accepted as first argument in <a title=\"en/DOM/CanvasRenderingContext2D.putImageData\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CanvasRenderingContext2D.putImageData\" class=\"new \">putImageData</a>)","members":[]},"HTMLTrackElement":{"title":"track","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>16*</td> <td><span title=\"Not supported.\">--</span><br> \n<span class=\"unimplementedInlineTemplate\">Unimplemented (see<a rel=\"external\" href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=629350\" class=\"external\" title=\"\">\nbug 629350</a>\n)</span>\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<p>* Partially implemented in Chrome 16 and currently behind the --enable-video-track flag or enabling the feature in about:flags.</p>","examples":["<video src=\"sample.ogv\">\n <track kind=\"captions\" src=\"sampleCaptions.srt\" srclang=\"en\"></track>\n <track kind=\"descriptions\" src=\"sampleDesciptions.srt\" srclang=\"en\"></track>\n <track kind=\"chapters\" src=\"sampleChapters.srt\" srclang=\"en\"></track>\n <track kind=\"subtitles\" src=\"sampleSubtitles_de.srt\" srclang=\"de\"></track>\n <track kind=\"subtitles\" src=\"sampleSubtitles_en.srt\" srclang=\"en\"></track>\n <track kind=\"subtitles\" src=\"sampleSubtitles_ja.srt\" srclang=\"ja\"></track>\n <track kind=\"subtitles\" src=\"sampleSubtitles_oz.srt\" srclang=\"oz\"></track>\n <track kind=\"metadata\" src=\"keyStage1.srt\" srclang=\"en\" label=\"Key Stage 1\"></track>\n <track kind=\"metadata\" src=\"keyStage2.srt\" srclang=\"en\" label=\"Key Stage 2\"></track>\n <track kind=\"metadata\" src=\"keyStage3.srt\" srclang=\"en\" label=\"Key Stage 3\"></track> \n</video>"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/track","specification":"http://www.w3.org/TR/html5/video.html#the-track-element","summary":"<p>The <code>track</code> element is used as a child of the media elements—<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/audio\"><audio></a></code>\n and <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/video\"><video></a></code>\n—and does not represent anything on its own. It lets you specify timed text tracks (or time-based data).</p>\n<p>The type of data that <code> track</code> adds to the media is set in the <code>kind</code> attribute, which can take values of <code>subtitles</code>, <code>captions</code>, <code>descriptions</code>, <code>chapters</code> or <code>metadata</code>. The element points to a source file containing timed text that the browser exposes when the user requests additional data. </p>","members":[{"obsolete":false,"url":"","name":"label","help":"A user-readable title of the text track Used by the browser when listing available text tracks."},{"obsolete":false,"url":"","name":"kind","help":"Kind of text track. The following keywords are allowed: <ul> <li>subtitles: A transcription or translation of the dialogue.</li> <li>captions: A transcription or translation of the dialogue or other sound effects. Suitable for users who are deaf or when the sound is muted.</li> <li>descriptions: Textual descriptions of the video content. Suitable for users who are blind.</li> <li>chapters: Chapter titles, intended to be used when the user is navigating the media resource.</li> <li>metadata: Tracks used by script. Not visible to the user.</li> </ul>"},{"obsolete":false,"url":"","name":"default","help":"This attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate. This may only be used on one <code>track</code> element per media element."},{"obsolete":false,"url":"","name":"src","help":"Address of the track. Must be a valid URL. This attribute must be defined."},{"obsolete":false,"url":"","name":"srclang","help":"Language of the track text data."}]},"StyleSheetList":{"title":"document.styleSheets","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/document.styleSheets","skipped":true,"cause":"Suspect title"},"SVGColor":{"title":"Colori","summary":"<p>This page explains more about how you can specify color in CSS.\n</p><p>In your sample stylesheet, you introduce background colors.\n</p>","members":[],"srcUrl":"https://developer.mozilla.org/it/Conoscere_i_CSS/Colori"},"SVGPathSegArcAbs":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"SVGFEColorMatrixElement":{"title":"feColorMatrix","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"This filter changes colors based on a transformation matrix. Every pixel's color value (represented by an [R,G,B,A] vector) is <a title=\"http://en.wikipedia.org/wiki/Matrix_multiplication\" class=\" external\" rel=\"external\" href=\"http://en.wikipedia.org/wiki/Matrix_multiplication\" target=\"_blank\">matrix multiplated</a> to create a new color.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in","name":"in","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/type","name":"type","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/values","name":"values","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feColorMatrix"},"SVGPathSegCurvetoQuadraticAbs":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"SVGPathSegCurvetoCubicAbs":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"SVGGElement":{"title":"SVGGElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGGElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/g\"><g></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGGElement"},"EventException":{"title":"DekiScript Code Snippets","members":[],"srcUrl":"https://developer.mozilla.org/User:IgorKitsa/Some_Algorithms","skipped":true,"cause":"Suspect title"},"SVGPolygonElement":{"title":"polygon","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> \n<tr><th scope=\"col\">Feature</th><th scope=\"col\">Chrome</th><th scope=\"col\">Firefox (Gecko)</th><th scope=\"col\">Internet Explorer</th><th scope=\"col\">Opera</th><th scope=\"col\">Safari</th></tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.5 (1.8)\n</td> <td>\n9.0</td> <td>\n8.0</td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td>\n3.0</td> <td>1.0 (1.8)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>\n3.0.4</td> </tr> </tbody>\n</table>\n</div>\n<p>The chart is based on <a title=\"en/SVG/Compatibility sources\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Compatibility_sources\">these sources</a>.</p>","examples":["<tr> <th scope=\"col\">Source code</th> <th scope=\"col\">Output result</th> </tr> <tr> <td>\n <pre name=\"code\" class=\"xml\"><?xml version=\"1.0\"?>\n<svg width=\"120\" height=\"120\" \n viewPort=\"0 0 120 120\" version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\">\n\n <polygon points=\"60,20 100,40 100,80 60,100 20,80 20,40\"/>\n\n</svg></pre>\n </td> <td>\n<iframe src=\"https://developer.mozilla.org/@api/deki/services/developer.mozilla.org/39/images/3a819e42-12f2-6fab-61fa-69d9f937e686.svg\" width=\"120px\" height=\"120px\" marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\"></iframe>\n</td> </tr>"],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/polygon","summary":"The <code>polygon</code> element defines a closed shape consisting of a set of connected straight line segments.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/points","name":"points","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/transform","name":"transform","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/externalResourcesRequired","name":"externalResourcesRequired","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""}]},"SVGFEOffsetElement":{"title":"feOffset","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The input image as a whole is offset by the values specified in the \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/dx\" class=\"new\">dx</a></code> and \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/dy\" class=\"new\">dy</a></code> attributes. It's used in creating drop-shadows.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/dy","name":"dy","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in","name":"in","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/dx","name":"dx","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feOffset"},"TouchEvent":{"title":"TouchEvent","examples":["See the <a title=\"en/DOM/Touch events#Example\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Touch_events#Example\">example on the main Touch events article</a>."],"srcUrl":"https://developer.mozilla.org/en/DOM/TouchEvent","seeAlso":"<li><a title=\"en/DOM/Touch events\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/Touch_events\">Touch events</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TouchList\">TouchList</a></code>\n</li>","summary":"<p>A <code>TouchEvent</code> represents an event sent when the state of contacts with a touch-sensitive surface changes. This surface can be a touch screen or trackpad, for example. The event can describe one or more points of contact with the screen and includes support for detecting movement, addition and removal of contact points, and so forth.</p>\n<p>Touches are represented by the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n object; each touch is described by a position, size and shape, amount of pressure, and target element. Lists of touches are represented by <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TouchList\">TouchList</a></code>\n objects.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/TouchEvent.targetTouches","name":"targetTouches","help":"A <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TouchList\">TouchList</a></code>\n of all the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n objects that are both currently in contact with the touch surface <strong>and</strong> were also started on the same element that is the target of the event. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.metaKey","name":"metaKey","help":"A Boolean value indicating whether or not the meta key was down when the touch event was fired. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.ctrlKey","name":"ctrlKey","help":"A Boolean value indicating whether or not the control key was down when the touch event was fired. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.altKey","name":"altKey","help":"A Boolean value indicating whether or not the alt key was down when the touch event was fired. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.shiftKey","name":"shiftKey","help":"A Boolean value indicating whether or not the shift key was down when the touch event was fired. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/TouchEvent.touches","name":"touches","help":"A <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TouchList\">TouchList</a></code>\n of all the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n objects representing all current points of contact with the surface, regardless of target or changed status. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/TouchEvent.changedTouches","name":"changedTouches","help":"A <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TouchList\">TouchList</a></code>\n of all the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Touch\">Touch</a></code>\n objects representing individual points of contact whose states changed between the previous touch event and this one. <strong>Read only.</strong>"},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/event.type","name":"type","help":"The type of touch event that occurred. See <a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/TouchEvent#Touch_event_types\">Touch event types</a> for possible values and details."}]},"HTMLMapElement":{"title":"map","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>1.0</td> <td> <p>1.0 (1.7 or earlier)\n</p> <p>Starting in Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)\n, empty maps are no longer skipped over in favor of non-empty ones when matching when in quirks mode. See the section <a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/map#Gecko_notes\">Gecko notes</a> below.</p> </td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>1.0</td> <td>1.0</td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td>1.0</td> <td>1.0 (1)\n</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>1.0</td> <td>1.0</td> </tr> </tbody>\n</table>\n</div>","examples":["<map>\n <area shape=\"circle\" coords=\"200,250,25\" href=\"another.htm\" /> \n <area shape=\"default\" />\n</map>"],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/map","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/a\"><a></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area\"><area></a></code>\n</li>","summary":"The HTML <em>Map</em> element (<code><map></code>) is used with <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/area\"><area></a></code>\n elements to define a image map.","members":[]},"SVGClipPathElement":{"title":"SVGClipPathElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGClipPathElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/clipPath\"><clipPath></a></code>\n SVG Element","summary":"The <code>SVGClipPathElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/clipPath\"><clipPath></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"clipPathUnits","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/clipPathUnits\">clipPathUnits</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/clipPath\"><clipPath></a></code>\n element. Takes one of the constants defined in <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGUnitTypes\" class=\"new\">SVGUnitTypes</a></code>","obsolete":false}]},"EventSource":{"title":"EventSource","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari</th> </tr> <tr> <td>EventSource support</td> <td>9</td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>11</td> <td>5</td> </tr> <tr> <td><a title=\"HTTP access control\" rel=\"internal\" href=\"https://developer.mozilla.org/En/HTTP_access_control\">Cross-Origin Resource Sharing</a><br> support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td>11.0 (11.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>EventSource support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/Server-sent_events/EventSource","seeAlso":"<li>\n<a rel=\"custom\" href=\"http://www.w3.org/TR/eventsource/#the-eventsource-interface\">Server-Sent Events: The EventSource Interface</a><span title=\"Working Draft\">WD</span></li> <li><a title=\"en/Server-sent events/Using server-sent events\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Server-sent_events/Using_server-sent_events\">Using server-sent events</a></li>","summary":"<p>The <code>EventSource</code> interface is used to manage server-sent events. You can set the onmessage attribute to a JavaScript function to receive non-typed messages (that is, messages with no <code>event</code> field). You can also call <code>addEventListener()</code> to listen for events just like any other event source.</p>\n<p>See <a title=\"en/Server-sent events/Using server-sent events\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Server-sent_events/Using_server-sent_events\">Using server-sent events</a> for further details.</p>","members":[{"name":"init","help":"<div id=\"section_6\"><p>Initializes the object for use from C++ code with the principal, script context, and owner window that should be used.</p>\n\n</div><div id=\"section_7\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>principal</code></dt> <dd>The principal to use for the request. This must not be <code>null</code>.</dd> <dt><code>scriptContext</code></dt> <dd>The script context to use for the request. May be <code>null</code>.</dd> <dt><code>ownerWindow</code></dt> <dd>The associated window for the request. May be <code>null</code>.</dd> <dt><code>url</code></dt> <dd>The <code>EventSource</code>'s URL. This must not be empty.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void init(\n in nsIPrincipal principal,\n in nsIScriptContext scriptContext,\n in nsPIDOMWindow ownerWindow,\n in DOMString url\n);\n</pre>","obsolete":false},{"name":"close","help":"Closes the connection, if any, and sets the <code>readyState</code> attribute to <code>CLOSED</code>. If the connection is already closed, the method does nothing.","idl":"<pre class=\"eval\">void close();\n</pre>","obsolete":false},{"name":"CONNECTING","help":"The connection is being established.","obsolete":false},{"name":"OPEN","help":"The connection is open and dispatching events.","obsolete":false},{"name":"CLOSED","help":"The connection is not being established, has been closed or there was a fatal error.","obsolete":false},{"name":"onerror","help":"A JavaScript function to call when an error occurs.","obsolete":false},{"name":"onmessage","help":"A JavaScript function to call when an a message without an <code>event</code> field arrives.","obsolete":false},{"name":"onopen","help":"A JavaScript function to call when the connection has opened.","obsolete":false},{"name":"readyState","help":"The state of the connection, must be one of <code>CONNECTING</code>, <code>OPEN</code>, or <code>CLOSED</code>. <strong>Read only.</strong>","obsolete":false},{"name":"url","help":"Read only.","obsolete":false}]},"CSSStyleSheet":{"title":"CSSStyleSheet","srcUrl":"https://developer.mozilla.org/en/DOM/CSSStyleSheet","specification":"DOM Level 2 CSS: <code>CSSStyleSheet</code> interface","seeAlso":"StyleSheet","summary":"<p>An object implementing the <code>CSSStyleSheet</code> interface represents a single <a title=\"en/CSS\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS\">CSS</a> style sheet.</p>\n<p>A CSS style sheet consists of CSS rules, each of which can be manipulated through an object that corresponds to that rule and that implements the <code><a title=\"en/DOM/cssRule\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/cssRule\">CSSRule</a></code> interface. The <code>CSSStyleSheet</code> itself lets you examine and modify its corresponding style sheet, including its list of rules.</p>\n<p>In practice, every <code>CSSStyleSheet</code> also implements the more generic <code><a title=\"en/DOM/StyleSheet\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/stylesheet\">StyleSheet</a></code> interface. A list of <code>CSSStyleSheet</code>-implementing objects corresponding to the style sheets for a given document can be reached by the <code><a title=\"en/DOM/document.styleSheets\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/document.styleSheets\">document.styleSheets</a></code> property, if the document is styled by an external CSS style sheet or an inline <code><a title=\"en/HTML/element/style\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Element/style\">style</a></code> element.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/CSSStyleSheet/insertRule","name":"insertRule","help":"Inserts a new style rule into the current style sheet."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/CSSStyleSheet/deleteRule","name":"deleteRule","help":"Deletes a rule from the style sheet."},{"name":"ownerRule","help":"If this style sheet is imported into the document using an <code><a title=\"en/CSS/@import\" rel=\"internal\" href=\"https://developer.mozilla.org/en/CSS/@import\">@import</a></code> rule, the <code>ownerRule</code> property will return that <code><a title=\"en/DOM/CSSImportRule\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSSImportRule\" class=\"new \">CSSImportRule</a></code>, otherwise it returns <code>null</code>.","obsolete":false},{"name":"cssRules","help":"Returns a <code><a title=\"en/DOM/CSSRuleList\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSSRuleList\">CSSRuleList</a></code> of the CSS rules in the style sheet.","obsolete":false}]},"SVGStyleElement":{"title":"SVGStyleElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGStyleElement</code> interface corresponds to the SVG <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/style\"><style></a></code>\n element.","members":[{"name":"type","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/type\" class=\"new\">type</a></code> on the given element. A <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n is raised with code <code>NO_MODIFICATION_ALLOWED_ERR</code> on an attempt to change the value of a read only attribut.","obsolete":false},{"name":"media","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/media\" class=\"new\">media</a></code> on the given element. A <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n is raised with code <code>NO_MODIFICATION_ALLOWED_ERR</code> on an attempt to change the value of a read only attribut.","obsolete":false},{"name":"title","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/title\" class=\"new\">title</a></code> on the given element. A <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n is raised with code <code>NO_MODIFICATION_ALLOWED_ERR</code> on an attempt to change the value of a read only attribut.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGStyleElement"},"StyleSheet":{"title":"stylesheet","srcUrl":"https://developer.mozilla.org/en/DOM/stylesheet","specification":"DOM Level 2 Style Sheets: <code>StyleSheet</code> interface","seeAlso":"CSSStyleSheet","summary":"An object implementing the <code>StyleSheet</code> interface represents a single style sheet. CSS style sheets will further implement the more specialized <code><a title=\"en/DOM/CSSStyleSheet\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/CSSStyleSheet\">CSSStyleSheet</a></code> interface.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/StyleSheet/title","name":"title","help":"Returns the advisory title of the current style sheet."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/StyleSheet/parentStyleSheet","name":"parentStyleSheet","help":"Returns the stylesheet that is including this one, if any."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/StyleSheet/media","name":"media","help":"Specifies the intended destination medium for style information."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/StyleSheet/ownerNode","name":"ownerNode","help":"Returns the node that associates this style sheet with the document."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/StyleSheet/href","name":"href","help":"Returns the location of the stylesheet."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/StyleSheet/disabled","name":"disabled","help":"This property indicates whether the current stylesheet has been applied or not."},{"obsolete":false,"url":"https://developer.mozilla.org/en/DOM/StyleSheet/type","name":"type","help":"Specifies the style sheet language for this style sheet."}]},"SVGMaskElement":{"title":"SVGMaskElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGMaskElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/mask\"><mask></a></code>\n SVG Element","summary":"The <code>SVGMaskElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/mask\"><mask></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"maskUnits","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/maskUnits\" class=\"new\">maskUnits</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/mask\"><mask></a></code>\n element. Takes one of the constants defined in <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGUnitTypes\" class=\"new\">SVGUnitTypes</a></code>","obsolete":false},{"name":"maskContentUnits","help":"Corresponds to attribute \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/maskContentUnits\" class=\"new\">maskContentUnits</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/mask\"><mask></a></code>\n element. Takes one of the constants defined in <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGUnitTypes\" class=\"new\">SVGUnitTypes</a></code>","obsolete":false},{"name":"width","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/width\">width</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/mask\"><mask></a></code>\n element.","obsolete":false},{"name":"height","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/height\">height</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/mask\"><mask></a></code>\n element.","obsolete":false}]},"HTMLInputElement":{"title":"HTMLInputElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input\"><input></a></code>\n HTML element","summary":"DOM <code>Input</code> objects expose the <a title=\"http://dev.w3.org/html5/spec/the-input-element.html#htmlinputelement\" class=\" external\" rel=\"external\" href=\"http://dev.w3.org/html5/spec/the-input-element.html#htmlinputelement\" target=\"_blank\">HTMLInputElement</a> (or \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> <a class=\" external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-6043025\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-6043025\" target=\"_blank\"><code>HTMLInputElement</code></a>) interface, which provides special properties and methods (beyond the regular <a rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of input elements.","members":[{"name":"blur","help":"Removes focus from input; keystrokes will subsequently go nowhere.","obsolete":false},{"name":"checkValidity","help":"Returns false if the element is a candidate for constraint validation, and it does not satisfy its constraints. In this case, it also fires an <code>invalid</code> event at the element. It returns true if the element is not a candidate for constraint validation, or if it satisfies its constraints.","obsolete":false},{"name":"click","help":"Simulates a click on the element.","obsolete":false},{"name":"focus","help":"Focus on input; keystrokes will subsequently go to this element.","obsolete":false},{"name":"webkitGetFileNameArray","help":"Returns an array of all the file names from the input.","obsolete":false},{"name":"webkitSetFileNameArray","help":"Sets the filenames for the files selected on the input.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Input.select","name":"select","help":"Selects the input text in the element, and focuses it so the user can subsequently replace the whole entry.","obsolete":false},{"name":"setCustomValidity","help":"Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Input.setSelectionRange","name":"setSelectionRange","help":"Selects a range of text in the element (but does not focus it). The optional <code>selectionDirection</code> parameter may be \"forward\" or \"backward\" to establish the direction in which selection was set, or \"none\"if the direction is unknown or not relevant. The default is \"none\". Specifying <code>selectionDirection</code> sets the value of the <code>selectionDirection</code> property.","obsolete":false},{"name":"stepDown","help":"<p>Decrements the <strong>value</strong> by (<strong>step</strong> * <code>n</code>), where <code>n</code> defaults to 1 if not specified. Throws an INVALID_STATE_ERR exception:</p> <ul> <li>if the method is not applicable to for the current <strong>type</strong> value.</li> <li>if the element has no step value.</li> <li>if the <strong>value</strong> cannot be converted to a number.</li> <li>if the resulting value is above the <strong>max</strong> or below the <strong>min</strong>. </li> </ul>","obsolete":false},{"name":"stepUp","help":"<p>Increments the <strong>value</strong> by (<strong>step</strong> * <code>n</code>), where <code>n</code> defaults to 1 if not specified. Throws an INVALID_STATE_ERR exception:</p> <ul> <li>if the method is not applicable to for the current <strong>type</strong> value.</li> <li>if the element has no step value.</li> <li>if the <strong>value</strong> cannot be converted to a number.</li> <li>if the resulting value is above the <strong>max</strong> or below the <strong>min</strong>.</li> </ul>","obsolete":false},{"name":"accept","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-accept\">accept</a></code>\n HTML attribute, containing comma-separated list of file types accepted by the server when <strong>type</strong> is <code>file</code>.","obsolete":false},{"name":"accessKey","help":"A single character that switches input focus to the control. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"align","help":"Alignment of the element.\n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"alt","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-alt\">alt</a></code>\n HTML attribute, containing alternative text to use when <strong>type</strong> is <code>image.</code>","obsolete":false},{"name":"autocomplete","help":"Reflects the {{htmlattrxref(\"autocomplete\", \"input)}} HTML attribute, indicating whether the value of the control can be automatically completed by the browser. Ignored if the value of the <strong>type</strong> attribute is <span>hidden</span>, <span>checkbox</span>, <span>radio</span>, <span>file</span>, or a button type (<span>button</span>, <span>submit</span>, <span>reset</span>, <span>image</span>). Possible values are: <ul> <li><span>off</span>: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.</li> <li><span>on</span>: The browser can automatically complete the value based on values that the user has entered during previous uses.</li> </ul>","obsolete":false},{"name":"autofocus","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-autofocus\">autofocus</a></code>\n HTML attribute, which specifies that a form control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form element in a document can have the <strong>autofocus</strong> attribute. It cannot be applied if the <strong>type</strong> attribute is set to <code>hidden</code> (that is, you cannot automatically set focus to a hidden control).","obsolete":false},{"name":"checked","help":"The current state of the element when <strong>type</strong> is <code>checkbox</code> or <code>radio</code>.","obsolete":false},{"name":"defaultChecked","help":"The default state of a radio button or checkbox as originally specified in HTML that created this object.","obsolete":false},{"name":"defaultValue","help":"The default value as originally specified in HTML that created this object.","obsolete":false},{"name":"disabled","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-disabled\">disabled</a></code>\n HTML attribute, indicating that the control is not available for interaction.","obsolete":false},{"name":"files","help":"A list of selected files.","obsolete":false},{"name":"form","help":"<p>The containing form element, if this element is in a form. If this element is not contained in a form element:</p> <ul> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> this can be the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-id\">id</a></code>\n attribute of any <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element in the same document. Even if the attribute is set on <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input\"><input></a></code>\n, this property will be <code>null</code>, if it isn't the id of a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element.</li> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> this must be <code>null</code>.</li> </ul>","obsolete":false},{"name":"formAction","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formaction\">formaction</a></code>\n HTML attribute, containing the URI of a program that processes information submitted by the element. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-action\">action</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formEncType","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formenctype\">formenctype</a></code>\n HTML attribute, containing the type of content that is used to submit the form to the server. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-enctype\">enctype</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formMethod","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formmethod\">formmethod</a></code>\n HTML attribute, containing the HTTP method that the browser uses to submit the form. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-method\">method</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formNoValidate","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formnovalidate\">formnovalidate</a></code>\n HTML attribute, indicating that the form is not to be validated when it is submitted. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-novalidate\">novalidate</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formTarget","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formtarget\">formtarget</a></code>\n HTML attribute, containing a name or keyword indicating where to display the response that is received after submitting the form. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-target\">target</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"height","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-height\">height</a></code>\n HTML attribute, which defines the height of the image displayed for the button, if the value of <strong>type</strong> is <span>image</span>.","obsolete":false},{"name":"indeterminate","help":"Indicates that a checkbox is neither on nor off.","obsolete":false},{"name":"labels","help":"A list of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/label\"><label></a></code>\n elements that are labels for this element.","obsolete":false},{"name":"list","help":"Identifies a list of pre-defined options to suggest to the user. The value must be the <strong>id</strong> of a <code><a class=\"new\" href=\"https://developer.mozilla.org/en/HTML/Element/datalist\" rel=\"internal\"><datalist></a></code> element in the same document. The browser displays only options that are valid values for this input element. This attribute is ignored when the <strong>type</strong> attribute's value is <span>hidden</span>, <span>checkbox</span>, <span>radio</span>, <span>file</span>, or a button type.","obsolete":false},{"name":"max","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-max\">max</a></code>\n HTML attribute, containing the maximum (numeric or date-time) value for this item, which must not be less than its minimum (<strong>min</strong> attribute) value.","obsolete":false},{"name":"maxLength","help":"<p>Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-maxlength\">maxlength</a></code>\n HTML attribute, containing the maximum length of text (in Unicode code points) that the value can be changed to. The constraint is evaluated only when the value is changed</p> <div class=\"note\"><strong>Note:</strong> If you set <code>maxlength</code> to a negative value programmatically, an exception will be thrown.</div>","obsolete":false},{"name":"min","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-min\">min</a></code>\n HTML attribute, containing the minimum (numeric or date-time) value for this item, which must not be greater than its maximum (<strong>max</strong> attribute) value.","obsolete":false},{"name":"multiple","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-multiple\">multiple</a></code>\n HTML attribute, indicating whether more than one value is possible (e.g., multiple files).","obsolete":false},{"name":"name","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-name\">name</a></code>\n HTML attribute, containing a name that identifies the element when submitting the form.","obsolete":false},{"name":"pattern","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-pattern\">pattern</a></code>\n HTML attribute, containing a regular expression that the control's value is checked against. The pattern must match the entire value, not just some subset. Use the <strong>title</strong> attribute to describe the pattern to help the user. This attribute applies when the value of the <strong>type</strong> attribute is <span>text</span>, <span>search</span>, <span>tel</span>, <span>url</span> or <span>email</span>; otherwise it is ignored.","obsolete":false},{"name":"placeholder","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-placeholder\">placeholder</a></code>\n HTML attribute, containing a hint to the user of what can be entered in the control. The placeholder text must not contain carriage returns or line-feeds. This attribute applies when the value of the <strong>type</strong> attribute is <span>text</span>, <span>search</span>, <span>tel</span>, <span>url</span> or <span>email</span>; otherwise it is ignored.","obsolete":false},{"name":"readOnly","help":"<p>Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-readonly\">readonly</a></code>\n HTML attribute, indicating that the user cannot modify the value of the control.</p> <p><span><a href=\"https://developer.mozilla.org/en/HTML/HTML5\" rel=\"custom nofollow\">HTML 5</a></span> This is ignored if the value of the <strong>type</strong> attribute is <span>hidden</span>, <span>range</span>, <span>color</span>, <span>checkbox</span>, <span>radio</span>, <span>file</span>, or a button type.</p>","obsolete":false},{"name":"required","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-required\">required</a></code>\n HTML attribute, indicating that the user must fill in a value before submitting a form.","obsolete":false},{"name":"selectionDirection","help":"The direction in which selection occurred. This is \"forward\" if selection was performed in the start-to-end direction of the current locale, or \"backward\" for the opposite direction. This can also be \"none\" if the direction is unknown.\"","obsolete":false},{"name":"selectionEnd","help":"The index of the end of selected text.","obsolete":false},{"name":"selectionStart","help":"The index of the beginning of selected text.","obsolete":false},{"name":"size","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-size\">size</a></code>\n HTML attribute, containing size of the control. This value is in pixels unless the value of <strong>type</strong> is <span>text</span> or <span>password</span>, in which case, it is an integer number of characters. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> Applies only when <strong>type</strong> is set to <span>text</span>, <span>search</span>, <span>tel</span>, <span>url</span>, <span>email</span>, or <span>password</span>; otherwise it is ignored.","obsolete":false},{"name":"src","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-src\">src</a></code>\n HTML attribute, which specifies a URI for the location of an image to display on the graphical submit button, if the value of <strong>type</strong> is <span>image</span>; otherwise it is ignored.","obsolete":false},{"name":"step","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-step\">step</a></code>\n HTML attribute, which works with<strong> min</strong> and <strong>max</strong> to limit the increments at which a numeric or date-time value can be set. It can be the string <span>any</span> or a positive floating point number. If this is not set to <span>any</span>, the control accepts only values at multiples of the step value greater than the minimum.","obsolete":false},{"name":"tabIndex","help":"The position of the element in the tabbing navigation order for the current document. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"type","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-type\">type</a></code>\n HTML attribute, indicating the type of control to display. See \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-type\">type</a></code>\n attribute of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input\"><input></a></code>\n for possible values.","obsolete":false},{"name":"useMap","help":"A client-side image map. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.","obsolete":false},{"name":"validity","help":"The validity states that this element is in. ","obsolete":false},{"name":"value","help":"Current value in the control.","obsolete":false},{"name":"valueAsDate","help":"The value of the element, interpreted as a date, or <code>null</code> if conversion is not possible.","obsolete":false},{"name":"valueAsNumber","help":"<p>The value of the element, interpreted as one of the following in order:</p> <ol> <li>a time value</li> <li>a number</li> <li><code>null</code> if conversion is not possible</li> </ol>","obsolete":false},{"name":"width","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-width\">width</a></code>\n HTML attribute, which defines the width of the image displayed for the button, if the value of <strong>type</strong> is <span>image</span>.","obsolete":false},{"name":"willValidate","help":"Indicates whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation.","obsolete":false},{"name":"blur","help":"Removes focus from input; keystrokes will subsequently go nowhere.","obsolete":false},{"name":"checkValidity","help":"Returns false if the element is a candidate for constraint validation, and it does not satisfy its constraints. In this case, it also fires an <code>invalid</code> event at the element. It returns true if the element is not a candidate for constraint validation, or if it satisfies its constraints.","obsolete":false},{"name":"click","help":"Simulates a click on the element.","obsolete":false},{"name":"focus","help":"Focus on input; keystrokes will subsequently go to this element.","obsolete":false},{"name":"webkitGetFileNameArray","help":"Returns an array of all the file names from the input.","obsolete":false},{"name":"webkitSetFileNameArray","help":"Sets the filenames for the files selected on the input.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Input.select","name":"select","help":"Selects the input text in the element, and focuses it so the user can subsequently replace the whole entry.","obsolete":false},{"name":"setCustomValidity","help":"Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.","obsolete":false},{"url":"https://developer.mozilla.org/en/DOM/Input.setSelectionRange","name":"setSelectionRange","help":"Selects a range of text in the element (but does not focus it). The optional <code>selectionDirection</code> parameter may be \"forward\" or \"backward\" to establish the direction in which selection was set, or \"none\"if the direction is unknown or not relevant. The default is \"none\". Specifying <code>selectionDirection</code> sets the value of the <code>selectionDirection</code> property.","obsolete":false},{"name":"stepDown","help":"<p>Decrements the <strong>value</strong> by (<strong>step</strong> * <code>n</code>), where <code>n</code> defaults to 1 if not specified. Throws an INVALID_STATE_ERR exception:</p> <ul> <li>if the method is not applicable to for the current <strong>type</strong> value.</li> <li>if the element has no step value.</li> <li>if the <strong>value</strong> cannot be converted to a number.</li> <li>if the resulting value is above the <strong>max</strong> or below the <strong>min</strong>. </li> </ul>","obsolete":false},{"name":"stepUp","help":"<p>Increments the <strong>value</strong> by (<strong>step</strong> * <code>n</code>), where <code>n</code> defaults to 1 if not specified. Throws an INVALID_STATE_ERR exception:</p> <ul> <li>if the method is not applicable to for the current <strong>type</strong> value.</li> <li>if the element has no step value.</li> <li>if the <strong>value</strong> cannot be converted to a number.</li> <li>if the resulting value is above the <strong>max</strong> or below the <strong>min</strong>.</li> </ul>","obsolete":false},{"name":"accept","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-accept\">accept</a></code>\n HTML attribute, containing comma-separated list of file types accepted by the server when <strong>type</strong> is <code>file</code>.","obsolete":false},{"name":"accessKey","help":"A single character that switches input focus to the control. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"align","help":"Alignment of the element.\n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"alt","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-alt\">alt</a></code>\n HTML attribute, containing alternative text to use when <strong>type</strong> is <code>image.</code>","obsolete":false},{"name":"autocomplete","help":"Reflects the {{htmlattrxref(\"autocomplete\", \"input)}} HTML attribute, indicating whether the value of the control can be automatically completed by the browser. Ignored if the value of the <strong>type</strong> attribute is <span>hidden</span>, <span>checkbox</span>, <span>radio</span>, <span>file</span>, or a button type (<span>button</span>, <span>submit</span>, <span>reset</span>, <span>image</span>). Possible values are: <ul> <li><span>off</span>: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.</li> <li><span>on</span>: The browser can automatically complete the value based on values that the user has entered during previous uses.</li> </ul>","obsolete":false},{"name":"autofocus","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-autofocus\">autofocus</a></code>\n HTML attribute, which specifies that a form control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form element in a document can have the <strong>autofocus</strong> attribute. It cannot be applied if the <strong>type</strong> attribute is set to <code>hidden</code> (that is, you cannot automatically set focus to a hidden control).","obsolete":false},{"name":"checked","help":"The current state of the element when <strong>type</strong> is <code>checkbox</code> or <code>radio</code>.","obsolete":false},{"name":"defaultChecked","help":"The default state of a radio button or checkbox as originally specified in HTML that created this object.","obsolete":false},{"name":"defaultValue","help":"The default value as originally specified in HTML that created this object.","obsolete":false},{"name":"disabled","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-disabled\">disabled</a></code>\n HTML attribute, indicating that the control is not available for interaction.","obsolete":false},{"name":"files","help":"A list of selected files.","obsolete":false},{"name":"form","help":"<p>The containing form element, if this element is in a form. If this element is not contained in a form element:</p> <ul> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> this can be the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-id\">id</a></code>\n attribute of any <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element in the same document. Even if the attribute is set on <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input\"><input></a></code>\n, this property will be <code>null</code>, if it isn't the id of a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element.</li> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> this must be <code>null</code>.</li> </ul>","obsolete":false},{"name":"formAction","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formaction\">formaction</a></code>\n HTML attribute, containing the URI of a program that processes information submitted by the element. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-action\">action</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formEncType","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formenctype\">formenctype</a></code>\n HTML attribute, containing the type of content that is used to submit the form to the server. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-enctype\">enctype</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formMethod","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formmethod\">formmethod</a></code>\n HTML attribute, containing the HTTP method that the browser uses to submit the form. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-method\">method</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formNoValidate","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formnovalidate\">formnovalidate</a></code>\n HTML attribute, indicating that the form is not to be validated when it is submitted. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-novalidate\">novalidate</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formTarget","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-formtarget\">formtarget</a></code>\n HTML attribute, containing a name or keyword indicating where to display the response that is received after submitting the form. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-target\">target</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"height","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-height\">height</a></code>\n HTML attribute, which defines the height of the image displayed for the button, if the value of <strong>type</strong> is <span>image</span>.","obsolete":false},{"name":"indeterminate","help":"Indicates that a checkbox is neither on nor off.","obsolete":false},{"name":"labels","help":"A list of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/label\"><label></a></code>\n elements that are labels for this element.","obsolete":false},{"name":"list","help":"Identifies a list of pre-defined options to suggest to the user. The value must be the <strong>id</strong> of a <code><a class=\"new\" href=\"https://developer.mozilla.org/en/HTML/Element/datalist\" rel=\"internal\"><datalist></a></code> element in the same document. The browser displays only options that are valid values for this input element. This attribute is ignored when the <strong>type</strong> attribute's value is <span>hidden</span>, <span>checkbox</span>, <span>radio</span>, <span>file</span>, or a button type.","obsolete":false},{"name":"max","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-max\">max</a></code>\n HTML attribute, containing the maximum (numeric or date-time) value for this item, which must not be less than its minimum (<strong>min</strong> attribute) value.","obsolete":false},{"name":"maxLength","help":"<p>Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-maxlength\">maxlength</a></code>\n HTML attribute, containing the maximum length of text (in Unicode code points) that the value can be changed to. The constraint is evaluated only when the value is changed</p> <div class=\"note\"><strong>Note:</strong> If you set <code>maxlength</code> to a negative value programmatically, an exception will be thrown.</div>","obsolete":false},{"name":"min","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-min\">min</a></code>\n HTML attribute, containing the minimum (numeric or date-time) value for this item, which must not be greater than its maximum (<strong>max</strong> attribute) value.","obsolete":false},{"name":"multiple","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-multiple\">multiple</a></code>\n HTML attribute, indicating whether more than one value is possible (e.g., multiple files).","obsolete":false},{"name":"name","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-name\">name</a></code>\n HTML attribute, containing a name that identifies the element when submitting the form.","obsolete":false},{"name":"pattern","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-pattern\">pattern</a></code>\n HTML attribute, containing a regular expression that the control's value is checked against. The pattern must match the entire value, not just some subset. Use the <strong>title</strong> attribute to describe the pattern to help the user. This attribute applies when the value of the <strong>type</strong> attribute is <span>text</span>, <span>search</span>, <span>tel</span>, <span>url</span> or <span>email</span>; otherwise it is ignored.","obsolete":false},{"name":"placeholder","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-placeholder\">placeholder</a></code>\n HTML attribute, containing a hint to the user of what can be entered in the control. The placeholder text must not contain carriage returns or line-feeds. This attribute applies when the value of the <strong>type</strong> attribute is <span>text</span>, <span>search</span>, <span>tel</span>, <span>url</span> or <span>email</span>; otherwise it is ignored.","obsolete":false},{"name":"readOnly","help":"<p>Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-readonly\">readonly</a></code>\n HTML attribute, indicating that the user cannot modify the value of the control.</p> <p><span><a href=\"https://developer.mozilla.org/en/HTML/HTML5\" rel=\"custom nofollow\">HTML 5</a></span> This is ignored if the value of the <strong>type</strong> attribute is <span>hidden</span>, <span>range</span>, <span>color</span>, <span>checkbox</span>, <span>radio</span>, <span>file</span>, or a button type.</p>","obsolete":false},{"name":"required","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-required\">required</a></code>\n HTML attribute, indicating that the user must fill in a value before submitting a form.","obsolete":false},{"name":"selectionDirection","help":"The direction in which selection occurred. This is \"forward\" if selection was performed in the start-to-end direction of the current locale, or \"backward\" for the opposite direction. This can also be \"none\" if the direction is unknown.\"","obsolete":false},{"name":"selectionEnd","help":"The index of the end of selected text.","obsolete":false},{"name":"selectionStart","help":"The index of the beginning of selected text.","obsolete":false},{"name":"size","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-size\">size</a></code>\n HTML attribute, containing size of the control. This value is in pixels unless the value of <strong>type</strong> is <span>text</span> or <span>password</span>, in which case, it is an integer number of characters. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> Applies only when <strong>type</strong> is set to <span>text</span>, <span>search</span>, <span>tel</span>, <span>url</span>, <span>email</span>, or <span>password</span>; otherwise it is ignored.","obsolete":false},{"name":"src","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-src\">src</a></code>\n HTML attribute, which specifies a URI for the location of an image to display on the graphical submit button, if the value of <strong>type</strong> is <span>image</span>; otherwise it is ignored.","obsolete":false},{"name":"step","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-step\">step</a></code>\n HTML attribute, which works with<strong> min</strong> and <strong>max</strong> to limit the increments at which a numeric or date-time value can be set. It can be the string <span>any</span> or a positive floating point number. If this is not set to <span>any</span>, the control accepts only values at multiples of the step value greater than the minimum.","obsolete":false},{"name":"tabIndex","help":"The position of the element in the tabbing navigation order for the current document. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"type","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-type\">type</a></code>\n HTML attribute, indicating the type of control to display. See \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-type\">type</a></code>\n attribute of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input\"><input></a></code>\n for possible values.","obsolete":false},{"name":"useMap","help":"A client-side image map. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.","obsolete":false},{"name":"validity","help":"The validity states that this element is in. ","obsolete":false},{"name":"value","help":"Current value in the control.","obsolete":false},{"name":"valueAsDate","help":"The value of the element, interpreted as a date, or <code>null</code> if conversion is not possible.","obsolete":false},{"name":"valueAsNumber","help":"<p>The value of the element, interpreted as one of the following in order:</p> <ol> <li>a time value</li> <li>a number</li> <li><code>null</code> if conversion is not possible</li> </ol>","obsolete":false},{"name":"width","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input#attr-width\">width</a></code>\n HTML attribute, which defines the width of the image displayed for the button, if the value of <strong>type</strong> is <span>image</span>.","obsolete":false},{"name":"willValidate","help":"Indicates whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLInputElement"},"HTMLButtonElement":{"title":"HTMLButtonElement","summary":"DOM <code>Button </code>objects expose the <a class=\" external\" title=\"http://www.w3.org/TR/html5/the-button-element.html#the-button-element\" rel=\"external\" href=\"http://www.w3.org/TR/html5/the-button-element.html#the-button-element\" target=\"_blank\">HTMLButtonElement</a> \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> (or <a class=\" external\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-34812697\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-34812697\" target=\"_blank\">HTMLButtonElement</a> \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span>) interface, which provides properties and methods (beyond the <a href=\"https://developer.mozilla.org/en/DOM/element\" rel=\"internal\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of button elements.","members":[{"name":"checkValidity","help":"Not supported for button elements.","obsolete":false},{"name":"setCustomValidity","help":"Not supported for button elements.","obsolete":false},{"name":"accessKey","help":"A single-character keyboard key to give access to the button. In \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> this attribute is inherited from <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/HTMLElement\">HTMLElement</a></code>","obsolete":false},{"name":"autofocus","help":"The control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified.","obsolete":false},{"name":"disabled","help":"The control is disabled, meaning that it does not accept any clicks.","obsolete":false},{"name":"form","help":"<p>The form that this button is associated with. If the button is a descendant of a form element, then this attribute is the ID of that form element.</p> <p>If the button is not a descendant of a form element, then:</p> <ul> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> The attribute can be the ID of any form element in the same document.</li> <li>\n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML\">HTML 4</a></span> The attribute is null.</li> </ul>","obsolete":false},{"name":"formAction","help":"The URI of a program that processes information submitted by the button. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-action\">action</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formEncType","help":"The type of content that is used to submit the form to the server. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-enctype\">enctype</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formMethod","help":"The HTTP method that the browser uses to submit the form. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-method\">method</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formNoValidate","help":"Indicates that the form is not to be validated when it is submitted. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-enctype\">enctype</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"formTarget","help":"A name or keyword indicating where to display the response that is received after submitting the form. If specified, this attribute overrides the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form#attr-target\">target</a></code>\n attribute of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/form\"><form></a></code>\n element that owns this element.","obsolete":false},{"name":"labels","help":"A list of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/label\"><label></a></code>\n elements that are labels for this button.","obsolete":false},{"name":"name","help":"The name of the object when submitted with a form. \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> If specified, it must not be the empty string.","obsolete":false},{"name":"tabIndex","help":"Number that represents this element's position in the tabbing order. in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> this attribute is inherited as a <a title=\"en/HTML/Global attributes#attr-tabindex\" rel=\"internal\" href=\"https://developer.mozilla.org/en/HTML/Global_attributes#attr-tabindex\">global attribute</a>.","obsolete":false},{"name":"type","help":"<p>Indicates the behavior of the button. This is an enumerated attribute with the following possible values:</p> <ul> <li><code>submit</code>: The button submits the form. This is the default value if the attribute is not specified, \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span> or if it is dynamically changed to an empty or invalid value.</li> <li><code>reset</code>: The button resets the form.</li> <li><code>button</code>: The button does nothing.</li> </ul>","obsolete":false},{"name":"validationMessage","help":"A localized message that describes the validation constraints that the control does not satisfy (if any). This attribute is the empty string if the control is not a candidate for constraint validation (<strong>willValidate</strong> is false), or it satisfies its constraints.","obsolete":false},{"name":"validity","help":"The validity states that this button is in.","obsolete":false},{"name":"value","help":"The current form control value of the button. ","obsolete":false},{"name":"willValidate","help":"Indicates whether the button is a candidate for constraint validation. It is false if any conditions bar it from constraint validation.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLButtonElement"},"PageTransitionEvent":{"title":"Interface documentation status","members":[],"srcUrl":"https://developer.mozilla.org/User:trevorh/Interface_documentation_status","skipped":true,"cause":"Suspect title"},"TextTrack":{"title":"track","members":[],"srcUrl":"https://developer.mozilla.org/en/HTML/Element/track","skipped":true,"cause":"Suspect title"},"SVGLangSpace":{"title":"SVGImageElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGImageElement","skipped":true,"cause":"Suspect title"},"SVGTitleElement":{"title":"SVGTitleElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGTitleElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/title\"><title></a></code>\n element.","members":[],"srcUrl":"https://developer.mozilla.org/en/Document_Object_Model_(DOM)/SVGTitleElement"},"SVGFECompositeElement":{"title":"feComposite","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap\"><feDisplacementMap></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"<p>Two input images are joined by means of an \n<code><a rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Attribute/operator\" class=\"new\">operator</a></code> applied to each input pixel together with an arithmetic operation</p>\n<pre>result = k1*in1*in2 + k2*in1 + k3*in2 + k4</pre>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in2","name":"in2","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/k1","name":"k1","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/operator","name":"operator","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/k2","name":"k2","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in","name":"in","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/k3","name":"k3","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/k4","name":"k4","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feComposite"},"ElementTraversal":{"title":"element","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/element","skipped":true,"cause":"Suspect title"},"SVGAnimatedEnumeration":{"title":"SVGAnimatedEnumeration","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"The <code>SVGAnimatedEnumeration</code> interface is used for attributes whose value must be a constant from a particular enumeration and which can be animated.","members":[{"name":"baseVal","help":"The base value of the given attribute before applying any animations.","obsolete":false},{"name":"animVal","help":"If the given attribute or property is being animated, contains the current animated value of the attribute or property. If the given attribute or property is not currently being animated, contains the same value as <code>baseVal</code>.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGAnimatedEnumeration"},"CustomEvent":{"title":"CustomEvent","summary":"The DOM <code>CustomEvent</code> are events initialized by an application for any purpose. It's represented by the <code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsIDOMCustomEvent&ident=nsIDOMCustomEvent\" class=\"new\">nsIDOMCustomEvent</a></code>\n interface, which extends the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMEvent\">nsIDOMEvent</a></code>\n interface.","members":[{"name":"initCustomEvent","help":"<p>Initializes the event in a manner analogous to the similarly-named method in the DOM Events interfaces.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>type</code></dt> <dd>The name of the event.</dd> <dt><code>canBubble</code></dt> <dd>A boolean indicating whether the event bubbles up through the DOM or not.</dd> <dt><code>cancelable</code></dt> <dd>A boolean indicating whether the event is cancelable.</dd> <dt><code>detail</code></dt> <dd>The data passed when initializing the event.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void initCustomEvent(\n in DOMString type,\n in boolean canBubble,\n in boolean cancelable,\n in any detail\n);\n</pre>","obsolete":false},{"name":"detail","help":"The data passed when initializing the event.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/CustomEvent","specification":"<a rel=\"custom\" href=\"http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#interface-CustomEvent\">DOM Level 3 Events : CustomEvent</a><span title=\"Working Draft\">WD</span>"},"FileReader":{"title":"FileReader","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Firefox (Gecko)</th> <th>Chrome</th> <th>Internet Explorer*</th> <th>Opera*</th> <th>Safari</th> </tr> <tr> <td>Basic support</td> <td>3.6 (1.9.2)\n</td> <td>7</td> <td>10</td> <td><span title=\"Not supported.\">--</span></td> <td>\n<em><a rel=\"custom\" href=\"http://nightly.webkit.org/\">Nightly build</a></em></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Firefox Mobile (Gecko)</th> <th>Android</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<p>*IE9 has a <a class=\"external\" title=\"http://html5labs.interoperabilitybridges.com/prototypes/fileapi/fileapi/info\" rel=\"external\" href=\"http://html5labs.interoperabilitybridges.com/prototypes/fileapi/fileapi/info\" target=\"_blank\">File API Lab</a>. Opera has <a class=\"external\" title=\"http://my.opera.com/desktopteam/blog/2011/04/05/stability-gmail-socks\" rel=\"external\" href=\"http://my.opera.com/desktopteam/blog/2011/04/05/stability-gmail-socks\" target=\"_blank\">partial support</a> in 11.10.</p>","srcUrl":"https://developer.mozilla.org/en/DOM/FileReader","seeAlso":"<li><a title=\"en/Using files from web applications\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Using_files_from_web_applications\">Using files from web applications</a></li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n</li> <li>\n<a rel=\"custom\" href=\"http://www.w3.org/TR/FileAPI/#FileReader-interface\">Specification: File API: FileReader</a><span title=\"Working Draft\">WD</span></li>","summary":"<p>The <code>FileReader</code> object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n objects to specify the file or data to read. File objects may be obtained in one of two ways: from a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/FileList\">FileList</a></code>\n object returned as a result of a user selecting files using the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/input\"><input></a></code>\n element, or from a drag and drop operation's <a title=\"En/DragDrop/DataTransfer\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DragDrop/DataTransfer\"><code>DataTransfer</code></a> object.</p>\n<p>To create a <code>FileReader</code>, simply do the following:</p>\n<pre>var reader = new FileReader();\n</pre>\n<p>See <a title=\"en/Using files from web applications\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Using_files_from_web_applications\">Using files from web applications</a> for details and examples.</p>","members":[{"name":"readAsDataURL","help":"<p>Starts reading the contents of the specified <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n. When the read operation is finished, the <code>readyState</code> will become <code>DONE</code>, and the <code>onloadend</code> callback, if any, will be called. At that time, the <code>result</code> attribute contains a <code>data:</code> URL representing the file's data.</p>\n\n<p>This method is useful, for example, to get a preview of an image before uploading it:</p>\n\n <pre name=\"code\" class=\"xml\"><!doctype html>\n<html>\n<head>\n<meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\" />\n<title>Image preview example</title>\n<script type=\"text/javascript\">\noFReader = new FileReader(), rFilter = /^(image\\/bmp|image\\/cis-cod|image\\/gif|image\\/ief|image\\/jpeg|image\\/jpeg|image\\/jpeg|image\\/pipeg|image\\/png|image\\/svg\\+xml|image\\/tiff|image\\/x-cmu-raster|image\\/x-cmx|image\\/x-icon|image\\/x-portable-anymap|image\\/x-portable-bitmap|image\\/x-portable-graymap|image\\/x-portable-pixmap|image\\/x-rgb|image\\/x-xbitmap|image\\/x-xpixmap|image\\/x-xwindowdump)$/i;\n\noFReader.onload = function (oFREvent) {\n document.getElementById(\"uploadPreview\").src = oFREvent.target.result;\n};\n\nfunction loadImageFile() {\n if (document.getElementById(\"uploadImage\").files.length === 0) { return; }\n var oFile = document.getElementById(\"uploadImage\").files[0];\n if (!rFilter.test(oFile.type)) { alert(\"You must select a valid image file!\"); return; }\n oFReader.readAsDataURL(oFile);\n}\n</script>\n</head>\n\n<body onload=\"loadImageFile();\">\n<form name=\"uploadForm\">\n<table>\n<tbody>\n<tr>\n<td><img id=\"uploadPreview\" style=\"width: 100px; height: 100px;\" src=\"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Csvg%20width%3D%22153%22%20height%3D%22153%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%0A%20%3Cg%3E%0A%20%20%3Ctitle%3ENo%20image%3C/title%3E%0A%20%20%3Crect%20id%3D%22externRect%22%20height%3D%22150%22%20width%3D%22150%22%20y%3D%221.5%22%20x%3D%221.500024%22%20stroke-width%3D%223%22%20stroke%3D%22%23666666%22%20fill%3D%22%23e1e1e1%22/%3E%0A%20%20%3Ctext%20transform%3D%22matrix%286.66667%2C%200%2C%200%2C%206.66667%2C%20-960.5%2C%20-1099.33%29%22%20xml%3Aspace%3D%22preserve%22%20text-anchor%3D%22middle%22%20font-family%3D%22Fantasy%22%20font-size%3D%2214%22%20id%3D%22questionMark%22%20y%3D%22181.249569%22%20x%3D%22155.549819%22%20stroke-width%3D%220%22%20stroke%3D%22%23666666%22%20fill%3D%22%23000000%22%3E%3F%3C/text%3E%0A%20%3C/g%3E%0A%3C/svg%3E\" alt=\"Image preview\" /></td>\n<td><input id=\"uploadImage\" type=\"file\" name=\"myPhoto\" onchange=\"loadImageFile();\" /></td>\n</tr>\n</tbody>\n</table>\n<p><input type=\"submit\" value=\"Send\" /></p>\n</form>\n</body>\n</html></pre>\n \n<div id=\"section_13\"><span id=\"Parameters_4\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>file</code></dt> <dd>The DOM <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n from which to read.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void readAsDataURL(\n in Blob file\n);\n</pre>","obsolete":false},{"name":"readAsText","help":"<p>Starts reading the specified blob's contents. When the read operation is finished, the <code>readyState</code> will become <code>DONE</code>, and the <code>onloadend</code> callback, if any, will be called. At that time, the <code>result</code> attribute contains the contents of the file as a text string.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_5\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n from which to read.</dd> <dt><code>encoding</code> \n<span title=\"\">Optional</span>\n</dt> <dd>A string indicating the encoding to use for the returned data. By default, UTF-8 is assumed if this parameter is not specified.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void readAsText(\n in Blob blob,\n in DOMString encoding \n<span style=\"border: 1px solid #9ED2A4; background-color: #C0FFC7; font-size: x-small; white-space: nowrap; padding: 2px;\" title=\"\">Optional</span>\n\n);\n</pre>","obsolete":false},{"name":"abort","help":"<p>Aborts the read operation. Upon return, the <code>readyState</code> will be <code>DONE</code>.</p>\n\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<p>None.</p>\n</div><div id=\"section_8\"><span id=\"Exceptions_thrown\"></span><h6 class=\"editable\">Exceptions thrown</h6>\n<dl> <dt><code>DOM_FILE_ABORT_ERR</code></dt> <dd><code>abort()</code> was called while no read operation was in progress (that is, the state wasn't <code>LOADING</code>). <div class=\"note\"><strong>Note:</strong> This exception was not thrown by Gecko until Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)\n.</div>\n</dd>\n</dl>\n<p>\n</p><div>\n<span id=\"readAsArrayBuffer()\"></span></div></div>","idl":"<pre class=\"eval\">void abort();\n</pre>","obsolete":false},{"name":"readAsBinaryString","help":"<p>Starts reading the contents of the specified <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n, which may be a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n. When the read operation is finished, the <code>readyState</code> will become <code>DONE</code>, and the <code>onloadend</code> callback, if any, will be called. At that time, the <code>result</code> attribute contains the raw binary data from the file.</p>\n\n<div id=\"section_11\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n from which to read.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void readAsBinaryString(\n in Blob blob\n);\n</pre>","obsolete":false},{"name":"readAsArrayBuffer","help":"<div id=\"section_8\"><p>Starts reading the contents of the specified <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n. When the read operation is finished, the <code>readyState</code> will become <code>DONE</code>, and the <code>onloadend</code> callback, if any, will be called. At that time, the <code>result</code> attribute contains an <code><a title=\"/en/JavaScript_typed_arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code> representing the file's data.</p>\n\n</div><div id=\"section_9\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/Blob\">Blob</a></code>\n or <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/File\">File</a></code>\n to read into the <code><a title=\"/en/JavaScript_typed_arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void readAsArrayBuffer(\n in Blob blob\n);\n</pre>","obsolete":false},{"name":"EMPTY","help":"No data has been loaded yet.","obsolete":false},{"name":"LOADING","help":"Data is currently being loaded.","obsolete":false},{"name":"DONE","help":"The entire read request has been completed.","obsolete":false},{"name":"error","help":"The error that occurred while reading the file. <strong>Read only.</strong>","obsolete":false},{"name":"readyState","help":"Indicates the state of the <code>FileReader</code>. This will be one of the <a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/FileReader#State_constants\">State constants</a>. <strong>Read only.</strong>","obsolete":false},{"name":"result","help":"The file's contents. This property is only valid after the read operation is complete, and the format of the data depends on which of the methods was used to initiate the read operation. <strong>Read only.</strong>","obsolete":false},{"name":"onload","help":"Called when the read operation is successfully completed.","obsolete":false},{"name":"onabort","help":"Called when the read operation is aborted.","obsolete":false},{"name":"onloadend","help":"Called when the read is completed, whether successful or not. This is called after either <code>onload</code> or <code>onerror</code>.","obsolete":false},{"name":"onprogress","help":"Called periodically while the data is being read.","obsolete":false},{"name":"onloadstart","help":"Called when reading the data is about to begin.","obsolete":false},{"name":"onerror","help":"Called when an error occurs.","obsolete":false}]},"DataView":{"title":"DataView","srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/DataView","seeAlso":"<li><a class=\"external\" rel=\"external\" href=\"http://www.khronos.org/registry/typedarray/specs/latest/#8\" title=\"http://www.khronos.org/registry/typedarray/specs/latest/#8\" target=\"_blank\">DataView Specification</a></li> <li><a class=\"external\" rel=\"external\" href=\"http://www.khronos.org/registry/typedarray/specs/latest/\" title=\"http://www.khronos.org/registry/typedarray/specs/latest/\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li> <li><a class=\"link-https\" rel=\"external\" href=\"https://github.com/vjeux/jDataView\" title=\"https://github.com/vjeux/jDataView\" target=\"_blank\">jDataView</a>: a Javascript library that provides the DataView API to all browsers.</li>","summary":"<div><strong>DRAFT</strong>\n<div>This page is not complete.</div>\n</div>\n\n<p></p>\n<div class=\"note\"><strong>Note:</strong> <code>DataView</code> is not yet implemented in Gecko. It is implemented in Chrome 9.</div>\n<p>An <code>ArrayBuffer</code> is a useful object for representing an arbitrary chunk of data. In many cases, such data will be read from disk or from the network, and will not follow the alignment restrictions that are imposed on the <a title=\"en/JavaScript_typed_arrays/ArrayBufferView\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView\">Typed Array Views</a> described earlier. In addition, the data will often be heterogeneous in nature and have a defined byte order.</p>\n<p>The <code>DataView</code> view provides a low-level interface for reading such data from and writing it to an <code><a title=\"en/JavaScript_typed_arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>.</p>","constructor":"DataView DataView(<a title=\"en/JavaScript_typed_arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a> buffer, optional unsigned long byteOffset, optional unsigned long byteLength);<p>Returns a new <code>DataView</code> object using the passed <a title=\"en/JavaScript_typed_arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a> for its storage.</p>\n<pre>DataView DataView(\n ArrayBuffer buffer,\n optional unsigned long byteOffset,\n optional unsigned long byteLength\n);\n</pre>\n<div id=\"section_6\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>buffer</code></dt> <dd>An existing <a title=\"en/JavaScript_typed_arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> to use as the storage for the new <code>DataView</code> object.</dd> <dt><code>byteOffset</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the view of the buffer will start with the first byte.</dd> <dt><code>byteLength</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The number of elements in the byte array. If unspecified, length of the view will match the buffer's length.</dd>\n</dl>\n</div><div id=\"section_7\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>DataView</code> object representing the specified data buffer.</p>\n</div><div id=\"section_8\"><span id=\"Exceptions_thrown\"></span><h6 class=\"editable\">Exceptions thrown</h6>\n<dl> <dt><code>INDEX_SIZE_ERR</code></dt> <dd>The <code>byteOffset</code> and <code>byteLength</code> result in the specified view extending past the end of the buffer.</dd>\n</dl>\n</div>","members":[{"name":"getInt8","help":"<p>Gets a signed 8-bit integer at the specified byte offset from the start of the view.</p>\n\n<div id=\"section_11\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>offset</code></dt> <dd>The offset, in byte, from the start of the view where to read the data.</dd>\n</dl>\n</div><div id=\"section_12\"><span id=\"Exceptions_thrown_2\"></span><h6 class=\"editable\">Exceptions thrown</h6>\n<dl> <dt><code>INDEX_SIZE_ERR</code></dt> <dd>The <code>byteOffset</code> is set such as it would read beyond the end of the view</dd>\n</dl>\n</div>","idl":"<pre>byte getInt8(\n unsigned long byteOffset\n);\n</pre>","obsolete":false},{"name":"getUint8","help":"<p>Gets an unsigned 8-bit integer at the specified byte offset from the start of the view.</p>\n\n<div id=\"section_14\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>offset</code></dt> <dd>The offset, in byte, from the start of the view where to read the data.</dd>\n</dl>\n<dl> <dt><code>INDEX_SIZE_ERR</code></dt> <dd>The <code>byteOffset</code> is set such as it would read beyond the end of the view</dd>\n</dl>\n</div>","idl":"<pre>byte getUint8(\n unsigned long byteOffset\n);\n</pre>","obsolete":false}]},"SVGLocatable":{"title":"SVGSVGElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGSVGElement","skipped":true,"cause":"Suspect title"},"SVGHKernElement":{"title":"SVGHKernElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGHKernElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/hkern\"><hkern></a></code>\n SVG Element","summary":"<p>The <code>SVGHKernElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/hkern\"><hkern></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/hkern\"><hkern></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"SVGNumber":{"title":"SVGNumber","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>\n<div id=\"compat-mobile\">\n<table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody>\n</table>\n</div>","summary":"<p>The <code>SVGNumber</code> interface correspond to the <a title=\"https://developer.mozilla.org/en/SVG/Content_type#Number\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Content_type#Number\"><number></a> basic data type.</p>\n<p>An <code>SVGNumber</code> object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.</p>","members":[{"name":"value","help":"<p>The value of the given attribute.</p> <p><strong>Exceptions on setting:</strong> a <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/DOM/DOMException\">DOMException</a></code>\n with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is Raised on an attempt to change the value of a read only attribute.</p>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGNumber"},"DirectoryEntrySync":{"title":"DirectoryEntrySync","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>13\n<span title=\"prefix\">webkit</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<div><strong>DRAFT</strong> <div>This page is not complete.</div>\n</div>\n<p>The <code>DirectoryEntry</code> interface of the <a title=\"en/DOM/File_API/File_System_API\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/File_API/File_System_API\">FileSystem API</a> represents a directory in a file system.</p>","members":[{"name":"getFile","help":"<p>Creates or looks up a file.</p>\n<pre>void moveTo (\n <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_8\"><span id=\"Parameter\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>path</dt> <dd>Either an absolute path or a relative path from this DirectoryEntry to the file to be looked up or created. It is an error to attempt to create a file whose immediate parent does not yet exist.</dd> <dt>options</dt>\n</dl>\n<ul> <li>If create and exclusive are both true, and the path already exists, getFile must fail.</li> <li>If create is true, the path doesn't exist, and no other error occurs, getFile must create it as a zero-length file and return a corresponding FileEntry.</li> <li>If create is not true and the path doesn't exist, getFile must fail.</li> <li>If create is not true and the path exists, but is a directory, getFile must fail.</li> <li>Otherwise, if no other error occurs, getFile must return a FileEntry corresponding to path.</li>\n</ul>\n<dl> <dt>successCallback</dt> <dd>A callback that is called to return the file selected or created.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_9\"><span id=\"Returns_3\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"getDirectory","help":"<p>Creates or looks up a directory.</p>\n<pre>void vopyTo (\n <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>\n);</pre>\n<div id=\"section_11\"><span id=\"Parameter_2\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>path</dt> <dd>Either an absolute path or a relative path from this DirectoryEntry to the file to be looked up or created. It is an error to attempt to create a file whose immediate parent does not yet exist.</dd> <dt>options</dt>\n</dl>\n<ul> <li>If create and exclusive are both true, and the path already exists, getDirectory must fail.</li> <li>If create is true, the path doesn't exist, and no other error occurs, getDirectory must create it as a zero-length file and return a corresponding getDirectory.</li> <li>If create is not true and the path doesn't exist, getDirectory must fail.</li> <li>If create is not true and the path exists, but is a directory, getDirectory must fail.</li> <li>Otherwise, if no other error occurs, getFile must return a getDirectory corresponding to path.</li>\n</ul>\n<dt>successCallback</dt>\n<dd>A callback that is called to return the DirectoryEntry selected or created.</dd>\n<dt>errorCallback</dt>\n<dd>A callback that is called when errors happen.</dd>\n</div><div id=\"section_12\"><span id=\"Returns_4\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"removeRecursively","help":"<p>Deletes a directory and all of its contents, if any. If you are deleting a directory that contains a file that cannot be removed, some of the contents of the directory might be deleted. You cannot delete the root directory of a file system.</p>\n<pre>DOMString toURL (\n <em>(in </em>VoidCallback successCallback, optional ErrorCallback errorCallback<em>);</em>\n);</pre>\n<div id=\"section_14\"><span id=\"Parameter_3\"></span><h5 class=\"editable\">Parameter</h5>\n<dl> <dt>successCallback</dt> <dd>A callback that is called to return the DirectoryEntry selected or created.</dd> <dt>errorCallback</dt> <dd>A callback that is called when errors happen.</dd>\n</dl>\n</div><div id=\"section_15\"><span id=\"Returns_5\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>void</code></dt>\n</dl>\n</div>","obsolete":false},{"name":"createReader","help":"<p>Creates a new DirectoryReader to read entries from this Directory.</p>\n<pre>void getMetada ();</pre>\n<div id=\"section_6\"><span id=\"Returns_2\"></span><h5 class=\"editable\">Returns</h5>\n<dl> <dt><code>DirectoryReader</code></dt>\n</dl>\n</div>","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/File_API/File_System_API/DirectoryEntrySync"},"HTMLTableRowElement":{"title":"HTMLTableRowElement","summary":"DOM <code>table row</code> objects expose the <code><a class=\"external\" rel=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-6986576\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-6986576\" target=\"_blank\">HTMLTableRowElement</a></code> interface, which provides special properties and methods (beyond the regular <a title=\"en/DOM/element\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/element\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of rows in an HTML table.","members":[{"name":"insertCell","help":"","obsolete":false},{"name":"deleteCell","help":"row.insertCell","obsolete":false},{"name":"bgColor","help":"row.cells","obsolete":false},{"name":"align","help":"<a title=\"en/DOM/tableRow.bgColor\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/tableRow.bgColor\" class=\"new \">row.bgColor</a> \n\n<span class=\"deprecatedInlineTemplate\" title=\"\">Deprecated</span>","obsolete":false},{"name":"cells","help":"row.ch","obsolete":false},{"name":"rowIndex","help":"row.sectionRowIndex","obsolete":false},{"name":"sectionRowIndex","help":"row.vAlign","obsolete":false},{"name":"ch","help":"row.chOff","obsolete":false},{"name":"chOff","help":"row.rowIndex","obsolete":false},{"name":"vAlign","help":"","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLTableRowElement"},"CanvasPixelArray":{"title":"CanvasPixelArray","summary":"<p>Returned by <a title=\"en/DOM/ImageData\" rel=\"internal\" href=\"https://developer.mozilla.org/en/DOM/ImageData\">ImageData</a>'s <code>data</code> attribute.</p>\n<p>The <code>CanvasPixelArray</code> object indicates the color components of each pixel of an image, first for each of its three RGB values in order (0-255) and then its alpha component (0-255), proceeding from left-to-right, for each row (rows are top to bottom). </p>\n<pre class=\"idl\"> readonly attribute unsigned long <strong>length</strong>\n <a href=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-canvaspixelarray-get\" title=\"dom-CanvasPixelArray-get\">getter</a> <strong>octet</strong> (in unsigned long index);\n <a href=\"http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-canvaspixelarray-set\" title=\"dom-CanvasPixelArray-set\">setter</a> <strong>void</strong> (in unsigned long index, in octet value);\n</pre>","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/CanvasPixelArray","specification":"http://www.whatwg.org/specs/web-apps...nvaspixelarray"},"SVGURIReference":{"title":"SVGImageElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGImageElement","skipped":true,"cause":"Suspect title"},"SVGFontFaceNameElement":{"title":"SVGFontFaceNameElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGFontFaceNameElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-name\"><font-face-name></a></code>\n SVG Element","summary":"<p>The <code>SVGFontFaceNameElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-name\"><font-face-name></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-name\"><font-face-name></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"HTMLIsIndexElement":{"title":"HTTP","members":[],"srcUrl":"https://developer.mozilla.org/en/HTTP?action=edit","skipped":true,"cause":"Suspect title"},"Geoposition":{"title":"Using geolocation","members":[],"srcUrl":"https://developer.mozilla.org/en/Using_geolocation","skipped":true,"cause":"Suspect title"},"SVGPathSegLinetoRel":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"SVGTextContentElement":{"title":"SVGTextPositioningElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGTextPositioningElement","skipped":true,"cause":"Suspect title"},"Notation":{"title":"Notation","summary":"<p><span>NOTE: This is not implemented in Mozilla</span></p>\n<p>Represents a DTD notation (read-only). May declare format of an unparsed entity or formally declare the document's processing instruction targets. Inherits methods and properties from <a title=\"En/DOM/Node\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node\"><code>Node</code></a>. Its <code><a title=\"En/DOM/Node/NodeName\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node/NodeName\" class=\"new internal\">nodeName</a></code> is the notation name. Has no parent.</p>","members":[{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Notation.systemId","name":"systemId","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/En/DOM/Notation.publicId","name":"publicId","help":""}],"srcUrl":"https://developer.mozilla.org/en/DOM/Notation","specification":"http://www.w3.org/TR/DOM-Level-3-Cor...ml#ID-5431D1B9"},"MutationEvent":{"title":"document.createEvent","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/document.createEvent","skipped":true,"cause":"Suspect title"},"Int8Array":{"title":"Int8Array","srcUrl":"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array","seeAlso":"<li><a class=\"link-https\" title=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" rel=\"external\" href=\"https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html\" target=\"_blank\">Typed Array Specification</a></li> <li><a title=\"en/JavaScript typed arrays\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays\">JavaScript typed arrays</a></li>","summary":"<p>The <code>Int8Array</code> type represents an array of twos-complement 8-bit signed integers.</p>\n<p>Once established, you can reference elements in the array using the object's methods, or using standard array index syntax (that is, using bracket notation).</p>","constructor":"<div class=\"note\"><strong>Note:</strong> In these methods, <code><em>TypedArray</em></code> represents any of the <a title=\"en/JavaScript typed arrays/ArrayBufferView#Typed array subclasses\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBufferView#Typed_array_subclasses\">typed array object types</a>.</div>\n<table class=\"standard-table\"> <tbody> <tr> <td><code>Int8Array <a title=\"en/JavaScript typed arrays/Int8Array#Int8Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#Int8Array%28%29\">Int8Array</a>(unsigned long length);<br> </code></td> </tr> <tr> <td><code>Int8Array <a title=\"en/JavaScript typed arrays/Int8Array#Int8Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#Int8Array%28%29\">Int8Array</a>(<em>TypedArray</em> array);<br> </code></td> </tr> <tr> <td><code>Int8Array <a title=\"en/JavaScript typed arrays/Int8Array#Int8Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#Int8Array%28%29\">Int8Array</a>(sequence<type> array);<br> </code></td> </tr> <tr> <td><code>Int8Array <a title=\"en/JavaScript typed arrays/Int8Array#Int8Array()\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/Int8Array#Int8Array%28%29\">Int8Array</a>(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length);<br> </code></td> </tr> </tbody>\n</table><p>Returns a new <code>Int8Array</code> object.</p>\n<pre>Int8Array Int8Array(\n unsigned long length\n);\n\nInt8Array Int8Array(\n <em>TypedArray</em> array\n);\n\nInt8Array Int8Array(\n sequence<type> array\n);\n\nInt8Array Int8Array(\n ArrayBuffer buffer,\n optional unsigned long byteOffset,\n optional unsigned long length\n);\n</pre>\n<div id=\"section_7\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>length</code></dt> <dd>The number of elements in the byte array. If unspecified, length of the array view will match the buffer's length.</dd> <dt><code>array</code></dt> <dd>An object of any of the typed array types (such as <code>Int32Array</code>), or a sequence of objects of a particular type, to copy into a new <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a>. Each value in the source array is converted to an 8-bit integer before being copied into the new array.</dd> <dt><code>buffer</code></dt> <dd>An existing <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> to use as the storage for the new <code>Int8Array</code> object.</dd> <dt><code>byteOffset<br> </code></dt> <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the <code>Int8Array</code>'s view of the buffer will start with the first byte.</dd>\n</dl>\n</div><div id=\"section_8\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>A new <code>Int8Array</code> object representing the specified data buffer.</p>\n</div>","members":[{"name":"subarray","help":"<p>Returns a new <code>Int8Array</code> view on the <a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\"><code>ArrayBuffer</code></a> store for this <code>Int8Array</code> object.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>begin</code></dt> <dd>The offset to the first element in the array to be referenced by the new <code>Int8Array</code> object.</dd> <dt><code>end</code> \n<span title=\"\">Optional</span>\n</dt> <dd>The offset to the last element in the array to be referenced by the new <code>Int8Array</code> object; if not specified, all elements from the one specified by <code>begin</code> to the end of the array are included in the new view.</dd>\n</dl>\n</div><div id=\"section_16\"><span id=\"Notes_2\"></span><h6 class=\"editable\">Notes</h6>\n<p>The range specified by <code>begin</code> and <code>end</code> is clamped to the valid index range for the current array; if the computed length of the new array would be negative, it's clamped to zero. If either <code>begin</code> or <code>end</code> is negative, it refers to an index from the end of the array instead of from the beginning.</p>\n<div class=\"note\"><strong>Note:</strong> Keep in mind that this is creating a new view on the existing buffer; changes to the new object's contents will impact the original object and vice versa.</div>\n</div>","idl":"<pre>Int8Array subarray(\n long begin,\n optional long end\n);\n</pre>","obsolete":false},{"name":"set","help":"<p>Sets multiple values in the typed array, reading input values from a specified array.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>array</code></dt> <dd>An array from which to copy values. All values from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown. If the source array is a typed array, the two arrays may share the same underlying <code><a title=\"en/JavaScript typed arrays/ArrayBuffer\" rel=\"internal\" href=\"https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer\">ArrayBuffer</a></code>; the browser will intelligently copy the source range of the buffer to the destination range.</dd> <dt>offset \n<span title=\"\">Optional</span>\n</dt> <dd>The offset into the target array at which to begin writing values from the source <code>array</code>. If you omit this value, 0 is assumed (that is, the source <code>array</code> will overwrite values in the target array starting at index 0).</dd>\n</dl>\n</div>","idl":"<pre>void set(\n <em>TypedArray</em> array,\n optional unsigned long offset\n);\n\nvoid set(\n type[] array,\n optional unsigned long offset\n);\n</pre>","obsolete":false},{"name":"BYTES_PER_ELEMENT","help":"The size, in bytes, of each array element.","obsolete":false},{"name":"length","help":"The number of entries in the array; for these 8-bit values, this is the same as the size of the array in bytes. <strong>Read only.</strong>","obsolete":false}]},"IDBVersionChangeRequest":{"title":"IDBVersionChangeRequest","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td>12 \n<span title=\"prefix\">-webkit</span></td> <td>From 4.0 (2.0)\n to 4.0 (2.0)\n</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>6.0 (6.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<div class=\"warning\"><strong>Warning: </strong> The latest specification does not include this interface anymore as the <code>IDBDatabase.setVersion()</code> method has been removed. However, it is still implemented in not up-to-date browsers. See the compatibility table for version details.<br> The new way to do it is to use the <a title=\"en/IndexedDB/IDBOpenDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBOpenDBRequest\"><code>IDBOpenDBRequest</code></a> interface which has now the <code>onblocked</code> handler and the newly needed <code>onupgradeneeded</code> one.</div>\n<p>The <code>IDBVersionChangeRequest</code> interface the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API </a>represents a request to change the version of a database. It is used only by the <a title=\"en/IndexedDB/IDBDatabase#setVersion\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabase#setVersion\"><code>setVersion()</code></a> method of <code><a title=\"en/IndexedDB/IDBDatabase\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBDatabase\">IDBDatabase</a></code>.</p>\n<p>Inherits from: <code><a title=\"en/IndexedDB/IDBRequest\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBRequest\">IDBRequest</a></code></p>","members":[{"url":"","name":"onblocked","help":"The event handler for the blocked event.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBVersionChangeRequest"},"SVGPathSegCurvetoCubicRel":{"title":"SVGPathElement","members":[],"srcUrl":"https://developer.mozilla.org/en/DOM/SVGPathElement","skipped":true,"cause":"Suspect title"},"IDBVersionChangeEvent":{"title":"IDBVersionChangeEvent","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td><code>version</code></td> <td>12</td> <td> <p>From 4.0 (2.0)\n to</p> <p>9.0 (9.0)\n</p> </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>oldVersion</code></td> <td><span title=\"Not supported.\">--</span></td> <td> <p>10.0 (10.0)\n</p> </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> <tr> <td><code>newVersion</code></td> <td><span title=\"Not supported.\">--</span></td> <td> <p>10.0 (10.0)\n</p> </td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Phone</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td>4.0 (2.0)\n</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Not supported.\">--</span></td> </tr> </tbody> </table>\n</div>","summary":"<p>The <code>IDBVersionChangeEvent</code> interface of the <a title=\"en/IndexedDB\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB\">IndexedDB API</a> indicates that the version of the database has changed.</p>\n<p>The specification has changed and some not up-to-date browsers only support the deprecated unique attribute, <code>version</code>, from an early draft version.</p>","members":[{"url":"","name":"oldVersion","help":"Returns the old version of the database.","obsolete":false},{"url":"","name":"newVersion","help":"Returns the new version of the database.","obsolete":false},{"url":"","name":"version","help":"<div class=\"warning\"><strong>Warning:</strong> While this property is still implemented by not up-to-date browsers, the latest specification does replace it by the <code>oldVersion</code> and <code>newVersion</code> attributes. See compatibility table to know what browsers support them.</div> The new version of the database in a <a title=\"en/IndexedDB/IDBTransaction#VERSION CHANGE\" rel=\"internal\" href=\"https://developer.mozilla.org/en/IndexedDB/IDBTransaction#VERSION_CHANGE\">VERSION_CHANGE</a> transaction.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/IndexedDB/IDBVersionChangeEvent"},"SVGTextElement":{"title":"SVGTextElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGTextElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/text\"><text></a></code>\n SVG Element","summary":"The <code>SVGTextElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/text\"><text></a></code>\n elements, as well as methods to manipulate them.","members":[]},"HTMLBRElement":{"title":"HTMLBRElement","summary":"DOM break elements expose the <a class=\"external\" href=\"http://www.w3.org/TR/html5/text-level-semantics.html#the-br-element\" rel=\"external nofollow\" target=\"_blank\" title=\"http://www.w3.org/TR/html5/text-level-semantics.html#the-br-element\">HTMLBRElement</a> (or <span><a href=\"https://developer.mozilla.org/en/HTML\" rel=\"custom nofollow\">HTML 4</a></span> <a class=\"external\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-56836063\" rel=\"external nofollow\" target=\"_blank\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-56836063\"><code>HTMLBRElement</code></a>) interface which inherits from HTMLElement, but defines no additional members in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>. The introduced additional property is also deprecated in \n<span>HTML 4.01</span>.","members":[{"name":"clear","help":"Indicates flow of text around floating objects.","obsolete":true}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLBRElement"},"WebGLTexture":{"title":"Cross-domain textures","members":[],"srcUrl":"https://developer.mozilla.org/en/WebGL/Cross-Domain_Textures","skipped":true,"cause":"Suspect title"},"SVGForeignObjectElement":{"title":"SVGForeignObjectElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td>9.0</td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Not supported.\">--</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> <td><span title=\"Please update this with the earliest version of support.\">(Supported)</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGForeignObjectElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/foreignObject\"><foreignObject></a></code>\n SVG Element","summary":"The <code>SVGForeignObjectElement</code> interface provides access to the properties of <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/foreignObject\"><foreignObject></a></code>\n elements, as well as methods to manipulate them.","members":[{"name":"width","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/width\">width</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/foreignObject\"><foreignObject></a></code>\n element.","obsolete":false},{"name":"height","help":"Corresponds to attribute \n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Attribute/height\">height</a></code> on the given <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/foreignObject\"><foreignObject></a></code>\n element.","obsolete":false}]},"XPathResult":{"title":"XPathResult","seeAlso":"document.evaluate()","summary":"Refer to <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathResult\">nsIDOMXPathResult</a></code>\n for more detail.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SnapshotItem()","name":"snapshotItem","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/IterateNext()","name":"iterateNext","help":""},{"name":"ANY_TYPE","help":"A result set containing whatever type naturally results from evaluation of the expression. Note that if the result is a node-set then UNORDERED_NODE_ITERATOR_TYPE is always the resulting type.\n","obsolete":false},{"name":"NUMBER_TYPE","help":"A result containing a single number. This is useful for example, in an XPath expression using the <code>count()</code> function.\n","obsolete":false},{"name":"STRING_TYPE","help":"A result containing a single string.\n","obsolete":false},{"name":"BOOLEAN_TYPE","help":"A result containing a single boolean value. This is useful for example, in an XPath expression using the <code>not()</code> function.\n","obsolete":false},{"name":"UNORDERED_NODE_ITERATOR_TYPE","help":"A result node-set containing all the nodes matching the expression. The nodes may not necessarily be in the same order that they appear in the document.\n","obsolete":false},{"name":"ORDERED_NODE_ITERATOR_TYPE","help":"A result node-set containing all the nodes matching the expression. The nodes in the result set are in the same order that they appear in the document.\n","obsolete":false},{"name":"UNORDERED_NODE_SNAPSHOT_TYPE","help":"A result node-set containing snapshots of all the nodes matching the expression. The nodes may not necessarily be in the same order that they appear in the document.\n","obsolete":false},{"name":"ORDERED_NODE_SNAPSHOT_TYPE","help":"A result node-set containing snapshots of all the nodes matching the expression. The nodes in the result set are in the same order that they appear in the document.\n","obsolete":false},{"name":"ANY_UNORDERED_NODE_TYPE","help":"A result node-set containing any single node that matches the expression. The node is not necessarily the first node in the document that matches the expression.\n","obsolete":false},{"name":"FIRST_ORDERED_NODE_TYPE","help":"A result node-set containing the first node in the document that matches the expression.\n","obsolete":false},{"obsolete":false,"url":"https://developer.mozilla.org/en/NumberValue","name":"numberValue","help":"readonly float"},{"obsolete":false,"url":"https://developer.mozilla.org/en/BooleanValue","name":"booleanValue","help":"readonly boolean"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SingleNodeValue","name":"singleNodeValue","help":"readonly Node"},{"obsolete":false,"url":"https://developer.mozilla.org/en/SnapshotLength","name":"snapshotLength","help":"readonly Integer"},{"obsolete":false,"url":"https://developer.mozilla.org/en/InvalidInteratorState","name":"invalidIteratorState","help":"readonly boolean"},{"obsolete":false,"url":"https://developer.mozilla.org/en/StringValue","name":"stringValue","help":"readonly String"},{"obsolete":false,"url":"https://developer.mozilla.org/en/ResultType","name":"resultType","help":"readonly integer (short)"}],"srcUrl":"https://developer.mozilla.org/en/XPathResult"},"SVGFontFaceUriElement":{"title":"SVGFontFaceUriElement","compatibility":"<div class=\"htab\"><a name=\"AutoCompatibilityTable\"></a>\n<ul> <li class=\"selected\">Desktop</li> <li>Mobile</li>\n</ul>\n</div><p></p>\n<div id=\"compat-desktop\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Chrome</th> <th>Firefox (Gecko)</th> <th>Internet Explorer</th> <th>Opera</th> <th>Safari (WebKit)</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>\n<div id=\"compat-mobile\"> <table class=\"compat-table\"> <tbody> <tr> <th>Feature</th> <th>Android</th> <th>Firefox Mobile (Gecko)</th> <th>IE Mobile</th> <th>Opera Mobile</th> <th>Safari Mobile</th> </tr> <tr> <td>Basic support</td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> <td><span title=\"Compatibility unknown; please update this.\">?</span></td> </tr> </tbody> </table>\n</div>","srcUrl":"https://developer.mozilla.org/en/DOM/SVGFontFaceUriElement","seeAlso":"<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-uri\"><font-face-uri></a></code>\n SVG Element","summary":"<p>The <code>SVGFontFaceUriElement</code> interface corresponds to the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-uri\"><font-face-uri></a></code>\n elements.</p>\n<p>Object-oriented access to the attributes of the <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/font-face-uri\"><font-face-uri></a></code>\n element via the SVG DOM is not possible.</p>","members":[]},"HTMLAnchorElement":{"title":"HTMLAnchorElement","summary":"DOM anchor elements expose the <a target=\"_blank\" href=\"http://www.w3.org/TR/html5/text-level-semantics.html#htmlanchorelement\" rel=\"external nofollow\" class=\" external\" title=\"http://www.w3.org/TR/html5/text-level-semantics.html#htmlanchorelement\">HTMLAnchorElement</a> (or <span><a href=\"https://developer.mozilla.org/en/HTML\" rel=\"custom nofollow\">HTML 4</a></span> <a target=\"_blank\" title=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-48250443\" href=\"http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-48250443\" rel=\"external nofollow\" class=\" external\"><code>HTMLAnchorElement</code></a>) interface, which provides special properties and methods (beyond the regular <a href=\"https://developer.mozilla.org/en/DOM/element\" rel=\"internal\">element</a> object interface they also have available to them by inheritance) for manipulating the layout and presentation of hyperlink elements.","members":[{"name":"blur","help":"Removes keyboard focus from the current element.","obsolete":false},{"name":"focus","help":"Gives keyboard focus to the current element.","obsolete":false},{"name":"accessKey","help":"A single character that switches input focus to the hyperlink. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"charset","help":"The character encoding of the linked resource. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"coords","help":"Comma-separated list of coordinates. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"hash","help":"The fragment identifier (including the leading hash mark (#)), if any, in the referenced URL.","obsolete":false},{"name":"host","help":"The hostname and port (if it's not the default port) in the referenced URL.","obsolete":false},{"name":"hostname","help":"The hostname in the referenced URL.","obsolete":false},{"name":"href","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/a#attr-href\">href</a></code>\n HTML attribute, containing a valid URL of a linked resource.","obsolete":false},{"name":"hreflang","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/a#attr-hreflang\">hreflang</a></code>\n HTML attribute, indicating the language of the linked resource.","obsolete":false},{"name":"media","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/a#attr-media\">media</a></code>\n HTML attribute, indicating the intended media for the linked resource.","obsolete":false},{"name":"name","help":"Anchor name. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"pathname","help":"The path name component, if any, of the referenced URL.","obsolete":false},{"name":"port","help":"The port component, if any, of the referenced URL.","obsolete":false},{"name":"protocol","help":"The protocol component (including trailing colon (:)), of the referenced URL.","obsolete":false},{"name":"rel","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/a#attr-rel\">rel</a></code>\n HTML attribute, specifying the relationship of the target object to the link object.","obsolete":false},{"name":"relList","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/a#attr-rel\">rel</a></code>\n HTML attribute, as a list of tokens.","obsolete":false},{"name":"rev","help":"Reverse link type. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"search","help":"The search element (including leading question mark (?)), if any, of the referenced URL","obsolete":false},{"name":"shape","help":"The shape of the active area. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"tabIndex","help":"The position of the element in the tabbing navigation order for the current document. \n\n<span title=\"\">Obsolete</span> in \n<span><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/HTML5\">HTML5</a></span>","obsolete":true},{"name":"target","help":"Reflectst the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/a#attr-target\">target</a></code>\n HTML attribute, indicating where to display the linked resource.","obsolete":false},{"name":"text","help":"Same as the <strong><a title=\"https://developer.mozilla.org/En/DOM/Node.textContent\" rel=\"internal\" href=\"https://developer.mozilla.org/En/DOM/Node.textContent\">textContent</a></strong> property.","obsolete":false},{"name":"type","help":"Reflects the \n\n<code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/HTML/Element/a#attr-type\">type</a></code>\n HTML attribute, indicating the MIME type of the linked resource.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/DOM/HTMLAnchorElement"},"SVGFEDisplacementMapElement":{"title":"feDisplacementMap","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/filter\"><filter></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/animate\"><animate></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/set\"><set></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feBlend\"><feBlend></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feColorMatrix\"><feColorMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComponentTransfer\"><feComponentTransfer></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feComposite\"><feComposite></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feConvolveMatrix\"><feConvolveMatrix></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feDiffuseLighting\"><feDiffuseLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feFlood\"><feFlood></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feGaussianBlur\"><feGaussianBlur></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feImage\"><feImage></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMerge\"><feMerge></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feMorphology\"><feMorphology></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feOffset\"><feOffset></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feSpecularLighting\"><feSpecularLighting></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTile\"><feTile></a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/SVG/Element/feTurbulence\"><feTurbulence></a></code>\n</li> <li><a title=\"en/SVG/Tutorial/Filter_effects\" rel=\"internal\" href=\"https://developer.mozilla.org/en/SVG/Tutorial/Filter_effects\">SVG tutorial: Filter effects</a></li>","summary":"The pixel value of an input image i2 is used to displace the original image i1.","members":[{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in2","name":"in2","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/scale","name":"scale","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/yChannelSelector","name":"yChannelSelector","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/class","name":"class","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/xChannelSelector","name":"xChannelSelector","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/in","name":"in","help":""},{"obsolete":false,"url":"https://developer.mozilla.org/en/SVG/Attribute/style","name":"style","help":"Specific attributes"}],"srcUrl":"https://developer.mozilla.org/en/SVG/Element/feDisplacementMap"},"Clipboard":{"title":"nsIClipboard","seeAlso":"<li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIClipboardOwner\">nsIClipboardOwner</a></code>\n</li> <li><code><a rel=\"internal\" href=\"https://developer.mozilla.org/Article_not_found?uri=en/XPCOM_Interface_Reference/nsITransferable&ident=nsITransferable\" class=\"new\">nsITransferable</a></code>\n</li> <li><code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIArray\">nsIArray</a></code>\n</li> <li><a title=\"Using the Clipboard\" class=\"internal\" rel=\"internal\" href=\"https://developer.mozilla.org/en/Using_the_Clipboard\">Using the Clipboard</a></li>","summary":"<div>\n\n<a rel=\"custom\" href=\"http://mxr.mozilla.org/mozilla-central/source/widget/public/nsIClipboard.idl\"><code>widget/public/nsIClipboard.idl</code></a><span><a rel=\"internal\" href=\"https://developer.mozilla.org/en/Interfaces/About_Scriptable_Interfaces\" title=\"en/Interfaces/About_Scriptable_Interfaces\">Scriptable</a></span></div><span>This interface supports basic clipboard operations such as: setting, retrieving, emptying, matching and supporting clipboard data.</span><div>Inherits from: <code><a rel=\"custom\" href=\"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISupports\">nsISupports</a></code>\n<span>Last changed in Gecko 1.8 (Firefox 1.5 / Thunderbird 1.5 / SeaMonkey 1.0)\n</span></div>","members":[{"name":"hasDataMatchingFlavors","help":"<p>This method provides a way to give correct UI feedback about, for instance, whether a paste should be allowed. It does <strong>not</strong> actually retrieve the data and should be a very inexpensive call. All it does is check if there is data on the clipboard matching any of the flavors in the given list.</p>\n\n<div id=\"section_10\"><span id=\"Parameters_4\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>aFlavorList</code></dt> <dd>An array of ASCII strings.</dd> <dt><code>aLength</code></dt> <dd>The length of the <code>aFlavorList</code>.</dd> <dt><code>aWhichClipboard</code></dt> <dd>Specifies the clipboard to which this operation applies.</dd>\n</dl>\n</div><div id=\"section_11\"><span id=\"Return_value\"></span><h6 class=\"editable\">Return value</h6>\n<p>Returns <code>true</code>, if data is present and it matches the specified flavor. Otherwise it returns <code>false</code>.</p>\n</div>","idl":"<pre class=\"eval\">boolean hasDataMatchingFlavors(\n [array, size_is(aLength)] in string aFlavorList,\n in unsigned long aLength, \n<span title=\"(Firefox 3)\n\" style=\"border: 1px solid rgb(129, 129, 81); background-color: rgb(255, 255, 225); font-size: x-small; white-space: nowrap; padding: 2px;\">Requires Gecko 1.9</span>\n\n in long aWhichClipboard \n);\n</pre>","obsolete":false},{"name":"emptyClipboard","help":"<p>This method empties the clipboard and notifies the clipboard owner. It empties the \"logical\" clipboard. It does not clear the native clipboard.</p>\n\n<div id=\"section_5\"><span id=\"Parameters\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>aWhichClipboard</code></dt> <dd>Specifies the clipboard to which this operation applies.</dd>\n</dl>\n<p>\n\n</p><div><span>Obsolete since Gecko 1.8 (Firefox 1.5 / Thunderbird 1.5 / SeaMonkey 1.0)\n</span><span id=\"forceDataToClipboard()\"></span></div></div>","idl":"<pre class=\"eval\">void emptyClipboard(\n in long aWhichClipboard \n);\n</pre>","obsolete":false},{"name":"forceDataToClipboard","help":"<div id=\"section_5\"><p>Some platforms support deferred notification for putting data on the clipboard This method forces the data onto the clipboard in its various formats This may be used if the application going away.</p>\n\n</div><div id=\"section_6\"><span id=\"Parameters_2\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>aWhichClipboard</code></dt> <dd>Specifies the clipboard to which this operation applies.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void forceDataToClipboard(\n in long aWhichClipboard \n);\n</pre>","obsolete":false},{"name":"setData","help":"<p>This method sets the data from a transferable on the native clipboard.</p>\n\n<div id=\"section_13\"><span id=\"Parameters_5\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>aTransferable</code></dt> <dd>The transferable containing the data to put on the clipboard.</dd> <dt><code>anOwner</code></dt> <dd>The owner of the transferable.</dd> <dt><code>aWhichClipboard</code></dt> <dd>Specifies the clipboard to which this operation applies.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void setData(\n in nsITransferable aTransferable,\n in nsIClipboardOwner anOwner,\n in long aWhichClipboard \n);\n</pre>","obsolete":false},{"name":"getData","help":"<p>This method retrieves data from the clipboard into a transferable.</p>\n\n<div id=\"section_8\"><span id=\"Parameters_3\"></span><h6 class=\"editable\">Parameters</h6>\n<dl> <dt><code>aTransferable</code></dt> <dd>The transferable to receive data from the clipboard.</dd> <dt><code>aWhichClipboard</code></dt> <dd>Specifies the clipboard to which this operation applies.</dd>\n</dl>\n</div>","idl":"<pre class=\"eval\">void getData(\n in nsITransferable aTransferable,\n in long aWhichClipboard \n);\n</pre>","obsolete":false},{"name":"supportsSelectionClipboard","help":"<p>This method allows clients to determine if the implementation supports the concept of a separate clipboard for selection.</p>\n\n<div id=\"section_15\"><span id=\"Parameters_6\"></span>\n\n</div><div id=\"section_16\"><span id=\"Return_value_2\"></span><h6 class=\"editable\">Return value</h6>\n<p>Returns <code>true</code> if <code>kSelectionClipboard</code> is available. Otherwise it returns <code>false</code>.</p>\n</div>","idl":"<pre class=\"eval\">boolean supportsSelectionClipboard();\n</pre>","obsolete":false},{"name":"kSelectionClipboard","help":"Clipboard for selection.","obsolete":false},{"name":"kGlobalClipboard","help":"Clipboard for global use.","obsolete":false}],"srcUrl":"https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIClipboard"},"CSSUnknownRule":{"title":"cssRule","members":[],"srcUrl":"https://developer.mozilla.org/pl/DOM/cssRule","skipped":true,"cause":"Suspect title"}}
\ No newline at end of file
diff --git a/elemental/idl/elemental/elemental.idl b/elemental/idl/elemental/elemental.idl
new file mode 100644
index 0000000..d354df4
--- /dev/null
+++ b/elemental/idl/elemental/elemental.idl
@@ -0,0 +1,376 @@
+/**
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ * License TBD
+ */
+
+module default {
+ FileList implements sequence<File>;
+ HTMLCollection implements sequence<Node>;
+ MediaList implements sequence<DOMString>;
+ NamedNodeMap implements sequence<Node>;
+ NodeList implements sequence<Node>;
+ StyleSheetList implements sequence<StyleSheet>;
+ TouchList implements sequence<Touch>;
+
+ Float32Array implements sequence<double>;
+ Float64Array implements sequence<double>;
+ Int8Array implements sequence<int>;
+ Int16Array implements sequence<int>;
+ Int32Array implements sequence<int>;
+ Uint8Array implements sequence<int>;
+ // Ugliness ahead: we cannot analyse inheritance right now when deducing if
+ // given interface is a typed array (database is not accessible), so I have
+ // to duplicate both sequence<int> and ArrayBufferView to make our heuristics
+ // work.
+ // FIXME: thread datatbase to all the clients that need it and probably
+ // move the method itself to database.
+ Uint8ClampedArray implements sequence<int>;
+ Uint8ClampedArray implements ArrayBufferView;
+ Uint16Array implements sequence<int>;
+ Uint32Array implements sequence<int>;
+
+ // Is List<int> because inherits from Uint8Array:
+ // Uint8ClampedArray implements sequence<int>;
+}
+
+module core {
+ [Supplemental]
+ interface Document {
+ [Suppressed] DOMObject getCSSCanvasContext(in DOMString contextId, in DOMString name, in long width, in long height);
+ CanvasRenderingContext getCSSCanvasContext(in DOMString contextId, in DOMString name, in long width, in long height);
+ };
+
+ DOMStringList implements sequence<DOMString>;
+};
+
+module dom {
+ // Force NodeSelector. WebKit defines these operations directly.
+ interface NodeSelector {
+ Element querySelector(in DOMString selectors);
+ NodeList querySelectorAll(in DOMString selectors);
+ };
+ Document implements NodeSelector;
+ DocumentFragment implements NodeSelector;
+ Element implements NodeSelector;
+
+ // Force ElementTraversal. WebKit defines these directly.
+ interface ElementTraversal {
+ getter attribute unsigned long childElementCount;
+ getter attribute Element firstElementChild;
+ getter attribute Element lastElementChild;
+ getter attribute Element nextElementSibling;
+ getter attribute Element previousElementSibling;
+ };
+ Element implements ElementTraversal;
+
+ [Callback]
+ interface TimeoutHandler {
+ void handleEvent();
+ };
+};
+
+module html {
+ [Supplemental]
+ interface Console {
+ [Suppressed] void debug();
+ [CallWith=ScriptArguments|CallStack] void debug(DOMObject arg);
+ [Suppressed] void error();
+ [CallWith=ScriptArguments|CallStack] void error(DOMObject arg);
+ [Suppressed] void info();
+ [CallWith=ScriptArguments|CallStack] void info(DOMObject arg);
+ [Suppressed] void log();
+ [CallWith=ScriptArguments|CallStack] void log(DOMObject arg);
+ [Suppressed] void warn();
+ [CallWith=ScriptArguments|CallStack] void warn(DOMObject arg);
+ [Suppressed] void trace();
+ [CallWith=ScriptArguments|CallStack] void trace(DOMObject arg);
+ [Suppressed] void assert(in boolean condition);
+ [CallWith=ScriptArguments|CallStack] void assertCondition(boolean condition, DOMObject arg);
+ [Suppressed] void timeEnd(in DOMString title);
+ [CallWith=ScriptArguments|CallStack] void timeEnd(DOMString title, DOMObject arg);
+ [Suppressed] void timeStamp();
+ [CallWith=ScriptArguments|CallStack] void timeStamp(DOMObject arg);
+ [Suppressed] void group();
+ [CallWith=ScriptArguments|CallStack] void group(DOMObject arg);
+ [Suppressed] void groupCollapsed();
+ [CallWith=ScriptArguments|CallStack] void groupCollapsed(DOMObject arg);
+ };
+
+ [Supplemental]
+ interface HTMLOptionsCollection {
+ [Suppressed] void add(in optional HTMLOptionElement element, in optional long before);
+ };
+
+ [Supplemental]
+ interface ImageData {
+ readonly attribute Uint8ClampedArray data;
+ };
+
+ [Supplemental]
+ interface WebGLContextEvent {
+ [Suppressed] void initEvent(in optional DOMString eventTypeArg,
+ in optional boolean canBubbleArg,
+ in optional boolean cancelableArg,
+ in optional DOMString statusMessageArg);
+ };
+};
+
+module html {
+ [Supplemental]
+ interface WebGLRenderingContext {
+
+ //void compressedTexImage2D(in unsigned long target, in long level, in unsigned long internalformat, in unsigned long width, in unsigned long height, in long border, in unsigned long imageSize, const void* data);
+ //void compressedTexSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset, in unsigned long width, in unsigned long height, in unsigned long format, in unsigned long imageSize, const void* data);
+
+ any getBufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getBufferParameter();
+
+ any getFramebufferAttachmentParameter(in unsigned long target, in unsigned long attachment, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getFramebufferAttachmentParameter();
+
+ any getParameter(in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getParameter();
+
+ any getProgramParameter(in WebGLProgram program, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getProgramParameter();
+
+ any getRenderbufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getRenderbufferParameter();
+
+ any getShaderParameter(in WebGLShader shader, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getShaderParameter() raises(DOMException);
+
+ // TBD
+ // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+
+ DOMString[] getSupportedExtensions();
+ [Suppressed, StrictTypeChecking, Custom] void getSupportedExtensions();
+
+ any getTexParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getTexParameter();
+
+ any getUniform(in WebGLProgram program, in WebGLUniformLocation location) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getUniform();
+
+ any getVertexAttrib(in unsigned long index, in unsigned long pname) raises(DOMException);
+ [Suppressed, StrictTypeChecking, Custom] void getVertexAttrib();
+ };
+}
+
+
+
+module canvas {
+ // TODO(dstockwell): Define these manually.
+ [Supplemental]
+ interface Float32Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Float64Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Int16Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Int32Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Int8Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Uint16Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Uint32Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+ [Supplemental]
+ interface Uint8Array {
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+
+ [Supplemental]
+ interface Uint8ClampedArray {
+ // Avoid 'overriding static member BYTES_PER_ELEMENT'.
+ [Suppressed] const long BYTES_PER_ELEMENT = 1;
+
+ [Suppressed] void set();
+ [DartName=setElements, Custom] void set(in any array, in optional unsigned long offset);
+ };
+};
+
+module storage {
+ // TODO(vsm): Define new names for these (see b/4436830).
+ [Supplemental]
+ interface IDBCursor {
+ [DartName=continueFunction] void continue(in optional IDBKey key);
+ };
+ [Supplemental]
+ interface IDBIndex {
+ [DartName=getObject] IDBRequest get(in IDBKey key);
+ };
+ [Supplemental]
+ interface IDBObjectStore {
+ [DartName=getObject] IDBRequest get(in IDBKey key);
+ [DartName=getObject] IDBRequest get(in IDBKeyRange key);
+ [Suppressed] IDBRequest openCursor() raises (IDBDatabaseException);
+ };
+
+ interface EntrySync {
+ // Native implementation is declared to return EntrySync.
+ [Suppressed] DirectoryEntrySync getParent();
+ EntrySync getParent();
+ };
+};
+
+module html {
+ [Supplemental, Callback] // Add missing Callback attribute.
+ interface VoidCallback {
+ };
+};
+
+module svg {
+ interface SVGNumber {
+ [StrictTypeChecking, Custom] attribute double value;
+ };
+}
+
+module html {
+ [Supplemental]
+ interface HTMLCanvasElement {
+ [Suppressed] DOMObject getContext(in DOMString contextId);
+ // W3C defines this as returning 'object':
+ CanvasRenderingContext getContext(in DOMString contextId);
+ };
+};
+
+module svg {
+ // fix convariant return clash with Element
+ [Supplemental]
+ interface SVGStylable {
+ @WebKit [DartName=svgStyle] getter attribute CSSStyleDeclaration style;
+ @WebKit [DartName=animatedClassName] getter attribute SVGAnimatedString className;
+ };
+
+ // rename width/height covariant returns on several SVG classes
+ [Supplemental]
+ interface SVGFilterElement {
+ @WebKit [DartName=animatedWidth] getter attribute SVGAnimatedLength width;
+ @WebKit [DartName=animatedHeight] getter attribute SVGAnimatedLength height;
+ };
+
+ [Supplemental]
+ interface SVGFilterPrimitiveStandardAttributes {
+ @WebKit [DartName=animatedWidth] getter attribute SVGAnimatedLength width;
+ @WebKit [DartName=animatedHeight] getter attribute SVGAnimatedLength height;
+ @WebKit [DartName=animatedResult] getter attribute SVGAnimatedString result;
+ @WebKit [DartName=animatedX] getter attribute SVGAnimatedLength x;
+ @WebKit [DartName=animatedY] getter attribute SVGAnimatedLength y;
+ };
+
+ [Supplemental]
+ interface SVGForeignObjectElement {
+ @WebKit [DartName=animatedWidth] getter attribute SVGAnimatedLength width;
+ @WebKit [DartName=animatedHeight] getter attribute SVGAnimatedLength height;
+ };
+
+ [Supplemental]
+ interface SVGImageElement {
+ @WebKit [DartName=animatedWidth] getter attribute SVGAnimatedLength width;
+ @WebKit [DartName=animatedHeight] getter attribute SVGAnimatedLength height;
+ };
+
+ [Supplemental]
+ interface SVGMaskElement {
+ @WebKit [DartName=animatedWidth] getter attribute SVGAnimatedLength width;
+ @WebKit [DartName=animatedHeight] getter attribute SVGAnimatedLength height;
+ };
+
+ [Supplemental]
+ interface SVGPatternElement {
+ @WebKit [DartName=animatedWidth] getter attribute SVGAnimatedLength width;
+ @WebKit [DartName=animatedHeight] getter attribute SVGAnimatedLength height;
+ };
+
+ [Supplemental]
+ interface SVGRectElement {
+ @WebKit [DartName=animatedWidth] getter attribute SVGAnimatedLength width;
+ @WebKit [DartName=animatedHeight] getter attribute SVGAnimatedLength height;
+ };
+
+ [Supplemental]
+ interface SVGSVGElement {
+ @WebKit [DartName=animatedWidth] getter attribute SVGAnimatedLength width;
+ @WebKit [DartName=animatedHeight] getter attribute SVGAnimatedLength height;
+ };
+
+ [Supplemental]
+ interface SVGUseElement {
+ @WebKit [DartName=animatedWidth] getter attribute SVGAnimatedLength width;
+ @WebKit [DartName=animatedHeight] getter attribute SVGAnimatedLength height;
+ };
+
+ [Supplemental]
+ interface SVGTransformable :
+ @WebKit SVGLocatable {
+ @WebKit [DartName=animatedTransform] getter attribute SVGAnimatedTransformList transform;
+ };
+
+ [Supplemental]
+ interface SVGURIReference {
+ @WebKit [DartName=animatedHref] getter attribute SVGAnimatedString href;
+ };
+};
+
+module base {
+ interface ElementalMixinBase {
+ };
+};
+
+module html {
+ [Supplemental]
+ interface Uint8ClampedArray :
+ @WebKit Uint8Array,
+ sequence<int>,
+ ArrayBufferView {
+ /* suppressed, we don't support covariant return, just cast to the clamped interface if needed */
+ @WebKit [Suppressed] Uint8ClampedArray subarray(in long start);
+ @WebKit [Suppressed] Uint8ClampedArray subarray(in long start, in long end);
+ };
+};
+
+module events {
+ [Supplemental]
+ interface Event {
+ @WebKit [Suppressed] const unsigned short BLUR = 8192;
+ @WebKit [Suppressed] const unsigned short CHANGE = 32768;
+ @WebKit [Suppressed] const unsigned short CLICK = 64;
+ @WebKit [Suppressed] const unsigned short DBLCLICK = 128;
+ @WebKit [Suppressed] const unsigned short DRAGDROP = 2048;
+ @WebKit [Suppressed] const unsigned short FOCUS = 4096;
+ @WebKit [Suppressed] const unsigned short KEYDOWN = 256;
+ @WebKit [Suppressed] const unsigned short KEYPRESS = 1024;
+ @WebKit [Suppressed] const unsigned short KEYUP = 512;
+ @WebKit [Suppressed] const unsigned short MOUSEDOWN = 1;
+ @WebKit [Suppressed] const unsigned short MOUSEDRAG = 32;
+ @WebKit [Suppressed] const unsigned short MOUSEMOVE = 16;
+ @WebKit [Suppressed] const unsigned short MOUSEOUT = 8;
+ @WebKit [Suppressed] const unsigned short MOUSEOVER = 4;
+ @WebKit [Suppressed] const unsigned short MOUSEUP = 2;
+ @WebKit [Suppressed] const unsigned short SELECT = 16384;
+ };
+};
+
diff --git a/elemental/idl/scripts/all_tests.py b/elemental/idl/scripts/all_tests.py
new file mode 100755
index 0000000..f7d84fd
--- /dev/null
+++ b/elemental/idl/scripts/all_tests.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""This entry point runs all script tests."""
+
+import logging.config
+import unittest
+
+if __name__ == '__main__':
+ logging.config.fileConfig('logging.conf')
+ suite = unittest.TestLoader().loadTestsFromNames([
+ 'templateloader_test',
+ 'pegparser_test',
+ 'idlparser_test',
+ 'idlnode_test',
+ 'idlrenderer_test',
+ 'database_test',
+ 'databasebuilder_test',
+ 'emitter_test',
+ 'dartgenerator_test',
+ 'multiemitter_test'])
+ unittest.TextTestRunner().run(suite)
diff --git a/elemental/idl/scripts/database.py b/elemental/idl/scripts/database.py
new file mode 100755
index 0000000..4c9ef09
--- /dev/null
+++ b/elemental/idl/scripts/database.py
@@ -0,0 +1,227 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""Module to manage IDL files."""
+
+import copy
+import pickle
+import logging
+import os
+import os.path
+import shutil
+import idlnode
+import idlparser
+import idlrenderer
+
+_logger = logging.getLogger('database')
+
+
+class Database(object):
+ """The Database class manages a collection of IDL files stored
+ inside a directory.
+
+ Each IDL is describing a single interface. The IDL files are written in the
+ FremontCut syntax, which is derived from the Web IDL syntax and includes
+ annotations.
+
+ Database operations include adding, updating and removing IDL files.
+ """
+
+ def __init__(self, root_dir):
+ """Initializes a Database over a given directory.
+
+ Args:
+ root_dir -- a directory. If directory does not exist, it will
+ be created.
+ """
+ self._root_dir = root_dir
+ if not os.path.exists(root_dir):
+ _logger.debug('creating root directory %s' % root_dir)
+ os.makedirs(root_dir)
+ self._all_interfaces = {}
+ self._interfaces_to_delete = []
+ self._idlparser = idlparser.IDLParser(idlparser.FREMONTCUT_SYNTAX)
+
+ def Clone(self):
+ new_database = Database(self._root_dir)
+ new_database._all_interfaces = copy.deepcopy(self._all_interfaces)
+ new_database._interfaces_to_delete = copy.deepcopy(
+ self._interfaces_to_delete)
+ return new_database
+
+ def Delete(self):
+ """Deletes the database by deleting its directory"""
+ if os.path.exists(self._root_dir):
+ shutil.rmtree(self._root_dir)
+ # reset in-memory constructs
+ self._all_interfaces = {}
+
+ def _ScanForInterfaces(self):
+ """Iteratores over the database files and lists all interface names.
+
+ Return:
+ A list of interface names.
+ """
+ res = []
+
+ def Visitor(_, dirname, names):
+ for name in names:
+ if os.path.isfile(os.path.join(dirname, name)):
+ root, ext = os.path.splitext(name)
+ if ext == '.idl':
+ res.append(root)
+
+ os.path.walk(self._root_dir, Visitor, None)
+ return res
+
+ def _FilePath(self, interface_name):
+ """Calculates the file path that a given interface should
+ be saved to.
+
+ Args:
+ interface_name -- the name of the interface.
+ """
+ return os.path.join(self._root_dir, '%s.idl' % interface_name)
+
+ def _LoadInterfaceFile(self, interface_name):
+ """Loads an interface from the database.
+
+ Returns:
+ An IDLInterface instance or None if the interface is not found.
+ Args:
+ interface_name -- the name of the interface.
+ """
+ file_name = self._FilePath(interface_name)
+ _logger.info('loading %s' % file_name)
+ if not os.path.exists(file_name):
+ return None
+
+ f = open(file_name, 'r')
+ content = f.read()
+ f.close()
+
+ # Parse file:
+ idl_file = idlnode.IDLFile(self._idlparser.parse(content), file_name)
+
+ if not idl_file.interfaces:
+ raise RuntimeError('No interface found in %s' % file_name)
+ elif len(idl_file.interfaces) > 1:
+ raise RuntimeError('Expected one interface in %s' % file_name)
+
+ interface = idl_file.interfaces[0]
+ self._all_interfaces[interface_name] = interface
+ return interface
+
+ def Load(self):
+ """Loads all interfaces into memory.
+ """
+ # FIXME: Speed this up by multi-threading.
+ for (interface_name) in self._ScanForInterfaces():
+ self._LoadInterfaceFile(interface_name)
+ self.Cache()
+
+ def Cache(self):
+ """Serialize the database using pickle for faster startup in the future
+ """
+ output_file = open(os.path.join(self._root_dir, 'cache.pickle'), 'wb')
+ pickle.dump(self._all_interfaces, output_file)
+ pickle.dump(self._interfaces_to_delete, output_file)
+
+ def LoadFromCache(self):
+ """Deserialize the database using pickle for fast startup
+ """
+ input_file_name = os.path.join(self._root_dir, 'cache.pickle')
+ if not os.path.isfile(input_file_name):
+ self.Load()
+ return
+ input_file = open(input_file_name, 'rb')
+ self._all_interfaces = pickle.load(input_file)
+ self._interfaces_to_delete = pickle.load(input_file)
+ input_file.close()
+
+ def Save(self):
+ """Saves all in-memory interfaces into files."""
+ for interface in self._all_interfaces.values():
+ self._SaveInterfaceFile(interface)
+ for interface_name in self._interfaces_to_delete:
+ self._DeleteInterfaceFile(interface_name)
+
+ def _SaveInterfaceFile(self, interface):
+ """Saves an interface into the database.
+
+ Args:
+ interface -- an IDLInterface instance.
+ """
+
+ interface_name = interface.id
+
+ # Actual saving
+ file_path = self._FilePath(interface_name)
+ _logger.debug('writing %s' % file_path)
+
+ dir_name = os.path.dirname(file_path)
+ if not os.path.exists(dir_name):
+ _logger.debug('creating directory %s' % dir_name)
+ os.mkdir(dir_name)
+
+ # Render the IDLInterface object into text.
+ text = idlrenderer.render(interface)
+
+ f = open(file_path, 'w')
+ f.write(text)
+ f.close()
+
+ def HasInterface(self, interface_name):
+ """Returns True if the interface is in memory"""
+ return interface_name in self._all_interfaces
+
+ def GetInterface(self, interface_name):
+ """Returns an IDLInterface corresponding to the interface_name
+ from memory.
+
+ Args:
+ interface_name -- the name of the interface.
+ """
+ if interface_name not in self._all_interfaces:
+ raise RuntimeError('Interface %s is not loaded' % interface_name)
+ return self._all_interfaces[interface_name]
+
+ def AddInterface(self, interface):
+ """Returns an IDLInterface corresponding to the interface_name
+ from memory.
+
+ Args:
+ interface -- the name of the interface.
+ """
+ interface_name = interface.id
+ if interface_name in self._all_interfaces:
+ raise RuntimeError('Interface %s already exists' % interface_name)
+ self._all_interfaces[interface_name] = interface
+
+ def GetInterfaces(self):
+ """Returns a list of all loaded interfaces."""
+ res = []
+ for _, interface in sorted(self._all_interfaces.items()):
+ res.append(interface)
+ return res
+
+ def DeleteInterface(self, interface_name):
+ """Deletes an interface from the database. File is deleted when
+ Save() is called.
+
+ Args:
+ interface_name -- the name of the interface.
+ """
+ if interface_name not in self._all_interfaces:
+ raise RuntimeError('Interface %s not found' % interface_name)
+ self._interfaces_to_delete.append(interface_name)
+ del self._all_interfaces[interface_name]
+
+ def _DeleteInterfaceFile(self, interface_name):
+ """Actual file deletion"""
+ file_path = self._FilePath(interface_name)
+ if os.path.exists(file_path):
+ _logger.debug('deleting %s' % file_path)
+ os.remove(file_path)
diff --git a/elemental/idl/scripts/database_test.py b/elemental/idl/scripts/database_test.py
new file mode 100755
index 0000000..de75160
--- /dev/null
+++ b/elemental/idl/scripts/database_test.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""Tests for database module."""
+
+import logging.config
+import os.path
+import shutil
+import tempfile
+import unittest
+import database
+import idlnode
+import idlparser
+
+
+class DatabaseTestCase(unittest.TestCase):
+
+ def _ParseInterface(self, content):
+ ast = self._idl_parser.parse(content)
+ return idlnode.IDLFile(ast).interfaces[0]
+
+ def _ListInterfaces(self, db):
+ res = []
+ for interface in db.GetInterfaces():
+ name = interface.id
+ res.append(name)
+ return res
+
+ def setUp(self):
+ self._idl_parser = idlparser.IDLParser(idlparser.FREMONTCUT_SYNTAX)
+
+ working_dir = tempfile.mkdtemp()
+ self._database_dir = os.path.join(working_dir, 'database')
+ self.assertFalse(os.path.exists(self._database_dir))
+
+ # Create database and add one interface.
+ db = database.Database(self._database_dir)
+ interface = self._ParseInterface('interface I1 {};')
+ db.AddInterface(interface)
+ db.Save()
+ self.assertTrue(
+ os.path.exists(os.path.join(self._database_dir, 'I1.idl')))
+
+ def tearDown(self):
+ shutil.rmtree(self._database_dir)
+
+ def testCreate(self):
+ self.assertTrue(os.path.exists(self._database_dir))
+
+ def testListInterfaces(self):
+ db = database.Database(self._database_dir)
+ db.Load()
+ self.assertEquals(self._ListInterfaces(db), ['I1'])
+
+ def testHasInterface(self):
+ db = database.Database(self._database_dir)
+ db.Load()
+ self.assertTrue(db.HasInterface('I1'))
+ self.assertFalse(db.HasInterface('I2'))
+
+ def testAddInterface(self):
+ db = database.Database(self._database_dir)
+ db.Load()
+ interface = self._ParseInterface('interface I2 {};')
+ db.AddInterface(interface)
+ db.Save()
+ self.assertTrue(
+ os.path.exists(os.path.join(self._database_dir, 'I2.idl')))
+ self.assertEquals(self._ListInterfaces(db),
+ ['I1', 'I2'])
+
+ def testDeleteInterface(self):
+ db = database.Database(self._database_dir)
+ db.Load()
+ db.DeleteInterface('I1')
+ db.Save()
+ self.assertFalse(
+ os.path.exists(os.path.join(self._database_dir, 'I1.idl')))
+ self.assertEquals(self._ListInterfaces(db), [])
+
+ def testGetInterface(self):
+ db = database.Database(self._database_dir)
+ db.Load()
+ interface = db.GetInterface('I1')
+ self.assertEquals(interface.id, 'I1')
+
+
+if __name__ == '__main__':
+ logging.config.fileConfig('logging.conf')
+ if __name__ == '__main__':
+ unittest.main()
diff --git a/elemental/idl/scripts/databasebuilder.py b/elemental/idl/scripts/databasebuilder.py
new file mode 100755
index 0000000..0dc2ce1
--- /dev/null
+++ b/elemental/idl/scripts/databasebuilder.py
@@ -0,0 +1,586 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import copy
+import database
+import idlparser
+import logging
+import os
+import os.path
+
+from idlnode import *
+
+_logger = logging.getLogger('databasebuilder')
+
+# Used in source annotations to specify the parent interface declaring
+# a displaced declaration. The 'via' attribute specifies the parent interface
+# which implements a displaced declaration.
+_VIA_ANNOTATION_ATTR_NAME = 'via'
+
+# Used in source annotations to specify the module that the interface was
+# imported from.
+_MODULE_ANNOTATION_ATTR_NAME = 'module'
+
+
+class DatabaseBuilderOptions(object):
+ """Used in specifying options when importing new interfaces"""
+
+ def __init__(self,
+ idl_syntax=idlparser.WEBIDL_SYNTAX,
+ idl_defines=[],
+ source=None, source_attributes={},
+ type_rename_map={},
+ rename_operation_arguments_on_merge=False,
+ add_new_interfaces=True,
+ obsolete_old_declarations=False):
+ """Constructor.
+ Args:
+ idl_syntax -- the syntax of the IDL file that is imported.
+ idl_defines -- list of definitions for the idl gcc pre-processor
+ source -- the origin of the IDL file, used for annotating the
+ database.
+ source_attributes -- this map of attributes is used as
+ annotation attributes.
+ rename_operation_arguments_on_merge -- if True, will rename
+ operation arguments when merging using the new name rather
+ than the old.
+ add_new_interfaces -- when False, if an interface is a new
+ addition, it will be ignored.
+ obsolete_old_declarations -- when True, if a declaration
+ from a certain source is not re-declared, it will be removed.
+ """
+ self.source = source
+ self.source_attributes = source_attributes
+ self.idl_syntax = idl_syntax
+ self.idl_defines = idl_defines
+ self.type_rename_map = type_rename_map
+ self.rename_operation_arguments_on_merge = \
+ rename_operation_arguments_on_merge
+ self.add_new_interfaces = add_new_interfaces
+ self.obsolete_old_declarations = obsolete_old_declarations
+
+
+class DatabaseBuilder(object):
+ def __init__(self, database):
+ """DatabaseBuilder is used for importing and merging interfaces into
+ the Database"""
+ self._database = database
+ self._imported_interfaces = []
+ self._impl_stmts = []
+
+ def _load_idl_file(self, file_name, import_options):
+ """Loads an IDL file intor memory"""
+ idl_parser = idlparser.IDLParser(import_options.idl_syntax)
+
+ try:
+ f = open(file_name, 'r')
+ content = f.read()
+ f.close()
+
+ idl_ast = idl_parser.parse(content,
+ defines=import_options.idl_defines)
+ return IDLFile(idl_ast, file_name)
+ except SyntaxError, e:
+ raise RuntimeError('Failed to load file %s: %s' % (file_name, e))
+
+ def _resolve_type_defs(self, idl_file):
+ type_def_map = {}
+ # build map
+ for type_def in idl_file.all(IDLTypeDef):
+ if type_def.type.id != type_def.id: # sanity check
+ type_def_map[type_def.id] = type_def.type.id
+ # use the map
+ for type_node in idl_file.all(IDLType):
+ while type_node.id in type_def_map:
+ type_node.id = type_def_map[type_node.id]
+
+ def _strip_ext_attributes(self, idl_file):
+ """Strips unuseful extended attributes."""
+ for ext_attrs in idl_file.all(IDLExtAttrs):
+ # TODO: Decide which attributes are uninteresting.
+ pass
+
+ def _split_declarations(self, interface, optional_argument_whitelist):
+ """Splits read-write attributes and operations with optional
+ arguments into multiple declarations"""
+
+ # split attributes into setters and getters
+ new_attributes = []
+ for attribute in interface.attributes:
+ if attribute.is_fc_getter or attribute.is_fc_setter:
+ new_attributes.append(attribute)
+ continue
+ getter_attr = copy.deepcopy(attribute)
+ getter_attr.is_fc_getter = True
+ new_attributes.append(getter_attr)
+ if not attribute.is_read_only:
+ setter_attr = copy.deepcopy(attribute)
+ setter_attr.is_fc_setter = True
+ new_attributes.append(setter_attr)
+ interface.attributes = new_attributes
+
+ # Remove optional annotations from legacy optional arguments.
+ for op in interface.operations:
+ for i in range(0, len(op.arguments)):
+ argument = op.arguments[i]
+
+ in_optional_whitelist = (interface.id, op.id, argument.id) in optional_argument_whitelist
+ if in_optional_whitelist or set(['Optional', 'Callback']).issubset(argument.ext_attrs.keys()):
+ argument.is_optional = True
+ argument.ext_attrs['RequiredCppParameter'] = None
+ continue
+
+ if argument.is_optional:
+ if 'Optional' in argument.ext_attrs:
+ optional_value = argument.ext_attrs['Optional']
+ if optional_value:
+ argument.is_optional = False
+ del argument.ext_attrs['Optional']
+
+ # split operations with optional args into multiple operations
+ new_ops = []
+ for op in interface.operations:
+ for i in range(0, len(op.arguments)):
+ if op.arguments[i].is_optional:
+ op.arguments[i].is_optional = False
+ new_op = copy.deepcopy(op)
+ new_op.arguments = new_op.arguments[:i]
+ new_ops.append(new_op)
+ new_ops.append(op)
+ interface.operations = new_ops
+
+ def _rename_types(self, idl_file, import_options):
+ """Rename interface and type names with names provided in the
+ options. Also clears scopes from scoped names"""
+
+ def rename(name):
+ name_parts = name.split('::')
+ name = name_parts[-1]
+ if name in import_options.type_rename_map:
+ name = import_options.type_rename_map[name]
+ return name
+
+ def rename_node(idl_node):
+ idl_node.id = rename(idl_node.id)
+
+ def rename_ext_attrs(ext_attrs_node):
+ for type_valued_attribute_name in ['Supplemental']:
+ if type_valued_attribute_name in ext_attrs_node:
+ value = ext_attrs_node[type_valued_attribute_name]
+ if isinstance(value, str):
+ ext_attrs_node[type_valued_attribute_name] = rename(value)
+
+ map(rename_node, idl_file.all(IDLInterface))
+ map(rename_node, idl_file.all(IDLType))
+ map(rename_ext_attrs, idl_file.all(IDLExtAttrs))
+
+ def _annotate(self, interface, module_name, import_options):
+ """Adds @ annotations based on the source and source_attributes
+ members of import_options."""
+
+ source = import_options.source
+ if not source:
+ return
+
+ def add_source_annotation(idl_node):
+ annotation = IDLAnnotation(
+ copy.deepcopy(import_options.source_attributes))
+ idl_node.annotations[source] = annotation
+ if ((isinstance(idl_node, IDLInterface) or
+ isinstance(idl_node, IDLMember)) and
+ idl_node.is_fc_suppressed):
+ annotation['suppressed'] = None
+
+ add_source_annotation(interface)
+ interface.annotations[source][_MODULE_ANNOTATION_ATTR_NAME] = module_name
+
+ map(add_source_annotation, interface.parents)
+ map(add_source_annotation, interface.constants)
+ map(add_source_annotation, interface.attributes)
+ map(add_source_annotation, interface.operations)
+
+ def _sign(self, node):
+ """Computes a unique signature for the node, for merging purposed, by
+ concatenating types and names in the declaration."""
+ if isinstance(node, IDLType):
+ res = node.id
+ if res.startswith('unsigned '):
+ res = res[len('unsigned '):]
+ return res
+
+ res = []
+ if isinstance(node, IDLInterface):
+ res = ['interface', node.id]
+ elif isinstance(node, IDLParentInterface):
+ res = ['parent', self._sign(node.type)]
+ elif isinstance(node, IDLOperation):
+ res = ['op']
+ for special in node.specials:
+ res.append(special)
+ if node.id is not None:
+ res.append(node.id)
+ for arg in node.arguments:
+ res.append(self._sign(arg.type))
+ res.append(self._sign(node.type))
+ elif isinstance(node, IDLAttribute):
+ res = []
+ if node.is_fc_getter:
+ res.append('getter')
+ elif node.is_fc_setter:
+ res.append('setter')
+ res.append(node.id)
+ res.append(self._sign(node.type))
+ elif isinstance(node, IDLConstant):
+ res = []
+ res.append('const')
+ res.append(node.id)
+ res.append(node.value)
+ res.append(self._sign(node.type))
+ else:
+ raise TypeError("Can't sign input of type %s" % type(node))
+ return ':'.join(res)
+
+ def _build_signatures_map(self, idl_node_list):
+ """Creates a hash table mapping signatures to idl_nodes for the
+ given list of nodes"""
+ res = {}
+ for idl_node in idl_node_list:
+ sig = self._sign(idl_node)
+ if sig is None:
+ continue
+ if sig in res:
+ raise RuntimeError('Warning: Multiple members have the same '
+ 'signature: "%s"' % sig)
+ res[sig] = idl_node
+ return res
+
+ def _get_parent_interfaces(self, interface):
+ """Return a list of all the parent interfaces of a given interface"""
+ res = []
+
+ def recurse(current_interface):
+ if current_interface in res:
+ return
+ res.append(current_interface)
+ for parent in current_interface.parents:
+ parent_name = parent.type.id
+ if self._database.HasInterface(parent_name):
+ recurse(self._database.GetInterface(parent_name))
+
+ recurse(interface)
+ return res[1:]
+
+ def _merge_ext_attrs(self, old_attrs, new_attrs):
+ """Merges two sets of extended attributes.
+
+ Returns: True if old_attrs has changed.
+ """
+ changed = False
+ for (name, value) in new_attrs.items():
+ if name in old_attrs and old_attrs[name] == value:
+ pass # Identical
+ else:
+ old_attrs[name] = value
+ changed = True
+ return changed
+
+ def _merge_nodes(self, old_list, new_list, import_options):
+ """Merges two lists of nodes. Annotates nodes with the source of each
+ node.
+
+ Returns:
+ True if the old_list has changed.
+
+ Args:
+ old_list -- the list to merge into.
+ new_list -- list containing more nodes.
+ import_options -- controls how merging is done.
+ """
+ changed = False
+
+ source = import_options.source
+
+ old_signatures_map = self._build_signatures_map(old_list)
+ new_signatures_map = self._build_signatures_map(new_list)
+
+ # Merge new items
+ for (sig, new_node) in new_signatures_map.items():
+ if sig not in old_signatures_map:
+ # New node:
+ old_list.append(new_node)
+ changed = True
+ else:
+ # Merge old and new nodes:
+ old_node = old_signatures_map[sig]
+ if (source not in old_node.annotations
+ and source in new_node.annotations):
+ old_node.annotations[source] = new_node.annotations[source]
+ changed = True
+ # Maybe rename arguments:
+ if isinstance(old_node, IDLOperation):
+ for i in range(0, len(old_node.arguments)):
+ old_arg_name = old_node.arguments[i].id
+ new_arg_name = new_node.arguments[i].id
+ if (old_arg_name != new_arg_name
+ and (old_arg_name == 'arg'
+ or old_arg_name.endswith('Arg')
+ or import_options.rename_operation_arguments_on_merge)):
+ old_node.arguments[i].id = new_arg_name
+ changed = True
+ # Maybe merge annotations:
+ if (isinstance(old_node, IDLAttribute) or
+ isinstance(old_node, IDLOperation)):
+ if self._merge_ext_attrs(old_node.ext_attrs, new_node.ext_attrs):
+ changed = True
+
+ # Remove annotations on obsolete items from the same source
+ if import_options.obsolete_old_declarations:
+ for (sig, old_node) in old_signatures_map.items():
+ if (source in old_node.annotations
+ and sig not in new_signatures_map):
+ _logger.warn('%s not available in %s anymore' %
+ (sig, source))
+ del old_node.annotations[source]
+ changed = True
+
+ return changed
+
+ def _merge_interfaces(self, old_interface, new_interface, import_options):
+ """Merges the new_interface into the old_interface, annotating the
+ interface with the sources of each change."""
+
+ changed = False
+
+ source = import_options.source
+ if (source and source not in old_interface.annotations and
+ source in new_interface.annotations and
+ not new_interface.is_supplemental):
+ old_interface.annotations[source] = new_interface.annotations[source]
+ changed = True
+
+ def merge_list(what):
+ old_list = old_interface.__dict__[what]
+ new_list = new_interface.__dict__[what]
+
+ if what != 'parents' and old_interface.id != new_interface.id:
+ for node in new_list:
+ node.ext_attrs['ImplementedBy'] = new_interface.id
+
+ changed = self._merge_nodes(old_list, new_list, import_options)
+
+ # Delete list items with zero remaining annotations.
+ if changed and import_options.obsolete_old_declarations:
+
+ def has_annotations(idl_node):
+ return len(idl_node.annotations)
+
+ old_interface.__dict__[what] = filter(has_annotations, old_list)
+
+ return changed
+
+ # Smartly merge various declarations:
+ if merge_list('parents'):
+ changed = True
+ if merge_list('constants'):
+ changed = True
+ if merge_list('attributes'):
+ changed = True
+ if merge_list('operations'):
+ changed = True
+
+ if self._merge_ext_attrs(old_interface.ext_attrs, new_interface.ext_attrs):
+ changed = True
+
+ _logger.info('merged interface %s (changed=%s, supplemental=%s)' %
+ (old_interface.id, changed, new_interface.is_supplemental))
+
+ return changed
+
+ def _merge_impl_stmt(self, impl_stmt, import_options):
+ """Applies "X implements Y" statemetns on the proper places in the
+ database"""
+ implementor_name = impl_stmt.implementor.id
+ implemented_name = impl_stmt.implemented.id
+ _logger.info('merging impl stmt %s implements %s' %
+ (implementor_name, implemented_name))
+
+ source = import_options.source
+ if self._database.HasInterface(implementor_name):
+ interface = self._database.GetInterface(implementor_name)
+ if interface.parents is None:
+ interface.parents = []
+ for parent in interface.parents:
+ if parent.type.id == implemented_name:
+ if source and source not in parent.annotations:
+ parent.annotations[source] = IDLAnnotation(
+ import_options.source_attributes)
+ return
+ # not found, so add new one
+ parent = IDLParentInterface(None)
+ parent.type = IDLType(implemented_name)
+ if source:
+ parent.annotations[source] = IDLAnnotation(
+ import_options.source_attributes)
+ interface.parents.append(parent)
+
+ def merge_imported_interfaces(self, optional_argument_whitelist):
+ """Merges all imported interfaces and loads them into the DB."""
+
+ # Step 1: Pre process imported interfaces
+ for interface, module_name, import_options in self._imported_interfaces:
+ self._split_declarations(interface, optional_argument_whitelist)
+ self._annotate(interface, module_name, import_options)
+
+ # Step 2: Add all new interfaces and merge overlapping ones
+ for interface, module_name, import_options in self._imported_interfaces:
+ if not interface.is_supplemental:
+ if self._database.HasInterface(interface.id):
+ old_interface = self._database.GetInterface(interface.id)
+ self._merge_interfaces(old_interface, interface, import_options)
+ else:
+ if import_options.add_new_interfaces:
+ self._database.AddInterface(interface)
+
+ # Step 3: Merge in supplemental interfaces
+ for interface, module_name, import_options in self._imported_interfaces:
+ if interface.is_supplemental:
+ target_name = interface.ext_attrs['Supplemental']
+ if target_name:
+ # [Supplemental=DOMWindow] - merge into DOMWindow.
+ target = target_name
+ else:
+ # [Supplemental] - merge into existing inteface with same name.
+ target = interface.id
+ if self._database.HasInterface(target):
+ old_interface = self._database.GetInterface(target)
+ self._merge_interfaces(old_interface, interface, import_options)
+ else:
+ raise Exception("Supplemental target '%s' not found", target)
+
+ # Step 4: Resolve 'implements' statements
+ for impl_stmt, import_options in self._impl_stmts:
+ self._merge_impl_stmt(impl_stmt, import_options)
+
+ self._impl_stmts = []
+ self._imported_interfaces = []
+
+ def import_idl_file(self, file_path,
+ import_options=DatabaseBuilderOptions()):
+ """Parses, loads into memory and cleans up and IDL file"""
+ idl_file = self._load_idl_file(file_path, import_options)
+
+ self._strip_ext_attributes(idl_file)
+ self._resolve_type_defs(idl_file)
+ self._rename_types(idl_file, import_options)
+
+ def enabled(idl_node):
+ return self._is_node_enabled(idl_node, import_options.idl_defines)
+
+ for module in idl_file.modules:
+ for interface in module.interfaces:
+ if not self._is_node_enabled(interface, import_options.idl_defines):
+ _logger.info('skipping interface %s/%s (source=%s file=%s)'
+ % (module.id, interface.id, import_options.source,
+ file_path))
+ continue
+
+ _logger.info('importing interface %s/%s (source=%s file=%s)'
+ % (module.id, interface.id, import_options.source,
+ file_path))
+ interface.attributes = filter(enabled, interface.attributes)
+ interface.operations = filter(enabled, interface.operations)
+ self._imported_interfaces.append((interface, module.id, import_options))
+
+ for implStmt in module.implementsStatements:
+ self._impl_stmts.append((implStmt, import_options))
+
+ def _is_node_enabled(self, node, idl_defines):
+ if not 'Conditional' in node.ext_attrs:
+ return True
+
+ def enabled(condition):
+ return 'ENABLE_%s' % condition in idl_defines
+
+ conditional = node.ext_attrs['Conditional']
+ if conditional.find('&') != -1:
+ for condition in conditional.split('&'):
+ if not enabled(condition):
+ return False
+ return True
+
+ for condition in conditional.split('|'):
+ if enabled(condition):
+ return True
+ return False
+
+ def fix_displacements(self, source):
+ """E.g. In W3C, something is declared on HTMLDocument but in WebKit
+ its on Document, so we need to mark that something in HTMLDocument
+ with @WebKit(via=Document). The 'via' attribute specifies the
+ parent interface that has the declaration."""
+
+ for interface in self._database.GetInterfaces():
+ changed = False
+
+ _logger.info('fixing displacements in %s' % interface.id)
+
+ for parent_interface in self._get_parent_interfaces(interface):
+ _logger.info('scanning parent %s of %s' %
+ (parent_interface.id, interface.id))
+
+ def fix_nodes(local_list, parent_list):
+ changed = False
+ parent_signatures_map = self._build_signatures_map(
+ parent_list)
+ for idl_node in local_list:
+ sig = self._sign(idl_node)
+ if sig in parent_signatures_map:
+ parent_member = parent_signatures_map[sig]
+ if (source in parent_member.annotations
+ and source not in idl_node.annotations
+ and _VIA_ANNOTATION_ATTR_NAME
+ not in parent_member.annotations[source]):
+ idl_node.annotations[source] = IDLAnnotation(
+ {_VIA_ANNOTATION_ATTR_NAME: parent_interface.id})
+ changed = True
+ return changed
+
+ changed = fix_nodes(interface.constants,
+ parent_interface.constants) or changed
+ changed = fix_nodes(interface.attributes,
+ parent_interface.attributes) or changed
+ changed = fix_nodes(interface.operations,
+ parent_interface.operations) or changed
+ if changed:
+ _logger.info('fixed displaced declarations in %s' %
+ interface.id)
+
+ def normalize_annotations(self, sources):
+ """Makes the IDLs less verbose by removing annotation attributes
+ that are identical to the ones defined at the interface level.
+
+ Args:
+ sources -- list of source names to normalize."""
+ for interface in self._database.GetInterfaces():
+ _logger.debug('normalizing annotations for %s' % interface.id)
+ for source in sources:
+ if (source not in interface.annotations or
+ not interface.annotations[source]):
+ continue
+ top_level_annotation = interface.annotations[source]
+
+ def normalize(idl_node):
+ if (source in idl_node.annotations
+ and idl_node.annotations[source]):
+ annotation = idl_node.annotations[source]
+ for name, value in annotation.items():
+ if (name in top_level_annotation
+ and value == top_level_annotation[name]):
+ del annotation[name]
+
+ map(normalize, interface.parents)
+ map(normalize, interface.constants)
+ map(normalize, interface.attributes)
+ map(normalize, interface.operations)
diff --git a/elemental/idl/scripts/databasebuilder_test.py b/elemental/idl/scripts/databasebuilder_test.py
new file mode 100755
index 0000000..6a3d273
--- /dev/null
+++ b/elemental/idl/scripts/databasebuilder_test.py
@@ -0,0 +1,387 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import database
+import idlparser
+import logging.config
+import os
+import os.path
+import shutil
+import tempfile
+import unittest
+from databasebuilder import *
+
+
+class DatabaseBuilderTestCase(unittest.TestCase):
+
+ def _create_input(self, idl_file_name, content):
+ file_name = os.path.join(self._input_dir, idl_file_name)
+ f = open(file_name, 'w')
+ f.write(content)
+ f.close()
+ return file_name
+
+ def _assert_interface_exists(self, path):
+ file_path = os.path.join(self._database_dir, path)
+ self.assertTrue(os.path.exists(file_path))
+
+ def _assert_content_equals(self, path, expected_content):
+ def clean(content):
+ return ' '.join(filter(len, map(str.strip, content.split('\n'))))
+ file_path = os.path.join(self._database_dir, path)
+ self.assertTrue(os.path.exists(file_path))
+ f = open(file_path, 'r')
+ actual_content = f.read()
+ f.close()
+ if clean(actual_content) != clean(expected_content):
+ msg = '''
+FILE: %s
+EXPECTED:
+%s
+ACTUAL:
+%s
+''' % (file_path, expected_content, actual_content)
+ self.fail(msg)
+
+ def setUp(self):
+ working_dir = tempfile.mkdtemp()
+ self._database_dir = os.path.join(working_dir, 'database')
+ self.assertFalse(os.path.exists(self._database_dir))
+
+ self._input_dir = os.path.join(working_dir, 'inputdir')
+ os.makedirs(self._input_dir)
+
+ self._db = database.Database(self._database_dir)
+ self.assertTrue(os.path.exists(self._database_dir))
+
+ self._builder = DatabaseBuilder(self._db)
+
+ def tearDown(self):
+ shutil.rmtree(self._database_dir)
+
+ def test_basic_import(self):
+ file_name = self._create_input('input.idl', '''
+ module M {
+ interface I {
+ attribute int a;
+ };
+ };''')
+ self._builder.import_idl_file(file_name)
+ self._builder.merge_imported_interfaces([])
+ self._db.Save()
+ self._assert_interface_exists('I.idl')
+
+ def test_splitting(self):
+ file_name = self._create_input('input.idl', '''
+ module M {
+ interface I {
+ readonly attribute int a;
+ int o(in int x, in optional int y);
+ };
+ };''')
+ self._builder.import_idl_file(file_name)
+ self._builder.merge_imported_interfaces([])
+ self._db.Save()
+ self._assert_content_equals('I.idl', '''
+ interface I {
+ /* Attributes */
+ getter attribute int a;
+
+ /* Operations */
+ int o(in int x);
+ int o(in int x, in int y);
+ };''')
+
+ def test_renames(self):
+ file_name = self._create_input('input.idl', '''
+ module M {
+ [Constructor(in T x)] interface I {
+ T op(T x);
+ readonly attribute N::T attr;
+ };
+ };''')
+ options = DatabaseBuilderOptions(type_rename_map={'I': 'i', 'T': 't'})
+ self._builder.import_idl_file(file_name, options)
+ self._builder.merge_imported_interfaces([])
+ self._db.Save()
+ self._assert_content_equals('i.idl', '''
+ [Constructor(in t x)] interface i {
+ /* Attributes */
+ getter attribute t attr;
+ /* Operations */
+ t op(in t x);
+ };''')
+
+ def test_type_defs(self):
+ file_name = self._create_input('input.idl', '''
+ module M {
+ typedef T S;
+ interface I : S {
+ S op(S x);
+ readonly attribute S attr;
+ };
+ };''')
+ options = DatabaseBuilderOptions()
+ self._builder.import_idl_file(file_name, options)
+ self._builder.merge_imported_interfaces([])
+ self._db.Save()
+ self._assert_content_equals('I.idl', '''
+ interface I :
+ T {
+ /* Attributes */
+ getter attribute T attr;
+ /* Operations */
+ T op(in T x);
+ };''')
+
+ def test_merge(self):
+ file_name1 = self._create_input('input1.idl', '''
+ module M {
+ interface I {
+ const int CONST_BOTH = 0;
+ const int CONST_ONLY_FIRST = 0;
+ const int CONST_BOTH_DIFFERENT_VALUE = 0;
+
+ readonly attribute int attr_only_first;
+ readonly attribute int attr_both;
+ readonly attribute int attr_both_readonly_difference;
+ readonly attribute int attr_both_int_long_difference;
+
+ int op_only_first();
+ int op_both(int a);
+ int op_both_optionals_difference(int a,
+ in optional int b);
+ int op_both_arg_rename(int arg);
+ };
+ };''')
+ self._builder.import_idl_file(file_name1,
+ DatabaseBuilderOptions(source='1st',
+ idl_syntax=idlparser.FREMONTCUT_SYNTAX))
+ file_name2 = self._create_input('input2.idl', '''
+ module M {
+ interface I {
+ const int CONST_BOTH = 0;
+ const int CONST_ONLY_SECOND = 0;
+ const int CONST_BOTH_DIFFERENT_VALUE = 1;
+
+ readonly attribute int attr_only_second;
+ readonly attribute int attr_both;
+ readonly attribute long attr_both_int_long_difference;
+ attribute int attr_both_readonly_difference;
+
+ int op_only_second();
+ int op_both(int a);
+ int op_both_optionals_difference(int a,
+ optional boolean b);
+ int op_both_arg_rename(int betterName);
+ };
+ };''')
+ self._builder.import_idl_file(file_name2,
+ DatabaseBuilderOptions(source='2nd',
+ idl_syntax=idlparser.FREMONTCUT_SYNTAX))
+ self._builder.set_same_signatures({'int': 'long'})
+ self._builder.merge_imported_interfaces([])
+ self._db.Save()
+ self._assert_content_equals('I.idl', '''
+ @1st(module=M) @2nd(module=M) interface I {
+ /* Constants */
+ @1st @2nd const int CONST_BOTH = 0;
+ @1st const int CONST_BOTH_DIFFERENT_VALUE = 0;
+ @2nd const int CONST_BOTH_DIFFERENT_VALUE = 1;
+ @1st const int CONST_ONLY_FIRST = 0;
+ @2nd const int CONST_ONLY_SECOND = 0;
+
+ /* Attributes */
+ @1st @2nd getter attribute int attr_both;
+ @1st @2nd getter attribute int attr_both_int_long_difference;
+ @1st @2nd getter attribute int attr_both_readonly_difference;
+ @2nd setter attribute int attr_both_readonly_difference;
+ @1st getter attribute int attr_only_first;
+ @2nd getter attribute int attr_only_second;
+
+ /* Operations */
+ @1st @2nd int op_both(in t a);
+ @1st @2nd int op_both_arg_rename(in t betterName);
+ @1st @2nd int op_both_optionals_difference(in t a);
+ @1st int op_both_optionals_difference(in t a, in int b);
+ @2nd int op_both_optionals_difference(in t a, in boolean b);
+ @1st int op_only_first();
+ @2nd int op_only_second();
+ };''')
+
+ def test_mergeDartName(self):
+ file_name1 = self._create_input('input1.idl', '''
+ module M {
+ interface I {
+ [ImplementationFunction=foo] int member(in int a);
+ };
+ };''')
+ self._builder.import_idl_file(file_name1,
+ DatabaseBuilderOptions(source='1st',
+ idl_syntax=idlparser.FREMONTCUT_SYNTAX))
+ file_name2 = self._create_input('input2.idl', '''
+ module M {
+ interface I {
+ [DartName=bar] int member(in int a);
+ };
+ };''')
+ self._builder.import_idl_file(file_name2,
+ DatabaseBuilderOptions(source='2nd',
+ idl_syntax=idlparser.FREMONTCUT_SYNTAX))
+ self._builder.merge_imported_interfaces([])
+ self._db.Save()
+ self._assert_content_equals('I.idl', '''
+ @1st(module=M) @2nd(module=M) interface I {
+ /* Operations */
+ @1st @2nd [DartName=bar, ImplementationFunction=foo] int member(in int a);
+ };''')
+
+ def test_supplemental(self):
+ file_name = self._create_input('input1.idl', '''
+ module M {
+ interface I {
+ readonly attribute int a;
+ };
+ [Supplemental] interface I {
+ readonly attribute int b;
+ };
+ };''')
+ self._builder.import_idl_file(file_name,
+ DatabaseBuilderOptions(source='Src'))
+ self._builder.merge_imported_interfaces([])
+ self._db.Save()
+ self._assert_content_equals('I.idl', '''
+ @Src(module=M) [Supplemental] interface I {
+ /* Attributes */
+ @Src getter attribute int a;
+ @Src getter attribute int b;
+ };''')
+
+ def test_impl_stmt(self):
+ file_name = self._create_input('input.idl', '''
+ module M {
+ interface I {};
+ I implements J;
+ };''')
+ self._builder.import_idl_file(file_name,
+ DatabaseBuilderOptions(source='Src'))
+ self._builder.merge_imported_interfaces([])
+ self._db.Save()
+ self._assert_content_equals('I.idl', '''
+ @Src(module=M) interface I :
+ @Src J {
+ };''')
+
+ def test_obsolete(self):
+ file_name1 = self._create_input('input1.idl', '''
+ module M {
+ interface I {
+ readonly attribute int keep;
+ readonly attribute int obsolete; // Would be removed
+ };
+ };''')
+ self._builder.import_idl_file(file_name1,
+ DatabaseBuilderOptions(source='src'))
+ file_name2 = self._create_input('input2.idl', '''
+ module M {
+ interface I {
+ readonly attribute int keep;
+ readonly attribute int new;
+ };
+ };''')
+ self._builder.import_idl_file(file_name2,
+ DatabaseBuilderOptions(source='src',
+ obsolete_old_declarations=True))
+ self._builder.merge_imported_interfaces([])
+ self._db.Save()
+ self._assert_content_equals('I.idl', '''
+ @src(module=M) interface I {
+ /* Attributes */
+ @src getter attribute int keep;
+ @src getter attribute int new;
+ };''')
+
+ def test_annotation_normalization(self):
+ file_name = self._create_input('input.idl', '''
+ module M {
+ interface I : J{
+ const int C = 0;
+ readonly attribute int a;
+ int op();
+ };
+ };''')
+ self._builder.import_idl_file(file_name,
+ DatabaseBuilderOptions(source='Src', source_attributes={'x': 'y'}))
+ self._builder.merge_imported_interfaces([])
+ interface = self._db.GetInterface('I')
+ interface.parents[0].annotations['Src']['x'] = 'u'
+ interface.constants[0].annotations['Src']['z'] = 'w'
+ interface.attributes[0].annotations['Src']['x'] = 'u'
+ self._db.Save()
+
+ # Before normalization
+ self._assert_content_equals('I.idl', '''
+ @Src(module=M, x=y)
+ interface I : @Src(x=u) J {
+ /* Constants */
+ @Src(x=y, z=w) const int C = 0;
+ /* Attributes */
+ @Src(x=u) getter attribute int a;
+ /* Operations */
+ @Src(x=y) int op();
+ };''')
+
+ # Normalize
+ self._builder.normalize_annotations(['Src'])
+ self._db.Save()
+
+ # After normalization
+ self._assert_content_equals('I.idl', '''
+ @Src(module=M, x=y)
+ interface I : @Src(x=u) J {
+ /* Constants */
+ @Src(z=w) const int C = 0;
+ /* Attributes */
+ @Src(x=u) getter attribute int a;
+ /* Operations */
+ @Src int op();
+ };''')
+
+ def test_fix_displacements(self):
+ file_name1 = self._create_input('input1.idl', '''
+ module M {
+ interface I {};
+ interface J : I {
+ readonly attribute int attr;
+ };
+ };''')
+ self._builder.import_idl_file(file_name1,
+ DatabaseBuilderOptions(source='1st'))
+ file_name2 = self._create_input('input2.idl', '''
+ module M {
+ interface I {
+ readonly attribute int attr;
+ };
+ interface J : I {};
+ };''')
+ self._builder.import_idl_file(file_name2,
+ DatabaseBuilderOptions(source='2nd'))
+ self._builder.merge_imported_interfaces([])
+ self._builder.fix_displacements('2nd')
+ self._db.Save()
+ self._assert_content_equals('J.idl', '''
+ @1st(module=M) @2nd(module=M) interface J :
+ @1st @2nd I {
+ /* Attributes */
+ @1st
+ @2nd(via=I)
+ getter attribute int attr;
+ };''')
+
+
+if __name__ == "__main__":
+ logging.config.fileConfig("logging.conf")
+ if __name__ == '__main__':
+ unittest.main()
diff --git a/elemental/idl/scripts/elemental_fremontcutbuilder.py b/elemental/idl/scripts/elemental_fremontcutbuilder.py
new file mode 100755
index 0000000..4fe8af3
--- /dev/null
+++ b/elemental/idl/scripts/elemental_fremontcutbuilder.py
@@ -0,0 +1,217 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import database
+import databasebuilder
+import idlparser
+import logging.config
+import os.path
+import sys
+
+# TODO(antonm): most probably should go away or be autogenerated on IDLs roll.
+DEFAULT_FEATURE_DEFINES = [
+ # Enabled Chrome WebKit build.
+ 'ENABLE_3D_PLUGIN',
+ 'ENABLE_3D_RENDERING',
+ 'ENABLE_ACCELERATED_2D_CANVAS',
+ 'ENABLE_BATTERY_STATUS',
+ 'ENABLE_BLOB',
+ 'ENABLE_BLOB_SLICE',
+ 'ENABLE_CALENDAR_PICKER',
+ 'ENABLE_CHANNEL_MESSAGING',
+ 'ENABLE_CSS_FILTERS',
+ 'ENABLE_CSS_IMAGE_SET',
+ 'ENABLE_CSS_SHADERS',
+ 'ENABLE_DART',
+ 'ENABLE_DATA_TRANSFER_ITEMS',
+ 'ENABLE_DETAILS',
+ 'ENABLE_DEVICE_ORIENTATION',
+ 'ENABLE_DIRECTORY_UPLOAD',
+ 'ENABLE_DOWNLOAD_ATTRIBUTE',
+ 'ENABLE_ENCRYPTED_MEDIA',
+ 'ENABLE_FILE_SYSTEM',
+ 'ENABLE_FILTERS',
+ 'ENABLE_FULLSCREEN_API',
+ 'ENABLE_GAMEPAD',
+ 'ENABLE_GEOLOCATION',
+ 'ENABLE_GESTURE_EVENTS',
+ 'ENABLE_INDEXED_DATABASE',
+ 'ENABLE_INPUT_SPEECH',
+ 'ENABLE_INPUT_TYPE_COLOR',
+ 'ENABLE_INPUT_TYPE_DATE',
+ 'ENABLE_JAVASCRIPT_DEBUGGER',
+ 'ENABLE_JAVASCRIPT_I18N_API',
+ 'ENABLE_LEGACY_NOTIFICATIONS',
+ 'ENABLE_LINK_PREFETCH',
+ 'ENABLE_MEDIA_SOURCE',
+ 'ENABLE_MEDIA_STATISTICS',
+ 'ENABLE_MEDIA_STREAM',
+ 'ENABLE_METER_TAG',
+ 'ENABLE_MHTML',
+ 'ENABLE_MUTATION_OBSERVERS',
+ 'ENABLE_NOTIFICATIONS',
+ 'ENABLE_OVERFLOW_SCROLLING',
+ 'ENABLE_PAGE_POPUP',
+ 'ENABLE_PAGE_VISIBILITY_API',
+ 'ENABLE_POINTER_LOCK',
+ 'ENABLE_PROGRESS_TAG',
+ 'ENABLE_QUOTA',
+ 'ENABLE_REGISTER_PROTOCOL_HANDLER',
+ 'ENABLE_REQUEST_ANIMATION_FRAME',
+ 'ENABLE_RUBY',
+ 'ENABLE_SANDBOX',
+ 'ENABLE_SCRIPTED_SPEECH',
+ 'ENABLE_SHADOW_DOM',
+ 'ENABLE_SHARED_WORKERS',
+ 'ENABLE_SMOOTH_SCROLLING',
+ 'ENABLE_SQL_DATABASE',
+ 'ENABLE_STYLE_SCOPED',
+ 'ENABLE_SVG',
+ 'ENABLE_SVG_FONTS',
+ 'ENABLE_TOUCH_EVENTS',
+ 'ENABLE_V8_SCRIPT_DEBUG_SERVER',
+ 'ENABLE_VIDEO',
+ 'ENABLE_VIDEO_TRACK',
+ 'ENABLE_VIEWPORT',
+ 'ENABLE_WEBGL',
+ 'ENABLE_WEB_AUDIO',
+ 'ENABLE_WEB_INTENTS',
+ 'ENABLE_WEB_SOCKETS',
+ 'ENABLE_WEB_TIMING',
+ 'ENABLE_WORKERS',
+ 'ENABLE_XHR_RESPONSE_BLOB',
+ 'ENABLE_XSLT',
+]
+
+# TODO(antonm): Remove this filter.
+UNSUPPORTED_FEATURES = [ 'ENABLE_WEB_INTENTS' ]
+
+def build_database(idl_files, database_dir, feature_defines = None):
+ """This code reconstructs the FremontCut IDL database from W3C,
+ WebKit and Dart IDL files."""
+ current_dir = os.path.dirname(__file__)
+ logging.config.fileConfig(os.path.join(current_dir, "logging.conf"))
+
+ db = database.Database(database_dir)
+
+ # Delete all existing IDLs in the DB.
+ db.Delete()
+
+ builder = databasebuilder.DatabaseBuilder(db)
+
+ # TODO(vsm): Move this to a README.
+ # This is the Dart SVN revision.
+ webkit_revision = '1060'
+
+ # TODO(vsm): Reconcile what is exposed here and inside WebKit code
+ # generation. We need to recheck this periodically for now.
+ webkit_defines = [ 'LANGUAGE_DART', 'LANGUAGE_JAVASCRIPT' ]
+ if feature_defines is None:
+ feature_defines = DEFAULT_FEATURE_DEFINES
+
+ webkit_options = databasebuilder.DatabaseBuilderOptions(
+ idl_syntax=idlparser.WEBKIT_SYNTAX,
+# TODO(vsm): What else should we define as on when processing IDL?
+ idl_defines=[define for define in webkit_defines + feature_defines if define not in UNSUPPORTED_FEATURES],
+ source='WebKit',
+ source_attributes={'revision': webkit_revision},
+ type_rename_map={
+ 'BarInfo': 'BarProp',
+ 'DedicatedWorkerContext': 'DedicatedWorkerGlobalScope',
+ 'DOMApplicationCache': 'ApplicationCache',
+ 'DOMCoreException': 'DOMException',
+ 'DOMFormData': 'FormData',
+ 'DOMSelection': 'Selection',
+ 'DOMWindow': 'Window',
+ 'SharedWorkerContext': 'SharedWorkerGlobalScope',
+ 'WorkerContext': 'WorkerGlobalScope',
+ })
+
+ optional_argument_whitelist = [
+ ('CSSStyleDeclaration', 'setProperty', 'priority'),
+ ('IDBDatabase', 'transaction', 'mode'),
+ ]
+
+ # Import WebKit IDLs.
+ for file_name in idl_files:
+ builder.import_idl_file(file_name, webkit_options)
+
+ # Import Dart idl:
+ dart_options = databasebuilder.DatabaseBuilderOptions(
+ idl_syntax=idlparser.FREMONTCUT_SYNTAX,
+ source='Dart',
+ rename_operation_arguments_on_merge=True)
+
+ builder.import_idl_file(
+ os.path.join(current_dir, '..', 'elemental', 'elemental.idl'),
+ dart_options)
+
+ # Merging:
+ builder.merge_imported_interfaces(optional_argument_whitelist)
+
+ builder.fix_displacements('WebKit')
+
+ # Cleanup:
+ builder.normalize_annotations(['WebKit', 'Dart'])
+
+ db.Save()
+
+def main():
+ current_dir = os.path.dirname(__file__)
+
+ webkit_dirs = [
+ 'css',
+ 'dom',
+ 'fileapi',
+ 'html',
+ 'html/canvas',
+ 'inspector',
+ 'loader',
+ 'loader/appcache',
+ 'Modules/battery',
+ 'Modules/filesystem',
+ 'Modules/geolocation',
+ 'Modules/indexeddb',
+ 'Modules/mediastream',
+ 'Modules/speech',
+ 'Modules/webaudio',
+ 'Modules/webdatabase',
+ 'Modules/websockets',
+ 'notifications',
+ 'page',
+ 'plugins',
+ 'storage',
+ 'svg',
+ 'workers',
+ 'xml',
+ ]
+
+ ignored_idls = [
+ 'AbstractView.idl',
+ ]
+
+ idl_files = []
+
+ webcore_dir = os.path.join(current_dir, '..',
+ 'third_party', 'WebCore')
+ if not os.path.exists(webcore_dir):
+ raise RuntimeError('directory not found: %s' % webcore_dir)
+
+ def visitor(arg, dir_name, names):
+ for name in names:
+ file_name = os.path.join(dir_name, name)
+ (interface, ext) = os.path.splitext(file_name)
+ if ext == '.idl' and name not in ignored_idls:
+ idl_files.append(file_name)
+
+ for dir_name in webkit_dirs:
+ dir_path = os.path.join(webcore_dir, dir_name)
+ os.path.walk(dir_path, visitor, None)
+
+ database_dir = os.path.join(current_dir, '..', 'database')
+ return build_database(idl_files, database_dir)
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/elemental/idl/scripts/elementaldomgenerator.py b/elemental/idl/scripts/elementaldomgenerator.py
new file mode 100755
index 0000000..7c55bed
--- /dev/null
+++ b/elemental/idl/scripts/elementaldomgenerator.py
@@ -0,0 +1,164 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""This is the entry point to create Elemental APIs from the IDL database."""
+
+import elementalgenerator
+import database
+import logging.config
+import optparse
+import os
+import shutil
+import subprocess
+import sys
+
+_logger = logging.getLogger('elementaldomgenerator')
+
+_webkit_renames = {
+ # W3C -> WebKit name conversion
+ # TODO(vsm): Maybe Store these renames in the IDLs.
+ 'ApplicationCache': 'DOMApplicationCache',
+ 'BarProp': 'BarInfo',
+ 'DedicatedWorkerGlobalScope': 'DedicatedWorkerContext',
+ 'FormData': 'DOMFormData',
+ 'Selection': 'DOMSelection',
+ 'SharedWorkerGlobalScope': 'SharedWorkerContext',
+ 'Window': 'DOMWindow',
+ 'WorkerGlobalScope': 'WorkerContext'}
+
+_html_strip_webkit_prefix_classes = [
+ 'Animation',
+ 'AnimationEvent',
+ 'AnimationList',
+ 'BlobBuilder',
+ 'CSSKeyframeRule',
+ 'CSSKeyframesRule',
+ 'CSSMatrix',
+ 'CSSTransformValue',
+ 'Flags',
+ 'LoseContext',
+ 'Point',
+ 'TransitionEvent']
+
+def HasAncestor(interface, names_to_match, database):
+ for parent in interface.parents:
+ if (parent.type.id in names_to_match or
+ (database.HasInterface(parent.type.id) and
+ HasAncestor(database.GetInterface(parent.type.id), names_to_match,
+ database))):
+ return True
+ return False
+
+def _MakeHtmlRenames(common_database):
+ html_renames = {}
+
+ for interface in common_database.GetInterfaces():
+ if (interface.id.startswith("HTML") and
+ HasAncestor(interface, ['Element', 'Document'], common_database)):
+ html_renames[interface.id] = interface.id[4:]
+
+ for subclass in _html_strip_webkit_prefix_classes:
+ html_renames['WebKit' + subclass] = subclass
+
+ # TODO(jacobr): we almost want to add this commented out line back.
+ # html_renames['HTMLCollection'] = 'ElementList'
+ # html_renames['NodeList'] = 'ElementList'
+ # html_renames['HTMLOptionsCollection'] = 'ElementList'
+ html_renames['DOMWindow'] = 'Window'
+ html_renames['DOMSelection'] = 'Selection'
+ html_renames['DOMFormData'] = 'FormData'
+ html_renames['DOMApplicationCache'] = 'ApplicationCache'
+ html_renames['BarInfo'] = 'BarProp'
+ html_renames['DedicatedWorkerContext']='DedicatedWorkerGlobalScope'
+ html_renames['SharedWorkerContext']='SharedWorkerGlobalScope'
+ html_renames['WorkerContext']='WorkerGlobalScope'
+
+ return html_renames
+
+def GenerateDOM(systems, generate_html_systems, output_dir,
+ database_dir, use_database_cache):
+ current_dir = os.path.dirname(__file__)
+
+ generator = elementalgenerator.ElementalGenerator(
+ auxiliary_dir=os.path.join(current_dir, '..', 'src'),
+ template_dir=os.path.join(current_dir, '..', 'templates'),
+ base_package='')
+ generator.LoadAuxiliary()
+
+ common_database = database.Database(database_dir)
+ if use_database_cache:
+ common_database.LoadFromCache()
+ else:
+ common_database.Load()
+
+ generator.FilterMembersWithUnidentifiedTypes(common_database)
+ webkit_database = common_database.Clone()
+
+ # Generate Dart interfaces for the WebKit DOM.
+ generator.FilterInterfaces(database = webkit_database,
+ or_annotations = ['WebKit', 'Dart'],
+ exclude_displaced = ['WebKit'],
+ exclude_suppressed = ['WebKit', 'Dart'])
+ generator.RenameTypes(webkit_database, _webkit_renames, True)
+ html_renames = _MakeHtmlRenames(common_database)
+ generator.RenameTypes(webkit_database, html_renames, True)
+
+ html_renames_inverse = dict((v,k) for k, v in html_renames.iteritems())
+ webkit_renames_inverse = dict((v,k) for k, v in _webkit_renames.iteritems())
+
+ generator.Generate(database = webkit_database,
+ output_dir = output_dir,
+ lib_dir = output_dir,
+ module_source_preference = ['WebKit', 'Dart'],
+ source_filter = ['WebKit', 'Dart'],
+ super_database = common_database,
+ common_prefix = 'common',
+ super_map = webkit_renames_inverse,
+ html_map = html_renames_inverse,
+ systems = systems)
+
+ generator.Flush()
+
+def main():
+ parser = optparse.OptionParser()
+ parser.add_option('--systems', dest='systems',
+ action='store', type='string',
+ default='gwt,gwtjso',
+ help='Systems to generate (gwt)')
+ parser.add_option('--output-dir', dest='output_dir',
+ action='store', type='string',
+ default=None,
+ help='Directory to put the generated files')
+ parser.add_option('--use-database-cache', dest='use_database_cache',
+ action='store_true',
+ default=False,
+ help='''Use the cached database from the previous run to
+ improve startup performance''')
+ (options, args) = parser.parse_args()
+
+ current_dir = os.path.dirname(__file__)
+ systems = options.systems.split(',')
+ html_system_names = ['htmlgwt']
+ html_systems = [s for s in systems if s in html_system_names]
+ dom_systems = [s for s in systems if s not in html_system_names]
+
+ database_dir = os.path.join(current_dir, '..', 'database')
+ use_database_cache = options.use_database_cache
+ logging.config.fileConfig(os.path.join(current_dir, 'logging.conf'))
+
+ if dom_systems:
+ output_dir = options.output_dir or os.path.join(current_dir,
+ '../generated')
+ GenerateDOM(dom_systems, False, output_dir,
+ database_dir, use_database_cache)
+
+ if html_systems:
+ output_dir = options.output_dir or os.path.join(current_dir,
+ '../generated')
+ GenerateDOM(html_systems, True, output_dir,
+ database_dir, use_database_cache or dom_systems)
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/elemental/idl/scripts/elementalgenerator.py b/elemental/idl/scripts/elementalgenerator.py
new file mode 100755
index 0000000..a105c10
--- /dev/null
+++ b/elemental/idl/scripts/elementalgenerator.py
@@ -0,0 +1,712 @@
+#!/usr/bin/python
+# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""This module generates Elemental APIs from the IDL database."""
+
+import emitter
+import idlnode
+import logging
+import multiemitter
+import os
+import re
+import shutil
+from generator_java import *
+from systembaseelemental import *
+from systemgwt import *
+from systemgwtjso import *
+from templateloader import TemplateLoader
+
+_logger = logging.getLogger('elementalgenerator')
+
+def MergeNodes(node, other):
+ node.operations.extend(other.operations)
+ for attribute in other.attributes:
+ if not node.has_attribute(attribute):
+ node.attributes.append(attribute)
+
+ node.constants.extend(other.constants)
+
+class ElementalGenerator(object):
+ """Utilities to generate Elemental APIs and corresponding JavaScript."""
+
+ def __init__(self, auxiliary_dir, template_dir, base_package):
+ """Constructor for the DartGenerator.
+
+ Args:
+ auxiliary_dir -- location of auxiliary handwritten classes
+ template_dir -- location of template files
+ base_package -- the base package name for the generated code.
+ """
+ self._auxiliary_dir = auxiliary_dir
+ self._template_dir = template_dir
+ self._base_package = base_package
+ self._auxiliary_files = {}
+ self._dart_templates_re = re.compile(r'[\w.:]+<([\w\.<>:]+)>')
+
+ self._emitters = None # set later
+
+
+ def _StripModules(self, type_name):
+ return type_name.split('::')[-1]
+
+ def _IsCompoundType(self, database, type_name):
+ if IsPrimitiveType(type_name):
+ return True
+
+ striped_type_name = self._StripModules(type_name)
+ if database.HasInterface(striped_type_name):
+ return True
+
+ dart_template_match = self._dart_templates_re.match(type_name)
+ if dart_template_match:
+ # Dart templates
+ parent_type_name = type_name[0 : dart_template_match.start(1) - 1]
+ sub_type_name = dart_template_match.group(1)
+ return (self._IsCompoundType(database, parent_type_name) and
+ self._IsCompoundType(database, sub_type_name))
+ return False
+
+ def _IsDartType(self, type_name):
+ return '.' in type_name
+
+ def LoadAuxiliary(self):
+ def Visitor(_, dirname, names):
+ for name in names:
+ if name.endswith('.dart'):
+ name = name[0:-5] # strip off ".dart"
+ self._auxiliary_files[name] = os.path.join(dirname, name)
+ os.path.walk(self._auxiliary_dir, Visitor, None)
+
+ def RenameTypes(self, database, conversion_table, rename_javascript_binding_names):
+ """Renames interfaces using the given conversion table.
+
+ References through all interfaces will be renamed as well.
+
+ Args:
+ database: the database to apply the renames to.
+ conversion_table: maps old names to new names.
+ """
+
+ if conversion_table is None:
+ conversion_table = {}
+
+ # Rename interfaces:
+ for old_name, new_name in conversion_table.items():
+ if database.HasInterface(old_name):
+ _logger.info('renaming interface %s to %s' % (old_name, new_name))
+ interface = database.GetInterface(old_name)
+ database.DeleteInterface(old_name)
+ if not database.HasInterface(new_name):
+ interface.id = new_name
+ database.AddInterface(interface)
+ else:
+ new_interface = database.GetInterface(new_name)
+ MergeNodes(new_interface, interface)
+
+ if rename_javascript_binding_names:
+ interface.javascript_binding_name = new_name
+ interface.doc_js_name = new_name
+ for member in (interface.operations + interface.constants
+ + interface.attributes):
+ member.doc_js_interface_name = new_name
+
+
+ # Fix references:
+ for interface in database.GetInterfaces():
+ for idl_type in interface.all(idlnode.IDLType):
+ type_name = self._StripModules(idl_type.id)
+ if type_name in conversion_table:
+ idl_type.id = conversion_table[type_name]
+
+ def FilterMembersWithUnidentifiedTypes(self, database):
+ """Removes unidentified types.
+
+ Removes constants, attributes, operations and parents with unidentified
+ types.
+ """
+
+ for interface in database.GetInterfaces():
+ def IsIdentified(idl_node):
+ node_name = idl_node.id if idl_node.id else 'parent'
+ for idl_type in idl_node.all(idlnode.IDLType):
+ type_name = idl_type.id
+ if (type_name is not None and
+ self._IsCompoundType(database, type_name)):
+ continue
+ _logger.warn('removing %s in %s which has unidentified type %s' %
+ (node_name, interface.id, type_name))
+ return False
+ return True
+
+ interface.constants = filter(IsIdentified, interface.constants)
+ interface.attributes = filter(IsIdentified, interface.attributes)
+ interface.operations = filter(IsIdentified, interface.operations)
+ interface.parents = filter(IsIdentified, interface.parents)
+
+ def FilterInterfaces(self, database,
+ and_annotations=[],
+ or_annotations=[],
+ exclude_displaced=[],
+ exclude_suppressed=[]):
+ """Filters a database to remove interfaces and members that are missing
+ annotations.
+
+ The FremontCut IDLs use annotations to specify implementation
+ status in various platforms. For example, if a member is annotated
+ with @WebKit, this means that the member is supported by WebKit.
+
+ Args:
+ database -- the database to filter
+ all_annotations -- a list of annotation names a member has to
+ have or it will be filtered.
+ or_annotations -- if a member has one of these annotations, it
+ won't be filtered even if it is missing some of the
+ all_annotations.
+ exclude_displaced -- if a member has this annotation and it
+ is marked as displaced it will always be filtered.
+ exclude_suppressed -- if a member has this annotation and it
+ is marked as suppressed it will always be filtered.
+ """
+
+ # Filter interfaces and members whose annotations don't match.
+ for interface in database.GetInterfaces():
+ def HasAnnotations(idl_node):
+ """Utility for determining if an IDLNode has all
+ the required annotations"""
+ for a in exclude_displaced:
+ if (a in idl_node.annotations
+ and 'via' in idl_node.annotations[a]):
+ return False
+ for a in exclude_suppressed:
+ if (a in idl_node.annotations
+ and 'suppressed' in idl_node.annotations[a]):
+ return False
+ for a in or_annotations:
+ if a in idl_node.annotations:
+ return True
+ if and_annotations == []:
+ return False
+ for a in and_annotations:
+ if a not in idl_node.annotations:
+ return False
+ return True
+
+ if HasAnnotations(interface):
+ interface.constants = filter(HasAnnotations, interface.constants)
+ interface.attributes = filter(HasAnnotations, interface.attributes)
+ interface.operations = filter(HasAnnotations, interface.operations)
+ interface.parents = filter(HasAnnotations, interface.parents)
+ else:
+ database.DeleteInterface(interface.id)
+
+ self.FilterMembersWithUnidentifiedTypes(database)
+
+
+ def Generate(self, database, output_dir,
+ module_source_preference=[], source_filter=None,
+ super_database=None, common_prefix=None, super_map={},
+ html_map={}, lib_dir=None, systems=[]):
+ """Generates Dart and JS files for the loaded interfaces.
+
+ Args:
+ database -- database containing interfaces to generate code for.
+ output_dir -- directory to write generated files to.
+ module_source_preference -- priority order list of source annotations to
+ use when choosing a module name, if none specified uses the module name
+ from the database.
+ source_filter -- if specified, only outputs interfaces that have one of
+ these source annotation and rewrites the names of superclasses not
+ marked with this source to use the common prefix.
+ super_database -- database containing super interfaces that the generated
+ interfaces should extend.
+ common_prefix -- prefix for the common library, if any.
+ lib_file_path -- filename for generated .lib file, None if not required.
+ lib_template -- template file in this directory for generated lib file.
+ """
+
+ self._emitters = multiemitter.MultiEmitter()
+ self._database = database
+ self._output_dir = output_dir
+
+ self._FixEventTargets()
+ self._ComputeInheritanceClosure()
+
+ self._systems = []
+
+ # TODO(jmesserly): only create these if needed
+ if ('gwtjso' in systems):
+ jso_system = ElementalJsoSystem(
+ TemplateLoader(self._template_dir, ['dom/jso', 'dom', '']),
+ self._database, self._emitters, self._output_dir)
+ self._systems.append(jso_system)
+ if ('gwt' in systems):
+ interface_system = ElementalInterfacesSystem(
+ TemplateLoader(self._template_dir, ['dom/interface', 'dom', '']),
+ self._database, self._emitters, self._output_dir)
+ self._systems.append(interface_system)
+
+# if 'gwt' in systems:
+# elemental_system = ElementalSystem(
+# TemplateLoader(self._template_dir, ['dom/elemental', 'dom', '']),
+# self._database, self._emitters, self._output_dir)
+
+# elemental_system._interface_system = interface_system
+# self._systems.append(elemental_system)
+
+
+
+ # Collect interfaces
+ interfaces = []
+ for interface in database.GetInterfaces():
+ if not MatchSourceFilter(source_filter, interface):
+ # Skip this interface since it's not present in the required source
+ _logger.info('Omitting interface - %s' % interface.id)
+ continue
+ interfaces.append(interface)
+
+ # TODO(sra): Use this list of exception names to generate information to
+ # tell Frog which exceptions can be passed from JS to Dart code.
+ exceptions = self._CollectExceptions(interfaces)
+
+ mixins = self._ComputeMixins(self._PreOrderInterfaces(interfaces))
+ for system in self._systems:
+ # give outputters a chance to see the mixin list before starting
+ system.ProcessMixins(mixins)
+
+ # copy all mixin methods from every interface to this base interface
+ self.PopulateMixinBase(self._database.GetInterface('ElementalMixinBase'), mixins)
+
+ # Render all interfaces into Dart and save them in files.
+ for interface in self._PreOrderInterfaces(interfaces):
+
+ super_interface = None
+ super_name = interface.id
+
+ if super_name in super_map:
+ super_name = super_map[super_name]
+
+ if (super_database is not None and
+ super_database.HasInterface(super_name)):
+ super_interface = super_name
+
+ interface_name = interface.id
+ auxiliary_file = self._auxiliary_files.get(interface_name)
+ if auxiliary_file is not None:
+ _logger.info('Skipping %s because %s exists' % (
+ interface_name, auxiliary_file))
+ continue
+
+ info = RecognizeCallback(interface)
+ if info:
+ for system in self._systems:
+ system.ProcessCallback(interface, info)
+ else:
+ if 'Callback' in interface.ext_attrs:
+ _logger.info('Malformed callback: %s' % interface.id)
+ self._ProcessInterface(interface, super_interface,
+ source_filter, common_prefix)
+
+ for system in self._systems:
+ system.Finish()
+
+ def PopulateMixinBase(self, mixinbase, mixins):
+ """Copy all mixin attributes and operations to mixin base class"""
+ for mixin_name in mixins:
+ if self._database.HasInterface(mixin_name):
+ mixin = self._database.GetInterface(mixin_name)
+ mixinbase.attributes.extend(mixin.attributes)
+ mixinbase.operations.extend(mixin.operations)
+ for extattr in mixin.ext_attrs.keys():
+ mixinbase.ext_attrs[extattr] = mixin.ext_attrs[extattr]
+
+ # compute all interfaces which are in disjoint type hierarchies
+ # that is, cannot be SingleImplJSO without hoisting
+ def _ComputeMixins(self, interfaces):
+ implementors = {}
+ mixins = {}
+ parents = {}
+ # first compute the set of all inherited super-interfaces of every interface
+ for interface in interfaces:
+ if interface.parents:
+ # the first parent interface is the superclass
+ parent = interface.parents[0]
+ # if we haven't processed this one before
+ if not interface.id in parents:
+ # compute a list of all of the direct superclass this interface
+ parents[interface.id] = []
+ parents[interface.id].append(parent)
+ if parent.type.id in parents:
+ # inherit all the super-interfaces
+ parents[interface.id].extend(parents[parent.type.id])
+
+ implemented_by = None
+ for interface in interfaces:
+ # now, examining secondary interfaces
+ for secondary in interface.parents[1:]:
+ if secondary.type.id in implementors:
+ implemented_by = implementors[secondary.type.id]
+ # if the interface is implemented by someone else who is not one of my parents, it is not SingleJsoImpl
+ if not implemented_by in parents[interface.id]:
+ mixins[secondary.type.id]=implemented_by
+ print "Mixin detected %s, previously implemented by %s, but also implemented by %s" % (secondary.type.id, implemented_by, interface.id)
+ # add all parents of the mixin as well
+ superparents = []
+ superiface = secondary.type.id
+ if self._database.HasInterface(superiface):
+ self.getParents(self._database.GetInterface(superiface), superparents)
+ for parent in superparents:
+ mixins[parent.id]=implemented_by
+ print "Super Mixin detected %s, previously implemented by %s, but also implemented by %s" % (parent.id, implemented_by, interface.id)
+
+ else:
+ implementors[secondary.type.id] = interface.id
+ # manual patch for outliers not picked up by this logic
+ mixins['ElementTimeControl']=1
+ mixins['ElementTraversal']=1
+ return mixins.keys()
+
+ def _PreOrderInterfaces(self, interfaces):
+ """Returns the interfaces in pre-order, i.e. parents first."""
+ seen = set()
+ ordered = []
+ def visit(interface):
+ if interface.id in seen:
+ return
+ seen.add(interface.id)
+ for parent in interface.parents:
+ if IsDartCollectionType(parent.type.id):
+ continue
+ if self._database.HasInterface(parent.type.id):
+ parent_interface = self._database.GetInterface(parent.type.id)
+ visit(parent_interface)
+ ordered.append(interface)
+
+ for interface in interfaces:
+ visit(interface)
+ return ordered
+
+
+ def _ProcessInterface(self, interface, super_interface_name,
+ source_filter,
+ common_prefix):
+ """."""
+
+ _logger.info('Generating %s' % interface.id)
+
+ generators = [system.InterfaceGenerator(interface,
+ common_prefix,
+ super_interface_name,
+ source_filter)
+ for system in self._systems]
+ generators = filter(None, generators)
+
+
+ mixinbase = self._database.GetInterface("ElementalMixinBase")
+ parentops = []
+ parentattrs = []
+
+
+ directParents = []
+ mixinOps = []
+ # compute the immediate parents of each interface (not including secondary interfaces)
+ self.getParents(interface, directParents)
+
+ # if not the mixin base, add its parents
+ if interface.id != 'ElementalMixinBase':
+ self.getParents(mixinbase, directParents)
+ # add the mixin base class itself as the parent of everything
+ directParents.insert(0, mixinbase)
+
+ # for each parent interface
+ for pint in directParents:
+ for op in pint.operations:
+ # compute unique method signatures for each operation :
+ op_name = op.ext_attrs.get('DartName', op.id)
+ sig = "%s %s(" % (op.type.id, op_name)
+ for arg in op.arguments:
+ sig += arg.type.id
+ parentops.append(sig)
+ for attr in pint.attributes:
+ # compute attributes
+ if attr.is_fc_getter:
+ parentattrs.append("getter_" + DartDomNameOfAttribute(attr))
+ if attr.is_fc_setter:
+ parentattrs.append("setter_" + DartDomNameOfAttribute(attr))
+
+ for generator in generators:
+ generator.StartInterface()
+
+ for const in sorted(interface.constants, ConstantOutputOrder):
+ for generator in generators:
+ generator.AddConstant(const)
+
+ attributes = [attr for attr in interface.attributes]
+
+ for (getter, setter) in _PairUpAttributes(attributes):
+ for generator in generators:
+ # detect if attribute is inherited (as opposed to just redeclared)
+ inheritedGetter = ("getter_" + DartDomNameOfAttribute(getter)) in parentattrs
+ inheritedSetter = setter and ("setter_" + DartDomNameOfAttribute(setter)) in parentattrs
+ generator.AddAttribute(getter, setter, inheritedGetter, inheritedSetter)
+
+ # The implementation should define an indexer if the interface directly
+ # extends List.
+ element_type = MaybeListElementType(interface)
+ if element_type:
+ for generator in generators:
+ generator.AddIndexer(element_type)
+
+ # Generate operations
+ alreadyGenerated = []
+ for operation in interface.operations:
+ op_name = operation.ext_attrs.get('DartName', operation.id)
+ sig = "%s %s(" % (operation.type.id, op_name)
+ for arg in operation.arguments:
+ sig += arg.type.id
+ if sig in alreadyGenerated:
+ continue
+ alreadyGenerated.append(sig)
+
+ # hacks, should be able to compute this from IDL database
+ if operation.id == 'toString':
+ # implemented on JSO.toString()
+ continue
+ operations = []
+ operations.append(operation)
+ info = AnalyzeOperation(interface, operations)
+ for generator in generators:
+ # don't override stuff hoisted to mixin base in implementors
+ inherited = sig in parentops
+ if info.IsStatic():
+ generator.AddStaticOperation(info, inherited)
+ else:
+ generator.AddOperation(info, inherited)
+
+ # With multiple inheritance, attributes and operations of non-first
+ # interfaces need to be added. Sometimes the attribute or operation is
+ # defined in the current interface as well as a parent. In that case we
+ # avoid making a duplicate definition and pray that the signatures match.
+
+ for parent_interface in self._TransitiveSecondaryParents(interface):
+ if isinstance(parent_interface, str): # IsDartCollectionType(parent_interface)
+ continue
+ attributes = [attr for attr in parent_interface.attributes
+ if not FindMatchingAttribute(interface, attr)]
+ for (getter, setter) in _PairUpAttributes(attributes):
+ for generator in generators:
+ generator.AddSecondaryAttribute(parent_interface, getter, setter)
+
+ # Group overloaded operations by id
+ operationsById = {}
+ for operation in parent_interface.operations:
+ if operation.id not in operationsById:
+ operationsById[operation.id] = []
+ operationsById[operation.id].append(operation)
+
+ # Generate operations
+ for id in sorted(operationsById.keys()):
+ if not any(op.id == id for op in interface.operations):
+ operations = operationsById[id]
+ info = AnalyzeOperation(interface, operations)
+ for generator in generators:
+ generator.AddSecondaryOperation(parent_interface, info)
+
+ for generator in generators:
+ generator.FinishInterface()
+ return
+
+ def getParents(self, interface, results):
+ if interface.parents:
+ pid = interface.parents[0].type.id
+ if self._database.HasInterface(pid):
+ pint = self._database.GetInterface(interface.parents[0].type.id)
+ results.append(pint)
+ self.getParents(pint, results)
+
+ def _TransitiveSecondaryParents(self, interface):
+ """Returns a list of all non-primary parents.
+
+ The list contains the interface objects for interfaces defined in the
+ database, and the name for undefined interfaces.
+ """
+ def walk(parents):
+ for parent in parents:
+ if IsDartCollectionType(parent.type.id):
+ result.append(parent.type.id)
+ continue
+ if self._database.HasInterface(parent.type.id):
+ parent_interface = self._database.GetInterface(parent.type.id)
+ result.append(parent_interface)
+ walk(parent_interface.parents)
+
+ result = []
+ walk(interface.parents[1:])
+ return result;
+
+
+ def _CollectExceptions(self, interfaces):
+ """Returns the names of all exception classes raised."""
+ exceptions = set()
+ for interface in interfaces:
+ for attribute in interface.attributes:
+ if attribute.get_raises:
+ exceptions.add(attribute.get_raises.id)
+ if attribute.set_raises:
+ exceptions.add(attribute.set_raises.id)
+ for operation in interface.operations:
+ if operation.raises:
+ exceptions.add(operation.raises.id)
+ return exceptions
+
+
+ def Flush(self):
+ """Write out all pending files."""
+ _logger.info('Flush...')
+ self._emitters.Flush()
+
+ def _FixEventTargets(self):
+ for interface in self._database.GetInterfaces():
+ # Create fake EventTarget parent interface for interfaces that have
+ # 'EventTarget' extended attribute.
+ if 'EventTarget' in interface.ext_attrs:
+ ast = [('Annotation', [('Id', 'WebKit')]),
+ ('InterfaceType', ('ScopedName', 'EventTarget'))]
+ interface.parents.append(idlnode.IDLParentInterface(ast))
+
+ def _ComputeInheritanceClosure(self):
+ def Collect(interface, seen, collected):
+ name = interface.id
+ if '<' in name:
+ # TODO(sra): Handle parameterized types.
+ return
+ if not name in seen:
+ seen.add(name)
+ collected.append(name)
+ for parent in interface.parents:
+ # TODO(sra): Handle parameterized types.
+ if not '<' in parent.type.id:
+ if self._database.HasInterface(parent.type.id):
+ Collect(self._database.GetInterface(parent.type.id),
+ seen, collected)
+
+ self._inheritance_closure = {}
+ for interface in self._database.GetInterfaces():
+ seen = set()
+ collected = []
+ Collect(interface, seen, collected)
+ self._inheritance_closure[interface.id] = collected
+
+ def _AllImplementedInterfaces(self, interface):
+ """Returns a list of the names of all interfaces implemented by 'interface'.
+ List includes the name of 'interface'.
+ """
+ return self._inheritance_closure[interface.id]
+
+def _PairUpAttributes(attributes):
+ """Returns a list of (getter, setter) pairs sorted by name.
+
+ One element of the pair may be None.
+ """
+ names = sorted(set(attr.id for attr in attributes))
+ getters = {}
+ setters = {}
+ for attr in attributes:
+ if attr.is_fc_getter:
+ getters[attr.id] = attr
+ elif attr.is_fc_setter and 'Replaceable' not in attr.ext_attrs:
+ setters[attr.id] = attr
+ return [(getters.get(id), setters.get(id)) for id in names]
+
+# ------------------------------------------------------------------------------
+
+class DummyImplementationSystem(SystemElemental):
+ """Generates a dummy implementation for use by the editor analysis.
+
+ All the code comes from hand-written library files.
+ """
+
+ def __init__(self, templates, database, emitters, output_dir):
+ super(DummyImplementationSystem, self).__init__(
+ templates, database, emitters, output_dir)
+ factory_providers_file = os.path.join(self._output_dir, 'src', 'dummy',
+ 'RegularFactoryProviders.dart')
+ self._factory_providers_emitter = self._emitters.FileEmitter(
+ factory_providers_file)
+ self._impl_file_paths = [factory_providers_file]
+
+ def InterfaceGenerator(self,
+ interface,
+ common_prefix,
+ super_interface_name,
+ source_filter):
+ return DummyInterfaceGenerator(self, interface)
+
+ def ProcessCallback(self, interface, info):
+ pass
+
+ def GenerateLibraries(self, lib_dir):
+ # Library generated for implementation.
+ self._GenerateLibFile(
+ 'dom_dummy.darttemplate',
+ os.path.join(lib_dir, 'dom_dummy.dart'),
+ (self._interface_system._dart_interface_file_paths +
+ self._interface_system._dart_callback_file_paths +
+ self._impl_file_paths))
+
+
+# ------------------------------------------------------------------------------
+
+class DummyInterfaceGenerator(object):
+ """Generates dummy implementation."""
+
+ def __init__(self, system, interface):
+ self._system = system
+ self._interface = interface
+
+ def StartInterface(self):
+ # There is no implementation to match the interface, but there might be a
+ # factory constructor for the Dart interface.
+ constructor_info = AnalyzeConstructor(self._interface)
+ if constructor_info:
+ dart_interface_name = self._interface.id
+ self._EmitFactoryProvider(dart_interface_name, constructor_info)
+
+ def _EmitFactoryProvider(self, interface_name, constructor_info):
+ factory_provider = '_' + interface_name + 'FactoryProvider'
+ self._system._factory_providers_emitter.Emit(
+ self._system._templates.Load('factoryprovider.darttemplate'),
+ FACTORYPROVIDER=factory_provider,
+ CONSTRUCTOR=interface_name,
+ PARAMETERS=constructor_info.ParametersImplementationDeclaration())
+
+ def FinishInterface(self):
+ pass
+
+ def AddConstant(self, constant):
+ pass
+
+ def AddAttribute(self, getter, setter, inheritedGetter, inheritedSetter):
+ pass
+
+ def AddSecondaryAttribute(self, interface, getter, setter):
+ pass
+
+ def AddSecondaryOperation(self, interface, info):
+ pass
+
+ def AddIndexer(self, element_type):
+ pass
+
+ def AddTypedArrayConstructors(self, element_type):
+ pass
+
+ def AddOperation(self, info, inherited):
+ pass
+
+ def AddStaticOperation(self, info, inherited):
+ pass
+
+ def AddEventAttributes(self, event_attrs):
+ pass
diff --git a/elemental/idl/scripts/emitter.py b/elemental/idl/scripts/emitter.py
new file mode 100755
index 0000000..792458f
--- /dev/null
+++ b/elemental/idl/scripts/emitter.py
@@ -0,0 +1,217 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""Templating to help generate structured text."""
+
+import logging
+import re
+
+_logger = logging.getLogger('emitter')
+
+
+def Format(template, **parameters):
+ """Create a string using the same template syntax as Emitter.Emit."""
+ e = Emitter()
+ e._Emit(template, parameters)
+ return ''.join(e.Fragments())
+
+
+class Emitter(object):
+ """An Emitter collects string fragments to be assembled into a single string.
+ """
+
+ def __init__(self, bindings=None):
+ self._items = [] # A new list
+ self._bindings = bindings or Emitter.Frame({}, None)
+
+ def EmitRaw(self, item):
+ """Emits literal string with no substitition."""
+ self._items.append(item)
+
+ def Emit(self, template_source, **parameters):
+ """Emits a template, substituting named parameters and returning emitters to
+ fill the named holes.
+
+ Ordinary substitution occurs at $NAME or $(NAME). If there is no parameter
+ called NAME, the text is left as-is. So long as you don't bind FOO as a
+ parameter, $FOO in the template will pass through to the generated text.
+
+ Substitution of $?NAME and $(?NAME) yields an empty string if NAME is not a
+ parameter.
+
+ Values passed as named parameters should be strings or simple integral
+ values (int or long).
+
+ Named holes are created at $!NAME or $(!NAME). A hole marks a position in
+ the template that may be filled in later. An Emitter is returned for each
+ named hole in the template. The holes are filled by emitting to the
+ corresponding emitter.
+
+ Emit returns either a single Emitter if the template contains one hole or a
+ tuple of emitters for several holes, in the order that the holes occur in
+ the template.
+
+ The emitters for the holes remember the parameters passed to the initial
+ call to Emit. Holes can be used to provide a binding context.
+ """
+ return self._Emit(template_source, parameters)
+
+ def _Emit(self, template_source, parameters):
+ """Implementation of Emit, with map in place of named parameters."""
+ template = self._ParseTemplate(template_source)
+
+ parameter_bindings = self._bindings.Extend(parameters)
+
+ hole_names = template._holes
+
+ if hole_names:
+ hole_map = {}
+ replacements = {}
+ for name in hole_names:
+ emitter = Emitter(parameter_bindings)
+ replacements[name] = emitter._items
+ hole_map[name] = emitter
+ full_bindings = parameter_bindings.Extend(replacements)
+ else:
+ full_bindings = parameter_bindings
+
+ self._ApplyTemplate(template, full_bindings)
+
+ # Return None, a singleton or tuple of the hole names.
+ if not hole_names:
+ return None
+ if len(hole_names) == 1:
+ return hole_map[hole_names[0]]
+ else:
+ return tuple(hole_map[name] for name in hole_names)
+
+ def Fragments(self):
+ """Returns a list of all the string fragments emitted."""
+ def _FlattenTo(item, output):
+ if isinstance(item, list):
+ for subitem in item:
+ _FlattenTo(subitem, output)
+ elif isinstance(item, Emitter.DeferredLookup):
+ value = item._environment.Lookup(item._lookup._name,
+ item._lookup._value_if_missing)
+ _FlattenTo(value, output)
+ else:
+ output.append(str(item))
+
+ output = []
+ _FlattenTo(self._items, output)
+ return output
+
+ def Bind(self, var, template_source, **parameters):
+ """Adds a binding for var to this emitter."""
+ template = self._ParseTemplate(template_source)
+ if template._holes:
+ raise RuntimeError('Cannot have holes in Emitter.Bind')
+ bindings = self._bindings.Extend(parameters)
+ value = Emitter(bindings)
+ value._ApplyTemplate(template, bindings)
+ self._bindings = self._bindings.Extend({var: value._items})
+ return value
+
+ def _ParseTemplate(self, source):
+ """Converts the template string into a Template object."""
+ # TODO(sra): Cache the parsing.
+ items = []
+ holes = []
+
+ # Break source into a sequence of text fragments and substitution lookups.
+ pos = 0
+ while True:
+ match = Emitter._SUBST_RE.search(source, pos)
+ if not match:
+ items.append(source[pos:])
+ break
+ text_fragment = source[pos : match.start()]
+ if text_fragment:
+ items.append(text_fragment)
+ pos = match.end()
+ term = match.group()
+ name = match.group(1) or match.group(2) # $NAME and $(NAME)
+ if name:
+ item = Emitter.Lookup(name, term, term)
+ items.append(item)
+ continue
+ name = match.group(3) or match.group(4) # $!NAME and $(!NAME)
+ if name:
+ item = Emitter.Lookup(name, term, term)
+ items.append(item)
+ holes.append(name)
+ continue
+ name = match.group(5) or match.group(6) # $?NAME and $(?NAME)
+ if name:
+ item = Emitter.Lookup(name, term, '')
+ items.append(item)
+ holes.append(name)
+ continue
+ raise RuntimeError('Unexpected group')
+
+ if len(holes) != len(set(holes)):
+ raise RuntimeError('Cannot have repeated holes %s' % holes)
+ return Emitter.Template(items, holes)
+
+ _SUBST_RE = re.compile(
+ # $FOO $(FOO) $!FOO $(!FOO) $?FOO $(?FOO)
+ r'\$(\w+)|\$\((\w+)\)|\$!(\w+)|\$\(!(\w+)\)|\$\?(\w+)|\$\(\?(\w+)\)')
+
+ def _ApplyTemplate(self, template, bindings):
+ """Emits the items from the parsed template."""
+ result = []
+ for item in template._items:
+ if isinstance(item, str):
+ if item:
+ result.append(item)
+ elif isinstance(item, Emitter.Lookup):
+ # Bind lookup to the current environment (bindings)
+ # TODO(sra): More space efficient to do direct lookup.
+ result.append(Emitter.DeferredLookup(item, bindings))
+ else:
+ raise RuntimeError('Unexpected template element')
+ # Collected fragments are in a sublist, so self._items contains one element
+ # (sublist) per template application.
+ self._items.append(result)
+
+ class Lookup(object):
+ """An element of a parsed template."""
+ def __init__(self, name, original, default):
+ self._name = name
+ self._original = original
+ self._value_if_missing = default
+
+ class DeferredLookup(object):
+ """A lookup operation that is deferred until final string generation."""
+ # TODO(sra): A deferred lookup will be useful when we add expansions that
+ # have behaviour condtional on the contents, e.g. adding separators between
+ # a list of items.
+ def __init__(self, lookup, environment):
+ self._lookup = lookup
+ self._environment = environment
+
+ class Template(object):
+ """A parsed template."""
+ def __init__(self, items, holes):
+ self._items = items # strings and lookups
+ self._holes = holes
+
+
+ class Frame(object):
+ """A Frame is a set of bindings derived from a parent."""
+ def __init__(self, map, parent):
+ self._map = map
+ self._parent = parent
+
+ def Lookup(self, name, default):
+ if name in self._map:
+ return self._map[name]
+ if self._parent:
+ return self._parent.Lookup(name, default)
+ return default
+
+ def Extend(self, map):
+ return Emitter.Frame(map, self)
diff --git a/elemental/idl/scripts/emitter_test.py b/elemental/idl/scripts/emitter_test.py
new file mode 100755
index 0000000..8247e3f
--- /dev/null
+++ b/elemental/idl/scripts/emitter_test.py
@@ -0,0 +1,100 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""Tests for emitter module."""
+
+import logging.config
+import unittest
+import emitter
+
+
+class EmitterTestCase(unittest.TestCase):
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def check(self, e, expected):
+ self.assertEquals(''.join(e.Fragments()), expected)
+
+ def testExample(self):
+ e = emitter.Emitter()
+ body = e.Emit('$TYPE $NAME() {\n'
+ ' $!BODY\n'
+ '}\n',
+ TYPE='int', NAME='foo')
+ body.Emit('return $VALUE;', VALUE='100')
+ self.check(e,
+ 'int foo() {\n'
+ ' return 100;\n'
+ '}\n')
+
+ def testTemplateErrorDuplicate(self):
+ try:
+ e = emitter.Emitter()
+ b = e.Emit('$(A)$(!B)$(A)$(!B)') # $(!B) is duplicated
+ except RuntimeError, ex:
+ return
+ raise AssertionError('Expected error')
+
+ def testTemplate1(self):
+ e = emitter.Emitter()
+ e.Emit('-$A+$B-$A+$B-', A='1', B='2')
+ self.check(e, '-1+2-1+2-')
+
+ def testTemplate2(self):
+ e = emitter.Emitter()
+ r = e.Emit('1$(A)2$(B)3$(A)4$(B)5', A='x', B='y')
+ self.assertEquals(None, r)
+ self.check(e, '1x2y3x4y5')
+
+ def testTemplate3(self):
+ e = emitter.Emitter()
+ b = e.Emit('1$(A)2$(!B)3$(A)4$(B)5', A='x')
+ b.Emit('y')
+ self.check(e, '1x2y3x4y5')
+ self.check(b, 'y')
+
+ def testTemplate4(self):
+ e = emitter.Emitter()
+ (a, b) = e.Emit('$!A$!B$A$B') # pair of holes.
+ a.Emit('x')
+ b.Emit('y')
+ self.check(e, 'xyxy')
+
+ def testMissing(self):
+ # Behaviour of Undefined parameters depends on form.
+ e = emitter.Emitter();
+ e.Emit('$A $?B $(C) $(?D)')
+ self.check(e, '$A $(C) ')
+
+ def testHoleScopes(self):
+ e = emitter.Emitter()
+ # Holes have scope. They remember the bindings of the template application
+ # in which they are created. Create two holes which inherit bindings for C
+ # and D.
+ (a, b) = e.Emit('[$!A][$!B]$C$D$E', C='1', D='2')
+ e.Emit(' $A$B$C$D') # Bindings are local to the Emit
+ self.check(e, '[][]12$E $A$B$C$D')
+
+ # Holes are not bound within holes. That would too easily lead to infinite
+ # expansions.
+ a.Emit('$A$C$D') # $A12
+ b.Emit('$D$C$B') # 21$B
+ self.check(e, '[$A12][21$B]12$E $A$B$C$D')
+ # EmitRaw avoids interpolation.
+ a.EmitRaw('$C$D')
+ b.EmitRaw('$D$C')
+ self.check(e, '[$A12$C$D][21$B$D$C]12$E $A$B$C$D')
+
+ def testFormat(self):
+ self.assertEquals(emitter.Format('$A$B', A=1, B=2), '12')
+
+if __name__ == '__main__':
+ logging.config.fileConfig('logging.conf')
+ if __name__ == '__main__':
+ unittest.main()
diff --git a/elemental/idl/scripts/generator_java.py b/elemental/idl/scripts/generator_java.py
new file mode 100644
index 0000000..dbf12d4
--- /dev/null
+++ b/elemental/idl/scripts/generator_java.py
@@ -0,0 +1,782 @@
+#!/usr/bin/python
+# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""This module provides shared functionality for systems to generate
+Dart APIs from the IDL database."""
+
+import re
+import pdb
+
+_pure_interfaces = set([
+ 'DOMStringMap',
+ 'ElementTimeControl',
+ 'ElementTraversal',
+ 'MediaQueryListListener',
+ 'NodeSelector',
+ 'SVGExternalResourcesRequired',
+ 'SVGFilterPrimitiveStandardAttributes',
+ 'SVGFitToViewBox',
+ 'SVGLangSpace',
+ 'SVGLocatable',
+ 'SVGStylable',
+ 'SVGTests',
+ 'SVGTransformable',
+ 'SVGURIReference',
+ 'SVGViewSpec',
+ 'SVGZoomAndPan',
+ 'TimeoutHandler'])
+
+def IsPureInterface(interface_name):
+ return interface_name in _pure_interfaces
+
+#
+# Renames for attributes that have names that are not legal Dart names.
+#
+_dart_attribute_renames = {
+ 'default': 'defaultValue',
+ 'final': 'finalValue',
+}
+
+#
+# Interface version of the DOM needs to delegate typed array constructors to a
+# factory provider.
+#
+interface_factories = {
+ 'Float32Array': '_TypedArrayFactoryProvider',
+ 'Float64Array': '_TypedArrayFactoryProvider',
+ 'Int8Array': '_TypedArrayFactoryProvider',
+ 'Int16Array': '_TypedArrayFactoryProvider',
+ 'Int32Array': '_TypedArrayFactoryProvider',
+ 'Uint8Array': '_TypedArrayFactoryProvider',
+ 'Uint16Array': '_TypedArrayFactoryProvider',
+ 'Uint32Array': '_TypedArrayFactoryProvider',
+ 'Uint8ClampedArray': '_TypedArrayFactoryProvider',
+}
+
+#
+# Custom native specs for the Frog dom.
+#
+_frog_dom_custom_native_specs = {
+ # Decorate the singleton Console object, if present (workers do not have a
+ # console).
+ 'Console': "=(typeof console == 'undefined' ? {} : console)",
+
+ # DOMWindow aliased with global scope.
+ 'DOMWindow': '@*DOMWindow',
+}
+
+#
+# Custom native bodies for frog implementations of dom operations that appear in
+# dart:dom and dart:html. This is used to work-around the lack of a 'rename'
+# feature in the 'native' string - the correct name is available on the DartName
+# extended attribute. See Issue 1814
+#
+dom_frog_native_bodies = {
+ # Some JavaScript processors, especially tools like yuicompress and
+ # JSCompiler, choke on 'this.continue'
+ 'IDBCursor.continueFunction':
+ """
+ if (key == null) return this['continue']();
+ return this['continue'](key);
+ """,
+}
+
+def IsPrimitiveType(type_name):
+ return isinstance(GetIDLTypeInfo(type_name), PrimitiveIDLTypeInfo)
+
+def MaybeListElementTypeName(type_name):
+ """Returns the List element type T from string of form "List<T>", or None."""
+ match = re.match(r'sequence<(\w*)>$', type_name)
+ if match:
+ return match.group(1)
+ return None
+
+def MaybeListElementType(interface):
+ """Returns the List element type T, or None in interface does not implement
+ List<T>.
+ """
+ for parent in interface.parents:
+ element_type = MaybeListElementTypeName(parent.type.id)
+ if element_type:
+ return element_type
+ return None
+
+def MaybeTypedArrayElementType(interface):
+ """Returns the typed array element type, or None in interface is not a
+ TypedArray.
+ """
+ # Typed arrays implement ArrayBufferView and List<T>.
+ for parent in interface.parents:
+ if parent.type.id == 'ArrayBufferView':
+ return MaybeListElementType(interface)
+ return None
+
+def MakeNativeSpec(javascript_binding_name):
+ if javascript_binding_name in _frog_dom_custom_native_specs:
+ return _frog_dom_custom_native_specs[javascript_binding_name]
+ else:
+ # Make the class 'hidden' so it is dynamically patched at runtime. This
+ # is useful not only for browser compat, but to allow code that links
+ # against dart:dom to load in a worker isolate.
+ return '*' + javascript_binding_name
+
+
+def MatchSourceFilter(filter, thing):
+ if not filter:
+ return True
+ else:
+ return any(token in thing.annotations for token in filter)
+
+
+def DartType(idl_type_name):
+ return GetIDLTypeInfo(idl_type_name).dart_type()
+
+
+class ParamInfo(object):
+ """Holder for various information about a parameter of a Dart operation.
+
+ Attributes:
+ name: Name of parameter.
+ type_id: Original type id. None for merged types.
+ dart_type: DartType of parameter.
+ default_value: String holding the expression. None for mandatory parameter.
+ """
+ def __init__(self, name, type_id, dart_type, default_value, interface):
+ self.name = name
+ self.type_id = type_id
+ self.dart_type = dart_type
+ self.default_value = default_value
+ self.interface = interface
+
+
+# Given a list of overloaded arguments, render a dart argument.
+def _DartArg(args, interface):
+ # Given a list of overloaded arguments, choose a suitable name.
+ def OverloadedName(args):
+ return '_OR_'.join(sorted(set(arg.id for arg in args)))
+
+ # Given a list of overloaded arguments, choose a suitable type.
+ def OverloadedType(args):
+ type_ids = sorted(set(arg.type.id for arg in args))
+ dart_types = sorted(set(DartType(arg.type.id) for arg in args))
+ if len(dart_types) == 1:
+ if len(type_ids) == 1:
+ return (type_ids[0], dart_types[0])
+ else:
+ return (None, dart_types[0])
+ else:
+ return (None, TypeName(type_ids, interface))
+
+ filtered = filter(None, args)
+ optional = any(not arg or arg.is_optional for arg in args)
+ (type_id, dart_type) = OverloadedType(filtered)
+ name = OverloadedName(filtered)
+ if optional:
+ return ParamInfo(name, type_id, dart_type, None, interface)
+ else:
+ return ParamInfo(name, type_id, dart_type, None, interface)
+
+
+def AnalyzeOperation(interface, operations):
+ """Makes operation calling convention decision for a set of overloads.
+
+ Returns: An OperationInfo object.
+ """
+
+ # Zip together arguments from each overload by position, then convert
+ # to a dart argument.
+ args = map(lambda *args: _DartArg(args, interface),
+ *(op.arguments for op in operations))
+
+ info = OperationInfo()
+ info.interface = interface
+ info.overloads = operations
+ info.declared_name = operations[0].id
+ info.name = operations[0].ext_attrs.get('DartName', info.declared_name)
+ info.js_name = info.declared_name
+ info.type_name = DartType(operations[0].type.id) # TODO: widen.
+ info.param_infos = args
+ info.arguments = operations[0].arguments
+ return info
+
+
+def AnalyzeConstructor(interface):
+ """Returns an OperationInfo object for the constructor.
+
+ Returns None if the interface has no Constructor.
+ """
+ def GetArgs(func_value):
+ return map(lambda arg: _DartArg([arg], interface), func_value.arguments)
+
+ if 'Constructor' in interface.ext_attrs:
+ name = None
+ func_value = interface.ext_attrs.get('Constructor')
+ if func_value:
+ # [Constructor(param,...)]
+ args = GetArgs(func_value)
+ idl_args = func_value.arguments
+ else: # [Constructor]
+ args = []
+ idl_args = []
+ else:
+ func_value = interface.ext_attrs.get('NamedConstructor')
+ if func_value:
+ name = func_value.id
+ args = GetArgs(func_value)
+ idl_args = func_value.arguments
+ else:
+ return None
+
+ info = OperationInfo()
+ info.overloads = None
+ info.idl_args = idl_args
+ info.declared_name = name
+ info.name = name
+ info.js_name = name
+ info.type_name = interface.id
+ info.param_infos = args
+ return info
+
+
+def RecognizeCallback(interface):
+ """Returns the info for the callback method if the interface smells like a
+ callback.
+ """
+ if 'Callback' not in interface.ext_attrs: return None
+ handlers = [op for op in interface.operations if op.id == 'handleEvent']
+ if not handlers: return None
+ if not (handlers == interface.operations): return None
+ return AnalyzeOperation(interface, handlers)
+
+def IsDartListType(type):
+ return type == 'List' or type.startswith('sequence<')
+
+def IsDartCollectionType(type):
+ return IsDartListType(type)
+
+def FindMatchingAttribute(interface, attr1):
+ matches = [attr2 for attr2 in interface.attributes
+ if attr1.id == attr2.id
+ and attr1.is_fc_getter == attr2.is_fc_getter
+ and attr1.is_fc_setter == attr2.is_fc_setter]
+ if matches:
+ assert len(matches) == 1
+ return matches[0]
+ return None
+
+
+def DartDomNameOfAttribute(attr):
+ """Returns the Dart name for an IDLAttribute.
+
+ attr.id is the 'native' or JavaScript name.
+
+ To ensure uniformity, work with the true IDL name until as late a possible,
+ e.g. translate to the Dart name when generating Dart code.
+ """
+ name = attr.id
+ name = _dart_attribute_renames.get(name, name)
+ name = attr.ext_attrs.get('DartName', None) or name
+ return name
+
+
+def TypeOrNothing(dart_type, info):
+ """Returns string for declaring something with |dart_type| in a context
+ where a type may be omitted.
+ The string is empty or has a trailing space.
+ """
+ # hack until over-loaded callback issue is fixed
+ if dart_type == 'Dynamic' or info is not None and info.interface == 'DatabaseCallback':
+ return 'Object '
+ else:
+ return dart_type + ' '
+
+def NameOrEntry(param, database):
+ """Returns either the name of the param, or a $entry wrapper"""
+ if param.type_id.endswith('Callback') or param.type_id.endswith('Handler'):
+ argtype = database.GetInterface(param.type_id)
+ op = argtype.operations[0]
+ jsniArgs = []
+ for arg in op.arguments:
+ if database.HasInterface(arg.type.id):
+ argface = database.GetInterface(arg.type.id)
+ # HACK: this interface is overloaded, we should fix the IDL or detect overloaded callbacks automatically
+ if param.type_id == 'DatabaseCallback' and (argface.id == 'Database' or argface.id == 'DatabaseSync'):
+ jsniArgs.append("Ljava/lang/Object;")
+ else:
+ jsniArgs.append("Lelemental/%s/%s;" % (getModule(argface.annotations), DartType(arg.type.id)))
+
+ else:
+ jsniArgs.append(primitives[DartType(arg.type.id)])
+
+ return "$entry(%s.@elemental.%s.%s::on%s(%s)).bind(%s)" % (param.name, getModule(argtype.annotations), argtype.id, argtype.id, ''.join(jsniArgs), param.name)
+ else:
+ return param.name
+
+def TypeOrVar(dart_type, comment=None):
+ return dart_type
+
+def JsoTypeOrVar(dart_type, mixins):
+ if dart_type.endswith("Handler") or dart_type.endswith("Callback") or dart_type in mixins:
+ return dart_type
+ if dart_type[0].isupper() and not dart_type.startswith("Js") and not dart_type in java_lang:
+ return "Js" + dart_type
+ return dart_type
+
+
+class OperationInfo(object):
+ """Holder for various derived information from a set of overloaded operations.
+
+ Attributes:
+ overloads: A list of IDL operation overloads with the same name.
+ name: A string, the simple name of the operation.
+ type_name: A string, the name of the return type of the operation.
+ param_infos: A list of ParamInfo.
+ """
+
+ def ParametersInterfaceDeclaration(self):
+ """Returns a formatted string declaring the parameters for the interface."""
+ return self._FormatParams(
+ self.param_infos, True,
+ lambda param: TypeOrNothing(param.dart_type, param))
+
+ def ParametersImplementationDeclaration(self, rename_type=None):
+ """Returns a formatted string declaring the parameters for the
+ implementation.
+
+ Args:
+ rename_type: A function that allows the types to be renamed.
+ The function is applied to the parameter's dart_type.
+ """
+ if rename_type:
+ def renamer(param_info):
+ return TypeOrNothing(rename_type(param_info.dart_type), param_info)
+ return self._FormatParams(self.param_infos, False, renamer)
+ else:
+ def type_fn(param_info):
+ if param_info.dart_type == 'Dynamic':
+ if param_info.type_id:
+ # It is more informative to use a comment IDL type.
+ return 'Object'
+ else:
+ return 'Object'
+ else:
+ return param_info.dart_type
+ return self._FormatParams(
+ self.param_infos, False,
+ lambda param: TypeOrNothing(param.dart_type, param))
+
+ def ParametersAsArgumentList(self, database):
+ """Returns a string of the parameter names suitable for passing the
+ parameters as arguments.
+ """
+ return ', '.join(map(lambda param_info: NameOrEntry(param_info, database), self.param_infos))
+
+ def _FormatParams(self, params, is_interface, type_fn):
+ def FormatParam(param):
+ """Returns a parameter declaration fragment for an ParamInfo."""
+ type = type_fn(param)
+ if is_interface or param.default_value is None:
+ return '%s%s' % (type, param.name)
+ else:
+ return '%s%s = %s' % (type, param.name, param.default_value)
+
+ required = []
+ optional = []
+ for param_info in params:
+ if param_info.default_value:
+ optional.append(param_info)
+ else:
+ if optional:
+ raise Exception('Optional parameters cannot precede required ones: '
+ + str(args))
+ required.append(param_info)
+ argtexts = map(FormatParam, required)
+ if optional:
+ argtexts.append(', '.join(map(FormatParam, optional)))
+ return ', '.join(argtexts)
+
+ def IsStatic(self):
+ is_static = self.overloads[0].is_static
+ assert any([is_static == o.is_static for o in self.overloads])
+ return is_static
+
+
+def AttributeOutputOrder(a, b):
+ """Canonical output ordering for attributes."""
+ # Getters before setters:
+ if a.id < b.id: return -1
+ if a.id > b.id: return 1
+ if a.is_fc_setter < b.is_fc_setter: return -1
+ if a.is_fc_setter > b.is_fc_setter: return 1
+ return 0
+
+def ConstantOutputOrder(a, b):
+ """Canonical output ordering for constants."""
+ if a.id < b.id: return -1
+ if a.id > b.id: return 1
+ return 0
+
+
+def _FormatNameList(names):
+ """Returns JavaScript array literal expression with one name per line."""
+ #names = sorted(names)
+ if len(names) <= 1:
+ expression_string = str(names) # e.g. ['length']
+ else:
+ expression_string = ',\n '.join(str(names).split(','))
+ expression_string = expression_string.replace('[', '[\n ')
+ return expression_string
+
+
+def IndentText(text, indent):
+ """Format lines of text with indent."""
+ def FormatLine(line):
+ if line.strip():
+ return '%s%s\n' % (indent, line)
+ else:
+ return '\n'
+ return ''.join(FormatLine(line) for line in text.split('\n'))
+
+# Given a sorted sequence of type identifiers, return an appropriate type
+# name
+def TypeName(type_ids, interface):
+ # Dynamically type this field for now.
+ return 'Dynamic'
+
+# ------------------------------------------------------------------------------
+
+class IDLTypeInfo(object):
+ def __init__(self, idl_type, dart_type=None,
+ native_type=None,
+ custom_to_native=False,
+ custom_to_dart=False, conversion_includes=[]):
+ self._idl_type = idl_type
+ self._dart_type = dart_type
+ self._native_type = native_type
+ self._custom_to_native = custom_to_native
+ self._custom_to_dart = custom_to_dart
+ self._conversion_includes = conversion_includes + [idl_type]
+
+ def idl_type(self):
+ return self._idl_type
+
+ def dart_type(self):
+ return self._dart_type or self._idl_type
+
+ def native_type(self):
+ return self._native_type or self._idl_type
+
+ def emit_to_native(self, emitter, idl_node, name, handle, interface_name):
+ if 'Callback' in idl_node.ext_attrs:
+ if 'RequiredCppParameter' in idl_node.ext_attrs:
+ flag = 'DartUtilities::ConvertNullToDefaultValue'
+ else:
+ flag = 'DartUtilities::ConvertNone'
+ emitter.Emit(
+ '\n'
+ ' RefPtr<$TYPE> $NAME = Dart$IDL_TYPE::create($HANDLE, $FLAG, exception);\n'
+ ' if (exception)\n'
+ ' goto fail;\n',
+ TYPE=self.native_type(),
+ NAME=name,
+ IDL_TYPE=self.idl_type(),
+ HANDLE=handle,
+ FLAG=flag)
+ return name
+
+ argument = name
+ if self.custom_to_native():
+ type = 'RefPtr<%s>' % self.native_type()
+ argument = '%s.get()' % name
+ else:
+ type = '%s*' % self.native_type()
+ if isinstance(self, SVGTearOffIDLTypeInfo) and not interface_name.endswith('List'):
+ argument = '%s->propertyReference()' % name
+ emitter.Emit(
+ '\n'
+ ' $TYPE $NAME = Dart$IDL_TYPE::toNative($HANDLE, exception);\n'
+ ' if (exception)\n'
+ ' goto fail;\n',
+ TYPE=type,
+ NAME=name,
+ IDL_TYPE=self.idl_type(),
+ HANDLE=handle)
+ return argument
+
+ def custom_to_native(self):
+ return self._custom_to_native
+
+ def parameter_type(self):
+ return '%s*' % self.native_type()
+
+ def webcore_includes(self):
+ WTF_INCLUDES = [
+ 'ArrayBuffer',
+ 'ArrayBufferView',
+ 'Float32Array',
+ 'Float64Array',
+ 'Int8Array',
+ 'Int16Array',
+ 'Int32Array',
+ 'Uint8Array',
+ 'Uint16Array',
+ 'Uint32Array',
+ 'Uint8ClampedArray',
+ ]
+
+ if self._idl_type in WTF_INCLUDES:
+ return ['<wtf/%s.h>' % self.native_type()]
+
+ if not self._idl_type.startswith('SVG'):
+ return ['"%s.h"' % self.native_type()]
+
+ if self._idl_type in ['SVGNumber', 'SVGPoint']:
+ return ['"SVGPropertyTearOff.h"']
+ if self._idl_type.startswith('SVGPathSeg'):
+ include = self._idl_type.replace('Abs', '').replace('Rel', '')
+ else:
+ include = self._idl_type
+ return ['"%s.h"' % include] + _svg_supplemental_includes
+
+ def receiver(self):
+ return 'receiver->'
+
+ def conversion_includes(self):
+ return ['"Dart%s.h"' % include for include in self._conversion_includes]
+
+ def to_dart_conversion(self, value, interface_name=None, attributes=None):
+ return 'Dart%s::toDart(%s)' % (self._idl_type, value)
+
+ def custom_to_dart(self):
+ return self._custom_to_dart
+
+
+class SequenceIDLTypeInfo(IDLTypeInfo):
+ def __init__(self, idl_type, item_info):
+ super(SequenceIDLTypeInfo, self).__init__(idl_type)
+ self._item_info = item_info
+
+ def dart_type(self):
+ etype = self._item_info.dart_type()
+ if etype == 'int':
+ return "IndexableInt"
+ elif etype == 'float' or etype == 'double':
+ return "IndexableNumber"
+ return "Indexable"
+# TODO(cromwellian) fix when generic SingleJsoImpl JSOs are fixed
+# return 'Indexable<%s>' % self._item_info.dart_type()
+
+ def to_dart_conversion(self, value, interface_name=None, attributes=None):
+ return 'DartDOMWrapper::vectorToDart<Dart%s>(%s)' % (self._item_info.native_type(), value)
+
+ def conversion_includes(self):
+ return self._item_info.conversion_includes()
+
+
+class PrimitiveIDLTypeInfo(IDLTypeInfo):
+ def __init__(self, idl_type, dart_type, native_type=None,
+ webcore_getter_name='getAttribute',
+ webcore_setter_name='setAttribute'):
+ super(PrimitiveIDLTypeInfo, self).__init__(idl_type, dart_type=dart_type,
+ native_type=native_type)
+ self._webcore_getter_name = webcore_getter_name
+ self._webcore_setter_name = webcore_setter_name
+
+ def emit_to_native(self, emitter, idl_node, name, handle, interface_name):
+ arguments = [handle]
+ if idl_node.ext_attrs.get('Optional') == 'DefaultIsNullString' or 'RequiredCppParameter' in idl_node.ext_attrs:
+ arguments.append('DartUtilities::ConvertNullToDefaultValue')
+ emitter.Emit(
+ '\n'
+ ' const ParameterAdapter<$TYPE> $NAME($ARGUMENTS);\n'
+ ' if (!$NAME.conversionSuccessful()) {\n'
+ ' exception = $NAME.exception();\n'
+ ' goto fail;\n'
+ ' }\n',
+ TYPE=self.native_type(),
+ NAME=name,
+ ARGUMENTS=', '.join(arguments))
+ return name
+
+ def parameter_type(self):
+ if self.native_type() == 'String':
+ return 'const String&'
+ return self.native_type()
+
+ def conversion_includes(self):
+ return []
+
+ def to_dart_conversion(self, value, interface_name=None, attributes=None):
+ conversion_arguments = [value]
+ if attributes and 'TreatReturnedNullStringAs' in attributes:
+ conversion_arguments.append('DartUtilities::ConvertNullToDefaultValue')
+ function_name = re.sub(r' [a-z]', lambda x: x.group(0)[1:].upper(), self.native_type())
+ function_name = function_name[0].lower() + function_name[1:]
+ function_name = 'DartUtilities::%sToDart' % function_name
+ return '%s(%s)' % (function_name, ', '.join(conversion_arguments))
+
+ def webcore_getter_name(self):
+ return self._webcore_getter_name
+
+ def webcore_setter_name(self):
+ return self._webcore_setter_name
+
+class SVGTearOffIDLTypeInfo(IDLTypeInfo):
+ def __init__(self, idl_type, native_type=''):
+ super(SVGTearOffIDLTypeInfo, self).__init__(idl_type,
+ native_type=native_type)
+
+ def native_type(self):
+ if self._native_type:
+ return self._native_type
+ tear_off_type = 'SVGPropertyTearOff'
+ if self._idl_type.endswith('List'):
+ tear_off_type = 'SVGListPropertyTearOff'
+ return '%s<%s>' % (tear_off_type, self._idl_type)
+
+ def receiver(self):
+ if self._idl_type.endswith('List'):
+ return 'receiver->'
+ return 'receiver->propertyReference().'
+
+ def to_dart_conversion(self, value, interface_name, attributes):
+ svg_primitive_types = ['SVGAngle', 'SVGLength', 'SVGMatrix',
+ 'SVGNumber', 'SVGPoint', 'SVGRect', 'SVGTransform']
+ conversion_cast = '%s::create(%s)'
+ if interface_name.startswith('SVGAnimated'):
+ conversion_cast = 'static_cast<%s*>(%s)'
+ elif self.idl_type() == 'SVGStringList':
+ conversion_cast = '%s::create(receiver, %s)'
+ elif interface_name.endswith('List'):
+ conversion_cast = 'static_cast<%s*>(%s.get())'
+ elif self.idl_type() in svg_primitive_types:
+ conversion_cast = '%s::create(%s)'
+ else:
+ conversion_cast = 'static_cast<%s*>(%s)'
+ conversion_cast = conversion_cast % (self.native_type(), value)
+ return 'Dart%s::toDart(%s)' % (self._idl_type, conversion_cast)
+
+_idl_type_registry = {
+ 'boolean': PrimitiveIDLTypeInfo('boolean', dart_type='boolean', native_type='bool',
+ webcore_getter_name='hasAttribute',
+ webcore_setter_name='setBooleanAttribute'),
+ 'short': PrimitiveIDLTypeInfo('short', dart_type='short', native_type='short'),
+ 'unsigned short': PrimitiveIDLTypeInfo('unsigned short', dart_type='int',
+ native_type='int'),
+ 'int': PrimitiveIDLTypeInfo('int', dart_type='int'),
+ 'unsigned int': PrimitiveIDLTypeInfo('unsigned int', dart_type='int',
+ native_type='unsigned'),
+ 'long': PrimitiveIDLTypeInfo('long', dart_type='int', native_type='int',
+ webcore_getter_name='getIntegralAttribute',
+ webcore_setter_name='setIntegralAttribute'),
+ 'unsigned long': PrimitiveIDLTypeInfo('unsigned long', dart_type='int',
+ native_type='unsigned',
+ webcore_getter_name='getUnsignedIntegralAttribute',
+ webcore_setter_name='setUnsignedIntegralAttribute'),
+ 'long long': PrimitiveIDLTypeInfo('long long', dart_type='double'),
+ 'unsigned long long': PrimitiveIDLTypeInfo('unsigned long long', dart_type='double'),
+ 'float': PrimitiveIDLTypeInfo('float', dart_type='float', native_type='double'),
+ 'double': PrimitiveIDLTypeInfo('double', dart_type='double'),
+
+ 'any': PrimitiveIDLTypeInfo('any', dart_type='Object'),
+ 'any[]': PrimitiveIDLTypeInfo('any[]', dart_type='Indexable'),
+ 'Array': PrimitiveIDLTypeInfo('Array', dart_type='Indexable'),
+ 'custom': PrimitiveIDLTypeInfo('custom', dart_type='Object'),
+ 'Date': PrimitiveIDLTypeInfo('Date', dart_type='Date', native_type='double'),
+ 'DOMObject': PrimitiveIDLTypeInfo('DOMObject', dart_type='Object', native_type='ScriptValue'),
+ 'DOMString': PrimitiveIDLTypeInfo('DOMString', dart_type='String', native_type='String'),
+ # TODO(vsm): This won't actually work until we convert the Map to
+ # a native JS Map for JS DOM.
+ 'Dictionary': PrimitiveIDLTypeInfo('Dictionary', dart_type='Mappable'),
+ # TODO(sra): Flags is really a dictionary: {create:bool, exclusive:bool}
+ # http://dev.w3.org/2009/dap/file-system/file-dir-sys.html#the-flags-interface
+ 'Flags': PrimitiveIDLTypeInfo('Flags', dart_type='Object'),
+ 'DOMTimeStamp': PrimitiveIDLTypeInfo('DOMTimeStamp', dart_type='double', native_type='unsigned long long'),
+ 'object': PrimitiveIDLTypeInfo('object', dart_type='Object', native_type='ScriptValue'),
+ # TODO(sra): Come up with some meaningful name so that where this appears in
+ # the documentation, the user is made aware that only a limited subset of
+ # serializable types are actually permitted.
+ 'SerializedScriptValue': PrimitiveIDLTypeInfo('SerializedScriptValue', dart_type='Object'),
+ # TODO(sra): Flags is really a dictionary: {create:bool, exclusive:bool}
+ # http://dev.w3.org/2009/dap/file-system/file-dir-sys.html#the-flags-interface
+ 'WebKitFlags': PrimitiveIDLTypeInfo('WebKitFlags', dart_type='Object'),
+
+ 'sequence': PrimitiveIDLTypeInfo('sequence', dart_type='Indexable'),
+ 'void': PrimitiveIDLTypeInfo('void', dart_type='void'),
+
+ 'CSSRule': IDLTypeInfo('CSSRule', conversion_includes=['CSSImportRule']),
+ 'DOMException': IDLTypeInfo('DOMException', native_type='DOMCoreException'),
+# 'DOMStringList': IDLTypeInfo('DOMStringList', dart_type='Indexable<String>', custom_to_native=True),
+ 'DOMStringList': IDLTypeInfo('DOMStringList', dart_type='Indexable', custom_to_native=True),
+# 'DOMStringMap': IDLTypeInfo('DOMStringMap', dart_type='Mappable<String>'),
+ 'DOMStringMap': IDLTypeInfo('DOMStringMap', dart_type='Mappable'),
+ 'DOMWindow': IDLTypeInfo('DOMWindow', custom_to_dart=True),
+ 'Element': IDLTypeInfo('Element', custom_to_dart=True),
+ 'EventListener': IDLTypeInfo('EventListener', custom_to_native=True),
+ 'EventTarget': IDLTypeInfo('EventTarget', custom_to_native=True),
+ 'HTMLElement': IDLTypeInfo('HTMLElement', custom_to_dart=True),
+ 'IDBAny': IDLTypeInfo('IDBAny', dart_type='Object', custom_to_native=True),
+ 'IDBKey': IDLTypeInfo('IDBKey', dart_type='Object', custom_to_native=True),
+ 'StyleSheet': IDLTypeInfo('StyleSheet', conversion_includes=['CSSStyleSheet']),
+ 'SVGElement': IDLTypeInfo('SVGElement', custom_to_dart=True),
+
+ 'SVGAngle': SVGTearOffIDLTypeInfo('SVGAngle'),
+ 'SVGLength': SVGTearOffIDLTypeInfo('SVGLength'),
+ 'SVGLengthList': SVGTearOffIDLTypeInfo('SVGLengthList'),
+ 'SVGMatrix': SVGTearOffIDLTypeInfo('SVGMatrix'),
+ 'SVGNumber': SVGTearOffIDLTypeInfo('SVGNumber', native_type='SVGPropertyTearOff<float>'),
+ 'SVGNumberList': SVGTearOffIDLTypeInfo('SVGNumberList'),
+ 'SVGPathSegList': SVGTearOffIDLTypeInfo('SVGPathSegList', native_type='SVGPathSegListPropertyTearOff'),
+ 'SVGPoint': SVGTearOffIDLTypeInfo('SVGPoint', native_type='SVGPropertyTearOff<FloatPoint>'),
+ 'SVGPointList': SVGTearOffIDLTypeInfo('SVGPointList'),
+ 'SVGPreserveAspectRatio': SVGTearOffIDLTypeInfo('SVGPreserveAspectRatio'),
+ 'SVGRect': SVGTearOffIDLTypeInfo('SVGRect', native_type='SVGPropertyTearOff<FloatRect>'),
+ 'SVGStringList': SVGTearOffIDLTypeInfo('SVGStringList', native_type='SVGStaticListPropertyTearOff<SVGStringList>'),
+ 'SVGTransform': SVGTearOffIDLTypeInfo('SVGTransform'),
+ 'SVGTransformList': SVGTearOffIDLTypeInfo('SVGTransformList', native_type='SVGTransformListPropertyTearOff')
+}
+
+_svg_supplemental_includes = [
+ '"SVGAnimatedPropertyTearOff.h"',
+ '"SVGAnimatedListPropertyTearOff.h"',
+ '"SVGStaticListPropertyTearOff.h"',
+ '"SVGAnimatedListPropertyTearOff.h"',
+ '"SVGTransformListPropertyTearOff.h"',
+ '"SVGPathSegListPropertyTearOff.h"',
+]
+
+def GetIDLTypeInfo(idl_type_name):
+ match = re.match(r'sequence<(\w+)>$', idl_type_name)
+ if match:
+ return SequenceIDLTypeInfo(idl_type_name, GetIDLTypeInfo(match.group(1)))
+ return _idl_type_registry.get(idl_type_name, IDLTypeInfo(idl_type_name))
+
+
+def getModule(annotations):
+ htmlaliases = ['audio', 'webaudio', 'inspector', 'offline', 'p2p', 'window', 'websockets', 'threads', 'view', 'storage', 'fileapi']
+
+ module = "dom"
+ if 'WebKit' in annotations and 'module' in annotations['WebKit']:
+ module = annotations['WebKit']['module']
+ if module in htmlaliases:
+ return "html"
+ if module == 'core':
+ return 'dom'
+ return module
+
+java_lang = ['Object', 'String', 'Exception', 'DOMTimeStamp', 'DOMString', 'Date']
+
+primitives = {
+ 'int' : 'I',
+ 'short' : 'S',
+ 'float' : 'F',
+ 'double' : 'D',
+ 'byte' : 'B',
+ 'char' : 'C',
+ 'long' : 'L',
+ 'boolean' : 'Z',
+ 'String' : 'Ljava/lang/String;',
+ 'Object' : 'Ljava/lang/Object;'
+}
diff --git a/elemental/idl/scripts/idlnode.py b/elemental/idl/scripts/idlnode.py
new file mode 100755
index 0000000..921bf56
--- /dev/null
+++ b/elemental/idl/scripts/idlnode.py
@@ -0,0 +1,500 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import sys
+
+
+class IDLNode(object):
+ """Base class for all IDL elements.
+ IDLNode may contain various child nodes, and have properties. Examples
+ of IDLNode are modules, interfaces, interface members, function arguments,
+ etc.
+ """
+
+ def __init__(self, ast):
+ """Initializes an IDLNode from a PegParser AST output."""
+ self.id = self._find_first(ast, 'Id') if ast is not None else None
+
+ def __repr__(self):
+ """Generates string of the form <class id extra extra ... 0x12345678>."""
+ extras = self._extra_repr()
+ if isinstance(extras, list):
+ extras = ' '.join([str(e) for e in extras])
+ try:
+ if self.id:
+ return '<%s %s 0x%x>' % (
+ type(self).__name__,
+ ('%s %s' % (self.id, extras)).strip(),
+ hash(self))
+ return '<%s %s 0x%x>' % (
+ type(self).__name__,
+ extras,
+ hash(self))
+ except Exception, e:
+ return "can't convert to string: %s" % e
+
+ def _extra_repr(self):
+ """Returns string of extra info for __repr__()."""
+ return ''
+
+ def __cmp__(self, other):
+ """Override default compare operation.
+ IDLNodes are equal if all their properties are equal."""
+ if other is None or not isinstance(other, IDLNode):
+ return 1
+ return self.__dict__.__cmp__(other.__dict__)
+
+ def all(self, type_filter=None):
+ """Returns a list containing this node and all it child nodes
+ (recursive).
+
+ Args:
+ type_filter -- can be used to limit the results to a specific
+ node type (e.g. IDLOperation).
+ """
+ res = []
+ if type_filter is None or isinstance(self, type_filter):
+ res.append(self)
+ for v in self._all_subnodes():
+ if isinstance(v, IDLNode):
+ res.extend(v.all(type_filter))
+ elif isinstance(v, list):
+ for item in v:
+ if isinstance(item, IDLNode):
+ res.extend(item.all(type_filter))
+ return res
+
+ def _all_subnodes(self):
+ """Accessor used by all() to find subnodes."""
+ return self.__dict__.values()
+
+ def to_dict(self):
+ """Converts the IDLNode and its children into a dictionary.
+ This method is useful mostly for debugging and pretty printing.
+ """
+ res = {}
+ for (k, v) in self.__dict__.items():
+ if v == None or v == False or v == [] or v == {}:
+ # Skip empty/false members.
+ continue
+ elif isinstance(v, IDLDictNode) and not len(v):
+ # Skip empty dict sub-nodes.
+ continue
+ elif isinstance(v, list):
+ # Convert lists:
+ new_v = []
+ for sub_node in v:
+ if isinstance(sub_node, IDLNode):
+ # Convert sub-node:
+ new_v.append(sub_node.to_dict())
+ else:
+ new_v.append(sub_node)
+ v = new_v
+ elif isinstance(v, IDLNode):
+ # Convert sub-node:
+ v = v.to_dict()
+ res[k] = v
+ return res
+
+ def _find_all(self, ast, label, max_results=sys.maxint):
+ """Searches the AST for tuples with a given label. The PegParser
+ output is composed of lists and tuples, where the tuple 1st argument
+ is a label. If ast root is a list, will search recursively inside each
+ member in the list.
+
+ Args:
+ ast -- the AST to search.
+ label -- the label to look for.
+ res -- results are put into this list.
+ max_results -- maximum number of results.
+ """
+ res = []
+ if max_results <= 0:
+ return res
+
+ if isinstance(ast, list):
+ for childAst in ast:
+ sub_res = self._find_all(childAst, label,
+ max_results - len(res))
+ res.extend(sub_res)
+ elif isinstance(ast, tuple):
+ (nodeLabel, value) = ast
+ if nodeLabel == label:
+ res.append(value)
+ return res
+
+ def _find_first(self, ast, label):
+ """Convenience method for _find_all(..., max_results=1).
+ Returns a single element instead of a list, or None if nothing
+ is found."""
+ res = self._find_all(ast, label, max_results=1)
+ if len(res):
+ return res[0]
+ return None
+
+ def _has(self, ast, label):
+ """Returns true if an element with the given label is
+ in the AST by searching for it."""
+ return len(self._find_all(ast, label, max_results=1)) == 1
+
+ def _convert_all(self, ast, label, idlnode_ctor):
+ """Converts AST elements into IDLNode elements.
+ Uses _find_all to find elements with a given label and converts
+ them into IDLNodes with a given constructor.
+ Returns:
+ A list of the converted nodes.
+ Args:
+ ast -- the ast element to start a search at.
+ label -- the element label to look for.
+ idlnode_ctor -- a constructor function of one of the IDLNode
+ sub-classes.
+ """
+ res = []
+ found = self._find_all(ast, label)
+ if not found:
+ return res
+ if not isinstance(found, list):
+ raise RuntimeError("Expected list but %s found" % type(found))
+ for childAst in found:
+ converted = idlnode_ctor(childAst)
+ res.append(converted)
+ return res
+
+ def _convert_first(self, ast, label, idlnode_ctor):
+ """Like _convert_all, but only converts the first found results."""
+ childAst = self._find_first(ast, label)
+ if not childAst:
+ return None
+ return idlnode_ctor(childAst)
+
+ def _convert_ext_attrs(self, ast):
+ """Helper method for uniform conversion of extended attributes."""
+ self.ext_attrs = IDLExtAttrs(ast)
+
+ def _convert_annotations(self, ast):
+ """Helper method for uniform conversion of annotations."""
+ self.annotations = IDLAnnotations(ast)
+
+
+class IDLDictNode(IDLNode):
+ """Base class for dictionary-like IDL nodes such as extended attributes
+ and annotations. The base class implements various dict interfaces."""
+
+ def __init__(self, ast):
+ IDLNode.__init__(self, None)
+ if ast is not None and isinstance(ast, dict):
+ self.__map = ast
+ else:
+ self.__map = {}
+
+ def __len__(self):
+ return len(self.__map)
+
+ def __getitem__(self, key):
+ return self.__map[key]
+
+ def __setitem__(self, key, value):
+ self.__map[key] = value
+
+ def __delitem__(self, key):
+ del self.__map[key]
+
+ def __contains__(self, key):
+ return key in self.__map
+
+ def __iter__(self):
+ return self.__map.__iter__()
+
+ def get(self, key, default=None):
+ return self.__map.get(key, default)
+
+ def items(self):
+ return self.__map.items()
+
+ def keys(self):
+ return self.__map.keys()
+
+ def values(self):
+ return self.__map.values()
+
+ def clear(self):
+ self.__map = {}
+
+ def to_dict(self):
+ """Overrides the default IDLNode.to_dict behavior.
+ The IDLDictNode members are copied into a new dictionary, and
+ IDLNode members are recursively converted into dicts as well.
+ """
+ res = {}
+ for (k, v) in self.__map.items():
+ if isinstance(v, IDLNode):
+ v = v.to_dict()
+ res[k] = v
+ return res
+
+ def _all_subnodes(self):
+ # Usually an IDLDictNode does not contain further IDLNodes.
+ return []
+
+
+class IDLFile(IDLNode):
+ """IDLFile is the top-level node in each IDL file. It may contain
+ modules or interfaces."""
+
+ def __init__(self, ast, filename=None):
+ IDLNode.__init__(self, ast)
+ self.filename = filename
+ self.modules = self._convert_all(ast, 'Module', IDLModule)
+ self.interfaces = self._convert_all(ast, 'Interface', IDLInterface)
+
+
+class IDLModule(IDLNode):
+ """IDLModule has an id, and may contain interfaces, type defs and
+ implements statements."""
+ def __init__(self, ast):
+ IDLNode.__init__(self, ast)
+ self._convert_ext_attrs(ast)
+ self._convert_annotations(ast)
+ self.interfaces = self._convert_all(ast, 'Interface', IDLInterface)
+ self.typeDefs = self._convert_all(ast, 'TypeDef', IDLTypeDef)
+ self.implementsStatements = self._convert_all(ast, 'ImplStmt',
+ IDLImplementsStatement)
+
+
+class IDLExtAttrs(IDLDictNode):
+ """IDLExtAttrs is an IDLDictNode that stores IDL Extended Attributes.
+ Modules, interfaces, members and arguments can all own IDLExtAttrs."""
+ def __init__(self, ast=None):
+ IDLDictNode.__init__(self, None)
+ if not ast:
+ return
+ ext_attrs_ast = self._find_first(ast, 'ExtAttrs')
+ if not ext_attrs_ast:
+ return
+ for ext_attr in self._find_all(ext_attrs_ast, 'ExtAttr'):
+ name = self._find_first(ext_attr, 'Id')
+ value = self._find_first(ext_attr, 'ExtAttrValue')
+
+ func_value = self._find_first(value, 'ExtAttrFunctionValue')
+ if func_value:
+ # E.g. NamedConstructor=Audio(in [Optional] DOMString src)
+ self[name] = IDLExtAttrFunctionValue(
+ func_value,
+ self._find_first(func_value, 'ExtAttrArgList'))
+ continue
+
+ ctor_args = not value and self._find_first(ext_attr, 'ExtAttrArgList')
+ if ctor_args:
+ # E.g. Constructor(Element host)
+ self[name] = IDLExtAttrFunctionValue(None, ctor_args)
+ continue
+
+ self[name] = value
+
+ def _all_subnodes(self):
+ # Extended attributes may contain IDLNodes, e.g. IDLExtAttrFunctionValue
+ return self.values()
+
+
+class IDLExtAttrFunctionValue(IDLNode):
+ """IDLExtAttrFunctionValue."""
+ def __init__(self, func_value_ast, arg_list_ast):
+ IDLNode.__init__(self, func_value_ast)
+ self.arguments = self._convert_all(arg_list_ast, 'Argument', IDLArgument)
+
+
+class IDLType(IDLNode):
+ """IDLType is used to describe constants, attributes and operations'
+ return and input types. IDLType matches AST labels such as ScopedName,
+ StringType, VoidType, IntegerType, etc."""
+
+ def __init__(self, ast):
+ IDLNode.__init__(self, ast)
+ # Search for a 'ScopedName' or any label ending with 'Type'.
+ if isinstance(ast, list):
+ self.id = self._find_first(ast, 'ScopedName')
+ if not self.id:
+ # FIXME: use regexp search instead
+ for childAst in ast:
+ (label, childAst) = childAst
+ if label.endswith('Type'):
+ self.id = self._label_to_type(label, ast)
+ break
+ elif isinstance(ast, tuple):
+ (label, value) = ast
+ if label == 'ScopedName':
+ self.id = value
+ else:
+ self.id = self._label_to_type(label, ast)
+ elif isinstance(ast, str):
+ self.id = ast
+ if not self.id:
+ raise SyntaxError('Could not parse type %s' % (ast))
+
+ def _label_to_type(self, label, ast):
+ if label == 'AnyArrayType':
+ return 'any[]'
+ if label == 'DOMStringArrayType':
+ return 'DOMString[]'
+ if label == 'LongLongType':
+ label = 'long long'
+ elif label.endswith('Type'):
+ # Omit 'Type' suffix and lowercase the rest.
+ label = '%s%s' % (label[0].lower(), label[1:-4])
+
+ # Add unsigned qualifier.
+ if self._has(ast, 'Unsigned'):
+ label = 'unsigned %s' % label
+ return label
+
+
+class IDLTypeDef(IDLNode):
+ """IDLNode for 'typedef [type] [id]' declarations."""
+ def __init__(self, ast):
+ IDLNode.__init__(self, ast)
+ self._convert_annotations(ast)
+ self.type = self._convert_first(ast, 'Type', IDLType)
+
+
+class IDLInterface(IDLNode):
+ """IDLInterface node contains operations, attributes, constants,
+ as well as parent references."""
+
+ def __init__(self, ast):
+ IDLNode.__init__(self, ast)
+ self._convert_ext_attrs(ast)
+ self._convert_annotations(ast)
+ self.parents = self._convert_all(ast, 'ParentInterface',
+ IDLParentInterface)
+ self.javascript_binding_name = self.id
+ self.doc_js_name = self.id
+ self.operations = self._convert_all(ast, 'Operation',
+ lambda ast: IDLOperation(ast, self.doc_js_name))
+ self.attributes = self._convert_all(ast, 'Attribute',
+ lambda ast: IDLAttribute(ast, self.doc_js_name))
+ self.constants = self._convert_all(ast, 'Const',
+ lambda ast: IDLConstant(ast, self.doc_js_name))
+ self.is_supplemental = 'Supplemental' in self.ext_attrs
+ self.is_no_interface_object = 'NoInterfaceObject' in self.ext_attrs
+ self.is_fc_suppressed = 'Suppressed' in self.ext_attrs
+
+ def has_attribute(self, candidate):
+ for attribute in self.attributes:
+ if (attribute.id == candidate.id and
+ attribute.is_fc_getter == candidate.is_fc_getter and
+ attribute.is_fc_setter == candidate.is_fc_setter):
+ return True
+ return False
+
+
+class IDLParentInterface(IDLNode):
+ """This IDLNode specialization is for 'Interface Child : Parent {}'
+ declarations."""
+ def __init__(self, ast):
+ IDLNode.__init__(self, ast)
+ self._convert_annotations(ast)
+ self.type = self._convert_first(ast, 'InterfaceType', IDLType)
+
+
+class IDLMember(IDLNode):
+ """A base class for constants, attributes and operations."""
+
+ def __init__(self, ast, doc_js_interface_name):
+ IDLNode.__init__(self, ast)
+ self.type = self._convert_first(ast, 'Type', IDLType)
+ self._convert_ext_attrs(ast)
+ self._convert_annotations(ast)
+ self.doc_js_interface_name = doc_js_interface_name
+ self.is_fc_suppressed = 'Suppressed' in self.ext_attrs
+ self.is_static = self._has(ast, 'Static')
+
+
+class IDLOperation(IDLMember):
+ """IDLNode specialization for 'type name(args)' declarations."""
+ def __init__(self, ast, doc_js_interface_name):
+ IDLMember.__init__(self, ast, doc_js_interface_name)
+ self.type = self._convert_first(ast, 'ReturnType', IDLType)
+ self.arguments = self._convert_all(ast, 'Argument', IDLArgument)
+ self.raises = self._convert_first(ast, 'Raises', IDLType)
+ self.specials = self._find_all(ast, 'Special')
+ self.is_stringifier = self._has(ast, 'Stringifier')
+ def _extra_repr(self):
+ return [self.arguments]
+
+
+class IDLAttribute(IDLMember):
+ """IDLNode specialization for 'attribute type name' declarations."""
+ def __init__(self, ast, doc_js_interface_name):
+ IDLMember.__init__(self, ast, doc_js_interface_name)
+ self.is_read_only = self._has(ast, 'ReadOnly')
+ # There are various ways to define exceptions for attributes:
+ self.raises = self._convert_first(ast, 'Raises', IDLType)
+ self.get_raises = self.raises \
+ or self._convert_first(ast, 'GetRaises', IDLType)
+ self.set_raises = self.raises \
+ or self._convert_first(ast, 'SetRaises', IDLType)
+ # FremontCut IDL syntax defines getters and setters separately:
+ self.is_fc_getter = self._has(ast, 'AttrGetter')
+ self.is_fc_setter = self._has(ast, 'AttrSetter')
+ def _extra_repr(self):
+ extra = []
+ if self.is_fc_getter: extra.append('get')
+ if self.is_fc_setter: extra.append('set')
+ if self.is_read_only: extra.append('readonly')
+ if self.raises: extra.append('raises')
+ return extra
+
+class IDLConstant(IDLMember):
+ """IDLNode specialization for 'const type name = value' declarations."""
+ def __init__(self, ast, doc_js_interface_name):
+ IDLMember.__init__(self, ast, doc_js_interface_name)
+ self.value = self._find_first(ast, 'ConstExpr')
+
+
+class IDLArgument(IDLNode):
+ """IDLNode specialization for operation arguments."""
+ def __init__(self, ast):
+ IDLNode.__init__(self, ast)
+ self.type = self._convert_first(ast, 'Type', IDLType)
+ self._convert_ext_attrs(ast)
+ # WebKit and Web IDL differ in how Optional is declared:
+ self.is_optional = self._has(ast, 'Optional') \
+ or ('Optional' in self.ext_attrs)
+
+
+class IDLImplementsStatement(IDLNode):
+ """IDLNode specialization for 'X implements Y' declarations."""
+ def __init__(self, ast):
+ IDLNode.__init__(self, ast)
+ self.implementor = self._convert_first(ast, 'ImplStmtImplementor',
+ IDLType)
+ self.implemented = self._convert_first(ast, 'ImplStmtImplemented',
+ IDLType)
+
+
+class IDLAnnotations(IDLDictNode):
+ """IDLDictNode specialization for a list of FremontCut annotations."""
+ def __init__(self, ast=None):
+ IDLDictNode.__init__(self, ast)
+ self.id = None
+ if not ast:
+ return
+ for annotation in self._find_all(ast, 'Annotation'):
+ name = self._find_first(annotation, 'Id')
+ value = IDLAnnotation(annotation)
+ self[name] = value
+
+
+class IDLAnnotation(IDLDictNode):
+ """IDLDictNode specialization for one annotation."""
+ def __init__(self, ast=None):
+ IDLDictNode.__init__(self, ast)
+ self.id = None
+ if not ast:
+ return
+ for arg in self._find_all(ast, 'AnnotationArg'):
+ name = self._find_first(arg, 'Id')
+ value = self._find_first(arg, 'AnnotationArgValue')
+ self[name] = value
diff --git a/elemental/idl/scripts/idlnode_test.py b/elemental/idl/scripts/idlnode_test.py
new file mode 100755
index 0000000..1230de3
--- /dev/null
+++ b/elemental/idl/scripts/idlnode_test.py
@@ -0,0 +1,147 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import idlnode
+import idlparser
+import logging.config
+import sys
+import unittest
+
+
+class IDLNodeTestCase(unittest.TestCase):
+
+ def _run_test(self, syntax, content, expected):
+ """Utility run tests and prints extra contextual information.
+
+ Args:
+ syntax -- IDL grammar to use (either idlparser.WEBKIT_SYNTAX,
+ WEBIDL_SYNTAX or FREMONTCUT_SYNTAX). If None, will run
+ multiple tests, each with a different syntax.
+ content -- input text for the parser.
+ expected -- expected parse result.
+ """
+ if syntax is None:
+ self._run_test(idlparser.WEBIDL_SYNTAX, content, expected)
+ self._run_test(idlparser.WEBKIT_SYNTAX, content, expected)
+ self._run_test(idlparser.FREMONTCUT_SYNTAX, content, expected)
+ return
+
+ actual = None
+ error = None
+ ast = None
+ parseResult = None
+ try:
+ parser = idlparser.IDLParser(syntax)
+ ast = parser.parse(content)
+ node = idlnode.IDLFile(ast)
+ actual = node.to_dict() if node else None
+ except SyntaxError, e:
+ error = e
+ pass
+ if actual == expected:
+ return
+ else:
+ msg = '''
+SYNTAX : %s
+CONTENT :
+%s
+EXPECTED:
+%s
+ACTUAL :
+%s
+ERROR : %s
+AST :
+%s
+ ''' % (syntax, content, expected, actual, error, ast)
+ self.fail(msg)
+
+ def test_empty_module(self):
+ self._run_test(
+ None,
+ 'module TestModule {};',
+ {'modules': [{'id': 'TestModule'}]})
+
+ def test_empty_interface(self):
+ self._run_test(
+ None,
+ 'module TestModule { interface Interface1 {}; };',
+ {'modules': [{'interfaces': [{'javascript_binding_name': 'Interface1', 'doc_js_name': 'Interface1', 'id': 'Interface1'}], 'id': 'TestModule'}]})
+
+ def test_gcc_preprocessor(self):
+ self._run_test(
+ idlparser.WEBKIT_SYNTAX,
+ '#if 1\nmodule TestModule {};\n#endif\n',
+ {'modules': [{'id': 'TestModule'}]})
+
+ def test_extended_attributes(self):
+ self._run_test(
+ idlparser.WEBKIT_SYNTAX,
+ 'module M { interface [ExAt1, ExAt2] I {};};',
+ {'modules': [{'interfaces': [{'javascript_binding_name': 'I', 'doc_js_name': 'I', 'ext_attrs': {'ExAt1': None, 'ExAt2': None}, 'id': 'I'}], 'id': 'M'}]})
+
+ def test_implements_statement(self):
+ self._run_test(
+ idlparser.WEBIDL_SYNTAX,
+ 'module M { X implements Y; };',
+ {'modules': [{'implementsStatements': [{'implementor': {'id': 'X'}, 'implemented': {'id': 'Y'}}], 'id': 'M'}]})
+
+ def test_attributes(self):
+ self._run_test(
+ idlparser.WEBIDL_SYNTAX,
+ '''interface I {
+ attribute long a1;
+ readonly attribute DOMString a2;
+ attribute any a3;
+ };''',
+ {'interfaces': [{'javascript_binding_name': 'I', 'attributes': [{'type': {'id': 'long'}, 'id': 'a1', 'doc_js_interface_name': 'I'}, {'type': {'id': 'DOMString'}, 'is_read_only': True, 'id': 'a2', 'doc_js_interface_name': 'I'}, {'type': {'id': 'any'}, 'id': 'a3', 'doc_js_interface_name': 'I'}], 'id': 'I', 'doc_js_name': 'I'}]})
+
+ def test_operations(self):
+ self._run_test(
+ idlparser.WEBIDL_SYNTAX,
+ '''interface I {
+ [ExAttr] t1 op1();
+ t2 op2(in int arg1, in long arg2);
+ getter any item(in long index);
+ stringifier name();
+ };''',
+ {'interfaces': [{'operations': [{'doc_js_interface_name': 'I', 'type': {'id': 't1'}, 'ext_attrs': {'ExAttr': None}, 'id': 'op1'}, {'doc_js_interface_name': 'I', 'type': {'id': 't2'}, 'id': 'op2', 'arguments': [{'type': {'id': 'int'}, 'id': 'arg1'}, {'type': {'id': 'long'}, 'id': 'arg2'}]}, {'specials': ['getter'], 'doc_js_interface_name': 'I', 'type': {'id': 'any'}, 'id': 'item', 'arguments': [{'type': {'id': 'long'}, 'id': 'index'}]}, {'is_stringifier': True, 'type': {'id': 'name'}, 'doc_js_interface_name': 'I'}], 'javascript_binding_name': 'I', 'id': 'I', 'doc_js_name': 'I'}]})
+
+ def test_constants(self):
+ self._run_test(
+ None,
+ '''interface I {
+ const long c1 = 0;
+ const long c2 = 1;
+ const long c3 = 0x01;
+ const long c4 = 10;
+ const boolean b1 = false;
+ const boolean b2 = true;
+ };''',
+ {'interfaces': [{'javascript_binding_name': 'I', 'doc_js_name': 'I', 'id': 'I', 'constants': [{'type': {'id': 'long'}, 'id': 'c1', 'value': '0', 'doc_js_interface_name': 'I'}, {'type': {'id': 'long'}, 'id': 'c2', 'value': '1', 'doc_js_interface_name': 'I'}, {'type': {'id': 'long'}, 'id': 'c3', 'value': '0x01', 'doc_js_interface_name': 'I'}, {'type': {'id': 'long'}, 'id': 'c4', 'value': '10', 'doc_js_interface_name': 'I'}, {'type': {'id': 'boolean'}, 'id': 'b1', 'value': 'false', 'doc_js_interface_name': 'I'}, {'type': {'id': 'boolean'}, 'id': 'b2', 'value': 'true', 'doc_js_interface_name': 'I'}]}]})
+
+ def test_annotations(self):
+ self._run_test(
+ idlparser.FREMONTCUT_SYNTAX,
+ '@Ano1 @Ano2() @Ano3(x=1) @Ano4(x,y=2) interface I {};',
+ {'interfaces': [{'javascript_binding_name': 'I', 'doc_js_name': 'I', 'id': 'I', 'annotations': {'Ano4': {'y': '2', 'x': None}, 'Ano1': {}, 'Ano2': {}, 'Ano3': {'x': '1'}}}]})
+ self._run_test(
+ idlparser.FREMONTCUT_SYNTAX,
+ '''interface I : @Ano1 J {
+ @Ano2 attribute int someAttr;
+ @Ano3 void someOp();
+ @Ano3 const int someConst = 0;
+ };''',
+ {'interfaces': [{'operations': [{'annotations': {'Ano3': {}}, 'type': {'id': 'void'}, 'id': 'someOp', 'doc_js_interface_name': 'I'}], 'javascript_binding_name': 'I', 'parents': [{'type': {'id': 'J'}, 'annotations': {'Ano1': {}}}], 'attributes': [{'annotations': {'Ano2': {}}, 'type': {'id': 'int'}, 'id': 'someAttr', 'doc_js_interface_name': 'I'}], 'doc_js_name': 'I', 'id': 'I', 'constants': [{'annotations': {'Ano3': {}}, 'type': {'id': 'int'}, 'id': 'someConst', 'value': '0', 'doc_js_interface_name': 'I'}]}]})
+
+ def test_inheritance(self):
+ self._run_test(
+ None,
+ 'interface Shape {}; interface Rectangle : Shape {}; interface Square : Rectangle, Shape {};',
+ {'interfaces': [{'javascript_binding_name': 'Shape', 'doc_js_name': 'Shape', 'id': 'Shape'}, {'javascript_binding_name': 'Rectangle', 'doc_js_name': 'Rectangle', 'parents': [{'type': {'id': 'Shape'}}], 'id': 'Rectangle'}, {'javascript_binding_name': 'Square', 'doc_js_name': 'Square', 'parents': [{'type': {'id': 'Rectangle'}}, {'type': {'id': 'Shape'}}], 'id': 'Square'}]})
+
+if __name__ == "__main__":
+ logging.config.fileConfig("logging.conf")
+ if __name__ == '__main__':
+ unittest.main()
diff --git a/elemental/idl/scripts/idlparser.dart b/elemental/idl/scripts/idlparser.dart
new file mode 100644
index 0000000..d9c5219
--- /dev/null
+++ b/elemental/idl/scripts/idlparser.dart
@@ -0,0 +1,549 @@
+// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// IDL grammar variants.
+final int WEBIDL_SYNTAX = 0;
+final int WEBKIT_SYNTAX = 1;
+final int FREMONTCUT_SYNTAX = 2;
+
+/**
+ * IDLFile is the top-level node in each IDL file. It may contain modules or
+ * interfaces.
+ */
+class IDLFile extends IDLNode {
+
+ String filename;
+ List<IDLModule> modules;
+ List<IDLInterface> interfaces;
+
+ IDLFile(this.filename, this.modules, this.interfaces);
+}
+
+/**
+ * IDLModule has an id, and may contain interfaces, type defs andimplements
+ * statements.
+ */
+class IDLModule extends IDLNode {
+ String id;
+ List interfaces;
+ List typedefs;
+ List implementsStatements;
+
+ IDLModule(String this.id, IDLExtAttrs extAttrs, IDLAnnotations annotations,
+ List<IDLNode> elements) {
+ setExtAttrs(extAttrs);
+ this.annotations = annotations;
+ this.interfaces = elements.filter((e) => e is IDLInterface);
+ this.typedefs = elements.filter((e) => e is IDLTypeDef);
+ this.implementsStatements =
+ elements.filter((e) => e is IDLImplementsStatement);
+ }
+
+ toString() => '<IDLModule $id $extAttrs $annotations>';
+}
+
+class IDLNode {
+ IDLExtAttrs extAttrs;
+ IDLAnnotations annotations;
+ IDLNode();
+
+ setExtAttrs(IDLExtAttrs ea) {
+ assert(ea != null);
+ this.extAttrs = ea != null ? ea : new IDLExtAttrs();
+ }
+}
+
+class IDLType extends IDLNode {
+ String id;
+ IDLType parameter;
+ bool nullable = false;
+ IDLType(String this.id, [IDLType this.parameter, bool this.nullable = false]);
+
+ // TODO: Figure out why this constructor was failing in mysterious ways.
+ // IDLType.nullable(IDLType base) {
+ // return new IDLType(base.id, base.parameter, true);
+ // }
+
+ //String toString() => '<IDLType $nullable $id $parameter>';
+ String toString() {
+ String nullableTag = nullable ? '?' : '';
+ return '<IDLType $id${parameter == null ? '' : ' $parameter'}$nullableTag>';
+ }
+}
+
+class IDLTypeDef extends IDLNode {
+ String id;
+ IDLType type;
+ IDLTypeDef(String this.id, IDLType this.type);
+
+ toString() => '<IDLTypeDef $id $type>';
+}
+
+class IDLImplementsStatement extends IDLNode {
+}
+
+class IDLInterface extends IDLNode {
+ String id;
+ List parents;
+ List operations;
+ List attributes;
+ List constants;
+ List snippets;
+
+ bool isSupplemental;
+ bool isNoInterfaceObject;
+ bool isFcSuppressed;
+
+ IDLInterface(String this.id, IDLExtAttrs ea, IDLAnnotations ann,
+ List this.parents, List members) {
+ setExtAttrs(ea);
+ this.annotations = ann;
+ if (this.parents == null) this.parents = [];
+
+ operations = members.filter((e) => e is IDLOperation);
+ attributes = members.filter((e) => e is IDLAttribute);
+ constants = members.filter((e) => e is IDLConstant);
+ snippets = members.filter((e) => e is IDLSnippet);
+
+ isSupplemental = extAttrs.has('Supplemental');
+ isNoInterfaceObject = extAttrs.has('NoInterfaceObject');
+ isFcSuppressed = extAttrs.has('Suppressed');
+ }
+
+ toString() => '<IDLInterface $id $extAttrs $annotations>';
+}
+
+class IDLMember extends IDLNode {
+ String id;
+ IDLType type;
+ bool isFcSuppressed;
+
+ IDLMember(String this.id, IDLType this.type, IDLExtAttrs ea, IDLAnnotations ann) {
+ setExtAttrs(ea);
+ this.annotations = ann;
+
+ isFcSuppressed = extAttrs.has('Suppressed');
+ }
+}
+
+class IDLOperation extends IDLMember {
+ List arguments;
+
+ // Ignore all forms of raises for now.
+ List specials;
+ bool isStringifier;
+
+ IDLOperation(String id, IDLType type, IDLExtAttrs ea, IDLAnnotations ann,
+ List this.arguments, List this.specials, bool this.isStringifier)
+ : super(id, type, ea, ann) {
+ }
+
+ toString() => '<IDLOperation $type $id ${printList(arguments)}>';
+}
+
+class IDLAttribute extends IDLMember {
+}
+
+class IDLConstant extends IDLMember {
+ var value;
+ IDLConstant(String id, IDLType type, IDLExtAttrs ea, IDLAnnotations ann,
+ var this.value)
+ : super(id, type, ea, ann);
+}
+
+class IDLSnippet extends IDLMember {
+ String text;
+ IDLSnippet(IDLAnnotations ann, String this.text)
+ : super(null, null, new IDLExtAttrs(), ann);
+}
+
+/** Maps string to something. */
+class IDLDictNode {
+ Map<String, Object> map;
+ IDLDictNode() {
+ map = new Map<String, Object>();
+ }
+
+ setMap(List associationList) {
+ if (associationList == null) return;
+ for (var element in associationList) {
+ var name = element[0];
+ var value = element[1];
+ map[name] = value;
+ }
+ }
+
+ bool has(String key) => map.containsKey(key);
+
+ formatMap() {
+ if (map.isEmpty())
+ return '';
+ StringBuffer sb = new StringBuffer();
+ map.forEach((k, v) {
+ sb.add(' $k');
+ if (v != null) {
+ sb.add('=$v');
+ }
+ });
+ return sb.toString();
+ }
+
+}
+
+class IDLExtAttrs extends IDLDictNode {
+ IDLExtAttrs([List attrs = const []]) : super() {
+ setMap(attrs);
+ }
+
+ toString() => '<IDLExtAttrs${formatMap()}>';
+}
+
+class IDLArgument extends IDLNode {
+ String id;
+ IDLType type;
+ bool isOptional;
+ bool isIn;
+ bool hasElipsis;
+ IDLArgument(String this.id, IDLType this.type, IDLExtAttrs extAttrs,
+ bool this.isOptional, bool this.isIn, bool this.hasElipsis) {
+ setExtAttrs(extAttrs);
+ }
+
+ toString() => '<IDLArgument $id>';
+}
+
+class IDLAnnotations extends IDLDictNode {
+ IDLAnnotations(List annotations) : super() {
+ for (var annotation in annotations) {
+ map[annotation.id] = annotation;
+ }
+ }
+
+ toString() => '<IDLAnnotations${formatMap()}>';
+}
+
+class IDLAnnotation extends IDLDictNode {
+ String id;
+ IDLAnnotation(String this.id, List args) : super() {
+ setMap(args);
+ }
+
+ toString() => '<IDLAnnotation $id${formatMap()}>';
+}
+
+class IDLExtAttrFunctionValue extends IDLNode {
+ String name;
+ List arguments;
+ IDLExtAttrFunctionValue(String this.name, this.arguments);
+
+ toString() => '<IDLExtAttrFunctionValue $name(${arguments.length})>';
+}
+
+class IDLParentInterface extends IDLNode {}
+
+////////////////////////////////////////////////////////////////////////////////
+
+class IDLParser {
+ final int syntax;
+ Grammar grammar;
+ var axiom;
+
+ IDLParser([syntax=WEBIDL_SYNTAX]) : syntax = syntax {
+ grammar = new Grammar();
+ axiom = _makeParser();
+ }
+
+ syntax_switch([WebIDL, WebKit, FremontCut]) {
+ assert(WebIDL != null && WebKit != null); // Not options, just want names.
+ if (syntax == WEBIDL_SYNTAX)
+ return WebIDL;
+ if (syntax == WEBKIT_SYNTAX)
+ return WebKit;
+ if (syntax == FREMONTCUT_SYNTAX)
+ return FremontCut == null ? WebIDL : FremontCut;
+ throw new Exception('unsupported IDL syntax $syntax');
+ }
+
+ _makeParser() {
+ Grammar g = grammar;
+
+ // TODO: move syntax_switch back to here.
+
+ var idStartCharSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_';
+ var idNextCharSet = idStartCharSet + '0123456789';
+ var hexCharSet = '0123456789ABCDEFabcdef';
+
+ var idStartChar = CHAR(idStartCharSet);
+ var idNextChar = CHAR(idNextCharSet);
+
+ var digit = CHAR('0123456789');
+
+ var Id = TEXT(LEX('an identifier',[idStartChar, MANY(idNextChar, min:0)]));
+
+ var IN = SKIP(LEX("'in'", ['in',NOT(idNextChar)]));
+
+ var BooleanLiteral = OR(['true', 'false']);
+ var IntegerLiteral = TEXT(LEX('hex-literal', OR([['0x', MANY(CHAR(hexCharSet))],
+ [MANY(digit)]])));
+ var FloatLiteral = TEXT(LEX('float-literal', [MANY(digit), '.', MANY(digit, min:0)]));
+
+
+ var Argument = g['Argument'];
+ var Module = g['Module'];
+ var Member = g['Member'];
+ var Interface = g['Interface'];
+ var ExceptionDef = g['ExceptionDef'];
+ var Type = g['Type'];
+ var TypeDef = g['TypeDef'];
+ var ImplStmt = g['ImplStmt'];
+ var ValueTypeDef = g['ValueTypeDef'];
+ var Const = g['Const'];
+ var Attribute = g['Attribute'];
+ var Operation = g['Operation'];
+ var Snippet = g['Snippet'];
+ var ExtAttrs = g['ExtAttrs'];
+ var MaybeExtAttrs = g['MaybeExtAttrs'];
+ var MaybeAnnotations = g['MaybeAnnotations'];
+ var ParentInterfaces = g['ParentInterfaces'];
+
+
+ final ScopedName = TEXT(LEX('scoped-name', MANY(CHAR(idStartCharSet + '_:.<>'))));
+
+ final ScopedNames = MANY(ScopedName, separator:',');
+
+ // Types
+
+ final IntegerTypeName = OR([
+ ['byte', () => 'byte'],
+ ['int', () => 'int'],
+ ['long', 'long', () => 'long long'],
+ ['long', () => 'long'],
+ ['octet', () => 'octet'],
+ ['short', () => 'short']]);
+
+ final IntegerType = OR([
+ ['unsigned', IntegerTypeName, (name) => new IDLType('unsigned $name')],
+ [IntegerTypeName, (name) => new IDLType(name)]]);
+
+ final BooleanType = ['boolean', () => new IDLType('boolean')];
+ final OctetType = ['octet', () => new IDLType('octet')];
+ final FloatType = ['float', () => new IDLType('float')];
+ final DoubleType = ['double', () => new IDLType('double')];
+
+ final SequenceType = ['sequence', '<', Type, '>',
+ (type) => new IDLType('sequence', type)];
+
+ final ScopedNameType = [ScopedName, (name) => new IDLType(name)];
+
+ final NullableType =
+ [OR([IntegerType, BooleanType, OctetType, FloatType,
+ DoubleType, SequenceType, ScopedNameType]),
+ MAYBE('?'),
+ (type, nullable) =>
+ nullable ? new IDLType(type.id, type.parameter, true) : type];
+
+ final VoidType = ['void', () => new IDLType('void')];
+ final AnyType = ['any', () => new IDLType('any')];
+ final ObjectType = ['object', () => new IDLType('object')];
+
+ Type.def = OR([AnyType, ObjectType, NullableType]);
+
+ final ReturnType = OR([VoidType, Type]);
+
+ var Definition = syntax_switch(
+ WebIDL: OR([Module, Interface, ExceptionDef, TypeDef, ImplStmt,
+ ValueTypeDef, Const]),
+ WebKit: OR([Module, Interface]));
+
+ var Definitions = MANY(Definition, min:0);
+
+ Module.def = syntax_switch(
+ WebIDL: [MaybeExtAttrs, 'module', Id, '{', Definitions, '}',
+ SKIP(MAYBE(';')),
+ (ea, id, defs) => new IDLModule(id, ea, null, defs)],
+ WebKit: ['module', MaybeExtAttrs, Id, '{', Definitions, '}',
+ SKIP(MAYBE(';')),
+ (ea, id, defs) => new IDLModule(id, ea, null, defs)],
+ FremontCut: [MaybeAnnotations, MaybeExtAttrs, 'module', Id,
+ '{', Definitions, '}', SKIP(MAYBE(';')),
+ (ann, ea, id, defs) => new IDLModule(id, ea, ann, defs)]);
+
+ Interface.def = syntax_switch(
+ WebIDL: [MaybeExtAttrs, 'interface', Id, MAYBE(ParentInterfaces),
+ MAYBE(['{', MANY0(Member), '}']), ';',
+ (ea, id, p, ms) => new IDLInterface(id, ea, null, p, ms)],
+ WebKit: ['interface', MaybeExtAttrs, Id, MAYBE(ParentInterfaces),
+ MAYBE(['{', MANY0(Member), '}']), ';',
+ (ea, id, p, ms) => new IDLInterface(id, ea, null, p, ms)],
+ FremontCut: [MaybeAnnotations, MaybeExtAttrs, 'interface',
+ Id, MAYBE(ParentInterfaces),
+ MAYBE(['{', MANY0(Member), '}']), ';',
+ (ann, ea, id, p, ms) => new IDLInterface(id, ea, ann, p, ms)]);
+
+ Member.def = syntax_switch(
+ WebIDL: OR([Const, Attribute, Operation, ExtAttrs]),
+ WebKit: OR([Const, Attribute, Operation]),
+ FremontCut: OR([Const, Attribute, Operation, Snippet]));
+
+ var InterfaceType = ScopedName;
+
+ var ParentInterface = syntax_switch(
+ WebIDL: [InterfaceType],
+ WebKit: [InterfaceType],
+ FremontCut: [MaybeAnnotations, InterfaceType]);
+
+ ParentInterfaces.def = [':', MANY(ParentInterface, ',')];
+
+ // TypeDef (Web IDL):
+ TypeDef.def = ['typedef', Type, Id, ';', (type, id) => new IDLTypeDef(id, type)];
+
+ // TypeDef (Old-school W3C IDLs)
+ ValueTypeDef.def = ['valuetype', Id, Type, ';'];
+
+ // Implements Statement (Web IDL):
+ var ImplStmtImplementor = ScopedName;
+ var ImplStmtImplemented = ScopedName;
+
+ ImplStmt.def = [ImplStmtImplementor, 'implements', ImplStmtImplemented, ';'];
+
+ var ConstExpr = OR([BooleanLiteral, IntegerLiteral, FloatLiteral]);
+
+ Const.def = syntax_switch(
+ WebIDL: [MaybeExtAttrs, 'const', Type, Id, '=', ConstExpr, ';',
+ (ea, type, id, v) => new IDLConstant(id, type, ea, null, v)],
+ WebKit: ['const', MaybeExtAttrs, Type, Id, '=', ConstExpr, ';',
+ (ea, type, id, v) => new IDLConstant(id, type, ea, null, v)],
+ FremontCut: [MaybeAnnotations, MaybeExtAttrs,
+ 'const', Type, Id, '=', ConstExpr, ';',
+ (ann, ea, type, id, v) =>
+ new IDLConstant(id, type, ea, ann, v)]);
+
+ // Attributes
+
+ var Stringifier = 'stringifier';
+ var AttrGetter = 'getter';
+ var AttrSetter = 'setter';
+ var ReadOnly = 'readonly';
+ var AttrGetterSetter = OR([AttrGetter, AttrSetter]);
+
+ var GetRaises = syntax_switch(
+ WebIDL: ['getraises', '(', ScopedNames, ')'],
+ WebKit: ['getter', 'raises', '(', ScopedNames, ')']);
+
+ var SetRaises = syntax_switch(
+ WebIDL: ['setraises', '(', ScopedNames, ')'],
+ WebKit: ['setter', 'raises', '(', ScopedNames, ')']);
+
+ var Raises = ['raises', '(', ScopedNames, ')'];
+
+ var AttrRaises = syntax_switch(
+ WebIDL: MANY(OR([GetRaises, SetRaises])),
+ WebKit: MANY(OR([GetRaises, SetRaises, Raises]), separator:','));
+
+ Attribute.def = syntax_switch(
+ WebIDL: [MaybeExtAttrs, MAYBE(Stringifier), MAYBE(ReadOnly),
+ 'attribute', Type, Id, MAYBE(AttrRaises), ';'],
+ WebKit: [MAYBE(Stringifier), MAYBE(ReadOnly), 'attribute',
+ MaybeExtAttrs, Type, Id, MAYBE(AttrRaises), ';'],
+ FremontCut: [MaybeAnnotations, MaybeExtAttrs,
+ MAYBE(AttrGetterSetter), MAYBE(Stringifier), MAYBE(ReadOnly),
+ 'attribute', Type, Id, MAYBE(AttrRaises), ';'
+ ]);
+
+ // Operations
+
+ final Special = TEXT(OR(['getter', 'setter', 'creator', 'deleter', 'caller']));
+ final Specials = MANY(Special);
+
+ final Optional = 'optional';
+ final AnEllipsis = '...';
+
+ Argument.def = syntax_switch(
+ WebIDL: SEQ(MaybeExtAttrs, MAYBE(Optional), MAYBE(IN),
+ MAYBE(Optional), Type, MAYBE(AnEllipsis), Id,
+ (e, opt1, isin, opt2, type, el, id) =>
+ new IDLArgument(id, type, e, opt1 || opt2, isin, el)),
+
+ WebKit: SEQ(MAYBE(Optional), MAYBE('in'), MAYBE(Optional),
+ MaybeExtAttrs, Type, Id
+ (opt1, isin, opt2, e, type, id) =>
+ new IDLArgument(id, type, e, opt1 || opt2, isin, false)));
+
+ final Arguments = MANY0(Argument, ',');
+
+ Operation.def = syntax_switch(
+ WebIDL: [MaybeExtAttrs, MAYBE(Stringifier), MAYBE(Specials),
+ ReturnType, MAYBE(Id), '(', Arguments, ')', MAYBE(Raises), ';',
+ (ea, isStringifier, specials, type, id, args, raises) =>
+ new IDLOperation(id, type, ea, null, args, specials, isStringifier)
+ ],
+ WebKit: [MaybeExtAttrs, ReturnType, MAYBE(Id), '(', Arguments, ')',
+ MAYBE(Raises), ';',
+ (ea, type, id, args, raises) =>
+ new IDLOperation(id, type, ea, null, args, [], false)
+ ],
+ FremontCut: [MaybeAnnotations, MaybeExtAttrs, MAYBE(Stringifier),
+ MAYBE(Specials), ReturnType, MAYBE(Id), '(', Arguments, ')',
+ MAYBE(Raises), ';',
+ (ann, ea, isStringifier, specials, type, id, args, raises) =>
+ new IDLOperation(id, type, ea, ann, args, specials, isStringifier)
+ ]);
+
+ // Exceptions
+
+ final ExceptionField = [Type, Id, ';'];
+ final ExceptionMember = OR([Const, ExceptionField, ExtAttrs]);
+ ExceptionDef.def = ['exception', Id, '{', MANY0(ExceptionMember), '}', ';'];
+
+ // ExtendedAttributes
+
+ var ExtAttrArgList = ['(', MANY0(Argument, ','), ')'];
+
+ var ExtAttrFunctionValue =
+ [Id, '(', MANY0(Argument, ','), ')',
+ (name, args) => new IDLExtAttrFunctionValue(name, args)
+ ];
+
+ var ExtAttrValue = OR([ExtAttrFunctionValue,
+ TEXT(LEX('value', MANY(CHAR(idNextCharSet + '&:-|'))))]);
+
+ var ExtAttr = [Id, MAYBE(OR([['=', ExtAttrValue], ExtAttrArgList]))];
+
+ ExtAttrs.def = ['[', MANY(ExtAttr, ','), ']',
+ (list) => new IDLExtAttrs(list)];;
+
+ MaybeExtAttrs.def = OR(ExtAttrs,
+ [ () => new IDLExtAttrs() ] );
+
+ // Annotations - used in the FremontCut IDL grammar.
+
+ var AnnotationArgValue = TEXT(LEX('xx', MANY(CHAR(idNextCharSet + '&:-|'))));
+
+ var AnnotationArg = [Id, MAYBE(['=', AnnotationArgValue])];
+
+ var AnnotationBody = ['(', MANY0(AnnotationArg, ','), ')'];
+
+ var Annotation = ['@', Id, MAYBE(AnnotationBody),
+ (id, body) => new IDLAnnotation(id, body)];
+
+ MaybeAnnotations.def = [MANY0(Annotation), (list) => new IDLAnnotations(list)];
+
+ // Snippets - used in the FremontCut IDL grammar.
+
+ final SnippetText = TEXT(LEX('snippet body', MANY0([NOT('}'), CHAR()])));
+ Snippet.def = [MaybeAnnotations, 'snippet', '{', SnippetText, '}', ';',
+ (ann, text) => new IDLSnippet(ann, text)];
+
+
+ grammar.whitespace =
+ OR([MANY(CHAR(' \t\r\n')),
+ ['//', MANY0([NOT(CHAR('\r\n')), CHAR()])],
+ ['#', MANY0([NOT(CHAR('\r\n')), CHAR()])],
+ ['/*', MANY0([NOT('*/'), CHAR()]), '*/']]);
+
+ // Top level - at least one definition.
+ return MANY(Definition);
+
+ }
+}
diff --git a/elemental/idl/scripts/idlparser.py b/elemental/idl/scripts/idlparser.py
new file mode 100755
index 0000000..c2470c0
--- /dev/null
+++ b/elemental/idl/scripts/idlparser.py
@@ -0,0 +1,442 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import re
+import subprocess
+import tempfile
+
+from pegparser import *
+
+# IDL grammar variants.
+WEBIDL_SYNTAX = 0
+WEBKIT_SYNTAX = 1
+FREMONTCUT_SYNTAX = 2
+
+
+class IDLParser(object):
+ """IDLParser is a PEG based IDL files parser."""
+
+ def __init__(self, syntax=WEBIDL_SYNTAX):
+ """Constructor.
+
+ Initializes the IDLParser by defining the grammar and initializing
+ a PEGParserinstance.
+
+ Args:
+ syntax -- supports either WEBIDL_SYNTAX (0) or WEBKIT_SYNTAX (1)
+ """
+ self._syntax = syntax
+ self._pegparser = PegParser(self._idl_grammar(),
+ self._whitespace_grammar(),
+ strings_are_tokens=True)
+
+ def _idl_grammar(self):
+ """Returns the PEG grammar for IDL parsing."""
+
+ # utilities:
+ def syntax_switch(w3c_syntax, webkit_syntax, fremontcut_syntax=None):
+ """Returns w3c_syntax or web_syntax, depending on the current
+ configuration.
+ """
+ if self._syntax == WEBIDL_SYNTAX:
+ return w3c_syntax
+ elif self._syntax == WEBKIT_SYNTAX:
+ return webkit_syntax
+ elif self._syntax == FREMONTCUT_SYNTAX:
+ if fremontcut_syntax is not None:
+ return fremontcut_syntax
+ return w3c_syntax
+ else:
+ raise RuntimeError('unsupported IDL syntax %s' % syntax)
+
+ # The following grammar is based on the Web IDL's LL(1) grammar
+ # (specified in: http://dev.w3.org/2006/webapi/WebIDL/#idl-grammar).
+ # It is adjusted to PEG grammar, as well as to also support
+ # WebKit IDL and FremontCut grammar.
+
+ ###################### BEGIN GRAMMAR #####################
+
+ def Id():
+ return re.compile(r'[\w\_]+')
+
+ def _Definitions():
+ return MAYBE(MANY(_Definition))
+
+ def _Definition():
+ return syntax_switch(
+ # Web IDL:
+ OR(Module, Interface, ExceptionDef, TypeDef, ImplStmt,
+ ValueTypeDef, Const),
+ # WebKit:
+ OR(Module, Interface))
+
+ def Module():
+ return syntax_switch(
+ # Web IDL:
+ [MAYBE(ExtAttrs), 'module', Id, '{', _Definitions, '}',
+ MAYBE(';')],
+ # WebKit:
+ ['module', MAYBE(ExtAttrs), Id, '{', _Definitions, '}',
+ MAYBE(';')],
+ # FremontCut:
+ [MAYBE(_Annotations), MAYBE(ExtAttrs), 'module', Id,
+ '{', _Definitions, '}', MAYBE(';')])
+
+ def Interface():
+ return syntax_switch(
+ # Web IDL:
+ [MAYBE(ExtAttrs), 'interface', Id, MAYBE(_ParentInterfaces),
+ MAYBE(['{', MAYBE(MANY(_Member)), '}']), ';'],
+ # WebKit:
+ [OR('interface', 'exception'), MAYBE(ExtAttrs), Id, MAYBE(_ParentInterfaces),
+ MAYBE(['{', MAYBE(MANY(_Member)), '}']), MAYBE(';')],
+ # FremontCut:
+ [MAYBE(_Annotations), MAYBE(ExtAttrs), 'interface',
+ Id, MAYBE(_ParentInterfaces), MAYBE(['{', MAYBE(MANY(_Member)),
+ '}']), ';'])
+
+ def _Member():
+ return syntax_switch(
+ # Web IDL:
+ OR(Const, Attribute, Operation, ExtAttrs),
+ # WebKit:
+ OR(Const, Attribute, Operation),
+ # FremontCut:
+ OR(Const, Attribute, Operation))
+
+ # Interface inheritance:
+ def _ParentInterfaces():
+ return [':', MANY(ParentInterface, separator=',')]
+
+ def ParentInterface():
+ return syntax_switch(
+ # Web IDL:
+ [InterfaceType],
+ # WebKit:
+ [InterfaceType],
+ # FremontCut:
+ [MAYBE(_Annotations), InterfaceType])
+
+ # TypeDef (Web IDL):
+ def TypeDef():
+ return ['typedef', Type, Id, ';']
+
+ # TypeDef (Old-school W3C IDLs)
+ def ValueTypeDef():
+ return ['valuetype', Id, Type, ';']
+
+ # Implements Statement (Web IDL):
+ def ImplStmt():
+ return [ImplStmtImplementor, 'implements', ImplStmtImplemented,
+ ';']
+
+ def ImplStmtImplementor():
+ return ScopedName
+
+ def ImplStmtImplemented():
+ return ScopedName
+
+ # Constants:
+ def Const():
+ return syntax_switch(
+ # Web IDL:
+ [MAYBE(ExtAttrs), 'const', Type, Id, '=', ConstExpr, ';'],
+ # WebKit:
+ [MAYBE(ExtAttrs), 'const', Type, Id, '=', ConstExpr, ';'],
+ # FremontCut:
+ [MAYBE(_Annotations), MAYBE(ExtAttrs), 'const', Type, Id, '=',
+ ConstExpr, ';'])
+
+ def ConstExpr():
+ return OR(_BooleanLiteral,
+ _IntegerLiteral,
+ _FloatLiteral)
+
+ def _BooleanLiteral():
+ return re.compile(r'true|false')
+
+ def _IntegerLiteral():
+ return OR(re.compile(r'(0x)?[0-9ABCDEF]+'),
+ re.compile(r'[0-9]+'))
+
+ def _FloatLiteral():
+ return re.compile(r'[0-9]+\.[0-9]*')
+
+ # Attributes:
+ def Attribute():
+ return syntax_switch(
+ # Web IDL:
+ [MAYBE(ExtAttrs), MAYBE(Stringifier), MAYBE(ReadOnly),
+ 'attribute', Type, Id, MAYBE(_AttrRaises), ';'],
+ # WebKit:
+ [MAYBE(Stringifier), MAYBE(ReadOnly), 'attribute',
+ MAYBE(ExtAttrs), Type, Id, MAYBE(_AttrRaises), ';'],
+ # FremontCut:
+ [MAYBE(_Annotations), MAYBE(ExtAttrs),
+ MAYBE(_AttrGetterSetter), MAYBE(Stringifier), MAYBE(ReadOnly),
+ 'attribute', Type, Id, MAYBE(_AttrRaises), ';'])
+
+ def _AttrRaises():
+ return syntax_switch(
+ # Web IDL:
+ MANY(OR(GetRaises, SetRaises)),
+ # WebKit:
+ MANY(OR(GetRaises, SetRaises, Raises), separator=','))
+
+ # Special fremontcut feature:
+ def _AttrGetterSetter():
+ return OR(AttrGetter, AttrSetter)
+
+ def AttrGetter():
+ return 'getter'
+
+ def AttrSetter():
+ return 'setter'
+
+ def ReadOnly():
+ return 'readonly'
+
+ def GetRaises():
+ return syntax_switch(
+ # Web IDL:
+ ['getraises', '(', _ScopedNames, ')'],
+ # WebKit:
+ ['getter', 'raises', '(', _ScopedNames, ')'])
+
+ def SetRaises():
+ return syntax_switch(
+ # Web IDL:
+ ['setraises', '(', _ScopedNames, ')'],
+ # WebKit:
+ ['setter', 'raises', '(', _ScopedNames, ')'])
+
+ # Operation:
+ def Operation():
+ return syntax_switch(
+ # Web IDL:
+ [MAYBE(ExtAttrs), MAYBE(Static), MAYBE(Stringifier), MAYBE(_Specials),
+ ReturnType, MAYBE(Id), '(', _Arguments, ')', MAYBE(Raises),
+ ';'],
+ # WebKit:
+ [MAYBE(ExtAttrs), MAYBE(Static),
+ ReturnType, MAYBE(Id), '(', _Arguments, ')',
+ MAYBE(Raises), ';'],
+ # FremontCut:
+ [MAYBE(_Annotations), MAYBE(ExtAttrs), MAYBE(Static), MAYBE(Stringifier),
+ MAYBE(_Specials), ReturnType, MAYBE(Id), '(', _Arguments, ')',
+ MAYBE(Raises), ';'])
+
+ def Static():
+ return 'static'
+
+ def _Specials():
+ return MANY(Special)
+
+ def Special():
+ return re.compile(r'getter|setter|creator|deleter|caller')
+
+ def Stringifier():
+ return 'stringifier'
+
+ def Raises():
+ return ['raises', '(', _ScopedNames, ')']
+
+ # Operation arguments:
+ def _Arguments():
+ return MAYBE(MANY(Argument, ','))
+
+ def Argument():
+ return syntax_switch(
+ # Web IDL:
+ [MAYBE(ExtAttrs), MAYBE(Optional), MAYBE('in'),
+ MAYBE(Optional), Type, MAYBE(AnEllipsis), Id],
+ # WebKit:
+ [MAYBE(Optional), MAYBE('in'), MAYBE(Optional),
+ MAYBE(ExtAttrs), Type, Id])
+
+ def Optional():
+ return 'optional'
+
+ def AnEllipsis():
+ return '...'
+
+ # Exceptions (Web IDL).
+ def ExceptionDef():
+ return ['exception', Id, '{', MAYBE(MANY(_ExceptionMember)), '}',
+ ';']
+
+ def _ExceptionMember():
+ return OR(Const, ExceptionField, ExtAttrs)
+
+ def ExceptionField():
+ return [Type, Id, ';']
+
+ # Types:
+ def Type():
+ return _Type
+
+ def ReturnType():
+ return OR(VoidType, _Type)
+
+ def InterfaceType():
+ return ScopedName
+
+ def _Type():
+ return OR(AnyArrayType, AnyType, ObjectType, _NullableType)
+
+ def _NullableType():
+ return [OR(_IntegerType, BooleanType, OctetType, FloatType,
+ DoubleType, SequenceType, DOMStringArrayType, ScopedName),
+ MAYBE(Nullable)]
+
+ def Nullable():
+ return '?'
+
+ def SequenceType():
+ return ['sequence', '<', Type, '>']
+
+ def AnyType():
+ return 'any'
+
+ def AnyArrayType():
+ # TODO(sra): Do more general handling of array types.
+ return 'any[]'
+
+ def ObjectType():
+ return re.compile(r'(object|Object)\b') # both spellings.
+
+ def VoidType():
+ return 'void'
+
+ def _IntegerType():
+ return [MAYBE(Unsigned), OR(ByteType, IntType, LongLongType,
+ LongType, OctetType, ShortType)]
+
+ def Unsigned():
+ return 'unsigned'
+
+ def ShortType():
+ return 'short'
+
+ def LongLongType():
+ return ['long', 'long']
+
+ def LongType():
+ return 'long'
+
+ def IntType():
+ return 'int'
+
+ def ByteType():
+ return 'byte'
+
+ def OctetType():
+ return 'octet'
+
+ def BooleanType():
+ return 'boolean'
+
+ def FloatType():
+ return 'float'
+
+ def DoubleType():
+ return 'double'
+
+ def _ScopedNames():
+ return MANY(ScopedName, separator=',')
+
+ def ScopedName():
+ return re.compile(r'[\w\_\:\.\<\>]+')
+
+ def DOMStringArrayType():
+ return 'DOMString[]'
+
+ # Extended Attributes:
+ def ExtAttrs():
+ return ['[', MAYBE(MANY(ExtAttr, ',')), ']']
+
+ def ExtAttr():
+ return [Id, MAYBE(OR(['=', ExtAttrValue], ExtAttrArgList))]
+
+ def ExtAttrValue():
+ return OR(ExtAttrFunctionValue, re.compile(r'[\w&0-9:\-\|]+'))
+
+ def ExtAttrFunctionValue():
+ return [Id, ExtAttrArgList]
+
+ def ExtAttrArgList():
+ return ['(', MAYBE(MANY(Argument, ',')), ')']
+
+ # Annotations - used in the FremontCut IDL grammar:
+ def _Annotations():
+ return MANY(Annotation)
+
+ def Annotation():
+ return ['@', Id, MAYBE(_AnnotationBody)]
+
+ def _AnnotationBody():
+ return ['(', MAYBE(MANY(AnnotationArg, ',')), ')']
+
+ def AnnotationArg():
+ return [Id, MAYBE(['=', AnnotationArgValue])]
+
+ def AnnotationArgValue():
+ return re.compile(r'[\w&0-9:/\-\.]+')
+
+ ###################### END GRAMMAR #####################
+
+ # Return the grammar's root rule:
+ return MANY(_Definition)
+
+ def _whitespace_grammar(self):
+ return OR(re.compile(r'\s+'),
+ re.compile(r'//.*'),
+ re.compile(r'#.*'),
+ re.compile(r'/\*.*?\*/', re.S))
+
+ def _pre_process(self, content, defines, includePaths):
+ """Pre-processes the content using gcc.
+
+ WebKit IDLs require pre-processing by gcc. This is done by invoking
+ gcc in a sub-process and capturing the results.
+
+ Returns:
+ The result of running gcc on the content.
+
+ Args:
+ content -- text to process.
+ defines -- an array of pre-processor defines.
+ includePaths -- an array of path strings.
+ """
+ # FIXME: Handle gcc not found, or any other processing errors
+ gcc = 'gcc'
+ cmd = [gcc, '-E', '-P', '-C', '-x', 'c++'];
+ for define in defines:
+ cmd.append('-D%s' % define)
+ cmd.append('-')
+ pipe = subprocess.Popen(cmd, stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ (content, stderr) = pipe.communicate(content)
+ return content
+
+ def parse(self, content, defines=[], includePaths=[]):
+ """Parse the give content string.
+
+ The WebKit IDL syntax also allows gcc pre-processing instructions.
+ Lists of defined variables and include paths can be provided.
+
+ Returns:
+ An abstract syntax tree (AST).
+
+ Args:
+ content -- text to parse.
+ defines -- an array of pre-processor defines.
+ includePaths -- an array of path strings used by the
+ gcc pre-processor.
+ """
+ if self._syntax == WEBKIT_SYNTAX:
+ content = self._pre_process(content, defines, includePaths)
+
+ return self._pegparser.parse(content)
diff --git a/elemental/idl/scripts/idlparser_test.dart b/elemental/idl/scripts/idlparser_test.dart
new file mode 100644
index 0000000..3ef11f3
--- /dev/null
+++ b/elemental/idl/scripts/idlparser_test.dart
@@ -0,0 +1,116 @@
+// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#library('idlparser_test');
+#import('../../../utils/peg/pegparser.dart');
+#source('idlparser.dart');
+#source('idlrenderer.dart');
+
+main() {
+ IDLParser parser = new IDLParser(FREMONTCUT_SYNTAX);
+ Grammar g = parser.grammar;
+
+ var Type = g['Type'];
+
+ show(g, Type, 'int');
+ show(g, Type, 'int ?');
+ show(g, Type, 'sequence<int?> ?');
+ show(g, Type, 'unsigned long long?');
+ show(g, Type, 'unsignedlonglong?');
+
+
+ var MaybeAnnotations = g['MaybeAnnotations'];
+
+ show(g, MaybeAnnotations, '');
+ show(g, MaybeAnnotations, '@Foo');
+ show(g, MaybeAnnotations, '@Foo @Bar');
+ show(g, MaybeAnnotations, '@Foo(A,B=1) @Bar');
+
+ var MaybeExtAttrs = g['MaybeExtAttrs'];
+ print(MaybeExtAttrs);
+
+ show(g, MaybeExtAttrs, '');
+ show(g, MaybeExtAttrs, '[A]');
+
+ var Module = g['Module'];
+
+ show(g, Module, 'module Harry { const int bob = 30;};');
+ show(g, Module, """
+module Harry { [X,Y,Z=99] const int bob = 30; typedef x y;
+
+ interface Thing : SuperA, @Friendly SuperB {
+
+ [Nice] const unsigned long long kFoo = 12345;
+ [A,B,C,D,E] attribute int attr1;
+ [F=f(int a),K=99,DartName=Bert] int smudge(int a, int b, double x);
+
+ [X,Y,Z] int xyz([U,V] optional in optional int z);
+ [P,Q,R] int pqr();
+ int op1();
+ @Smurf @Beans(B=1,C,A=2) int op2();
+
+ snippet { yadda
+ yadda
+ };
+ };
+
+//[A] const unsigned long long dweeb = 0xff;
+
+};
+""");
+}
+
+
+
+show(grammar, rule, input) {
+ print('show: "$input"');
+ var ast;
+ try {
+ ast = grammar.parse(rule, input);
+ } catch (var exception) {
+ if (exception is ParseError)
+ ast = exception;
+ else
+ throw;
+ }
+ print('${printList(ast)}');
+ print(render(ast));
+}
+
+void check(grammar, rule, input, expected) {
+ // If [expected] is String then the result is coerced to string.
+ // If [expected] is !String, the result is compared directly.
+ print('check: "$input"');
+ var ast;
+ try {
+ ast = grammar.parse(rule, input);
+ } catch (var exception) {
+ ast = exception;
+ }
+
+ var formatted = ast;
+ if (expected is String)
+ formatted = printList(ast);
+
+ Expect.equals(expected, formatted, "parse: $input");
+}
+
+// Prints the list in [1,2,3] notation, including nested lists.
+void printList(item) {
+ if (item is List) {
+ StringBuffer sb = new StringBuffer();
+ sb.add('[');
+ var sep = '';
+ for (var x in item) {
+ sb.add(sep);
+ sb.add(printList(x));
+ sep = ',';
+ }
+ sb.add(']');
+ return sb.toString();
+ }
+ if (item == null)
+ return 'null';
+ return item.toString();
+}
diff --git a/elemental/idl/scripts/idlparser_test.py b/elemental/idl/scripts/idlparser_test.py
new file mode 100755
index 0000000..7155da7
--- /dev/null
+++ b/elemental/idl/scripts/idlparser_test.py
@@ -0,0 +1,159 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import idlparser
+import logging.config
+import sys
+import unittest
+
+
+class IDLParserTestCase(unittest.TestCase):
+
+ def _run_test(self, syntax, content, expected):
+ """Utility for running a IDL parsing tests and comparing results.
+
+ Program exits (sys.exit) if expected does not match actual.
+
+ Args:
+ syntax -- IDL grammar to use (either idlparser.WEBKIT_SYNTAX,
+ WEBIDL_SYNTAX or FREMONTCUT_SYNTAX). If None, will run
+ multiple tests, each with a different syntax.
+ content -- input text for the parser.
+ expected -- expected parse result.
+ """
+
+ all_syntaxes = {idlparser.WEBIDL_SYNTAX: 'Web IDL',
+ idlparser.WEBKIT_SYNTAX: 'WebKit',
+ idlparser.FREMONTCUT_SYNTAX: 'FremontCut'}
+
+ if syntax is None:
+ for syntax in all_syntaxes:
+ self._run_test(syntax, content, expected)
+ return
+
+ if syntax not in all_syntaxes:
+ raise RuntimeError('Unexpected syntax %s' % syntax)
+
+ actual = None
+ error = None
+ try:
+ parser = idlparser.IDLParser(syntax)
+ actual = parser.parse(content)
+ except SyntaxError, e:
+ error = e
+ pass
+ if actual != expected:
+ self.fail('''
+SYNTAX : %s
+CONTENT :
+%s
+EXPECTED:
+%s
+ACTUAL :
+%s
+ERROR : %s''' % (all_syntaxes[syntax], content, expected, actual, error))
+
+ def test_empty_module(self):
+ self._run_test(
+ None,
+ 'module M {};',
+ [('Module', [('Id', 'M')])])
+
+ def test_empty_interface(self):
+ self._run_test(
+ None,
+ 'interface I {};',
+ [('Interface', [('Id', 'I')])])
+
+ def test_module_with_empty_interface(self):
+ self._run_test(
+ None,
+ 'module M { interface I {}; };',
+ [('Module', [('Id', 'M'), ('Interface', [('Id', 'I')])])])
+
+ # testing the gcc pre-processing
+ def test_gcc_preprocessing(self):
+ self._run_test(
+ idlparser.WEBKIT_SYNTAX,
+ '''
+ #if 1
+ module M1 {};
+ #endif
+ #if 0
+ module M2 {};
+ #endif
+ ''',
+ [('Module', [('Id', 'M1')])])
+
+ def test_attribute_with_exceptoins(self):
+ self._run_test(
+ idlparser.WEBKIT_SYNTAX,
+ '''interface I {
+ attribute boolean A setter raises (E), getter raises (E);
+ };''',
+ [('Interface', [('Id', 'I'), ('Attribute', [('Type', [('BooleanType', None)]), ('Id', 'A'), ('SetRaises', [('ScopedName', 'E')]), ('GetRaises', [('ScopedName', 'E')])])])])
+
+ def test_interface_with_extended_attributes(self):
+ self._run_test(
+ idlparser.WEBKIT_SYNTAX,
+ 'interface [ExAt1, ExAt2] I {};',
+ [('Interface', [('ExtAttrs', [('ExtAttr', [('Id', 'ExAt1')]), ('ExtAttr', [('Id', 'ExAt2')])]), ('Id', 'I')])])
+
+ def test_implements_statement(self):
+ self._run_test(
+ idlparser.WEBIDL_SYNTAX,
+ 'X implements Y;',
+ [('ImplStmt', [('ImplStmtImplementor', ('ScopedName', 'X')), ('ImplStmtImplemented', ('ScopedName', 'Y'))])])
+
+ def test_operation(self):
+ self._run_test(
+ None,
+ 'interface I { boolean func(); };',
+ [('Interface', [('Id', 'I'), ('Operation', [('ReturnType', [('BooleanType', None)]), ('Id', 'func')])])])
+
+ def test_attribute_types(self):
+ self._run_test(
+ None,
+ '''interface I {
+ attribute boolean boolAttr;
+ attribute DOMString strAttr;
+ attribute SomeType someAttr;
+ };''',
+ [('Interface', [('Id', 'I'), ('Attribute', [('Type', [('BooleanType', None)]), ('Id', 'boolAttr')]), ('Attribute', [('Type', [('ScopedName', 'DOMString')]), ('Id', 'strAttr')]), ('Attribute', [('Type', [('ScopedName', 'SomeType')]), ('Id', 'someAttr')])])])
+
+ def test_constants(self):
+ self._run_test(
+ None,
+ '''interface I {
+ const long c1 = 0;
+ const long c2 = 1;
+ const long c3 = 0x01;
+ const long c4 = 10;
+ const boolean b1 = true;
+ const boolean b1 = false;
+ };''',
+ [('Interface', [('Id', 'I'), ('Const', [('Type', [('LongType', None)]), ('Id', 'c1'), ('ConstExpr', '0')]), ('Const', [('Type', [('LongType', None)]), ('Id', 'c2'), ('ConstExpr', '1')]), ('Const', [('Type', [('LongType', None)]), ('Id', 'c3'), ('ConstExpr', '0x01')]), ('Const', [('Type', [('LongType', None)]), ('Id', 'c4'), ('ConstExpr', '10')]), ('Const', [('Type', [('BooleanType', None)]), ('Id', 'b1'), ('ConstExpr', 'true')]), ('Const', [('Type', [('BooleanType', None)]), ('Id', 'b1'), ('ConstExpr', 'false')])])])
+
+ def test_inheritance(self):
+ self._run_test(
+ None,
+ '''
+ interface Shape {};
+ interface Rectangle : Shape {};
+ interface Square : Rectangle, Shape {};
+ ''',
+ [('Interface', [('Id', 'Shape')]), ('Interface', [('Id', 'Rectangle'), ('ParentInterface', [('InterfaceType', ('ScopedName', 'Shape'))])]), ('Interface', [('Id', 'Square'), ('ParentInterface', [('InterfaceType', ('ScopedName', 'Rectangle'))]), ('ParentInterface', [('InterfaceType', ('ScopedName', 'Shape'))])])])
+
+ def test_annotations(self):
+ self._run_test(
+ idlparser.FREMONTCUT_SYNTAX,
+ '@Ano1 @Ano2() @Ano3(x) @Ano4(x=1,y=2) interface I {};',
+ [('Interface', [('Annotation', [('Id', 'Ano1')]), ('Annotation', [('Id', 'Ano2')]), ('Annotation', [('Id', 'Ano3'), ('AnnotationArg', [('Id', 'x')])]), ('Annotation', [('Id', 'Ano4'), ('AnnotationArg', [('Id', 'x'), ('AnnotationArgValue', '1')]), ('AnnotationArg', [('Id', 'y'), ('AnnotationArgValue', '2')])]), ('Id', 'I')])])
+
+
+if __name__ == "__main__":
+ logging.config.fileConfig("logging.conf")
+ if __name__ == '__main__':
+ unittest.main()
diff --git a/elemental/idl/scripts/idlrenderer.dart b/elemental/idl/scripts/idlrenderer.dart
new file mode 100644
index 0000000..e62c4a7
--- /dev/null
+++ b/elemental/idl/scripts/idlrenderer.dart
@@ -0,0 +1,180 @@
+// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+List sorted(Iterable input, [compare, key]) {
+ comparator(compare, key) {
+ if (compare == null && key == null)
+ return (a, b) => a.compareTo(b);
+ if (compare == null)
+ return (a, b) => key(a).compareTo(key(b));
+ if (key == null)
+ return compare;
+ return (a, b) => compare(key(a), key(b));
+ }
+ List copy = new List.from(input);
+ copy.sort(comparator(compare, key));
+ return copy;
+}
+
+render(idl_node, [indent_str=' ']) {
+ var output = [''];
+ var indent_stack = [];
+
+ indented(action) { // TODO: revert to indented(action()) {
+ indent_stack.add(indent_str);
+ action();
+ indent_stack.removeLast();
+ }
+
+ sort(nodes) => sorted(nodes, key: (a) => a.id);
+
+ var w; // For some reason mutually recursive local functions don't work.
+
+ wln([node]) {
+ w(node);
+ output.add('\n');
+ }
+
+ w = (node, [list_separator]) {
+ /*
+ Writes the given node.
+
+ Args:
+ node -- a string, IDLNode instance or a list of such.
+ list_separator -- if provided, and node is a list,
+ list_separator will be written between the list items.
+ */
+ if (node == null) {
+ return;
+ } else if (node is String) {
+ if (output.last().endsWith('\n'))
+ output.addAll(indent_stack);
+ output.add(node);
+ } else if (node is List) {
+ var separator = null;
+ for (var element in node) {
+ w(separator);
+ separator = list_separator;
+ w(element);
+ }
+ } else if (node is IDLFile) {
+ w(node.modules);
+ w(node.interfaces);
+ } else if (node is IDLModule) {
+ w(node.annotations);
+ w(node.extAttrs);
+ wln('module ${node.id} {');
+ indented(() {
+ w(node.interfaces);
+ w(node.typedefs);
+ });
+ wln('};');
+ } else if (node is IDLInterface) {
+ w(node.annotations);
+ w(node.extAttrs);
+ w('interface ${node.id}');
+ indented(() {
+ if (!node.parents.isEmpty()) {
+ wln(' :');
+ w(node.parents, ',\n');
+ }
+ wln(' {');
+ section(list, comment) {
+ if (list != null && !list.isEmpty()) {
+ wln();
+ wln(comment);
+ w(sort(list));
+ }
+ }
+ section(node.constants, '/* Constants */');
+ section(node.attributes, '/* Attributes */');
+ section(node.operations, '/* Operations */');
+ section(node.snippets, '/* Snippets */');
+ });
+ wln('};');
+ } else if (node is IDLParentInterface) {
+ w(node.annotations);
+ w(node.type.id);
+ } else if (node is IDLAnnotations) {
+ for (var name in sorted(node.map.getKeys())) {
+ IDLAnnotation annotation = node.map[name];
+ var args = annotation.map;
+ if (args.isEmpty()) {
+ w('@$name');
+ } else {
+ var formattedArgs = [];
+ for (var argName in sorted(args.getKeys())) {
+ var argValue = args[argName];
+ if (argValue == null)
+ formattedArgs.add(argName);
+ else
+ formattedArgs.add('$argName=$argValue');
+ }
+ w('@$name(${Strings.join(formattedArgs,',')})');
+ }
+ w(' ');
+ }
+ } else if (node is IDLExtAttrs) {
+ if(!node.map.isEmpty()) {
+ w('[');
+ var sep = null;
+ for (var name in sorted(node.map.getKeys())) {
+ w(sep);
+ sep = ', ';
+ w(name);
+ var value = node.map[name];
+ if (value != null) {
+ w('=');
+ w(value);
+ }
+ }
+ w('] ');
+ }
+ } else if (node is IDLAttribute) {
+ w(node.annotations);
+ w(node.extAttrs);
+ //if (node.isFcGetter)
+ // w('getter ');
+ //if (node.isFcSetter)
+ // w('setter ');
+ wln('attribute ${node.type.id} ${node.id};');
+ } else if (node is IDLConstant) {
+ w(node.annotations);
+ w(node.extAttrs);
+ wln('const ${node.type.id} ${node.id} = ${node.value};');
+ } else if (node is IDLSnippet) {
+ w(node.annotations);
+ wln('snippet {${node.text}};');
+ } else if (node is IDLOperation) {
+ w(node.annotations);
+ w(node.extAttrs);
+ if (node.specials != null && !node.specials.isEmpty()) {
+ w(node.specials, ' ');
+ w(' ');
+ }
+ w('${node.type.id} ${node.id}');
+ w('(');
+ w(node.arguments, ', ');
+ wln(');');
+ } else if (node is IDLArgument) {
+ w(node.extAttrs);
+ w('in ');
+ if (node.isOptional)
+ w('optional ');
+ w('${node.type.id} ${node.id}');
+ } else if (node is IDLExtAttrFunctionValue) {
+ w(node.name);
+ w('(');
+ w(node.arguments, ', ');
+ w(')');
+ } else if (node is IDLTypeDef) {
+ wln('typedef ${node.type.id} ${node.id};');
+ } else {
+ w('// $node\n');
+ }
+ };
+
+ w(idl_node);
+ return Strings.concatAll(output);
+}
diff --git a/elemental/idl/scripts/idlrenderer.py b/elemental/idl/scripts/idlrenderer.py
new file mode 100755
index 0000000..131a476
--- /dev/null
+++ b/elemental/idl/scripts/idlrenderer.py
@@ -0,0 +1,180 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+from idlnode import *
+
+
+def render(idl_node, indent_str=' '):
+ output = []
+ indent_stack = []
+
+ def begin_indent():
+ indent_stack.append(indent_str)
+ def end_indent():
+ indent_stack.pop()
+
+ def sort(nodes):
+ return sorted(nodes, key=lambda node: node.id)
+
+ def wln(node=None):
+ """Writes the given node and adds a new line."""
+ w(node)
+ output.append('\n')
+
+ def wsp(node):
+ """Writes the given node and adds a space if there was output."""
+ mark = len(output)
+ w(node)
+ if mark != len(output):
+ w(' ')
+
+ def w(node, list_separator=None):
+ """Writes the given node.
+
+ Args:
+ node -- a string, IDLNode instance or a list of such.
+ list_separator -- if provided, and node is a list,
+ list_separator will be written between the list items.
+ """
+ if node is None:
+ return
+ elif isinstance(node, str):
+ if output and output[-1].endswith('\n'):
+ # Auto-indent.
+ output.extend(indent_stack)
+ output.append(node)
+ elif isinstance(node, list):
+ for i in range(0, len(node)):
+ if i > 0:
+ w(list_separator)
+ w(node[i])
+ elif isinstance(node, IDLFile):
+ w(node.modules)
+ w(node.interfaces)
+ elif isinstance(node, IDLModule):
+ wsp(node.annotations)
+ wsp(node.ext_attrs)
+ wln('module %s {' % node.id)
+ begin_indent()
+ w(node.interfaces)
+ w(node.typeDefs)
+ end_indent()
+ wln('};')
+ elif isinstance(node, IDLInterface):
+ if node.annotations:
+ wln(node.annotations)
+ if node.ext_attrs:
+ wln(node.ext_attrs)
+ w('interface %s' % node.id)
+ begin_indent()
+ begin_indent()
+ if node.parents:
+ wln(' :')
+ w(node.parents, ',\n')
+ wln(' {')
+ end_indent()
+ if node.constants:
+ wln()
+ wln('/* Constants */')
+ w(sort(node.constants))
+ if node.attributes:
+ wln()
+ wln('/* Attributes */')
+ w(sort(node.attributes))
+ if node.operations:
+ wln()
+ wln('/* Operations */')
+ w(sort(node.operations))
+ end_indent()
+ wln('};')
+ elif isinstance(node, IDLParentInterface):
+ wsp(node.annotations)
+ w(node.type.id)
+ elif isinstance(node, IDLAnnotations):
+ sep = ''
+ for (name, annotation) in sorted(node.items()):
+ w(sep)
+ sep = ' '
+ if annotation and len(annotation):
+ subRes = []
+ for (argName, argValue) in sorted(annotation.items()):
+ if argValue is None:
+ subRes.append(argName)
+ else:
+ subRes.append('%s=%s' % (argName, argValue))
+ w('@%s(%s)' % (name, ', '.join(subRes)))
+ else:
+ w('@%s' % name)
+ elif isinstance(node, IDLExtAttrs):
+ if len(node):
+ w('[')
+ i = 0
+ for k in sorted(node):
+ if i > 0:
+ w(', ')
+ w(k)
+ v = node[k]
+ if v is not None:
+ if isinstance(v, IDLExtAttrFunctionValue):
+ if v.id:
+ w('=')
+ w(v)
+ else:
+ w('=%s' % v.__str__())
+ i += 1
+ w(']')
+ elif isinstance(node, IDLExtAttrFunctionValue):
+ if node.id:
+ w(node.id)
+ w('(')
+ w(node.arguments, ', ')
+ w(')')
+ elif isinstance(node, IDLAttribute):
+ wsp(node.annotations)
+ wsp(node.ext_attrs)
+ if node.is_fc_getter:
+ w('getter ')
+ if node.is_fc_setter:
+ w('setter ')
+ w('attribute %s %s' % (node.type.id, node.id))
+ if node.raises:
+ w(' raises (%s)' % node.raises.id)
+ elif node.is_fc_getter and node.get_raises:
+ w(' getraises (%s)' % node.get_raises.id)
+ elif node.is_fc_setter and node.set_raises:
+ w(' setraises (%s)' % node.set_raises.id)
+ wln(';')
+ elif isinstance(node, IDLConstant):
+ wsp(node.annotations)
+ wsp(node.ext_attrs)
+ wln('const %s %s = %s;' % (node.type.id, node.id, node.value))
+ elif isinstance(node, IDLOperation):
+ wsp(node.annotations)
+ wsp(node.ext_attrs)
+ if node.is_static:
+ w('static ')
+ if node.specials:
+ w(node.specials, ' ')
+ w(' ')
+ w('%s ' % node.type.id)
+ w(node.id)
+ w('(')
+ w(node.arguments, ', ')
+ w(')')
+ if node.raises:
+ w(' raises (%s)' % node.raises.id)
+ wln(';')
+ elif isinstance(node, IDLArgument):
+ wsp(node.ext_attrs)
+ w('in ')
+ if node.is_optional:
+ w('optional ')
+ w('%s %s' % (node.type.id, node.id))
+ else:
+ raise TypeError("Expected str or IDLNode but %s found" %
+ type(node))
+
+ w(idl_node)
+ return ''.join(output)
diff --git a/elemental/idl/scripts/idlrenderer_test.py b/elemental/idl/scripts/idlrenderer_test.py
new file mode 100755
index 0000000..ba788af
--- /dev/null
+++ b/elemental/idl/scripts/idlrenderer_test.py
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import idlnode
+import idlparser
+import idlrenderer
+import logging.config
+import unittest
+
+
+class IDLRendererTestCase(unittest.TestCase):
+
+ def _run_test(self, input_text, expected_text):
+ """Parses input, renders it and compares the results"""
+ parser = idlparser.IDLParser(idlparser.FREMONTCUT_SYNTAX)
+ idl_file = idlnode.IDLFile(parser.parse(input_text))
+ output_text = idlrenderer.render(idl_file)
+
+ if output_text != expected_text:
+ msg = '''
+EXPECTED:
+%s
+ACTUAL :
+%s
+''' % (expected_text, output_text)
+ self.fail(msg)
+
+ def test_rendering(self):
+ input_text = \
+'''module M {
+ [Constructor(long x)] interface I : @A J, K {
+ attribute int attr;
+ readonly attribute long attr2;
+ getter attribute int get_attr;
+ setter attribute int set_attr;
+
+ [A,B=123] void function(in long x, in optional boolean y);
+
+ const boolean CONST = 1;
+
+ @A @B() @C(x) @D(x=1) @E(x,y=2)
+ void something();
+ };
+};
+@X module M2 {
+ @Y interface I {};
+};'''
+
+ expected_text = \
+'''module M {
+ [Constructor(in long x)]
+ interface I :
+ @A J,
+ K {
+
+ /* Constants */
+ const boolean CONST = 1;
+
+ /* Attributes */
+ attribute int attr;
+ attribute long attr2;
+ getter attribute int get_attr;
+ setter attribute int set_attr;
+
+ /* Operations */
+ [A, B=123] void function(in long x, in optional boolean y);
+ @A @B @C(x) @D(x=1) @E(x, y=2) void something();
+ };
+};
+@X module M2 {
+ @Y
+ interface I {
+ };
+};
+'''
+ self._run_test(input_text, expected_text)
+
+if __name__ == "__main__":
+ logging.config.fileConfig("logging.conf")
+ if __name__ == '__main__':
+ unittest.main()
diff --git a/elemental/idl/scripts/idlsync.py b/elemental/idl/scripts/idlsync.py
new file mode 100755
index 0000000..930698f
--- /dev/null
+++ b/elemental/idl/scripts/idlsync.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import optparse
+import os
+import os.path
+import re
+import shutil
+import subprocess
+import sys
+
+SCRIPT_PATH = os.path.abspath(os.path.dirname(__file__))
+DART_PATH = os.path.abspath(os.path.join(SCRIPT_PATH, '..', '..', '..'))
+
+# Path to install latest IDL.
+IDL_PATH = os.path.join(DART_PATH, 'third_party', 'WebCore')
+
+# Whitelist of files to keep.
+WHITELIST = [
+ r'LICENSE(\S+)',
+ r'(\S+)\.idl']
+
+# README file to generate.
+README = os.path.join(IDL_PATH, 'README')
+
+# SVN URL to latest Dartium version of WebKit.
+DEPS = 'http://dart.googlecode.com/svn/branches/bleeding_edge/deps/dartium.deps/DEPS'
+URL_PATTERN = r'"dartium_webkit_trunk": "(\S+)",'
+REV_PATTERN = r'"dartium_webkit_revision": "(\d+)",'
+WEBCORE_SUBPATH = 'Source/WebCore'
+
+
+def RunCommand(cmd):
+ """Executes a shell command and return its stdout."""
+ print ' '.join(cmd)
+ pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ output = pipe.communicate()
+ if pipe.returncode == 0:
+ return output[0]
+ else:
+ print output[1]
+ print 'FAILED. RET_CODE=%d' % pipe.returncode
+ sys.exit(pipe.returncode)
+
+
+def GetWebkitSvnRevision():
+ """Returns a tuple with the (dartium webkit repo, latest revision)."""
+ deps = RunCommand(['svn', 'cat', DEPS])
+ url = re.search(URL_PATTERN, deps).group(1)
+ revision = re.search(REV_PATTERN, deps).group(1)
+ return (url, revision)
+
+
+def RefreshIDL(url, revision):
+ """Refreshes the IDL to specific WebKit url / revision."""
+ cwd = os.getcwd()
+ try:
+ shutil.rmtree(IDL_PATH)
+ os.chdir(os.path.dirname(IDL_PATH))
+ RunCommand(['svn', 'export', '-r', revision, url + '/' + WEBCORE_SUBPATH])
+ finally:
+ os.chdir(cwd)
+
+
+def PruneExtraFiles():
+ """Removes all files that do not match the whitelist."""
+ pattern = re.compile(reduce(lambda x,y: '%s|%s' % (x,y),
+ map(lambda z: '(%s)' % z, WHITELIST)))
+ for (root, dirs, files) in os.walk(IDL_PATH, topdown=False):
+ for f in files:
+ if not pattern.match(f):
+ os.remove(os.path.join(root, f))
+ for d in dirs:
+ dirpath = os.path.join(root, d)
+ if not os.listdir(dirpath):
+ shutil.rmtree(dirpath)
+
+
+def ParseOptions():
+ parser = optparse.OptionParser()
+ parser.add_option('--revision', '-r', dest='revision',
+ help='Revision to install', default=None)
+ args, _ = parser.parse_args()
+ return args.revision
+
+
+def GenerateReadme(url, revision):
+ readme = """This directory contains a copy of WebKit/WebCore IDL files.
+See the attached LICENSE-* files in this directory.
+
+Please do not modify the files here. They are periodically copied
+using the script: $DART_ROOT/lib/dom/scripts/%(script)s
+
+The current version corresponds to:
+URL: %(url)s
+Current revision: %(revision)s
+""" % {
+ 'script': os.path.basename(__file__),
+ 'url': url,
+ 'revision': revision }
+ out = open(README, 'w')
+ out.write(readme)
+ out.close()
+
+
+def main():
+ revision = ParseOptions()
+ url, latest = GetWebkitSvnRevision()
+ if not revision:
+ revision = latest
+ RefreshIDL(url, revision)
+ PruneExtraFiles()
+ GenerateReadme(url, revision)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/elemental/idl/scripts/logging.conf b/elemental/idl/scripts/logging.conf
new file mode 100644
index 0000000..99e2496
--- /dev/null
+++ b/elemental/idl/scripts/logging.conf
@@ -0,0 +1,64 @@
+[loggers]
+keys=root,pegparser,database,databasebuilder,dartgenerator,elementalgenerator,snippet_manager,w3cscraper
+
+[handlers]
+keys=consoleHandler
+
+[formatters]
+keys=simpleFormatter
+
+[logger_root]
+level=INFO
+handlers=consoleHandler
+
+[logger_pegparser]
+level=INFO
+propagate=0
+handlers=consoleHandler
+qualname=pegparser
+
+[logger_database]
+level=INFO
+propagate=0
+handlers=consoleHandler
+qualname=database
+
+[logger_databasebuilder]
+level=INFO
+propagate=0
+handlers=consoleHandler
+qualname=databasebuilder
+
+[logger_w3cscraper]
+level=INFO
+propagate=0
+handlers=consoleHandler
+qualname=w3cscraper
+
+[logger_snippet_manager]
+level=INFO
+propagate=0
+handlers=consoleHandler
+qualname=snippet_manager
+
+[logger_dartgenerator]
+level=INFO
+propagate=0
+handlers=consoleHandler
+qualname=dartgenerator
+
+[logger_elementalgenerator]
+level=INFO
+propagate=0
+handlers=consoleHandler
+qualname=elementalgenerator
+
+[handler_consoleHandler]
+class=StreamHandler
+level=INFO
+formatter=simpleFormatter
+args=(sys.stdout,)
+
+[formatter_simpleFormatter]
+format=%(name)s - %(levelname)s - %(message)s
+datefmt=
diff --git a/elemental/idl/scripts/multiemitter.py b/elemental/idl/scripts/multiemitter.py
new file mode 100644
index 0000000..19d9000
--- /dev/null
+++ b/elemental/idl/scripts/multiemitter.py
@@ -0,0 +1,85 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""Templating to help generate structured text."""
+
+import os
+import re
+import emitter
+import logging
+
+_logger = logging.getLogger('multiemitter')
+
+class MultiEmitter(object):
+ """A set of Emitters that write to different files.
+
+ Each entry has a key.
+
+ file --> emitter
+ key --> emitter
+
+ """
+
+ def __init__(self):
+ self._key_to_emitter = {} # key -> Emitter
+ self._filename_to_emitter = {} # filename -> Emitter
+
+
+ def FileEmitter(self, filename, key=None):
+ """Creates an emitter for writing to a file.
+
+ When this MultiEmitter is flushed, the contents of the emitter are written
+ to the file.
+
+ Arguments:
+ filename: a string, the path name of the file
+ key: provides an access key to retrieve the emitter.
+
+ Returns: the emitter.
+ """
+ e = emitter.Emitter()
+ self._filename_to_emitter[filename] = e
+ if key:
+ self.Associate(key, e)
+ return e
+
+ def Associate(self, key, emitter):
+ """Associates a key with an emitter."""
+ self._key_to_emitter[key] = emitter
+
+ def Find(self, key):
+ """Returns the emitter associated with |key|."""
+ return self._key_to_emitter[key]
+
+ def Flush(self, writer=None):
+ """Writes all pending files.
+
+ Arguments:
+ writer: a function called for each file and it's lines.
+ """
+ if not writer:
+ writer = _WriteFile
+ for file in sorted(self._filename_to_emitter.keys()):
+ emitter = self._filename_to_emitter[file]
+ writer(file, emitter.Fragments())
+
+
+def _WriteFile(path, lines):
+ (dir, file) = os.path.split(path)
+
+ # Ensure dir exists.
+ if dir:
+ if not os.path.isdir(dir):
+ os.makedirs(dir)
+
+ # Remove file if pre-existing.
+ if os.path.exists(path):
+ os.remove(path)
+
+ # Write the file.
+ # _logger.info('Flushing - %s' % path)
+ f = open(path, 'w')
+ f.writelines(lines)
+ f.close()
diff --git a/elemental/idl/scripts/multiemitter_test.py b/elemental/idl/scripts/multiemitter_test.py
new file mode 100644
index 0000000..00a28b7
--- /dev/null
+++ b/elemental/idl/scripts/multiemitter_test.py
@@ -0,0 +1,47 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""Tests for emitter module."""
+
+import logging.config
+import unittest
+import emitter
+import multiemitter
+
+
+class MultiEmitterTestCase(unittest.TestCase):
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def check(self, m, expected):
+ """Verifies that the multiemitter contains the expected contents.
+
+ Expected is a list of (filename, content) pairs, sorted by filename.
+ """
+ files = []
+ def _Collect(file, contents):
+ files.append((file, ''.join(contents)))
+ m.Flush(_Collect)
+ self.assertEquals(expected, files)
+
+ def testExample(self):
+ m = multiemitter.MultiEmitter()
+ e1 = m.FileEmitter('file1')
+ e2 = m.FileEmitter('file2', 'key2')
+ e1.Emit('Hi 1')
+ e2.Emit('Hi 2')
+ m.Find('key2').Emit('Bye 2')
+ self.check(m,
+ [('file1', 'Hi 1'),
+ ('file2', 'Hi 2Bye 2') ])
+
+if __name__ == '__main__':
+ logging.config.fileConfig('logging.conf')
+ if __name__ == '__main__':
+ unittest.main()
diff --git a/elemental/idl/scripts/pegparser.py b/elemental/idl/scripts/pegparser.py
new file mode 100755
index 0000000..ffc12cc
--- /dev/null
+++ b/elemental/idl/scripts/pegparser.py
@@ -0,0 +1,527 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import logging
+import re
+import weakref
+
+_logger = logging.getLogger('pegparser')
+
+# functions can refer to each other, hence creating infinite loops. The
+# following hashmap is used to memoize functions that were already compiled.
+_compiled_functions_memory = weakref.WeakKeyDictionary()
+
+_regex_type = type(re.compile(r''))
+_list_type = type([])
+_function_type = type(lambda func: 0)
+
+
+class _PegParserState(object):
+ """Object for storing parsing state variables and options"""
+
+ def __init__(self, text, whitespace_rule, strings_are_tokens):
+ # Parsing state:
+ self.text = text
+ self.is_whitespace_mode = False
+
+ # Error message helpers:
+ self.max_pos = None
+ self.max_rule = None
+
+ # Parsing options:
+ self.whitespace_rule = whitespace_rule
+ self.strings_are_tokens = strings_are_tokens
+
+
+class _PegParserRule(object):
+ """Base class for all rules"""
+
+ def __init__(self):
+ return
+
+ def __str__(self):
+ return self.__class__.__name__
+
+ def _match_impl(self, state, pos):
+ """Default implementation of the matching algorithm.
+ Should be overwritten by sub-classes.
+ """
+ raise RuntimeError('_match_impl not implemented')
+
+ def match(self, state, pos):
+ """Matches the rule against the text in the given position.
+
+ The actual rule evaluation is delegated to _match_impl,
+ while this function deals mostly with support tasks such as
+ skipping whitespace, debug information and data for exception.
+
+ Args:
+ state -- the current parsing state and options.
+ pos -- the current offset in the text.
+
+ Returns:
+ (next position, value) if the rule matches, or
+ (None, None) if it doesn't.
+ """
+ if not state.is_whitespace_mode:
+ # Skip whitespace
+ pos = _skip_whitespace(state, pos)
+
+ # Track position for possible error messaging
+ if pos > state.max_pos:
+ # Store position and the rule.
+ state.max_pos = pos
+ if isinstance(self, _StringRule):
+ state.max_rule = [self]
+ else:
+ state.max_rule = []
+ elif pos == state.max_pos:
+ if isinstance(self, _StringRule):
+ state.max_rule.append(self)
+
+ if _logger.isEnabledFor(logging.DEBUG):
+ # Used for debugging
+ _logger.debug('Try: pos=%s char=%s rule=%s' % \
+ (pos, state.text[pos:pos + 1], self))
+
+ # Delegate the matching logic to the the specialized function.
+ res = self._match_impl(state, pos)
+
+ if not state.is_whitespace_mode \
+ and _logger.isEnabledFor(logging.DEBUG):
+ # More debugging information
+ (nextPos, ast) = res
+ if nextPos is not None:
+ _logger.debug('Match! pos=%s char=%s rule=%s' % \
+ (pos, state.text[pos:pos + 1], self))
+ else:
+ _logger.debug('Fail. pos=%s char=%s rule=%s' % \
+ (pos, state.text[pos:pos + 1], self))
+
+ return res
+
+
+def _compile(rule):
+ """Recursively compiles user-defined rules into parser rules.
+ Compilation is performed by converting strings, regular expressions, lists
+ and functions into _StringRule, _RegExpRule, SEQUENCE and _FunctionRule
+ (respectively). Memoization is used to avoid infinite recursion as rules
+ may refer to each other."""
+ if rule is None:
+ raise RuntimeError('None is not a valid rule')
+ elif isinstance(rule, str):
+ return _StringRule(rule)
+ elif isinstance(rule, _regex_type):
+ return _RegExpRule(rule)
+ elif isinstance(rule, _list_type):
+ return SEQUENCE(*rule)
+ elif isinstance(rule, _function_type):
+ # Memoize compiled functions to avoid infinite compliation loops.
+ if rule in _compiled_functions_memory:
+ return _compiled_functions_memory[rule]
+ else:
+ compiled_function = _FunctionRule(rule)
+ _compiled_functions_memory[rule] = compiled_function
+ compiled_function._sub_rule = _compile(rule())
+ return compiled_function
+ elif isinstance(rule, _PegParserRule):
+ return rule
+ else:
+ raise RuntimeError('Invalid rule type %s: %s', (type(rule), rule))
+
+
+def _skip_whitespace(state, pos):
+ """Returns the next non-whitespace position.
+ This is done by matching the optional whitespace_rule with the current
+ text."""
+ if not state.whitespace_rule:
+ return pos
+ state.is_whitespace_mode = True
+ nextPos = pos
+ while nextPos is not None:
+ pos = nextPos
+ (nextPos, ast) = state.whitespace_rule.match(state, pos)
+ state.is_whitespace_mode = False
+ return pos
+
+
+class _StringRule(_PegParserRule):
+ """This rule tries to match a whole string."""
+
+ def __init__(self, string):
+ """Constructor.
+ Args:
+ string -- string to match.
+ """
+ _PegParserRule.__init__(self)
+ self._string = string
+
+ def __str__(self):
+ return '"%s"' % self._string
+
+ def _match_impl(self, state, pos):
+ """Tries to match the string at the current position"""
+ if state.text.startswith(self._string, pos):
+ nextPos = pos + len(self._string)
+ if state.strings_are_tokens:
+ return (nextPos, None)
+ else:
+ return (nextPos, self._string)
+ return (None, None)
+
+
+class _RegExpRule(_PegParserRule):
+ """This rule tries to matches a regular expression."""
+
+ def __init__(self, reg_exp):
+ """Constructor.
+ Args:
+ reg_exp -- a regular expression used in matching.
+ """
+ _PegParserRule.__init__(self)
+ self.reg_exp = reg_exp
+
+ def __str__(self):
+ return 'regexp'
+
+ def _match_impl(self, state, pos):
+ """Tries to match the regular expression with current text"""
+ matchObj = self.reg_exp.match(state.text, pos)
+ if matchObj:
+ matchStr = matchObj.group()
+ return (pos + len(matchStr), matchStr)
+ return (None, None)
+
+
+class _FunctionRule(_PegParserRule):
+ """Function rule wraps a rule defined via a Python function.
+
+ Defining rules via functions helps break the grammar into parts, labeling
+ the ast, and supporting recursive definitions in the grammar
+
+ Usage Example:
+ def Func(): return ['function', TOKEN('('), TOKEN(')')]
+ def Var(): return OR('x', 'y')
+ def Program(): return OR(Func, Var)
+
+ When matched with 'function()', will return the tuple:
+ ('Program', ('Func', 'function'))
+ When matched with 'x', will return the tuple:
+ ('Program', ('Var', 'x'))
+
+ Functions who's name begins with '_' will not be labelled. This is useful
+ for creating utility rules. Extending the example above:
+
+ def _Program(): return OR(Func, Var)
+
+ When matched with 'function()', will return the tuple:
+ ('Func', 'function')
+ """
+
+ def __init__(self, func):
+ """Constructor.
+ Args:
+ func -- the original function will be used for labeling output.
+ """
+ _PegParserRule.__init__(self)
+ self._func = func
+ # Sub-rule is compiled by _compile to avoid infinite recursion.
+ self._sub_rule = None
+
+ def __str__(self):
+ return self._func.__name__
+
+ def _match_impl(self, state, pos):
+ """Simply invokes the sub rule"""
+ (nextPos, ast) = self._sub_rule.match(state, pos)
+ if nextPos is not None:
+ if not self._func.__name__.startswith('_'):
+ ast = (self._func.__name__, ast)
+ return (nextPos, ast)
+ return (None, None)
+
+
+class SEQUENCE(_PegParserRule):
+ """This rule expects all given rules to match in sequence.
+ Note that SEQUENCE is equivalent to a rule composed of a Python list of
+ rules.
+ Usage example: SEQUENCE('A', 'B', 'C')
+ or: ['A', 'B', 'C']
+ Will match 'ABC' but not 'A', 'B' or ''.
+ """
+ def __init__(self, *rules):
+ """Constructor.
+ Args:
+ rules -- one or more rules to match.
+ """
+ _PegParserRule.__init__(self)
+ self._sub_rules = []
+ for rule in rules:
+ self._sub_rules.append(_compile(rule))
+
+ def _match_impl(self, state, pos):
+ """Tries to match all the sub rules"""
+ sequence = []
+ for rule in self._sub_rules:
+ (nextPos, ast) = rule.match(state, pos)
+ if nextPos is not None:
+ if ast:
+ if isinstance(ast, _list_type):
+ sequence.extend(ast)
+ else:
+ sequence.append(ast)
+ pos = nextPos
+ else:
+ return (None, None)
+ return (pos, sequence)
+
+
+class OR(_PegParserRule):
+ """This rule matches one and only one of multiple sub-rules.
+ Usage example: OR('A', 'B', 'C')
+ Will match 'A', 'B' or 'C'.
+ """
+ def __init__(self, *rules):
+ """Constructor.
+ Args:
+ rules -- rules to choose from.
+ """
+ _PegParserRule.__init__(self)
+ self._sub_rules = []
+ for rule in rules:
+ self._sub_rules.append(_compile(rule))
+
+ def _match_impl(self, state, pos):
+ """Tries to match at leat one of the sub rules"""
+ for rule in self._sub_rules:
+ (nextPos, ast) = rule.match(state, pos)
+ if nextPos is not None:
+ return (nextPos, ast)
+ return (None, None)
+
+
+class MAYBE(_PegParserRule):
+ """Will try to match the given rule, tolerating absence.
+ Usage example: MAYBE('A')
+ Will match 'A' but also ''.
+ """
+ def __init__(self, rule):
+ """Constructor.
+ Args:
+ rule -- the rule that may be absent.
+ """
+ _PegParserRule.__init__(self)
+ self._sub_rule = _compile(rule)
+
+ def _match_impl(self, state, pos):
+ """Tries to match at leat one of the sub rules"""
+ (nextPos, ast) = self._sub_rule.match(state, pos)
+ if nextPos is not None:
+ return (nextPos, ast)
+ return (pos, None)
+
+
+class MANY(_PegParserRule):
+ """Will try to match the given rule one or more times.
+ Usage example 1: MANY('A')
+ Will match 'A', 'AAAAA' but not ''.
+ Usage example 2: MANY('A', separator=',')
+ Will match 'A', 'A,A' but not 'AA'.
+ """
+
+ def __init__(self, rule, separator=None):
+ """Constructor.
+ Args:
+ rule -- the rule to match multiple times.
+ separator -- this optional rule is used to match separators.
+ """
+ _PegParserRule.__init__(self)
+ self._sub_rule = _compile(rule)
+ self._separator = _compile(separator) if separator else None
+
+ def _match_impl(self, state, pos):
+ res = []
+ count = 0
+ while True:
+ if count > 0 and self._separator:
+ (nextPos, ast) = self._separator.match(state, pos)
+ if nextPos is not None:
+ pos = nextPos
+ if ast:
+ res.append(ast)
+ else:
+ break
+ (nextPos, ast) = self._sub_rule.match(state, pos)
+ if nextPos is None:
+ break
+ count += 1
+ pos = nextPos
+ res.append(ast)
+ if count > 0:
+ return (pos, res)
+ return (None, None)
+
+
+class TOKEN(_PegParserRule):
+ """The matched rule will not appear in the the output.
+ Usage example: ['A', TOKEN('.'), 'B']
+ When matching 'A.B', will return the sequence ['A', 'B'].
+ """
+
+ def __init__(self, rule):
+ """Constructor.
+ Args:
+ rule -- the rule to match.
+ """
+ _PegParserRule.__init__(self)
+ self._sub_rule = _compile(rule)
+
+ def _match_impl(self, state, pos):
+ (nextPos, ast) = self._sub_rule.match(state, pos)
+ if nextPos is not None:
+ return (nextPos, None)
+ return (None, None)
+
+
+class LABEL(_PegParserRule):
+ """The matched rule will appear in the output with the given label.
+ Usage example: LABEL('number', re.compile(r'[0-9]+'))
+ When matched with '1234', will return ('number', '1234').
+
+ Keyword arguments:
+ label -- a string.
+ rule -- the rule to match.
+ """
+
+ def __init__(self, label, rule):
+ """Constructor.
+ Args:
+ rule -- the rule to match.
+ """
+ _PegParserRule.__init__(self)
+ self._label = label
+ self._sub_rule = _compile(rule)
+
+ def _match_impl(self, state, pos):
+ (nextPos, ast) = self._sub_rule.match(state, pos)
+ if nextPos is not None:
+ return (nextPos, (self._label, ast))
+ return (None, None)
+
+
+class RAISE(_PegParserRule):
+ """Raises a SyntaxError with a user-provided message.
+ Usage example: ['A','B', RAISE('should have not gotten here')]
+ Will not match 'A' but will raise an exception for 'AB'.
+ This rule is useful mostly for debugging grammars.
+ """
+ def __init__(self, message):
+ """Constructor.
+ Args:
+ message -- the message for the raised exception.
+ """
+ _PegParserRule.__init__(self)
+ self._message = message
+
+ def _match_impl(self, state, pos):
+ raise RuntimeError(self._message)
+
+
+class PegParser(object):
+ """PegParser class.
+ This generic parser can be configured with rules to parse a wide
+ range of inputs.
+ """
+
+ def __init__(self, root_rule, whitespace_rule=None,
+ strings_are_tokens=False):
+ """Initializes a PegParser with rules and parsing options.
+
+ Args:
+ root_rule -- the top level rule to start matching at. Rule can be
+ a regular expression, a string, or one of the special rules
+ such as SEQUENCE, MANY, OR, etc.
+ whitespace_rule -- used to identify and strip whitespace. Default
+ isNone, configuring the parser to not tolerate whitespace.
+ strings_are_tokens -- by default string rules are not treated as
+ tokens. In many programming languages, strings are tokens,
+ so this should be set to True.
+ """
+ self._strings_are_tokens = strings_are_tokens
+ self._root_rule = _compile(root_rule)
+ if whitespace_rule is None:
+ self._whitespace_rule = None
+ else:
+ self._whitespace_rule = _compile(whitespace_rule)
+
+ def parse(self, text, start_pos=0):
+ """Parses the given text input
+ Args:
+ text -- data to parse.
+ start_pos -- the offset to start parsing at.
+
+ Returns:
+ An abstract syntax tree, with nodes being pairs of the format
+ (label, value), where label is a string or a function, and value
+ is a string, a pair or a list of pairs.
+ """
+
+ def calculate_line_number_and_offset(globalOffset):
+ """Calculates the line number and in-line offset"""
+ i = 0
+ lineNumber = 1
+ lineOffset = 0
+ lineData = []
+ while i < globalOffset and i < len(text):
+ if text[i] == '\n':
+ lineNumber += 1
+ lineOffset = 0
+ lineData = []
+ else:
+ lineData.append(text[i])
+ lineOffset += 1
+ i += 1
+ while i < len(text) and text[i] != '\n':
+ lineData.append(text[i])
+ i += 1
+ return (lineNumber, lineOffset, ''.join(lineData))
+
+ def analyze_result(state, pos, ast):
+ """Analyze match output"""
+ if pos is not None:
+ # Its possible that matching is successful but trailing
+ # whitespace remains, so skip it.
+ pos = _skip_whitespace(state, pos)
+ if pos == len(state.text):
+ # End of intput reached. Success!
+ return ast
+
+ # Failure - analyze and raise an error.
+ (lineNumber, lineOffset, lineData) = \
+ calculate_line_number_and_offset(state.max_pos)
+ message = 'unexpected error'
+ if state.max_rule:
+ set = {}
+ map(set.__setitem__, state.max_rule, [])
+
+ def to_str(item):
+ return item.__str__()
+
+ expected = ' or '.join(map(to_str, set.keys()))
+ found = state.text[state.max_pos:state.max_pos + 1]
+ message = 'Expected %s but "%s" found: "%s"' % \
+ (expected, found, lineData)
+ raise SyntaxError(
+ 'At line %s offset %s: %s' % \
+ (lineNumber, lineOffset, message))
+
+ # Initialize state
+ state = _PegParserState(text,
+ whitespace_rule=self._whitespace_rule,
+ strings_are_tokens=self._strings_are_tokens)
+
+ # Match and analyze result
+ (pos, ast) = self._root_rule.match(state, start_pos)
+ return analyze_result(state, pos, ast)
diff --git a/elemental/idl/scripts/pegparser_test.py b/elemental/idl/scripts/pegparser_test.py
new file mode 100755
index 0000000..8af0f2d
--- /dev/null
+++ b/elemental/idl/scripts/pegparser_test.py
@@ -0,0 +1,200 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import logging.config
+import pprint
+import re
+import sys
+import unittest
+from pegparser import *
+
+
+class PegParserTestCase(unittest.TestCase):
+
+ def _run_test(self, grammar, text, expected,
+ strings_are_tokens=False, whitespace_rule=None):
+ """Utility for running a parser test and comparing results.
+
+ Program exits (sys.exit) if expected does not match actual.
+
+ Args:
+ grammar -- the root rule to be used by the parser.
+ text -- the text to parse.
+ expected -- the expected abstract syntax tree. None means
+ failure is expected.
+ strings_are_tokens -- whether strings are treated as tokens.
+ whitespace_rule -- the rule used for matching whitespace.
+ Default is None, which means that no whitespace is tolerated.
+ """
+ parser = PegParser(grammar, whitespace_rule,
+ strings_are_tokens=strings_are_tokens)
+ actual = None
+ error = None
+ try:
+ actual = parser.parse(text)
+ except SyntaxError, e:
+ error = e
+ pass
+
+ if actual != expected:
+ msg = '''
+CONTENT:
+%s
+EXPECTED:
+%s
+ACTUAL:
+%s
+ERROR: %s''' % (text, pprint.pformat(expected), pprint.pformat(actual), error)
+ self.fail(msg)
+
+ def test_sequence(self):
+ sequence = SEQUENCE('A', 'BB', 'C')
+ self._run_test(grammar=sequence, text='ABBC', expected=['A', 'BB', 'C'])
+ self._run_test(grammar=sequence, text='BBAC', expected=None)
+ # Syntax Sugar
+ sequence = ['A', 'BB', 'C']
+ self._run_test(grammar=sequence, text='ABBC', expected=['A', 'BB', 'C'])
+ self._run_test(grammar=sequence, text='BBAC', expected=None)
+
+ def test_regex(self):
+ regex = re.compile(r'[A-Za-z]*')
+ self._run_test(grammar=regex, text='AaBb', expected='AaBb')
+ self._run_test(grammar=regex, text='0AaBb', expected=None)
+ self._run_test(grammar=regex, text='Aa0Bb', expected=None)
+
+ def test_function(self):
+ def Func():
+ return 'ABC'
+ self._run_test(grammar=Func, text='ABC', expected=('Func', 'ABC'))
+ self._run_test(grammar=Func, text='XYZ', expected=None)
+
+ def test_function_label(self):
+ def func():
+ return 'ABC'
+
+ def _func():
+ return 'ABC'
+
+ self._run_test(grammar=func, text='ABC', expected=('func', 'ABC'))
+ self._run_test(grammar=_func, text='ABC', expected='ABC')
+
+ def test_label(self):
+ sequence = [TOKEN('def'), LABEL('funcName', re.compile(r'[a-z0-9]*')),
+ TOKEN('():')]
+ self._run_test(grammar=sequence, text='def f1():',
+ whitespace_rule=' ', expected=[('funcName', 'f1')])
+ self._run_test(grammar=sequence, text='def f2():',
+ whitespace_rule=' ', expected=[('funcName', 'f2')])
+
+ def test_or(self):
+ grammer = OR('A', 'B')
+ self._run_test(grammar=grammer, text='A', expected='A')
+ self._run_test(grammar=grammer, text='B', expected='B')
+ self._run_test(grammar=grammer, text='C', expected=None)
+
+ def test_maybe(self):
+ seq = ['A', MAYBE('B'), 'C']
+ self._run_test(grammar=seq, text='ABC', expected=['A', 'B', 'C'])
+ self._run_test(grammar=seq, text='ADC', expected=None)
+ self._run_test(grammar=seq, text='AC', expected=['A', 'C'])
+ self._run_test(grammar=seq, text='AB', expected=None)
+
+ def test_many(self):
+ seq = ['A', MANY('B'), 'C']
+ self._run_test(grammar=seq, text='ABC', expected=['A', 'B', 'C'])
+ self._run_test(grammar=seq, text='ABBBBC',
+ expected=['A', 'B', 'B', 'B', 'B', 'C'])
+ self._run_test(grammar=seq, text='AC', expected=None)
+
+ def test_many_with_separator(self):
+ letter = OR('A', 'B', 'C')
+
+ def _gram():
+ return [letter, MAYBE([TOKEN(','), _gram])]
+
+ self._run_test(grammar=_gram, text='A,B,C,B',
+ expected=['A', 'B', 'C', 'B'])
+ self._run_test(grammar=_gram, text='A B C', expected=None)
+ shortergrammar = MANY(letter, TOKEN(','))
+ self._run_test(grammar=shortergrammar, text='A,B,C,B',
+ expected=['A', 'B', 'C', 'B'])
+ self._run_test(grammar=shortergrammar, text='A B C', expected=None)
+
+ def test_raise(self):
+ self._run_test(grammar=['A', 'B'], text='AB',
+ expected=['A', 'B'])
+ try:
+ self._run_test(grammar=['A', 'B', RAISE('test')], text='AB',
+ expected=None)
+ print 'Expected RuntimeError'
+ sys.exit(-1)
+ except RuntimeError, e:
+ return
+
+ def test_whitespace(self):
+ gram = MANY('A')
+ self._run_test(grammar=gram, text='A A A', expected=None)
+ self._run_test(grammar=gram, whitespace_rule=' ', text='A A A',
+ expected=['A', 'A', 'A'])
+
+ def test_math_expression_syntax(self):
+ operator = LABEL('op', OR('+', '-', '/', '*'))
+ literal = LABEL('num', re.compile(r'[0-9]+'))
+
+ def _exp():
+ return MANY(OR(literal, [TOKEN('('), _exp, TOKEN(')')]),
+ separator=operator)
+
+ self._run_test(grammar=_exp,
+ text='(1-2)+3*((4*5)*6)+(7+8/9)-10',
+ expected=[[('num', '1'), ('op', '-'), ('num', '2')],
+ ('op', '+'),
+ ('num', '3'),
+ ('op', '*'),
+ [[('num', '4'), ('op', '*'), ('num', '5')],
+ ('op', '*'), ('num', '6')],
+ ('op', '+'),
+ [('num', '7'), ('op', '+'), ('num', '8'),
+ ('op', '/'), ('num', '9')],
+ ('op', '-'),
+ ('num', '10')])
+
+ def test_mini_language(self):
+ def name():
+ return re.compile(r'[a-z]+')
+
+ def var_decl():
+ return ['var', name, ';']
+
+ def func_invoke():
+ return [name, '(', ')', ';']
+
+ def func_body():
+ return MANY(OR(var_decl, func_invoke))
+
+ def func_decl():
+ return ['function', name, '(', ')', '{', func_body, '}']
+
+ def args():
+ return MANY(name, ',')
+
+ def program():
+ return MANY(OR(var_decl, func_decl))
+
+ self._run_test(grammar=program,
+ whitespace_rule=OR('\n', ' '),
+ strings_are_tokens=True,
+ text='var x;\nfunction f(){\n var y;\n g();\n}\n',
+ expected=('program',[
+ ('var_decl', [('name', 'x')]),
+ ('func_decl', [('name', 'f'), ('func_body', [
+ ('var_decl', [('name', 'y')]),
+ ('func_invoke', [('name', 'g')])])])]))
+
+
+if __name__ == "__main__":
+ logging.config.fileConfig("logging.conf")
+ if __name__ == '__main__':
+ unittest.main()
diff --git a/elemental/idl/scripts/systembase.py b/elemental/idl/scripts/systembase.py
new file mode 100644
index 0000000..c4304b3
--- /dev/null
+++ b/elemental/idl/scripts/systembase.py
@@ -0,0 +1,111 @@
+#!/usr/bin/python
+# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""This module provides base functionality for systems to generate
+Dart APIs from the IDL database."""
+
+import os
+#import re
+import generator
+
+def MassagePath(path):
+ # The most robust way to emit path separators is to use / always.
+ return path.replace('\\', '/')
+
+class System(object):
+ """A System generates all the files for one implementation.
+
+ This is a base class for all the specific systems.
+ The life-cycle of a System is:
+ - construction (__init__)
+ - (InterfaceGenerator | ProcessCallback)* # for each IDL interface
+ - GenerateLibraries
+ - Finish
+ """
+
+ def __init__(self, templates, database, emitters, output_dir):
+ self._templates = templates
+ self._database = database
+ self._emitters = emitters
+ self._output_dir = output_dir
+ self._dart_callback_file_paths = []
+
+ def InterfaceGenerator(self,
+ interface,
+ common_prefix,
+ super_interface_name,
+ source_filter):
+ """Returns an interface generator for |interface|.
+
+ Called once for each interface that is not a callback function.
+ """
+ return None
+
+ def ProcessCallback(self, interface, info):
+ """Processes an interface that is a callback function."""
+ pass
+
+ def GenerateLibraries(self, lib_dir):
+ pass
+
+ def Finish(self):
+ pass
+
+
+ # Helper methods used by several systems.
+
+ def _ProcessCallback(self, interface, info, file_path):
+ """Generates a typedef for the callback interface."""
+ self._dart_callback_file_paths.append(file_path)
+ code = self._emitters.FileEmitter(file_path)
+
+ code.Emit(self._templates.Load('callback.darttemplate'))
+ code.Emit('typedef $TYPE $NAME($PARAMS);\n',
+ NAME=interface.id,
+ TYPE=info.type_name,
+ PARAMS=info.ParametersImplementationDeclaration())
+
+
+ def _GenerateLibFile(self, lib_template, lib_file_path, file_paths,
+ **template_args):
+ """Generates a lib file from a template and a list of files.
+
+ Additional keyword arguments are passed to the template.
+ Typically called from self.GenerateLibraries.
+ """
+ # Load template.
+ template = self._templates.Load(lib_template)
+ # Generate the .lib file.
+ lib_file_contents = self._emitters.FileEmitter(lib_file_path)
+
+ # Emit the list of #source directives.
+ list_emitter = lib_file_contents.Emit(template, **template_args)
+ lib_file_dir = os.path.dirname(lib_file_path)
+ for path in sorted(file_paths):
+ relpath = os.path.relpath(path, lib_file_dir)
+ list_emitter.Emit("#source('$PATH');\n", PATH=MassagePath(relpath))
+
+
+ def _BaseDefines(self, interface):
+ """Returns a set of names (strings) for members defined in a base class.
+ """
+ def WalkParentChain(interface):
+ if interface.parents:
+ # Only consider primary parent, secondary parents are not on the
+ # implementation class inheritance chain.
+ parent = interface.parents[0]
+ if generator.IsDartCollectionType(parent.type.id):
+ return
+ if self._database.HasInterface(parent.type.id):
+ parent_interface = self._database.GetInterface(parent.type.id)
+ for attr in parent_interface.attributes:
+ result.add(attr.id)
+ for op in parent_interface.operations:
+ result.add(op.id)
+ WalkParentChain(parent_interface)
+
+ result = set()
+ WalkParentChain(interface)
+ return result;
diff --git a/elemental/idl/scripts/systembaseelemental.py b/elemental/idl/scripts/systembaseelemental.py
new file mode 100644
index 0000000..0258992
--- /dev/null
+++ b/elemental/idl/scripts/systembaseelemental.py
@@ -0,0 +1,146 @@
+#!/usr/bin/python
+# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""This module provides base functionality for systems to generate
+Dart APIs from the IDL database."""
+
+import os
+#import re
+from generator_java import *
+
+
+def MassagePath(path):
+ # The most robust way to emit path separators is to use / always.
+ return path.replace('\\', '/')
+
+class SystemElemental(object):
+ """A System generates all the files for one implementation.
+
+ This is a base class for all the specific systems.
+ The life-cycle of a System is:
+ - construction (__init__)
+ - (InterfaceGenerator | ProcessCallback)* # for each IDL interface
+ - GenerateLibraries
+ - Finish
+ """
+
+ def __init__(self, templates, database, emitters, output_dir):
+ self._templates = templates
+ self._database = database
+ self._emitters = emitters
+ self._output_dir = output_dir
+ self._dart_callback_file_paths = []
+
+ def InterfaceGenerator(self,
+ interface,
+ common_prefix,
+ super_interface_name,
+ source_filter):
+ """Returns an interface generator for |interface|.
+
+ Called once for each interface that is not a callback function.
+ """
+ return None
+
+ def ProcessCallback(self, interface, info):
+ """Processes an interface that is a callback function."""
+ pass
+
+ def GenerateLibraries(self, lib_dir):
+ pass
+
+ def Finish(self):
+ pass
+
+
+ # Helper methods used by several systems.
+
+ def _ProcessCallback(self, interface, info, file_path):
+ """Generates a typedef for the callback interface."""
+ self._dart_callback_file_paths.append(file_path)
+ code = self._emitters.FileEmitter(file_path)
+
+ code.Emit(self._templates.Load('callback.darttemplate'))
+ code.Emit('typedef $TYPE $NAME($PARAMS);\n',
+ NAME=interface.id,
+ TYPE=info.type_name,
+ PARAMS=info.ParametersImplementationDeclaration())
+
+
+ def _GenerateLibFile(self, lib_template, lib_file_path, file_paths,
+ **template_args):
+ """Generates a lib file from a template and a list of files.
+
+ Additional keyword arguments are passed to the template.
+ Typically called from self.GenerateLibraries.
+ """
+ # Load template.
+ template = self._templates.Load(lib_template)
+ # Generate the .lib file.
+ lib_file_contents = self._emitters.FileEmitter(lib_file_path)
+
+ # Emit the list of #source directives.
+ list_emitter = lib_file_contents.Emit(template, **template_args)
+ lib_file_dir = os.path.dirname(lib_file_path)
+ for path in sorted(file_paths):
+ relpath = os.path.relpath(path, lib_file_dir)
+ list_emitter.Emit("#source('$PATH');\n", PATH=MassagePath(relpath))
+
+
+ def _BaseDefines(self, interface):
+ """Returns a set of names (strings) for members defined in a base class.
+ """
+ def WalkParentChain(interface):
+ if interface.parents:
+ # Only consider primary parent, secondary parents are not on the
+ # implementation class inheritance chain.
+ parent = interface.parents[0]
+ if generator.IsDartCollectionType(parent.type.id):
+ return
+ if self._database.HasInterface(parent.type.id):
+ parent_interface = self._database.GetInterface(parent.type.id)
+ for attr in parent_interface.attributes:
+ result.add(attr.id)
+ for op in parent_interface.operations:
+ result.add(op.id)
+ WalkParentChain(parent_interface)
+
+ result = set()
+ WalkParentChain(interface)
+ return result;
+
+ def ProcessMixins(self, mixins):
+ """Handle interfaces which must be hoisted to a common JSO base class"""
+ self._mixins = mixins
+
+
+class ElementalBase(object):
+ def __init__(self):
+ self.reserved_keywords = []
+ self.reserved_keywords = ['continue', 'delete', 'for', 'while', 'do', 'class', 'switch', 'try', 'catch', 'finally',
+ 'int', 'float', 'short', 'double', 'char', 'byte', 'long', 'implements', 'extends', 'throws', 'case', 'if',
+ 'else', 'throw', 'instanceof', 'true', 'false', 'default', 'null', 'abstract', 'package', 'super',
+ 'public', 'protected', 'private', 'volatile', 'transient', 'final', 'synchronized', 'import', 'enum', 'boolean', 'assert']
+
+ def getImplements(self, alreadyImplemented, iface):
+ if '<' in iface.type.id:
+ return DartType(iface.type.id)
+ if iface.type.id in alreadyImplemented:
+ return
+ alreadyImplemented[iface.type.id]=1
+ piface = self._database.GetInterface(iface.type.id)
+ for parent in piface.parents:
+ self.getImplements(alreadyImplemented, parent)
+
+ def fixReservedKeyWords(self, name):
+ if name in ['continue', 'delete', 'for', 'while', 'do', 'class', 'switch', 'try', 'catch', 'finally',
+ 'int', 'float', 'short', 'double', 'char', 'byte', 'long', 'implements', 'extends', 'throws', 'case', 'if',
+ 'else', 'throw', 'instanceof', 'true', 'false', 'default', 'null', 'abstract', 'package', 'super',
+ 'public', 'protected', 'private', 'volatile', 'transient', 'final', 'synchronized', 'import', 'enum', 'boolean', 'assert']:
+ return '_' + name;
+ return name
+
+
+
diff --git a/elemental/idl/scripts/systemgwt.py b/elemental/idl/scripts/systemgwt.py
new file mode 100644
index 0000000..f05f428
--- /dev/null
+++ b/elemental/idl/scripts/systemgwt.py
@@ -0,0 +1,416 @@
+#!/usr/bin/python
+# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""This module providesfunctionality for systems to generate
+Elemental interfaces from the IDL database."""
+
+import pdb
+import os
+import json
+import systembaseelemental
+from generator_java import *
+
+
+class ElementalInterfacesSystem(systembaseelemental.SystemElemental):
+
+ def __init__(self, templates, database, emitters, output_dir):
+ super(ElementalInterfacesSystem, self).__init__(
+ templates, database, emitters, output_dir)
+ self._dart_interface_file_paths = []
+
+ def InterfaceGenerator(self,
+ interface,
+ common_prefix,
+ super_interface_name,
+ source_filter):
+ """."""
+
+ module = getModule(interface.annotations)
+ if super_interface_name is not None:
+ interface_name = super_interface_name
+ else:
+ interface_name = interface.id
+
+ dart_interface_file_path = self._FilePathForElementalInterface(module, interface_name)
+
+ self._dart_interface_file_paths.append(dart_interface_file_path)
+
+ dart_interface_code = self._emitters.FileEmitter(dart_interface_file_path)
+
+ template_file = 'java_interface_%s.darttemplate' % interface_name
+ template = self._templates.TryLoad(template_file)
+ if not template:
+ template = self._templates.Load('java_interface.darttemplate')
+
+ return ElementalInterfaceGenerator(module, self._database,
+ interface, dart_interface_code,
+ template,
+ common_prefix, super_interface_name,
+ source_filter)
+
+
+ def ProcessCallback(self, interface, info):
+ """Generates a typedef for the callback interface."""
+ interface_name = interface.id
+ module = getModule(interface.annotations)
+ file_path = self._FilePathForElementalInterface(module, interface_name)
+ self._dart_callback_file_paths.append(file_path)
+ code = self._emitters.FileEmitter(file_path)
+
+ code.Emit(self._templates.Load('javacallback.darttemplate'),
+ ID=interface.id,
+ NAME=interface.id,
+ TYPE=info.type_name,
+ PARAMS=info.ParametersImplementationDeclaration(),
+ PACKAGE='elemental.%s' % module,
+ IMPORTS='',
+ CLASSJAVADOC='')
+
+ def GenerateLibraries(self, lib_dir):
+ pass
+
+
+ def _FilePathForElementalInterface(self, module, interface_name):
+ """Returns the file path of the Dart interface definition."""
+ return os.path.join(self._output_dir, 'src', 'elemental', module,
+ '%s.java' % interface_name)
+
+def _escapeComments(text):
+ return text.replace('*/', '*/').encode('utf-8')
+
+# ------------------------------------------------------------------------------
+
+class ElementalInterfaceGenerator(systembaseelemental.ElementalBase):
+ """Generates Elemental Interface definition for one DOM IDL interface."""
+
+
+ def _GetJavaDoc(self, interface):
+ docid = interface.id
+ if docid not in self._docdatabase:
+ docid = 'HTML%s' % interface.id
+
+ if docid in self._docdatabase:
+ if 'summary' in self._docdatabase[docid]:
+ return _escapeComments(self._docdatabase[docid]['summary'])
+ return ""
+
+
+ def __init__(self, module, database, interface, emitter, template,
+ common_prefix, super_interface, source_filter):
+ """Generates Dart code for the given interface.
+
+ Args:
+ interface -- an IDLInterface instance. It is assumed that all types have
+ been converted to Dart types (e.g. int, String), unless they are in the
+ same package as the interface.
+ common_prefix -- the prefix for the common library, if any.
+ super_interface -- the name of the common interface that this interface
+ implements, if any.
+ source_filter -- if specified, rewrites the names of any superinterfaces
+ that are not from these sources to use the common prefix.
+ """
+ self._module = module
+ self._database = database
+ self._interface = interface
+ self._emitter = emitter
+ self._template = template
+ self._common_prefix = common_prefix
+ self._super_interface = super_interface
+ self._source_filter = source_filter
+
+ current_dir = os.path.dirname(__file__)
+ self._docdatabase = json.load(open(os.path.join(current_dir, '..', 'docs/database.json')))
+
+
+ def addImport(self, imports, typeid):
+ # skip primitive types that are all lowercase first letter
+ etype = DartType(typeid)
+ if '<' not in typeid and etype[0].isupper():
+ rawtype = etype.split('<')[0]
+
+ if rawtype in ['Indexable', 'Settable', 'Mappable']:
+ pmodule = 'util'
+ imports['import elemental.%s.%s;\n' % (pmodule, rawtype)]=1
+ elif etype not in java_lang and self._database.HasInterface(typeid):
+ pinterface = self._database.GetInterface(typeid)
+ pmodule = getModule(pinterface.annotations)
+ if pmodule != self._module:
+ imports['import elemental.%s.%s;\n' % (pmodule, rawtype)]=1
+
+ def StartInterface(self):
+ if self._super_interface:
+ typename = self._super_interface
+ else:
+ typename = self._interface.id
+
+
+ extends = []
+ suppressed_extends = []
+ imports = {}
+ implements_raw = {}
+
+ for attr in self._interface.attributes:
+ self.addImport(imports, attr.type.id)
+
+ for oper in self._interface.operations:
+ self.addImport(imports, oper.type.id)
+ for arg in oper.arguments:
+ self.addImport(imports, arg.type.id)
+
+
+ alreadyImplemented = {}
+ if len(self._interface.parents) > 0:
+ self.getImplements(alreadyImplemented, self._interface.parents[0])
+
+ for parent in self._interface.parents:
+ if not parent.type.id in alreadyImplemented or parent.type.id == 'ElementalMixinBase':
+ self.addImport(imports, parent.type.id)
+ # TODO(vsm): Remove source_filter.
+ rawtype = DartType(parent.type.id).split('<')[0]
+ if MatchSourceFilter(self._source_filter, parent) and DartType(parent.type.id) != 'Object' and rawtype not in implements_raw:
+ # Parent is a DOM type.
+ extends.append(DartType(parent.type.id))
+ implements_raw[rawtype]=1
+
+#TODO(cromwellian) add in Indexable/IndexableInt/IndexableNumber
+# elif '<' in parent.type.id:
+ # Parent is a Dart collection type.
+ # TODO(vsm): Make this check more robust.
+# extends.append(parent.type.id)
+# else:
+# suppressed_extends.append('%s.%s' %
+# (self._common_prefix, parent.type.id))
+
+ if self._interface.parents:
+ rawtype = DartType(self._interface.parents[0].type.id).split('<')[0]
+ if rawtype not in implements_raw:
+ extends.insert(0, DartType(self._interface.parents[0].type.id))
+ self.addImport(imports, self._interface.parents[0].type.id)
+
+
+ comment = ' extends'
+ extends_str = ''
+ if extends:
+ extends_str += ' extends ' + ', '.join(extends)
+ comment = ','
+ if suppressed_extends:
+ extends_str += ' /*%s %s */' % (comment, ', '.join(suppressed_extends))
+
+ factory_provider = None
+ constructor_info = AnalyzeConstructor(self._interface)
+
+ # TODO(vsm): Add appropriate package / namespace syntax.
+ (self._members_emitter,
+ self._top_level_emitter) = self._emitter.Emit(
+ self._template + '$!TOP_LEVEL',
+ ID=typename,
+ EXTENDS=extends_str, PACKAGE='elemental.' + self._module,
+ CLASSJAVADOC = self._GetJavaDoc(self._interface),
+ IMPORTS = ''.join(imports.keys()))
+
+# TODO(cromwellian) auto-generate factory classes?
+
+# if constructor_info:
+# self._members_emitter.Emit(
+# '\n'
+# ' $CTOR($PARAMS);\n',
+# CTOR=typename,
+# PARAMS=constructor_info.ParametersInterfaceDeclaration());
+
+# element_type = MaybeTypedArrayElementType(self._interface)
+# if element_type:
+# self._members_emitter.Emit(
+# '\n'
+# ' $CTOR(int length);\n'
+# '\n'
+# ' $CTOR.fromList(List<$TYPE> list);\n'
+# '\n'
+# ' $CTOR.fromBuffer(ArrayBuffer buffer,'
+# ' [int byteOffset, int length]);\n',
+# CTOR=self._interface.id,
+# TYPE=DartType(element_type))
+
+
+ def FinishInterface(self):
+ # TODO(vsm): Use typedef if / when that is supported in Dart.
+ # Define variant as subtype.
+ if (self._super_interface and
+ self._interface.id is not self._super_interface):
+ consts_emitter = self._top_level_emitter.Emit(
+ '\n'
+ 'interface $NAME extends $BASE {\n'
+ '$!CONSTS'
+ '}\n',
+ NAME=self._interface.id,
+ BASE=self._super_interface)
+ for const in sorted(self._interface.constants, ConstantOutputOrder):
+ self._EmitConstant(consts_emitter, const)
+ if self._interface.id == 'Document':
+ for iface in self._database.GetInterfaces():
+ if iface.id.endswith("Element"):
+ if iface.id == 'Element' or iface.id == 'SVGElement':
+ continue
+ callName = DartType(iface.id)
+ if iface.id == 'SVGSVGElement':
+ callName = 'SVGElement'
+ self._members_emitter.Emit('\n $TYPE create$CALL();\n',
+ CALL = callName,
+ TYPE=DartType(iface.id))
+
+ if self._interface.id == 'Window':
+ for iface in self._database.GetInterfaces():
+ element_type = MaybeTypedArrayElementType(iface)
+ if element_type:
+ self._members_emitter.Emit(
+ '\n'
+ ' $TYPE new$CTOR(int length);\n'
+ '\n'
+ ' $TYPE new$CTOR(IndexableNumber list);\n'
+ '\n'
+ ' $TYPE new$CTOR(ArrayBuffer buffer,'
+ ' int byteOffset, int length);\n',
+ CTOR=iface.id,
+ TYPE=iface.id)
+ constructor_info = AnalyzeConstructor(iface)
+ if constructor_info:
+ self._members_emitter.Emit(
+ '\n'
+ ' $TYPE new$CTOR($PARAMS);\n',
+ TYPE=iface.id,
+ CTOR=iface.id,
+ PARAMS=constructor_info.ParametersInterfaceDeclaration());
+
+ def AddConstant(self, constant):
+ if (not self._super_interface or
+ self._interface.id is self._super_interface):
+ self._EmitConstant(self._members_emitter, constant)
+
+ def _EmitConstant(self, emitter, constant):
+ javadoc = self.find_doc(constant.id)
+ javadoctemplate = '\n /**\n * $JAVADOC\n */\n';
+ if javadoc == '':
+ javadoctemplate = ''
+
+ emitter.Emit('%s\n static final $TYPE$NAME = $VALUE;\n' % javadoctemplate,
+ NAME=constant.id,
+ TYPE=TypeOrNothing(DartType(constant.type.id),
+ None),
+ VALUE=constant.value,
+ JAVADOC = javadoc)
+
+
+ def AddAttribute(self, getter, setter, inheritedGetter, inheritedSetter):
+ javadoc = self.find_doc(getter.id)
+ javadoctemplate = '\n /**\n * $JAVADOC\n */\n';
+ if javadoc == '':
+ javadoctemplate = ''
+
+ if getter:
+ self._members_emitter.Emit('\n%s $TYPE $NAME();\n' % javadoctemplate,
+ NAME=getterName(getter),
+ TYPE=TypeOrVar(DartType(getter.type.id),
+ getter.type.id),
+ JAVADOC=javadoc)
+
+ if setter:
+ self._members_emitter.Emit('\n void $NAME($TYPE arg);\n',
+ NAME=setterName(setter),
+ TYPE=TypeOrVar(DartType(setter.type.id),
+ setter.type.id),
+ ARG=setter.type.id)
+ return
+
+ def AddIndexer(self, element_type):
+ # Interface inherits all operations from List<element_type>.
+ pass
+
+ def AddOperation(self, info, inherited):
+ """
+ Arguments:
+ operations - contains the overloads, one or more operations with the same
+ name.
+ """
+ javadoc = self.find_doc(info.name)
+ javadoctemplate = '\n /**\n * $JAVADOC\n */\n';
+
+ if javadoc == '':
+ javadoctemplate = ''
+ get_attrs = []
+ set_attrs = []
+ for attr in self._interface.attributes:
+ get_attrs.append(getterName(attr))
+ set_attrs.append(setterName(attr))
+
+ if info.name in get_attrs or info.name in set_attrs:
+ return
+
+ return_type = info.type_name
+ if info.name == 'addEventListener':
+ return_type = 'EventRemover'
+
+ self._members_emitter.Emit('\n%s $TYPE $NAME($PARAMS);\n' % javadoctemplate,
+ TYPE=return_type,
+ NAME=self.fixReservedKeyWords(info.name),
+ PARAMS=info.ParametersInterfaceDeclaration(),
+ JAVADOC=javadoc)
+
+ def AddStaticOperation(self, info, inherited):
+ pass
+
+ # Interfaces get secondary members directly via the superinterfaces.
+ def AddSecondaryAttribute(self, interface, getter, setter):
+ pass
+
+ def AddSecondaryOperation(self, interface, attr):
+ pass
+
+ def find_doc(self, name):
+ docid = self._interface.id
+ if docid not in self._docdatabase:
+ docid = 'HTML%s' % self._interface.id
+
+ docmembers = []
+ docmember = {}
+ if docid in self._docdatabase and 'members' in self._docdatabase[docid]:
+ docmembers = self._docdatabase[docid]['members']
+ for member in docmembers:
+ if member['name'] == name:
+ docmember = member
+ if 'help' in docmember:
+ return _escapeComments(docmember['help'])
+ return ""
+
+def ucfirst(string):
+ """Upper cases the 1st character in a string"""
+ if len(string):
+ return '%s%s' % (string[0].upper(), string[1:])
+ return string
+
+def getterName(attr):
+ name = DartDomNameOfAttribute(attr)
+ if attr.type.id == 'boolean':
+ if name.startswith('is'):
+ name = name[2:]
+ return 'is%s' % ucfirst(name)
+ return 'get%s' % ucfirst(name)
+
+def setterName(attr):
+ name = DartDomNameOfAttribute(attr)
+ return 'set%s' % ucfirst(name)
+
+def getModule(annotations):
+ htmlaliases = ['audio', 'webaudio', 'inspector', 'offline', 'p2p', 'window', 'websockets', 'threads', 'view', 'storage', 'fileapi']
+
+ module = "dom"
+ if 'WebKit' in annotations and 'module' in annotations['WebKit']:
+ module = annotations['WebKit']['module']
+ if module in htmlaliases:
+ return "html"
+ if module == 'core':
+ return 'dom'
+ return module
+
+java_lang = ['Object', 'String', 'Exception', 'DOMTimeStamp', 'DOMString']
+
diff --git a/elemental/idl/scripts/systemgwtjso.py b/elemental/idl/scripts/systemgwtjso.py
new file mode 100644
index 0000000..fceeb46
--- /dev/null
+++ b/elemental/idl/scripts/systemgwtjso.py
@@ -0,0 +1,441 @@
+#!/usr/bin/python
+# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+"""This module providesfunctionality for systems to generate
+Elemental interfaces from the IDL database."""
+
+import pdb
+import os
+import json
+import systembaseelemental
+from generator_java import *
+
+
+class ElementalJsoSystem(systembaseelemental.SystemElemental):
+
+ def __init__(self, templates, database, emitters, output_dir):
+ super(ElementalJsoSystem, self).__init__(
+ templates, database, emitters, output_dir)
+ self._dart_interface_file_paths = []
+
+ def InterfaceGenerator(self,
+ interface,
+ common_prefix,
+ super_interface_name,
+ source_filter):
+ """."""
+
+ module = getModule(interface.annotations)
+ if super_interface_name is not None:
+ interface_name = super_interface_name
+ else:
+ interface_name = interface.id
+
+ template_file = 'jso_impl_%s.darttemplate' % interface_name
+ template = self._templates.TryLoad(template_file)
+ if not template:
+ template = self._templates.Load('jso_impl.darttemplate')
+
+ if interface_name in self._mixins or interface_name.endswith("Callback") or interface_name.endswith('Handler'):
+ return NullInterfaceGenerator(module, self._database,
+ interface, None,
+ template,
+ common_prefix, super_interface_name,
+ source_filter)
+
+ dart_interface_file_path = self._FilePathForElementalInterface(module, interface_name)
+
+ self._dart_interface_file_paths.append(dart_interface_file_path)
+
+ dart_interface_code = self._emitters.FileEmitter(dart_interface_file_path)
+
+ return ElementalInterfaceGenerator(module, self._database,
+ interface, dart_interface_code,
+ template,
+ common_prefix, super_interface_name,
+ source_filter, self._mixins)
+
+ def ProcessCallback(self, interface, info):
+ pass
+
+
+ def _FilePathForElementalInterface(self, module, interface_name):
+ """Returns the file path of the Dart interface definition."""
+ return os.path.join(self._output_dir, 'src', 'elemental', "js", module,
+ 'Js%s.java' % interface_name)
+
+
+# ------------------------------------------------------------------------------
+# Used to suppress generation of JSO classes that are not needed
+class NullInterfaceGenerator(systembaseelemental.ElementalBase):
+ def __init__(self, module, database, interface, emitter, template,
+ common_prefix, super_interface, source_filter):
+ pass
+
+ def StartInterface(self):
+ pass
+ def AddOperation(self, x, inherited):
+ pass
+
+ def AddIndexer(self, x):
+ pass
+
+ def AddConstant(self, x):
+ pass
+
+ def AddAttribute(self, x, y, inheritedGetter, inheritedSetter):
+ pass
+
+ def FinishInterface(self):
+ pass
+
+
+class ElementalInterfaceGenerator(systembaseelemental.ElementalBase):
+ """Generates Elemental Interface definition for one DOM IDL interface."""
+
+ def __init__(self, module, database, interface, emitter, template,
+ common_prefix, super_interface, source_filter, mixins):
+ """Generates Dart code for the given interface.
+
+ Args:
+ interface -- an IDLInterface instance. It is assumed that all types have
+ been converted to Dart types (e.g. int, String), unless they are in the
+ same package as the interface.
+ common_prefix -- the prefix for the common library, if any.
+ super_interface -- the name of the common interface that this interface
+ implements, if any.
+ source_filter -- if specified, rewrites the names of any superinterfaces
+ that are not from these sources to use the common prefix.
+ """
+ super(self.__class__, self).__init__()
+ self._module = module
+ self._database = database
+ self._interface = interface
+ self._emitter = emitter
+ self._template = template
+ self._common_prefix = common_prefix
+ self._super_interface = super_interface
+ self._source_filter = source_filter
+ self._mixins = mixins
+
+ current_dir = os.path.dirname(__file__)
+ self._docdatabase = json.load(open(os.path.join(current_dir, '..', 'docs/database.json')))
+
+
+ def addImport(self, imports, typeid):
+ # skip primitive types that are all lowercase first letter
+ etype = DartType(typeid)
+
+ if '<' not in typeid and etype[0].isupper():
+ rawtype = etype.split('<')[0]
+
+ if rawtype in ['Indexable', 'Settable', 'Mappable']:
+ pmodule = 'util'
+ imports['import elemental.js.%s.%s;\n' % (pmodule, 'Js' + rawtype)]=1
+ imports['import elemental.%s.%s;\n' % (pmodule, rawtype)]=1
+ elif etype not in java_lang and self._database.HasInterface(typeid):
+ pinterface = self._database.GetInterface(typeid)
+ pmodule = getModule(pinterface.annotations)
+ if pmodule != self._module and not rawtype.endswith("Callback") and not rawtype.endswith("Handler") and not rawtype == 'EventTarget':
+ imports['import elemental.js.%s.%s;\n' % (pmodule, 'Js' + rawtype)]=1
+ imports['import elemental.%s.%s;\n' % (pmodule, rawtype)]=1
+
+ def StartInterface(self):
+ if self._super_interface:
+ typename = self._super_interface
+ else:
+ typename = self._interface.id
+
+
+ implements = []
+ implements_raw = {}
+ extends = ''
+ suppressed_extends = []
+ imports = {}
+
+ alreadyImplemented = {}
+ for p in self._interface.parents:
+ self.getImplements(alreadyImplemented, p)
+
+ for attr in self._interface.attributes:
+ self.addImport(imports, attr.type.id)
+
+ for oper in self._interface.operations:
+ self.addImport(imports, oper.type.id)
+ for arg in oper.arguments:
+ self.addImport(imports, arg.type.id)
+
+ for parent in self._interface.parents:
+ if not parent.type.id in alreadyImplemented or parent.type.id == 'ElementalMixinBase':
+ self.addImport(imports, parent.type.id)
+ # TODO(vsm): Remove source_filter.
+ rawtype = DartType(parent.type.id).split('<')[0]
+ if rawtype == 'Object':
+ continue
+ if MatchSourceFilter(self._source_filter, parent) and DartType(parent.type.id) != 'Object' and rawtype not in implements_raw:
+ # Parent is a DOM type.
+ implements.append(DartType(parent.type.id))
+ implements_raw[rawtype]=1
+
+#TODO(cromwellian) add in Indexable/IndexableInt/IndexableNumber
+# elif '<' in parent.type.id:
+ # Parent is a Dart collection type.
+ # TODO(vsm): Make this check more robust.
+# extends.append(parent.type.id)
+# else:
+# suppressed_extends.append('%s.%s' %
+# (self._common_prefix, parent.type.id))
+
+ comment = ' extends'
+
+ implements_str = ''
+
+ # the Mixin base class is special, it extends JSO
+ if self._interface.id == 'ElementalMixinBase':
+ extends = ' extends JsElementalBase'
+ filtered_mixins = []
+ for mixin in self._mixins:
+ filtered_mixins.append(DartType(mixin))
+ implements.extend(filtered_mixins)
+ else:
+ # default, every type extends the Mixin base
+ extends = ' extends JsElementalMixinBase'
+
+ rawtype = DartType(self._interface.id).split('<')[0]
+ if rawtype not in implements_raw and rawtype != 'Object':
+ implements.insert(0, DartType(self._interface.id))
+ self.addImport(imports, self._interface.id)
+
+ # parents[0] is the implementing superclass, if exists, but not a mixin, reference its JSO impl
+ if len(self._interface.parents) > 0 and not self._interface.parents[0].type.id in self._mixins:
+ extends = ' extends Js' + DartType(self._interface.parents[0].type.id)
+ self.addImport(imports, self._interface.parents[0].type.id)
+
+ if implements:
+ implements_str += ' implements ' + ', '.join(implements)
+ comment = ','
+
+ factory_provider = None
+ constructor_info = AnalyzeConstructor(self._interface)
+
+ # TODO(vsm): Add appropriate package / namespace syntax.
+ (self._members_emitter,
+ self._top_level_emitter) = self._emitter.Emit(
+ self._template + '$!TOP_LEVEL',
+ ID='Js' + typename,
+ IMPLEMENTS=implements_str,
+ EXTENDS=extends, PACKAGE='elemental.js.' + self._module,
+ IMPORTS = ''.join(imports.keys()))
+
+# TODO(cromwellian) auto-generate factory classes?
+
+# if constructor_info:
+# self._members_emitter.Emit(
+# '\n'
+# ' $CTOR($PARAMS);\n',
+# CTOR=typename,
+# PARAMS=constructor_info.ParametersInterfaceDeclaration());
+
+# element_type = MaybeTypedArrayElementType(self._interface)
+# if element_type:
+# self._members_emitter.Emit(
+# '\n'
+# ' $CTOR(int length);\n'
+# '\n'
+# ' $CTOR.fromList(List<$TYPE> list);\n'
+# '\n'
+# ' $CTOR.fromBuffer(ArrayBuffer buffer,'
+# ' [int byteOffset, int length]);\n',
+# CTOR=self._interface.id,
+# TYPE=DartType(element_type))
+
+
+ def FinishInterface(self):
+ # add all create* method implementations to Document
+ if self._interface.id == 'Document':
+ for iface in self._database.GetInterfaces():
+ if iface.id.endswith("Element"):
+ # try to determine tag name from interface name
+ elementName = iface.id;
+ elementName = elementName[0:len(elementName) - len("Element")].lower()
+ # tablecaption -> <caption>
+ if elementName == 'tablecaption':
+ elementName = 'caption'
+ # SVG is special, it needs createElementNS, strip off prefix
+ if elementName.startswith("svg"):
+ elementName = elementName[3:]
+ # special case, SVGElement is a root class, not a createable element
+ if elementName != '':
+ callName = DartType(iface.id)
+ # SVGSVGElement -> createSVGElement with tag as <svg>
+ if elementName == 'svg':
+ callName = 'SVGElement'
+ self._members_emitter.Emit('\n public final Js$TYPE create$CALL() {\n return createSvgElement("$ELEMENT").cast();\n }\n',
+ TYPE=DartType(iface.id),
+ CALL = callName,
+ ELEMENT=elementName)
+ elif elementName != '':
+ self._members_emitter.Emit('\n public final Js$TYPE create$TYPE() {\n return createElement("$ELEMENT").cast();\n }\n',
+ TYPE=DartType(iface.id),
+ ELEMENT=elementName)
+ if self._interface.id == 'Window':
+ for iface in self._database.GetInterfaces():
+ element_type = MaybeTypedArrayElementType(iface)
+ if element_type:
+ self._members_emitter.Emit(
+ '\n'
+ ' public final native Js$TYPE new$CTOR(int length) /*-{ return new $TYPE(length); }-*/;\n'
+ '\n'
+ ' public final native Js$TYPE new$CTOR(IndexableNumber list) /*-{ return new $TYPE(list); }-*/;\n'
+ '\n'
+ ' public final native Js$TYPE new$CTOR(ArrayBuffer buffer,'
+ ' int byteOffset, int length) /*-{ return new $TYPE(buffer, byteOffset, length); }-*/;\n',
+ CTOR=iface.id,
+ TYPE=iface.id)
+ constructor_info = AnalyzeConstructor(iface)
+ if constructor_info:
+ self._members_emitter.Emit(
+ '\n'
+ ' public final native Js$TYPE new$CTOR($PARAMS) /*-{ return new $TYPE($ARGS); }-*/;\n',
+ TYPE=iface.id,
+ CTOR=iface.id,
+ PARAMS=constructor_info.ParametersInterfaceDeclaration(),
+ ARGS=constructor_info.ParametersAsArgumentList(self._database));
+
+
+ def AddConstant(self, constant):
+ pass
+
+ def AddAttribute(self, getter, setter, inheritedGetter, inheritedSetter):
+ # you can't override methods in a JSO superclass
+ if getter and not inheritedGetter:
+ if getter.type.id == 'EventListener':
+ self._members_emitter.Emit('\n public final native $TYPE $NAME() /*-{\n return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.$FIELD);\n }-*/;\n',
+ NAME=getterName(getter),
+ TYPE=TypeOrVar(DartType(getter.type.id),
+ getter.type.id),
+ FIELD=getter.id)
+ else:
+ field = 'this.$FIELD'
+ if getter.id in self.reserved_keywords:
+ field_template = "this['$FIELD']"
+ else:
+ field_template = "this.$FIELD"
+ self._members_emitter.Emit('\n public final native $TYPE $NAME() /*-{\n return %s;\n }-*/;\n' % field_template ,
+ NAME=getterName(getter),
+ TYPE=JsoTypeOrVar(DartType(getter.type.id), self._mixins),
+ FIELD=getter.id)
+ if setter and not inheritedSetter:
+ if setter.type.id == 'EventListener':
+ self._members_emitter.Emit('\n public final native void $NAME($TYPE listener) /*-{\n this.$FIELD = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);\n }-*/;',
+ NAME=setterName(setter),
+ TYPE=TypeOrVar(DartType(setter.type.id),
+ setter.type.id),
+ FIELD=setter.type.id)
+ else:
+ if setter.id in self.reserved_keywords:
+ field_template = "this['$FIELD']"
+ else:
+ field_template = "this.$FIELD"
+ self._members_emitter.Emit('\n public final native void $NAME($TYPE param_$FIELD) /*-{\n %s = param_$FIELD;\n }-*/;\n' % field_template,
+ NAME=setterName(setter),
+ TYPE=TypeOrVar(DartType(setter.type.id)),
+ FIELD=setter.id)
+
+ def AddIndexer(self, element_type):
+ # Interface inherits all operations from List<element_type>.
+ pass
+
+ def AddOperation(self, info, inherited):
+ """
+ Arguments:
+ operations - contains the overloads, one or more operations with the same
+ name.
+ """
+ # you can't override methods on a JSO superclass
+ if inherited:
+ return
+ # implemented on mixin base template (hack)
+ if info.name == 'addEventListener' or info.name == 'removeEventListener':
+ return
+
+ get_attrs = []
+ set_attrs = []
+ for attr in self._interface.attributes:
+ get_attrs.append(getterName(attr))
+ set_attrs.append('set%s' % ucfirst(attr.id))
+
+ if info.name in get_attrs or info.name in set_attrs:
+ return
+ body = ''
+ if info.type_name != 'void':
+ body += 'return '
+# if op.is_fc_deleter:
+# w('delete ')
+# if info.id is None:
+# w('this[')
+# else:
+ args = info.ParametersAsArgumentList(self._database)
+ if info.name in self.reserved_keywords:
+ body += "this['%s'](%s" % (info.name, args)
+ else:
+ body += 'this.%s(%s' % (info.name, args)
+
+
+ #if op.id is None:
+# w('];\n')
+# else:
+ body += ');'
+
+ self._members_emitter.Emit('\n public final native $TYPE $NAME($PARAMS) /*-{\n $BODY\n }-*/;\n',
+ TYPE=JsoTypeOrVar(info.type_name, self._mixins),
+ NAME=self.fixReservedKeyWords(info.name),
+ PARAMS=info.ParametersInterfaceDeclaration(),
+ BODY=body)
+
+ def AddStaticOperation(self, info, inherited):
+ pass
+
+ # Interfaces get secondary members directly via the superinterfaces.
+ def AddSecondaryAttribute(self, interface, getter, setter):
+ pass
+
+ def AddSecondaryOperation(self, interface, attr):
+ pass
+
+
+def ucfirst(string):
+ """Upper cases the 1st character in a string"""
+ if len(string):
+ return '%s%s' % (string[0].upper(), string[1:])
+ return string
+
+def getterName(attr):
+ name = DartDomNameOfAttribute(attr)
+ if attr.type.id == 'boolean':
+ if name.startswith('is'):
+ name = name[2:]
+ return 'is%s' % ucfirst(name)
+ return 'get%s' % ucfirst(name)
+
+def setterName(attr):
+ name = DartDomNameOfAttribute(attr)
+ return 'set%s' % ucfirst(name)
+
+
+def getModule(annotations):
+ htmlaliases = ['audio', 'webaudio', 'inspector', 'offline', 'p2p', 'window', 'websockets', 'threads', 'view', 'storage', 'fileapi']
+
+ module = "dom"
+ if 'WebKit' in annotations and 'module' in annotations['WebKit']:
+ module = annotations['WebKit']['module']
+ if module in htmlaliases:
+ return "html"
+ if module == 'core':
+ return 'dom'
+ return module
+
+java_lang = ['Object', 'String', 'Exception', 'DOMTimeStamp', 'DOMString']
+
diff --git a/elemental/idl/scripts/templateloader.py b/elemental/idl/scripts/templateloader.py
new file mode 100644
index 0000000..64e4a8d
--- /dev/null
+++ b/elemental/idl/scripts/templateloader.py
@@ -0,0 +1,113 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+# Template loader and preprocessor.
+#
+# Preprocessor language:
+#
+# $if VAR
+# $else
+# $endif
+#
+# VAR must be defined in the conditions dictionary.
+
+import os
+
+class TemplateLoader(object):
+ """Loads template files from a path."""
+
+ def __init__(self, root, subpaths, conditions = {}):
+ """Initializes loader.
+
+ Args:
+ root - a string, the directory under which the templates are stored.
+ subpaths - a list of strings, subpaths of root in search order.
+ conditions - a dictionay from strings to booleans. Any conditional
+ expression must be a key in the map.
+ """
+ self._root = root
+ self._subpaths = subpaths
+ self._conditions = conditions
+ self._cache = {}
+
+ def TryLoad(self, name):
+ """Returns content of template file as a string, or None of not found."""
+ if name in self._cache:
+ return self._cache[name]
+
+ for subpath in self._subpaths:
+ template_file = os.path.join(self._root, subpath, name)
+ if os.path.exists(template_file):
+ template = ''.join(open(template_file).readlines())
+ template = self._Preprocess(template, template_file)
+ self._cache[name] = template
+ return template
+
+ return None
+
+ def Load(self, name):
+ """Returns contents of template file as a string, or raises an exception."""
+ template = self.TryLoad(name)
+ if template is not None: # Can be empty string
+ return template
+ raise Exception("Could not find template '%s' on %s / %s" % (
+ name, self._root, self._subpaths))
+
+ def _Preprocess(self, template, filename):
+ def error(lineno, message):
+ raise Exception('%s:%s: %s' % (filename, lineno, message))
+
+ lines = template.splitlines(True)
+ out = []
+
+ condition_stack = []
+ active = True
+ seen_else = False
+
+ for (lineno, full_line) in enumerate(lines):
+ line = full_line.strip()
+
+ if line.startswith('$'):
+ words = line.split()
+ directive = words[0]
+
+ if directive == '$if':
+ if len(words) != 2:
+ error(lineno, '$if does not have single variable')
+ variable = words[1]
+ if variable in self._conditions:
+ condition_stack.append((active, seen_else))
+ active = self._conditions[variable]
+ seen_else = False
+ else:
+ error(lineno, "Unknown $if variable '%s'" % variable)
+
+ elif directive == '$else':
+ if not condition_stack:
+ error(lineno, '$else without $if')
+ if seen_else:
+ raise error(lineno, 'Double $else')
+ seen_else = True
+ active = not active
+
+ elif directive == '$endif':
+ if not condition_stack:
+ error(lineno, '$endif without $if')
+ (active, seen_else) = condition_stack.pop()
+
+ else:
+ # Something else, like '$!MEMBERS'
+ if active:
+ out.append(full_line)
+
+ else:
+ if active:
+ out.append(full_line);
+ continue
+
+ if condition_stack:
+ error(len(lines), 'Unterminated $if')
+
+ return ''.join(out)
diff --git a/elemental/idl/scripts/templateloader_test.py b/elemental/idl/scripts/templateloader_test.py
new file mode 100755
index 0000000..165b566
--- /dev/null
+++ b/elemental/idl/scripts/templateloader_test.py
@@ -0,0 +1,125 @@
+#!/usr/bin/python
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+import logging.config
+import unittest
+import templateloader
+
+class TemplateLoaderTestCase(unittest.TestCase):
+
+ def _preprocess(self, input_text, conds):
+ loader = templateloader.TemplateLoader('.', [], conds)
+ return loader._Preprocess(input_text, '<file>')
+
+
+ def _preprocess_test(self, input_text, conds, expected_text):
+ output_text = self._preprocess(input_text, conds)
+ if output_text != expected_text:
+ msg = '''
+EXPECTED:
+%s
+---
+ACTUAL :
+%s
+---''' % (expected_text, output_text)
+ self.fail(msg)
+
+
+ def _preprocess_error_test(self, input_text, conds, expected_message):
+ threw = False
+ try:
+ output_text = self._preprocess(input_text, conds)
+ except Exception, e:
+ threw = True
+ if str(e).find(expected_message) == -1:
+ self.fail("'%s' does not contain '%s'" % (e, expected_message))
+ if not threw:
+ self.fail("missing error, expected '%s'" % expected_message)
+
+
+ def test_freevar(self):
+ input_text = '''$A
+$B'''
+ self._preprocess_test(input_text, {}, input_text)
+
+
+ def test_ite1(self):
+ input_text = '''
+ aaa
+ $if A
+ bbb
+ $else
+ ccc
+ $endif
+ ddd
+ '''
+ self._preprocess_test(input_text, {'A':True},
+ '''
+ aaa
+ bbb
+ ddd
+ ''')
+
+ def test_ite2(self):
+ input_text = '''
+ aaa
+ $if A
+ bbb
+ $else
+ ccc
+ $endif
+ ddd
+ '''
+ self._preprocess_test(input_text, {'A':False},
+ '''
+ aaa
+ ccc
+ ddd
+ ''')
+
+ def test_if1(self):
+ input_text = '''
+ $if
+ '''
+ self._preprocess_error_test(input_text, {},
+ '$if does not have single variable')
+
+ def test_if2(self):
+ input_text = '''
+ $if A
+ '''
+ self._preprocess_error_test(input_text, {}, 'Unknown $if variable')
+
+ def test_else1(self):
+ input_text = '''
+ $else
+ '''
+ self._preprocess_error_test(input_text, {}, '$else without $if')
+
+ def test_else2(self):
+ input_text = '''
+ $if A
+ $else
+ $else
+ '''
+ self._preprocess_error_test(input_text, {'A':True}, 'Double $else')
+
+ def test_eof1(self):
+ input_text = '''
+ $if A
+ '''
+ self._preprocess_error_test(input_text, {'A':True}, 'Unterminated')
+
+ def test_eof2(self):
+ input_text = '''
+ $if A
+ $else
+ '''
+ self._preprocess_error_test(input_text, {'A':True}, 'Unterminated')
+
+if __name__ == "__main__":
+ logging.config.fileConfig("logging.conf")
+ if __name__ == '__main__':
+ unittest.main()
diff --git a/elemental/idl/templates/java_impl.darttemplate b/elemental/idl/templates/java_impl.darttemplate
new file mode 100644
index 0000000..3b4c501
--- /dev/null
+++ b/elemental/idl/templates/java_impl.darttemplate
@@ -0,0 +1,10 @@
+
+package $PACKAGE;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ * $CLASS_JAVADOC
+ */
+public class $CLASSNAME$EXTENDS$IMPLEMENTS {
+$!MEMBERS}
diff --git a/elemental/idl/templates/java_impl_CSSStyleDeclaration.darttemplate b/elemental/idl/templates/java_impl_CSSStyleDeclaration.darttemplate
new file mode 100644
index 0000000..e4955b4
--- /dev/null
+++ b/elemental/idl/templates/java_impl_CSSStyleDeclaration.darttemplate
@@ -0,0 +1,1179 @@
+
+package $PACKAGE;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ * $CLASS_JAVADOC
+ */
+public class $CLASSNAME$EXTENDS$IMPLEMENTS {
+$!MEMBERS
+public interface Unit {
+ public static final String PX = "px";
+ public static final String PCT = "%";
+ public static final String EM = "em";
+ public static final String EX = "ex";
+ public static final String PT = "pt";
+ public static final String PC = "pc";
+ public static final String IN = "in";
+ public static final String CM = "cm";
+ public static final String MM = "mm";
+}
+
+String getColor();
+void setColor(String value);
+void clearColor();
+String getDirection();
+void setDirection(String value);
+void clearDirection();
+
+public interface Display {
+ public static final String NONE = "none";
+ public static final String BLOCK = "block";
+ public static final String INLINE = "inline";
+ public static final String INLINE_BLOCK = "inline-block";
+}
+
+String getDisplay();
+void setDisplay(String value);
+void clearDisplay();
+String getFont();
+void setFont(String value);
+void clearFont();
+String getFontFamily();
+void setFontFamily(String value);
+void clearFontFamily();
+String getFontSize();
+void setFontSize(String value);
+void clearFontSize();
+void setFontSize(double value, String unit);
+
+public interface FontStyle {
+ public static final String NORMAL = "normal";
+ public static final String ITALIC = "italic";
+ public static final String OBLIQUE = "oblique";
+}
+
+String getFontStyle();
+void setFontStyle(String value);
+void clearFontStyle();
+
+public interface FontWeight {
+ public static final String NORMAL = "normal";
+ public static final String BOLD = "bold";
+ public static final String BOLDER = "bolder";
+ public static final String LIGHTER = "lighter";
+}
+
+String getFontWeight();
+void setFontWeight(String value);
+void clearFontWeight();
+String getFontVariant();
+void setFontVariant(String value);
+void clearFontVariant();
+String getTextRendering();
+void setTextRendering(String value);
+void clearTextRendering();
+String getWebkitFontFeatureSettings();
+void setWebkitFontFeatureSettings(String value);
+void clearWebkitFontFeatureSettings();
+String getWebkitFontKerning();
+void setWebkitFontKerning(String value);
+void clearWebkitFontKerning();
+String getWebkitFontSmoothing();
+void setWebkitFontSmoothing(String value);
+void clearWebkitFontSmoothing();
+String getWebkitFontVariantLigatures();
+void setWebkitFontVariantLigatures(String value);
+void clearWebkitFontVariantLigatures();
+String getWebkitLocale();
+void setWebkitLocale(String value);
+void clearWebkitLocale();
+String getWebkitTextOrientation();
+void setWebkitTextOrientation(String value);
+void clearWebkitTextOrientation();
+String getWebkitTextSizeAdjust();
+void setWebkitTextSizeAdjust(String value);
+void clearWebkitTextSizeAdjust();
+String getWebkitWritingMode();
+void setWebkitWritingMode(String value);
+void clearWebkitWritingMode();
+String getZoom();
+void setZoom(String value);
+void clearZoom();
+String getLineHeight();
+void setLineHeight(String value);
+void clearLineHeight();
+String getBackground();
+void setBackground(String value);
+void clearBackground();
+String getBackgroundAttachment();
+void setBackgroundAttachment(String value);
+void clearBackgroundAttachment();
+String getBackgroundClip();
+void setBackgroundClip(String value);
+void clearBackgroundClip();
+String getBackgroundColor();
+void setBackgroundColor(String value);
+void clearBackgroundColor();
+String getBackgroundImage();
+void setBackgroundImage(String value);
+void clearBackgroundImage();
+String getBackgroundOrigin();
+void setBackgroundOrigin(String value);
+void clearBackgroundOrigin();
+String getBackgroundPosition();
+void setBackgroundPosition(String value);
+void clearBackgroundPosition();
+String getBackgroundPositionX();
+void setBackgroundPositionX(String value);
+void clearBackgroundPositionX();
+String getBackgroundPositionY();
+void setBackgroundPositionY(String value);
+void clearBackgroundPositionY();
+String getBackgroundRepeat();
+void setBackgroundRepeat(String value);
+void clearBackgroundRepeat();
+String getBackgroundRepeatX();
+void setBackgroundRepeatX(String value);
+void clearBackgroundRepeatX();
+String getBackgroundRepeatY();
+void setBackgroundRepeatY(String value);
+void clearBackgroundRepeatY();
+String getBackgroundSize();
+void setBackgroundSize(String value);
+void clearBackgroundSize();
+String getBorder();
+void setBorder(String value);
+void clearBorder();
+String getBorderBottom();
+void setBorderBottom(String value);
+void clearBorderBottom();
+String getBorderBottomColor();
+void setBorderBottomColor(String value);
+void clearBorderBottomColor();
+String getBorderBottomLeftRadius();
+void setBorderBottomLeftRadius(String value);
+void clearBorderBottomLeftRadius();
+String getBorderBottomRightRadius();
+void setBorderBottomRightRadius(String value);
+void clearBorderBottomRightRadius();
+String getBorderBottomStyle();
+void setBorderBottomStyle(String value);
+void clearBorderBottomStyle();
+String getBorderBottomWidth();
+void setBorderBottomWidth(String value);
+void clearBorderBottomWidth();
+String getBorderCollapse();
+void setBorderCollapse(String value);
+void clearBorderCollapse();
+String getBorderColor();
+void setBorderColor(String value);
+void clearBorderColor();
+String getBorderImage();
+void setBorderImage(String value);
+void clearBorderImage();
+String getBorderImageOutset();
+void setBorderImageOutset(String value);
+void clearBorderImageOutset();
+String getBorderImageRepeat();
+void setBorderImageRepeat(String value);
+void clearBorderImageRepeat();
+String getBorderImageSlice();
+void setBorderImageSlice(String value);
+void clearBorderImageSlice();
+String getBorderImageSource();
+void setBorderImageSource(String value);
+void clearBorderImageSource();
+String getBorderImageWidth();
+void setBorderImageWidth(String value);
+void clearBorderImageWidth();
+String getBorderLeft();
+void setBorderLeft(String value);
+void clearBorderLeft();
+String getBorderLeftColor();
+void setBorderLeftColor(String value);
+void clearBorderLeftColor();
+String getBorderLeftStyle();
+void setBorderLeftStyle(String value);
+void clearBorderLeftStyle();
+String getBorderLeftWidth();
+void setBorderLeftWidth(String value);
+void clearBorderLeftWidth();
+String getBorderRadius();
+void setBorderRadius(String value);
+void clearBorderRadius();
+String getBorderRight();
+void setBorderRight(String value);
+void clearBorderRight();
+String getBorderRightColor();
+void setBorderRightColor(String value);
+void clearBorderRightColor();
+String getBorderRightStyle();
+void setBorderRightStyle(String value);
+void clearBorderRightStyle();
+String getBorderRightWidth();
+void setBorderRightWidth(String value);
+void clearBorderRightWidth();
+String getBorderSpacing();
+void setBorderSpacing(String value);
+void clearBorderSpacing();
+
+public interface BorderStyle {
+ public static final String NONE = "none";
+ public static final String HIDDEN = "hidden";
+ public static final String DOTTED = "dotted";
+ public static final String DASHED = "dashed";
+ public static final String SOLID = "solid";
+}
+
+String getBorderStyle();
+void setBorderStyle(String value);
+void clearBorderStyle();
+String getBorderTop();
+void setBorderTop(String value);
+void clearBorderTop();
+String getBorderTopColor();
+void setBorderTopColor(String value);
+void clearBorderTopColor();
+String getBorderTopLeftRadius();
+void setBorderTopLeftRadius(String value);
+void clearBorderTopLeftRadius();
+String getBorderTopRightRadius();
+void setBorderTopRightRadius(String value);
+void clearBorderTopRightRadius();
+String getBorderTopStyle();
+void setBorderTopStyle(String value);
+void clearBorderTopStyle();
+String getBorderTopWidth();
+void setBorderTopWidth(String value);
+void clearBorderTopWidth();
+String getBorderWidth();
+void setBorderWidth(String value);
+void clearBorderWidth();
+void setBorderWidth(double value, String unit);
+String getBottom();
+void setBottom(String value);
+void clearBottom();
+void setBottom(double value, String unit);
+String getBoxShadow();
+void setBoxShadow(String value);
+void clearBoxShadow();
+String getBoxSizing();
+void setBoxSizing(String value);
+void clearBoxSizing();
+String getCaptionSide();
+void setCaptionSide(String value);
+void clearCaptionSide();
+String getClear();
+void setClear(String value);
+void clearClear();
+String getClip();
+void setClip(String value);
+void clearClip();
+String getContent();
+void setContent(String value);
+void clearContent();
+String getCounterIncrement();
+void setCounterIncrement(String value);
+void clearCounterIncrement();
+String getCounterReset();
+void setCounterReset(String value);
+void clearCounterReset();
+
+public interface Cursor {
+ public static final String DEFAULT = "default";
+ public static final String AUTO = "auto";
+ public static final String CROSSHAIR = "crosshair";
+ public static final String POINTER = "pointer";
+ public static final String MOVE = "move";
+ public static final String E_RESIZE = "e-resize";
+ public static final String NE_RESIZE = "ne-resize";
+ public static final String NW_RESIZE = "nw-resize";
+ public static final String N_RESIZE = "n-resize";
+ public static final String SE_RESIZE = "se-resize";
+ public static final String SW_RESIZE = "sw-resize";
+ public static final String S_RESIZE = "s-resize";
+ public static final String W_RESIZE = "w-resize";
+ public static final String TEXT = "text";
+ public static final String WAIT = "wait";
+ public static final String HELP = "help";
+ public static final String COL_RESIZE = "col-resize";
+ public static final String ROW_RESIZE = "row-resize";
+}
+
+String getCursor();
+void setCursor(String value);
+void clearCursor();
+String getEmptyCells();
+void setEmptyCells(String value);
+void clearEmptyCells();
+String getFloat();
+void setFloat(String value);
+void clearFloat();
+String getFontStretch();
+void setFontStretch(String value);
+void clearFontStretch();
+String getHeight();
+void setHeight(String value);
+void clearHeight();
+void setHeight(double value, String unit);
+String getImageRendering();
+void setImageRendering(String value);
+void clearImageRendering();
+String getLeft();
+void setLeft(String value);
+void clearLeft();
+void setLeft(double value, String unit);
+String getLetterSpacing();
+void setLetterSpacing(String value);
+void clearLetterSpacing();
+String getListStyle();
+void setListStyle(String value);
+void clearListStyle();
+
+public interface ListStyleType {
+ public static final String NONE = "none";
+ public static final String DISC = "disc";
+ public static final String CIRCLE = "circle";
+ public static final String SQUARE = "square";
+ public static final String DECIMAL = "decimal";
+ public static final String LOWER_ALPHA = "lower-alpha";
+ public static final String UPPER_ALPHA = "upper-alpha";
+ public static final String LOWER_ROMAN = "lower-roman";
+ public static final String UPPER_ROMAN = "upper-roman";
+}
+
+String getListStyleType();
+void setListStyleType(String value);
+void clearListStyleType();
+String getListStyleImage();
+void setListStyleImage(String value);
+void clearListStyleImage();
+String getListStylePosition();
+void setListStylePosition(String value);
+void clearListStylePosition();
+String getMargin();
+void setMargin(String value);
+void clearMargin();
+void setMargin(double value, String unit);
+String getMarginBottom();
+void setMarginBottom(String value);
+void clearMarginBottom();
+void setMarginBottom(double value, String unit);
+String getMarginLeft();
+void setMarginLeft(String value);
+void clearMarginLeft();
+void setMarginLeft(double value, String unit);
+String getMarginRight();
+void setMarginRight(String value);
+void clearMarginRight();
+void setMarginRight(double value, String unit);
+String getMarginTop();
+void setMarginTop(String value);
+void clearMarginTop();
+void setMarginTop(double value, String unit);
+String getMaxHeight();
+void setMaxHeight(String value);
+void clearMaxHeight();
+String getMaxWidth();
+void setMaxWidth(String value);
+void clearMaxWidth();
+String getMinHeight();
+void setMinHeight(String value);
+void clearMinHeight();
+String getMinWidth();
+void setMinWidth(String value);
+void clearMinWidth();
+double getOpacity();
+void setOpacity(double value);
+void clearOpacity();
+String getOrphans();
+void setOrphans(String value);
+void clearOrphans();
+String getOutline();
+void setOutline(String value);
+void clearOutline();
+String getOutlineColor();
+void setOutlineColor(String value);
+void clearOutlineColor();
+String getOutlineOffset();
+void setOutlineOffset(String value);
+void clearOutlineOffset();
+String getOutlineStyle();
+void setOutlineStyle(String value);
+void clearOutlineStyle();
+String getOutlineWidth();
+void setOutlineWidth(String value);
+void clearOutlineWidth();
+
+public interface Overflow {
+ public static final String VISIBLE = "visible";
+ public static final String HIDDEN = "hidden";
+ public static final String SCROLL = "scroll";
+ public static final String AUTO = "auto";
+}
+
+String getOverflow();
+void setOverflow(String value);
+void clearOverflow();
+
+public interface OverflowX {
+ public static final String VISIBLE = "visible";
+ public static final String HIDDEN = "hidden";
+ public static final String SCROLL = "scroll";
+ public static final String AUTO = "auto";
+}
+
+String getOverflowX();
+void setOverflowX(String value);
+void clearOverflowX();
+
+public interface OverflowY {
+ public static final String VISIBLE = "visible";
+ public static final String HIDDEN = "hidden";
+ public static final String SCROLL = "scroll";
+ public static final String AUTO = "auto";
+}
+
+String getOverflowY();
+void setOverflowY(String value);
+void clearOverflowY();
+String getPadding();
+void setPadding(String value);
+void clearPadding();
+void setPadding(double value, String unit);
+String getPaddingBottom();
+void setPaddingBottom(String value);
+void clearPaddingBottom();
+void setPaddingBottom(double value, String unit);
+String getPaddingLeft();
+void setPaddingLeft(String value);
+void clearPaddingLeft();
+void setPaddingLeft(double value, String unit);
+String getPaddingRight();
+void setPaddingRight(String value);
+void clearPaddingRight();
+void setPaddingRight(double value, String unit);
+String getPaddingTop();
+void setPaddingTop(String value);
+void clearPaddingTop();
+void setPaddingTop(double value, String unit);
+String getPage();
+void setPage(String value);
+void clearPage();
+String getPageBreakAfter();
+void setPageBreakAfter(String value);
+void clearPageBreakAfter();
+String getPageBreakBefore();
+void setPageBreakBefore(String value);
+void clearPageBreakBefore();
+String getPageBreakInside();
+void setPageBreakInside(String value);
+void clearPageBreakInside();
+String getPointerEvents();
+void setPointerEvents(String value);
+void clearPointerEvents();
+
+public interface Position {
+ public static final String STATIC = "static";
+ public static final String RELATIVE = "relative";
+ public static final String ABSOLUTE = "absolute";
+ public static final String FIXED = "fixed";
+}
+
+String getPosition();
+void setPosition(String value);
+void clearPosition();
+String getQuotes();
+void setQuotes(String value);
+void clearQuotes();
+String getResize();
+void setResize(String value);
+void clearResize();
+String getRight();
+void setRight(String value);
+void clearRight();
+void setRight(double value, String unit);
+String getSize();
+void setSize(String value);
+void clearSize();
+String getSrc();
+void setSrc(String value);
+void clearSrc();
+String getSpeak();
+void setSpeak(String value);
+void clearSpeak();
+String getTableLayout();
+void setTableLayout(String value);
+void clearTableLayout();
+String getTabSize();
+void setTabSize(String value);
+void clearTabSize();
+String getTextAlign();
+void setTextAlign(String value);
+void clearTextAlign();
+
+public interface TextDecoration {
+ public static final String NONE = "none";
+ public static final String UNDERLINE = "underline";
+ public static final String OVERLINE = "overline";
+ public static final String LINE_THROUGH = "line-through";
+}
+
+String getTextDecoration();
+void setTextDecoration(String value);
+void clearTextDecoration();
+String getTextIndent();
+void setTextIndent(String value);
+void clearTextIndent();
+String getTextLineThrough();
+void setTextLineThrough(String value);
+void clearTextLineThrough();
+String getTextLineThroughColor();
+void setTextLineThroughColor(String value);
+void clearTextLineThroughColor();
+String getTextLineThroughMode();
+void setTextLineThroughMode(String value);
+void clearTextLineThroughMode();
+String getTextLineThroughStyle();
+void setTextLineThroughStyle(String value);
+void clearTextLineThroughStyle();
+String getTextLineThroughWidth();
+void setTextLineThroughWidth(String value);
+void clearTextLineThroughWidth();
+String getTextOverflow();
+void setTextOverflow(String value);
+void clearTextOverflow();
+String getTextOverline();
+void setTextOverline(String value);
+void clearTextOverline();
+String getTextOverlineColor();
+void setTextOverlineColor(String value);
+void clearTextOverlineColor();
+String getTextOverlineMode();
+void setTextOverlineMode(String value);
+void clearTextOverlineMode();
+String getTextOverlineStyle();
+void setTextOverlineStyle(String value);
+void clearTextOverlineStyle();
+String getTextOverlineWidth();
+void setTextOverlineWidth(String value);
+void clearTextOverlineWidth();
+String getTextShadow();
+void setTextShadow(String value);
+void clearTextShadow();
+String getTextTransform();
+void setTextTransform(String value);
+void clearTextTransform();
+String getTextUnderline();
+void setTextUnderline(String value);
+void clearTextUnderline();
+String getTextUnderlineColor();
+void setTextUnderlineColor(String value);
+void clearTextUnderlineColor();
+String getTextUnderlineMode();
+void setTextUnderlineMode(String value);
+void clearTextUnderlineMode();
+String getTextUnderlineStyle();
+void setTextUnderlineStyle(String value);
+void clearTextUnderlineStyle();
+String getTextUnderlineWidth();
+void setTextUnderlineWidth(String value);
+void clearTextUnderlineWidth();
+String getTop();
+void setTop(String value);
+void clearTop();
+void setTop(double value, String unit);
+String getUnicodeBidi();
+void setUnicodeBidi(String value);
+void clearUnicodeBidi();
+String getUnicodeRange();
+void setUnicodeRange(String value);
+void clearUnicodeRange();
+String getVerticalAlign();
+void setVerticalAlign(String value);
+void clearVerticalAlign();
+
+public interface Visibility {
+ public static final String VISIBLE = "visible";
+ public static final String HIDDEN = "hidden";
+}
+
+String getVisibility();
+void setVisibility(String value);
+void clearVisibility();
+
+public interface WhiteSpace {
+ public static final String PRE = "pre";
+ public static final String NOWRAP = "nowrap";
+ public static final String PRE_WRAP = "pre-wrap";
+ public static final String PRE_LINE = "pre-line";
+}
+
+String getWhiteSpace();
+void setWhiteSpace(String value);
+void clearWhiteSpace();
+String getWidows();
+void setWidows(String value);
+void clearWidows();
+String getWidth();
+void setWidth(String value);
+void clearWidth();
+void setWidth(double value, String unit);
+String getWordBreak();
+void setWordBreak(String value);
+void clearWordBreak();
+String getWordSpacing();
+void setWordSpacing(String value);
+void clearWordSpacing();
+String getWordWrap();
+void setWordWrap(String value);
+void clearWordWrap();
+int getZIndex();
+void setZIndex(int value);
+void clearZIndex();
+String getWebkitAnimation();
+void setWebkitAnimation(String value);
+void clearWebkitAnimation();
+String getWebkitAnimationDelay();
+void setWebkitAnimationDelay(String value);
+void clearWebkitAnimationDelay();
+String getWebkitAnimationDirection();
+void setWebkitAnimationDirection(String value);
+void clearWebkitAnimationDirection();
+String getWebkitAnimationDuration();
+void setWebkitAnimationDuration(String value);
+void clearWebkitAnimationDuration();
+String getWebkitAnimationFillMode();
+void setWebkitAnimationFillMode(String value);
+void clearWebkitAnimationFillMode();
+String getWebkitAnimationIterationCount();
+void setWebkitAnimationIterationCount(String value);
+void clearWebkitAnimationIterationCount();
+String getWebkitAnimationName();
+void setWebkitAnimationName(String value);
+void clearWebkitAnimationName();
+String getWebkitAnimationPlayState();
+void setWebkitAnimationPlayState(String value);
+void clearWebkitAnimationPlayState();
+String getWebkitAnimationTimingFunction();
+void setWebkitAnimationTimingFunction(String value);
+void clearWebkitAnimationTimingFunction();
+String getWebkitAppearance();
+void setWebkitAppearance(String value);
+void clearWebkitAppearance();
+String getWebkitAspectRatio();
+void setWebkitAspectRatio(String value);
+void clearWebkitAspectRatio();
+String getWebkitBackfaceVisibility();
+void setWebkitBackfaceVisibility(String value);
+void clearWebkitBackfaceVisibility();
+String getWebkitBackgroundClip();
+void setWebkitBackgroundClip(String value);
+void clearWebkitBackgroundClip();
+String getWebkitBackgroundComposite();
+void setWebkitBackgroundComposite(String value);
+void clearWebkitBackgroundComposite();
+String getWebkitBackgroundOrigin();
+void setWebkitBackgroundOrigin(String value);
+void clearWebkitBackgroundOrigin();
+String getWebkitBackgroundSize();
+void setWebkitBackgroundSize(String value);
+void clearWebkitBackgroundSize();
+String getWebkitBorderAfter();
+void setWebkitBorderAfter(String value);
+void clearWebkitBorderAfter();
+String getWebkitBorderAfterColor();
+void setWebkitBorderAfterColor(String value);
+void clearWebkitBorderAfterColor();
+String getWebkitBorderAfterStyle();
+void setWebkitBorderAfterStyle(String value);
+void clearWebkitBorderAfterStyle();
+String getWebkitBorderAfterWidth();
+void setWebkitBorderAfterWidth(String value);
+void clearWebkitBorderAfterWidth();
+String getWebkitBorderBefore();
+void setWebkitBorderBefore(String value);
+void clearWebkitBorderBefore();
+String getWebkitBorderBeforeColor();
+void setWebkitBorderBeforeColor(String value);
+void clearWebkitBorderBeforeColor();
+String getWebkitBorderBeforeStyle();
+void setWebkitBorderBeforeStyle(String value);
+void clearWebkitBorderBeforeStyle();
+String getWebkitBorderBeforeWidth();
+void setWebkitBorderBeforeWidth(String value);
+void clearWebkitBorderBeforeWidth();
+String getWebkitBorderEnd();
+void setWebkitBorderEnd(String value);
+void clearWebkitBorderEnd();
+String getWebkitBorderEndColor();
+void setWebkitBorderEndColor(String value);
+void clearWebkitBorderEndColor();
+String getWebkitBorderEndStyle();
+void setWebkitBorderEndStyle(String value);
+void clearWebkitBorderEndStyle();
+String getWebkitBorderEndWidth();
+void setWebkitBorderEndWidth(String value);
+void clearWebkitBorderEndWidth();
+String getWebkitBorderFit();
+void setWebkitBorderFit(String value);
+void clearWebkitBorderFit();
+String getWebkitBorderHorizontalSpacing();
+void setWebkitBorderHorizontalSpacing(String value);
+void clearWebkitBorderHorizontalSpacing();
+String getWebkitBorderImage();
+void setWebkitBorderImage(String value);
+void clearWebkitBorderImage();
+String getWebkitBorderRadius();
+void setWebkitBorderRadius(String value);
+void clearWebkitBorderRadius();
+String getWebkitBorderStart();
+void setWebkitBorderStart(String value);
+void clearWebkitBorderStart();
+String getWebkitBorderStartColor();
+void setWebkitBorderStartColor(String value);
+void clearWebkitBorderStartColor();
+String getWebkitBorderStartStyle();
+void setWebkitBorderStartStyle(String value);
+void clearWebkitBorderStartStyle();
+String getWebkitBorderStartWidth();
+void setWebkitBorderStartWidth(String value);
+void clearWebkitBorderStartWidth();
+String getWebkitBorderVerticalSpacing();
+void setWebkitBorderVerticalSpacing(String value);
+void clearWebkitBorderVerticalSpacing();
+String getWebkitBoxAlign();
+void setWebkitBoxAlign(String value);
+void clearWebkitBoxAlign();
+String getWebkitBoxDirection();
+void setWebkitBoxDirection(String value);
+void clearWebkitBoxDirection();
+String getWebkitBoxFlex();
+void setWebkitBoxFlex(String value);
+void clearWebkitBoxFlex();
+String getWebkitBoxFlexGroup();
+void setWebkitBoxFlexGroup(String value);
+void clearWebkitBoxFlexGroup();
+String getWebkitBoxLines();
+void setWebkitBoxLines(String value);
+void clearWebkitBoxLines();
+String getWebkitBoxOrdinalGroup();
+void setWebkitBoxOrdinalGroup(String value);
+void clearWebkitBoxOrdinalGroup();
+String getWebkitBoxOrient();
+void setWebkitBoxOrient(String value);
+void clearWebkitBoxOrient();
+String getWebkitBoxPack();
+void setWebkitBoxPack(String value);
+void clearWebkitBoxPack();
+String getWebkitBoxReflect();
+void setWebkitBoxReflect(String value);
+void clearWebkitBoxReflect();
+String getWebkitBoxShadow();
+void setWebkitBoxShadow(String value);
+void clearWebkitBoxShadow();
+String getWebkitColorCorrection();
+void setWebkitColorCorrection(String value);
+void clearWebkitColorCorrection();
+String getWebkitColumnAxis();
+void setWebkitColumnAxis(String value);
+void clearWebkitColumnAxis();
+String getWebkitColumnBreakAfter();
+void setWebkitColumnBreakAfter(String value);
+void clearWebkitColumnBreakAfter();
+String getWebkitColumnBreakBefore();
+void setWebkitColumnBreakBefore(String value);
+void clearWebkitColumnBreakBefore();
+String getWebkitColumnBreakInside();
+void setWebkitColumnBreakInside(String value);
+void clearWebkitColumnBreakInside();
+String getWebkitColumnCount();
+void setWebkitColumnCount(String value);
+void clearWebkitColumnCount();
+String getWebkitColumnGap();
+void setWebkitColumnGap(String value);
+void clearWebkitColumnGap();
+String getWebkitColumnRule();
+void setWebkitColumnRule(String value);
+void clearWebkitColumnRule();
+String getWebkitColumnRuleColor();
+void setWebkitColumnRuleColor(String value);
+void clearWebkitColumnRuleColor();
+String getWebkitColumnRuleStyle();
+void setWebkitColumnRuleStyle(String value);
+void clearWebkitColumnRuleStyle();
+String getWebkitColumnRuleWidth();
+void setWebkitColumnRuleWidth(String value);
+void clearWebkitColumnRuleWidth();
+String getWebkitColumnSpan();
+void setWebkitColumnSpan(String value);
+void clearWebkitColumnSpan();
+String getWebkitColumnWidth();
+void setWebkitColumnWidth(String value);
+void clearWebkitColumnWidth();
+String getWebkitColumns();
+void setWebkitColumns(String value);
+void clearWebkitColumns();
+String getWebkitFilter();
+void setWebkitFilter(String value);
+void clearWebkitFilter();
+String getWebkitFlex();
+void setWebkitFlex(String value);
+void clearWebkitFlex();
+String getWebkitFlexAlign();
+void setWebkitFlexAlign(String value);
+void clearWebkitFlexAlign();
+String getWebkitFlexDirection();
+void setWebkitFlexDirection(String value);
+void clearWebkitFlexDirection();
+String getWebkitFlexFlow();
+void setWebkitFlexFlow(String value);
+void clearWebkitFlexFlow();
+String getWebkitFlexItemAlign();
+void setWebkitFlexItemAlign(String value);
+void clearWebkitFlexItemAlign();
+String getWebkitFlexLinePack();
+void setWebkitFlexLinePack(String value);
+void clearWebkitFlexLinePack();
+String getWebkitFlexOrder();
+void setWebkitFlexOrder(String value);
+void clearWebkitFlexOrder();
+String getWebkitFlexPack();
+void setWebkitFlexPack(String value);
+void clearWebkitFlexPack();
+String getWebkitFlexWrap();
+void setWebkitFlexWrap(String value);
+void clearWebkitFlexWrap();
+String getWebkitFontSizeDelta();
+void setWebkitFontSizeDelta(String value);
+void clearWebkitFontSizeDelta();
+String getWebkitGridColumns();
+void setWebkitGridColumns(String value);
+void clearWebkitGridColumns();
+String getWebkitGridRows();
+void setWebkitGridRows(String value);
+void clearWebkitGridRows();
+String getWebkitGridColumn();
+void setWebkitGridColumn(String value);
+void clearWebkitGridColumn();
+String getWebkitGridRow();
+void setWebkitGridRow(String value);
+void clearWebkitGridRow();
+String getWebkitHighlight();
+void setWebkitHighlight(String value);
+void clearWebkitHighlight();
+String getWebkitHyphenateCharacter();
+void setWebkitHyphenateCharacter(String value);
+void clearWebkitHyphenateCharacter();
+String getWebkitHyphenateLimitAfter();
+void setWebkitHyphenateLimitAfter(String value);
+void clearWebkitHyphenateLimitAfter();
+String getWebkitHyphenateLimitBefore();
+void setWebkitHyphenateLimitBefore(String value);
+void clearWebkitHyphenateLimitBefore();
+String getWebkitHyphenateLimitLines();
+void setWebkitHyphenateLimitLines(String value);
+void clearWebkitHyphenateLimitLines();
+String getWebkitHyphens();
+void setWebkitHyphens(String value);
+void clearWebkitHyphens();
+String getWebkitLineBoxContain();
+void setWebkitLineBoxContain(String value);
+void clearWebkitLineBoxContain();
+String getWebkitLineAlign();
+void setWebkitLineAlign(String value);
+void clearWebkitLineAlign();
+String getWebkitLineBreak();
+void setWebkitLineBreak(String value);
+void clearWebkitLineBreak();
+String getWebkitLineClamp();
+void setWebkitLineClamp(String value);
+void clearWebkitLineClamp();
+String getWebkitLineGrid();
+void setWebkitLineGrid(String value);
+void clearWebkitLineGrid();
+String getWebkitLineSnap();
+void setWebkitLineSnap(String value);
+void clearWebkitLineSnap();
+String getWebkitLogicalWidth();
+void setWebkitLogicalWidth(String value);
+void clearWebkitLogicalWidth();
+String getWebkitLogicalHeight();
+void setWebkitLogicalHeight(String value);
+void clearWebkitLogicalHeight();
+String getWebkitMarginAfterCollapse();
+void setWebkitMarginAfterCollapse(String value);
+void clearWebkitMarginAfterCollapse();
+String getWebkitMarginBeforeCollapse();
+void setWebkitMarginBeforeCollapse(String value);
+void clearWebkitMarginBeforeCollapse();
+String getWebkitMarginBottomCollapse();
+void setWebkitMarginBottomCollapse(String value);
+void clearWebkitMarginBottomCollapse();
+String getWebkitMarginTopCollapse();
+void setWebkitMarginTopCollapse(String value);
+void clearWebkitMarginTopCollapse();
+String getWebkitMarginCollapse();
+void setWebkitMarginCollapse(String value);
+void clearWebkitMarginCollapse();
+String getWebkitMarginAfter();
+void setWebkitMarginAfter(String value);
+void clearWebkitMarginAfter();
+String getWebkitMarginBefore();
+void setWebkitMarginBefore(String value);
+void clearWebkitMarginBefore();
+String getWebkitMarginEnd();
+void setWebkitMarginEnd(String value);
+void clearWebkitMarginEnd();
+String getWebkitMarginStart();
+void setWebkitMarginStart(String value);
+void clearWebkitMarginStart();
+String getWebkitMarquee();
+void setWebkitMarquee(String value);
+void clearWebkitMarquee();
+String getWebkitMarqueeDirection();
+void setWebkitMarqueeDirection(String value);
+void clearWebkitMarqueeDirection();
+String getWebkitMarqueeIncrement();
+void setWebkitMarqueeIncrement(String value);
+void clearWebkitMarqueeIncrement();
+String getWebkitMarqueeRepetition();
+void setWebkitMarqueeRepetition(String value);
+void clearWebkitMarqueeRepetition();
+String getWebkitMarqueeSpeed();
+void setWebkitMarqueeSpeed(String value);
+void clearWebkitMarqueeSpeed();
+String getWebkitMarqueeStyle();
+void setWebkitMarqueeStyle(String value);
+void clearWebkitMarqueeStyle();
+String getWebkitMask();
+void setWebkitMask(String value);
+void clearWebkitMask();
+String getWebkitMaskAttachment();
+void setWebkitMaskAttachment(String value);
+void clearWebkitMaskAttachment();
+String getWebkitMaskBoxImage();
+void setWebkitMaskBoxImage(String value);
+void clearWebkitMaskBoxImage();
+String getWebkitMaskBoxImageOutset();
+void setWebkitMaskBoxImageOutset(String value);
+void clearWebkitMaskBoxImageOutset();
+String getWebkitMaskBoxImageRepeat();
+void setWebkitMaskBoxImageRepeat(String value);
+void clearWebkitMaskBoxImageRepeat();
+String getWebkitMaskBoxImageSlice();
+void setWebkitMaskBoxImageSlice(String value);
+void clearWebkitMaskBoxImageSlice();
+String getWebkitMaskBoxImageSource();
+void setWebkitMaskBoxImageSource(String value);
+void clearWebkitMaskBoxImageSource();
+String getWebkitMaskBoxImageWidth();
+void setWebkitMaskBoxImageWidth(String value);
+void clearWebkitMaskBoxImageWidth();
+String getWebkitMaskClip();
+void setWebkitMaskClip(String value);
+void clearWebkitMaskClip();
+String getWebkitMaskComposite();
+void setWebkitMaskComposite(String value);
+void clearWebkitMaskComposite();
+String getWebkitMaskImage();
+void setWebkitMaskImage(String value);
+void clearWebkitMaskImage();
+String getWebkitMaskOrigin();
+void setWebkitMaskOrigin(String value);
+void clearWebkitMaskOrigin();
+String getWebkitMaskPosition();
+void setWebkitMaskPosition(String value);
+void clearWebkitMaskPosition();
+String getWebkitMaskPositionX();
+void setWebkitMaskPositionX(String value);
+void clearWebkitMaskPositionX();
+String getWebkitMaskPositionY();
+void setWebkitMaskPositionY(String value);
+void clearWebkitMaskPositionY();
+String getWebkitMaskRepeat();
+void setWebkitMaskRepeat(String value);
+void clearWebkitMaskRepeat();
+String getWebkitMaskRepeatX();
+void setWebkitMaskRepeatX(String value);
+void clearWebkitMaskRepeatX();
+String getWebkitMaskRepeatY();
+void setWebkitMaskRepeatY(String value);
+void clearWebkitMaskRepeatY();
+String getWebkitMaskSize();
+void setWebkitMaskSize(String value);
+void clearWebkitMaskSize();
+String getWebkitMatchNearestMailBlockquoteColor();
+void setWebkitMatchNearestMailBlockquoteColor(String value);
+void clearWebkitMatchNearestMailBlockquoteColor();
+String getWebkitMaxLogicalWidth();
+void setWebkitMaxLogicalWidth(String value);
+void clearWebkitMaxLogicalWidth();
+String getWebkitMaxLogicalHeight();
+void setWebkitMaxLogicalHeight(String value);
+void clearWebkitMaxLogicalHeight();
+String getWebkitMinLogicalWidth();
+void setWebkitMinLogicalWidth(String value);
+void clearWebkitMinLogicalWidth();
+String getWebkitMinLogicalHeight();
+void setWebkitMinLogicalHeight(String value);
+void clearWebkitMinLogicalHeight();
+String getWebkitNbspMode();
+void setWebkitNbspMode(String value);
+void clearWebkitNbspMode();
+String getWebkitPaddingAfter();
+void setWebkitPaddingAfter(String value);
+void clearWebkitPaddingAfter();
+String getWebkitPaddingBefore();
+void setWebkitPaddingBefore(String value);
+void clearWebkitPaddingBefore();
+String getWebkitPaddingEnd();
+void setWebkitPaddingEnd(String value);
+void clearWebkitPaddingEnd();
+String getWebkitPaddingStart();
+void setWebkitPaddingStart(String value);
+void clearWebkitPaddingStart();
+String getWebkitPerspective();
+void setWebkitPerspective(String value);
+void clearWebkitPerspective();
+String getWebkitPerspectiveOrigin();
+void setWebkitPerspectiveOrigin(String value);
+void clearWebkitPerspectiveOrigin();
+String getWebkitPerspectiveOriginX();
+void setWebkitPerspectiveOriginX(String value);
+void clearWebkitPerspectiveOriginX();
+String getWebkitPerspectiveOriginY();
+void setWebkitPerspectiveOriginY(String value);
+void clearWebkitPerspectiveOriginY();
+String getWebkitPrintColorAdjust();
+void setWebkitPrintColorAdjust(String value);
+void clearWebkitPrintColorAdjust();
+String getWebkitRtlOrdering();
+void setWebkitRtlOrdering(String value);
+void clearWebkitRtlOrdering();
+String getWebkitTextCombine();
+void setWebkitTextCombine(String value);
+void clearWebkitTextCombine();
+String getWebkitTextDecorationsInEffect();
+void setWebkitTextDecorationsInEffect(String value);
+void clearWebkitTextDecorationsInEffect();
+String getWebkitTextEmphasis();
+void setWebkitTextEmphasis(String value);
+void clearWebkitTextEmphasis();
+String getWebkitTextEmphasisColor();
+void setWebkitTextEmphasisColor(String value);
+void clearWebkitTextEmphasisColor();
+String getWebkitTextEmphasisPosition();
+void setWebkitTextEmphasisPosition(String value);
+void clearWebkitTextEmphasisPosition();
+String getWebkitTextEmphasisStyle();
+void setWebkitTextEmphasisStyle(String value);
+void clearWebkitTextEmphasisStyle();
+String getWebkitTextFillColor();
+void setWebkitTextFillColor(String value);
+void clearWebkitTextFillColor();
+String getWebkitTextSecurity();
+void setWebkitTextSecurity(String value);
+void clearWebkitTextSecurity();
+String getWebkitTextStroke();
+void setWebkitTextStroke(String value);
+void clearWebkitTextStroke();
+String getWebkitTextStrokeColor();
+void setWebkitTextStrokeColor(String value);
+void clearWebkitTextStrokeColor();
+String getWebkitTextStrokeWidth();
+void setWebkitTextStrokeWidth(String value);
+void clearWebkitTextStrokeWidth();
+String getWebkitTransform();
+void setWebkitTransform(String value);
+void clearWebkitTransform();
+String getWebkitTransformOrigin();
+void setWebkitTransformOrigin(String value);
+void clearWebkitTransformOrigin();
+String getWebkitTransformOriginX();
+void setWebkitTransformOriginX(String value);
+void clearWebkitTransformOriginX();
+String getWebkitTransformOriginY();
+void setWebkitTransformOriginY(String value);
+void clearWebkitTransformOriginY();
+String getWebkitTransformOriginZ();
+void setWebkitTransformOriginZ(String value);
+void clearWebkitTransformOriginZ();
+String getWebkitTransformStyle();
+void setWebkitTransformStyle(String value);
+void clearWebkitTransformStyle();
+String getWebkitTransition();
+void setWebkitTransition(String value);
+void clearWebkitTransition();
+String getWebkitTransitionDelay();
+void setWebkitTransitionDelay(String value);
+void clearWebkitTransitionDelay();
+String getWebkitTransitionDuration();
+void setWebkitTransitionDuration(String value);
+void clearWebkitTransitionDuration();
+String getWebkitTransitionProperty();
+void setWebkitTransitionProperty(String value);
+void clearWebkitTransitionProperty();
+String getWebkitTransitionTimingFunction();
+void setWebkitTransitionTimingFunction(String value);
+void clearWebkitTransitionTimingFunction();
+String getWebkitUserDrag();
+void setWebkitUserDrag(String value);
+void clearWebkitUserDrag();
+String getWebkitUserModify();
+void setWebkitUserModify(String value);
+void clearWebkitUserModify();
+String getWebkitUserSelect();
+void setWebkitUserSelect(String value);
+void clearWebkitUserSelect();
+String getWebkitFlowInto();
+void setWebkitFlowInto(String value);
+void clearWebkitFlowInto();
+String getWebkitFlowFrom();
+void setWebkitFlowFrom(String value);
+void clearWebkitFlowFrom();
+String getWebkitRegionOverflow();
+void setWebkitRegionOverflow(String value);
+void clearWebkitRegionOverflow();
+String getWebkitShapeInside();
+void setWebkitShapeInside(String value);
+void clearWebkitShapeInside();
+String getWebkitShapeOutside();
+void setWebkitShapeOutside(String value);
+void clearWebkitShapeOutside();
+String getWebkitWrapMargin();
+void setWebkitWrapMargin(String value);
+void clearWebkitWrapMargin();
+String getWebkitWrapPadding();
+void setWebkitWrapPadding(String value);
+void clearWebkitWrapPadding();
+String getWebkitRegionBreakAfter();
+void setWebkitRegionBreakAfter(String value);
+void clearWebkitRegionBreakAfter();
+String getWebkitRegionBreakBefore();
+void setWebkitRegionBreakBefore(String value);
+void clearWebkitRegionBreakBefore();
+String getWebkitRegionBreakInside();
+void setWebkitRegionBreakInside(String value);
+void clearWebkitRegionBreakInside();
+String getWebkitWrapFlow();
+void setWebkitWrapFlow(String value);
+void clearWebkitWrapFlow();
+String getWebkitWrapThrough();
+void setWebkitWrapThrough(String value);
+void clearWebkitWrapThrough();
+String getWebkitWrap();
+void setWebkitWrap(String value);
+void clearWebkitWrap();
+String getWebkitTapHighlightColor();
+void setWebkitTapHighlightColor(String value);
+void clearWebkitTapHighlightColor();
+String getWebkitDashboardRegion();
+void setWebkitDashboardRegion(String value);
+void clearWebkitDashboardRegion();
+String getWebkitOverflowScrolling();
+void setWebkitOverflowScrolling(String value);
+void clearWebkitOverflowScrolling();
+}
\ No newline at end of file
diff --git a/elemental/idl/templates/java_interface.darttemplate b/elemental/idl/templates/java_interface.darttemplate
new file mode 100644
index 0000000..eb6564e
--- /dev/null
+++ b/elemental/idl/templates/java_interface.darttemplate
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * $CLASSJAVADOC
+ */
+public interface $ID$EXTENDS {
+$!MEMBERS}
diff --git a/elemental/idl/templates/java_interface_CSSStyleDeclaration.darttemplate b/elemental/idl/templates/java_interface_CSSStyleDeclaration.darttemplate
new file mode 100644
index 0000000..83ef31f
--- /dev/null
+++ b/elemental/idl/templates/java_interface_CSSStyleDeclaration.darttemplate
@@ -0,0 +1,1193 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ * $CLASS_JAVADOC
+ */
+public interface $ID$EXTENDS {
+$!MEMBERS
+public interface Unit {
+ public static final String PX = "px";
+ public static final String PCT = "%";
+ public static final String EM = "em";
+ public static final String EX = "ex";
+ public static final String PT = "pt";
+ public static final String PC = "pc";
+ public static final String IN = "in";
+ public static final String CM = "cm";
+ public static final String MM = "mm";
+}
+
+String getColor();
+void setColor(String value);
+void clearColor();
+String getDirection();
+void setDirection(String value);
+void clearDirection();
+
+public interface Display {
+ public static final String NONE = "none";
+ public static final String BLOCK = "block";
+ public static final String INLINE = "inline";
+ public static final String INLINE_BLOCK = "inline-block";
+}
+
+String getDisplay();
+void setDisplay(String value);
+void clearDisplay();
+String getFont();
+void setFont(String value);
+void clearFont();
+String getFontFamily();
+void setFontFamily(String value);
+void clearFontFamily();
+String getFontSize();
+void setFontSize(String value);
+void clearFontSize();
+void setFontSize(double value, String unit);
+
+public interface FontStyle {
+ public static final String NORMAL = "normal";
+ public static final String ITALIC = "italic";
+ public static final String OBLIQUE = "oblique";
+}
+
+String getFontStyle();
+void setFontStyle(String value);
+void clearFontStyle();
+
+public interface FontWeight {
+ public static final String NORMAL = "normal";
+ public static final String BOLD = "bold";
+ public static final String BOLDER = "bolder";
+ public static final String LIGHTER = "lighter";
+}
+
+String getFontWeight();
+void setFontWeight(String value);
+void clearFontWeight();
+String getFontVariant();
+void setFontVariant(String value);
+void clearFontVariant();
+String getTextRendering();
+void setTextRendering(String value);
+void clearTextRendering();
+String getWebkitFontFeatureSettings();
+void setWebkitFontFeatureSettings(String value);
+void clearWebkitFontFeatureSettings();
+String getWebkitFontKerning();
+void setWebkitFontKerning(String value);
+void clearWebkitFontKerning();
+String getWebkitFontSmoothing();
+void setWebkitFontSmoothing(String value);
+void clearWebkitFontSmoothing();
+String getWebkitFontVariantLigatures();
+void setWebkitFontVariantLigatures(String value);
+void clearWebkitFontVariantLigatures();
+String getWebkitLocale();
+void setWebkitLocale(String value);
+void clearWebkitLocale();
+String getWebkitTextOrientation();
+void setWebkitTextOrientation(String value);
+void clearWebkitTextOrientation();
+String getWebkitTextSizeAdjust();
+void setWebkitTextSizeAdjust(String value);
+void clearWebkitTextSizeAdjust();
+String getWebkitWritingMode();
+void setWebkitWritingMode(String value);
+void clearWebkitWritingMode();
+String getZoom();
+void setZoom(String value);
+void clearZoom();
+String getLineHeight();
+void setLineHeight(String value);
+void clearLineHeight();
+String getBackground();
+void setBackground(String value);
+void clearBackground();
+String getBackgroundAttachment();
+void setBackgroundAttachment(String value);
+void clearBackgroundAttachment();
+String getBackgroundClip();
+void setBackgroundClip(String value);
+void clearBackgroundClip();
+String getBackgroundColor();
+void setBackgroundColor(String value);
+void clearBackgroundColor();
+String getBackgroundImage();
+void setBackgroundImage(String value);
+void clearBackgroundImage();
+String getBackgroundOrigin();
+void setBackgroundOrigin(String value);
+void clearBackgroundOrigin();
+String getBackgroundPosition();
+void setBackgroundPosition(String value);
+void clearBackgroundPosition();
+String getBackgroundPositionX();
+void setBackgroundPositionX(String value);
+void clearBackgroundPositionX();
+String getBackgroundPositionY();
+void setBackgroundPositionY(String value);
+void clearBackgroundPositionY();
+String getBackgroundRepeat();
+void setBackgroundRepeat(String value);
+void clearBackgroundRepeat();
+String getBackgroundRepeatX();
+void setBackgroundRepeatX(String value);
+void clearBackgroundRepeatX();
+String getBackgroundRepeatY();
+void setBackgroundRepeatY(String value);
+void clearBackgroundRepeatY();
+String getBackgroundSize();
+void setBackgroundSize(String value);
+void clearBackgroundSize();
+String getBorder();
+void setBorder(String value);
+void clearBorder();
+String getBorderBottom();
+void setBorderBottom(String value);
+void clearBorderBottom();
+String getBorderBottomColor();
+void setBorderBottomColor(String value);
+void clearBorderBottomColor();
+String getBorderBottomLeftRadius();
+void setBorderBottomLeftRadius(String value);
+void clearBorderBottomLeftRadius();
+String getBorderBottomRightRadius();
+void setBorderBottomRightRadius(String value);
+void clearBorderBottomRightRadius();
+String getBorderBottomStyle();
+void setBorderBottomStyle(String value);
+void clearBorderBottomStyle();
+String getBorderBottomWidth();
+void setBorderBottomWidth(String value);
+void clearBorderBottomWidth();
+String getBorderCollapse();
+void setBorderCollapse(String value);
+void clearBorderCollapse();
+String getBorderColor();
+void setBorderColor(String value);
+void clearBorderColor();
+String getBorderImage();
+void setBorderImage(String value);
+void clearBorderImage();
+String getBorderImageOutset();
+void setBorderImageOutset(String value);
+void clearBorderImageOutset();
+String getBorderImageRepeat();
+void setBorderImageRepeat(String value);
+void clearBorderImageRepeat();
+String getBorderImageSlice();
+void setBorderImageSlice(String value);
+void clearBorderImageSlice();
+String getBorderImageSource();
+void setBorderImageSource(String value);
+void clearBorderImageSource();
+String getBorderImageWidth();
+void setBorderImageWidth(String value);
+void clearBorderImageWidth();
+String getBorderLeft();
+void setBorderLeft(String value);
+void clearBorderLeft();
+String getBorderLeftColor();
+void setBorderLeftColor(String value);
+void clearBorderLeftColor();
+String getBorderLeftStyle();
+void setBorderLeftStyle(String value);
+void clearBorderLeftStyle();
+String getBorderLeftWidth();
+void setBorderLeftWidth(String value);
+void clearBorderLeftWidth();
+String getBorderRadius();
+void setBorderRadius(String value);
+void clearBorderRadius();
+String getBorderRight();
+void setBorderRight(String value);
+void clearBorderRight();
+String getBorderRightColor();
+void setBorderRightColor(String value);
+void clearBorderRightColor();
+String getBorderRightStyle();
+void setBorderRightStyle(String value);
+void clearBorderRightStyle();
+String getBorderRightWidth();
+void setBorderRightWidth(String value);
+void clearBorderRightWidth();
+String getBorderSpacing();
+void setBorderSpacing(String value);
+void clearBorderSpacing();
+
+public interface BorderStyle {
+ public static final String NONE = "none";
+ public static final String HIDDEN = "hidden";
+ public static final String DOTTED = "dotted";
+ public static final String DASHED = "dashed";
+ public static final String SOLID = "solid";
+}
+
+String getBorderStyle();
+void setBorderStyle(String value);
+void clearBorderStyle();
+String getBorderTop();
+void setBorderTop(String value);
+void clearBorderTop();
+String getBorderTopColor();
+void setBorderTopColor(String value);
+void clearBorderTopColor();
+String getBorderTopLeftRadius();
+void setBorderTopLeftRadius(String value);
+void clearBorderTopLeftRadius();
+String getBorderTopRightRadius();
+void setBorderTopRightRadius(String value);
+void clearBorderTopRightRadius();
+String getBorderTopStyle();
+void setBorderTopStyle(String value);
+void clearBorderTopStyle();
+String getBorderTopWidth();
+void setBorderTopWidth(String value);
+void clearBorderTopWidth();
+String getBorderWidth();
+void setBorderWidth(String value);
+void clearBorderWidth();
+void setBorderWidth(double value, String unit);
+String getBottom();
+void setBottom(String value);
+void clearBottom();
+void setBottom(double value, String unit);
+String getBoxShadow();
+void setBoxShadow(String value);
+void clearBoxShadow();
+String getBoxSizing();
+void setBoxSizing(String value);
+void clearBoxSizing();
+String getCaptionSide();
+void setCaptionSide(String value);
+void clearCaptionSide();
+String getClear();
+void setClear(String value);
+void clearClear();
+String getClip();
+void setClip(String value);
+void clearClip();
+String getContent();
+void setContent(String value);
+void clearContent();
+String getCounterIncrement();
+void setCounterIncrement(String value);
+void clearCounterIncrement();
+String getCounterReset();
+void setCounterReset(String value);
+void clearCounterReset();
+
+public interface Cursor {
+ public static final String DEFAULT = "default";
+ public static final String AUTO = "auto";
+ public static final String CROSSHAIR = "crosshair";
+ public static final String POINTER = "pointer";
+ public static final String MOVE = "move";
+ public static final String E_RESIZE = "e-resize";
+ public static final String NE_RESIZE = "ne-resize";
+ public static final String NW_RESIZE = "nw-resize";
+ public static final String N_RESIZE = "n-resize";
+ public static final String SE_RESIZE = "se-resize";
+ public static final String SW_RESIZE = "sw-resize";
+ public static final String S_RESIZE = "s-resize";
+ public static final String W_RESIZE = "w-resize";
+ public static final String TEXT = "text";
+ public static final String WAIT = "wait";
+ public static final String HELP = "help";
+ public static final String COL_RESIZE = "col-resize";
+ public static final String ROW_RESIZE = "row-resize";
+}
+
+String getCursor();
+void setCursor(String value);
+void clearCursor();
+String getEmptyCells();
+void setEmptyCells(String value);
+void clearEmptyCells();
+String getFloat();
+void setFloat(String value);
+void clearFloat();
+String getFontStretch();
+void setFontStretch(String value);
+void clearFontStretch();
+String getHeight();
+void setHeight(String value);
+void clearHeight();
+void setHeight(double value, String unit);
+String getImageRendering();
+void setImageRendering(String value);
+void clearImageRendering();
+String getLeft();
+void setLeft(String value);
+void clearLeft();
+void setLeft(double value, String unit);
+String getLetterSpacing();
+void setLetterSpacing(String value);
+void clearLetterSpacing();
+String getListStyle();
+void setListStyle(String value);
+void clearListStyle();
+
+public interface ListStyleType {
+ public static final String NONE = "none";
+ public static final String DISC = "disc";
+ public static final String CIRCLE = "circle";
+ public static final String SQUARE = "square";
+ public static final String DECIMAL = "decimal";
+ public static final String LOWER_ALPHA = "lower-alpha";
+ public static final String UPPER_ALPHA = "upper-alpha";
+ public static final String LOWER_ROMAN = "lower-roman";
+ public static final String UPPER_ROMAN = "upper-roman";
+}
+
+String getListStyleType();
+void setListStyleType(String value);
+void clearListStyleType();
+String getListStyleImage();
+void setListStyleImage(String value);
+void clearListStyleImage();
+String getListStylePosition();
+void setListStylePosition(String value);
+void clearListStylePosition();
+String getMargin();
+void setMargin(String value);
+void clearMargin();
+void setMargin(double value, String unit);
+String getMarginBottom();
+void setMarginBottom(String value);
+void clearMarginBottom();
+void setMarginBottom(double value, String unit);
+String getMarginLeft();
+void setMarginLeft(String value);
+void clearMarginLeft();
+void setMarginLeft(double value, String unit);
+String getMarginRight();
+void setMarginRight(String value);
+void clearMarginRight();
+void setMarginRight(double value, String unit);
+String getMarginTop();
+void setMarginTop(String value);
+void clearMarginTop();
+void setMarginTop(double value, String unit);
+String getMaxHeight();
+void setMaxHeight(String value);
+void clearMaxHeight();
+String getMaxWidth();
+void setMaxWidth(String value);
+void clearMaxWidth();
+String getMinHeight();
+void setMinHeight(String value);
+void clearMinHeight();
+String getMinWidth();
+void setMinWidth(String value);
+void clearMinWidth();
+double getOpacity();
+void setOpacity(double value);
+void clearOpacity();
+String getOrphans();
+void setOrphans(String value);
+void clearOrphans();
+String getOutline();
+void setOutline(String value);
+void clearOutline();
+String getOutlineColor();
+void setOutlineColor(String value);
+void clearOutlineColor();
+String getOutlineOffset();
+void setOutlineOffset(String value);
+void clearOutlineOffset();
+String getOutlineStyle();
+void setOutlineStyle(String value);
+void clearOutlineStyle();
+String getOutlineWidth();
+void setOutlineWidth(String value);
+void clearOutlineWidth();
+
+public interface Overflow {
+ public static final String VISIBLE = "visible";
+ public static final String HIDDEN = "hidden";
+ public static final String SCROLL = "scroll";
+ public static final String AUTO = "auto";
+}
+
+String getOverflow();
+void setOverflow(String value);
+void clearOverflow();
+
+public interface OverflowX {
+ public static final String VISIBLE = "visible";
+ public static final String HIDDEN = "hidden";
+ public static final String SCROLL = "scroll";
+ public static final String AUTO = "auto";
+}
+
+String getOverflowX();
+void setOverflowX(String value);
+void clearOverflowX();
+
+public interface OverflowY {
+ public static final String VISIBLE = "visible";
+ public static final String HIDDEN = "hidden";
+ public static final String SCROLL = "scroll";
+ public static final String AUTO = "auto";
+}
+
+String getOverflowY();
+void setOverflowY(String value);
+void clearOverflowY();
+String getPadding();
+void setPadding(String value);
+void clearPadding();
+void setPadding(double value, String unit);
+String getPaddingBottom();
+void setPaddingBottom(String value);
+void clearPaddingBottom();
+void setPaddingBottom(double value, String unit);
+String getPaddingLeft();
+void setPaddingLeft(String value);
+void clearPaddingLeft();
+void setPaddingLeft(double value, String unit);
+String getPaddingRight();
+void setPaddingRight(String value);
+void clearPaddingRight();
+void setPaddingRight(double value, String unit);
+String getPaddingTop();
+void setPaddingTop(String value);
+void clearPaddingTop();
+void setPaddingTop(double value, String unit);
+String getPage();
+void setPage(String value);
+void clearPage();
+String getPageBreakAfter();
+void setPageBreakAfter(String value);
+void clearPageBreakAfter();
+String getPageBreakBefore();
+void setPageBreakBefore(String value);
+void clearPageBreakBefore();
+String getPageBreakInside();
+void setPageBreakInside(String value);
+void clearPageBreakInside();
+String getPointerEvents();
+void setPointerEvents(String value);
+void clearPointerEvents();
+
+public interface Position {
+ public static final String STATIC = "static";
+ public static final String RELATIVE = "relative";
+ public static final String ABSOLUTE = "absolute";
+ public static final String FIXED = "fixed";
+}
+
+String getPosition();
+void setPosition(String value);
+void clearPosition();
+String getQuotes();
+void setQuotes(String value);
+void clearQuotes();
+String getResize();
+void setResize(String value);
+void clearResize();
+String getRight();
+void setRight(String value);
+void clearRight();
+void setRight(double value, String unit);
+String getSize();
+void setSize(String value);
+void clearSize();
+String getSrc();
+void setSrc(String value);
+void clearSrc();
+String getSpeak();
+void setSpeak(String value);
+void clearSpeak();
+String getTableLayout();
+void setTableLayout(String value);
+void clearTableLayout();
+String getTabSize();
+void setTabSize(String value);
+void clearTabSize();
+String getTextAlign();
+void setTextAlign(String value);
+void clearTextAlign();
+
+public interface TextDecoration {
+ public static final String NONE = "none";
+ public static final String UNDERLINE = "underline";
+ public static final String OVERLINE = "overline";
+ public static final String LINE_THROUGH = "line-through";
+}
+
+String getTextDecoration();
+void setTextDecoration(String value);
+void clearTextDecoration();
+String getTextIndent();
+void setTextIndent(String value);
+void clearTextIndent();
+String getTextLineThrough();
+void setTextLineThrough(String value);
+void clearTextLineThrough();
+String getTextLineThroughColor();
+void setTextLineThroughColor(String value);
+void clearTextLineThroughColor();
+String getTextLineThroughMode();
+void setTextLineThroughMode(String value);
+void clearTextLineThroughMode();
+String getTextLineThroughStyle();
+void setTextLineThroughStyle(String value);
+void clearTextLineThroughStyle();
+String getTextLineThroughWidth();
+void setTextLineThroughWidth(String value);
+void clearTextLineThroughWidth();
+String getTextOverflow();
+void setTextOverflow(String value);
+void clearTextOverflow();
+String getTextOverline();
+void setTextOverline(String value);
+void clearTextOverline();
+String getTextOverlineColor();
+void setTextOverlineColor(String value);
+void clearTextOverlineColor();
+String getTextOverlineMode();
+void setTextOverlineMode(String value);
+void clearTextOverlineMode();
+String getTextOverlineStyle();
+void setTextOverlineStyle(String value);
+void clearTextOverlineStyle();
+String getTextOverlineWidth();
+void setTextOverlineWidth(String value);
+void clearTextOverlineWidth();
+String getTextShadow();
+void setTextShadow(String value);
+void clearTextShadow();
+String getTextTransform();
+void setTextTransform(String value);
+void clearTextTransform();
+String getTextUnderline();
+void setTextUnderline(String value);
+void clearTextUnderline();
+String getTextUnderlineColor();
+void setTextUnderlineColor(String value);
+void clearTextUnderlineColor();
+String getTextUnderlineMode();
+void setTextUnderlineMode(String value);
+void clearTextUnderlineMode();
+String getTextUnderlineStyle();
+void setTextUnderlineStyle(String value);
+void clearTextUnderlineStyle();
+String getTextUnderlineWidth();
+void setTextUnderlineWidth(String value);
+void clearTextUnderlineWidth();
+String getTop();
+void setTop(String value);
+void clearTop();
+void setTop(double value, String unit);
+String getUnicodeBidi();
+void setUnicodeBidi(String value);
+void clearUnicodeBidi();
+String getUnicodeRange();
+void setUnicodeRange(String value);
+void clearUnicodeRange();
+String getVerticalAlign();
+void setVerticalAlign(String value);
+void clearVerticalAlign();
+
+public interface Visibility {
+ public static final String VISIBLE = "visible";
+ public static final String HIDDEN = "hidden";
+}
+
+String getVisibility();
+void setVisibility(String value);
+void clearVisibility();
+
+public interface WhiteSpace {
+ public static final String PRE = "pre";
+ public static final String NOWRAP = "nowrap";
+ public static final String PRE_WRAP = "pre-wrap";
+ public static final String PRE_LINE = "pre-line";
+}
+
+String getWhiteSpace();
+void setWhiteSpace(String value);
+void clearWhiteSpace();
+String getWidows();
+void setWidows(String value);
+void clearWidows();
+String getWidth();
+void setWidth(String value);
+void clearWidth();
+void setWidth(double value, String unit);
+String getWordBreak();
+void setWordBreak(String value);
+void clearWordBreak();
+String getWordSpacing();
+void setWordSpacing(String value);
+void clearWordSpacing();
+String getWordWrap();
+void setWordWrap(String value);
+void clearWordWrap();
+int getZIndex();
+void setZIndex(int value);
+void clearZIndex();
+String getWebkitAnimation();
+void setWebkitAnimation(String value);
+void clearWebkitAnimation();
+String getWebkitAnimationDelay();
+void setWebkitAnimationDelay(String value);
+void clearWebkitAnimationDelay();
+String getWebkitAnimationDirection();
+void setWebkitAnimationDirection(String value);
+void clearWebkitAnimationDirection();
+String getWebkitAnimationDuration();
+void setWebkitAnimationDuration(String value);
+void clearWebkitAnimationDuration();
+String getWebkitAnimationFillMode();
+void setWebkitAnimationFillMode(String value);
+void clearWebkitAnimationFillMode();
+String getWebkitAnimationIterationCount();
+void setWebkitAnimationIterationCount(String value);
+void clearWebkitAnimationIterationCount();
+String getWebkitAnimationName();
+void setWebkitAnimationName(String value);
+void clearWebkitAnimationName();
+String getWebkitAnimationPlayState();
+void setWebkitAnimationPlayState(String value);
+void clearWebkitAnimationPlayState();
+String getWebkitAnimationTimingFunction();
+void setWebkitAnimationTimingFunction(String value);
+void clearWebkitAnimationTimingFunction();
+String getWebkitAppearance();
+void setWebkitAppearance(String value);
+void clearWebkitAppearance();
+String getWebkitAspectRatio();
+void setWebkitAspectRatio(String value);
+void clearWebkitAspectRatio();
+String getWebkitBackfaceVisibility();
+void setWebkitBackfaceVisibility(String value);
+void clearWebkitBackfaceVisibility();
+String getWebkitBackgroundClip();
+void setWebkitBackgroundClip(String value);
+void clearWebkitBackgroundClip();
+String getWebkitBackgroundComposite();
+void setWebkitBackgroundComposite(String value);
+void clearWebkitBackgroundComposite();
+String getWebkitBackgroundOrigin();
+void setWebkitBackgroundOrigin(String value);
+void clearWebkitBackgroundOrigin();
+String getWebkitBackgroundSize();
+void setWebkitBackgroundSize(String value);
+void clearWebkitBackgroundSize();
+String getWebkitBorderAfter();
+void setWebkitBorderAfter(String value);
+void clearWebkitBorderAfter();
+String getWebkitBorderAfterColor();
+void setWebkitBorderAfterColor(String value);
+void clearWebkitBorderAfterColor();
+String getWebkitBorderAfterStyle();
+void setWebkitBorderAfterStyle(String value);
+void clearWebkitBorderAfterStyle();
+String getWebkitBorderAfterWidth();
+void setWebkitBorderAfterWidth(String value);
+void clearWebkitBorderAfterWidth();
+String getWebkitBorderBefore();
+void setWebkitBorderBefore(String value);
+void clearWebkitBorderBefore();
+String getWebkitBorderBeforeColor();
+void setWebkitBorderBeforeColor(String value);
+void clearWebkitBorderBeforeColor();
+String getWebkitBorderBeforeStyle();
+void setWebkitBorderBeforeStyle(String value);
+void clearWebkitBorderBeforeStyle();
+String getWebkitBorderBeforeWidth();
+void setWebkitBorderBeforeWidth(String value);
+void clearWebkitBorderBeforeWidth();
+String getWebkitBorderEnd();
+void setWebkitBorderEnd(String value);
+void clearWebkitBorderEnd();
+String getWebkitBorderEndColor();
+void setWebkitBorderEndColor(String value);
+void clearWebkitBorderEndColor();
+String getWebkitBorderEndStyle();
+void setWebkitBorderEndStyle(String value);
+void clearWebkitBorderEndStyle();
+String getWebkitBorderEndWidth();
+void setWebkitBorderEndWidth(String value);
+void clearWebkitBorderEndWidth();
+String getWebkitBorderFit();
+void setWebkitBorderFit(String value);
+void clearWebkitBorderFit();
+String getWebkitBorderHorizontalSpacing();
+void setWebkitBorderHorizontalSpacing(String value);
+void clearWebkitBorderHorizontalSpacing();
+String getWebkitBorderImage();
+void setWebkitBorderImage(String value);
+void clearWebkitBorderImage();
+String getWebkitBorderRadius();
+void setWebkitBorderRadius(String value);
+void clearWebkitBorderRadius();
+String getWebkitBorderStart();
+void setWebkitBorderStart(String value);
+void clearWebkitBorderStart();
+String getWebkitBorderStartColor();
+void setWebkitBorderStartColor(String value);
+void clearWebkitBorderStartColor();
+String getWebkitBorderStartStyle();
+void setWebkitBorderStartStyle(String value);
+void clearWebkitBorderStartStyle();
+String getWebkitBorderStartWidth();
+void setWebkitBorderStartWidth(String value);
+void clearWebkitBorderStartWidth();
+String getWebkitBorderVerticalSpacing();
+void setWebkitBorderVerticalSpacing(String value);
+void clearWebkitBorderVerticalSpacing();
+String getWebkitBoxAlign();
+void setWebkitBoxAlign(String value);
+void clearWebkitBoxAlign();
+String getWebkitBoxDirection();
+void setWebkitBoxDirection(String value);
+void clearWebkitBoxDirection();
+String getWebkitBoxFlex();
+void setWebkitBoxFlex(String value);
+void clearWebkitBoxFlex();
+String getWebkitBoxFlexGroup();
+void setWebkitBoxFlexGroup(String value);
+void clearWebkitBoxFlexGroup();
+String getWebkitBoxLines();
+void setWebkitBoxLines(String value);
+void clearWebkitBoxLines();
+String getWebkitBoxOrdinalGroup();
+void setWebkitBoxOrdinalGroup(String value);
+void clearWebkitBoxOrdinalGroup();
+String getWebkitBoxOrient();
+void setWebkitBoxOrient(String value);
+void clearWebkitBoxOrient();
+String getWebkitBoxPack();
+void setWebkitBoxPack(String value);
+void clearWebkitBoxPack();
+String getWebkitBoxReflect();
+void setWebkitBoxReflect(String value);
+void clearWebkitBoxReflect();
+String getWebkitBoxShadow();
+void setWebkitBoxShadow(String value);
+void clearWebkitBoxShadow();
+String getWebkitColorCorrection();
+void setWebkitColorCorrection(String value);
+void clearWebkitColorCorrection();
+String getWebkitColumnAxis();
+void setWebkitColumnAxis(String value);
+void clearWebkitColumnAxis();
+String getWebkitColumnBreakAfter();
+void setWebkitColumnBreakAfter(String value);
+void clearWebkitColumnBreakAfter();
+String getWebkitColumnBreakBefore();
+void setWebkitColumnBreakBefore(String value);
+void clearWebkitColumnBreakBefore();
+String getWebkitColumnBreakInside();
+void setWebkitColumnBreakInside(String value);
+void clearWebkitColumnBreakInside();
+String getWebkitColumnCount();
+void setWebkitColumnCount(String value);
+void clearWebkitColumnCount();
+String getWebkitColumnGap();
+void setWebkitColumnGap(String value);
+void clearWebkitColumnGap();
+String getWebkitColumnRule();
+void setWebkitColumnRule(String value);
+void clearWebkitColumnRule();
+String getWebkitColumnRuleColor();
+void setWebkitColumnRuleColor(String value);
+void clearWebkitColumnRuleColor();
+String getWebkitColumnRuleStyle();
+void setWebkitColumnRuleStyle(String value);
+void clearWebkitColumnRuleStyle();
+String getWebkitColumnRuleWidth();
+void setWebkitColumnRuleWidth(String value);
+void clearWebkitColumnRuleWidth();
+String getWebkitColumnSpan();
+void setWebkitColumnSpan(String value);
+void clearWebkitColumnSpan();
+String getWebkitColumnWidth();
+void setWebkitColumnWidth(String value);
+void clearWebkitColumnWidth();
+String getWebkitColumns();
+void setWebkitColumns(String value);
+void clearWebkitColumns();
+String getWebkitFilter();
+void setWebkitFilter(String value);
+void clearWebkitFilter();
+String getWebkitFlex();
+void setWebkitFlex(String value);
+void clearWebkitFlex();
+String getWebkitFlexAlign();
+void setWebkitFlexAlign(String value);
+void clearWebkitFlexAlign();
+String getWebkitFlexDirection();
+void setWebkitFlexDirection(String value);
+void clearWebkitFlexDirection();
+String getWebkitFlexFlow();
+void setWebkitFlexFlow(String value);
+void clearWebkitFlexFlow();
+String getWebkitFlexItemAlign();
+void setWebkitFlexItemAlign(String value);
+void clearWebkitFlexItemAlign();
+String getWebkitFlexLinePack();
+void setWebkitFlexLinePack(String value);
+void clearWebkitFlexLinePack();
+String getWebkitFlexOrder();
+void setWebkitFlexOrder(String value);
+void clearWebkitFlexOrder();
+String getWebkitFlexPack();
+void setWebkitFlexPack(String value);
+void clearWebkitFlexPack();
+String getWebkitFlexWrap();
+void setWebkitFlexWrap(String value);
+void clearWebkitFlexWrap();
+String getWebkitFontSizeDelta();
+void setWebkitFontSizeDelta(String value);
+void clearWebkitFontSizeDelta();
+String getWebkitGridColumns();
+void setWebkitGridColumns(String value);
+void clearWebkitGridColumns();
+String getWebkitGridRows();
+void setWebkitGridRows(String value);
+void clearWebkitGridRows();
+String getWebkitGridColumn();
+void setWebkitGridColumn(String value);
+void clearWebkitGridColumn();
+String getWebkitGridRow();
+void setWebkitGridRow(String value);
+void clearWebkitGridRow();
+String getWebkitHighlight();
+void setWebkitHighlight(String value);
+void clearWebkitHighlight();
+String getWebkitHyphenateCharacter();
+void setWebkitHyphenateCharacter(String value);
+void clearWebkitHyphenateCharacter();
+String getWebkitHyphenateLimitAfter();
+void setWebkitHyphenateLimitAfter(String value);
+void clearWebkitHyphenateLimitAfter();
+String getWebkitHyphenateLimitBefore();
+void setWebkitHyphenateLimitBefore(String value);
+void clearWebkitHyphenateLimitBefore();
+String getWebkitHyphenateLimitLines();
+void setWebkitHyphenateLimitLines(String value);
+void clearWebkitHyphenateLimitLines();
+String getWebkitHyphens();
+void setWebkitHyphens(String value);
+void clearWebkitHyphens();
+String getWebkitLineBoxContain();
+void setWebkitLineBoxContain(String value);
+void clearWebkitLineBoxContain();
+String getWebkitLineAlign();
+void setWebkitLineAlign(String value);
+void clearWebkitLineAlign();
+String getWebkitLineBreak();
+void setWebkitLineBreak(String value);
+void clearWebkitLineBreak();
+String getWebkitLineClamp();
+void setWebkitLineClamp(String value);
+void clearWebkitLineClamp();
+String getWebkitLineGrid();
+void setWebkitLineGrid(String value);
+void clearWebkitLineGrid();
+String getWebkitLineSnap();
+void setWebkitLineSnap(String value);
+void clearWebkitLineSnap();
+String getWebkitLogicalWidth();
+void setWebkitLogicalWidth(String value);
+void clearWebkitLogicalWidth();
+String getWebkitLogicalHeight();
+void setWebkitLogicalHeight(String value);
+void clearWebkitLogicalHeight();
+String getWebkitMarginAfterCollapse();
+void setWebkitMarginAfterCollapse(String value);
+void clearWebkitMarginAfterCollapse();
+String getWebkitMarginBeforeCollapse();
+void setWebkitMarginBeforeCollapse(String value);
+void clearWebkitMarginBeforeCollapse();
+String getWebkitMarginBottomCollapse();
+void setWebkitMarginBottomCollapse(String value);
+void clearWebkitMarginBottomCollapse();
+String getWebkitMarginTopCollapse();
+void setWebkitMarginTopCollapse(String value);
+void clearWebkitMarginTopCollapse();
+String getWebkitMarginCollapse();
+void setWebkitMarginCollapse(String value);
+void clearWebkitMarginCollapse();
+String getWebkitMarginAfter();
+void setWebkitMarginAfter(String value);
+void clearWebkitMarginAfter();
+String getWebkitMarginBefore();
+void setWebkitMarginBefore(String value);
+void clearWebkitMarginBefore();
+String getWebkitMarginEnd();
+void setWebkitMarginEnd(String value);
+void clearWebkitMarginEnd();
+String getWebkitMarginStart();
+void setWebkitMarginStart(String value);
+void clearWebkitMarginStart();
+String getWebkitMarquee();
+void setWebkitMarquee(String value);
+void clearWebkitMarquee();
+String getWebkitMarqueeDirection();
+void setWebkitMarqueeDirection(String value);
+void clearWebkitMarqueeDirection();
+String getWebkitMarqueeIncrement();
+void setWebkitMarqueeIncrement(String value);
+void clearWebkitMarqueeIncrement();
+String getWebkitMarqueeRepetition();
+void setWebkitMarqueeRepetition(String value);
+void clearWebkitMarqueeRepetition();
+String getWebkitMarqueeSpeed();
+void setWebkitMarqueeSpeed(String value);
+void clearWebkitMarqueeSpeed();
+String getWebkitMarqueeStyle();
+void setWebkitMarqueeStyle(String value);
+void clearWebkitMarqueeStyle();
+String getWebkitMask();
+void setWebkitMask(String value);
+void clearWebkitMask();
+String getWebkitMaskAttachment();
+void setWebkitMaskAttachment(String value);
+void clearWebkitMaskAttachment();
+String getWebkitMaskBoxImage();
+void setWebkitMaskBoxImage(String value);
+void clearWebkitMaskBoxImage();
+String getWebkitMaskBoxImageOutset();
+void setWebkitMaskBoxImageOutset(String value);
+void clearWebkitMaskBoxImageOutset();
+String getWebkitMaskBoxImageRepeat();
+void setWebkitMaskBoxImageRepeat(String value);
+void clearWebkitMaskBoxImageRepeat();
+String getWebkitMaskBoxImageSlice();
+void setWebkitMaskBoxImageSlice(String value);
+void clearWebkitMaskBoxImageSlice();
+String getWebkitMaskBoxImageSource();
+void setWebkitMaskBoxImageSource(String value);
+void clearWebkitMaskBoxImageSource();
+String getWebkitMaskBoxImageWidth();
+void setWebkitMaskBoxImageWidth(String value);
+void clearWebkitMaskBoxImageWidth();
+String getWebkitMaskClip();
+void setWebkitMaskClip(String value);
+void clearWebkitMaskClip();
+String getWebkitMaskComposite();
+void setWebkitMaskComposite(String value);
+void clearWebkitMaskComposite();
+String getWebkitMaskImage();
+void setWebkitMaskImage(String value);
+void clearWebkitMaskImage();
+String getWebkitMaskOrigin();
+void setWebkitMaskOrigin(String value);
+void clearWebkitMaskOrigin();
+String getWebkitMaskPosition();
+void setWebkitMaskPosition(String value);
+void clearWebkitMaskPosition();
+String getWebkitMaskPositionX();
+void setWebkitMaskPositionX(String value);
+void clearWebkitMaskPositionX();
+String getWebkitMaskPositionY();
+void setWebkitMaskPositionY(String value);
+void clearWebkitMaskPositionY();
+String getWebkitMaskRepeat();
+void setWebkitMaskRepeat(String value);
+void clearWebkitMaskRepeat();
+String getWebkitMaskRepeatX();
+void setWebkitMaskRepeatX(String value);
+void clearWebkitMaskRepeatX();
+String getWebkitMaskRepeatY();
+void setWebkitMaskRepeatY(String value);
+void clearWebkitMaskRepeatY();
+String getWebkitMaskSize();
+void setWebkitMaskSize(String value);
+void clearWebkitMaskSize();
+String getWebkitMatchNearestMailBlockquoteColor();
+void setWebkitMatchNearestMailBlockquoteColor(String value);
+void clearWebkitMatchNearestMailBlockquoteColor();
+String getWebkitMaxLogicalWidth();
+void setWebkitMaxLogicalWidth(String value);
+void clearWebkitMaxLogicalWidth();
+String getWebkitMaxLogicalHeight();
+void setWebkitMaxLogicalHeight(String value);
+void clearWebkitMaxLogicalHeight();
+String getWebkitMinLogicalWidth();
+void setWebkitMinLogicalWidth(String value);
+void clearWebkitMinLogicalWidth();
+String getWebkitMinLogicalHeight();
+void setWebkitMinLogicalHeight(String value);
+void clearWebkitMinLogicalHeight();
+String getWebkitNbspMode();
+void setWebkitNbspMode(String value);
+void clearWebkitNbspMode();
+String getWebkitPaddingAfter();
+void setWebkitPaddingAfter(String value);
+void clearWebkitPaddingAfter();
+String getWebkitPaddingBefore();
+void setWebkitPaddingBefore(String value);
+void clearWebkitPaddingBefore();
+String getWebkitPaddingEnd();
+void setWebkitPaddingEnd(String value);
+void clearWebkitPaddingEnd();
+String getWebkitPaddingStart();
+void setWebkitPaddingStart(String value);
+void clearWebkitPaddingStart();
+String getWebkitPerspective();
+void setWebkitPerspective(String value);
+void clearWebkitPerspective();
+String getWebkitPerspectiveOrigin();
+void setWebkitPerspectiveOrigin(String value);
+void clearWebkitPerspectiveOrigin();
+String getWebkitPerspectiveOriginX();
+void setWebkitPerspectiveOriginX(String value);
+void clearWebkitPerspectiveOriginX();
+String getWebkitPerspectiveOriginY();
+void setWebkitPerspectiveOriginY(String value);
+void clearWebkitPerspectiveOriginY();
+String getWebkitPrintColorAdjust();
+void setWebkitPrintColorAdjust(String value);
+void clearWebkitPrintColorAdjust();
+String getWebkitRtlOrdering();
+void setWebkitRtlOrdering(String value);
+void clearWebkitRtlOrdering();
+String getWebkitTextCombine();
+void setWebkitTextCombine(String value);
+void clearWebkitTextCombine();
+String getWebkitTextDecorationsInEffect();
+void setWebkitTextDecorationsInEffect(String value);
+void clearWebkitTextDecorationsInEffect();
+String getWebkitTextEmphasis();
+void setWebkitTextEmphasis(String value);
+void clearWebkitTextEmphasis();
+String getWebkitTextEmphasisColor();
+void setWebkitTextEmphasisColor(String value);
+void clearWebkitTextEmphasisColor();
+String getWebkitTextEmphasisPosition();
+void setWebkitTextEmphasisPosition(String value);
+void clearWebkitTextEmphasisPosition();
+String getWebkitTextEmphasisStyle();
+void setWebkitTextEmphasisStyle(String value);
+void clearWebkitTextEmphasisStyle();
+String getWebkitTextFillColor();
+void setWebkitTextFillColor(String value);
+void clearWebkitTextFillColor();
+String getWebkitTextSecurity();
+void setWebkitTextSecurity(String value);
+void clearWebkitTextSecurity();
+String getWebkitTextStroke();
+void setWebkitTextStroke(String value);
+void clearWebkitTextStroke();
+String getWebkitTextStrokeColor();
+void setWebkitTextStrokeColor(String value);
+void clearWebkitTextStrokeColor();
+String getWebkitTextStrokeWidth();
+void setWebkitTextStrokeWidth(String value);
+void clearWebkitTextStrokeWidth();
+String getWebkitTransform();
+void setWebkitTransform(String value);
+void clearWebkitTransform();
+String getWebkitTransformOrigin();
+void setWebkitTransformOrigin(String value);
+void clearWebkitTransformOrigin();
+String getWebkitTransformOriginX();
+void setWebkitTransformOriginX(String value);
+void clearWebkitTransformOriginX();
+String getWebkitTransformOriginY();
+void setWebkitTransformOriginY(String value);
+void clearWebkitTransformOriginY();
+String getWebkitTransformOriginZ();
+void setWebkitTransformOriginZ(String value);
+void clearWebkitTransformOriginZ();
+String getWebkitTransformStyle();
+void setWebkitTransformStyle(String value);
+void clearWebkitTransformStyle();
+String getWebkitTransition();
+void setWebkitTransition(String value);
+void clearWebkitTransition();
+String getWebkitTransitionDelay();
+void setWebkitTransitionDelay(String value);
+void clearWebkitTransitionDelay();
+String getWebkitTransitionDuration();
+void setWebkitTransitionDuration(String value);
+void clearWebkitTransitionDuration();
+String getWebkitTransitionProperty();
+void setWebkitTransitionProperty(String value);
+void clearWebkitTransitionProperty();
+String getWebkitTransitionTimingFunction();
+void setWebkitTransitionTimingFunction(String value);
+void clearWebkitTransitionTimingFunction();
+String getWebkitUserDrag();
+void setWebkitUserDrag(String value);
+void clearWebkitUserDrag();
+String getWebkitUserModify();
+void setWebkitUserModify(String value);
+void clearWebkitUserModify();
+String getWebkitUserSelect();
+void setWebkitUserSelect(String value);
+void clearWebkitUserSelect();
+String getWebkitFlowInto();
+void setWebkitFlowInto(String value);
+void clearWebkitFlowInto();
+String getWebkitFlowFrom();
+void setWebkitFlowFrom(String value);
+void clearWebkitFlowFrom();
+String getWebkitRegionOverflow();
+void setWebkitRegionOverflow(String value);
+void clearWebkitRegionOverflow();
+String getWebkitShapeInside();
+void setWebkitShapeInside(String value);
+void clearWebkitShapeInside();
+String getWebkitShapeOutside();
+void setWebkitShapeOutside(String value);
+void clearWebkitShapeOutside();
+String getWebkitWrapMargin();
+void setWebkitWrapMargin(String value);
+void clearWebkitWrapMargin();
+String getWebkitWrapPadding();
+void setWebkitWrapPadding(String value);
+void clearWebkitWrapPadding();
+String getWebkitRegionBreakAfter();
+void setWebkitRegionBreakAfter(String value);
+void clearWebkitRegionBreakAfter();
+String getWebkitRegionBreakBefore();
+void setWebkitRegionBreakBefore(String value);
+void clearWebkitRegionBreakBefore();
+String getWebkitRegionBreakInside();
+void setWebkitRegionBreakInside(String value);
+void clearWebkitRegionBreakInside();
+String getWebkitWrapFlow();
+void setWebkitWrapFlow(String value);
+void clearWebkitWrapFlow();
+String getWebkitWrapThrough();
+void setWebkitWrapThrough(String value);
+void clearWebkitWrapThrough();
+String getWebkitWrap();
+void setWebkitWrap(String value);
+void clearWebkitWrap();
+String getWebkitTapHighlightColor();
+void setWebkitTapHighlightColor(String value);
+void clearWebkitTapHighlightColor();
+String getWebkitDashboardRegion();
+void setWebkitDashboardRegion(String value);
+void clearWebkitDashboardRegion();
+String getWebkitOverflowScrolling();
+void setWebkitOverflowScrolling(String value);
+void clearWebkitOverflowScrolling();
+}
diff --git a/elemental/idl/templates/java_interface_Document.darttemplate b/elemental/idl/templates/java_interface_Document.darttemplate
new file mode 100644
index 0000000..6fdc25e
--- /dev/null
+++ b/elemental/idl/templates/java_interface_Document.darttemplate
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+import elemental.svg.*;
+
+import java.util.Date;
+
+/**
+ * $CLASSJAVADOC
+ */
+public interface $ID$EXTENDS {
+
+/**
+ * Contains the set of standard values used with {@link #createEvent}.
+ */
+public interface Events {
+ public static final String CUSTOM = "CustomEvent";
+ public static final String KEYBOARD = "KeyboardEvent";
+ public static final String MESSAGE = "MessageEvent";
+ public static final String MOUSE = "MouseEvent";
+ public static final String MUTATION = "MutationEvent";
+ public static final String OVERFLOW = "OverflowEvent";
+ public static final String PAGE_TRANSITION = "PageTransitionEvent";
+ public static final String PROGRESS = "ProgressEvent";
+ public static final String STORAGE = "StorageEvent";
+ public static final String TEXT = "TextEvent";
+ public static final String UI = "UIEvent";
+ public static final String WEBKIT_ANIMATION = "WebKitAnimationEvent";
+ public static final String WEBKIT_TRANSITION = "WebKitTransitionEvent";
+ public static final String WHEEL = "WheelEvent";
+ public static final String SVGS = "SVGEvents";
+ public static final String SVG_ZOOMS = "SVGZoomEvents";
+ public static final String TOUCH = "TouchEvent";
+}
+
+/**
+ * Contains the set of standard values returned by {@link #readyState}.
+ */
+public interface ReadyState {
+
+ /**
+ * Indicates the document is still loading and parsing.
+ */
+ public static final String LOADING = "loading";
+
+ /**
+ * Indicates the document is finished parsing but is still loading
+ * subresources.
+ */
+ public static final String INTERACTIVE = "interactive";
+
+ /**
+ * Indicates the document and all subresources have been loaded.
+ */
+ public static final String COMPLETE = "complete";
+}
+$!MEMBERS}
diff --git a/elemental/idl/templates/java_interface_Event.darttemplate b/elemental/idl/templates/java_interface_Event.darttemplate
new file mode 100644
index 0000000..b550de3
--- /dev/null
+++ b/elemental/idl/templates/java_interface_Event.darttemplate
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+
+import java.util.Date;
+
+/**
+ * $CLASSJAVADOC
+ */
+public interface $ID$EXTENDS {
+public static final String CLICK = "click";
+public static final String CONTEXTMENU = "contextmenu";
+public static final String DBLCLICK = "dblclick";
+public static final String CHANGE = "change";
+public static final String MOUSEDOWN = "mousedown";
+public static final String MOUSEMOVE = "mousemove";
+public static final String MOUSEOUT = "mouseout";
+public static final String MOUSEOVER = "mouseover";
+public static final String MOUSEUP = "mouseup";
+public static final String MOUSEWHEEL = "mousewheel";
+public static final String FOCUS = "focus";
+public static final String FOCUSIN = "focusin";
+public static final String FOCUSOUT = "focusout";
+public static final String BLUR = "blur";
+public static final String KEYDOWN = "keydown";
+public static final String KEYPRESS = "keypress";
+public static final String KEYUP = "keyup";
+public static final String SCROLL = "scroll";
+public static final String BEFORECUT = "beforecut";
+public static final String CUT = "cut";
+public static final String BEFORECOPY = "beforecopy";
+public static final String COPY = "copy";
+public static final String BEFOREPASTE = "beforepaste";
+public static final String PASTE = "paste";
+public static final String DRAGENTER = "dragenter";
+public static final String DRAGOVER = "dragover";
+public static final String DRAGLEAVE = "dragleave";
+public static final String DROP = "drop";
+public static final String DRAGSTART = "dragstart";
+public static final String DRAG = "drag";
+public static final String DRAGEND = "dragend";
+public static final String RESIZE = "resize";
+public static final String SELECTSTART = "selectstart";
+public static final String SUBMIT = "submit";
+public static final String ERROR = "error";
+public static final String WEBKITANIMATIONSTART = "webkitAnimationStart";
+public static final String WEBKITANIMATIONITERATION = "webkitAnimationIteration";
+public static final String WEBKITANIMATIONEND = "webkitAnimationEnd";
+public static final String WEBKITTRANSITIONEND = "webkitTransitionEnd";
+public static final String INPUT = "input";
+public static final String INVALID = "invalid";
+public static final String TOUCHSTART = "touchstart";
+public static final String TOUCHMOVE = "touchmove";
+public static final String TOUCHEND = "touchend";
+public static final String TOUCHCANCEL = "touchcancel";
+
+$!MEMBERS}
diff --git a/elemental/idl/templates/java_interface_KeyboardEvent.darttemplate b/elemental/idl/templates/java_interface_KeyboardEvent.darttemplate
new file mode 100644
index 0000000..8962984
--- /dev/null
+++ b/elemental/idl/templates/java_interface_KeyboardEvent.darttemplate
@@ -0,0 +1,675 @@
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+
+import java.util.Date;
+
+/**
+ * $CLASSJAVADOC
+ */
+public interface $ID$EXTENDS {
+/**
+ * Defines the standard key locations returned by {@link #getKeyLocation}.
+ */
+public interface KeyLocation {
+
+ /**
+ * The event key is not distinguished as the left or right version
+ * of the key, and did not originate from the numeric keypad (or did not
+ * originate with a virtual key corresponding to the numeric keypad).
+ */
+ public static final int STANDARD = 0;
+
+ /**
+ * The event key is in the left key location.
+ */
+ public static final int LEFT = 1;
+
+ /**
+ * The event key is in the right key location.
+ */
+ public static final int RIGHT = 2;
+
+ /**
+ * The event key originated on the numeric keypad or with a virtual key
+ * corresponding to the numeric keypad.
+ */
+ public static final int NUMPAD = 3;
+
+ /**
+ * The event key originated on a mobile device, either on a physical
+ * keypad or a virtual keyboard.
+ */
+ public static final int MOBILE = 4;
+
+ /**
+ * The event key originated on a game controller or a joystick on a mobile
+ * device.
+ */
+ public static final int JOYSTICK = 5;
+}
+
+/**
+ * Defines the expected key codes returned by {@link #getKeyCode}.
+ *
+ * @see "http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/events/keycodes.js"
+ */
+public interface KeyCode {
+ public static final int BACKSPACE = 8;
+ public static final int TAB = 9;
+ public static final int NUM_CENTER = 12; // NUMLOCK on FF/Safari Mac
+ public static final int ENTER = 13;
+ public static final int SHIFT = 16;
+ public static final int CTRL = 17;
+ public static final int ALT = 18;
+ public static final int PAUSE = 19;
+ public static final int CAPS_LOCK = 20;
+ public static final int ESC = 27;
+ public static final int SPACE = 32;
+ public static final int PAGE_UP = 33; // also NUM_NORTH_EAST
+ public static final int PAGE_DOWN = 34; // also NUM_SOUTH_EAST
+ public static final int END = 35; // also NUM_SOUTH_WEST
+ public static final int HOME = 36; // also NUM_NORTH_WEST
+ public static final int LEFT = 37; // also NUM_WEST
+ public static final int UP = 38; // also NUM_NORTH
+ public static final int RIGHT = 39; // also NUM_EAST
+ public static final int DOWN = 40; // also NUM_SOUTH
+ public static final int PRINT_SCREEN = 44;
+ public static final int INSERT = 45; // also NUM_INSERT
+ public static final int DELETE = 46; // also NUM_DELETE
+ public static final int ZERO = 48;
+ public static final int ONE = 49;
+ public static final int TWO = 50;
+ public static final int THREE = 51;
+ public static final int FOUR = 52;
+ public static final int FIVE = 53;
+ public static final int SIX = 54;
+ public static final int SEVEN = 55;
+ public static final int EIGHT = 56;
+ public static final int NINE = 57;
+ public static final int QUESTION_MARK = 63; // needs localization
+ public static final int A = 65;
+ public static final int B = 66;
+ public static final int C = 67;
+ public static final int D = 68;
+ public static final int E = 69;
+ public static final int F = 70;
+ public static final int G = 71;
+ public static final int H = 72;
+ public static final int I = 73;
+ public static final int J = 74;
+ public static final int K = 75;
+ public static final int L = 76;
+ public static final int M = 77;
+ public static final int N = 78;
+ public static final int O = 79;
+ public static final int P = 80;
+ public static final int Q = 81;
+ public static final int R = 82;
+ public static final int S = 83;
+ public static final int T = 84;
+ public static final int U = 85;
+ public static final int V = 86;
+ public static final int W = 87;
+ public static final int X = 88;
+ public static final int Y = 89;
+ public static final int Z = 90;
+ public static final int META = 91;
+ public static final int CONTEXT_MENU = 93;
+ public static final int NUM_ZERO = 96;
+ public static final int NUM_ONE = 97;
+ public static final int NUM_TWO = 98;
+ public static final int NUM_THREE = 99;
+ public static final int NUM_FOUR = 100;
+ public static final int NUM_FIVE = 101;
+ public static final int NUM_SIX = 102;
+ public static final int NUM_SEVEN = 103;
+ public static final int NUM_EIGHT = 104;
+ public static final int NUM_NINE = 105;
+ public static final int NUM_MULTIPLY = 106;
+ public static final int NUM_PLUS = 107;
+ public static final int NUM_MINUS = 109;
+ public static final int NUM_PERIOD = 110;
+ public static final int NUM_DIVISION = 111;
+ public static final int F1 = 112;
+ public static final int F2 = 113;
+ public static final int F3 = 114;
+ public static final int F4 = 115;
+ public static final int F5 = 116;
+ public static final int F6 = 117;
+ public static final int F7 = 118;
+ public static final int F8 = 119;
+ public static final int F9 = 120;
+ public static final int F10 = 121;
+ public static final int F11 = 122;
+ public static final int F12 = 123;
+ public static final int NUMLOCK = 144;
+ public static final int SEMICOLON = 186; // needs localization
+ public static final int DASH = 189; // needs localization
+ public static final int EQUALS = 187; // needs localization
+ public static final int COMMA = 188; // needs localization
+ public static final int PERIOD = 190; // needs localization
+ public static final int SLASH = 191; // needs localization
+ public static final int APOSTROPHE = 192; // needs localization
+ public static final int SINGLE_QUOTE = 222; // needs localization
+ public static final int OPEN_SQUARE_BRACKET = 219; // needs localization
+ public static final int BACKSLASH = 220;
+ public static final int CLOSE_SQUARE_BRACKET = 221;
+ public static final int WIN_KEY = 224;
+ public static final int WIN_IME = 229;
+}
+
+/**
+ * Defines the standard keyboard identifier names for keys that are returned
+ * by {@link #getKeyboardIdentifier} when the key does not have a direct
+ * unicode mapping.
+ */
+public interface KeyName {
+
+ /** The Accept (Commit, OK) key */
+ public static final String ACCEPT = "Accept";
+
+ /** The Add key */
+ public static final String ADD = "Add";
+
+ /** The Again key */
+ public static final String AGAIN = "Again";
+
+ /** The All Candidates key */
+ public static final String ALL_CANDIDATES = "AllCandidates";
+
+ /** The Alphanumeric key */
+ public static final String ALPHANUMERIC = "Alphanumeric";
+
+ /** The Alt (Menu) key */
+ public static final String ALT = "Alt";
+
+ /** The Alt-Graph key */
+ public static final String ALT_GRAPH = "AltGraph";
+
+ /** The Application key */
+ public static final String APPS = "Apps";
+
+ /** The ATTN key */
+ public static final String ATTN = "Attn";
+
+ /** The Browser Back key */
+ public static final String BROWSER_BACK = "BrowserBack";
+
+ /** The Browser Favorites key */
+ public static final String BROWSER_FAVORTIES = "BrowserFavorites";
+
+ /** The Browser Forward key */
+ public static final String BROWSER_FORWARD = "BrowserForward";
+
+ /** The Browser Home key */
+ public static final String BROWSER_NAME = "BrowserHome";
+
+ /** The Browser Refresh key */
+ public static final String BROWSER_REFRESH = "BrowserRefresh";
+
+ /** The Browser Search key */
+ public static final String BROWSER_SEARCH = "BrowserSearch";
+
+ /** The Browser Stop key */
+ public static final String BROWSER_STOP = "BrowserStop";
+
+ /** The Camera key */
+ public static final String CAMERA = "Camera";
+
+ /** The Caps Lock (Capital) key */
+ public static final String CAPS_LOCK = "CapsLock";
+
+ /** The Clear key */
+ public static final String CLEAR = "Clear";
+
+ /** The Code Input key */
+ public static final String CODE_INPUT = "CodeInput";
+
+ /** The Compose key */
+ public static final String COMPOSE = "Compose";
+
+ /** The Control (Ctrl) key */
+ public static final String CONTROL = "Control";
+
+ /** The Crsel key */
+ public static final String CRSEL = "Crsel";
+
+ /** The Convert key */
+ public static final String CONVERT = "Convert";
+
+ /** The Copy key */
+ public static final String COPY = "Copy";
+
+ /** The Cut key */
+ public static final String CUT = "Cut";
+
+ /** The Decimal key */
+ public static final String DECIMAL = "Decimal";
+
+ /** The Divide key */
+ public static final String DIVIDE = "Divide";
+
+ /** The Down Arrow key */
+ public static final String DOWN = "Down";
+
+ /** The diagonal Down-Left Arrow key */
+ public static final String DOWN_LEFT = "DownLeft";
+
+ /** The diagonal Down-Right Arrow key */
+ public static final String DOWN_RIGHT = "DownRight";
+
+ /** The Eject key */
+ public static final String EJECT = "Eject";
+
+ /** The End key */
+ public static final String END = "End";
+
+ /**
+ * The Enter key. Note: This key value must also be used for the Return
+ * (Macintosh numpad) key
+ */
+ public static final String ENTER = "Enter";
+
+ /** The Erase EOF key */
+ public static final String ERASE_EOF= "EraseEof";
+
+ /** The Execute key */
+ public static final String EXECUTE = "Execute";
+
+ /** The Exsel key */
+ public static final String EXSEL = "Exsel";
+
+ /** The Function switch key */
+ public static final String FN = "Fn";
+
+ /** The F1 key */
+ public static final String F1 = "F1";
+
+ /** The F2 key */
+ public static final String F2 = "F2";
+
+ /** The F3 key */
+ public static final String F3 = "F3";
+
+ /** The F4 key */
+ public static final String F4 = "F4";
+
+ /** The F5 key */
+ public static final String F5 = "F5";
+
+ /** The F6 key */
+ public static final String F6 = "F6";
+
+ /** The F7 key */
+ public static final String F7 = "F7";
+
+ /** The F8 key */
+ public static final String F8 = "F8";
+
+ /** The F9 key */
+ public static final String F9 = "F9";
+
+ /** The F10 key */
+ public static final String F10 = "F10";
+
+ /** The F11 key */
+ public static final String F11 = "F11";
+
+ /** The F12 key */
+ public static final String F12 = "F12";
+
+ /** The F13 key */
+ public static final String F13 = "F13";
+
+ /** The F14 key */
+ public static final String F14 = "F14";
+
+ /** The F15 key */
+ public static final String F15 = "F15";
+
+ /** The F16 key */
+ public static final String F16 = "F16";
+
+ /** The F17 key */
+ public static final String F17 = "F17";
+
+ /** The F18 key */
+ public static final String F18 = "F18";
+
+ /** The F19 key */
+ public static final String F19 = "F19";
+
+ /** The F20 key */
+ public static final String F20 = "F20";
+
+ /** The F21 key */
+ public static final String F21 = "F21";
+
+ /** The F22 key */
+ public static final String F22 = "F22";
+
+ /** The F23 key */
+ public static final String F23 = "F23";
+
+ /** The F24 key */
+ public static final String F24 = "F24";
+
+ /** The Final Mode (Final) key used on some asian keyboards */
+ public static final String FINAL_MODE = "FinalMode";
+
+ /** The Find key */
+ public static final String FIND = "Find";
+
+ /** The Full-Width Characters key */
+ public static final String FULL_WIDTH = "FullWidth";
+
+ /** The Half-Width Characters key */
+ public static final String HALF_WIDTH = "HalfWidth";
+
+ /** The Hangul (Korean characters) Mode key */
+ public static final String HANGUL_MODE = "HangulMode";
+
+ /** The Hanja (Korean characters) Mode key */
+ public static final String HANJA_MODE = "HanjaMode";
+
+ /** The Help key */
+ public static final String HELP = "Help";
+
+ /** The Hiragana (Japanese Kana characters) key */
+ public static final String HIRAGANA = "Hiragana";
+
+ /** The Home key */
+ public static final String HOME = "Home";
+
+ /** The Insert (Ins) key */
+ public static final String INSERT = "Insert";
+
+ /** The Japanese-Hiragana key */
+ public static final String JAPANESE_HIRAGANA = "JapaneseHiragana";
+
+ /** The Japanese-Katakana key */
+ public static final String JAPANESE_KATAKANA = "JapaneseKatakana";
+
+ /** The Japanese-Romaji key */
+ public static final String JAPANESE_ROMAJI = "JapaneseRomaji";
+
+ /** The Junja Mode key */
+ public static final String JUNJA_MODE = "JunjaMode";
+
+ /** The Kana Mode (Kana Lock) key */
+ public static final String KANA_MODE = "KanaMode";
+
+ /**
+ * The Kanji (Japanese name for ideographic characters of Chinese origin)
+ * Mode key
+ */
+ public static final String KANJI_MODE = "KanjiMode";
+
+ /** The Katakana (Japanese Kana characters) key */
+ public static final String KATAKANA = "Katakana";
+
+ /** The Start Application One key */
+ public static final String LAUNCH_APPLICATION_1 = "LaunchApplication1";
+
+ /** The Start Application Two key */
+ public static final String LAUNCH_APPLICATION_2 = "LaunchApplication2";
+
+ /** The Start Mail key */
+ public static final String LAUNCH_MAIL = "LaunchMail";
+
+ /** The Left Arrow key */
+ public static final String LEFT = "Left";
+
+ /** The Menu key */
+ public static final String MENU = "Menu";
+
+ /**
+ * The Meta key. Note: This key value shall be also used for the Apple
+ * Command key
+ */
+ public static final String META = "Meta";
+
+ /** The Media Next Track key */
+ public static final String MEDIA_NEXT_TRACK = "MediaNextTrack";
+
+ /** The Media Play Pause key */
+ public static final String MEDIA_PAUSE_PLAY = "MediaPlayPause";
+
+ /** The Media Previous Track key */
+ public static final String MEDIA_PREVIOUS_TRACK = "MediaPreviousTrack";
+
+ /** The Media Stop key */
+ public static final String MEDIA_STOP = "MediaStop";
+
+ /** The Mode Change key */
+ public static final String MODE_CHANGE = "ModeChange";
+
+ /** The Next Candidate function key */
+ public static final String NEXT_CANDIDATE = "NextCandidate";
+
+ /** The Nonconvert (Don't Convert) key */
+ public static final String NON_CONVERT = "Nonconvert";
+
+ /** The Number Lock key */
+ public static final String NUM_LOCK = "NumLock";
+
+ /** The Page Down (Next) key */
+ public static final String PAGE_DOWN = "PageDown";
+
+ /** The Page Up key */
+ public static final String PAGE_UP = "PageUp";
+
+ /** The Paste key */
+ public static final String PASTE = "Paste";
+
+ /** The Pause key */
+ public static final String PAUSE = "Pause";
+
+ /** The Play key */
+ public static final String PLAY = "Play";
+
+ /**
+ * The Power key. Note: Some devices may not expose this key to the
+ * operating environment
+ */
+ public static final String POWER = "Power";
+
+ /** The Previous Candidate function key */
+ public static final String PREVIOUS_CANDIDATE = "PreviousCandidate";
+
+ /** The Print Screen (PrintScrn, SnapShot) key */
+ public static final String PRINT_SCREEN = "PrintScreen";
+
+ /** The Process key */
+ public static final String PROCESS = "Process";
+
+ /** The Props key */
+ public static final String PROPS = "Props";
+
+ /** The Right Arrow key */
+ public static final String RIGHT = "Right";
+
+ /** The Roman Characters function key */
+ public static final String ROMAN_CHARACTERS = "RomanCharacters";
+
+ /** The Scroll Lock key */
+ public static final String SCROLL = "Scroll";
+
+ /** The Select key */
+ public static final String SELECT = "Select";
+
+ /** The Select Media key */
+ public static final String SELECT_MEDIA = "SelectMedia";
+
+ /** The Separator key */
+ public static final String SEPARATOR = "Separator";
+
+ /** The Shift key */
+ public static final String SHIFT = "Shift";
+
+ /** The Soft1 key */
+ public static final String SOFT_1 = "Soft1";
+
+ /** The Soft2 key */
+ public static final String SOFT_2 = "Soft2";
+
+ /** The Soft3 key */
+ public static final String SOFT_3 = "Soft3";
+
+ /** The Soft4 key */
+ public static final String SOFT_4 = "Soft4";
+
+ /** The Stop key */
+ public static final String STOP = "Stop";
+
+ /** The Subtract key */
+ public static final String SUBTRACT = "Subtract";
+
+ /** The Symbol Lock key */
+ public static final String SYMBOL_LOCK = "SymbolLock";
+
+ /** The Up Arrow key */
+ public static final String UP = "Up";
+
+ /** The diagonal Up-Left Arrow key */
+ public static final String UP_LEFT = "UpLeft";
+
+ /** The diagonal Up-Right Arrow key */
+ public static final String UP_RIGHT = "UpRight";
+
+ /** The Undo key */
+ public static final String UNDO = "Undo";
+
+ /** The Volume Down key */
+ public static final String VOLUME_DOWN = "VolumeDown";
+
+ /** The Volume Mute key */
+ public static final String VOLUMN_MUTE = "VolumeMute";
+
+ /** The Volume Up key */
+ public static final String VOLUMN_UP = "VolumeUp";
+
+ /** The Windows Logo key */
+ public static final String WIN = "Win";
+
+ /** The Zoom key */
+ public static final String ZOOM = "Zoom";
+
+ /**
+ * The Backspace (Back) key. Note: This key value shall be also used for the
+ * key labeled 'delete' MacOS keyboards when not modified by the 'Fn' key
+ */
+ public static final String BACKSPACE = "Backspace";
+
+ /** The Horizontal Tabulation (Tab) key */
+ public static final String TAB = "Tab";
+
+ /** The Cancel key */
+ public static final String CANCEL = "Cancel";
+
+ /** The Escape (Esc) key */
+ public static final String ESC = "Esc";
+
+ /** The Space (Spacebar) key: */
+ public static final String SPACEBAR = "Spacebar";
+
+ /**
+ * The Delete (Del) Key. Note: This key value shall be also used for the key
+ * labeled 'delete' MacOS keyboards when modified by the 'Fn' key
+ */
+ public static final String DEL = "Del";
+
+ /** The Combining Grave Accent (Greek Varia, Dead Grave) key */
+ public static final String DEAD_GRAVE = "DeadGrave";
+
+ /**
+ * The Combining Acute Accent (Stress Mark, Greek Oxia, Tonos, Dead Eacute)
+ * key
+ */
+ public static final String DEAD_EACUTE = "DeadEacute";
+
+ /** The Combining Circumflex Accent (Hat, Dead Circumflex) key */
+ public static final String DEAD_CIRCUMFLEX = "DeadCircumflex";
+
+ /** The Combining Tilde (Dead Tilde) key */
+ public static final String DEAD_TILDE = "DeadTilde";
+
+ /** The Combining Macron (Long, Dead Macron) key */
+ public static final String DEAD_MACRON = "DeadMacron";
+
+ /** The Combining Breve (Short, Dead Breve) key */
+ public static final String DEAD_BREVE = "DeadBreve";
+
+ /** The Combining Dot Above (Derivative, Dead Above Dot) key */
+ public static final String DEAD_ABOVE_DOT = "DeadAboveDot";
+
+ /**
+ * The Combining Diaeresis (Double Dot Abode, Umlaut, Greek Dialytika,
+ * Double Derivative, Dead Diaeresis) key
+ */
+ public static final String DEAD_UMLAUT = "DeadUmlaut";
+
+ /** The Combining Ring Above (Dead Above Ring) key */
+ public static final String DEAD_ABOVE_RING = "DeadAboveRing";
+
+ /** The Combining Double Acute Accent (Dead Doubleacute) key */
+ public static final String DEAD_DOUBLEACUTE = "DeadDoubleacute";
+
+ /** The Combining Caron (Hacek, V Above, Dead Caron) key */
+ public static final String DEAD_CARON = "DeadCaron";
+
+ /** The Combining Cedilla (Dead Cedilla) key */
+ public static final String DEAD_CEDILLA = "DeadCedilla";
+
+ /** The Combining Ogonek (Nasal Hook, Dead Ogonek) key */
+ public static final String DEAD_OGONEK = "DeadOgonek";
+
+ /**
+ * The Combining Greek Ypogegrammeni (Greek Non-Spacing Iota Below, Iota
+ * Subscript, Dead Iota) key
+ */
+ public static final String DEAD_IOTA = "DeadIota";
+
+ /**
+ * The Combining Katakana-Hiragana Voiced Sound Mark (Dead Voiced Sound) key
+ */
+ public static final String DEAD_VOICED_SOUND = "DeadVoicedSound";
+
+ /**
+ * The Combining Katakana-Hiragana Semi-Voiced Sound Mark (Dead Semivoiced
+ * Sound) key
+ */
+ public static final String DEC_SEMIVOICED_SOUND= "DeadSemivoicedSound";
+
+ /**
+ * Key value used when an implementation is unable to identify another key
+ * value, due to either hardware, platform, or software constraints
+ */
+ public static final String UNIDENTIFIED = "Unidentified";
+ }
+
+ int getKeyCode();
+
+$!MEMBERS}
diff --git a/elemental/idl/templates/java_interface_MouseEvent.darttemplate b/elemental/idl/templates/java_interface_MouseEvent.darttemplate
new file mode 100644
index 0000000..cdbc7f9
--- /dev/null
+++ b/elemental/idl/templates/java_interface_MouseEvent.darttemplate
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+
+import java.util.Date;
+
+/**
+ * $CLASSJAVADOC
+ */
+public interface $ID$EXTENDS {
+ /**
+ * Contains the set of standard values returned by {@link #button}.
+ */
+ public interface Button {
+ public static final short PRIMARY = 0;
+ public static final short AUXILIARY = 1;
+ public static final short SECONDARY = 2;
+ }
+$!MEMBERS}
diff --git a/elemental/idl/templates/java_interface_Window.darttemplate b/elemental/idl/templates/java_interface_Window.darttemplate
new file mode 100644
index 0000000..e049366
--- /dev/null
+++ b/elemental/idl/templates/java_interface_Window.darttemplate
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+import elemental.xpath.*;
+import elemental.xml.*;
+
+
+import java.util.Date;
+
+/**
+ * $CLASSJAVADOC
+ */
+public interface $ID$EXTENDS {
+ void clearOpener();
+$!MEMBERS}
diff --git a/elemental/idl/templates/javacallback.darttemplate b/elemental/idl/templates/javacallback.darttemplate
new file mode 100644
index 0000000..35ffd5f
--- /dev/null
+++ b/elemental/idl/templates/javacallback.darttemplate
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ * $CLASSJAVADOC
+ */
+public interface $NAME {
+ $TYPE on$NAME($PARAMS);
+}
diff --git a/elemental/idl/templates/jso_impl.darttemplate b/elemental/idl/templates/jso_impl.darttemplate
new file mode 100644
index 0000000..b25fb0d
--- /dev/null
+++ b/elemental/idl/templates/jso_impl.darttemplate
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.js.stylesheets.*;
+import elemental.js.events.*;
+import elemental.js.util.*;
+import elemental.js.dom.*;
+import elemental.js.html.*;
+import elemental.js.css.*;
+import elemental.js.stylesheets.*;
+
+import java.util.Date;
+
+public class $ID$EXTENDS $IMPLEMENTS {
+ protected $ID() {}
+$!MEMBERS}
diff --git a/elemental/idl/templates/jso_impl_CSSStyleDeclaration.darttemplate b/elemental/idl/templates/jso_impl_CSSStyleDeclaration.darttemplate
new file mode 100644
index 0000000..3797151
--- /dev/null
+++ b/elemental/idl/templates/jso_impl_CSSStyleDeclaration.darttemplate
@@ -0,0 +1,1074 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.js.stylesheets.*;
+import elemental.js.events.*;
+import elemental.js.util.*;
+import elemental.js.dom.*;
+import elemental.js.html.*;
+import elemental.js.css.*;
+import elemental.js.stylesheets.*;
+
+import java.util.Date;
+
+public class $ID$EXTENDS $IMPLEMENTS {
+ protected $ID() {}
+$!MEMBERS
+public final native String getColor() /*-{ return this.color; }-*/;
+public final native void setColor(String value) /*-{ this.color = value; }-*/;
+public final native void clearColor() /*-{ this.color = ""; }-*/;
+public final native String getDirection() /*-{ return this.direction; }-*/;
+public final native void setDirection(String value) /*-{ this.direction = value; }-*/;
+public final native void clearDirection() /*-{ this.direction = ""; }-*/;
+public final native String getDisplay() /*-{ return this.display; }-*/;
+public final native void setDisplay(String value) /*-{ this.display = value; }-*/;
+public final native void clearDisplay() /*-{ this.display = ""; }-*/;
+public final native String getFont() /*-{ return this.font; }-*/;
+public final native void setFont(String value) /*-{ this.font = value; }-*/;
+public final native void clearFont() /*-{ this.font = ""; }-*/;
+public final native String getFontFamily() /*-{ return this.fontFamily; }-*/;
+public final native void setFontFamily(String value) /*-{ this.fontFamily = value; }-*/;
+public final native void clearFontFamily() /*-{ this.fontFamily = ""; }-*/;
+public final native String getFontSize() /*-{ return this.fontSize; }-*/;
+public final native void setFontSize(String value) /*-{ this.fontSize = value; }-*/;
+public final native void clearFontSize() /*-{ this.fontSize = ""; }-*/;
+public final native void setFontSize(double value, String unit) /*-{ this.fontSize = value + unit; }-*/;
+public final native String getFontStyle() /*-{ return this.fontStyle; }-*/;
+public final native void setFontStyle(String value) /*-{ this.fontStyle = value; }-*/;
+public final native void clearFontStyle() /*-{ this.fontStyle = ""; }-*/;
+public final native String getFontWeight() /*-{ return this.fontWeight; }-*/;
+public final native void setFontWeight(String value) /*-{ this.fontWeight = value; }-*/;
+public final native void clearFontWeight() /*-{ this.fontWeight = ""; }-*/;
+public final native String getFontVariant() /*-{ return this.fontVariant; }-*/;
+public final native void setFontVariant(String value) /*-{ this.fontVariant = value; }-*/;
+public final native void clearFontVariant() /*-{ this.fontVariant = ""; }-*/;
+public final native String getTextRendering() /*-{ return this.textRendering; }-*/;
+public final native void setTextRendering(String value) /*-{ this.textRendering = value; }-*/;
+public final native void clearTextRendering() /*-{ this.textRendering = ""; }-*/;
+public final native String getWebkitFontFeatureSettings() /*-{ return this.webkitFontFeatureSettings; }-*/;
+public final native void setWebkitFontFeatureSettings(String value) /*-{ this.webkitFontFeatureSettings = value; }-*/;
+public final native void clearWebkitFontFeatureSettings() /*-{ this.webkitFontFeatureSettings = ""; }-*/;
+public final native String getWebkitFontKerning() /*-{ return this.webkitFontKerning; }-*/;
+public final native void setWebkitFontKerning(String value) /*-{ this.webkitFontKerning = value; }-*/;
+public final native void clearWebkitFontKerning() /*-{ this.webkitFontKerning = ""; }-*/;
+public final native String getWebkitFontSmoothing() /*-{ return this.webkitFontSmoothing; }-*/;
+public final native void setWebkitFontSmoothing(String value) /*-{ this.webkitFontSmoothing = value; }-*/;
+public final native void clearWebkitFontSmoothing() /*-{ this.webkitFontSmoothing = ""; }-*/;
+public final native String getWebkitFontVariantLigatures() /*-{ return this.webkitFontVariantLigatures; }-*/;
+public final native void setWebkitFontVariantLigatures(String value) /*-{ this.webkitFontVariantLigatures = value; }-*/;
+public final native void clearWebkitFontVariantLigatures() /*-{ this.webkitFontVariantLigatures = ""; }-*/;
+public final native String getWebkitLocale() /*-{ return this.webkitLocale; }-*/;
+public final native void setWebkitLocale(String value) /*-{ this.webkitLocale = value; }-*/;
+public final native void clearWebkitLocale() /*-{ this.webkitLocale = ""; }-*/;
+public final native String getWebkitTextOrientation() /*-{ return this.webkitTextOrientation; }-*/;
+public final native void setWebkitTextOrientation(String value) /*-{ this.webkitTextOrientation = value; }-*/;
+public final native void clearWebkitTextOrientation() /*-{ this.webkitTextOrientation = ""; }-*/;
+public final native String getWebkitTextSizeAdjust() /*-{ return this.webkitTextSizeAdjust; }-*/;
+public final native void setWebkitTextSizeAdjust(String value) /*-{ this.webkitTextSizeAdjust = value; }-*/;
+public final native void clearWebkitTextSizeAdjust() /*-{ this.webkitTextSizeAdjust = ""; }-*/;
+public final native String getWebkitWritingMode() /*-{ return this.webkitWritingMode; }-*/;
+public final native void setWebkitWritingMode(String value) /*-{ this.webkitWritingMode = value; }-*/;
+public final native void clearWebkitWritingMode() /*-{ this.webkitWritingMode = ""; }-*/;
+public final native String getZoom() /*-{ return this.zoom; }-*/;
+public final native void setZoom(String value) /*-{ this.zoom = value; }-*/;
+public final native void clearZoom() /*-{ this.zoom = ""; }-*/;
+public final native String getLineHeight() /*-{ return this.lineHeight; }-*/;
+public final native void setLineHeight(String value) /*-{ this.lineHeight = value; }-*/;
+public final native void clearLineHeight() /*-{ this.lineHeight = ""; }-*/;
+public final native String getBackground() /*-{ return this.background; }-*/;
+public final native void setBackground(String value) /*-{ this.background = value; }-*/;
+public final native void clearBackground() /*-{ this.background = ""; }-*/;
+public final native String getBackgroundAttachment() /*-{ return this.backgroundAttachment; }-*/;
+public final native void setBackgroundAttachment(String value) /*-{ this.backgroundAttachment = value; }-*/;
+public final native void clearBackgroundAttachment() /*-{ this.backgroundAttachment = ""; }-*/;
+public final native String getBackgroundClip() /*-{ return this.backgroundClip; }-*/;
+public final native void setBackgroundClip(String value) /*-{ this.backgroundClip = value; }-*/;
+public final native void clearBackgroundClip() /*-{ this.backgroundClip = ""; }-*/;
+public final native String getBackgroundColor() /*-{ return this.backgroundColor; }-*/;
+public final native void setBackgroundColor(String value) /*-{ this.backgroundColor = value; }-*/;
+public final native void clearBackgroundColor() /*-{ this.backgroundColor = ""; }-*/;
+public final native String getBackgroundImage() /*-{ return this.backgroundImage; }-*/;
+public final native void setBackgroundImage(String value) /*-{ this.backgroundImage = value; }-*/;
+public final native void clearBackgroundImage() /*-{ this.backgroundImage = ""; }-*/;
+public final native String getBackgroundOrigin() /*-{ return this.backgroundOrigin; }-*/;
+public final native void setBackgroundOrigin(String value) /*-{ this.backgroundOrigin = value; }-*/;
+public final native void clearBackgroundOrigin() /*-{ this.backgroundOrigin = ""; }-*/;
+public final native String getBackgroundPosition() /*-{ return this.backgroundPosition; }-*/;
+public final native void setBackgroundPosition(String value) /*-{ this.backgroundPosition = value; }-*/;
+public final native void clearBackgroundPosition() /*-{ this.backgroundPosition = ""; }-*/;
+public final native String getBackgroundPositionX() /*-{ return this.backgroundPositionX; }-*/;
+public final native void setBackgroundPositionX(String value) /*-{ this.backgroundPositionX = value; }-*/;
+public final native void clearBackgroundPositionX() /*-{ this.backgroundPositionX = ""; }-*/;
+public final native String getBackgroundPositionY() /*-{ return this.backgroundPositionY; }-*/;
+public final native void setBackgroundPositionY(String value) /*-{ this.backgroundPositionY = value; }-*/;
+public final native void clearBackgroundPositionY() /*-{ this.backgroundPositionY = ""; }-*/;
+public final native String getBackgroundRepeat() /*-{ return this.backgroundRepeat; }-*/;
+public final native void setBackgroundRepeat(String value) /*-{ this.backgroundRepeat = value; }-*/;
+public final native void clearBackgroundRepeat() /*-{ this.backgroundRepeat = ""; }-*/;
+public final native String getBackgroundRepeatX() /*-{ return this.backgroundRepeatX; }-*/;
+public final native void setBackgroundRepeatX(String value) /*-{ this.backgroundRepeatX = value; }-*/;
+public final native void clearBackgroundRepeatX() /*-{ this.backgroundRepeatX = ""; }-*/;
+public final native String getBackgroundRepeatY() /*-{ return this.backgroundRepeatY; }-*/;
+public final native void setBackgroundRepeatY(String value) /*-{ this.backgroundRepeatY = value; }-*/;
+public final native void clearBackgroundRepeatY() /*-{ this.backgroundRepeatY = ""; }-*/;
+public final native String getBackgroundSize() /*-{ return this.backgroundSize; }-*/;
+public final native void setBackgroundSize(String value) /*-{ this.backgroundSize = value; }-*/;
+public final native void clearBackgroundSize() /*-{ this.backgroundSize = ""; }-*/;
+public final native String getBorder() /*-{ return this.border; }-*/;
+public final native void setBorder(String value) /*-{ this.border = value; }-*/;
+public final native void clearBorder() /*-{ this.border = ""; }-*/;
+public final native String getBorderBottom() /*-{ return this.borderBottom; }-*/;
+public final native void setBorderBottom(String value) /*-{ this.borderBottom = value; }-*/;
+public final native void clearBorderBottom() /*-{ this.borderBottom = ""; }-*/;
+public final native String getBorderBottomColor() /*-{ return this.borderBottomColor; }-*/;
+public final native void setBorderBottomColor(String value) /*-{ this.borderBottomColor = value; }-*/;
+public final native void clearBorderBottomColor() /*-{ this.borderBottomColor = ""; }-*/;
+public final native String getBorderBottomLeftRadius() /*-{ return this.borderBottomLeftRadius; }-*/;
+public final native void setBorderBottomLeftRadius(String value) /*-{ this.borderBottomLeftRadius = value; }-*/;
+public final native void clearBorderBottomLeftRadius() /*-{ this.borderBottomLeftRadius = ""; }-*/;
+public final native String getBorderBottomRightRadius() /*-{ return this.borderBottomRightRadius; }-*/;
+public final native void setBorderBottomRightRadius(String value) /*-{ this.borderBottomRightRadius = value; }-*/;
+public final native void clearBorderBottomRightRadius() /*-{ this.borderBottomRightRadius = ""; }-*/;
+public final native String getBorderBottomStyle() /*-{ return this.borderBottomStyle; }-*/;
+public final native void setBorderBottomStyle(String value) /*-{ this.borderBottomStyle = value; }-*/;
+public final native void clearBorderBottomStyle() /*-{ this.borderBottomStyle = ""; }-*/;
+public final native String getBorderBottomWidth() /*-{ return this.borderBottomWidth; }-*/;
+public final native void setBorderBottomWidth(String value) /*-{ this.borderBottomWidth = value; }-*/;
+public final native void clearBorderBottomWidth() /*-{ this.borderBottomWidth = ""; }-*/;
+public final native String getBorderCollapse() /*-{ return this.borderCollapse; }-*/;
+public final native void setBorderCollapse(String value) /*-{ this.borderCollapse = value; }-*/;
+public final native void clearBorderCollapse() /*-{ this.borderCollapse = ""; }-*/;
+public final native String getBorderColor() /*-{ return this.borderColor; }-*/;
+public final native void setBorderColor(String value) /*-{ this.borderColor = value; }-*/;
+public final native void clearBorderColor() /*-{ this.borderColor = ""; }-*/;
+public final native String getBorderImage() /*-{ return this.borderImage; }-*/;
+public final native void setBorderImage(String value) /*-{ this.borderImage = value; }-*/;
+public final native void clearBorderImage() /*-{ this.borderImage = ""; }-*/;
+public final native String getBorderImageOutset() /*-{ return this.borderImageOutset; }-*/;
+public final native void setBorderImageOutset(String value) /*-{ this.borderImageOutset = value; }-*/;
+public final native void clearBorderImageOutset() /*-{ this.borderImageOutset = ""; }-*/;
+public final native String getBorderImageRepeat() /*-{ return this.borderImageRepeat; }-*/;
+public final native void setBorderImageRepeat(String value) /*-{ this.borderImageRepeat = value; }-*/;
+public final native void clearBorderImageRepeat() /*-{ this.borderImageRepeat = ""; }-*/;
+public final native String getBorderImageSlice() /*-{ return this.borderImageSlice; }-*/;
+public final native void setBorderImageSlice(String value) /*-{ this.borderImageSlice = value; }-*/;
+public final native void clearBorderImageSlice() /*-{ this.borderImageSlice = ""; }-*/;
+public final native String getBorderImageSource() /*-{ return this.borderImageSource; }-*/;
+public final native void setBorderImageSource(String value) /*-{ this.borderImageSource = value; }-*/;
+public final native void clearBorderImageSource() /*-{ this.borderImageSource = ""; }-*/;
+public final native String getBorderImageWidth() /*-{ return this.borderImageWidth; }-*/;
+public final native void setBorderImageWidth(String value) /*-{ this.borderImageWidth = value; }-*/;
+public final native void clearBorderImageWidth() /*-{ this.borderImageWidth = ""; }-*/;
+public final native String getBorderLeft() /*-{ return this.borderLeft; }-*/;
+public final native void setBorderLeft(String value) /*-{ this.borderLeft = value; }-*/;
+public final native void clearBorderLeft() /*-{ this.borderLeft = ""; }-*/;
+public final native String getBorderLeftColor() /*-{ return this.borderLeftColor; }-*/;
+public final native void setBorderLeftColor(String value) /*-{ this.borderLeftColor = value; }-*/;
+public final native void clearBorderLeftColor() /*-{ this.borderLeftColor = ""; }-*/;
+public final native String getBorderLeftStyle() /*-{ return this.borderLeftStyle; }-*/;
+public final native void setBorderLeftStyle(String value) /*-{ this.borderLeftStyle = value; }-*/;
+public final native void clearBorderLeftStyle() /*-{ this.borderLeftStyle = ""; }-*/;
+public final native String getBorderLeftWidth() /*-{ return this.borderLeftWidth; }-*/;
+public final native void setBorderLeftWidth(String value) /*-{ this.borderLeftWidth = value; }-*/;
+public final native void clearBorderLeftWidth() /*-{ this.borderLeftWidth = ""; }-*/;
+public final native String getBorderRadius() /*-{ return this.borderRadius; }-*/;
+public final native void setBorderRadius(String value) /*-{ this.borderRadius = value; }-*/;
+public final native void clearBorderRadius() /*-{ this.borderRadius = ""; }-*/;
+public final native String getBorderRight() /*-{ return this.borderRight; }-*/;
+public final native void setBorderRight(String value) /*-{ this.borderRight = value; }-*/;
+public final native void clearBorderRight() /*-{ this.borderRight = ""; }-*/;
+public final native String getBorderRightColor() /*-{ return this.borderRightColor; }-*/;
+public final native void setBorderRightColor(String value) /*-{ this.borderRightColor = value; }-*/;
+public final native void clearBorderRightColor() /*-{ this.borderRightColor = ""; }-*/;
+public final native String getBorderRightStyle() /*-{ return this.borderRightStyle; }-*/;
+public final native void setBorderRightStyle(String value) /*-{ this.borderRightStyle = value; }-*/;
+public final native void clearBorderRightStyle() /*-{ this.borderRightStyle = ""; }-*/;
+public final native String getBorderRightWidth() /*-{ return this.borderRightWidth; }-*/;
+public final native void setBorderRightWidth(String value) /*-{ this.borderRightWidth = value; }-*/;
+public final native void clearBorderRightWidth() /*-{ this.borderRightWidth = ""; }-*/;
+public final native String getBorderSpacing() /*-{ return this.borderSpacing; }-*/;
+public final native void setBorderSpacing(String value) /*-{ this.borderSpacing = value; }-*/;
+public final native void clearBorderSpacing() /*-{ this.borderSpacing = ""; }-*/;
+public final native String getBorderStyle() /*-{ return this.borderStyle; }-*/;
+public final native void setBorderStyle(String value) /*-{ this.borderStyle = value; }-*/;
+public final native void clearBorderStyle() /*-{ this.borderStyle = ""; }-*/;
+public final native String getBorderTop() /*-{ return this.borderTop; }-*/;
+public final native void setBorderTop(String value) /*-{ this.borderTop = value; }-*/;
+public final native void clearBorderTop() /*-{ this.borderTop = ""; }-*/;
+public final native String getBorderTopColor() /*-{ return this.borderTopColor; }-*/;
+public final native void setBorderTopColor(String value) /*-{ this.borderTopColor = value; }-*/;
+public final native void clearBorderTopColor() /*-{ this.borderTopColor = ""; }-*/;
+public final native String getBorderTopLeftRadius() /*-{ return this.borderTopLeftRadius; }-*/;
+public final native void setBorderTopLeftRadius(String value) /*-{ this.borderTopLeftRadius = value; }-*/;
+public final native void clearBorderTopLeftRadius() /*-{ this.borderTopLeftRadius = ""; }-*/;
+public final native String getBorderTopRightRadius() /*-{ return this.borderTopRightRadius; }-*/;
+public final native void setBorderTopRightRadius(String value) /*-{ this.borderTopRightRadius = value; }-*/;
+public final native void clearBorderTopRightRadius() /*-{ this.borderTopRightRadius = ""; }-*/;
+public final native String getBorderTopStyle() /*-{ return this.borderTopStyle; }-*/;
+public final native void setBorderTopStyle(String value) /*-{ this.borderTopStyle = value; }-*/;
+public final native void clearBorderTopStyle() /*-{ this.borderTopStyle = ""; }-*/;
+public final native String getBorderTopWidth() /*-{ return this.borderTopWidth; }-*/;
+public final native void setBorderTopWidth(String value) /*-{ this.borderTopWidth = value; }-*/;
+public final native void clearBorderTopWidth() /*-{ this.borderTopWidth = ""; }-*/;
+public final native String getBorderWidth() /*-{ return this.borderWidth; }-*/;
+public final native void setBorderWidth(String value) /*-{ this.borderWidth = value; }-*/;
+public final native void clearBorderWidth() /*-{ this.borderWidth = ""; }-*/;
+public final native void setBorderWidth(double value, String unit) /*-{ this.borderWidth = value + unit; }-*/;
+public final native String getBottom() /*-{ return this.bottom; }-*/;
+public final native void setBottom(String value) /*-{ this.bottom = value; }-*/;
+public final native void clearBottom() /*-{ this.bottom = ""; }-*/;
+public final native void setBottom(double value, String unit) /*-{ this.bottom = value + unit; }-*/;
+public final native String getBoxShadow() /*-{ return this.boxShadow; }-*/;
+public final native void setBoxShadow(String value) /*-{ this.boxShadow = value; }-*/;
+public final native void clearBoxShadow() /*-{ this.boxShadow = ""; }-*/;
+public final native String getBoxSizing() /*-{ return this.boxSizing; }-*/;
+public final native void setBoxSizing(String value) /*-{ this.boxSizing = value; }-*/;
+public final native void clearBoxSizing() /*-{ this.boxSizing = ""; }-*/;
+public final native String getCaptionSide() /*-{ return this.captionSide; }-*/;
+public final native void setCaptionSide(String value) /*-{ this.captionSide = value; }-*/;
+public final native void clearCaptionSide() /*-{ this.captionSide = ""; }-*/;
+public final native String getClear() /*-{ return this.clear; }-*/;
+public final native void setClear(String value) /*-{ this.clear = value; }-*/;
+public final native void clearClear() /*-{ this.clear = ""; }-*/;
+public final native String getClip() /*-{ return this.clip; }-*/;
+public final native void setClip(String value) /*-{ this.clip = value; }-*/;
+public final native void clearClip() /*-{ this.clip = ""; }-*/;
+public final native String getContent() /*-{ return this.content; }-*/;
+public final native void setContent(String value) /*-{ this.content = value; }-*/;
+public final native void clearContent() /*-{ this.content = ""; }-*/;
+public final native String getCounterIncrement() /*-{ return this.counterIncrement; }-*/;
+public final native void setCounterIncrement(String value) /*-{ this.counterIncrement = value; }-*/;
+public final native void clearCounterIncrement() /*-{ this.counterIncrement = ""; }-*/;
+public final native String getCounterReset() /*-{ return this.counterReset; }-*/;
+public final native void setCounterReset(String value) /*-{ this.counterReset = value; }-*/;
+public final native void clearCounterReset() /*-{ this.counterReset = ""; }-*/;
+public final native String getCursor() /*-{ return this.cursor; }-*/;
+public final native void setCursor(String value) /*-{ this.cursor = value; }-*/;
+public final native void clearCursor() /*-{ this.cursor = ""; }-*/;
+public final native String getEmptyCells() /*-{ return this.emptyCells; }-*/;
+public final native void setEmptyCells(String value) /*-{ this.emptyCells = value; }-*/;
+public final native void clearEmptyCells() /*-{ this.emptyCells = ""; }-*/;
+public final native String getFloat() /*-{ return this['float']; }-*/;
+public final native void setFloat(String value) /*-{ this['float'] = value; }-*/;
+public final native void clearFloat() /*-{ this['float'] = ""; }-*/;
+public final native String getFontStretch() /*-{ return this.fontStretch; }-*/;
+public final native void setFontStretch(String value) /*-{ this.fontStretch = value; }-*/;
+public final native void clearFontStretch() /*-{ this.fontStretch = ""; }-*/;
+public final native String getHeight() /*-{ return this.height; }-*/;
+public final native void setHeight(String value) /*-{ this.height = value; }-*/;
+public final native void clearHeight() /*-{ this.height = ""; }-*/;
+public final native void setHeight(double value, String unit) /*-{ this.height = value + unit; }-*/;
+public final native String getImageRendering() /*-{ return this.imageRendering; }-*/;
+public final native void setImageRendering(String value) /*-{ this.imageRendering = value; }-*/;
+public final native void clearImageRendering() /*-{ this.imageRendering = ""; }-*/;
+public final native String getLeft() /*-{ return this.left; }-*/;
+public final native void setLeft(String value) /*-{ this.left = value; }-*/;
+public final native void clearLeft() /*-{ this.left = ""; }-*/;
+public final native void setLeft(double value, String unit) /*-{ this.left = value + unit; }-*/;
+public final native String getLetterSpacing() /*-{ return this.letterSpacing; }-*/;
+public final native void setLetterSpacing(String value) /*-{ this.letterSpacing = value; }-*/;
+public final native void clearLetterSpacing() /*-{ this.letterSpacing = ""; }-*/;
+public final native String getListStyle() /*-{ return this.listStyle; }-*/;
+public final native void setListStyle(String value) /*-{ this.listStyle = value; }-*/;
+public final native void clearListStyle() /*-{ this.listStyle = ""; }-*/;
+public final native String getListStyleType() /*-{ return this.listStyleType; }-*/;
+public final native void setListStyleType(String value) /*-{ this.listStyleType = value; }-*/;
+public final native void clearListStyleType() /*-{ this.listStyleType = ""; }-*/;
+public final native String getListStyleImage() /*-{ return this.listStyleImage; }-*/;
+public final native void setListStyleImage(String value) /*-{ this.listStyleImage = value; }-*/;
+public final native void clearListStyleImage() /*-{ this.listStyleImage = ""; }-*/;
+public final native String getListStylePosition() /*-{ return this.listStylePosition; }-*/;
+public final native void setListStylePosition(String value) /*-{ this.listStylePosition = value; }-*/;
+public final native void clearListStylePosition() /*-{ this.listStylePosition = ""; }-*/;
+public final native String getMargin() /*-{ return this.margin; }-*/;
+public final native void setMargin(String value) /*-{ this.margin = value; }-*/;
+public final native void clearMargin() /*-{ this.margin = ""; }-*/;
+public final native void setMargin(double value, String unit) /*-{ this.margin = value + unit; }-*/;
+public final native String getMarginBottom() /*-{ return this.marginBottom; }-*/;
+public final native void setMarginBottom(String value) /*-{ this.marginBottom = value; }-*/;
+public final native void clearMarginBottom() /*-{ this.marginBottom = ""; }-*/;
+public final native void setMarginBottom(double value, String unit) /*-{ this.marginBottom = value + unit; }-*/;
+public final native String getMarginLeft() /*-{ return this.marginLeft; }-*/;
+public final native void setMarginLeft(String value) /*-{ this.marginLeft = value; }-*/;
+public final native void clearMarginLeft() /*-{ this.marginLeft = ""; }-*/;
+public final native void setMarginLeft(double value, String unit) /*-{ this.marginLeft = value + unit; }-*/;
+public final native String getMarginRight() /*-{ return this.marginRight; }-*/;
+public final native void setMarginRight(String value) /*-{ this.marginRight = value; }-*/;
+public final native void clearMarginRight() /*-{ this.marginRight = ""; }-*/;
+public final native void setMarginRight(double value, String unit) /*-{ this.marginRight = value + unit; }-*/;
+public final native String getMarginTop() /*-{ return this.marginTop; }-*/;
+public final native void setMarginTop(String value) /*-{ this.marginTop = value; }-*/;
+public final native void clearMarginTop() /*-{ this.marginTop = ""; }-*/;
+public final native void setMarginTop(double value, String unit) /*-{ this.marginTop = value + unit; }-*/;
+public final native String getMaxHeight() /*-{ return this.maxHeight; }-*/;
+public final native void setMaxHeight(String value) /*-{ this.maxHeight = value; }-*/;
+public final native void clearMaxHeight() /*-{ this.maxHeight = ""; }-*/;
+public final native String getMaxWidth() /*-{ return this.maxWidth; }-*/;
+public final native void setMaxWidth(String value) /*-{ this.maxWidth = value; }-*/;
+public final native void clearMaxWidth() /*-{ this.maxWidth = ""; }-*/;
+public final native String getMinHeight() /*-{ return this.minHeight; }-*/;
+public final native void setMinHeight(String value) /*-{ this.minHeight = value; }-*/;
+public final native void clearMinHeight() /*-{ this.minHeight = ""; }-*/;
+public final native String getMinWidth() /*-{ return this.minWidth; }-*/;
+public final native void setMinWidth(String value) /*-{ this.minWidth = value; }-*/;
+public final native void clearMinWidth() /*-{ this.minWidth = ""; }-*/;
+public final native double getOpacity() /*-{ return this.opacity; }-*/;
+public final native void setOpacity(double value) /*-{ this.opacity = value; }-*/;
+public final native void clearOpacity() /*-{ this.opacity = ""; }-*/;
+public final native String getOrphans() /*-{ return this.orphans; }-*/;
+public final native void setOrphans(String value) /*-{ this.orphans = value; }-*/;
+public final native void clearOrphans() /*-{ this.orphans = ""; }-*/;
+public final native String getOutline() /*-{ return this.outline; }-*/;
+public final native void setOutline(String value) /*-{ this.outline = value; }-*/;
+public final native void clearOutline() /*-{ this.outline = ""; }-*/;
+public final native String getOutlineColor() /*-{ return this.outlineColor; }-*/;
+public final native void setOutlineColor(String value) /*-{ this.outlineColor = value; }-*/;
+public final native void clearOutlineColor() /*-{ this.outlineColor = ""; }-*/;
+public final native String getOutlineOffset() /*-{ return this.outlineOffset; }-*/;
+public final native void setOutlineOffset(String value) /*-{ this.outlineOffset = value; }-*/;
+public final native void clearOutlineOffset() /*-{ this.outlineOffset = ""; }-*/;
+public final native String getOutlineStyle() /*-{ return this.outlineStyle; }-*/;
+public final native void setOutlineStyle(String value) /*-{ this.outlineStyle = value; }-*/;
+public final native void clearOutlineStyle() /*-{ this.outlineStyle = ""; }-*/;
+public final native String getOutlineWidth() /*-{ return this.outlineWidth; }-*/;
+public final native void setOutlineWidth(String value) /*-{ this.outlineWidth = value; }-*/;
+public final native void clearOutlineWidth() /*-{ this.outlineWidth = ""; }-*/;
+public final native String getOverflow() /*-{ return this.overflow; }-*/;
+public final native void setOverflow(String value) /*-{ this.overflow = value; }-*/;
+public final native void clearOverflow() /*-{ this.overflow = ""; }-*/;
+public final native String getOverflowX() /*-{ return this.overflowX; }-*/;
+public final native void setOverflowX(String value) /*-{ this.overflowX = value; }-*/;
+public final native void clearOverflowX() /*-{ this.overflowX = ""; }-*/;
+public final native String getOverflowY() /*-{ return this.overflowY; }-*/;
+public final native void setOverflowY(String value) /*-{ this.overflowY = value; }-*/;
+public final native void clearOverflowY() /*-{ this.overflowY = ""; }-*/;
+public final native String getPadding() /*-{ return this.padding; }-*/;
+public final native void setPadding(String value) /*-{ this.padding = value; }-*/;
+public final native void clearPadding() /*-{ this.padding = ""; }-*/;
+public final native void setPadding(double value, String unit) /*-{ this.padding = value + unit; }-*/;
+public final native String getPaddingBottom() /*-{ return this.paddingBottom; }-*/;
+public final native void setPaddingBottom(String value) /*-{ this.paddingBottom = value; }-*/;
+public final native void clearPaddingBottom() /*-{ this.paddingBottom = ""; }-*/;
+public final native void setPaddingBottom(double value, String unit) /*-{ this.paddingBottom = value + unit; }-*/;
+public final native String getPaddingLeft() /*-{ return this.paddingLeft; }-*/;
+public final native void setPaddingLeft(String value) /*-{ this.paddingLeft = value; }-*/;
+public final native void clearPaddingLeft() /*-{ this.paddingLeft = ""; }-*/;
+public final native void setPaddingLeft(double value, String unit) /*-{ this.paddingLeft = value + unit; }-*/;
+public final native String getPaddingRight() /*-{ return this.paddingRight; }-*/;
+public final native void setPaddingRight(String value) /*-{ this.paddingRight = value; }-*/;
+public final native void clearPaddingRight() /*-{ this.paddingRight = ""; }-*/;
+public final native void setPaddingRight(double value, String unit) /*-{ this.paddingRight = value + unit; }-*/;
+public final native String getPaddingTop() /*-{ return this.paddingTop; }-*/;
+public final native void setPaddingTop(String value) /*-{ this.paddingTop = value; }-*/;
+public final native void clearPaddingTop() /*-{ this.paddingTop = ""; }-*/;
+public final native void setPaddingTop(double value, String unit) /*-{ this.paddingTop = value + unit; }-*/;
+public final native String getPage() /*-{ return this.page; }-*/;
+public final native void setPage(String value) /*-{ this.page = value; }-*/;
+public final native void clearPage() /*-{ this.page = ""; }-*/;
+public final native String getPageBreakAfter() /*-{ return this.pageBreakAfter; }-*/;
+public final native void setPageBreakAfter(String value) /*-{ this.pageBreakAfter = value; }-*/;
+public final native void clearPageBreakAfter() /*-{ this.pageBreakAfter = ""; }-*/;
+public final native String getPageBreakBefore() /*-{ return this.pageBreakBefore; }-*/;
+public final native void setPageBreakBefore(String value) /*-{ this.pageBreakBefore = value; }-*/;
+public final native void clearPageBreakBefore() /*-{ this.pageBreakBefore = ""; }-*/;
+public final native String getPageBreakInside() /*-{ return this.pageBreakInside; }-*/;
+public final native void setPageBreakInside(String value) /*-{ this.pageBreakInside = value; }-*/;
+public final native void clearPageBreakInside() /*-{ this.pageBreakInside = ""; }-*/;
+public final native String getPointerEvents() /*-{ return this.pointerEvents; }-*/;
+public final native void setPointerEvents(String value) /*-{ this.pointerEvents = value; }-*/;
+public final native void clearPointerEvents() /*-{ this.pointerEvents = ""; }-*/;
+public final native String getPosition() /*-{ return this.position; }-*/;
+public final native void setPosition(String value) /*-{ this.position = value; }-*/;
+public final native void clearPosition() /*-{ this.position = ""; }-*/;
+public final native String getQuotes() /*-{ return this.quotes; }-*/;
+public final native void setQuotes(String value) /*-{ this.quotes = value; }-*/;
+public final native void clearQuotes() /*-{ this.quotes = ""; }-*/;
+public final native String getResize() /*-{ return this.resize; }-*/;
+public final native void setResize(String value) /*-{ this.resize = value; }-*/;
+public final native void clearResize() /*-{ this.resize = ""; }-*/;
+public final native String getRight() /*-{ return this.right; }-*/;
+public final native void setRight(String value) /*-{ this.right = value; }-*/;
+public final native void clearRight() /*-{ this.right = ""; }-*/;
+public final native void setRight(double value, String unit) /*-{ this.right = value + unit; }-*/;
+public final native String getSize() /*-{ return this.size; }-*/;
+public final native void setSize(String value) /*-{ this.size = value; }-*/;
+public final native void clearSize() /*-{ this.size = ""; }-*/;
+public final native String getSrc() /*-{ return this.src; }-*/;
+public final native void setSrc(String value) /*-{ this.src = value; }-*/;
+public final native void clearSrc() /*-{ this.src = ""; }-*/;
+public final native String getSpeak() /*-{ return this.speak; }-*/;
+public final native void setSpeak(String value) /*-{ this.speak = value; }-*/;
+public final native void clearSpeak() /*-{ this.speak = ""; }-*/;
+public final native String getTableLayout() /*-{ return this.tableLayout; }-*/;
+public final native void setTableLayout(String value) /*-{ this.tableLayout = value; }-*/;
+public final native void clearTableLayout() /*-{ this.tableLayout = ""; }-*/;
+public final native String getTabSize() /*-{ return this.tabSize; }-*/;
+public final native void setTabSize(String value) /*-{ this.tabSize = value; }-*/;
+public final native void clearTabSize() /*-{ this.tabSize = ""; }-*/;
+public final native String getTextAlign() /*-{ return this.textAlign; }-*/;
+public final native void setTextAlign(String value) /*-{ this.textAlign = value; }-*/;
+public final native void clearTextAlign() /*-{ this.textAlign = ""; }-*/;
+public final native String getTextDecoration() /*-{ return this.textDecoration; }-*/;
+public final native void setTextDecoration(String value) /*-{ this.textDecoration = value; }-*/;
+public final native void clearTextDecoration() /*-{ this.textDecoration = ""; }-*/;
+public final native String getTextIndent() /*-{ return this.textIndent; }-*/;
+public final native void setTextIndent(String value) /*-{ this.textIndent = value; }-*/;
+public final native void clearTextIndent() /*-{ this.textIndent = ""; }-*/;
+public final native String getTextLineThrough() /*-{ return this.textLineThrough; }-*/;
+public final native void setTextLineThrough(String value) /*-{ this.textLineThrough = value; }-*/;
+public final native void clearTextLineThrough() /*-{ this.textLineThrough = ""; }-*/;
+public final native String getTextLineThroughColor() /*-{ return this.textLineThroughColor; }-*/;
+public final native void setTextLineThroughColor(String value) /*-{ this.textLineThroughColor = value; }-*/;
+public final native void clearTextLineThroughColor() /*-{ this.textLineThroughColor = ""; }-*/;
+public final native String getTextLineThroughMode() /*-{ return this.textLineThroughMode; }-*/;
+public final native void setTextLineThroughMode(String value) /*-{ this.textLineThroughMode = value; }-*/;
+public final native void clearTextLineThroughMode() /*-{ this.textLineThroughMode = ""; }-*/;
+public final native String getTextLineThroughStyle() /*-{ return this.textLineThroughStyle; }-*/;
+public final native void setTextLineThroughStyle(String value) /*-{ this.textLineThroughStyle = value; }-*/;
+public final native void clearTextLineThroughStyle() /*-{ this.textLineThroughStyle = ""; }-*/;
+public final native String getTextLineThroughWidth() /*-{ return this.textLineThroughWidth; }-*/;
+public final native void setTextLineThroughWidth(String value) /*-{ this.textLineThroughWidth = value; }-*/;
+public final native void clearTextLineThroughWidth() /*-{ this.textLineThroughWidth = ""; }-*/;
+public final native String getTextOverflow() /*-{ return this.textOverflow; }-*/;
+public final native void setTextOverflow(String value) /*-{ this.textOverflow = value; }-*/;
+public final native void clearTextOverflow() /*-{ this.textOverflow = ""; }-*/;
+public final native String getTextOverline() /*-{ return this.textOverline; }-*/;
+public final native void setTextOverline(String value) /*-{ this.textOverline = value; }-*/;
+public final native void clearTextOverline() /*-{ this.textOverline = ""; }-*/;
+public final native String getTextOverlineColor() /*-{ return this.textOverlineColor; }-*/;
+public final native void setTextOverlineColor(String value) /*-{ this.textOverlineColor = value; }-*/;
+public final native void clearTextOverlineColor() /*-{ this.textOverlineColor = ""; }-*/;
+public final native String getTextOverlineMode() /*-{ return this.textOverlineMode; }-*/;
+public final native void setTextOverlineMode(String value) /*-{ this.textOverlineMode = value; }-*/;
+public final native void clearTextOverlineMode() /*-{ this.textOverlineMode = ""; }-*/;
+public final native String getTextOverlineStyle() /*-{ return this.textOverlineStyle; }-*/;
+public final native void setTextOverlineStyle(String value) /*-{ this.textOverlineStyle = value; }-*/;
+public final native void clearTextOverlineStyle() /*-{ this.textOverlineStyle = ""; }-*/;
+public final native String getTextOverlineWidth() /*-{ return this.textOverlineWidth; }-*/;
+public final native void setTextOverlineWidth(String value) /*-{ this.textOverlineWidth = value; }-*/;
+public final native void clearTextOverlineWidth() /*-{ this.textOverlineWidth = ""; }-*/;
+public final native String getTextShadow() /*-{ return this.textShadow; }-*/;
+public final native void setTextShadow(String value) /*-{ this.textShadow = value; }-*/;
+public final native void clearTextShadow() /*-{ this.textShadow = ""; }-*/;
+public final native String getTextTransform() /*-{ return this.textTransform; }-*/;
+public final native void setTextTransform(String value) /*-{ this.textTransform = value; }-*/;
+public final native void clearTextTransform() /*-{ this.textTransform = ""; }-*/;
+public final native String getTextUnderline() /*-{ return this.textUnderline; }-*/;
+public final native void setTextUnderline(String value) /*-{ this.textUnderline = value; }-*/;
+public final native void clearTextUnderline() /*-{ this.textUnderline = ""; }-*/;
+public final native String getTextUnderlineColor() /*-{ return this.textUnderlineColor; }-*/;
+public final native void setTextUnderlineColor(String value) /*-{ this.textUnderlineColor = value; }-*/;
+public final native void clearTextUnderlineColor() /*-{ this.textUnderlineColor = ""; }-*/;
+public final native String getTextUnderlineMode() /*-{ return this.textUnderlineMode; }-*/;
+public final native void setTextUnderlineMode(String value) /*-{ this.textUnderlineMode = value; }-*/;
+public final native void clearTextUnderlineMode() /*-{ this.textUnderlineMode = ""; }-*/;
+public final native String getTextUnderlineStyle() /*-{ return this.textUnderlineStyle; }-*/;
+public final native void setTextUnderlineStyle(String value) /*-{ this.textUnderlineStyle = value; }-*/;
+public final native void clearTextUnderlineStyle() /*-{ this.textUnderlineStyle = ""; }-*/;
+public final native String getTextUnderlineWidth() /*-{ return this.textUnderlineWidth; }-*/;
+public final native void setTextUnderlineWidth(String value) /*-{ this.textUnderlineWidth = value; }-*/;
+public final native void clearTextUnderlineWidth() /*-{ this.textUnderlineWidth = ""; }-*/;
+public final native String getTop() /*-{ return this.top; }-*/;
+public final native void setTop(String value) /*-{ this.top = value; }-*/;
+public final native void clearTop() /*-{ this.top = ""; }-*/;
+public final native void setTop(double value, String unit) /*-{ this.top = value + unit; }-*/;
+public final native String getUnicodeBidi() /*-{ return this.unicodeBidi; }-*/;
+public final native void setUnicodeBidi(String value) /*-{ this.unicodeBidi = value; }-*/;
+public final native void clearUnicodeBidi() /*-{ this.unicodeBidi = ""; }-*/;
+public final native String getUnicodeRange() /*-{ return this.unicodeRange; }-*/;
+public final native void setUnicodeRange(String value) /*-{ this.unicodeRange = value; }-*/;
+public final native void clearUnicodeRange() /*-{ this.unicodeRange = ""; }-*/;
+public final native String getVerticalAlign() /*-{ return this.verticalAlign; }-*/;
+public final native void setVerticalAlign(String value) /*-{ this.verticalAlign = value; }-*/;
+public final native void clearVerticalAlign() /*-{ this.verticalAlign = ""; }-*/;
+public final native String getVisibility() /*-{ return this.visibility; }-*/;
+public final native void setVisibility(String value) /*-{ this.visibility = value; }-*/;
+public final native void clearVisibility() /*-{ this.visibility = ""; }-*/;
+public final native String getWhiteSpace() /*-{ return this.whiteSpace; }-*/;
+public final native void setWhiteSpace(String value) /*-{ this.whiteSpace = value; }-*/;
+public final native void clearWhiteSpace() /*-{ this.whiteSpace = ""; }-*/;
+public final native String getWidows() /*-{ return this.widows; }-*/;
+public final native void setWidows(String value) /*-{ this.widows = value; }-*/;
+public final native void clearWidows() /*-{ this.widows = ""; }-*/;
+public final native String getWidth() /*-{ return this.width; }-*/;
+public final native void setWidth(String value) /*-{ this.width = value; }-*/;
+public final native void clearWidth() /*-{ this.width = ""; }-*/;
+public final native void setWidth(double value, String unit) /*-{ this.width = value + unit; }-*/;
+public final native String getWordBreak() /*-{ return this.wordBreak; }-*/;
+public final native void setWordBreak(String value) /*-{ this.wordBreak = value; }-*/;
+public final native void clearWordBreak() /*-{ this.wordBreak = ""; }-*/;
+public final native String getWordSpacing() /*-{ return this.wordSpacing; }-*/;
+public final native void setWordSpacing(String value) /*-{ this.wordSpacing = value; }-*/;
+public final native void clearWordSpacing() /*-{ this.wordSpacing = ""; }-*/;
+public final native String getWordWrap() /*-{ return this.wordWrap; }-*/;
+public final native void setWordWrap(String value) /*-{ this.wordWrap = value; }-*/;
+public final native void clearWordWrap() /*-{ this.wordWrap = ""; }-*/;
+public final native int getZIndex() /*-{ return this.zIndex; }-*/;
+public final native void setZIndex(int value) /*-{ this.zIndex = value; }-*/;
+public final native void clearZIndex() /*-{ this.zIndex = ""; }-*/;
+public final native String getWebkitAnimation() /*-{ return this.webkitAnimation; }-*/;
+public final native void setWebkitAnimation(String value) /*-{ this.webkitAnimation = value; }-*/;
+public final native void clearWebkitAnimation() /*-{ this.webkitAnimation = ""; }-*/;
+public final native String getWebkitAnimationDelay() /*-{ return this.webkitAnimationDelay; }-*/;
+public final native void setWebkitAnimationDelay(String value) /*-{ this.webkitAnimationDelay = value; }-*/;
+public final native void clearWebkitAnimationDelay() /*-{ this.webkitAnimationDelay = ""; }-*/;
+public final native String getWebkitAnimationDirection() /*-{ return this.webkitAnimationDirection; }-*/;
+public final native void setWebkitAnimationDirection(String value) /*-{ this.webkitAnimationDirection = value; }-*/;
+public final native void clearWebkitAnimationDirection() /*-{ this.webkitAnimationDirection = ""; }-*/;
+public final native String getWebkitAnimationDuration() /*-{ return this.webkitAnimationDuration; }-*/;
+public final native void setWebkitAnimationDuration(String value) /*-{ this.webkitAnimationDuration = value; }-*/;
+public final native void clearWebkitAnimationDuration() /*-{ this.webkitAnimationDuration = ""; }-*/;
+public final native String getWebkitAnimationFillMode() /*-{ return this.webkitAnimationFillMode; }-*/;
+public final native void setWebkitAnimationFillMode(String value) /*-{ this.webkitAnimationFillMode = value; }-*/;
+public final native void clearWebkitAnimationFillMode() /*-{ this.webkitAnimationFillMode = ""; }-*/;
+public final native String getWebkitAnimationIterationCount() /*-{ return this.webkitAnimationIterationCount; }-*/;
+public final native void setWebkitAnimationIterationCount(String value) /*-{ this.webkitAnimationIterationCount = value; }-*/;
+public final native void clearWebkitAnimationIterationCount() /*-{ this.webkitAnimationIterationCount = ""; }-*/;
+public final native String getWebkitAnimationName() /*-{ return this.webkitAnimationName; }-*/;
+public final native void setWebkitAnimationName(String value) /*-{ this.webkitAnimationName = value; }-*/;
+public final native void clearWebkitAnimationName() /*-{ this.webkitAnimationName = ""; }-*/;
+public final native String getWebkitAnimationPlayState() /*-{ return this.webkitAnimationPlayState; }-*/;
+public final native void setWebkitAnimationPlayState(String value) /*-{ this.webkitAnimationPlayState = value; }-*/;
+public final native void clearWebkitAnimationPlayState() /*-{ this.webkitAnimationPlayState = ""; }-*/;
+public final native String getWebkitAnimationTimingFunction() /*-{ return this.webkitAnimationTimingFunction; }-*/;
+public final native void setWebkitAnimationTimingFunction(String value) /*-{ this.webkitAnimationTimingFunction = value; }-*/;
+public final native void clearWebkitAnimationTimingFunction() /*-{ this.webkitAnimationTimingFunction = ""; }-*/;
+public final native String getWebkitAppearance() /*-{ return this.webkitAppearance; }-*/;
+public final native void setWebkitAppearance(String value) /*-{ this.webkitAppearance = value; }-*/;
+public final native void clearWebkitAppearance() /*-{ this.webkitAppearance = ""; }-*/;
+public final native String getWebkitAspectRatio() /*-{ return this.webkitAspectRatio; }-*/;
+public final native void setWebkitAspectRatio(String value) /*-{ this.webkitAspectRatio = value; }-*/;
+public final native void clearWebkitAspectRatio() /*-{ this.webkitAspectRatio = ""; }-*/;
+public final native String getWebkitBackfaceVisibility() /*-{ return this.webkitBackfaceVisibility; }-*/;
+public final native void setWebkitBackfaceVisibility(String value) /*-{ this.webkitBackfaceVisibility = value; }-*/;
+public final native void clearWebkitBackfaceVisibility() /*-{ this.webkitBackfaceVisibility = ""; }-*/;
+public final native String getWebkitBackgroundClip() /*-{ return this.webkitBackgroundClip; }-*/;
+public final native void setWebkitBackgroundClip(String value) /*-{ this.webkitBackgroundClip = value; }-*/;
+public final native void clearWebkitBackgroundClip() /*-{ this.webkitBackgroundClip = ""; }-*/;
+public final native String getWebkitBackgroundComposite() /*-{ return this.webkitBackgroundComposite; }-*/;
+public final native void setWebkitBackgroundComposite(String value) /*-{ this.webkitBackgroundComposite = value; }-*/;
+public final native void clearWebkitBackgroundComposite() /*-{ this.webkitBackgroundComposite = ""; }-*/;
+public final native String getWebkitBackgroundOrigin() /*-{ return this.webkitBackgroundOrigin; }-*/;
+public final native void setWebkitBackgroundOrigin(String value) /*-{ this.webkitBackgroundOrigin = value; }-*/;
+public final native void clearWebkitBackgroundOrigin() /*-{ this.webkitBackgroundOrigin = ""; }-*/;
+public final native String getWebkitBackgroundSize() /*-{ return this.webkitBackgroundSize; }-*/;
+public final native void setWebkitBackgroundSize(String value) /*-{ this.webkitBackgroundSize = value; }-*/;
+public final native void clearWebkitBackgroundSize() /*-{ this.webkitBackgroundSize = ""; }-*/;
+public final native String getWebkitBorderAfter() /*-{ return this.webkitBorderAfter; }-*/;
+public final native void setWebkitBorderAfter(String value) /*-{ this.webkitBorderAfter = value; }-*/;
+public final native void clearWebkitBorderAfter() /*-{ this.webkitBorderAfter = ""; }-*/;
+public final native String getWebkitBorderAfterColor() /*-{ return this.webkitBorderAfterColor; }-*/;
+public final native void setWebkitBorderAfterColor(String value) /*-{ this.webkitBorderAfterColor = value; }-*/;
+public final native void clearWebkitBorderAfterColor() /*-{ this.webkitBorderAfterColor = ""; }-*/;
+public final native String getWebkitBorderAfterStyle() /*-{ return this.webkitBorderAfterStyle; }-*/;
+public final native void setWebkitBorderAfterStyle(String value) /*-{ this.webkitBorderAfterStyle = value; }-*/;
+public final native void clearWebkitBorderAfterStyle() /*-{ this.webkitBorderAfterStyle = ""; }-*/;
+public final native String getWebkitBorderAfterWidth() /*-{ return this.webkitBorderAfterWidth; }-*/;
+public final native void setWebkitBorderAfterWidth(String value) /*-{ this.webkitBorderAfterWidth = value; }-*/;
+public final native void clearWebkitBorderAfterWidth() /*-{ this.webkitBorderAfterWidth = ""; }-*/;
+public final native String getWebkitBorderBefore() /*-{ return this.webkitBorderBefore; }-*/;
+public final native void setWebkitBorderBefore(String value) /*-{ this.webkitBorderBefore = value; }-*/;
+public final native void clearWebkitBorderBefore() /*-{ this.webkitBorderBefore = ""; }-*/;
+public final native String getWebkitBorderBeforeColor() /*-{ return this.webkitBorderBeforeColor; }-*/;
+public final native void setWebkitBorderBeforeColor(String value) /*-{ this.webkitBorderBeforeColor = value; }-*/;
+public final native void clearWebkitBorderBeforeColor() /*-{ this.webkitBorderBeforeColor = ""; }-*/;
+public final native String getWebkitBorderBeforeStyle() /*-{ return this.webkitBorderBeforeStyle; }-*/;
+public final native void setWebkitBorderBeforeStyle(String value) /*-{ this.webkitBorderBeforeStyle = value; }-*/;
+public final native void clearWebkitBorderBeforeStyle() /*-{ this.webkitBorderBeforeStyle = ""; }-*/;
+public final native String getWebkitBorderBeforeWidth() /*-{ return this.webkitBorderBeforeWidth; }-*/;
+public final native void setWebkitBorderBeforeWidth(String value) /*-{ this.webkitBorderBeforeWidth = value; }-*/;
+public final native void clearWebkitBorderBeforeWidth() /*-{ this.webkitBorderBeforeWidth = ""; }-*/;
+public final native String getWebkitBorderEnd() /*-{ return this.webkitBorderEnd; }-*/;
+public final native void setWebkitBorderEnd(String value) /*-{ this.webkitBorderEnd = value; }-*/;
+public final native void clearWebkitBorderEnd() /*-{ this.webkitBorderEnd = ""; }-*/;
+public final native String getWebkitBorderEndColor() /*-{ return this.webkitBorderEndColor; }-*/;
+public final native void setWebkitBorderEndColor(String value) /*-{ this.webkitBorderEndColor = value; }-*/;
+public final native void clearWebkitBorderEndColor() /*-{ this.webkitBorderEndColor = ""; }-*/;
+public final native String getWebkitBorderEndStyle() /*-{ return this.webkitBorderEndStyle; }-*/;
+public final native void setWebkitBorderEndStyle(String value) /*-{ this.webkitBorderEndStyle = value; }-*/;
+public final native void clearWebkitBorderEndStyle() /*-{ this.webkitBorderEndStyle = ""; }-*/;
+public final native String getWebkitBorderEndWidth() /*-{ return this.webkitBorderEndWidth; }-*/;
+public final native void setWebkitBorderEndWidth(String value) /*-{ this.webkitBorderEndWidth = value; }-*/;
+public final native void clearWebkitBorderEndWidth() /*-{ this.webkitBorderEndWidth = ""; }-*/;
+public final native String getWebkitBorderFit() /*-{ return this.webkitBorderFit; }-*/;
+public final native void setWebkitBorderFit(String value) /*-{ this.webkitBorderFit = value; }-*/;
+public final native void clearWebkitBorderFit() /*-{ this.webkitBorderFit = ""; }-*/;
+public final native String getWebkitBorderHorizontalSpacing() /*-{ return this.webkitBorderHorizontalSpacing; }-*/;
+public final native void setWebkitBorderHorizontalSpacing(String value) /*-{ this.webkitBorderHorizontalSpacing = value; }-*/;
+public final native void clearWebkitBorderHorizontalSpacing() /*-{ this.webkitBorderHorizontalSpacing = ""; }-*/;
+public final native String getWebkitBorderImage() /*-{ return this.webkitBorderImage; }-*/;
+public final native void setWebkitBorderImage(String value) /*-{ this.webkitBorderImage = value; }-*/;
+public final native void clearWebkitBorderImage() /*-{ this.webkitBorderImage = ""; }-*/;
+public final native String getWebkitBorderRadius() /*-{ return this.webkitBorderRadius; }-*/;
+public final native void setWebkitBorderRadius(String value) /*-{ this.webkitBorderRadius = value; }-*/;
+public final native void clearWebkitBorderRadius() /*-{ this.webkitBorderRadius = ""; }-*/;
+public final native String getWebkitBorderStart() /*-{ return this.webkitBorderStart; }-*/;
+public final native void setWebkitBorderStart(String value) /*-{ this.webkitBorderStart = value; }-*/;
+public final native void clearWebkitBorderStart() /*-{ this.webkitBorderStart = ""; }-*/;
+public final native String getWebkitBorderStartColor() /*-{ return this.webkitBorderStartColor; }-*/;
+public final native void setWebkitBorderStartColor(String value) /*-{ this.webkitBorderStartColor = value; }-*/;
+public final native void clearWebkitBorderStartColor() /*-{ this.webkitBorderStartColor = ""; }-*/;
+public final native String getWebkitBorderStartStyle() /*-{ return this.webkitBorderStartStyle; }-*/;
+public final native void setWebkitBorderStartStyle(String value) /*-{ this.webkitBorderStartStyle = value; }-*/;
+public final native void clearWebkitBorderStartStyle() /*-{ this.webkitBorderStartStyle = ""; }-*/;
+public final native String getWebkitBorderStartWidth() /*-{ return this.webkitBorderStartWidth; }-*/;
+public final native void setWebkitBorderStartWidth(String value) /*-{ this.webkitBorderStartWidth = value; }-*/;
+public final native void clearWebkitBorderStartWidth() /*-{ this.webkitBorderStartWidth = ""; }-*/;
+public final native String getWebkitBorderVerticalSpacing() /*-{ return this.webkitBorderVerticalSpacing; }-*/;
+public final native void setWebkitBorderVerticalSpacing(String value) /*-{ this.webkitBorderVerticalSpacing = value; }-*/;
+public final native void clearWebkitBorderVerticalSpacing() /*-{ this.webkitBorderVerticalSpacing = ""; }-*/;
+public final native String getWebkitBoxAlign() /*-{ return this.webkitBoxAlign; }-*/;
+public final native void setWebkitBoxAlign(String value) /*-{ this.webkitBoxAlign = value; }-*/;
+public final native void clearWebkitBoxAlign() /*-{ this.webkitBoxAlign = ""; }-*/;
+public final native String getWebkitBoxDirection() /*-{ return this.webkitBoxDirection; }-*/;
+public final native void setWebkitBoxDirection(String value) /*-{ this.webkitBoxDirection = value; }-*/;
+public final native void clearWebkitBoxDirection() /*-{ this.webkitBoxDirection = ""; }-*/;
+public final native String getWebkitBoxFlex() /*-{ return this.webkitBoxFlex; }-*/;
+public final native void setWebkitBoxFlex(String value) /*-{ this.webkitBoxFlex = value; }-*/;
+public final native void clearWebkitBoxFlex() /*-{ this.webkitBoxFlex = ""; }-*/;
+public final native String getWebkitBoxFlexGroup() /*-{ return this.webkitBoxFlexGroup; }-*/;
+public final native void setWebkitBoxFlexGroup(String value) /*-{ this.webkitBoxFlexGroup = value; }-*/;
+public final native void clearWebkitBoxFlexGroup() /*-{ this.webkitBoxFlexGroup = ""; }-*/;
+public final native String getWebkitBoxLines() /*-{ return this.webkitBoxLines; }-*/;
+public final native void setWebkitBoxLines(String value) /*-{ this.webkitBoxLines = value; }-*/;
+public final native void clearWebkitBoxLines() /*-{ this.webkitBoxLines = ""; }-*/;
+public final native String getWebkitBoxOrdinalGroup() /*-{ return this.webkitBoxOrdinalGroup; }-*/;
+public final native void setWebkitBoxOrdinalGroup(String value) /*-{ this.webkitBoxOrdinalGroup = value; }-*/;
+public final native void clearWebkitBoxOrdinalGroup() /*-{ this.webkitBoxOrdinalGroup = ""; }-*/;
+public final native String getWebkitBoxOrient() /*-{ return this.webkitBoxOrient; }-*/;
+public final native void setWebkitBoxOrient(String value) /*-{ this.webkitBoxOrient = value; }-*/;
+public final native void clearWebkitBoxOrient() /*-{ this.webkitBoxOrient = ""; }-*/;
+public final native String getWebkitBoxPack() /*-{ return this.webkitBoxPack; }-*/;
+public final native void setWebkitBoxPack(String value) /*-{ this.webkitBoxPack = value; }-*/;
+public final native void clearWebkitBoxPack() /*-{ this.webkitBoxPack = ""; }-*/;
+public final native String getWebkitBoxReflect() /*-{ return this.webkitBoxReflect; }-*/;
+public final native void setWebkitBoxReflect(String value) /*-{ this.webkitBoxReflect = value; }-*/;
+public final native void clearWebkitBoxReflect() /*-{ this.webkitBoxReflect = ""; }-*/;
+public final native String getWebkitBoxShadow() /*-{ return this.webkitBoxShadow; }-*/;
+public final native void setWebkitBoxShadow(String value) /*-{ this.webkitBoxShadow = value; }-*/;
+public final native void clearWebkitBoxShadow() /*-{ this.webkitBoxShadow = ""; }-*/;
+public final native String getWebkitColorCorrection() /*-{ return this.webkitColorCorrection; }-*/;
+public final native void setWebkitColorCorrection(String value) /*-{ this.webkitColorCorrection = value; }-*/;
+public final native void clearWebkitColorCorrection() /*-{ this.webkitColorCorrection = ""; }-*/;
+public final native String getWebkitColumnAxis() /*-{ return this.webkitColumnAxis; }-*/;
+public final native void setWebkitColumnAxis(String value) /*-{ this.webkitColumnAxis = value; }-*/;
+public final native void clearWebkitColumnAxis() /*-{ this.webkitColumnAxis = ""; }-*/;
+public final native String getWebkitColumnBreakAfter() /*-{ return this.webkitColumnBreakAfter; }-*/;
+public final native void setWebkitColumnBreakAfter(String value) /*-{ this.webkitColumnBreakAfter = value; }-*/;
+public final native void clearWebkitColumnBreakAfter() /*-{ this.webkitColumnBreakAfter = ""; }-*/;
+public final native String getWebkitColumnBreakBefore() /*-{ return this.webkitColumnBreakBefore; }-*/;
+public final native void setWebkitColumnBreakBefore(String value) /*-{ this.webkitColumnBreakBefore = value; }-*/;
+public final native void clearWebkitColumnBreakBefore() /*-{ this.webkitColumnBreakBefore = ""; }-*/;
+public final native String getWebkitColumnBreakInside() /*-{ return this.webkitColumnBreakInside; }-*/;
+public final native void setWebkitColumnBreakInside(String value) /*-{ this.webkitColumnBreakInside = value; }-*/;
+public final native void clearWebkitColumnBreakInside() /*-{ this.webkitColumnBreakInside = ""; }-*/;
+public final native String getWebkitColumnCount() /*-{ return this.webkitColumnCount; }-*/;
+public final native void setWebkitColumnCount(String value) /*-{ this.webkitColumnCount = value; }-*/;
+public final native void clearWebkitColumnCount() /*-{ this.webkitColumnCount = ""; }-*/;
+public final native String getWebkitColumnGap() /*-{ return this.webkitColumnGap; }-*/;
+public final native void setWebkitColumnGap(String value) /*-{ this.webkitColumnGap = value; }-*/;
+public final native void clearWebkitColumnGap() /*-{ this.webkitColumnGap = ""; }-*/;
+public final native String getWebkitColumnRule() /*-{ return this.webkitColumnRule; }-*/;
+public final native void setWebkitColumnRule(String value) /*-{ this.webkitColumnRule = value; }-*/;
+public final native void clearWebkitColumnRule() /*-{ this.webkitColumnRule = ""; }-*/;
+public final native String getWebkitColumnRuleColor() /*-{ return this.webkitColumnRuleColor; }-*/;
+public final native void setWebkitColumnRuleColor(String value) /*-{ this.webkitColumnRuleColor = value; }-*/;
+public final native void clearWebkitColumnRuleColor() /*-{ this.webkitColumnRuleColor = ""; }-*/;
+public final native String getWebkitColumnRuleStyle() /*-{ return this.webkitColumnRuleStyle; }-*/;
+public final native void setWebkitColumnRuleStyle(String value) /*-{ this.webkitColumnRuleStyle = value; }-*/;
+public final native void clearWebkitColumnRuleStyle() /*-{ this.webkitColumnRuleStyle = ""; }-*/;
+public final native String getWebkitColumnRuleWidth() /*-{ return this.webkitColumnRuleWidth; }-*/;
+public final native void setWebkitColumnRuleWidth(String value) /*-{ this.webkitColumnRuleWidth = value; }-*/;
+public final native void clearWebkitColumnRuleWidth() /*-{ this.webkitColumnRuleWidth = ""; }-*/;
+public final native String getWebkitColumnSpan() /*-{ return this.webkitColumnSpan; }-*/;
+public final native void setWebkitColumnSpan(String value) /*-{ this.webkitColumnSpan = value; }-*/;
+public final native void clearWebkitColumnSpan() /*-{ this.webkitColumnSpan = ""; }-*/;
+public final native String getWebkitColumnWidth() /*-{ return this.webkitColumnWidth; }-*/;
+public final native void setWebkitColumnWidth(String value) /*-{ this.webkitColumnWidth = value; }-*/;
+public final native void clearWebkitColumnWidth() /*-{ this.webkitColumnWidth = ""; }-*/;
+public final native String getWebkitColumns() /*-{ return this.webkitColumns; }-*/;
+public final native void setWebkitColumns(String value) /*-{ this.webkitColumns = value; }-*/;
+public final native void clearWebkitColumns() /*-{ this.webkitColumns = ""; }-*/;
+public final native String getWebkitFilter() /*-{ return this.webkitFilter; }-*/;
+public final native void setWebkitFilter(String value) /*-{ this.webkitFilter = value; }-*/;
+public final native void clearWebkitFilter() /*-{ this.webkitFilter = ""; }-*/;
+public final native String getWebkitFlex() /*-{ return this.webkitFlex; }-*/;
+public final native void setWebkitFlex(String value) /*-{ this.webkitFlex = value; }-*/;
+public final native void clearWebkitFlex() /*-{ this.webkitFlex = ""; }-*/;
+public final native String getWebkitFlexAlign() /*-{ return this.webkitFlexAlign; }-*/;
+public final native void setWebkitFlexAlign(String value) /*-{ this.webkitFlexAlign = value; }-*/;
+public final native void clearWebkitFlexAlign() /*-{ this.webkitFlexAlign = ""; }-*/;
+public final native String getWebkitFlexDirection() /*-{ return this.webkitFlexDirection; }-*/;
+public final native void setWebkitFlexDirection(String value) /*-{ this.webkitFlexDirection = value; }-*/;
+public final native void clearWebkitFlexDirection() /*-{ this.webkitFlexDirection = ""; }-*/;
+public final native String getWebkitFlexFlow() /*-{ return this.webkitFlexFlow; }-*/;
+public final native void setWebkitFlexFlow(String value) /*-{ this.webkitFlexFlow = value; }-*/;
+public final native void clearWebkitFlexFlow() /*-{ this.webkitFlexFlow = ""; }-*/;
+public final native String getWebkitFlexItemAlign() /*-{ return this.webkitFlexItemAlign; }-*/;
+public final native void setWebkitFlexItemAlign(String value) /*-{ this.webkitFlexItemAlign = value; }-*/;
+public final native void clearWebkitFlexItemAlign() /*-{ this.webkitFlexItemAlign = ""; }-*/;
+public final native String getWebkitFlexLinePack() /*-{ return this.webkitFlexLinePack; }-*/;
+public final native void setWebkitFlexLinePack(String value) /*-{ this.webkitFlexLinePack = value; }-*/;
+public final native void clearWebkitFlexLinePack() /*-{ this.webkitFlexLinePack = ""; }-*/;
+public final native String getWebkitFlexOrder() /*-{ return this.webkitFlexOrder; }-*/;
+public final native void setWebkitFlexOrder(String value) /*-{ this.webkitFlexOrder = value; }-*/;
+public final native void clearWebkitFlexOrder() /*-{ this.webkitFlexOrder = ""; }-*/;
+public final native String getWebkitFlexPack() /*-{ return this.webkitFlexPack; }-*/;
+public final native void setWebkitFlexPack(String value) /*-{ this.webkitFlexPack = value; }-*/;
+public final native void clearWebkitFlexPack() /*-{ this.webkitFlexPack = ""; }-*/;
+public final native String getWebkitFlexWrap() /*-{ return this.webkitFlexWrap; }-*/;
+public final native void setWebkitFlexWrap(String value) /*-{ this.webkitFlexWrap = value; }-*/;
+public final native void clearWebkitFlexWrap() /*-{ this.webkitFlexWrap = ""; }-*/;
+public final native String getWebkitFontSizeDelta() /*-{ return this.webkitFontSizeDelta; }-*/;
+public final native void setWebkitFontSizeDelta(String value) /*-{ this.webkitFontSizeDelta = value; }-*/;
+public final native void clearWebkitFontSizeDelta() /*-{ this.webkitFontSizeDelta = ""; }-*/;
+public final native String getWebkitGridColumns() /*-{ return this.webkitGridColumns; }-*/;
+public final native void setWebkitGridColumns(String value) /*-{ this.webkitGridColumns = value; }-*/;
+public final native void clearWebkitGridColumns() /*-{ this.webkitGridColumns = ""; }-*/;
+public final native String getWebkitGridRows() /*-{ return this.webkitGridRows; }-*/;
+public final native void setWebkitGridRows(String value) /*-{ this.webkitGridRows = value; }-*/;
+public final native void clearWebkitGridRows() /*-{ this.webkitGridRows = ""; }-*/;
+public final native String getWebkitGridColumn() /*-{ return this.webkitGridColumn; }-*/;
+public final native void setWebkitGridColumn(String value) /*-{ this.webkitGridColumn = value; }-*/;
+public final native void clearWebkitGridColumn() /*-{ this.webkitGridColumn = ""; }-*/;
+public final native String getWebkitGridRow() /*-{ return this.webkitGridRow; }-*/;
+public final native void setWebkitGridRow(String value) /*-{ this.webkitGridRow = value; }-*/;
+public final native void clearWebkitGridRow() /*-{ this.webkitGridRow = ""; }-*/;
+public final native String getWebkitHighlight() /*-{ return this.webkitHighlight; }-*/;
+public final native void setWebkitHighlight(String value) /*-{ this.webkitHighlight = value; }-*/;
+public final native void clearWebkitHighlight() /*-{ this.webkitHighlight = ""; }-*/;
+public final native String getWebkitHyphenateCharacter() /*-{ return this.webkitHyphenateCharacter; }-*/;
+public final native void setWebkitHyphenateCharacter(String value) /*-{ this.webkitHyphenateCharacter = value; }-*/;
+public final native void clearWebkitHyphenateCharacter() /*-{ this.webkitHyphenateCharacter = ""; }-*/;
+public final native String getWebkitHyphenateLimitAfter() /*-{ return this.webkitHyphenateLimitAfter; }-*/;
+public final native void setWebkitHyphenateLimitAfter(String value) /*-{ this.webkitHyphenateLimitAfter = value; }-*/;
+public final native void clearWebkitHyphenateLimitAfter() /*-{ this.webkitHyphenateLimitAfter = ""; }-*/;
+public final native String getWebkitHyphenateLimitBefore() /*-{ return this.webkitHyphenateLimitBefore; }-*/;
+public final native void setWebkitHyphenateLimitBefore(String value) /*-{ this.webkitHyphenateLimitBefore = value; }-*/;
+public final native void clearWebkitHyphenateLimitBefore() /*-{ this.webkitHyphenateLimitBefore = ""; }-*/;
+public final native String getWebkitHyphenateLimitLines() /*-{ return this.webkitHyphenateLimitLines; }-*/;
+public final native void setWebkitHyphenateLimitLines(String value) /*-{ this.webkitHyphenateLimitLines = value; }-*/;
+public final native void clearWebkitHyphenateLimitLines() /*-{ this.webkitHyphenateLimitLines = ""; }-*/;
+public final native String getWebkitHyphens() /*-{ return this.webkitHyphens; }-*/;
+public final native void setWebkitHyphens(String value) /*-{ this.webkitHyphens = value; }-*/;
+public final native void clearWebkitHyphens() /*-{ this.webkitHyphens = ""; }-*/;
+public final native String getWebkitLineBoxContain() /*-{ return this.webkitLineBoxContain; }-*/;
+public final native void setWebkitLineBoxContain(String value) /*-{ this.webkitLineBoxContain = value; }-*/;
+public final native void clearWebkitLineBoxContain() /*-{ this.webkitLineBoxContain = ""; }-*/;
+public final native String getWebkitLineAlign() /*-{ return this.webkitLineAlign; }-*/;
+public final native void setWebkitLineAlign(String value) /*-{ this.webkitLineAlign = value; }-*/;
+public final native void clearWebkitLineAlign() /*-{ this.webkitLineAlign = ""; }-*/;
+public final native String getWebkitLineBreak() /*-{ return this.webkitLineBreak; }-*/;
+public final native void setWebkitLineBreak(String value) /*-{ this.webkitLineBreak = value; }-*/;
+public final native void clearWebkitLineBreak() /*-{ this.webkitLineBreak = ""; }-*/;
+public final native String getWebkitLineClamp() /*-{ return this.webkitLineClamp; }-*/;
+public final native void setWebkitLineClamp(String value) /*-{ this.webkitLineClamp = value; }-*/;
+public final native void clearWebkitLineClamp() /*-{ this.webkitLineClamp = ""; }-*/;
+public final native String getWebkitLineGrid() /*-{ return this.webkitLineGrid; }-*/;
+public final native void setWebkitLineGrid(String value) /*-{ this.webkitLineGrid = value; }-*/;
+public final native void clearWebkitLineGrid() /*-{ this.webkitLineGrid = ""; }-*/;
+public final native String getWebkitLineSnap() /*-{ return this.webkitLineSnap; }-*/;
+public final native void setWebkitLineSnap(String value) /*-{ this.webkitLineSnap = value; }-*/;
+public final native void clearWebkitLineSnap() /*-{ this.webkitLineSnap = ""; }-*/;
+public final native String getWebkitLogicalWidth() /*-{ return this.webkitLogicalWidth; }-*/;
+public final native void setWebkitLogicalWidth(String value) /*-{ this.webkitLogicalWidth = value; }-*/;
+public final native void clearWebkitLogicalWidth() /*-{ this.webkitLogicalWidth = ""; }-*/;
+public final native String getWebkitLogicalHeight() /*-{ return this.webkitLogicalHeight; }-*/;
+public final native void setWebkitLogicalHeight(String value) /*-{ this.webkitLogicalHeight = value; }-*/;
+public final native void clearWebkitLogicalHeight() /*-{ this.webkitLogicalHeight = ""; }-*/;
+public final native String getWebkitMarginAfterCollapse() /*-{ return this.webkitMarginAfterCollapse; }-*/;
+public final native void setWebkitMarginAfterCollapse(String value) /*-{ this.webkitMarginAfterCollapse = value; }-*/;
+public final native void clearWebkitMarginAfterCollapse() /*-{ this.webkitMarginAfterCollapse = ""; }-*/;
+public final native String getWebkitMarginBeforeCollapse() /*-{ return this.webkitMarginBeforeCollapse; }-*/;
+public final native void setWebkitMarginBeforeCollapse(String value) /*-{ this.webkitMarginBeforeCollapse = value; }-*/;
+public final native void clearWebkitMarginBeforeCollapse() /*-{ this.webkitMarginBeforeCollapse = ""; }-*/;
+public final native String getWebkitMarginBottomCollapse() /*-{ return this.webkitMarginBottomCollapse; }-*/;
+public final native void setWebkitMarginBottomCollapse(String value) /*-{ this.webkitMarginBottomCollapse = value; }-*/;
+public final native void clearWebkitMarginBottomCollapse() /*-{ this.webkitMarginBottomCollapse = ""; }-*/;
+public final native String getWebkitMarginTopCollapse() /*-{ return this.webkitMarginTopCollapse; }-*/;
+public final native void setWebkitMarginTopCollapse(String value) /*-{ this.webkitMarginTopCollapse = value; }-*/;
+public final native void clearWebkitMarginTopCollapse() /*-{ this.webkitMarginTopCollapse = ""; }-*/;
+public final native String getWebkitMarginCollapse() /*-{ return this.webkitMarginCollapse; }-*/;
+public final native void setWebkitMarginCollapse(String value) /*-{ this.webkitMarginCollapse = value; }-*/;
+public final native void clearWebkitMarginCollapse() /*-{ this.webkitMarginCollapse = ""; }-*/;
+public final native String getWebkitMarginAfter() /*-{ return this.webkitMarginAfter; }-*/;
+public final native void setWebkitMarginAfter(String value) /*-{ this.webkitMarginAfter = value; }-*/;
+public final native void clearWebkitMarginAfter() /*-{ this.webkitMarginAfter = ""; }-*/;
+public final native String getWebkitMarginBefore() /*-{ return this.webkitMarginBefore; }-*/;
+public final native void setWebkitMarginBefore(String value) /*-{ this.webkitMarginBefore = value; }-*/;
+public final native void clearWebkitMarginBefore() /*-{ this.webkitMarginBefore = ""; }-*/;
+public final native String getWebkitMarginEnd() /*-{ return this.webkitMarginEnd; }-*/;
+public final native void setWebkitMarginEnd(String value) /*-{ this.webkitMarginEnd = value; }-*/;
+public final native void clearWebkitMarginEnd() /*-{ this.webkitMarginEnd = ""; }-*/;
+public final native String getWebkitMarginStart() /*-{ return this.webkitMarginStart; }-*/;
+public final native void setWebkitMarginStart(String value) /*-{ this.webkitMarginStart = value; }-*/;
+public final native void clearWebkitMarginStart() /*-{ this.webkitMarginStart = ""; }-*/;
+public final native String getWebkitMarquee() /*-{ return this.webkitMarquee; }-*/;
+public final native void setWebkitMarquee(String value) /*-{ this.webkitMarquee = value; }-*/;
+public final native void clearWebkitMarquee() /*-{ this.webkitMarquee = ""; }-*/;
+public final native String getWebkitMarqueeDirection() /*-{ return this.webkitMarqueeDirection; }-*/;
+public final native void setWebkitMarqueeDirection(String value) /*-{ this.webkitMarqueeDirection = value; }-*/;
+public final native void clearWebkitMarqueeDirection() /*-{ this.webkitMarqueeDirection = ""; }-*/;
+public final native String getWebkitMarqueeIncrement() /*-{ return this.webkitMarqueeIncrement; }-*/;
+public final native void setWebkitMarqueeIncrement(String value) /*-{ this.webkitMarqueeIncrement = value; }-*/;
+public final native void clearWebkitMarqueeIncrement() /*-{ this.webkitMarqueeIncrement = ""; }-*/;
+public final native String getWebkitMarqueeRepetition() /*-{ return this.webkitMarqueeRepetition; }-*/;
+public final native void setWebkitMarqueeRepetition(String value) /*-{ this.webkitMarqueeRepetition = value; }-*/;
+public final native void clearWebkitMarqueeRepetition() /*-{ this.webkitMarqueeRepetition = ""; }-*/;
+public final native String getWebkitMarqueeSpeed() /*-{ return this.webkitMarqueeSpeed; }-*/;
+public final native void setWebkitMarqueeSpeed(String value) /*-{ this.webkitMarqueeSpeed = value; }-*/;
+public final native void clearWebkitMarqueeSpeed() /*-{ this.webkitMarqueeSpeed = ""; }-*/;
+public final native String getWebkitMarqueeStyle() /*-{ return this.webkitMarqueeStyle; }-*/;
+public final native void setWebkitMarqueeStyle(String value) /*-{ this.webkitMarqueeStyle = value; }-*/;
+public final native void clearWebkitMarqueeStyle() /*-{ this.webkitMarqueeStyle = ""; }-*/;
+public final native String getWebkitMask() /*-{ return this.webkitMask; }-*/;
+public final native void setWebkitMask(String value) /*-{ this.webkitMask = value; }-*/;
+public final native void clearWebkitMask() /*-{ this.webkitMask = ""; }-*/;
+public final native String getWebkitMaskAttachment() /*-{ return this.webkitMaskAttachment; }-*/;
+public final native void setWebkitMaskAttachment(String value) /*-{ this.webkitMaskAttachment = value; }-*/;
+public final native void clearWebkitMaskAttachment() /*-{ this.webkitMaskAttachment = ""; }-*/;
+public final native String getWebkitMaskBoxImage() /*-{ return this.webkitMaskBoxImage; }-*/;
+public final native void setWebkitMaskBoxImage(String value) /*-{ this.webkitMaskBoxImage = value; }-*/;
+public final native void clearWebkitMaskBoxImage() /*-{ this.webkitMaskBoxImage = ""; }-*/;
+public final native String getWebkitMaskBoxImageOutset() /*-{ return this.webkitMaskBoxImageOutset; }-*/;
+public final native void setWebkitMaskBoxImageOutset(String value) /*-{ this.webkitMaskBoxImageOutset = value; }-*/;
+public final native void clearWebkitMaskBoxImageOutset() /*-{ this.webkitMaskBoxImageOutset = ""; }-*/;
+public final native String getWebkitMaskBoxImageRepeat() /*-{ return this.webkitMaskBoxImageRepeat; }-*/;
+public final native void setWebkitMaskBoxImageRepeat(String value) /*-{ this.webkitMaskBoxImageRepeat = value; }-*/;
+public final native void clearWebkitMaskBoxImageRepeat() /*-{ this.webkitMaskBoxImageRepeat = ""; }-*/;
+public final native String getWebkitMaskBoxImageSlice() /*-{ return this.webkitMaskBoxImageSlice; }-*/;
+public final native void setWebkitMaskBoxImageSlice(String value) /*-{ this.webkitMaskBoxImageSlice = value; }-*/;
+public final native void clearWebkitMaskBoxImageSlice() /*-{ this.webkitMaskBoxImageSlice = ""; }-*/;
+public final native String getWebkitMaskBoxImageSource() /*-{ return this.webkitMaskBoxImageSource; }-*/;
+public final native void setWebkitMaskBoxImageSource(String value) /*-{ this.webkitMaskBoxImageSource = value; }-*/;
+public final native void clearWebkitMaskBoxImageSource() /*-{ this.webkitMaskBoxImageSource = ""; }-*/;
+public final native String getWebkitMaskBoxImageWidth() /*-{ return this.webkitMaskBoxImageWidth; }-*/;
+public final native void setWebkitMaskBoxImageWidth(String value) /*-{ this.webkitMaskBoxImageWidth = value; }-*/;
+public final native void clearWebkitMaskBoxImageWidth() /*-{ this.webkitMaskBoxImageWidth = ""; }-*/;
+public final native String getWebkitMaskClip() /*-{ return this.webkitMaskClip; }-*/;
+public final native void setWebkitMaskClip(String value) /*-{ this.webkitMaskClip = value; }-*/;
+public final native void clearWebkitMaskClip() /*-{ this.webkitMaskClip = ""; }-*/;
+public final native String getWebkitMaskComposite() /*-{ return this.webkitMaskComposite; }-*/;
+public final native void setWebkitMaskComposite(String value) /*-{ this.webkitMaskComposite = value; }-*/;
+public final native void clearWebkitMaskComposite() /*-{ this.webkitMaskComposite = ""; }-*/;
+public final native String getWebkitMaskImage() /*-{ return this.webkitMaskImage; }-*/;
+public final native void setWebkitMaskImage(String value) /*-{ this.webkitMaskImage = value; }-*/;
+public final native void clearWebkitMaskImage() /*-{ this.webkitMaskImage = ""; }-*/;
+public final native String getWebkitMaskOrigin() /*-{ return this.webkitMaskOrigin; }-*/;
+public final native void setWebkitMaskOrigin(String value) /*-{ this.webkitMaskOrigin = value; }-*/;
+public final native void clearWebkitMaskOrigin() /*-{ this.webkitMaskOrigin = ""; }-*/;
+public final native String getWebkitMaskPosition() /*-{ return this.webkitMaskPosition; }-*/;
+public final native void setWebkitMaskPosition(String value) /*-{ this.webkitMaskPosition = value; }-*/;
+public final native void clearWebkitMaskPosition() /*-{ this.webkitMaskPosition = ""; }-*/;
+public final native String getWebkitMaskPositionX() /*-{ return this.webkitMaskPositionX; }-*/;
+public final native void setWebkitMaskPositionX(String value) /*-{ this.webkitMaskPositionX = value; }-*/;
+public final native void clearWebkitMaskPositionX() /*-{ this.webkitMaskPositionX = ""; }-*/;
+public final native String getWebkitMaskPositionY() /*-{ return this.webkitMaskPositionY; }-*/;
+public final native void setWebkitMaskPositionY(String value) /*-{ this.webkitMaskPositionY = value; }-*/;
+public final native void clearWebkitMaskPositionY() /*-{ this.webkitMaskPositionY = ""; }-*/;
+public final native String getWebkitMaskRepeat() /*-{ return this.webkitMaskRepeat; }-*/;
+public final native void setWebkitMaskRepeat(String value) /*-{ this.webkitMaskRepeat = value; }-*/;
+public final native void clearWebkitMaskRepeat() /*-{ this.webkitMaskRepeat = ""; }-*/;
+public final native String getWebkitMaskRepeatX() /*-{ return this.webkitMaskRepeatX; }-*/;
+public final native void setWebkitMaskRepeatX(String value) /*-{ this.webkitMaskRepeatX = value; }-*/;
+public final native void clearWebkitMaskRepeatX() /*-{ this.webkitMaskRepeatX = ""; }-*/;
+public final native String getWebkitMaskRepeatY() /*-{ return this.webkitMaskRepeatY; }-*/;
+public final native void setWebkitMaskRepeatY(String value) /*-{ this.webkitMaskRepeatY = value; }-*/;
+public final native void clearWebkitMaskRepeatY() /*-{ this.webkitMaskRepeatY = ""; }-*/;
+public final native String getWebkitMaskSize() /*-{ return this.webkitMaskSize; }-*/;
+public final native void setWebkitMaskSize(String value) /*-{ this.webkitMaskSize = value; }-*/;
+public final native void clearWebkitMaskSize() /*-{ this.webkitMaskSize = ""; }-*/;
+public final native String getWebkitMatchNearestMailBlockquoteColor() /*-{ return this.webkitMatchNearestMailBlockquoteColor; }-*/;
+public final native void setWebkitMatchNearestMailBlockquoteColor(String value) /*-{ this.webkitMatchNearestMailBlockquoteColor = value; }-*/;
+public final native void clearWebkitMatchNearestMailBlockquoteColor() /*-{ this.webkitMatchNearestMailBlockquoteColor = ""; }-*/;
+public final native String getWebkitMaxLogicalWidth() /*-{ return this.webkitMaxLogicalWidth; }-*/;
+public final native void setWebkitMaxLogicalWidth(String value) /*-{ this.webkitMaxLogicalWidth = value; }-*/;
+public final native void clearWebkitMaxLogicalWidth() /*-{ this.webkitMaxLogicalWidth = ""; }-*/;
+public final native String getWebkitMaxLogicalHeight() /*-{ return this.webkitMaxLogicalHeight; }-*/;
+public final native void setWebkitMaxLogicalHeight(String value) /*-{ this.webkitMaxLogicalHeight = value; }-*/;
+public final native void clearWebkitMaxLogicalHeight() /*-{ this.webkitMaxLogicalHeight = ""; }-*/;
+public final native String getWebkitMinLogicalWidth() /*-{ return this.webkitMinLogicalWidth; }-*/;
+public final native void setWebkitMinLogicalWidth(String value) /*-{ this.webkitMinLogicalWidth = value; }-*/;
+public final native void clearWebkitMinLogicalWidth() /*-{ this.webkitMinLogicalWidth = ""; }-*/;
+public final native String getWebkitMinLogicalHeight() /*-{ return this.webkitMinLogicalHeight; }-*/;
+public final native void setWebkitMinLogicalHeight(String value) /*-{ this.webkitMinLogicalHeight = value; }-*/;
+public final native void clearWebkitMinLogicalHeight() /*-{ this.webkitMinLogicalHeight = ""; }-*/;
+public final native String getWebkitNbspMode() /*-{ return this.webkitNbspMode; }-*/;
+public final native void setWebkitNbspMode(String value) /*-{ this.webkitNbspMode = value; }-*/;
+public final native void clearWebkitNbspMode() /*-{ this.webkitNbspMode = ""; }-*/;
+public final native String getWebkitPaddingAfter() /*-{ return this.webkitPaddingAfter; }-*/;
+public final native void setWebkitPaddingAfter(String value) /*-{ this.webkitPaddingAfter = value; }-*/;
+public final native void clearWebkitPaddingAfter() /*-{ this.webkitPaddingAfter = ""; }-*/;
+public final native String getWebkitPaddingBefore() /*-{ return this.webkitPaddingBefore; }-*/;
+public final native void setWebkitPaddingBefore(String value) /*-{ this.webkitPaddingBefore = value; }-*/;
+public final native void clearWebkitPaddingBefore() /*-{ this.webkitPaddingBefore = ""; }-*/;
+public final native String getWebkitPaddingEnd() /*-{ return this.webkitPaddingEnd; }-*/;
+public final native void setWebkitPaddingEnd(String value) /*-{ this.webkitPaddingEnd = value; }-*/;
+public final native void clearWebkitPaddingEnd() /*-{ this.webkitPaddingEnd = ""; }-*/;
+public final native String getWebkitPaddingStart() /*-{ return this.webkitPaddingStart; }-*/;
+public final native void setWebkitPaddingStart(String value) /*-{ this.webkitPaddingStart = value; }-*/;
+public final native void clearWebkitPaddingStart() /*-{ this.webkitPaddingStart = ""; }-*/;
+public final native String getWebkitPerspective() /*-{ return this.webkitPerspective; }-*/;
+public final native void setWebkitPerspective(String value) /*-{ this.webkitPerspective = value; }-*/;
+public final native void clearWebkitPerspective() /*-{ this.webkitPerspective = ""; }-*/;
+public final native String getWebkitPerspectiveOrigin() /*-{ return this.webkitPerspectiveOrigin; }-*/;
+public final native void setWebkitPerspectiveOrigin(String value) /*-{ this.webkitPerspectiveOrigin = value; }-*/;
+public final native void clearWebkitPerspectiveOrigin() /*-{ this.webkitPerspectiveOrigin = ""; }-*/;
+public final native String getWebkitPerspectiveOriginX() /*-{ return this.webkitPerspectiveOriginX; }-*/;
+public final native void setWebkitPerspectiveOriginX(String value) /*-{ this.webkitPerspectiveOriginX = value; }-*/;
+public final native void clearWebkitPerspectiveOriginX() /*-{ this.webkitPerspectiveOriginX = ""; }-*/;
+public final native String getWebkitPerspectiveOriginY() /*-{ return this.webkitPerspectiveOriginY; }-*/;
+public final native void setWebkitPerspectiveOriginY(String value) /*-{ this.webkitPerspectiveOriginY = value; }-*/;
+public final native void clearWebkitPerspectiveOriginY() /*-{ this.webkitPerspectiveOriginY = ""; }-*/;
+public final native String getWebkitPrintColorAdjust() /*-{ return this.webkitPrintColorAdjust; }-*/;
+public final native void setWebkitPrintColorAdjust(String value) /*-{ this.webkitPrintColorAdjust = value; }-*/;
+public final native void clearWebkitPrintColorAdjust() /*-{ this.webkitPrintColorAdjust = ""; }-*/;
+public final native String getWebkitRtlOrdering() /*-{ return this.webkitRtlOrdering; }-*/;
+public final native void setWebkitRtlOrdering(String value) /*-{ this.webkitRtlOrdering = value; }-*/;
+public final native void clearWebkitRtlOrdering() /*-{ this.webkitRtlOrdering = ""; }-*/;
+public final native String getWebkitTextCombine() /*-{ return this.webkitTextCombine; }-*/;
+public final native void setWebkitTextCombine(String value) /*-{ this.webkitTextCombine = value; }-*/;
+public final native void clearWebkitTextCombine() /*-{ this.webkitTextCombine = ""; }-*/;
+public final native String getWebkitTextDecorationsInEffect() /*-{ return this.webkitTextDecorationsInEffect; }-*/;
+public final native void setWebkitTextDecorationsInEffect(String value) /*-{ this.webkitTextDecorationsInEffect = value; }-*/;
+public final native void clearWebkitTextDecorationsInEffect() /*-{ this.webkitTextDecorationsInEffect = ""; }-*/;
+public final native String getWebkitTextEmphasis() /*-{ return this.webkitTextEmphasis; }-*/;
+public final native void setWebkitTextEmphasis(String value) /*-{ this.webkitTextEmphasis = value; }-*/;
+public final native void clearWebkitTextEmphasis() /*-{ this.webkitTextEmphasis = ""; }-*/;
+public final native String getWebkitTextEmphasisColor() /*-{ return this.webkitTextEmphasisColor; }-*/;
+public final native void setWebkitTextEmphasisColor(String value) /*-{ this.webkitTextEmphasisColor = value; }-*/;
+public final native void clearWebkitTextEmphasisColor() /*-{ this.webkitTextEmphasisColor = ""; }-*/;
+public final native String getWebkitTextEmphasisPosition() /*-{ return this.webkitTextEmphasisPosition; }-*/;
+public final native void setWebkitTextEmphasisPosition(String value) /*-{ this.webkitTextEmphasisPosition = value; }-*/;
+public final native void clearWebkitTextEmphasisPosition() /*-{ this.webkitTextEmphasisPosition = ""; }-*/;
+public final native String getWebkitTextEmphasisStyle() /*-{ return this.webkitTextEmphasisStyle; }-*/;
+public final native void setWebkitTextEmphasisStyle(String value) /*-{ this.webkitTextEmphasisStyle = value; }-*/;
+public final native void clearWebkitTextEmphasisStyle() /*-{ this.webkitTextEmphasisStyle = ""; }-*/;
+public final native String getWebkitTextFillColor() /*-{ return this.webkitTextFillColor; }-*/;
+public final native void setWebkitTextFillColor(String value) /*-{ this.webkitTextFillColor = value; }-*/;
+public final native void clearWebkitTextFillColor() /*-{ this.webkitTextFillColor = ""; }-*/;
+public final native String getWebkitTextSecurity() /*-{ return this.webkitTextSecurity; }-*/;
+public final native void setWebkitTextSecurity(String value) /*-{ this.webkitTextSecurity = value; }-*/;
+public final native void clearWebkitTextSecurity() /*-{ this.webkitTextSecurity = ""; }-*/;
+public final native String getWebkitTextStroke() /*-{ return this.webkitTextStroke; }-*/;
+public final native void setWebkitTextStroke(String value) /*-{ this.webkitTextStroke = value; }-*/;
+public final native void clearWebkitTextStroke() /*-{ this.webkitTextStroke = ""; }-*/;
+public final native String getWebkitTextStrokeColor() /*-{ return this.webkitTextStrokeColor; }-*/;
+public final native void setWebkitTextStrokeColor(String value) /*-{ this.webkitTextStrokeColor = value; }-*/;
+public final native void clearWebkitTextStrokeColor() /*-{ this.webkitTextStrokeColor = ""; }-*/;
+public final native String getWebkitTextStrokeWidth() /*-{ return this.webkitTextStrokeWidth; }-*/;
+public final native void setWebkitTextStrokeWidth(String value) /*-{ this.webkitTextStrokeWidth = value; }-*/;
+public final native void clearWebkitTextStrokeWidth() /*-{ this.webkitTextStrokeWidth = ""; }-*/;
+public final native String getWebkitTransform() /*-{ return this.webkitTransform; }-*/;
+public final native void setWebkitTransform(String value) /*-{ this.webkitTransform = value; }-*/;
+public final native void clearWebkitTransform() /*-{ this.webkitTransform = ""; }-*/;
+public final native String getWebkitTransformOrigin() /*-{ return this.webkitTransformOrigin; }-*/;
+public final native void setWebkitTransformOrigin(String value) /*-{ this.webkitTransformOrigin = value; }-*/;
+public final native void clearWebkitTransformOrigin() /*-{ this.webkitTransformOrigin = ""; }-*/;
+public final native String getWebkitTransformOriginX() /*-{ return this.webkitTransformOriginX; }-*/;
+public final native void setWebkitTransformOriginX(String value) /*-{ this.webkitTransformOriginX = value; }-*/;
+public final native void clearWebkitTransformOriginX() /*-{ this.webkitTransformOriginX = ""; }-*/;
+public final native String getWebkitTransformOriginY() /*-{ return this.webkitTransformOriginY; }-*/;
+public final native void setWebkitTransformOriginY(String value) /*-{ this.webkitTransformOriginY = value; }-*/;
+public final native void clearWebkitTransformOriginY() /*-{ this.webkitTransformOriginY = ""; }-*/;
+public final native String getWebkitTransformOriginZ() /*-{ return this.webkitTransformOriginZ; }-*/;
+public final native void setWebkitTransformOriginZ(String value) /*-{ this.webkitTransformOriginZ = value; }-*/;
+public final native void clearWebkitTransformOriginZ() /*-{ this.webkitTransformOriginZ = ""; }-*/;
+public final native String getWebkitTransformStyle() /*-{ return this.webkitTransformStyle; }-*/;
+public final native void setWebkitTransformStyle(String value) /*-{ this.webkitTransformStyle = value; }-*/;
+public final native void clearWebkitTransformStyle() /*-{ this.webkitTransformStyle = ""; }-*/;
+public final native String getWebkitTransition() /*-{ return this.webkitTransition; }-*/;
+public final native void setWebkitTransition(String value) /*-{ this.webkitTransition = value; }-*/;
+public final native void clearWebkitTransition() /*-{ this.webkitTransition = ""; }-*/;
+public final native String getWebkitTransitionDelay() /*-{ return this.webkitTransitionDelay; }-*/;
+public final native void setWebkitTransitionDelay(String value) /*-{ this.webkitTransitionDelay = value; }-*/;
+public final native void clearWebkitTransitionDelay() /*-{ this.webkitTransitionDelay = ""; }-*/;
+public final native String getWebkitTransitionDuration() /*-{ return this.webkitTransitionDuration; }-*/;
+public final native void setWebkitTransitionDuration(String value) /*-{ this.webkitTransitionDuration = value; }-*/;
+public final native void clearWebkitTransitionDuration() /*-{ this.webkitTransitionDuration = ""; }-*/;
+public final native String getWebkitTransitionProperty() /*-{ return this.webkitTransitionProperty; }-*/;
+public final native void setWebkitTransitionProperty(String value) /*-{ this.webkitTransitionProperty = value; }-*/;
+public final native void clearWebkitTransitionProperty() /*-{ this.webkitTransitionProperty = ""; }-*/;
+public final native String getWebkitTransitionTimingFunction() /*-{ return this.webkitTransitionTimingFunction; }-*/;
+public final native void setWebkitTransitionTimingFunction(String value) /*-{ this.webkitTransitionTimingFunction = value; }-*/;
+public final native void clearWebkitTransitionTimingFunction() /*-{ this.webkitTransitionTimingFunction = ""; }-*/;
+public final native String getWebkitUserDrag() /*-{ return this.webkitUserDrag; }-*/;
+public final native void setWebkitUserDrag(String value) /*-{ this.webkitUserDrag = value; }-*/;
+public final native void clearWebkitUserDrag() /*-{ this.webkitUserDrag = ""; }-*/;
+public final native String getWebkitUserModify() /*-{ return this.webkitUserModify; }-*/;
+public final native void setWebkitUserModify(String value) /*-{ this.webkitUserModify = value; }-*/;
+public final native void clearWebkitUserModify() /*-{ this.webkitUserModify = ""; }-*/;
+public final native String getWebkitUserSelect() /*-{ return this.webkitUserSelect; }-*/;
+public final native void setWebkitUserSelect(String value) /*-{ this.webkitUserSelect = value; }-*/;
+public final native void clearWebkitUserSelect() /*-{ this.webkitUserSelect = ""; }-*/;
+public final native String getWebkitFlowInto() /*-{ return this.webkitFlowInto; }-*/;
+public final native void setWebkitFlowInto(String value) /*-{ this.webkitFlowInto = value; }-*/;
+public final native void clearWebkitFlowInto() /*-{ this.webkitFlowInto = ""; }-*/;
+public final native String getWebkitFlowFrom() /*-{ return this.webkitFlowFrom; }-*/;
+public final native void setWebkitFlowFrom(String value) /*-{ this.webkitFlowFrom = value; }-*/;
+public final native void clearWebkitFlowFrom() /*-{ this.webkitFlowFrom = ""; }-*/;
+public final native String getWebkitRegionOverflow() /*-{ return this.webkitRegionOverflow; }-*/;
+public final native void setWebkitRegionOverflow(String value) /*-{ this.webkitRegionOverflow = value; }-*/;
+public final native void clearWebkitRegionOverflow() /*-{ this.webkitRegionOverflow = ""; }-*/;
+public final native String getWebkitShapeInside() /*-{ return this.webkitShapeInside; }-*/;
+public final native void setWebkitShapeInside(String value) /*-{ this.webkitShapeInside = value; }-*/;
+public final native void clearWebkitShapeInside() /*-{ this.webkitShapeInside = ""; }-*/;
+public final native String getWebkitShapeOutside() /*-{ return this.webkitShapeOutside; }-*/;
+public final native void setWebkitShapeOutside(String value) /*-{ this.webkitShapeOutside = value; }-*/;
+public final native void clearWebkitShapeOutside() /*-{ this.webkitShapeOutside = ""; }-*/;
+public final native String getWebkitWrapMargin() /*-{ return this.webkitWrapMargin; }-*/;
+public final native void setWebkitWrapMargin(String value) /*-{ this.webkitWrapMargin = value; }-*/;
+public final native void clearWebkitWrapMargin() /*-{ this.webkitWrapMargin = ""; }-*/;
+public final native String getWebkitWrapPadding() /*-{ return this.webkitWrapPadding; }-*/;
+public final native void setWebkitWrapPadding(String value) /*-{ this.webkitWrapPadding = value; }-*/;
+public final native void clearWebkitWrapPadding() /*-{ this.webkitWrapPadding = ""; }-*/;
+public final native String getWebkitRegionBreakAfter() /*-{ return this.webkitRegionBreakAfter; }-*/;
+public final native void setWebkitRegionBreakAfter(String value) /*-{ this.webkitRegionBreakAfter = value; }-*/;
+public final native void clearWebkitRegionBreakAfter() /*-{ this.webkitRegionBreakAfter = ""; }-*/;
+public final native String getWebkitRegionBreakBefore() /*-{ return this.webkitRegionBreakBefore; }-*/;
+public final native void setWebkitRegionBreakBefore(String value) /*-{ this.webkitRegionBreakBefore = value; }-*/;
+public final native void clearWebkitRegionBreakBefore() /*-{ this.webkitRegionBreakBefore = ""; }-*/;
+public final native String getWebkitRegionBreakInside() /*-{ return this.webkitRegionBreakInside; }-*/;
+public final native void setWebkitRegionBreakInside(String value) /*-{ this.webkitRegionBreakInside = value; }-*/;
+public final native void clearWebkitRegionBreakInside() /*-{ this.webkitRegionBreakInside = ""; }-*/;
+public final native String getWebkitWrapFlow() /*-{ return this.webkitWrapFlow; }-*/;
+public final native void setWebkitWrapFlow(String value) /*-{ this.webkitWrapFlow = value; }-*/;
+public final native void clearWebkitWrapFlow() /*-{ this.webkitWrapFlow = ""; }-*/;
+public final native String getWebkitWrapThrough() /*-{ return this.webkitWrapThrough; }-*/;
+public final native void setWebkitWrapThrough(String value) /*-{ this.webkitWrapThrough = value; }-*/;
+public final native void clearWebkitWrapThrough() /*-{ this.webkitWrapThrough = ""; }-*/;
+public final native String getWebkitWrap() /*-{ return this.webkitWrap; }-*/;
+public final native void setWebkitWrap(String value) /*-{ this.webkitWrap = value; }-*/;
+public final native void clearWebkitWrap() /*-{ this.webkitWrap = ""; }-*/;
+public final native String getWebkitTapHighlightColor() /*-{ return this.webkitTapHighlightColor; }-*/;
+public final native void setWebkitTapHighlightColor(String value) /*-{ this.webkitTapHighlightColor = value; }-*/;
+public final native void clearWebkitTapHighlightColor() /*-{ this.webkitTapHighlightColor = ""; }-*/;
+public final native String getWebkitDashboardRegion() /*-{ return this.webkitDashboardRegion; }-*/;
+public final native void setWebkitDashboardRegion(String value) /*-{ this.webkitDashboardRegion = value; }-*/;
+public final native void clearWebkitDashboardRegion() /*-{ this.webkitDashboardRegion = ""; }-*/;
+public final native String getWebkitOverflowScrolling() /*-{ return this.webkitOverflowScrolling; }-*/;
+public final native void setWebkitOverflowScrolling(String value) /*-{ this.webkitOverflowScrolling = value; }-*/;
+public final native void clearWebkitOverflowScrolling() /*-{ this.webkitOverflowScrolling = ""; }-*/;
+}
diff --git a/elemental/idl/templates/jso_impl_Document.darttemplate b/elemental/idl/templates/jso_impl_Document.darttemplate
new file mode 100644
index 0000000..2e5f7ac
--- /dev/null
+++ b/elemental/idl/templates/jso_impl_Document.darttemplate
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.js.stylesheets.*;
+import elemental.js.events.*;
+import elemental.js.util.*;
+import elemental.js.dom.*;
+import elemental.js.html.*;
+import elemental.js.css.*;
+import elemental.js.stylesheets.*;
+import elemental.js.svg.*;
+import elemental.svg.*;
+
+import java.util.Date;
+
+public class $ID$EXTENDS $IMPLEMENTS {
+ protected $ID() {}
+
+ public final native void clearOpener() /*-{
+ this.opener = null;
+ }-*/;
+
+ public final JsElement createSvgElement(String tag) {
+ return createElementNS("http://www.w3.org/2000/svg", tag).cast();
+ }
+
+$!MEMBERS}
diff --git a/elemental/idl/templates/jso_impl_ElementalMixinBase.darttemplate b/elemental/idl/templates/jso_impl_ElementalMixinBase.darttemplate
new file mode 100644
index 0000000..b3e199a
--- /dev/null
+++ b/elemental/idl/templates/jso_impl_ElementalMixinBase.darttemplate
@@ -0,0 +1,186 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.svg.*;
+import elemental.js.util.JsElementalBase;
+
+import java.util.Date;
+
+/**
+ * A base class containing all of the IDL interfaces which are shared
+ * between disjoint type hierarchies. Because of the GWT compiler
+ * SingleJsoImpl restriction that only a single JavaScriptObject
+ * may implement a given interface, we hoist all of the explicit
+ * mixin classes into a base JSO used by all of elemental.
+ */
+public class JsElementalMixinBase $EXTENDS $IMPLEMENTS {
+ protected JsElementalMixinBase() {}
+$!MEMBERS
+
+private static class Remover implements EventRemover {
+ private final EventTarget target;
+ private final String type;
+ private final JavaScriptObject handler;
+ private final boolean useCapture;
+
+ private Remover(EventTarget target, String type, JavaScriptObject handler,
+ boolean useCapture) {
+ this.target = target;
+ this.type = type;
+ this.handler = handler;
+ this.useCapture = useCapture;
+ }
+
+ @Override
+ public void remove() {
+ removeEventListener(target, type, handler, useCapture);
+ }
+
+ private static Remover create(EventTarget target, String type, JavaScriptObject handler,
+ boolean useCapture) {
+ return new Remover(target, type, handler, useCapture);
+ }
+}
+
+// NOTES:
+// - This handler/listener structure is currently the same in DevMode and ProdMode but it is
+// subject to change. In fact, I would like to use:
+// { listener : listener, handleEvent : function() }
+// but Firefox doesn't properly support that form of handler for onEvent type events.
+// - The handler property on listener can be removed when removeEventListener is removed.
+private native static JavaScriptObject createHandler(EventListener listener) /*-{
+ var handler = listener.handler;
+ if (!handler) {
+ handler = $entry(function(event) {
+ @elemental.js.dom.JsElementalMixinBase::handleEvent(Lelemental/events/EventListener;Lelemental/events/Event;)(listener, event);
+ });
+ handler.listener = listener;
+ // TODO(knorton): Remove at Christmas when removeEventListener is removed.
+ listener.handler = handler;
+ }
+ return handler;
+}-*/;
+
+private static class ForDevMode {
+ private static java.util.Map<EventListener, JavaScriptObject> handlers;
+
+ static {
+ if (!com.google.gwt.core.client.GWT.isScript()) {
+ handlers = new java.util.HashMap<EventListener, JavaScriptObject>();
+ }
+ }
+
+ private static JavaScriptObject getHandlerFor(EventListener listener) {
+ if (listener == null) {
+ return null;
+ }
+
+ JavaScriptObject handler = handlers.get(listener);
+ if (handler == null) {
+ handler = createHandler(listener);
+ handlers.put(listener, handler);
+ }
+ return handler;
+ }
+
+ private native static JavaScriptObject createHandler(EventListener listener) /*-{
+ var handler = $entry(function(event) {
+ @elemental.js.dom.JsElementalMixinBase::handleEvent(Lelemental/events/EventListener;Lelemental/events/Event;)(listener, event);
+ });
+ handler.listener = listener;
+ return handler;
+ }-*/;
+
+ private native static EventListener getListenerFor(JavaScriptObject handler) /*-{
+ return handler && handler.listener;
+ }-*/;
+}
+
+private static class ForProdMode {
+ private static JavaScriptObject getHandlerFor(EventListener listener) {
+ return listener == null ? null : createHandler(listener);
+ }
+
+ private native static EventListener getListenerFor(JavaScriptObject handler) /*-{
+ return handler && handler.listener;
+ }-*/;
+}
+
+private static void handleEvent(EventListener listener, Event event) {
+ listener.handleEvent(event);
+}
+
+private static EventListener getListenerFor(JavaScriptObject handler) {
+ return com.google.gwt.core.client.GWT.isScript()
+ ? ForProdMode.getListenerFor(handler)
+ : ForDevMode.getListenerFor(handler);
+}
+
+private static JavaScriptObject getHandlerFor(EventListener listener) {
+ return com.google.gwt.core.client.GWT.isScript()
+ ? ForProdMode.getHandlerFor(listener)
+ : ForDevMode.getHandlerFor(listener);
+}
+
+public native final EventRemover addEventListener(String type, EventListener listener, boolean useCapture) /*-{
+ var handler = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ this.addEventListener(type, handler, useCapture);
+ return @elemental.js.dom.JsElementalMixinBase.Remover::create(Lelemental/events/EventTarget;Ljava/lang/String;Lcom/google/gwt/core/client/JavaScriptObject;Z)
+ (this, type, handler, useCapture);
+}-*/;
+
+public native final EventRemover addEventListener(String type, EventListener listener) /*-{
+ var handler = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ this.addEventListener(type, handler);
+ return @elemental.js.dom.JsElementalMixinBase.Remover::create(Lelemental/events/EventTarget;Ljava/lang/String;Lcom/google/gwt/core/client/JavaScriptObject;Z)
+ (this, type, handler, useCapture);
+}-*/;
+
+@Deprecated
+public final void removeEventListener(String type, EventListener listener, boolean useCapture) {
+ final JavaScriptObject handler = getHandlerFor(listener);
+ if (handler != null) {
+ removeEventListener(this, type, handler, useCapture);
+ }
+}
+
+@Deprecated
+public final void removeEventListener(String type, EventListener listener) {
+ final JavaScriptObject handler = getHandlerFor(listener);
+ if (handler != null) {
+ removeEventListener(this, type, handler);
+ }
+}
+
+private static native void removeEventListener(EventTarget target, String type,
+ JavaScriptObject handler, boolean useCapture) /*-{
+ target.removeEventListener(type, handler, useCapture);
+}-*/;
+
+private static native void removeEventListener(EventTarget target, String type,
+ JavaScriptObject handler) /*-{
+ target.removeEventListener(type, handler);
+}-*/;
+
+}
diff --git a/elemental/idl/templates/jso_impl_Window.darttemplate b/elemental/idl/templates/jso_impl_Window.darttemplate
new file mode 100644
index 0000000..9eb300b
--- /dev/null
+++ b/elemental/idl/templates/jso_impl_Window.darttemplate
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package $PACKAGE;
+$IMPORTS
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.js.stylesheets.*;
+import elemental.js.events.*;
+import elemental.js.util.*;
+import elemental.js.dom.*;
+import elemental.js.html.*;
+import elemental.js.css.*;
+import elemental.js.stylesheets.*;
+import elemental.xpath.*;
+import elemental.xml.*;
+import elemental.js.xpath.*;
+import elemental.js.xml.*;
+
+import java.util.Date;
+
+public class $ID$EXTENDS $IMPLEMENTS {
+ protected $ID() {}
+
+ public final native void clearOpener() /*-{
+ this.opener = null;
+ }-*/;
+
+$!MEMBERS}
diff --git a/elemental/idl/third_party/WebCore/LICENSE-APPLE b/elemental/idl/third_party/WebCore/LICENSE-APPLE
new file mode 100644
index 0000000..f29b41c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/LICENSE-APPLE
@@ -0,0 +1,21 @@
+Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
diff --git a/elemental/idl/third_party/WebCore/LICENSE-LGPL-2 b/elemental/idl/third_party/WebCore/LICENSE-LGPL-2
new file mode 100644
index 0000000..0e1187b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/LICENSE-LGPL-2
@@ -0,0 +1,481 @@
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/elemental/idl/third_party/WebCore/LICENSE-LGPL-2.1 b/elemental/idl/third_party/WebCore/LICENSE-LGPL-2.1
new file mode 100644
index 0000000..b2787a6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/LICENSE-LGPL-2.1
@@ -0,0 +1,502 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/elemental/idl/third_party/WebCore/Modules/battery/BatteryManager.idl b/elemental/idl/third_party/WebCore/Modules/battery/BatteryManager.idl
new file mode 100644
index 0000000..e552df3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/battery/BatteryManager.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module window {
+
+ // http://dev.w3.org/2009/dap/system-info/battery-status.html
+ interface [
+ Conditional=BATTERY_STATUS,
+ ActiveDOMObject,
+ EventTarget
+ ] BatteryManager {
+ readonly attribute boolean charging;
+ readonly attribute double chargingTime;
+ readonly attribute double dischargingTime;
+ readonly attribute double level;
+
+ attribute EventListener onchargingchange;
+ attribute EventListener onchargingtimechange;
+ attribute EventListener ondischargingtimechange;
+ attribute EventListener onlevelchange;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/Modules/battery/NavigatorBattery.idl b/elemental/idl/third_party/WebCore/Modules/battery/NavigatorBattery.idl
new file mode 100644
index 0000000..5c21472
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/battery/NavigatorBattery.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module window {
+
+ interface [
+ Conditional=BATTERY_STATUS,
+ Supplemental=Navigator
+ ] NavigatorBattery {
+ readonly attribute BatteryManager webkitBattery;
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/DOMFileSystem.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/DOMFileSystem.idl
new file mode 100644
index 0000000..2e98fbf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/DOMFileSystem.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ ActiveDOMObject,
+ JSNoStaticTables
+ ] DOMFileSystem {
+ readonly attribute DOMString name;
+ readonly attribute DirectoryEntry root;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/DOMFileSystemSync.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/DOMFileSystemSync.idl
new file mode 100644
index 0000000..706aa50
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/DOMFileSystemSync.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ JSNoStaticTables
+ ] DOMFileSystemSync {
+ readonly attribute DOMString name;
+ readonly attribute DirectoryEntrySync root;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/DOMWindowFileSystem.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/DOMWindowFileSystem.idl
new file mode 100644
index 0000000..b6ef513
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/DOMWindowFileSystem.idl
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+
+module window {
+
+ interface [
+ Conditional=FILE_SYSTEM,
+ Supplemental=DOMWindow
+ ] DOMWindowFileSystem {
+ const unsigned short TEMPORARY = 0;
+ const unsigned short PERSISTENT = 1;
+
+ [V8EnabledAtRuntime=FileSystem] void webkitRequestFileSystem(in unsigned short type, in long long size,
+ in [Callback] FileSystemCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback);
+ [V8EnabledAtRuntime=FileSystem] void webkitResolveLocalFileSystemURL(in DOMString url,
+ in [Callback, Optional] EntryCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/DataTransferItemFileSystem.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/DataTransferItemFileSystem.idl
new file mode 100644
index 0000000..35291dd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/DataTransferItemFileSystem.idl
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+
+ interface [
+ Conditional=DATA_TRANSFER_ITEMS&FILE_SYSTEM,
+ Supplemental=DataTransferItem
+ ] DataTransferItemFileSystem {
+ // FIXME: add webkitGetAsEntry()
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryEntry.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryEntry.idl
new file mode 100644
index 0000000..c6c9ae9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryEntry.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject,
+ JSNoStaticTables
+ ] DirectoryEntry : Entry {
+ DirectoryReader createReader();
+ [Custom] void getFile(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString path, in [Optional] WebKitFlags flags, in [Optional, Callback] EntryCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ [Custom] void getDirectory(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString path, in [Optional] WebKitFlags flags, in [Optional, Callback] EntryCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ void removeRecursively(in [Callback] VoidCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryEntrySync.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryEntrySync.idl
new file mode 100644
index 0000000..66c288f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryEntrySync.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject,
+ JSNoStaticTables
+ ] DirectoryEntrySync : EntrySync {
+ DirectoryReaderSync createReader() raises (FileException);
+ [Custom] FileEntrySync getFile(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString path, in WebKitFlags flags) raises (FileException);
+ [Custom] DirectoryEntrySync getDirectory(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString path, in WebKitFlags flags) raises (FileException);
+ void removeRecursively() raises (FileException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryReader.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryReader.idl
new file mode 100644
index 0000000..87ce852
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryReader.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ JSNoStaticTables
+ ] DirectoryReader {
+ void readEntries(in [Callback] EntriesCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryReaderSync.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryReaderSync.idl
new file mode 100644
index 0000000..a8ff685
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/DirectoryReaderSync.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ JSNoStaticTables
+ ] DirectoryReaderSync {
+ EntryArraySync readEntries() raises (FileException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/EntriesCallback.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/EntriesCallback.idl
new file mode 100644
index 0000000..73b374d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/EntriesCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ Callback
+ ] EntriesCallback {
+ boolean handleEvent(in EntryArray entries);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/Entry.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/Entry.idl
new file mode 100644
index 0000000..c6cdba5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/Entry.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ CustomToJSObject,
+ JSNoStaticTables
+ ] Entry {
+ readonly attribute boolean isFile;
+ readonly attribute boolean isDirectory;
+ readonly attribute DOMString name;
+ readonly attribute DOMString fullPath;
+ readonly attribute DOMFileSystem filesystem;
+
+ void getMetadata(in [Callback] MetadataCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ void moveTo(in DirectoryEntry parent, in [Optional, TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString name, in [Optional, Callback] EntryCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ void copyTo(in DirectoryEntry parent, in [Optional, TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString name, in [Optional, Callback] EntryCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ DOMString toURL();
+ void remove(in [Callback] VoidCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ void getParent(in [Optional, Callback] EntryCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/EntryArray.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/EntryArray.idl
new file mode 100644
index 0000000..324dbc6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/EntryArray.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ IndexedGetter,
+ JSNoStaticTables
+ ] EntryArray {
+ readonly attribute unsigned long length;
+ Entry item(in [IsIndex] unsigned long index);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/EntryArraySync.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/EntryArraySync.idl
new file mode 100644
index 0000000..224a68a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/EntryArraySync.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ IndexedGetter,
+ JSNoStaticTables
+ ] EntryArraySync {
+ readonly attribute unsigned long length;
+ EntrySync item(in [IsIndex] unsigned long index);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/EntryCallback.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/EntryCallback.idl
new file mode 100644
index 0000000..bea3fd1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/EntryCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ Callback
+ ] EntryCallback {
+ boolean handleEvent(in Entry entry);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/EntrySync.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/EntrySync.idl
new file mode 100644
index 0000000..cd4bae7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/EntrySync.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ CustomToJSObject,
+ JSNoStaticTables
+ ] EntrySync {
+ readonly attribute boolean isFile;
+ readonly attribute boolean isDirectory;
+ readonly attribute DOMString name;
+ readonly attribute DOMString fullPath;
+ readonly attribute DOMFileSystemSync filesystem;
+
+ Metadata getMetadata() raises (FileException);
+ EntrySync moveTo(in DirectoryEntrySync parent, in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString name) raises (FileException);
+ EntrySync copyTo(in DirectoryEntrySync parent, in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString name) raises (FileException);
+ DOMString toURL();
+ void remove() raises (FileException);
+ DirectoryEntrySync getParent();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/ErrorCallback.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/ErrorCallback.idl
new file mode 100644
index 0000000..fc7fa85
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/ErrorCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ Callback
+ ] ErrorCallback {
+ boolean handleEvent(in FileError error);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/FileCallback.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/FileCallback.idl
new file mode 100644
index 0000000..0ab814f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/FileCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module fileapi {
+ interface [
+ Conditional=FILE_SYSTEM,
+ Callback
+ ] FileCallback {
+ boolean handleEvent(in File file);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/FileEntry.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/FileEntry.idl
new file mode 100644
index 0000000..63b0040
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/FileEntry.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject,
+ JSNoStaticTables
+ ] FileEntry : Entry {
+ void createWriter(in [Callback] FileWriterCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ void file(in [Callback] FileCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/FileEntrySync.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/FileEntrySync.idl
new file mode 100644
index 0000000..8ac40ba
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/FileEntrySync.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject,
+ JSNoStaticTables
+ ] FileEntrySync : EntrySync {
+ File file() raises (FileException);
+ FileWriterSync createWriter() raises (FileException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/FileSystemCallback.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/FileSystemCallback.idl
new file mode 100644
index 0000000..cf686ff
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/FileSystemCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ Callback
+ ] FileSystemCallback {
+ boolean handleEvent(in DOMFileSystem fileSystem);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/FileWriter.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/FileWriter.idl
new file mode 100644
index 0000000..754fa0f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/FileWriter.idl
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ interface [
+ Conditional=FILE_SYSTEM,
+ ActiveDOMObject,
+ CallWith=ScriptExecutionContext,
+ EventTarget,
+ JSNoStaticTables
+ ] FileWriter {
+ // ready states
+ const unsigned short INIT = 0;
+ const unsigned short WRITING = 1;
+ const unsigned short DONE = 2;
+ readonly attribute unsigned short readyState;
+
+ // async write/modify methods
+ void write(in Blob data) raises (FileException);
+ void seek(in long long position) raises (FileException);
+ void truncate(in long long size) raises (FileException);
+
+ void abort() raises (FileException);
+
+ readonly attribute FileError error;
+ readonly attribute long long position;
+ readonly attribute long long length;
+
+ attribute EventListener onwritestart;
+ attribute EventListener onprogress;
+ attribute EventListener onwrite;
+ attribute EventListener onabort;
+ attribute EventListener onerror;
+ attribute EventListener onwriteend;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/FileWriterCallback.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/FileWriterCallback.idl
new file mode 100644
index 0000000..df82fed
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/FileWriterCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module fileapi {
+ interface [
+ Conditional=FILE_SYSTEM,
+ Callback
+ ] FileWriterCallback {
+ boolean handleEvent(in FileWriter fileWriter);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/FileWriterSync.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/FileWriterSync.idl
new file mode 100644
index 0000000..57cd256
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/FileWriterSync.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ interface [
+ Conditional=FILE_SYSTEM,
+ JSNoStaticTables
+ ] FileWriterSync {
+ // synchronous write/modify methods
+ void write(in Blob data) raises (FileException);
+ void seek(in long long position) raises (FileException);
+ void truncate(in long long size) raises (FileException);
+
+ readonly attribute long long position;
+ readonly attribute long long length;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/Metadata.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/Metadata.idl
new file mode 100644
index 0000000..ceaf21b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/Metadata.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ JSNoStaticTables
+ ] Metadata {
+ readonly attribute Date modificationTime;
+ readonly attribute unsigned long long size;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/MetadataCallback.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/MetadataCallback.idl
new file mode 100644
index 0000000..44ca180
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/MetadataCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=FILE_SYSTEM,
+ Callback
+ ] MetadataCallback {
+ boolean handleEvent(in Metadata metadata);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/filesystem/WorkerContextFileSystem.idl b/elemental/idl/third_party/WebCore/Modules/filesystem/WorkerContextFileSystem.idl
new file mode 100644
index 0000000..cb9c328
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/filesystem/WorkerContextFileSystem.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ *
+ */
+
+module threads {
+
+ interface [
+ Conditional=FILE_SYSTEM,
+ Supplemental=WorkerContext
+ ] WorkerContextFileSystem {
+ const unsigned short TEMPORARY = 0;
+ const unsigned short PERSISTENT = 1;
+
+ [V8EnabledAtRuntime=FileSystem] void webkitRequestFileSystem(in unsigned short type, in long long size, in [Callback, Optional] FileSystemCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback);
+ [V8EnabledAtRuntime=FileSystem] DOMFileSystemSync webkitRequestFileSystemSync(in unsigned short type, in long long size) raises (FileException);
+ [V8EnabledAtRuntime=FileSystem] void webkitResolveLocalFileSystemURL(in DOMString url, in [Callback, Optional] EntryCallback successCallback, in [Callback, Optional] ErrorCallback errorCallback);
+ [V8EnabledAtRuntime=FileSystem] EntrySync webkitResolveLocalFileSystemSyncURL(in DOMString url) raises (FileException);
+
+ attribute [V8EnabledAtRuntime=FileSystem] FileErrorConstructor FileError;
+ attribute [V8EnabledAtRuntime=FileSystem] FileExceptionConstructor FileException;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/gamepad/Gamepad.idl b/elemental/idl/third_party/WebCore/Modules/gamepad/Gamepad.idl
new file mode 100644
index 0000000..e00e2dc
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/gamepad/Gamepad.idl
@@ -0,0 +1,38 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module dom {
+
+ interface [
+ Conditional=GAMEPAD
+ ] Gamepad {
+ readonly attribute DOMString id;
+ readonly attribute unsigned long index;
+ readonly attribute unsigned long long timestamp;
+ readonly attribute float[] axes;
+ readonly attribute float[] buttons;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/gamepad/GamepadList.idl b/elemental/idl/third_party/WebCore/Modules/gamepad/GamepadList.idl
new file mode 100644
index 0000000..4f1e1df
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/gamepad/GamepadList.idl
@@ -0,0 +1,36 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module dom {
+
+ interface [
+ Conditional=GAMEPAD,
+ IndexedGetter
+ ] GamepadList {
+ readonly attribute unsigned long length;
+ Gamepad item(in [Optional=DefaultIsUndefined] unsigned long index);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/gamepad/NavigatorGamepad.idl b/elemental/idl/third_party/WebCore/Modules/gamepad/NavigatorGamepad.idl
new file mode 100644
index 0000000..e8a945d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/gamepad/NavigatorGamepad.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module window {
+
+ interface [
+ Conditional=GAMEPAD,
+ Supplemental=Navigator
+ ] NavigatorGamepad {
+ readonly attribute [V8EnabledAtRuntime] GamepadList webkitGamepads;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/geolocation/Geolocation.idl b/elemental/idl/third_party/WebCore/Modules/geolocation/Geolocation.idl
new file mode 100644
index 0000000..4f159bc
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/geolocation/Geolocation.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module core {
+
+ // http://www.w3.org/TR/geolocation-API/#geolocation_interface
+ interface [
+ Conditional=GEOLOCATION,
+ JSGenerateIsReachable=ImplFrame,
+ OmitConstructor
+ ] Geolocation {
+ [Custom] void getCurrentPosition(in PositionCallback successCallback,
+ in [Optional] PositionErrorCallback errorCallback,
+ in [Optional] PositionOptions options);
+
+ [Custom] long watchPosition(in PositionCallback successCallback,
+ in [Optional] PositionErrorCallback errorCallback,
+ in [Optional] PositionOptions options);
+
+ void clearWatch(in long watchId);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/geolocation/Geoposition.idl b/elemental/idl/third_party/WebCore/Modules/geolocation/Geoposition.idl
new file mode 100644
index 0000000..cbe728a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/geolocation/Geoposition.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=GEOLOCATION,
+ OmitConstructor
+ ] Geoposition {
+ readonly attribute Coordinates coords;
+ readonly attribute DOMTimeStamp timestamp;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/geolocation/NavigatorGeolocation.idl b/elemental/idl/third_party/WebCore/Modules/geolocation/NavigatorGeolocation.idl
new file mode 100644
index 0000000..e0b8f0e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/geolocation/NavigatorGeolocation.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module window {
+
+ interface [
+ Conditional=GEOLOCATION,
+ Supplemental=Navigator
+ ] NavigatorGeolocation {
+ readonly attribute [V8EnabledAtRuntime] Geolocation geolocation;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/geolocation/PositionCallback.idl b/elemental/idl/third_party/WebCore/Modules/geolocation/PositionCallback.idl
new file mode 100644
index 0000000..39cfa34
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/geolocation/PositionCallback.idl
@@ -0,0 +1,32 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+ interface [
+ Conditional=GEOLOCATION,
+ Callback
+ ] PositionCallback {
+ boolean handleEvent(in Geoposition position);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/geolocation/PositionError.idl b/elemental/idl/third_party/WebCore/Modules/geolocation/PositionError.idl
new file mode 100644
index 0000000..98e036f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/geolocation/PositionError.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=GEOLOCATION
+ ] PositionError {
+ readonly attribute unsigned short code;
+ readonly attribute DOMString message;
+
+ const unsigned short PERMISSION_DENIED = 1;
+ const unsigned short POSITION_UNAVAILABLE = 2;
+ const unsigned short TIMEOUT = 3;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/geolocation/PositionErrorCallback.idl b/elemental/idl/third_party/WebCore/Modules/geolocation/PositionErrorCallback.idl
new file mode 100644
index 0000000..a7dc932
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/geolocation/PositionErrorCallback.idl
@@ -0,0 +1,32 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+ interface [
+ Conditional=GEOLOCATION,
+ Callback
+ ] PositionErrorCallback {
+ boolean handleEvent(in PositionError error);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl
new file mode 100644
index 0000000..ad3998b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+
+module window {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ Supplemental=DOMWindow
+ ] DOMWindowIndexedDatabase {
+ readonly attribute IDBFactory webkitIndexedDB;
+
+ attribute IDBCursorConstructor webkitIDBCursor;
+ attribute IDBDatabaseConstructor webkitIDBDatabase;
+ attribute IDBDatabaseExceptionConstructor webkitIDBDatabaseException;
+ attribute IDBFactoryConstructor webkitIDBFactory;
+ attribute IDBIndexConstructor webkitIDBIndex;
+ attribute IDBKeyRangeConstructor webkitIDBKeyRange;
+ attribute IDBObjectStoreConstructor webkitIDBObjectStore;
+ attribute IDBRequestConstructor webkitIDBRequest;
+ attribute IDBTransactionConstructor webkitIDBTransaction;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBAny.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBAny.idl
new file mode 100644
index 0000000..dd51c4d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBAny.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ CustomToJSObject
+ ] IDBAny {
+ // This space is intentionally left blank.
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBCursor.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBCursor.idl
new file mode 100644
index 0000000..d73d146
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBCursor.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ ] IDBCursor {
+ // FIXME: Eventually remove legacy enum constants, see https://bugs.webkit.org/show_bug.cgi?id=85315
+ const unsigned short NEXT = 0;
+ const unsigned short NEXT_NO_DUPLICATE = 1;
+ const unsigned short PREV = 2;
+ const unsigned short PREV_NO_DUPLICATE = 3;
+
+ readonly attribute DOMString direction;
+ readonly attribute IDBKey key;
+ readonly attribute IDBKey primaryKey;
+ readonly attribute IDBAny source;
+
+ [CallWith=ScriptExecutionContext] IDBRequest update(in SerializedScriptValue value)
+ raises (IDBDatabaseException);
+ void advance(in unsigned long count)
+ raises (IDBDatabaseException);
+ [ImplementedAs=continueFunction] void continue(in [Optional] IDBKey key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext, ImplementedAs=deleteFunction] IDBRequest delete()
+ raises (IDBDatabaseException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBCursorWithValue.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBCursorWithValue.idl
new file mode 100644
index 0000000..6ffc5b5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBCursorWithValue.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE
+ ] IDBCursorWithValue : IDBCursor {
+ readonly attribute IDBAny value;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBDatabase.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBDatabase.idl
new file mode 100644
index 0000000..95f6c23
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBDatabase.idl
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ ActiveDOMObject,
+ EventTarget
+ ] IDBDatabase {
+ readonly attribute DOMString name;
+ readonly attribute DOMString version;
+ readonly attribute DOMStringList objectStoreNames;
+
+ attribute EventListener onabort;
+ attribute EventListener onerror;
+ attribute EventListener onversionchange;
+
+ IDBObjectStore createObjectStore(in DOMString name, in [Optional] Dictionary options)
+ raises (IDBDatabaseException);
+ void deleteObjectStore(in DOMString name)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBVersionChangeRequest setVersion(in DOMString version)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBTransaction transaction(in DOMStringList storeNames, in [Optional=DefaultIsNullString] DOMString mode)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBTransaction transaction(in DOMString[] storeNames, in [Optional=DefaultIsNullString] DOMString mode)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBTransaction transaction(in DOMString storeName, in [Optional=DefaultIsNullString] DOMString mode)
+ raises (IDBDatabaseException);
+
+ // FIXME: remove these when https://bugs.webkit.org/show_bug.cgi?id=85326 is fixed.
+ [CallWith=ScriptExecutionContext] IDBTransaction transaction(in DOMStringList storeNames, in unsigned short mode)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBTransaction transaction(in DOMString[] storeNames, in unsigned short mode)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBTransaction transaction(in DOMString storeName, in unsigned short mode)
+ raises (IDBDatabaseException);
+
+ void close();
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBDatabaseException.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBDatabaseException.idl
new file mode 100644
index 0000000..67d811c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBDatabaseException.idl
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ exception [
+ Conditional=INDEXED_DATABASE,
+ DoNotCheckConstants
+ ] IDBDatabaseException {
+
+ readonly attribute unsigned short code;
+ readonly attribute DOMString name;
+ readonly attribute DOMString message;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // Override in a Mozilla compatible format
+ [NotEnumerable] DOMString toString();
+#endif
+
+ const unsigned short NO_ERR = 0;
+ const unsigned short UNKNOWN_ERR = 1;
+ const unsigned short NON_TRANSIENT_ERR = 2;
+ const unsigned short CONSTRAINT_ERR = 4;
+ const unsigned short DATA_ERR = 5;
+ const unsigned short NOT_ALLOWED_ERR = 6;
+ const unsigned short TRANSACTION_INACTIVE_ERR = 7;
+ const unsigned short READ_ONLY_ERR = 9;
+ const unsigned short VER_ERR = 12;
+
+ const unsigned short NOT_FOUND_ERR = 8;
+ const unsigned short ABORT_ERR = 20;
+ const unsigned short TIMEOUT_ERR = 23;
+ const unsigned short QUOTA_ERR = 22;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBFactory.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBFactory.idl
new file mode 100644
index 0000000..c44996b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBFactory.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE
+ ] IDBFactory {
+ [CallWith=ScriptExecutionContext] IDBRequest getDatabaseNames();
+
+ [CallWith=ScriptExecutionContext] IDBRequest open(in DOMString name)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBVersionChangeRequest deleteDatabase(in DOMString name)
+ raises (IDBDatabaseException);
+
+ short cmp(in IDBKey first, in IDBKey second)
+ raises (IDBDatabaseException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBIndex.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBIndex.idl
new file mode 100644
index 0000000..4c3d732
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBIndex.idl
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE
+ ] IDBIndex {
+ readonly attribute DOMString name;
+ readonly attribute IDBObjectStore objectStore;
+ readonly attribute IDBAny keyPath;
+ readonly attribute boolean unique;
+ readonly attribute boolean multiEntry;
+
+ [CallWith=ScriptExecutionContext] IDBRequest openCursor(in [Optional] IDBKeyRange range, in [Optional] DOMString direction)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest openCursor(in IDBKey key, in [Optional] DOMString direction)
+ raises (IDBDatabaseException);
+
+ [CallWith=ScriptExecutionContext] IDBRequest openKeyCursor(in [Optional] IDBKeyRange range, in [Optional] DOMString direction)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest openKeyCursor(in IDBKey key, in [Optional] DOMString direction)
+ raises (IDBDatabaseException);
+
+ // FIXME: remove these when
+ // https://bugs.webkit.org/show_bug.cgi?id=85326 is fixed.
+ [CallWith=ScriptExecutionContext] IDBRequest openCursor(in IDBKeyRange range, in unsigned short direction)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest openCursor(in IDBKey key, in unsigned short direction)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest openKeyCursor(in IDBKeyRange range, in unsigned short direction)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest openKeyCursor(in IDBKey key, in unsigned short direction)
+ raises (IDBDatabaseException);
+
+ [CallWith=ScriptExecutionContext] IDBRequest get(in IDBKeyRange key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest get(in IDBKey key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest getKey(in IDBKeyRange key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest getKey(in IDBKey key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest count(in [Optional] IDBKeyRange range)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest count(in IDBKey key)
+ raises (IDBDatabaseException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBKey.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBKey.idl
new file mode 100644
index 0000000..1464d9f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBKey.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ CustomToJSObject
+ ] IDBKey {
+ // This space is intentionally left blank.
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBKeyRange.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBKeyRange.idl
new file mode 100644
index 0000000..161cb9c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBKeyRange.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE
+ ] IDBKeyRange {
+ readonly attribute IDBKey lower;
+ readonly attribute IDBKey upper;
+ readonly attribute boolean lowerOpen;
+ readonly attribute boolean upperOpen;
+
+ static IDBKeyRange only(in IDBKey value)
+ raises (IDBDatabaseException);
+ static IDBKeyRange lowerBound(in IDBKey bound, in [Optional] boolean open)
+ raises (IDBDatabaseException);
+ static IDBKeyRange upperBound(in IDBKey bound, in [Optional] boolean open)
+ raises (IDBDatabaseException);
+ static IDBKeyRange bound(in IDBKey lower, in IDBKey upper, in [Optional] boolean lowerOpen, in [Optional] boolean upperOpen)
+ raises (IDBDatabaseException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBObjectStore.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBObjectStore.idl
new file mode 100644
index 0000000..489f678
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBObjectStore.idl
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE
+ ] IDBObjectStore {
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString name;
+ readonly attribute IDBAny keyPath;
+ readonly attribute DOMStringList indexNames;
+ readonly attribute IDBTransaction transaction;
+ readonly attribute boolean autoIncrement;
+
+ [CallWith=ScriptExecutionContext] IDBRequest put(in SerializedScriptValue value, in [Optional] IDBKey key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest add(in SerializedScriptValue value, in [Optional] IDBKey key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext, ImplementedAs=deleteFunction] IDBRequest delete(in IDBKeyRange keyRange)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext, ImplementedAs=deleteFunction] IDBRequest delete(in IDBKey key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest clear()
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest get(in IDBKeyRange key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest get(in IDBKey key)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest openCursor(in [Optional] IDBKeyRange range, in [Optional] DOMString direction)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest openCursor(in IDBKey key, in [Optional] DOMString direction)
+ raises (IDBDatabaseException);
+
+ // FIXME: remove these when https://bugs.webkit.org/show_bug.cgi?id=85326 is fixed.
+ [CallWith=ScriptExecutionContext] IDBRequest openCursor(in IDBKeyRange range, in unsigned short direction)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest openCursor(in IDBKey key, in unsigned short direction)
+ raises (IDBDatabaseException);
+
+ IDBIndex createIndex(in DOMString name, in DOMString[] keyPath, in [Optional] Dictionary options)
+ raises (IDBDatabaseException);
+ IDBIndex createIndex(in DOMString name, in DOMString keyPath, in [Optional] Dictionary options)
+ raises (IDBDatabaseException);
+ IDBIndex index(in DOMString name)
+ raises (IDBDatabaseException);
+ void deleteIndex(in DOMString name)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest count(in [Optional] IDBKeyRange range)
+ raises (IDBDatabaseException);
+ [CallWith=ScriptExecutionContext] IDBRequest count(in IDBKey key)
+ raises (IDBDatabaseException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBRequest.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBRequest.idl
new file mode 100644
index 0000000..1e49415
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBRequest.idl
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ ActiveDOMObject,
+ EventTarget
+ ] IDBRequest {
+ readonly attribute IDBAny result
+ getter raises (IDBDatabaseException);
+ readonly attribute unsigned short errorCode
+ getter raises (IDBDatabaseException);
+ readonly attribute DOMError error
+ getter raises (IDBDatabaseException);
+ readonly attribute [TreatReturnedNullStringAs=Undefined] DOMString webkitErrorMessage
+ getter raises (IDBDatabaseException);
+
+ readonly attribute IDBAny source;
+ readonly attribute IDBTransaction transaction;
+
+ // States
+ readonly attribute DOMString readyState;
+
+ // Events
+ attribute EventListener onsuccess;
+ attribute EventListener onerror;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBTransaction.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBTransaction.idl
new file mode 100644
index 0000000..a0e54c0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBTransaction.idl
@@ -0,0 +1,63 @@
+ /*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ ActiveDOMObject,
+ EventTarget
+ ] IDBTransaction {
+ // FIXME: Eventually remove legacy enum constants, see https://bugs.webkit.org/show_bug.cgi?id=85315
+ const unsigned short READ_ONLY = 0;
+ const unsigned short READ_WRITE = 1;
+ const unsigned short VERSION_CHANGE = 2;
+
+ // Properties
+ readonly attribute DOMString mode;
+ readonly attribute IDBDatabase db;
+ readonly attribute DOMError error
+ getter raises (IDBDatabaseException);
+
+ // Methods
+ IDBObjectStore objectStore (in DOMString name)
+ raises (IDBDatabaseException);
+ void abort ();
+ // Events
+ attribute EventListener onabort;
+ attribute EventListener oncomplete;
+ attribute EventListener onerror;
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBVersionChangeEvent.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBVersionChangeEvent.idl
new file mode 100644
index 0000000..c6a4171
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBVersionChangeEvent.idl
@@ -0,0 +1,33 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE
+ ] IDBVersionChangeEvent : Event {
+ readonly attribute DOMString version;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBVersionChangeRequest.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBVersionChangeRequest.idl
new file mode 100644
index 0000000..2aa238a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/IDBVersionChangeRequest.idl
@@ -0,0 +1,35 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ ActiveDOMObject,
+ EventTarget
+ ] IDBVersionChangeRequest : IDBRequest {
+ attribute EventListener onblocked;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/indexeddb/WorkerContextIndexedDatabase.idl b/elemental/idl/third_party/WebCore/Modules/indexeddb/WorkerContextIndexedDatabase.idl
new file mode 100644
index 0000000..c336c57
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/indexeddb/WorkerContextIndexedDatabase.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ *
+ */
+
+module threads {
+
+ interface [
+ Conditional=INDEXED_DATABASE,
+ Supplemental=WorkerContext
+ ] WorkerContextIndexedDatabase {
+ readonly attribute [V8EnabledAtRuntime] IDBFactory webkitIndexedDB;
+
+ attribute [V8EnabledAtRuntime] IDBCursorConstructor webkitIDBCursor;
+ attribute [V8EnabledAtRuntime] IDBDatabaseConstructor webkitIDBDatabase;
+ attribute [V8EnabledAtRuntime] IDBDatabaseExceptionConstructor webkitIDBDatabaseException;
+ attribute [V8EnabledAtRuntime] IDBFactoryConstructor webkitIDBFactory;
+ attribute [V8EnabledAtRuntime] IDBIndexConstructor webkitIDBIndex;
+ attribute [V8EnabledAtRuntime] IDBKeyRangeConstructor webkitIDBKeyRange;
+ attribute [V8EnabledAtRuntime] IDBObjectStoreConstructor webkitIDBObjectStore;
+ attribute [V8EnabledAtRuntime] IDBRequestConstructor webkitIDBRequest;
+ attribute [V8EnabledAtRuntime] IDBTransactionConstructor webkitIDBTransaction;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/intents/DOMWindowIntents.idl b/elemental/idl/third_party/WebCore/Modules/intents/DOMWindowIntents.idl
new file mode 100644
index 0000000..d345209
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/intents/DOMWindowIntents.idl
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+module window {
+
+ interface [
+ Conditional=WEB_INTENTS,
+ Supplemental=DOMWindow
+ ] DOMWindowIntents {
+ attribute IntentConstructor WebKitIntent;
+
+ attribute [Replaceable] DeliveredIntent webkitIntent;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/intents/DeliveredIntent.idl b/elemental/idl/third_party/WebCore/Modules/intents/DeliveredIntent.idl
new file mode 100644
index 0000000..25e978d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/intents/DeliveredIntent.idl
@@ -0,0 +1,36 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+ interface [
+ Conditional=WEB_INTENTS,
+ ] DeliveredIntent : Intent {
+ readonly attribute MessagePortArray ports;
+
+ [TreatReturnedNullStringAs=Null] DOMString getExtra(in DOMString key);
+ void postResult(in SerializedScriptValue result);
+ void postFailure(in SerializedScriptValue result);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/intents/Intent.idl b/elemental/idl/third_party/WebCore/Modules/intents/Intent.idl
new file mode 100644
index 0000000..92657b4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/intents/Intent.idl
@@ -0,0 +1,37 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+ interface [
+ Conditional=WEB_INTENTS,
+ CustomConstructor,
+ Constructor(in DOMString action, in DOMString type, in [Optional=DefaultIsNullString, TransferList=transferList] SerializedScriptValue data, in [Optional=DefaultIsUndefined] Array transferList),
+ ConstructorRaisesException
+ ] Intent {
+ readonly attribute DOMString action;
+ readonly attribute DOMString type;
+ readonly attribute SerializedScriptValue data;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/intents/IntentResultCallback.idl b/elemental/idl/third_party/WebCore/Modules/intents/IntentResultCallback.idl
new file mode 100644
index 0000000..0afa2ad
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/intents/IntentResultCallback.idl
@@ -0,0 +1,33 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+ interface [
+ Conditional=WEB_INTENTS,
+ Callback
+ ] IntentResultCallback {
+ boolean handleEvent(in SerializedScriptValue result);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/intents/NavigatorIntents.idl b/elemental/idl/third_party/WebCore/Modules/intents/NavigatorIntents.idl
new file mode 100644
index 0000000..206337a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/intents/NavigatorIntents.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module window {
+
+ interface [
+ Conditional=WEB_INTENTS,
+ Supplemental=Navigator
+ ] NavigatorIntents {
+ void webkitStartActivity(in Intent intent,
+ in [Callback, Optional] IntentResultCallback successCallback,
+ in [Callback, Optional] IntentResultCallback failureCallback)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/DOMWindowMediaStream.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/DOMWindowMediaStream.idl
new file mode 100644
index 0000000..970d106
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/DOMWindowMediaStream.idl
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+module window {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ Supplemental=DOMWindow
+ ] DOMWindowMediaStream {
+ attribute [V8EnabledAtRuntime] DeprecatedPeerConnectionConstructor webkitDeprecatedPeerConnection;
+ attribute [V8EnabledAtRuntime] MediaStreamConstructor webkitMediaStream;
+ attribute [V8EnabledAtRuntime] PeerConnection00Constructor webkitPeerConnection00;
+ attribute SessionDescriptionConstructor SessionDescription;
+ attribute IceCandidateConstructor IceCandidate;
+ attribute MediaStreamEventConstructor MediaStreamEvent;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/DeprecatedPeerConnection.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/DeprecatedPeerConnection.idl
new file mode 100644
index 0000000..01d9d51
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/DeprecatedPeerConnection.idl
@@ -0,0 +1,76 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module p2p {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ ActiveDOMObject,
+ ConstructorParameters=2,
+ Constructor(in DOMString serverConfiguration, in [Callback] SignalingCallback signalingCallback),
+ CallWith=ScriptExecutionContext,
+ JSCustomConstructor,
+ EventTarget
+ ] DeprecatedPeerConnection {
+ void processSignalingMessage(in DOMString message)
+ raises(DOMException);
+
+ const unsigned short NEW = 0;
+ const unsigned short NEGOTIATING = 1;
+ const unsigned short ACTIVE = 2;
+ const unsigned short CLOSED = 3;
+ readonly attribute unsigned short readyState;
+
+ void send(in DOMString text)
+ raises(DOMException);
+ [StrictTypeChecking] void addStream(in MediaStream stream)
+ raises(DOMException);
+ [StrictTypeChecking] void removeStream(in MediaStream stream)
+ raises(DOMException);
+
+ readonly attribute MediaStreamList localStreams;
+ readonly attribute MediaStreamList remoteStreams;
+
+ void close()
+ raises(DOMException);
+
+ attribute EventListener onconnecting;
+ attribute EventListener onopen;
+ attribute EventListener onmessage;
+ attribute EventListener onstatechange;
+ attribute EventListener onaddstream;
+ attribute EventListener onremovestream;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event event)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/IceCallback.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/IceCallback.idl
new file mode 100644
index 0000000..69d646f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/IceCallback.idl
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ * 3. Neither the name of Google Inc. nor the names of its contributors
+ * may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module p2p {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ Callback
+ ] IceCallback {
+ boolean handleEvent(in IceCandidate candidate, in boolean moreToFollow, in PeerConnection00 source);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/IceCandidate.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/IceCandidate.idl
new file mode 100644
index 0000000..e1c42fa
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/IceCandidate.idl
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ * 3. Neither the name of Google Inc. nor the names of its contributors
+ * may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module p2p {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ Constructor(in DOMString label, in DOMString candidateLine)
+ ] IceCandidate {
+ readonly attribute DOMString label;
+
+ DOMString toSdp();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/LocalMediaStream.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/LocalMediaStream.idl
new file mode 100644
index 0000000..5e769af
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/LocalMediaStream.idl
@@ -0,0 +1,36 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ EventTarget,
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject
+ ] LocalMediaStream : MediaStream {
+ void stop();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStream.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStream.idl
new file mode 100644
index 0000000..65a1833
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStream.idl
@@ -0,0 +1,56 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ EventTarget,
+ Constructor(in MediaStreamTrackList audioTracks, in MediaStreamTrackList videoTracks),
+ CallWith=ScriptExecutionContext,
+ ConstructorRaisesException
+ ] MediaStream {
+ readonly attribute DOMString label;
+ readonly attribute MediaStreamTrackList audioTracks;
+ readonly attribute MediaStreamTrackList videoTracks;
+
+ // FIXME: implement the record method when MediaStreamRecorder is available.
+
+ const unsigned short LIVE = 1;
+ const unsigned short ENDED = 2;
+ readonly attribute unsigned short readyState;
+ attribute EventListener onended;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event event)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamEvent.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamEvent.idl
new file mode 100644
index 0000000..a1930a4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamEvent.idl
@@ -0,0 +1,35 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module events {
+
+ // According to the WHATWG specification:
+ // http://www.whatwg.org/specs/web-apps/current-work/multipage/video-conferencing-and-peer-to-peer-communication.html#mediastreamevent
+ interface [
+ Conditional=MEDIA_STREAM,
+ ] MediaStreamEvent : Event {
+ readonly attribute MediaStream stream;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamList.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamList.idl
new file mode 100644
index 0000000..d182e6f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamList.idl
@@ -0,0 +1,36 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ IndexedGetter
+ ] MediaStreamList {
+ MediaStream item(in [IsIndex] unsigned long index);
+
+ readonly attribute unsigned long length;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamTrack.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamTrack.idl
new file mode 100644
index 0000000..7987597
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamTrack.idl
@@ -0,0 +1,35 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ ] MediaStreamTrack {
+ readonly attribute DOMString kind;
+ readonly attribute DOMString label;
+ attribute boolean enabled;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamTrackList.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamTrackList.idl
new file mode 100644
index 0000000..4dd9c29
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/MediaStreamTrackList.idl
@@ -0,0 +1,36 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ IndexedGetter
+ ] MediaStreamTrackList {
+ MediaStreamTrack item(in [IsIndex] unsigned long index);
+
+ readonly attribute unsigned long length;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorMediaStream.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorMediaStream.idl
new file mode 100644
index 0000000..40f8f0d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorMediaStream.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module window {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ Supplemental=Navigator
+ ] NavigatorMediaStream {
+ [V8EnabledAtRuntime] void webkitGetUserMedia(in Dictionary options,
+ in [Callback] NavigatorUserMediaSuccessCallback successCallback,
+ in [Callback, Optional] NavigatorUserMediaErrorCallback errorCallback)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorUserMediaError.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorUserMediaError.idl
new file mode 100644
index 0000000..293450b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorUserMediaError.idl
@@ -0,0 +1,34 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module window {
+ interface [
+ Conditional=MEDIA_STREAM
+ ] NavigatorUserMediaError {
+ const unsigned short PERMISSION_DENIED = 1;
+ readonly attribute unsigned short code;
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorUserMediaErrorCallback.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorUserMediaErrorCallback.idl
new file mode 100644
index 0000000..44928f8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorUserMediaErrorCallback.idl
@@ -0,0 +1,33 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module window {
+ interface [
+ Conditional=MEDIA_STREAM,
+ Callback
+ ] NavigatorUserMediaErrorCallback {
+ boolean handleEvent(in NavigatorUserMediaError error);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorUserMediaSuccessCallback.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorUserMediaSuccessCallback.idl
new file mode 100644
index 0000000..0a66180
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/NavigatorUserMediaSuccessCallback.idl
@@ -0,0 +1,33 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module window {
+ interface [
+ Conditional=MEDIA_STREAM,
+ Callback
+ ] NavigatorUserMediaSuccessCallback {
+ boolean handleEvent(in LocalMediaStream stream);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/PeerConnection00.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/PeerConnection00.idl
new file mode 100644
index 0000000..bd56c87
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/PeerConnection00.idl
@@ -0,0 +1,108 @@
+/*
+ * 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.
+ * 3. Neither the name of Google Inc. nor the names of its contributors
+ * may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module p2p {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ ActiveDOMObject,
+ Constructor(in DOMString serverConfiguration, in [Callback] IceCallback iceCallback),
+ CallWith=ScriptExecutionContext,
+ ConstructorRaisesException,
+ EventTarget
+ ] PeerConnection00 {
+ SessionDescription createOffer(in [Optional] Dictionary mediaHints)
+ raises(DOMException);
+ SessionDescription createAnswer(in DOMString offer, in [Optional] Dictionary mediaHints)
+ raises(DOMException);
+
+ // Actions, for setLocalDescription/setRemoteDescription.
+ const unsigned short SDP_OFFER = 0x100;
+ const unsigned short SDP_PRANSWER = 0x200;
+ const unsigned short SDP_ANSWER = 0x300;
+
+ void setLocalDescription(in unsigned short action, in SessionDescription desc)
+ raises(DOMException);
+ void setRemoteDescription(in unsigned short action, in SessionDescription desc)
+ raises(DOMException);
+
+ readonly attribute SessionDescription localDescription;
+ readonly attribute SessionDescription remoteDescription;
+
+ const unsigned short NEW = 0;
+ const unsigned short OPENING = 1;
+ const unsigned short ACTIVE = 2;
+ const unsigned short CLOSED = 3;
+ readonly attribute unsigned short readyState;
+
+ void startIce(in [Optional] Dictionary iceOptions)
+ raises(DOMException);
+
+ void processIceMessage(in IceCandidate candidate)
+ raises(DOMException);
+
+ const unsigned short ICE_GATHERING = 0x100;
+ const unsigned short ICE_WAITING = 0x200;
+ const unsigned short ICE_CHECKING = 0x300;
+ const unsigned short ICE_CONNECTED = 0x400;
+ const unsigned short ICE_COMPLETED = 0x500;
+ const unsigned short ICE_FAILED = 0x600;
+ const unsigned short ICE_CLOSED = 0x700;
+ readonly attribute unsigned short iceState;
+
+ [StrictTypeChecking] void addStream(in MediaStream stream, in [Optional] Dictionary mediaStreamHints)
+ raises(DOMException);
+ [StrictTypeChecking] void removeStream(in MediaStream stream)
+ raises(DOMException);
+
+ readonly attribute MediaStreamList localStreams;
+ readonly attribute MediaStreamList remoteStreams;
+
+ void close()
+ raises(DOMException);
+
+ attribute EventListener onconnecting;
+ attribute EventListener onopen;
+ attribute EventListener onstatechange;
+ attribute EventListener onaddstream;
+ attribute EventListener onremovestream;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event event)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/SessionDescription.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/SessionDescription.idl
new file mode 100644
index 0000000..d4afeda
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/SessionDescription.idl
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ * 3. Neither the name of Google Inc. nor the names of its contributors
+ * may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module p2p {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ Constructor(in DOMString sdp)
+ ] SessionDescription {
+ [StrictTypeChecking] void addCandidate(in IceCandidate candidate)
+ raises(DOMException);
+
+ DOMString toSdp();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/mediastream/SignalingCallback.idl b/elemental/idl/third_party/WebCore/Modules/mediastream/SignalingCallback.idl
new file mode 100644
index 0000000..69e4b92
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/mediastream/SignalingCallback.idl
@@ -0,0 +1,34 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module p2p {
+
+ interface [
+ Conditional=MEDIA_STREAM,
+ Callback
+ ] SignalingCallback {
+ boolean handleEvent(in DOMString message, in DeprecatedPeerConnection source);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/networkinfo/NavigatorNetworkInfoConnection.idl b/elemental/idl/third_party/WebCore/Modules/networkinfo/NavigatorNetworkInfoConnection.idl
new file mode 100644
index 0000000..f61d0f3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/networkinfo/NavigatorNetworkInfoConnection.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics. All Rights Reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module window {
+
+ interface [
+ Conditional=NETWORK_INFO,
+ Supplemental=Navigator
+ ] NavigatorNetworkInfoConnection {
+ readonly attribute NetworkInfoConnection webkitConnection;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/networkinfo/NetworkInfoConnection.idl b/elemental/idl/third_party/WebCore/Modules/networkinfo/NetworkInfoConnection.idl
new file mode 100644
index 0000000..8e56efa
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/networkinfo/NetworkInfoConnection.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics. All Rights Reserved.
+ *
+ * All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module window {
+
+ // http://dvcs.w3.org/hg/dap/raw-file/tip/network-api/index.html
+ interface [
+ Conditional=NETWORK_INFO,
+ ActiveDOMObject,
+ EventTarget
+ ] NetworkInfoConnection {
+ readonly attribute double bandwidth;
+ readonly attribute boolean metered;
+
+ attribute EventListener onwebkitnetworkinfochange;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/speech/DOMWindowSpeech.idl b/elemental/idl/third_party/WebCore/Modules/speech/DOMWindowSpeech.idl
new file mode 100644
index 0000000..0c26f03
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/speech/DOMWindowSpeech.idl
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ */
+
+module window {
+ interface [
+ Conditional=SCRIPTED_SPEECH,
+ Supplemental=DOMWindow
+ ] DOMWindowSpeech {
+ attribute [V8EnabledAtRuntime] SpeechRecognitionConstructor webkitSpeechRecognition;
+ attribute [V8EnabledAtRuntime] SpeechRecognitionErrorConstructor webkitSpeechRecognitionError;
+ attribute [V8EnabledAtRuntime] SpeechRecognitionEventConstructor webkitSpeechRecognitionEvent;
+ attribute [V8EnabledAtRuntime] SpeechGrammarConstructor webkitSpeechGrammar;
+ attribute [V8EnabledAtRuntime] SpeechGrammarListConstructor webkitSpeechGrammarList;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/speech/SpeechGrammar.idl b/elemental/idl/third_party/WebCore/Modules/speech/SpeechGrammar.idl
new file mode 100644
index 0000000..b793ac3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/speech/SpeechGrammar.idl
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+module core {
+ interface [
+ Conditional=SCRIPTED_SPEECH,
+ Constructor
+ ] SpeechGrammar {
+ attribute [URL,CallWith=ScriptExecutionContext] DOMString src;
+ attribute float weight;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/speech/SpeechGrammarList.idl b/elemental/idl/third_party/WebCore/Modules/speech/SpeechGrammarList.idl
new file mode 100644
index 0000000..bf4d7c6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/speech/SpeechGrammarList.idl
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ */
+
+module core {
+ interface [
+ Conditional=SCRIPTED_SPEECH,
+ IndexedGetter,
+ Constructor,
+ ] SpeechGrammarList {
+ readonly attribute unsigned long length;
+ SpeechGrammar item(in [IsIndex] unsigned long index);
+ [CallWith=ScriptExecutionContext] void addFromUri(in DOMString src, in [Optional] float weight);
+ void addFromString(in DOMString string, in [Optional] float weight);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognition.idl b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognition.idl
new file mode 100644
index 0000000..5fea70d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognition.idl
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ */
+
+module core {
+ interface [
+ Conditional=SCRIPTED_SPEECH,
+ ActiveDOMObject,
+ Constructor,
+ CallWith=ScriptExecutionContext,
+ EventTarget,
+ ] SpeechRecognition {
+ attribute SpeechGrammarList grammars;
+ attribute DOMString lang;
+ attribute boolean continuous;
+
+ void start();
+ [ImplementedAs=stopFunction] void stop();
+ void abort();
+
+ attribute EventListener onaudiostart;
+ attribute EventListener onsoundstart;
+ attribute EventListener onspeechstart;
+ attribute EventListener onspeechend;
+ attribute EventListener onsoundend;
+ attribute EventListener onaudioend;
+ attribute EventListener onresult;
+ attribute EventListener onnomatch;
+ attribute EventListener onresultdeleted;
+ attribute EventListener onerror;
+ attribute EventListener onstart;
+ attribute EventListener onend;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionAlternative.idl b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionAlternative.idl
new file mode 100644
index 0000000..a9d4dec
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionAlternative.idl
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+module core {
+ interface [
+ Conditional=SCRIPTED_SPEECH
+ ] SpeechRecognitionAlternative {
+ readonly attribute DOMString transcript;
+ readonly attribute float confidence;
+ };
+}
+
diff --git a/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionError.idl b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionError.idl
new file mode 100644
index 0000000..39ecb1d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionError.idl
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+module core {
+ interface [
+ Conditional=SCRIPTED_SPEECH
+ ] SpeechRecognitionError {
+ const unsigned short OTHER = 0;
+ const unsigned short NO_SPEECH = 1;
+ const unsigned short ABORTED = 2;
+ const unsigned short AUDIO_CAPTURE = 3;
+ const unsigned short NETWORK = 4;
+ const unsigned short NOT_ALLOWED = 5;
+ const unsigned short SERVICE_NOT_ALLOWED = 6;
+ const unsigned short BAD_GRAMMAR = 7;
+ const unsigned short LANGUAGE_NOT_SUPPORTED = 8;
+
+ readonly attribute unsigned short code;
+ readonly attribute DOMString message;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionEvent.idl b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionEvent.idl
new file mode 100644
index 0000000..4900081
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionEvent.idl
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+module events {
+ interface [
+ Conditional=SCRIPTED_SPEECH,
+ ConstructorTemplate=Event
+ ] SpeechRecognitionEvent : Event {
+ readonly attribute [InitializedByEventConstructor] SpeechRecognitionResult result;
+ readonly attribute [InitializedByEventConstructor] SpeechRecognitionError error;
+ readonly attribute [InitializedByEventConstructor] short resultIndex;
+ readonly attribute [InitializedByEventConstructor] SpeechRecognitionResultList resultHistory;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionResult.idl b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionResult.idl
new file mode 100644
index 0000000..3f91262
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionResult.idl
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+module core {
+ interface [
+ Conditional=SCRIPTED_SPEECH,
+ IndexedGetter
+ ] SpeechRecognitionResult {
+ readonly attribute unsigned long length;
+ SpeechRecognitionAlternative item(in [IsIndex] unsigned long index);
+ readonly attribute boolean final;
+ };
+}
+
diff --git a/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionResultList.idl b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionResultList.idl
new file mode 100644
index 0000000..fd7be4f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/speech/SpeechRecognitionResultList.idl
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ */
+
+module core {
+ interface [
+ Conditional=SCRIPTED_SPEECH,
+ IndexedGetter
+ ] SpeechRecognitionResultList {
+ readonly attribute unsigned long length;
+ SpeechRecognitionResult item(in [IsIndex] unsigned long index);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/vibration/NavigatorVibration.idl b/elemental/idl/third_party/WebCore/Modules/vibration/NavigatorVibration.idl
new file mode 100644
index 0000000..624845d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/vibration/NavigatorVibration.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module window {
+
+ interface [
+ Conditional=VIBRATION,
+ Supplemental=Navigator
+ ] NavigatorVibration {
+ void webkitVibrate(in unsigned long[] pattern) raises(DOMException);
+ void webkitVibrate(in unsigned long time) raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioBuffer.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioBuffer.idl
new file mode 100644
index 0000000..8a734e2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioBuffer.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO
+ ] AudioBuffer {
+ readonly attribute long length; // in sample-frames
+ readonly attribute float duration; // in seconds
+ readonly attribute float sampleRate; // in sample-frames per second
+
+ attribute float gain; // linear gain (default 1.0)
+
+ // Channel access
+ readonly attribute unsigned long numberOfChannels;
+ Float32Array getChannelData(in unsigned long channelIndex);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioBufferCallback.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioBufferCallback.idl
new file mode 100644
index 0000000..9b35477
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioBufferCallback.idl
@@ -0,0 +1,33 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject,
+ Callback
+ ] AudioBufferCallback {
+ boolean handleEvent(in AudioBuffer audioBuffer);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioBufferSourceNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioBufferSourceNode.idl
new file mode 100644
index 0000000..ae6af93
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioBufferSourceNode.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ // A cached (non-streamed), memory-resident audio source
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] AudioBufferSourceNode : AudioSourceNode {
+ attribute [CustomSetter] AudioBuffer buffer
+ setter raises (DOMException);
+
+ const unsigned short UNSCHEDULED_STATE = 0;
+ const unsigned short SCHEDULED_STATE = 1;
+ const unsigned short PLAYING_STATE = 2;
+ const unsigned short FINISHED_STATE = 3;
+
+ readonly attribute unsigned short playbackState;
+
+ readonly attribute AudioGain gain;
+ readonly attribute AudioParam playbackRate;
+
+ attribute boolean loop; // This is the proper attribute name from the specification.
+ attribute boolean looping; // This is an alias for the .loop attribute for backwards compatibility.
+
+ void noteOn(in double when);
+ void noteGrainOn(in double when, in double grainOffset, in double grainDuration);
+ void noteOff(in double when);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioChannelMerger.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioChannelMerger.idl
new file mode 100644
index 0000000..3862af9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioChannelMerger.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO
+ ] AudioChannelMerger : AudioNode {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioChannelSplitter.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioChannelSplitter.idl
new file mode 100644
index 0000000..076c051
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioChannelSplitter.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO
+ ] AudioChannelSplitter : AudioNode {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioContext.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioContext.idl
new file mode 100644
index 0000000..1d02288
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioContext.idl
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2010, Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module webaudio {
+ interface [
+ Conditional=WEB_AUDIO,
+ ActiveDOMObject,
+ CustomConstructor,
+ ConstructorParameters=0,
+ JSCustomMarkFunction,
+ EventTarget
+ ] AudioContext {
+ // All rendered audio ultimately connects to destination, which represents the audio hardware.
+ readonly attribute AudioDestinationNode destination;
+
+ // All scheduled times are relative to this time in seconds.
+ readonly attribute float currentTime;
+
+ // All AudioNodes in the context run at this sample-rate (in sample-frames per second).
+ readonly attribute float sampleRate;
+
+ // All panning is relative to this listener.
+ readonly attribute AudioListener listener;
+
+ // Number of AudioBufferSourceNodes that are currently playing.
+ readonly attribute unsigned long activeSourceCount;
+
+ AudioBuffer createBuffer(in unsigned long numberOfChannels, in unsigned long numberOfFrames, in float sampleRate)
+ raises(DOMException);
+ AudioBuffer createBuffer(in ArrayBuffer buffer, in boolean mixToMono)
+ raises(DOMException);
+
+ // Asynchronous audio file data decoding.
+ void decodeAudioData(in ArrayBuffer audioData, in [Callback] AudioBufferCallback successCallback, in [Optional, Callback] AudioBufferCallback errorCallback)
+ raises(DOMException);
+
+ // Sources
+ AudioBufferSourceNode createBufferSource();
+#if defined(ENABLE_VIDEO) && ENABLE_VIDEO
+ MediaElementAudioSourceNode createMediaElementSource(in HTMLMediaElement mediaElement)
+ raises(DOMException);
+#endif
+ // Processing nodes
+ AudioGainNode createGainNode();
+ DelayNode createDelayNode(in [Optional] double maxDelayTime);
+ BiquadFilterNode createBiquadFilter();
+ WaveShaperNode createWaveShaper();
+ AudioPannerNode createPanner();
+ ConvolverNode createConvolver();
+ DynamicsCompressorNode createDynamicsCompressor();
+ RealtimeAnalyserNode createAnalyser();
+ JavaScriptAudioNode createJavaScriptNode(in unsigned long bufferSize, in [Optional] unsigned long numberOfInputChannels, in [Optional] unsigned long numberOfOutputChannels)
+ raises(DOMException);
+ Oscillator createOscillator();
+ WaveTable createWaveTable(in Float32Array real, in Float32Array imag)
+ raises(DOMException);
+
+ // Channel splitting and merging
+ AudioChannelSplitter createChannelSplitter(in [Optional] unsigned long numberOfOutputs)
+ raises(DOMException);
+ AudioChannelMerger createChannelMerger(in [Optional] unsigned long numberOfInputs)
+ raises(DOMException);
+
+ // Offline rendering
+ // void prepareOfflineBufferRendering(in unsigned long numberOfChannels, in unsigned long numberOfFrames, in float sampleRate);
+ attribute EventListener oncomplete;
+ void startRendering();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioDestinationNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioDestinationNode.idl
new file mode 100644
index 0000000..7ce4043
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioDestinationNode.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] AudioDestinationNode : AudioNode {
+ readonly attribute long numberOfChannels;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioGain.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioGain.idl
new file mode 100644
index 0000000..7597427
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioGain.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] AudioGain : AudioParam {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioGainNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioGainNode.idl
new file mode 100644
index 0000000..ba3163f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioGainNode.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] AudioGainNode : AudioNode {
+ // FIXME: eventually it will be interesting to remove the readonly restriction, but need to properly deal with thread safety here.
+ readonly attribute AudioGain gain;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioListener.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioListener.idl
new file mode 100644
index 0000000..cf6d8cf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioListener.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO
+ ] AudioListener {
+ attribute float dopplerFactor; // same as OpenAL (default 1.0)
+ attribute float speedOfSound; // in meters / second (default 343.3)
+
+ void setPosition(in float x, in float y, in float z);
+ void setOrientation(in float x, in float y, in float z, in float xUp, in float yUp, in float zUp);
+ void setVelocity(in float x, in float y, in float z);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioNode.idl
new file mode 100644
index 0000000..13bdc75
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioNode.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO
+ ] AudioNode {
+ readonly attribute AudioContext context;
+ readonly attribute unsigned long numberOfInputs;
+ readonly attribute unsigned long numberOfOutputs;
+
+ void connect(in AudioNode destination, in [Optional=DefaultIsUndefined] unsigned long output, in [Optional=DefaultIsUndefined] unsigned long input)
+ raises(DOMException);
+
+ void connect(in AudioParam destination, in [Optional=DefaultIsUndefined] unsigned long output)
+ raises(DOMException);
+
+ void disconnect(in [Optional=DefaultIsUndefined] unsigned long output)
+ raises(DOMException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioPannerNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioPannerNode.idl
new file mode 100644
index 0000000..5061e78
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioPannerNode.idl
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] AudioPannerNode : AudioNode {
+ // Panning model
+ const unsigned short EQUALPOWER = 0;
+ const unsigned short HRTF = 1;
+ const unsigned short SOUNDFIELD = 2;
+
+ // Distance model
+ const unsigned short LINEAR_DISTANCE = 0;
+ const unsigned short INVERSE_DISTANCE = 1;
+ const unsigned short EXPONENTIAL_DISTANCE = 2;
+
+ // Default model for stereo is HRTF
+ // FIXME: use unsigned short when glue generation supports it
+ attribute unsigned long panningModel
+ setter raises(DOMException);
+
+ // Uses a 3D cartesian coordinate system
+ void setPosition(in float x, in float y, in float z);
+ void setOrientation(in float x, in float y, in float z);
+ void setVelocity(in float x, in float y, in float z);
+
+ // Distance model
+ attribute unsigned long distanceModel; // FIXME: use unsigned short when glue generation supports it
+ attribute float refDistance;
+ attribute float maxDistance;
+ attribute float rolloffFactor;
+
+ // Directional sound cone
+ attribute float coneInnerAngle;
+ attribute float coneOuterAngle;
+ attribute float coneOuterGain;
+
+ // Dynamically calculated gain values
+ readonly attribute AudioGain coneGain;
+ readonly attribute AudioGain distanceGain;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioParam.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioParam.idl
new file mode 100644
index 0000000..d9946f8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioParam.idl
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module webaudio {
+ interface [
+ Conditional=WEB_AUDIO
+ ] AudioParam {
+ attribute float value;
+ readonly attribute float minValue;
+ readonly attribute float maxValue;
+ readonly attribute float defaultValue;
+
+ readonly attribute DOMString name;
+
+ // FIXME: Could define units constants here (seconds, decibels, cents, etc.)...
+ readonly attribute unsigned short units;
+
+ // Parameter automation.
+ void setValueAtTime(in float value, in float time);
+ void linearRampToValueAtTime(in float value, in float time);
+ void exponentialRampToValueAtTime(in float value, in float time);
+
+ // Exponentially approach the target value with a rate having the given time constant.
+ void setTargetValueAtTime(in float targetValue, in float time, in float timeConstant);
+
+ // Sets an array of arbitrary parameter values starting at time for the given duration.
+ // The number of values will be scaled to fit into the desired duration.
+ void setValueCurveAtTime(in Float32Array values, in float time, in float duration);
+
+ // Cancels all scheduled parameter changes with times greater than or equal to startTime.
+ void cancelScheduledValues(in float startTime);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioProcessingEvent.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioProcessingEvent.idl
new file mode 100644
index 0000000..b6995f7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioProcessingEvent.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] AudioProcessingEvent : Event {
+ readonly attribute AudioBuffer inputBuffer;
+ readonly attribute AudioBuffer outputBuffer;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/AudioSourceNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioSourceNode.idl
new file mode 100644
index 0000000..ec3c356
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/AudioSourceNode.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO
+ ] AudioSourceNode : AudioNode {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/BiquadFilterNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/BiquadFilterNode.idl
new file mode 100644
index 0000000..d143065
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/BiquadFilterNode.idl
@@ -0,0 +1,51 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] BiquadFilterNode : AudioNode {
+ // Filter type.
+ const unsigned short LOWPASS = 0;
+ const unsigned short HIGHPASS = 1;
+ const unsigned short BANDPASS = 2;
+ const unsigned short LOWSHELF = 3;
+ const unsigned short HIGHSHELF = 4;
+ const unsigned short PEAKING = 5;
+ const unsigned short NOTCH = 6;
+ const unsigned short ALLPASS = 7;
+
+ attribute unsigned short type
+ setter raises(DOMException);
+
+ readonly attribute AudioParam frequency; // in Hertz
+ readonly attribute AudioParam Q; // Quality factor
+ readonly attribute AudioParam gain; // in Decibels
+
+ void getFrequencyResponse(in Float32Array frequencyHz,
+ in Float32Array magResponse,
+ in Float32Array phaseResponse);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/ConvolverNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/ConvolverNode.idl
new file mode 100644
index 0000000..0f561f0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/ConvolverNode.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ // A linear convolution effect
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] ConvolverNode : AudioNode {
+ attribute [JSCustomSetter] AudioBuffer buffer;
+ attribute boolean normalize;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/DOMWindowWebAudio.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/DOMWindowWebAudio.idl
new file mode 100644
index 0000000..ca8e50e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/DOMWindowWebAudio.idl
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+module window {
+
+ interface [
+ Conditional=WEB_AUDIO,
+ Supplemental=DOMWindow
+ ] DOMWindowWebAudio {
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ attribute [JSCustomGetter, V8EnabledAtRuntime] AudioContextConstructor webkitAudioContext;
+ attribute AudioPannerNodeConstructor webkitAudioPannerNode;
+ attribute AudioProcessingEventConstructor AudioProcessingEvent;
+ attribute OfflineAudioCompletionEventConstructor OfflineAudioCompletionEvent;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/DelayNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/DelayNode.idl
new file mode 100644
index 0000000..a21ac30
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/DelayNode.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] DelayNode : AudioNode {
+ readonly attribute AudioParam delayTime;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/DynamicsCompressorNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/DynamicsCompressorNode.idl
new file mode 100644
index 0000000..a2e3565
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/DynamicsCompressorNode.idl
@@ -0,0 +1,37 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] DynamicsCompressorNode : AudioNode {
+ readonly attribute AudioParam threshold; // in Decibels
+ readonly attribute AudioParam knee; // in Decibels
+ readonly attribute AudioParam ratio; // unit-less
+ readonly attribute AudioParam reduction; // in Decibels
+ readonly attribute AudioParam attack; // in Seconds
+ readonly attribute AudioParam release; // in Seconds
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/JavaScriptAudioNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/JavaScriptAudioNode.idl
new file mode 100644
index 0000000..97da0c1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/JavaScriptAudioNode.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ // For real-time audio stream synthesis/processing in JavaScript
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject,
+ JSCustomMarkFunction,
+ EventTarget
+ ] JavaScriptAudioNode : AudioNode {
+ // Rendering callback
+ attribute EventListener onaudioprocess;
+
+ readonly attribute long bufferSize;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl
new file mode 100644
index 0000000..f09e98f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl
@@ -0,0 +1,32 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO&VIDEO,
+ JSGenerateToJSObject
+ ] MediaElementAudioSourceNode : AudioSourceNode {
+ readonly attribute HTMLMediaElement mediaElement;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.idl
new file mode 100644
index 0000000..4ef6939
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.idl
@@ -0,0 +1,32 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] OfflineAudioCompletionEvent : Event {
+ readonly attribute AudioBuffer renderedBuffer;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/Oscillator.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/Oscillator.idl
new file mode 100644
index 0000000..fb68e40
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/Oscillator.idl
@@ -0,0 +1,57 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ // Oscillator is an audio generator of periodic waveforms.
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] Oscillator : AudioSourceNode {
+
+ // Type constants.
+ const unsigned short SINE = 0;
+ const unsigned short SQUARE = 1;
+ const unsigned short SAWTOOTH = 2;
+ const unsigned short TRIANGLE = 3;
+ const unsigned short CUSTOM = 4;
+
+ attribute unsigned short type;
+
+ // Playback state constants.
+ const unsigned short UNSCHEDULED_STATE = 0;
+ const unsigned short SCHEDULED_STATE = 1;
+ const unsigned short PLAYING_STATE = 2;
+ const unsigned short FINISHED_STATE = 3;
+
+ readonly attribute unsigned short playbackState;
+
+ readonly attribute AudioParam frequency; // in Hertz
+ readonly attribute AudioParam detune; // in Cents
+
+ void noteOn(in double when);
+ void noteOff(in double when);
+ void setWaveTable(in WaveTable waveTable);
+
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl
new file mode 100644
index 0000000..dc2db80
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] RealtimeAnalyserNode : AudioNode {
+ attribute unsigned long fftSize
+ setter raises(DOMException);
+ readonly attribute unsigned long frequencyBinCount;
+
+ // minDecibels / maxDecibels represent the range to scale the FFT analysis data for conversion to unsigned byte values.
+ attribute float minDecibels;
+ attribute float maxDecibels;
+
+ // A value from 0.0 -> 1.0 where 0.0 represents no time averaging with the last analysis frame.
+ attribute float smoothingTimeConstant;
+
+ // Copies the current frequency data into the passed array.
+ // If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped.
+ void getFloatFrequencyData(in Float32Array array);
+ void getByteFrequencyData(in Uint8Array array);
+
+ // Real-time waveform data
+ void getByteTimeDomainData(in Uint8Array array);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/WaveShaperNode.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/WaveShaperNode.idl
new file mode 100644
index 0000000..16a4acf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/WaveShaperNode.idl
@@ -0,0 +1,32 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ interface [
+ Conditional=WEB_AUDIO,
+ JSGenerateToJSObject
+ ] WaveShaperNode : AudioNode {
+ attribute [JSCustomSetter] Float32Array curve;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webaudio/WaveTable.idl b/elemental/idl/third_party/WebCore/Modules/webaudio/WaveTable.idl
new file mode 100644
index 0000000..22403c3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webaudio/WaveTable.idl
@@ -0,0 +1,32 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module audio {
+ // WaveTable represents a periodic audio waveform given by its Fourier coefficients.
+ interface [
+ Conditional=WEB_AUDIO
+ ] WaveTable {
+
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl
new file mode 100644
index 0000000..d85aad7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+module window {
+
+ interface [
+ Conditional=SQL_DATABASE,
+ Supplemental=DOMWindow
+ ] DOMWindowWebDatabase {
+ [V8EnabledAtRuntime] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback)
+ raises(DOMException);
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ attribute SQLExceptionConstructor SQLException;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/Database.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/Database.idl
new file mode 100644
index 0000000..ddc544a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/Database.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=SQL_DATABASE,
+ OmitConstructor,
+ JSNoStaticTables
+ ] Database {
+ readonly attribute DOMString version;
+ void changeVersion(in DOMString oldVersion, in DOMString newVersion, in [Callback, Optional] SQLTransactionCallback callback, in [Callback, Optional] SQLTransactionErrorCallback errorCallback, in [Callback, Optional] VoidCallback successCallback);
+ void transaction(in [Callback] SQLTransactionCallback callback, in [Callback, Optional] SQLTransactionErrorCallback errorCallback, in [Callback, Optional] VoidCallback successCallback);
+ void readTransaction(in [Callback] SQLTransactionCallback callback, in [Callback, Optional] SQLTransactionErrorCallback errorCallback, in [Callback, Optional] VoidCallback successCallback);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/DatabaseCallback.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/DatabaseCallback.idl
new file mode 100644
index 0000000..8d31648
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/DatabaseCallback.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+ interface [
+ Conditional=SQL_DATABASE,
+ Callback
+ ] DatabaseCallback {
+ boolean handleEvent(in Database database);
+ boolean handleEvent(in DatabaseSync database);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/DatabaseSync.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/DatabaseSync.idl
new file mode 100644
index 0000000..cfb0b59
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/DatabaseSync.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=SQL_DATABASE,
+ OmitConstructor,
+ JSNoStaticTables
+ ] DatabaseSync {
+ readonly attribute DOMString version;
+ readonly attribute DOMString lastErrorMessage;
+ void changeVersion(in DOMString oldVersion, in DOMString newVersion, in [Callback, Optional] SQLTransactionSyncCallback callback) raises(DOMException);
+ void transaction(in [Callback] SQLTransactionSyncCallback callback) raises(DOMException);
+ void readTransaction(in [Callback] SQLTransactionSyncCallback callback) raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLError.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLError.idl
new file mode 100644
index 0000000..ad84759
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLError.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=SQL_DATABASE,
+ OmitConstructor,
+ JSNoStaticTables
+ ] SQLError {
+ readonly attribute unsigned long code;
+ readonly attribute DOMString message;
+
+ // SQLErrorCode: used only in the async DB API
+ const unsigned short UNKNOWN_ERR = 0;
+ const unsigned short DATABASE_ERR = 1;
+ const unsigned short VERSION_ERR = 2;
+ const unsigned short TOO_LARGE_ERR = 3;
+ const unsigned short QUOTA_ERR = 4;
+ const unsigned short SYNTAX_ERR = 5;
+ const unsigned short CONSTRAINT_ERR = 6;
+ const unsigned short TIMEOUT_ERR = 7;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLException.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLException.idl
new file mode 100644
index 0000000..856e5cd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLException.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+
+ exception [
+ Conditional=SQL_DATABASE,
+ JSNoStaticTables,
+ DoNotCheckConstants
+ ] SQLException {
+ readonly attribute unsigned long code;
+ readonly attribute DOMString message;
+
+ // SQLExceptionCode: used only in the sync DB API
+ const unsigned short UNKNOWN_ERR = 0;
+ const unsigned short DATABASE_ERR = 1;
+ const unsigned short VERSION_ERR = 2;
+ const unsigned short TOO_LARGE_ERR = 3;
+ const unsigned short QUOTA_ERR = 4;
+ const unsigned short SYNTAX_ERR = 5;
+ const unsigned short CONSTRAINT_ERR = 6;
+ const unsigned short TIMEOUT_ERR = 7;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLResultSet.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLResultSet.idl
new file mode 100644
index 0000000..60692cb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLResultSet.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=SQL_DATABASE,
+ OmitConstructor,
+ JSNoStaticTables
+ ] SQLResultSet {
+ readonly attribute SQLResultSetRowList rows;
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ readonly attribute long insertId
+ getter raises(DOMException);
+#else
+ // Explicitely choose 'long long' here to avoid a 64bit->32bit shortening warning for us.
+ readonly attribute long long insertId
+ getter raises(DOMException);
+#endif
+ readonly attribute long rowsAffected;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLResultSetRowList.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLResultSetRowList.idl
new file mode 100644
index 0000000..ba0cb4c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLResultSetRowList.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=SQL_DATABASE,
+ OmitConstructor,
+ JSNoStaticTables
+ ] SQLResultSetRowList {
+ readonly attribute unsigned long length;
+ [Custom] DOMObject item(in unsigned long index);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLStatementCallback.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLStatementCallback.idl
new file mode 100644
index 0000000..c3053c0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLStatementCallback.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+ interface [
+ Conditional=SQL_DATABASE,
+ Callback
+ ] SQLStatementCallback {
+ boolean handleEvent(in SQLTransaction transaction, in SQLResultSet resultSet);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLStatementErrorCallback.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLStatementErrorCallback.idl
new file mode 100644
index 0000000..1fc96cb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLStatementErrorCallback.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+ interface [
+ Conditional=SQL_DATABASE,
+ Callback
+ ] SQLStatementErrorCallback {
+ [Custom] boolean handleEvent(in SQLTransaction transaction, in SQLError error);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransaction.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransaction.idl
new file mode 100644
index 0000000..f0994a1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransaction.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=SQL_DATABASE,
+ OmitConstructor,
+ JSNoStaticTables
+ ] SQLTransaction {
+ [Custom] void executeSql(in DOMString sqlStatement,
+ in ObjectArray arguments,
+ in [Optional, Callback] SQLStatementCallback callback,
+ in [Optional, Callback] SQLStatementErrorCallback errorCallback);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionCallback.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionCallback.idl
new file mode 100644
index 0000000..1b50bee
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionCallback.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+ interface [
+ Conditional=SQL_DATABASE,
+ Callback
+ ] SQLTransactionCallback {
+ boolean handleEvent(in SQLTransaction transaction);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionErrorCallback.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionErrorCallback.idl
new file mode 100644
index 0000000..f6ec156
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionErrorCallback.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2010 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module storage {
+ interface [
+ Conditional=SQL_DATABASE,
+ Callback
+ ] SQLTransactionErrorCallback {
+ boolean handleEvent(in SQLError error);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionSync.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionSync.idl
new file mode 100644
index 0000000..e5bdedf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionSync.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+
+ interface [
+ Conditional=SQL_DATABASE,
+ OmitConstructor,
+ JSNoStaticTables
+ ] SQLTransactionSync {
+ [Custom] SQLResultSet executeSql(in DOMString sqlStatement, in ObjectArray arguments);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionSyncCallback.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionSyncCallback.idl
new file mode 100644
index 0000000..ea22e5f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/SQLTransactionSyncCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=SQL_DATABASE,
+ Callback
+ ] SQLTransactionSyncCallback {
+ boolean handleEvent(in SQLTransactionSync transaction);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/webdatabase/WorkerContextWebDatabase.idl b/elemental/idl/third_party/WebCore/Modules/webdatabase/WorkerContextWebDatabase.idl
new file mode 100644
index 0000000..80eb942
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/webdatabase/WorkerContextWebDatabase.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ *
+ */
+
+module window {
+
+ interface [
+ Conditional=SQL_DATABASE,
+ Supplemental=WorkerContext
+ ] WorkerContextWebDatabase {
+ [V8EnabledAtRuntime] Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback)
+ raises(DOMException);
+
+ [V8EnabledAtRuntime] DatabaseSync openDatabaseSync(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize, in [Callback, Optional] DatabaseCallback creationCallback)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/websockets/CloseEvent.idl b/elemental/idl/third_party/WebCore/Modules/websockets/CloseEvent.idl
new file mode 100644
index 0000000..ea75111
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/websockets/CloseEvent.idl
@@ -0,0 +1,42 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module events {
+
+ interface [
+ JSNoStaticTables,
+ ConstructorTemplate=Event
+ ] CloseEvent : Event {
+ readonly attribute [InitializedByEventConstructor] boolean wasClean;
+ readonly attribute [InitializedByEventConstructor] unsigned short code;
+ readonly attribute [InitializedByEventConstructor] DOMString reason;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/websockets/DOMWindowWebSocket.idl b/elemental/idl/third_party/WebCore/Modules/websockets/DOMWindowWebSocket.idl
new file mode 100644
index 0000000..2b5fca8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/websockets/DOMWindowWebSocket.idl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+module window {
+
+ interface [
+ Conditional=WEB_SOCKETS,
+ Supplemental=DOMWindow
+ ] DOMWindowWebSocket {
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ attribute CloseEventConstructor CloseEvent;
+ attribute [JSCustomGetter, V8EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/websockets/WebSocket.idl b/elemental/idl/third_party/WebCore/Modules/websockets/WebSocket.idl
new file mode 100644
index 0000000..92835ae
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/websockets/WebSocket.idl
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2010, 2011 Apple 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module websockets {
+
+ interface [
+ Conditional=WEB_SOCKETS,
+ ActiveDOMObject,
+ CustomConstructor,
+ ConstructorParameters=1,
+ EventTarget,
+ JSNoStaticTables
+ ] WebSocket {
+ readonly attribute DOMString URL; // Lowercased .url is the one in the spec, but leaving .URL for compatibility reasons.
+ readonly attribute DOMString url;
+
+ // ready state
+ const unsigned short CONNECTING = 0;
+ const unsigned short OPEN = 1;
+ const unsigned short CLOSING = 2;
+ const unsigned short CLOSED = 3;
+ readonly attribute unsigned short readyState;
+
+ readonly attribute unsigned long bufferedAmount;
+
+ // networking
+ attribute EventListener onopen;
+ attribute EventListener onmessage;
+ attribute EventListener onerror;
+ attribute EventListener onclose;
+
+ readonly attribute [TreatReturnedNullStringAs=Undefined] DOMString protocol;
+ readonly attribute [TreatReturnedNullStringAs=Undefined] DOMString extensions;
+
+ attribute [TreatReturnedNullStringAs=Undefined] DOMString binaryType
+ setter raises(DOMException);
+
+ // FIXME: Use overloading provided by our IDL code generator.
+ // According to Web IDL specification, overloaded function with DOMString argument
+ // should accept anything that can be converted to a string (including numbers,
+ // booleans, null, undefined and objects except ArrayBuffer and Blob). Current code
+ // generator does not handle this rule correctly.
+ // boolean send(in ArrayBuffer data) raises(DOMException);
+ // boolean send(in Blob data) raises(DOMException);
+ // boolean send(in DOMString data) raises(DOMException);
+ [Custom] boolean send(in DOMString data) raises(DOMException);
+
+ // FIXME: Implement and apply [Clamp] attribute instead of [Custom].
+ [Custom] void close(in [Optional] unsigned short code, in [Optional] DOMString reason) raises(DOMException);
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/Modules/websockets/WorkerContextWebSocket.idl b/elemental/idl/third_party/WebCore/Modules/websockets/WorkerContextWebSocket.idl
new file mode 100644
index 0000000..9cd2524
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/Modules/websockets/WorkerContextWebSocket.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ *
+ */
+
+module window {
+
+ interface [
+ Conditional=WEB_SOCKETS,
+ Supplemental=WorkerContext
+ ] WorkerContextWebSocket {
+ attribute [JSCustomGetter,V8EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/README b/elemental/idl/third_party/WebCore/README
new file mode 100644
index 0000000..a4996d5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/README
@@ -0,0 +1,9 @@
+This directory contains a copy of WebKit/WebCore IDL files.
+See the attached LICENSE-* files in this directory.
+
+Please do not modify the files here. They are periodically copied
+using the script: $DART_ROOT/lib/dom/scripts/idlsync.py
+
+The current version corresponds to:
+URL: http://src.chromium.org/multivm/trunk/webkit
+Current revision: 576
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestCallback.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestCallback.idl
new file mode 100644
index 0000000..354859a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestCallback.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+
+// This IDL file is for testing the bindings code generator with an interface
+// that has the "Callback" attribute and for tracking changes in its ouput.
+module test {
+ interface [
+ Conditional=SQL_DATABASE,
+ Callback
+ ] TestCallback {
+ boolean callbackWithNoParam();
+ boolean callbackWithClass1Param(in Class1 class1Param);
+ boolean callbackWithClass2Param(in Class2 class2Param, in DOMString strArg);
+ long callbackWithNonBoolReturnType(in Class3 class3Param);
+ [Custom] long customCallback(in Class5 class5Param, in Class6 class6Param);
+ boolean callbackWithStringList(in DOMStringList listParam);
+ boolean callbackWithBoolean(in boolean boolParam);
+ [PassThisToCallback=ThisClass] boolean callbackRequiresThisToPass(in Class8 class8Param, in ThisClass thisClassParam);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestCustomNamedGetter.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestCustomNamedGetter.idl
new file mode 100644
index 0000000..329fa5d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestCustomNamedGetter.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+
+module events {
+
+ interface [
+ CustomNamedGetter
+ ] TestCustomNamedGetter {
+ void anotherFunction(in DOMString str);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestDomainSecurity.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestDomainSecurity.idl
new file mode 100644
index 0000000..bbd46e0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestDomainSecurity.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+
+module test {
+ interface [
+ CheckSecurity
+ ] TestActiveDOMObject {
+ readonly attribute long excitingAttr;
+ void excitingFunction(in Node nextChild);
+ [DoNotCheckSecurity] void postMessage(in DOMString message);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestEventConstructor.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestEventConstructor.idl
new file mode 100644
index 0000000..706f1e2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestEventConstructor.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+
+// This IDL file is for testing the bindings code generator and for tracking
+// changes in its ouput.
+module test {
+ interface [
+ ConstructorTemplate=Event
+ ] TestEventConstructor {
+ // Attributes
+ readonly attribute DOMString attr1;
+ readonly attribute [InitializedByEventConstructor] DOMString attr2;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestEventTarget.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestEventTarget.idl
new file mode 100644
index 0000000..22e5b96
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestEventTarget.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+
+module events {
+
+ interface [
+ EventTarget,
+ IndexedGetter,
+ NamedGetter,
+ MasqueradesAsUndefined
+ ] TestEventTarget {
+
+ Node item(in [IsIndex] unsigned long index);
+
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestException.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestException.idl
new file mode 100644
index 0000000..f34af00
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestException.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+module test {
+ exception TestException {
+ readonly attribute DOMString name;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestInterface.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestInterface.idl
new file mode 100644
index 0000000..a058f1a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestInterface.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+
+// This IDL file is for testing the bindings code generator and for tracking
+// changes in its ouput.
+module test {
+ interface [
+ ActiveDOMObject,
+ CustomNamedSetter,
+ Conditional=Condition1|Condition2,
+ CallWith=ScriptExecutionContext,
+ Constructor(in DOMString str1, in [Optional=DefaultIsUndefined] DOMString str2),
+ ConstructorRaisesException
+ ] TestInterface {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestMediaQueryListListener.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestMediaQueryListListener.idl
new file mode 100644
index 0000000..536393b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestMediaQueryListListener.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * 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.
+ */
+
+// This IDL file is for testing the bindings code generator with an interface
+// that has methods receiving a parameter of the type MediaQueryListListener.
+module test {
+ interface TestMediaQueryListListener {
+ void method(in MediaQueryListListener listener);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestNamedConstructor.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestNamedConstructor.idl
new file mode 100644
index 0000000..e0f8539
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestNamedConstructor.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+
+// This IDL file is for testing the bindings code generator and for tracking
+// changes in its ouput.
+module test {
+ interface [
+ ActiveDOMObject,
+ NamedConstructor=Audio(in DOMString str1, in [Optional=DefaultIsUndefined] DOMString str2, in [Optional=DefaultIsNullString] DOMString str3),
+ ConstructorRaisesException
+ ] TestNamedConstructor {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestNode.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestNode.idl
new file mode 100644
index 0000000..321621c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestNode.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module test {
+
+ interface [
+ EventTarget,
+ Constructor,
+ V8DependentLifetime
+ ] TestNode : Node {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestObj.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestObj.idl
new file mode 100644
index 0000000..08b9856
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestObj.idl
@@ -0,0 +1,262 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+
+// This IDL file is for testing the bindings code generator and for tracking
+// changes in its ouput.
+module test {
+ interface [
+ Constructor(in [Callback] TestCallback testCallback),
+ InterfaceName=TestObject
+ ] TestObj {
+ // Attributes
+ readonly attribute long readOnlyIntAttr;
+ readonly attribute DOMString readOnlyStringAttr;
+ readonly attribute TestObj readOnlyTestObjAttr;
+ attribute short shortAttr;
+ attribute unsigned short unsignedShortAttr;
+ attribute long intAttr;
+ attribute long long longLongAttr;
+ attribute unsigned long long unsignedLongLongAttr;
+ attribute DOMString stringAttr;
+ attribute TestObj testObjAttr;
+
+ // Sequence Attributes
+ attribute sequence<ScriptProfile> sequenceAttr;
+ attribute sequence<int> intSequenceAttr;
+ attribute sequence<short> shortSequenceAttr;
+ attribute sequence<long> longSequenceAttr;
+ attribute sequence<long long> longLongSequenceAttr;
+ attribute sequence<unsigned int> unsignedIntSequenceAttr;
+ attribute sequence<unsigned short> unsignedShortSequenceAttr;
+ attribute sequence<unsigned long> unsignedLongSequenceAttr;
+ attribute sequence<unsigned long long> unsignedLongLongSequenceAttr;
+ attribute sequence<float> floatSequenceAttr;
+ attribute sequence<double> doubleSequenceAttr;
+ attribute sequence<boolean> booleanSequenceAttr;
+ attribute sequence<void> voidSequenceAttr;
+ attribute sequence<Date> dateSequenceAttr;
+
+ JS, V8
+ // WK_ucfirst, WK_lcfirst exceptional cases.
+ attribute TestObj XMLObjAttr;
+ attribute boolean create;
+
+ // Reflected DOM attributes
+ attribute [Reflect] DOMString reflectedStringAttr;
+ attribute [Reflect] long reflectedIntegralAttr;
+ attribute [Reflect] unsigned long reflectedUnsignedIntegralAttr;
+ attribute [Reflect] boolean reflectedBooleanAttr;
+ attribute [Reflect, URL] DOMString reflectedURLAttr;
+ attribute [Reflect=customContentStringAttr] DOMString reflectedStringAttr;
+ attribute [Reflect=customContentIntegralAttr] long reflectedCustomIntegralAttr;
+ attribute [Reflect=customContentBooleanAttr] boolean reflectedCustomBooleanAttr;
+ attribute [Reflect=customContentURLAttr, URL] DOMString reflectedCustomURLAttr;
+
+ // Methods
+ void voidMethod();
+ void voidMethodWithArgs(in long intArg, in DOMString strArg, in TestObj objArg);
+ long intMethod();
+ long intMethodWithArgs(in long intArg, in DOMString strArg, in TestObj objArg);
+ TestObj objMethod();
+ TestObj objMethodWithArgs(in long intArg, in DOMString strArg, in TestObj objArg);
+
+ void methodWithSequenceArg(in sequence<ScriptProfile> sequenceArg);
+ sequence<ScriptProfile> methodReturningSequence(in long intArg);
+
+ TestObj methodThatRequiresAllArgsAndThrows(in DOMString strArg, in TestObj objArg)
+ raises(DOMException);
+
+ void serializedValue(in SerializedScriptValue serializedArg);
+ void idbKey(in IDBKey key);
+ void optionsObject(in Dictionary oo, in [Optional] Dictionary ooo);
+
+ // Exceptions
+ void methodWithException() raises(DOMException);
+ attribute long attrWithGetterException getter raises(DOMException);
+ attribute long attrWithSetterException setter raises(DOMException);
+ attribute DOMString stringAttrWithGetterException getter raises(DOMException);
+ attribute DOMString stringAttrWithSetterException setter raises(DOMException);
+
+ // 'Custom' extended attribute
+ attribute [Custom] long customAttr;
+ [Custom] void customMethod();
+ [Custom] void customMethodWithArgs(in long intArg, in DOMString strArg, in TestObj objArg);
+
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+
+ // 'CallWith' extended attribute
+ [CallWith=ScriptState] void withScriptStateVoid();
+ [CallWith=ScriptState] TestObj withScriptStateObj();
+ [CallWith=ScriptState] void withScriptStateVoidException()
+ raises(DOMException);
+ [CallWith=ScriptState] TestObj withScriptStateObjException()
+ raises(DOMException);
+ [CallWith=ScriptExecutionContext] void withScriptExecutionContext();
+ [CallWith=ScriptExecutionContext|ScriptState] void withScriptExecutionContextAndScriptState();
+ [CallWith=ScriptExecutionContext|ScriptState] TestObj withScriptExecutionContextAndScriptStateObjException()
+ raises(DOMException);
+ [CallWith= ScriptExecutionContext | ScriptState ] TestObj withScriptExecutionContextAndScriptStateWithSpaces();
+ [CallWith=ScriptArguments|CallStack] void withScriptArgumentsAndCallStack();
+
+ attribute [CallWith=ScriptState] long withScriptStateAttribute;
+ attribute [CallWith=ScriptExecutionContext] TestObj withScriptExecutionContextAttribute;
+ attribute [CallWith=ScriptState] TestObj withScriptStateAttributeRaises
+ getter raises(DOMException);
+ attribute [CallWith=ScriptExecutionContext] TestObj withScriptExecutionContextAttributeRaises
+ getter raises(DOMException);
+ attribute [CallWith=ScriptExecutionContext|ScriptState] TestObj withScriptExecutionContextAndScriptStateAttribute;
+ attribute [CallWith=ScriptExecutionContext|ScriptState] TestObj withScriptExecutionContextAndScriptStateAttributeRaises
+ getter raises(DOMException);
+ attribute [CallWith= ScriptExecutionContext | ScriptState ] TestObj withScriptExecutionContextAndScriptStateWithSpacesAttribute;
+ attribute [CallWith=ScriptArguments|CallStack] TestObj withScriptArgumentsAndCallStackAttribute;
+
+ // 'Optional' extended attribute
+ void methodWithOptionalArg(in [Optional] long opt);
+ void methodWithNonOptionalArgAndOptionalArg(in long nonOpt, in [Optional] long opt);
+ void methodWithNonOptionalArgAndTwoOptionalArgs(in long nonOpt, in [Optional] long opt1, in [Optional] long opt2);
+ void methodWithOptionalString(in [Optional] DOMString str);
+ void methodWithOptionalStringIsUndefined(in [Optional=DefaultIsUndefined] DOMString str);
+ void methodWithOptionalStringIsNullString(in [Optional=DefaultIsNullString] DOMString str);
+
+#if defined(TESTING_V8) || defined(TESTING_JS)
+ // 'Callback' extended attribute
+ void methodWithCallbackArg(in [Callback] TestCallback callback);
+ void methodWithNonCallbackArgAndCallbackArg(in long nonCallback, in [Callback] TestCallback callback);
+ void methodWithCallbackAndOptionalArg(in [Callback, Optional] TestCallback callback);
+#endif
+
+ // 'Conditional' extended attribute
+ attribute [Conditional=Condition1] long conditionalAttr1;
+ attribute [Conditional=Condition1&Condition2] long conditionalAttr2;
+ attribute [Conditional=Condition1|Condition2] long conditionalAttr3;
+
+ // 'Conditional' extended method
+ [Conditional=Condition1] DOMString conditionalMethod1();
+ [Conditional=Condition1&Condition2] void conditionalMethod2();
+ [Conditional=Condition1|Condition2] void conditionalMethod3();
+
+ attribute [Conditional=Condition1] TestObjectAConstructor conditionalAttr4;
+ attribute [Conditional=Condition1&Condition2] TestObjectBConstructor conditionalAttr5;
+ attribute [Conditional=Condition1|Condition2] TestObjectCConstructor conditionalAttr6;
+
+ [Conditional=Condition1] const unsigned short CONDITIONAL_CONST = 0;
+
+#if defined(TESTING_V8) || defined(TESTING_JS)
+ readonly attribute [CachedAttribute] any cachedAttribute1;
+ readonly attribute [CachedAttribute] any cachedAttribute2;
+#endif
+
+#if defined(TESTING_V8) || defined(TESTING_JS)
+ // Overloads
+ void overloadedMethod(in TestObj objArg, in DOMString strArg);
+ void overloadedMethod(in TestObj objArg, in [Optional] long intArg);
+ void overloadedMethod(in DOMString strArg);
+ void overloadedMethod(in long intArg);
+ void overloadedMethod(in [Callback] TestCallback callback);
+ void overloadedMethod(in DOMStringList listArg);
+ void overloadedMethod(in DOMString[] arrayArg);
+#endif
+
+ // Class methods within JavaScript (like what's used for IDBKeyRange).
+ static void classMethod();
+ static long classMethodWithOptional(in [Optional] long arg);
+ [Custom] static void classMethod2(in long arg);
+
+ // Static method with conditional on overloaded methods
+ [Conditional=Condition1] static void overloadedMethod1(in long arg);
+ [Conditional=Condition1] static void overloadedMethod1(in DOMString type);
+
+#if defined(TESTING_V8)
+ // 'V8EnabledAtRuntime' methods and attributes.
+ [V8EnabledAtRuntime] void enabledAtRuntimeMethod1(in int intArg);
+ [V8EnabledAtRuntime=FeatureName] void enabledAtRuntimeMethod2(in int intArg);
+ attribute [V8EnabledAtRuntime] long enabledAtRuntimeAttr1;
+ attribute [V8EnabledAtRuntime=FeatureName] long enabledAtRuntimeAttr2;
+ // V8EnabledPerContext currently only supports attributes.
+ attribute [V8EnabledPerContext] long enabledAtContextAttr1;
+ attribute [V8EnabledPerContext=FeatureName] long enabledAtContextAttr2;
+#endif
+
+
+#if defined(TESTING_V8)
+ attribute float[] floatArray;
+ attribute double[] doubleArray;
+#endif
+
+#if defined(TESTING_JS)
+ void methodWithUnsignedLongArray(in unsigned long[] unsignedLongArray);
+#endif
+
+ readonly attribute [CheckSecurityForNode] Document contentDocument;
+ [CheckSecurityForNode] SVGDocument getSVGDocument()
+ raises(DOMException);
+
+ void convert1(in [TreatReturnedNullStringAs=Null] a);
+ void convert2(in [TreatReturnedNullStringAs=Undefined] b);
+ void convert3(in [TreatReturnedNullStringAs=False] c);
+ void convert4(in [TreatNullAs=NullString] d);
+ void convert5(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] e);
+
+ attribute SVGPoint mutablePoint;
+ attribute [Immutable] SVGPoint immutablePoint;
+ SVGPoint mutablePointFunction();
+ [Immutable] SVGPoint immutablePointFunction();
+
+ [ImplementedAs=banana] void orange();
+ attribute [ImplementedAs=blueberry] int strawberry;
+
+ attribute [StrictTypeChecking] float strictFloat;
+ [StrictTypeChecking] bool strictFunction(in DOMString str, in float a, in int b)
+ raises(DOMException);
+
+ // ObjectiveC reserved words.
+ readonly attribute long description;
+ attribute long id;
+ readonly attribute DOMString hash;
+
+ // Check constants and enums.
+ const unsigned short CONST_VALUE_0 = 0;
+ const unsigned short CONST_VALUE_1 = 1;
+ const unsigned short CONST_VALUE_2 = 2;
+ const unsigned short CONST_VALUE_4 = 4;
+ const unsigned short CONST_VALUE_8 = 8;
+ const short CONST_VALUE_9 = -1;
+ const DOMString CONST_VALUE_10 = "my constant string";
+ const unsigned short CONST_VALUE_11 = 0xffffffff;
+ const unsigned short CONST_VALUE_12 = 0x01;
+ const unsigned short CONST_VALUE_13 = 0X20;
+ const unsigned short CONST_VALUE_14 = 0x1abc;
+ [Reflect=CONST_IMPL] const unsigned short CONST_JAVASCRIPT = 15;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl
new file mode 100644
index 0000000..facf7cb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+// This IDL file is for testing the bindings code generator and for tracking
+// changes in its ouput.
+module test {
+ interface [
+ Conditional=Condition1|Condition2,
+ Constructor(in DOMString hello, in SerializedScriptValue value),
+ Constructor(in DOMString hello, in [TransferList=transferList] SerializedScriptValue data, in [Optional=DefaultIsUndefined] Array transferList),
+ ] TestSerializedScriptValueInterface {
+ attribute SerializedScriptValue value;
+ readonly attribute SerializedScriptValue readonlyValue;
+ attribute [CachedAttribute] SerializedScriptValue cachedValue;
+ readonly attribute MessagePortArray ports;
+ readonly attribute [CachedAttribute] SerializedScriptValue cachedReadonlyValue;
+ void acceptTransferList(in [TransferList=transferList] SerializedScriptValue data, in [Optional] Array transferList);
+ void multiTransferList(in [Optional, TransferList=tx] SerializedScriptValue first, in [Optional] Array tx, in [Optional, TransferList=txx] SerializedScriptValue second, in [Optional] Array txx);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestSupplemental.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestSupplemental.idl
new file mode 100644
index 0000000..6051412
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestSupplemental.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary formstrArg, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIEstrArg, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS 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.
+ */
+
+// This IDL file is for testing the bindings code generator and for tracking
+// changes in its ouput.
+module test {
+ interface [
+ Conditional=Condition11|Condition12,
+ Supplemental=TestInterface
+ ] TestSupplemental {
+ readonly attribute DOMString supplementalStr1;
+ attribute DOMString supplementalStr2;
+ attribute [CustomGetter, CustomSetter] DOMString supplementalStr3;
+ attribute Node supplementalNode;
+
+ void supplementalMethod1();
+ [CallWith=ScriptExecutionContext] TestObj supplementalMethod2(in DOMString strArg, in TestObj objArg) raises(DOMException);
+ [Custom] void supplementalMethod3();
+ static void supplementalMethod4();
+
+ const unsigned short SUPPLEMENTALCONSTANT1 = 1;
+ [Reflect=CONST_IMPL] const unsigned short SUPPLEMENTALCONSTANT2 = 2;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/bindings/scripts/test/TestTypedArray.idl b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestTypedArray.idl
new file mode 100644
index 0000000..e816b38
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/bindings/scripts/test/TestTypedArray.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=123,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Float64Array : ArrayBufferView {
+ Int32Array foo(in Float32Array array);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSCharsetRule.idl b/elemental/idl/third_party/WebCore/css/CSSCharsetRule.idl
new file mode 100644
index 0000000..3cdaf4a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSCharsetRule.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface CSSCharsetRule : CSSRule {
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString encoding;
+#else
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString encoding
+ setter raises(DOMException);
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSFontFaceRule.idl b/elemental/idl/third_party/WebCore/css/CSSFontFaceRule.idl
new file mode 100644
index 0000000..bd38a61
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSFontFaceRule.idl
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface CSSFontFaceRule : CSSRule {
+ readonly attribute CSSStyleDeclaration style;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSImportRule.idl b/elemental/idl/third_party/WebCore/css/CSSImportRule.idl
new file mode 100644
index 0000000..ddd0a8b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSImportRule.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface CSSImportRule : CSSRule {
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString href;
+ readonly attribute MediaList media;
+ readonly attribute CSSStyleSheet styleSheet;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSMediaRule.idl b/elemental/idl/third_party/WebCore/css/CSSMediaRule.idl
new file mode 100644
index 0000000..f52a6ce
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSMediaRule.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface CSSMediaRule : CSSRule {
+ readonly attribute MediaList media;
+ readonly attribute CSSRuleList cssRules;
+
+ [ObjCLegacyUnnamedParameters] unsigned long insertRule(in [Optional=DefaultIsUndefined] DOMString rule,
+ in [Optional=DefaultIsUndefined] unsigned long index)
+ raises(DOMException);
+ void deleteRule(in [Optional=DefaultIsUndefined] unsigned long index)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSPageRule.idl b/elemental/idl/third_party/WebCore/css/CSSPageRule.idl
new file mode 100644
index 0000000..b3ea228
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSPageRule.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface CSSPageRule : CSSRule {
+
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString selectorText;
+
+ readonly attribute CSSStyleDeclaration style;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSPrimitiveValue.idl b/elemental/idl/third_party/WebCore/css/CSSPrimitiveValue.idl
new file mode 100644
index 0000000..6c637c9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSPrimitiveValue.idl
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ interface CSSPrimitiveValue : CSSValue {
+
+ // UnitTypes
+ const unsigned short CSS_UNKNOWN = 0;
+ const unsigned short CSS_NUMBER = 1;
+ const unsigned short CSS_PERCENTAGE = 2;
+ const unsigned short CSS_EMS = 3;
+ const unsigned short CSS_EXS = 4;
+ const unsigned short CSS_PX = 5;
+ const unsigned short CSS_CM = 6;
+ const unsigned short CSS_MM = 7;
+ const unsigned short CSS_IN = 8;
+ const unsigned short CSS_PT = 9;
+ const unsigned short CSS_PC = 10;
+ const unsigned short CSS_DEG = 11;
+ const unsigned short CSS_RAD = 12;
+ const unsigned short CSS_GRAD = 13;
+ const unsigned short CSS_MS = 14;
+ const unsigned short CSS_S = 15;
+ const unsigned short CSS_HZ = 16;
+ const unsigned short CSS_KHZ = 17;
+ const unsigned short CSS_DIMENSION = 18;
+ const unsigned short CSS_STRING = 19;
+ const unsigned short CSS_URI = 20;
+ const unsigned short CSS_IDENT = 21;
+ const unsigned short CSS_ATTR = 22;
+ const unsigned short CSS_COUNTER = 23;
+ const unsigned short CSS_RECT = 24;
+ const unsigned short CSS_RGBCOLOR = 25;
+ const unsigned short CSS_VW = 26;
+ const unsigned short CSS_VH = 27;
+ const unsigned short CSS_VMIN = 28;
+
+ readonly attribute unsigned short primitiveType;
+
+ [ObjCLegacyUnnamedParameters] void setFloatValue(in [Optional=DefaultIsUndefined] unsigned short unitType,
+ in [Optional=DefaultIsUndefined] float floatValue)
+ raises(DOMException);
+ float getFloatValue(in [Optional=DefaultIsUndefined] unsigned short unitType)
+ raises(DOMException);
+ [ObjCLegacyUnnamedParameters] void setStringValue(in [Optional=DefaultIsUndefined] unsigned short stringType,
+ in [Optional=DefaultIsUndefined] DOMString stringValue)
+ raises(DOMException);
+ DOMString getStringValue()
+ raises(DOMException);
+ Counter getCounterValue()
+ raises(DOMException);
+ Rect getRectValue()
+ raises(DOMException);
+ RGBColor getRGBColorValue()
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSRule.idl b/elemental/idl/third_party/WebCore/css/CSSRule.idl
new file mode 100644
index 0000000..05854a2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSRule.idl
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSCustomMarkFunction,
+ JSGenerateIsReachable,
+ CustomToJSObject,
+ ObjCPolymorphic,
+ V8DependentLifetime
+ ] CSSRule {
+
+ // RuleType
+ const unsigned short UNKNOWN_RULE = 0;
+ const unsigned short STYLE_RULE = 1;
+ const unsigned short CHARSET_RULE = 2;
+ const unsigned short IMPORT_RULE = 3;
+ const unsigned short MEDIA_RULE = 4;
+ const unsigned short FONT_FACE_RULE = 5;
+ const unsigned short PAGE_RULE = 6;
+ const unsigned short WEBKIT_KEYFRAMES_RULE = 7;
+ const unsigned short WEBKIT_KEYFRAME_RULE = 8;
+#if defined(ENABLE_CSS_REGIONS) && ENABLE_CSS_REGIONS
+ const unsigned short WEBKIT_REGION_RULE = 10;
+#endif
+
+ readonly attribute unsigned short type;
+
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString cssText
+ setter raises (DOMException);
+
+ readonly attribute CSSStyleSheet parentStyleSheet;
+ readonly attribute CSSRule parentRule;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSRuleList.idl b/elemental/idl/third_party/WebCore/css/CSSRuleList.idl
new file mode 100644
index 0000000..7ac533b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSRuleList.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006, 2007, 2009 Apple 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.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSCustomIsReachable,
+ IndexedGetter,
+ V8DependentLifetime
+ ] CSSRuleList {
+ readonly attribute unsigned long length;
+ CSSRule item(in [Optional=DefaultIsUndefined] unsigned long index);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSStyleDeclaration.idl b/elemental/idl/third_party/WebCore/css/CSSStyleDeclaration.idl
new file mode 100644
index 0000000..9846c54
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSStyleDeclaration.idl
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSCustomMarkFunction,
+ JSGenerateIsReachable,
+ JSCustomGetOwnPropertySlotAndDescriptor,
+ CustomNamedSetter,
+#if defined(V8_BINDING) && V8_BINDING
+ NamedGetter,
+#endif
+ IndexedGetter,
+ CustomEnumerateProperty,
+ V8DependentLifetime
+ ] CSSStyleDeclaration {
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString cssText
+ setter raises(DOMException);
+
+ [TreatReturnedNullStringAs=Null] DOMString getPropertyValue(in [Optional=DefaultIsUndefined] DOMString propertyName);
+ [JSCustom] CSSValue getPropertyCSSValue(in [Optional=DefaultIsUndefined] DOMString propertyName);
+ [TreatReturnedNullStringAs=Null] DOMString removeProperty(in [Optional=DefaultIsUndefined] DOMString propertyName)
+ raises(DOMException);
+ [TreatReturnedNullStringAs=Null] DOMString getPropertyPriority(in [Optional=DefaultIsUndefined] DOMString propertyName);
+ [ObjCLegacyUnnamedParameters] void setProperty(in [Optional=DefaultIsUndefined] DOMString propertyName,
+ in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString value,
+ in [Optional=DefaultIsUndefined] DOMString priority)
+ raises(DOMException);
+
+ readonly attribute unsigned long length;
+ DOMString item(in [Optional=DefaultIsUndefined] unsigned long index);
+ readonly attribute CSSRule parentRule;
+
+ // Extensions
+ [TreatReturnedNullStringAs=Null] DOMString getPropertyShorthand(in [Optional=DefaultIsUndefined] DOMString propertyName);
+ boolean isPropertyImplicit(in [Optional=DefaultIsUndefined] DOMString propertyName);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSStyleRule.idl b/elemental/idl/third_party/WebCore/css/CSSStyleRule.idl
new file mode 100644
index 0000000..c576329
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSStyleRule.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface CSSStyleRule : CSSRule {
+
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString selectorText;
+
+ readonly attribute CSSStyleDeclaration style;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSStyleSheet.idl b/elemental/idl/third_party/WebCore/css/CSSStyleSheet.idl
new file mode 100644
index 0000000..962c9db
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSStyleSheet.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface [
+ V8CustomToJSObject
+ ] CSSStyleSheet : StyleSheet {
+ readonly attribute CSSRule ownerRule;
+ readonly attribute CSSRuleList cssRules;
+
+ [ObjCLegacyUnnamedParameters] unsigned long insertRule(in [Optional=DefaultIsUndefined] DOMString rule,
+ in [Optional=DefaultIsUndefined] unsigned long index)
+ raises(DOMException);
+ void deleteRule(in [Optional=DefaultIsUndefined] unsigned long index)
+ raises(DOMException);
+
+ // IE Extensions
+ readonly attribute CSSRuleList rules;
+
+ long addRule(in [Optional=DefaultIsUndefined] DOMString selector,
+ in [Optional=DefaultIsUndefined] DOMString style,
+ in [Optional] unsigned long index)
+ raises(DOMException);
+ void removeRule(in [Optional=DefaultIsUndefined] unsigned long index)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSUnknownRule.idl b/elemental/idl/third_party/WebCore/css/CSSUnknownRule.idl
new file mode 100644
index 0000000..b62ceb8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSUnknownRule.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface [
+ OmitConstructor
+ ] CSSUnknownRule : CSSRule {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSValue.idl b/elemental/idl/third_party/WebCore/css/CSSValue.idl
new file mode 100644
index 0000000..2b0ceb3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSValue.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ interface [
+ CustomToJSObject,
+ JSCustomIsReachable,
+ JSCustomFinalize,
+ ObjCPolymorphic,
+ V8DependentLifetime
+ ] CSSValue {
+
+ // UnitTypes
+ const unsigned short CSS_INHERIT = 0;
+ const unsigned short CSS_PRIMITIVE_VALUE = 1;
+ const unsigned short CSS_VALUE_LIST = 2;
+ const unsigned short CSS_CUSTOM = 3;
+
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString cssText
+ setter raises(DOMException);
+
+ readonly attribute unsigned short cssValueType;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/CSSValueList.idl b/elemental/idl/third_party/WebCore/css/CSSValueList.idl
new file mode 100644
index 0000000..23e27ec
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/CSSValueList.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006, 2007 Apple 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.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface [
+ IndexedGetter
+ ] CSSValueList : CSSValue {
+ readonly attribute unsigned long length;
+ CSSValue item(in [Optional=DefaultIsUndefined] unsigned long index);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/Counter.idl b/elemental/idl/third_party/WebCore/css/Counter.idl
new file mode 100644
index 0000000..6236c45
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/Counter.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface Counter {
+ readonly attribute DOMString identifier;
+ readonly attribute DOMString listStyle;
+ readonly attribute DOMString separator;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/MediaList.idl b/elemental/idl/third_party/WebCore/css/MediaList.idl
new file mode 100644
index 0000000..35445a3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/MediaList.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2006, 2007 Apple 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.
+ */
+
+module stylesheets {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSGenerateIsReachable,
+ IndexedGetter
+ ] MediaList {
+
+ attribute [TreatNullAs=NullString, TreatReturnedNullStringAs=Null] DOMString mediaText
+ setter raises(DOMException);
+ readonly attribute unsigned long length;
+
+ [TreatReturnedNullStringAs=Null] DOMString item(in [Optional=DefaultIsUndefined] unsigned long index);
+ void deleteMedium(in [Optional=DefaultIsUndefined] DOMString oldMedium)
+ raises(DOMException);
+ void appendMedium(in [Optional=DefaultIsUndefined] DOMString newMedium)
+ raises(DOMException);
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/MediaQueryList.idl b/elemental/idl/third_party/WebCore/css/MediaQueryList.idl
new file mode 100644
index 0000000..b4f7b95
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/MediaQueryList.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module view {
+ interface MediaQueryList {
+ readonly attribute DOMString media;
+ readonly attribute boolean matches;
+ void addListener(in [Optional=DefaultIsUndefined] MediaQueryListListener listener);
+ void removeListener(in [Optional=DefaultIsUndefined] MediaQueryListListener listener);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/css/MediaQueryListListener.idl b/elemental/idl/third_party/WebCore/css/MediaQueryListListener.idl
new file mode 100644
index 0000000..d8f383a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/MediaQueryListListener.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module view {
+ interface [
+ JSNoStaticTables,
+ ObjCProtocol,
+ CPPPureInterface,
+ OmitConstructor
+ ] MediaQueryListListener {
+ void queryChanged(in [Optional=DefaultIsUndefined] MediaQueryList list);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/css/RGBColor.idl b/elemental/idl/third_party/WebCore/css/RGBColor.idl
new file mode 100644
index 0000000..1dc87bc
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/RGBColor.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ // Introduced in DOM Level 2:
+ interface RGBColor {
+ readonly attribute CSSPrimitiveValue red;
+ readonly attribute CSSPrimitiveValue green;
+ readonly attribute CSSPrimitiveValue blue;
+
+ // WebKit extensions
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
+ readonly attribute CSSPrimitiveValue alpha;
+#endif
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ readonly attribute Color color;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/Rect.idl b/elemental/idl/third_party/WebCore/css/Rect.idl
new file mode 100644
index 0000000..60eb70e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/Rect.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module css {
+
+ interface Rect {
+ readonly attribute CSSPrimitiveValue top;
+ readonly attribute CSSPrimitiveValue right;
+ readonly attribute CSSPrimitiveValue bottom;
+ readonly attribute CSSPrimitiveValue left;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/StyleMedia.idl b/elemental/idl/third_party/WebCore/css/StyleMedia.idl
new file mode 100644
index 0000000..5dd58da
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/StyleMedia.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * 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.
+ */
+
+module view {
+ interface [
+ JSGenerateIsReachable=ImplFrame
+ ] StyleMedia {
+ readonly attribute DOMString type;
+ boolean matchMedium(in [Optional=DefaultIsUndefined] DOMString mediaquery);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/css/StyleSheet.idl b/elemental/idl/third_party/WebCore/css/StyleSheet.idl
new file mode 100644
index 0000000..9e20d84
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/StyleSheet.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module stylesheets {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSCustomMarkFunction,
+ JSGenerateIsReachable,
+ CustomToJSObject,
+ ObjCPolymorphic,
+ V8DependentLifetime
+ ] StyleSheet {
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString type;
+ attribute boolean disabled;
+ readonly attribute Node ownerNode;
+ readonly attribute StyleSheet parentStyleSheet;
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString href;
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString title;
+ readonly attribute MediaList media;
+
+#if defined(LANGUAGE_CPP) && LANGUAGE_CPP
+ // Extra WebCore methods exposed to allowe compile-time casting in C++
+ boolean isCSSStyleSheet();
+#endif
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/StyleSheetList.idl b/elemental/idl/third_party/WebCore/css/StyleSheetList.idl
new file mode 100644
index 0000000..3a7b185
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/StyleSheetList.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module stylesheets {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSGenerateIsReachable=ImplDocument,
+ IndexedGetter,
+ NamedGetter,
+ V8DependentLifetime
+ ] StyleSheetList {
+ readonly attribute unsigned long length;
+ StyleSheet item(in [Optional=DefaultIsUndefined] unsigned long index);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/WebKitCSSFilterValue.idl b/elemental/idl/third_party/WebCore/css/WebKitCSSFilterValue.idl
new file mode 100644
index 0000000..3f21913
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/WebKitCSSFilterValue.idl
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2011 Apple 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.
+ */
+
+module css {
+
+ interface [
+ Conditional=CSS_FILTERS,
+ IndexedGetter,
+ DoNotCheckConstants
+ ] WebKitCSSFilterValue : CSSValueList {
+
+ // OperationTypes
+
+ const unsigned short CSS_FILTER_REFERENCE = 1;
+ const unsigned short CSS_FILTER_GRAYSCALE = 2;
+ const unsigned short CSS_FILTER_SEPIA = 3;
+ const unsigned short CSS_FILTER_SATURATE = 4;
+ const unsigned short CSS_FILTER_HUE_ROTATE = 5;
+ const unsigned short CSS_FILTER_INVERT = 6;
+ const unsigned short CSS_FILTER_OPACITY = 7;
+ const unsigned short CSS_FILTER_BRIGHTNESS = 8;
+ const unsigned short CSS_FILTER_CONTRAST = 9;
+ const unsigned short CSS_FILTER_BLUR = 10;
+ const unsigned short CSS_FILTER_DROP_SHADOW = 11;
+
+#if defined(ENABLE_CSS_SHADERS) && ENABLE_CSS_SHADERS
+ const unsigned short CSS_FILTER_CUSTOM = 12;
+#endif
+
+ readonly attribute unsigned short operationType;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/css/WebKitCSSKeyframeRule.idl b/elemental/idl/third_party/WebCore/css/WebKitCSSKeyframeRule.idl
new file mode 100644
index 0000000..f6eac77
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/WebKitCSSKeyframeRule.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module css {
+
+ // Introduced in DOM Level ?:
+ interface WebKitCSSKeyframeRule : CSSRule {
+
+ attribute DOMString keyText;
+ readonly attribute CSSStyleDeclaration style;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/WebKitCSSKeyframesRule.idl b/elemental/idl/third_party/WebCore/css/WebKitCSSKeyframesRule.idl
new file mode 100644
index 0000000..fa0ea2a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/WebKitCSSKeyframesRule.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module css {
+
+ // Introduced in DOM Level ?:
+ interface [
+ IndexedGetter
+ ] WebKitCSSKeyframesRule : CSSRule {
+
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString name;
+ readonly attribute CSSRuleList cssRules;
+
+ void insertRule(in [Optional=DefaultIsUndefined] DOMString rule);
+ void deleteRule(in [Optional=DefaultIsUndefined] DOMString key);
+ WebKitCSSKeyframeRule findRule(in [Optional=DefaultIsUndefined] DOMString key);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/WebKitCSSMatrix.idl b/elemental/idl/third_party/WebCore/css/WebKitCSSMatrix.idl
new file mode 100644
index 0000000..08c41aa
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/WebKitCSSMatrix.idl
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2008, 2010 Apple 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 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 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.
+ */
+
+module css {
+
+ // Introduced in DOM Level ?:
+ interface [
+ Constructor(in [Optional=DefaultIsNullString] DOMString cssValue),
+ ConstructorRaisesException,
+ ] WebKitCSSMatrix {
+
+ // These attributes are simple aliases for certain elements of the 4x4 matrix
+ attribute double a; // alias for m11
+ attribute double b; // alias for m12
+ attribute double c; // alias for m21
+ attribute double d; // alias for m22
+ attribute double e; // alias for m41
+ attribute double f; // alias for m42
+
+ attribute double m11;
+ attribute double m12;
+ attribute double m13;
+ attribute double m14;
+ attribute double m21;
+ attribute double m22;
+ attribute double m23;
+ attribute double m24;
+ attribute double m31;
+ attribute double m32;
+ attribute double m33;
+ attribute double m34;
+ attribute double m41;
+ attribute double m42;
+ attribute double m43;
+ attribute double m44;
+
+ void setMatrixValue(in [Optional=DefaultIsUndefined] DOMString string) raises (DOMException);
+
+ // Multiply this matrix by secondMatrix, on the right (result = this * secondMatrix)
+ [Immutable] WebKitCSSMatrix multiply(in [Optional=DefaultIsUndefined] WebKitCSSMatrix secondMatrix);
+
+ // Return the inverse of this matrix. Throw an exception if the matrix is not invertible
+ [Immutable] WebKitCSSMatrix inverse() raises (DOMException);
+
+ // Return this matrix translated by the passed values.
+ // Passing a NaN will use a value of 0. This allows the 3D form to used for 2D operations
+ [Immutable] WebKitCSSMatrix translate(in [Optional=DefaultIsUndefined] double x,
+ in [Optional=DefaultIsUndefined] double y,
+ in [Optional=DefaultIsUndefined] double z);
+
+ // Returns this matrix scaled by the passed values.
+ // Passing scaleX or scaleZ as NaN uses a value of 1, but passing scaleY of NaN
+ // makes it the same as scaleX. This allows the 3D form to used for 2D operations
+ [Immutable] WebKitCSSMatrix scale(in [Optional=DefaultIsUndefined] double scaleX,
+ in [Optional=DefaultIsUndefined] double scaleY,
+ in [Optional=DefaultIsUndefined] double scaleZ);
+
+ // Returns this matrix rotated by the passed values.
+ // If rotY and rotZ are NaN, rotate about Z (rotX=0, rotateY=0, rotateZ=rotX).
+ // Otherwise use a rotation value of 0 for any passed NaN.
+ [Immutable] WebKitCSSMatrix rotate(in [Optional=DefaultIsUndefined] double rotX,
+ in [Optional=DefaultIsUndefined] double rotY,
+ in [Optional=DefaultIsUndefined] double rotZ);
+
+ // Returns this matrix rotated about the passed axis by the passed angle.
+ // Passing a NaN will use a value of 0. If the axis is (0,0,0) use a value
+ // of (0,0,1).
+ [Immutable] WebKitCSSMatrix rotateAxisAngle(in [Optional=DefaultIsUndefined] double x,
+ in [Optional=DefaultIsUndefined] double y,
+ in [Optional=DefaultIsUndefined] double z,
+ in [Optional=DefaultIsUndefined] double angle);
+
+ // Returns this matrix skewed along the X axis by the passed values.
+ // Passing a NaN will use a value of 0.
+ [Immutable] WebKitCSSMatrix skewX(in [Optional=DefaultIsUndefined] double angle);
+
+ // Returns this matrix skewed along the Y axis by the passed values.
+ // Passing a NaN will use a value of 0.
+ [Immutable] WebKitCSSMatrix skewY(in [Optional=DefaultIsUndefined] double angle);
+
+ [NotEnumerable] DOMString toString();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/WebKitCSSRegionRule.idl b/elemental/idl/third_party/WebCore/css/WebKitCSSRegionRule.idl
new file mode 100644
index 0000000..ec3e6d5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/WebKitCSSRegionRule.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2011 Adobe Systems Incorporated. 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 THE COPYRIGHT HOLDER "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 HOLDER 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.
+ */
+
+module css {
+
+ interface [
+ Conditional=CSS_REGIONS,
+ ] WebKitCSSRegionRule : CSSRule {
+ readonly attribute CSSRuleList cssRules;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/css/WebKitCSSTransformValue.idl b/elemental/idl/third_party/WebCore/css/WebKitCSSTransformValue.idl
new file mode 100644
index 0000000..92fde1d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/css/WebKitCSSTransformValue.idl
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module css {
+
+ interface [
+ IndexedGetter,
+ DoNotCheckConstants
+ ] WebKitCSSTransformValue : CSSValueList {
+
+ // OperationTypes
+
+ const unsigned short CSS_TRANSLATE = 1;
+ const unsigned short CSS_TRANSLATEX = 2;
+ const unsigned short CSS_TRANSLATEY = 3;
+ const unsigned short CSS_ROTATE = 4;
+ const unsigned short CSS_SCALE = 5;
+ const unsigned short CSS_SCALEX = 6;
+ const unsigned short CSS_SCALEY = 7;
+ const unsigned short CSS_SKEW = 8;
+ const unsigned short CSS_SKEWX = 9;
+ const unsigned short CSS_SKEWY = 10;
+ const unsigned short CSS_MATRIX = 11;
+ const unsigned short CSS_TRANSLATEZ = 12;
+ const unsigned short CSS_TRANSLATE3D = 13;
+ const unsigned short CSS_ROTATEX = 14;
+ const unsigned short CSS_ROTATEY = 15;
+ const unsigned short CSS_ROTATEZ = 16;
+ const unsigned short CSS_ROTATE3D = 17;
+ const unsigned short CSS_SCALEZ = 18;
+ const unsigned short CSS_SCALE3D = 19;
+ const unsigned short CSS_PERSPECTIVE = 20;
+ const unsigned short CSS_MATRIX3D = 21;
+
+ readonly attribute unsigned short operationType;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Attr.idl b/elemental/idl/third_party/WebCore/dom/Attr.idl
new file mode 100644
index 0000000..3008967
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Attr.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface [
+ JSCustomMarkFunction,
+ JSGenerateToNativeObject
+ ] Attr : Node {
+
+ // DOM Level 1
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString name;
+
+ readonly attribute boolean specified;
+
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString value
+ setter raises(DOMException);
+
+ // DOM Level 2
+
+ readonly attribute Element ownerElement;
+
+ // DOM Level 3
+
+ readonly attribute boolean isId;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // This extension is no longer needed, but it has to remain available in Objective C, as it's public API.
+ readonly attribute CSSStyleDeclaration style;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/BeforeLoadEvent.idl b/elemental/idl/third_party/WebCore/dom/BeforeLoadEvent.idl
new file mode 100644
index 0000000..08dfbbb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/BeforeLoadEvent.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2009 Apple 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, 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.
+ *
+ */
+
+module events {
+
+ interface [
+ ConstructorTemplate=Event
+ ] BeforeLoadEvent : Event {
+ readonly attribute [InitializedByEventConstructor] DOMString url;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/CDATASection.idl b/elemental/idl/third_party/WebCore/dom/CDATASection.idl
new file mode 100644
index 0000000..70a4f55
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/CDATASection.idl
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface CDATASection : Text {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/CharacterData.idl b/elemental/idl/third_party/WebCore/dom/CharacterData.idl
new file mode 100644
index 0000000..2bb3d4e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/CharacterData.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface CharacterData : Node {
+
+ attribute [TreatNullAs=NullString] DOMString data
+ setter raises(DOMException);
+
+ readonly attribute unsigned long length;
+
+ [TreatReturnedNullStringAs=Null, ObjCLegacyUnnamedParameters] DOMString substringData(in [IsIndex,Optional=DefaultIsUndefined] unsigned long offset,
+ in [IsIndex,Optional=DefaultIsUndefined] unsigned long length)
+ raises(DOMException);
+
+ void appendData(in [Optional=DefaultIsUndefined] DOMString data)
+ raises(DOMException);
+
+ [ObjCLegacyUnnamedParameters] void insertData(in [IsIndex,Optional=DefaultIsUndefined] unsigned long offset,
+ in [Optional=DefaultIsUndefined] DOMString data)
+ raises(DOMException);
+
+ [ObjCLegacyUnnamedParameters] void deleteData(in [IsIndex,Optional=DefaultIsUndefined] unsigned long offset,
+ in [IsIndex,Optional=DefaultIsUndefined] unsigned long length)
+ raises(DOMException);
+
+ [ObjCLegacyUnnamedParameters] void replaceData(in [IsIndex,Optional=DefaultIsUndefined] unsigned long offset,
+ in [IsIndex,Optional=DefaultIsUndefined] unsigned long length,
+ in [Optional=DefaultIsUndefined] DOMString data)
+ raises(DOMException);
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/ClientRect.idl b/elemental/idl/third_party/WebCore/dom/ClientRect.idl
new file mode 100644
index 0000000..7dbdd68
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/ClientRect.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ *
+ */
+
+module view {
+
+ interface ClientRect {
+ readonly attribute float top;
+ readonly attribute float right;
+ readonly attribute float bottom;
+ readonly attribute float left;
+ readonly attribute float width;
+ readonly attribute float height;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/ClientRectList.idl b/elemental/idl/third_party/WebCore/dom/ClientRectList.idl
new file mode 100644
index 0000000..02f055e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/ClientRectList.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ *
+ */
+
+module view {
+
+ interface [
+ IndexedGetter
+ ] ClientRectList {
+ readonly attribute unsigned long length;
+ ClientRect item(in [IsIndex,Optional=DefaultIsUndefined] unsigned long index);
+ // FIXME: Fix list behavior to allow custom exceptions to be thrown.
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Clipboard.idl b/elemental/idl/third_party/WebCore/dom/Clipboard.idl
new file mode 100644
index 0000000..c94621b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Clipboard.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module core {
+
+ interface Clipboard {
+ attribute [TreatReturnedNullStringAs=Undefined] DOMString dropEffect;
+ attribute [TreatReturnedNullStringAs=Undefined] DOMString effectAllowed;
+ readonly attribute [CustomGetter] Array types;
+ readonly attribute FileList files;
+
+ [Custom] void clearData(in [Optional] DOMString type)
+ raises(DOMException);
+ DOMString getData(in DOMString type);
+ boolean setData(in DOMString type, in DOMString data);
+ [Custom] void setDragImage(in HTMLImageElement image, in long x, in long y)
+ raises(DOMException);
+
+ readonly attribute [Conditional=DATA_TRANSFER_ITEMS, V8EnabledAtRuntime=DataTransferItems] DataTransferItemList items;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Comment.idl b/elemental/idl/third_party/WebCore/dom/Comment.idl
new file mode 100644
index 0000000..b9f4e31
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Comment.idl
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface Comment : CharacterData {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/CompositionEvent.idl b/elemental/idl/third_party/WebCore/dom/CompositionEvent.idl
new file mode 100644
index 0000000..f66ed5a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/CompositionEvent.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module events {
+
+ // Introduced in DOM Level 3:
+ interface CompositionEvent : UIEvent {
+
+ readonly attribute DOMString data;
+
+ void initCompositionEvent(in [Optional=DefaultIsUndefined] DOMString typeArg,
+ in [Optional=DefaultIsUndefined] boolean canBubbleArg,
+ in [Optional=DefaultIsUndefined] boolean cancelableArg,
+ in [Optional=DefaultIsUndefined] DOMWindow viewArg,
+ in [Optional=DefaultIsUndefined] DOMString dataArg);
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/CustomEvent.idl b/elemental/idl/third_party/WebCore/dom/CustomEvent.idl
new file mode 100644
index 0000000..9158d58
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/CustomEvent.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * 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.
+ */
+
+module events {
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ // Introduced in DOM Level 3:
+ interface [
+ ConstructorTemplate=Event
+ ] CustomEvent : Event {
+ readonly attribute [InitializedByEventConstructor] DOMObject detail;
+
+ void initCustomEvent(in [Optional=DefaultIsUndefined] DOMString typeArg,
+ in [Optional=DefaultIsUndefined] boolean canBubbleArg,
+ in [Optional=DefaultIsUndefined] boolean cancelableArg,
+ in [Optional=DefaultIsUndefined] DOMObject detailArg);
+ };
+#endif
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DOMCoreException.idl b/elemental/idl/third_party/WebCore/dom/DOMCoreException.idl
new file mode 100644
index 0000000..387bb6b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DOMCoreException.idl
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module core {
+
+ exception [
+ JSNoStaticTables,
+ DoNotCheckConstants,
+ InterfaceName=DOMException
+ ] DOMCoreException {
+
+ readonly attribute unsigned short code;
+ readonly attribute DOMString name;
+ readonly attribute DOMString message;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // Override in a Mozilla compatible format
+ [NotEnumerable] DOMString toString();
+#endif
+
+ // ExceptionCode
+ const unsigned short INDEX_SIZE_ERR = 1;
+ const unsigned short DOMSTRING_SIZE_ERR = 2;
+ const unsigned short HIERARCHY_REQUEST_ERR = 3;
+ const unsigned short WRONG_DOCUMENT_ERR = 4;
+ const unsigned short INVALID_CHARACTER_ERR = 5;
+ const unsigned short NO_DATA_ALLOWED_ERR = 6;
+ const unsigned short NO_MODIFICATION_ALLOWED_ERR = 7;
+ const unsigned short NOT_FOUND_ERR = 8;
+ const unsigned short NOT_SUPPORTED_ERR = 9;
+ const unsigned short INUSE_ATTRIBUTE_ERR = 10;
+ // Introduced in DOM Level 2:
+ const unsigned short INVALID_STATE_ERR = 11;
+ // Introduced in DOM Level 2:
+ const unsigned short SYNTAX_ERR = 12;
+ // Introduced in DOM Level 2:
+ const unsigned short INVALID_MODIFICATION_ERR = 13;
+ // Introduced in DOM Level 2:
+ const unsigned short NAMESPACE_ERR = 14;
+ // Introduced in DOM Level 2:
+ const unsigned short INVALID_ACCESS_ERR = 15;
+ // Introduced in DOM Level 3:
+ const unsigned short VALIDATION_ERR = 16;
+ // Introduced in DOM Level 3:
+ const unsigned short TYPE_MISMATCH_ERR = 17;
+ // Introduced as an XHR extension:
+ const unsigned short SECURITY_ERR = 18;
+ // Introduced in HTML5:
+ const unsigned short NETWORK_ERR = 19;
+ const unsigned short ABORT_ERR = 20;
+ const unsigned short URL_MISMATCH_ERR = 21;
+ const unsigned short QUOTA_EXCEEDED_ERR = 22;
+ // TIMEOUT_ERR is currently unused but was added for completeness.
+ const unsigned short TIMEOUT_ERR = 23;
+ // INVALID_NODE_TYPE_ERR is currently unused but was added for completeness.
+ const unsigned short INVALID_NODE_TYPE_ERR = 24;
+ const unsigned short DATA_CLONE_ERR = 25;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DOMError.idl b/elemental/idl/third_party/WebCore/dom/DOMError.idl
new file mode 100644
index 0000000..ee059d4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DOMError.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module core {
+ interface [
+ ] DOMError {
+ readonly attribute DOMString name;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DOMImplementation.idl b/elemental/idl/third_party/WebCore/dom/DOMImplementation.idl
new file mode 100644
index 0000000..cd57099
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DOMImplementation.idl
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface [
+ JSGenerateIsReachable=ImplDocument,
+ V8DependentLifetime
+ ] DOMImplementation {
+
+ // DOM Level 1
+
+ [ObjCLegacyUnnamedParameters] boolean hasFeature(in [Optional=DefaultIsUndefined] DOMString feature,
+ in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString version);
+
+ // DOM Level 2
+
+ [ObjCLegacyUnnamedParameters] DocumentType createDocumentType(in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName,
+ in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString publicId,
+ in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString systemId)
+ raises(DOMException);
+ [ObjCLegacyUnnamedParameters] Document createDocument(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName,
+ in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DocumentType doctype)
+ raises(DOMException);
+
+ // DOMImplementationCSS interface from DOM Level 2 CSS
+
+ [ObjCLegacyUnnamedParameters] CSSStyleSheet createCSSStyleSheet(in [Optional=DefaultIsUndefined] DOMString title,
+ in [Optional=DefaultIsUndefined] DOMString media)
+ raises(DOMException);
+
+ // HTMLDOMImplementation interface from DOM Level 2 HTML
+
+ HTMLDocument createHTMLDocument(in [Optional=DefaultIsUndefined] DOMString title);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DOMStringList.idl b/elemental/idl/third_party/WebCore/dom/DOMStringList.idl
new file mode 100644
index 0000000..8f059ae
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DOMStringList.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2010 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 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 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.
+ */
+
+module core {
+
+ interface [
+ IndexedGetter
+ ] DOMStringList {
+ readonly attribute unsigned long length;
+ [TreatReturnedNullStringAs=Null] DOMString item(in [IsIndex,Optional=DefaultIsUndefined] unsigned long index);
+ boolean contains(in [Optional=DefaultIsUndefined] DOMString string);
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/dom/DOMStringMap.idl b/elemental/idl/third_party/WebCore/dom/DOMStringMap.idl
new file mode 100644
index 0000000..980d044
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DOMStringMap.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 Apple 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+
+ interface [
+ JSGenerateIsReachable=ImplElementRoot,
+ NamedGetter,
+ CustomDeleteProperty,
+ CustomEnumerateProperty,
+ CustomNamedSetter,
+ V8CustomToJSObject
+ ] DOMStringMap {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DataTransferItem.idl b/elemental/idl/third_party/WebCore/dom/DataTransferItem.idl
new file mode 100644
index 0000000..0dad338
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DataTransferItem.idl
@@ -0,0 +1,43 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+
+ interface [
+ Conditional=DATA_TRANSFER_ITEMS,
+ ] DataTransferItem {
+ readonly attribute DOMString kind;
+ readonly attribute DOMString type;
+
+ void getAsString(in [Callback,Optional=DefaultIsUndefined] StringCallback callback);
+ Blob getAsFile();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DataTransferItemList.idl b/elemental/idl/third_party/WebCore/dom/DataTransferItemList.idl
new file mode 100644
index 0000000..d1de50e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DataTransferItemList.idl
@@ -0,0 +1,50 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+
+ interface [
+ Conditional=DATA_TRANSFER_ITEMS,
+ IndexedGetter,
+ JSGenerateToNativeObject,
+#if defined(V8_BINDING) && V8_BINDING
+ CustomDeleteProperty,
+#endif
+ ] DataTransferItemList {
+ readonly attribute long length;
+ DataTransferItem item(in [Optional=DefaultIsUndefined] unsigned long index);
+
+ void clear();
+ void add(in File file);
+ void add(in [Optional=DefaultIsUndefined] DOMString data,
+ in [Optional=DefaultIsUndefined] DOMString type) raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DeviceMotionEvent.idl b/elemental/idl/third_party/WebCore/dom/DeviceMotionEvent.idl
new file mode 100644
index 0000000..bb55f7c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DeviceMotionEvent.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2010 Apple 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=DEVICE_ORIENTATION,
+ ] DeviceMotionEvent : Event {
+ readonly attribute [Custom] Acceleration acceleration;
+ readonly attribute [Custom] Acceleration accelerationIncludingGravity;
+ readonly attribute [Custom] RotationRate rotationRate;
+ readonly attribute [Custom] double interval;
+ [Custom] void initDeviceMotionEvent(in [Optional=DefaultIsUndefined] DOMString type,
+ in [Optional=DefaultIsUndefined] boolean bubbles,
+ in [Optional=DefaultIsUndefined] boolean cancelable,
+ in [Optional=DefaultIsUndefined] Acceleration acceleration,
+ in [Optional=DefaultIsUndefined] Acceleration accelerationIncludingGravity,
+ in [Optional=DefaultIsUndefined] RotationRate rotationRate,
+ in [Optional=DefaultIsUndefined] double interval);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DeviceOrientationEvent.idl b/elemental/idl/third_party/WebCore/dom/DeviceOrientationEvent.idl
new file mode 100644
index 0000000..aed38ff
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DeviceOrientationEvent.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2010, The Android Open Source Project
+ *
+ * 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=DEVICE_ORIENTATION,
+ ] DeviceOrientationEvent : Event {
+ readonly attribute [Custom] double alpha;
+ readonly attribute [Custom] double beta;
+ readonly attribute [Custom] double gamma;
+ readonly attribute [Custom] boolean absolute;
+ [Custom] void initDeviceOrientationEvent(in [Optional=DefaultIsUndefined] DOMString type,
+ in [Optional=DefaultIsUndefined] boolean bubbles,
+ in [Optional=DefaultIsUndefined] boolean cancelable,
+ in [Optional=DefaultIsUndefined] double alpha,
+ in [Optional=DefaultIsUndefined] double beta,
+ in [Optional=DefaultIsUndefined] double gamma,
+ in [Optional=DefaultIsUndefined] boolean absolute);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Document.idl b/elemental/idl/third_party/WebCore/dom/Document.idl
new file mode 100644
index 0000000..b922ca6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Document.idl
@@ -0,0 +1,363 @@
+/*
+ * Copyright (C) 2006, 2007, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007 Samuel Weinig <sam@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface [
+ CustomToJSObject,
+ JSGenerateToNativeObject,
+ JSInlineGetOwnPropertySlot
+ ] Document : Node {
+
+ // DOM Level 1 Core
+ readonly attribute DocumentType doctype;
+ readonly attribute DOMImplementation implementation;
+ readonly attribute Element documentElement;
+
+ [ReturnNewObject] Element createElement(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString tagName)
+ raises (DOMException);
+ DocumentFragment createDocumentFragment();
+ [ReturnNewObject] Text createTextNode(in [Optional=DefaultIsUndefined] DOMString data);
+ [ReturnNewObject] Comment createComment(in [Optional=DefaultIsUndefined] DOMString data);
+ [ReturnNewObject] CDATASection createCDATASection(in [Optional=DefaultIsUndefined] DOMString data)
+ raises(DOMException);
+ [ObjCLegacyUnnamedParameters, ReturnNewObject] ProcessingInstruction createProcessingInstruction(in [Optional=DefaultIsUndefined] DOMString target,
+ in [Optional=DefaultIsUndefined] DOMString data)
+ raises (DOMException);
+ [ReturnNewObject] Attr createAttribute(in [Optional=DefaultIsUndefined] DOMString name)
+ raises (DOMException);
+ [ReturnNewObject] EntityReference createEntityReference(in [Optional=DefaultIsUndefined] DOMString name)
+ raises(DOMException);
+ NodeList getElementsByTagName(in [Optional=DefaultIsUndefined] DOMString tagname);
+
+ // Introduced in DOM Level 2:
+
+ [ObjCLegacyUnnamedParameters, ReturnNewObject] Node importNode(in [Optional=DefaultIsUndefined] Node importedNode,
+ in [Optional] boolean deep)
+ raises (DOMException);
+ [ObjCLegacyUnnamedParameters, ReturnNewObject] Element createElementNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName)
+ raises (DOMException);
+ [ObjCLegacyUnnamedParameters, ReturnNewObject] Attr createAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString qualifiedName)
+ raises (DOMException);
+ [ObjCLegacyUnnamedParameters] NodeList getElementsByTagNameNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [Optional=DefaultIsUndefined] DOMString localName);
+ Element getElementById(in [Optional=DefaultIsUndefined] DOMString elementId);
+
+ // DOM Level 3 Core
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString inputEncoding;
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString xmlEncoding;
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString xmlVersion
+ setter raises (DOMException);
+ attribute boolean xmlStandalone
+ setter raises (DOMException);
+
+ Node adoptNode(in [Optional=DefaultIsUndefined] Node source)
+ raises (DOMException);
+
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString documentURI;
+
+ // DOM Level 2 Events (DocumentEvents interface)
+
+ Event createEvent(in [Optional=DefaultIsUndefined] DOMString eventType)
+ raises(DOMException);
+
+ // DOM Level 2 Tranversal and Range (DocumentRange interface)
+
+ Range createRange();
+
+ // DOM Level 2 Tranversal and Range (DocumentTraversal interface)
+
+ [ObjCLegacyUnnamedParameters] NodeIterator createNodeIterator(in [Optional=DefaultIsUndefined] Node root,
+ in [Optional=DefaultIsUndefined] unsigned long whatToShow,
+ in [Optional=DefaultIsUndefined] NodeFilter filter,
+ in [Optional=DefaultIsUndefined] boolean expandEntityReferences)
+ raises(DOMException);
+ [ObjCLegacyUnnamedParameters] TreeWalker createTreeWalker(in [Optional=DefaultIsUndefined] Node root,
+ in [Optional=DefaultIsUndefined] unsigned long whatToShow,
+ in [Optional=DefaultIsUndefined] NodeFilter filter,
+ in [Optional=DefaultIsUndefined] boolean expandEntityReferences)
+ raises(DOMException);
+
+ // DOM Level 2 Abstract Views (DocumentView interface)
+
+ readonly attribute DOMWindow defaultView;
+
+ // DOM Level 2 Style (DocumentStyle interface)
+
+ readonly attribute StyleSheetList styleSheets;
+
+ // DOM Level 2 Style (DocumentCSS interface)
+
+ [ObjCLegacyUnnamedParameters] CSSStyleDeclaration getOverrideStyle(in [Optional=DefaultIsUndefined] Element element,
+ in [Optional=DefaultIsUndefined] DOMString pseudoElement);
+
+ // DOM Level 3 XPath (XPathEvaluator interface)
+ [ObjCLegacyUnnamedParameters] XPathExpression createExpression(in [Optional=DefaultIsUndefined] DOMString expression,
+ in [Optional=DefaultIsUndefined] XPathNSResolver resolver)
+ raises(DOMException);
+ XPathNSResolver createNSResolver(in Node nodeResolver);
+ [ObjCLegacyUnnamedParameters, V8Custom] XPathResult evaluate(in [Optional=DefaultIsUndefined] DOMString expression,
+ in [Optional=DefaultIsUndefined] Node contextNode,
+ in [Optional=DefaultIsUndefined] XPathNSResolver resolver,
+ in [Optional=DefaultIsUndefined] unsigned short type,
+ in [Optional=DefaultIsUndefined] XPathResult inResult)
+ raises(DOMException);
+
+ // Common extensions
+
+ boolean execCommand(in [Optional=DefaultIsUndefined] DOMString command,
+ in [Optional=DefaultIsUndefined] boolean userInterface,
+ in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString value);
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // FIXME: remove the these two versions once [Optional] is implemented for Objective-C.
+ boolean execCommand(in DOMString command,
+ in boolean userInterface);
+ boolean execCommand(in DOMString command);
+#endif
+
+ boolean queryCommandEnabled(in [Optional=DefaultIsUndefined] DOMString command);
+ boolean queryCommandIndeterm(in [Optional=DefaultIsUndefined] DOMString command);
+ boolean queryCommandState(in [Optional=DefaultIsUndefined] DOMString command);
+ boolean queryCommandSupported(in [Optional=DefaultIsUndefined] DOMString command);
+ DOMString queryCommandValue(in [Optional=DefaultIsUndefined] DOMString command);
+
+ // Moved down from HTMLDocument
+
+ attribute [TreatNullAs=NullString] DOMString title;
+ readonly attribute DOMString referrer;
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ attribute [TreatNullAs=NullString] DOMString domain
+ setter raises (DOMException);
+#else
+ readonly attribute DOMString domain;
+#endif
+ readonly attribute DOMString URL;
+
+ attribute [TreatNullAs=NullString] DOMString cookie
+ setter raises (DOMException),
+ getter raises (DOMException);
+
+ // FIXME: the DOM spec does NOT have this attribute
+ // raising an exception.
+ attribute HTMLElement body
+ setter raises (DOMException);
+
+ readonly attribute HTMLHeadElement head;
+ readonly attribute HTMLCollection images;
+ readonly attribute HTMLCollection applets;
+ readonly attribute HTMLCollection links;
+ readonly attribute HTMLCollection forms;
+ readonly attribute HTMLCollection anchors;
+ readonly attribute DOMString lastModified;
+
+ NodeList getElementsByName(in [Optional=DefaultIsUndefined] DOMString elementName);
+
+#if defined(ENABLE_MICRODATA) && ENABLE_MICRODATA
+ NodeList getItems(in [TreatNullAs=NullString, TreatUndefinedAs=NullString, Optional=DefaultIsUndefined] DOMString typeNames);
+#endif
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ attribute [Custom] Location location;
+#endif
+
+ // IE extensions
+
+ attribute [TreatReturnedNullStringAs=Undefined, TreatNullAs=NullString] DOMString charset;
+ readonly attribute [TreatReturnedNullStringAs=Undefined] DOMString defaultCharset;
+ readonly attribute [TreatReturnedNullStringAs=Undefined] DOMString readyState;
+
+ Element elementFromPoint(in [Optional=DefaultIsUndefined] long x,
+ in [Optional=DefaultIsUndefined] long y);
+ Range caretRangeFromPoint(in [Optional=DefaultIsUndefined] long x,
+ in [Optional=DefaultIsUndefined] long y);
+
+ // Mozilla extensions
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ DOMSelection getSelection();
+#endif
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString characterSet;
+
+ // WebKit extensions
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString preferredStylesheetSet;
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString selectedStylesheetSet;
+
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
+ CSSStyleDeclaration createCSSStyleDeclaration();
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // DOM Level 2 Style Interface
+ [ObjCLegacyUnnamedParameters, ObjCUseDefaultView] CSSStyleDeclaration getComputedStyle(in Element element,
+ in DOMString pseudoElement);
+
+ // WebKit extension
+ // FIXME: remove the first version once [Optional] is implemented for Objective-C.
+ [ObjCUseDefaultView] CSSRuleList getMatchedCSSRules(in Element element,
+ in DOMString pseudoElement);
+ [ObjCUseDefaultView] CSSRuleList getMatchedCSSRules(in Element element,
+ in DOMString pseudoElement,
+ in [Optional] boolean authorOnly);
+
+#endif
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ [V8Custom] DOMObject getCSSCanvasContext(in DOMString contextId, in DOMString name, in long width, in long height);
+#endif
+#endif
+
+ // HTML 5
+ NodeList getElementsByClassName(in [Optional=DefaultIsUndefined] DOMString tagname);
+
+ readonly attribute DOMString compatMode;
+
+ // NodeSelector - Selector API
+ Element querySelector(in DOMString selectors)
+ raises(DOMException);
+ NodeList querySelectorAll(in DOMString selectors)
+ raises(DOMException);
+
+#if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
+ // Mozilla version
+ readonly attribute [V8EnabledAtRuntime] boolean webkitIsFullScreen;
+ readonly attribute [V8EnabledAtRuntime] boolean webkitFullScreenKeyboardInputAllowed;
+ readonly attribute [V8EnabledAtRuntime] Element webkitCurrentFullScreenElement;
+ [V8EnabledAtRuntime] void webkitCancelFullScreen();
+
+ // W3C version
+ readonly attribute [V8EnabledAtRuntime] boolean webkitFullscreenEnabled;
+ readonly attribute [V8EnabledAtRuntime] Element webkitFullscreenElement;
+ [V8EnabledAtRuntime] void webkitExitFullscreen();
+#endif
+
+#if defined(ENABLE_CSS_REGIONS) && ENABLE_CSS_REGIONS
+ WebKitNamedFlow webkitGetFlowByName(in DOMString name);
+#endif
+
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ // Event handler DOM attributes
+ attribute [NotEnumerable] EventListener onabort;
+ attribute [NotEnumerable] EventListener onblur;
+ attribute [NotEnumerable] EventListener onchange;
+ attribute [NotEnumerable] EventListener onclick;
+ attribute [NotEnumerable] EventListener oncontextmenu;
+ attribute [NotEnumerable] EventListener ondblclick;
+ attribute [NotEnumerable] EventListener ondrag;
+ attribute [NotEnumerable] EventListener ondragend;
+ attribute [NotEnumerable] EventListener ondragenter;
+ attribute [NotEnumerable] EventListener ondragleave;
+ attribute [NotEnumerable] EventListener ondragover;
+ attribute [NotEnumerable] EventListener ondragstart;
+ attribute [NotEnumerable] EventListener ondrop;
+ attribute [NotEnumerable] EventListener onerror;
+ attribute [NotEnumerable] EventListener onfocus;
+ attribute [NotEnumerable] EventListener oninput;
+ attribute [NotEnumerable] EventListener oninvalid;
+ attribute [NotEnumerable] EventListener onkeydown;
+ attribute [NotEnumerable] EventListener onkeypress;
+ attribute [NotEnumerable] EventListener onkeyup;
+ attribute [NotEnumerable] EventListener onload;
+ attribute [NotEnumerable] EventListener onmousedown;
+ attribute [NotEnumerable] EventListener onmousemove;
+ attribute [NotEnumerable] EventListener onmouseout;
+ attribute [NotEnumerable] EventListener onmouseover;
+ attribute [NotEnumerable] EventListener onmouseup;
+ attribute [NotEnumerable] EventListener onmousewheel;
+ attribute [NotEnumerable] EventListener onreadystatechange;
+ attribute [NotEnumerable] EventListener onscroll;
+ attribute [NotEnumerable] EventListener onselect;
+ attribute [NotEnumerable] EventListener onsubmit;
+
+ // attribute [NotEnumerable] EventListener oncanplay;
+ // attribute [NotEnumerable] EventListener oncanplaythrough;
+ // attribute [NotEnumerable] EventListener ondurationchange;
+ // attribute [NotEnumerable] EventListener onemptied;
+ // attribute [NotEnumerable] EventListener onended;
+ // attribute [NotEnumerable] EventListener onloadeddata;
+ // attribute [NotEnumerable] EventListener onloadedmetadata;
+ // attribute [NotEnumerable] EventListener onloadstart;
+ // attribute [NotEnumerable] EventListener onpause;
+ // attribute [NotEnumerable] EventListener onplay;
+ // attribute [NotEnumerable] EventListener onplaying;
+ // attribute [NotEnumerable] EventListener onprogress;
+ // attribute [NotEnumerable] EventListener onratechange;
+ // attribute [NotEnumerable] EventListener onseeked;
+ // attribute [NotEnumerable] EventListener onseeking;
+ // attribute [NotEnumerable] EventListener onshow;
+ // attribute [NotEnumerable] EventListener onstalled;
+ // attribute [NotEnumerable] EventListener onsuspend;
+ // attribute [NotEnumerable] EventListener ontimeupdate;
+ // attribute [NotEnumerable] EventListener onvolumechange;
+ // attribute [NotEnumerable] EventListener onwaiting;
+
+ // WebKit extensions
+ attribute [NotEnumerable] EventListener onbeforecut;
+ attribute [NotEnumerable] EventListener oncut;
+ attribute [NotEnumerable] EventListener onbeforecopy;
+ attribute [NotEnumerable] EventListener oncopy;
+ attribute [NotEnumerable] EventListener onbeforepaste;
+ attribute [NotEnumerable] EventListener onpaste;
+ attribute [NotEnumerable] EventListener onreset;
+ attribute [NotEnumerable] EventListener onsearch;
+ attribute [NotEnumerable] EventListener onselectstart;
+ attribute [NotEnumerable] EventListener onselectionchange;
+ attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchstart;
+ attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchmove;
+ attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchend;
+ attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchcancel;
+ attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenchange;
+ attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenerror;
+#endif
+
+#if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS
+ [ReturnNewObject, V8EnabledAtRuntime] Touch createTouch(in [Optional=DefaultIsUndefined] DOMWindow window,
+ in [Optional=DefaultIsUndefined] EventTarget target,
+ in [Optional=DefaultIsUndefined] long identifier,
+ in [Optional=DefaultIsUndefined] long pageX,
+ in [Optional=DefaultIsUndefined] long pageY,
+ in [Optional=DefaultIsUndefined] long screenX,
+ in [Optional=DefaultIsUndefined] long screenY,
+ in [Optional=DefaultIsUndefined] long webkitRadiusX,
+ in [Optional=DefaultIsUndefined] long webkitRadiusY,
+ in [Optional=DefaultIsUndefined] float webkitRotationAngle,
+ in [Optional=DefaultIsUndefined] float webkitForce)
+ raises (DOMException);
+ [ReturnNewObject, V8EnabledAtRuntime, Custom] TouchList createTouchList()
+ raises (DOMException);
+#endif
+
+#if defined(LANGUAGE_CPP) && LANGUAGE_CPP
+ // Extra WebCore methods exposed to allow compile-time casting in C++
+ boolean isHTMLDocument();
+#endif
+
+ // Page visibility API.
+ readonly attribute [Conditional=PAGE_VISIBILITY_API] DOMString webkitVisibilityState;
+ readonly attribute [Conditional=PAGE_VISIBILITY_API] boolean webkitHidden;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DocumentFragment.idl b/elemental/idl/third_party/WebCore/dom/DocumentFragment.idl
new file mode 100644
index 0000000..882b62d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DocumentFragment.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface DocumentFragment : Node {
+ // NodeSelector - Selector API
+ Element querySelector(in DOMString selectors)
+ raises(DOMException);
+ NodeList querySelectorAll(in DOMString selectors)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/DocumentType.idl b/elemental/idl/third_party/WebCore/dom/DocumentType.idl
new file mode 100644
index 0000000..7290232
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/DocumentType.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface [
+ JSGenerateToNativeObject
+ ] DocumentType : Node {
+
+ // DOM Level 1
+
+ readonly attribute DOMString name;
+ readonly attribute NamedNodeMap entities;
+ readonly attribute NamedNodeMap notations;
+
+ // DOM Level 2
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString publicId;
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString systemId;
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString internalSubset;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Element.idl b/elemental/idl/third_party/WebCore/dom/Element.idl
new file mode 100644
index 0000000..955bd47
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Element.idl
@@ -0,0 +1,218 @@
+/*
+ * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface [
+ JSGenerateToNativeObject,
+ JSInlineGetOwnPropertySlot
+ ] Element : Node {
+
+ // DOM Level 1 Core
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString tagName;
+
+ [TreatReturnedNullStringAs=Null] DOMString getAttribute(in [Optional=DefaultIsUndefined] DOMString name);
+ [ObjCLegacyUnnamedParameters] void setAttribute(in [Optional=DefaultIsUndefined] DOMString name,
+ in [Optional=DefaultIsUndefined] DOMString value)
+ raises(DOMException);
+ void removeAttribute(in [Optional=DefaultIsUndefined] DOMString name);
+ Attr getAttributeNode(in [Optional=DefaultIsUndefined] DOMString name);
+ Attr setAttributeNode(in [Optional=DefaultIsUndefined] Attr newAttr)
+ raises(DOMException);
+ Attr removeAttributeNode(in [Optional=DefaultIsUndefined] Attr oldAttr)
+ raises(DOMException);
+ NodeList getElementsByTagName(in [Optional=DefaultIsUndefined] DOMString name);
+
+ // DOM Level 2 Core
+
+ [ObjCLegacyUnnamedParameters] DOMString getAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [Optional=DefaultIsUndefined] DOMString localName);
+ [ObjCLegacyUnnamedParameters] void setAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [Optional=DefaultIsUndefined] DOMString qualifiedName,
+ in [Optional=DefaultIsUndefined] DOMString value)
+ raises(DOMException);
+ [ObjCLegacyUnnamedParameters] void removeAttributeNS(in [TreatNullAs=NullString] DOMString namespaceURI,
+ in DOMString localName);
+ [ObjCLegacyUnnamedParameters] NodeList getElementsByTagNameNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [Optional=DefaultIsUndefined] DOMString localName);
+ [ObjCLegacyUnnamedParameters] Attr getAttributeNodeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [Optional=DefaultIsUndefined] DOMString localName);
+ Attr setAttributeNodeNS(in [Optional=DefaultIsUndefined] Attr newAttr)
+ raises(DOMException);
+ boolean hasAttribute(in DOMString name);
+ [ObjCLegacyUnnamedParameters] boolean hasAttributeNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [Optional=DefaultIsUndefined] DOMString localName);
+
+ readonly attribute CSSStyleDeclaration style;
+
+ // Common extensions
+
+ readonly attribute long offsetLeft;
+ readonly attribute long offsetTop;
+ readonly attribute long offsetWidth;
+ readonly attribute long offsetHeight;
+ readonly attribute Element offsetParent;
+ readonly attribute long clientLeft;
+ readonly attribute long clientTop;
+ readonly attribute long clientWidth;
+ readonly attribute long clientHeight;
+ attribute long scrollLeft;
+ attribute long scrollTop;
+ readonly attribute long scrollWidth;
+ readonly attribute long scrollHeight;
+
+ void focus();
+ void blur();
+ void scrollIntoView(in [Optional] boolean alignWithTop);
+
+ // WebKit extensions
+
+ void scrollIntoViewIfNeeded(in [Optional] boolean centerIfNeeded);
+ void scrollByLines(in [Optional=DefaultIsUndefined] long lines);
+ void scrollByPages(in [Optional=DefaultIsUndefined] long pages);
+
+#if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API
+ WebKitAnimationList webkitGetAnimations();
+#endif
+
+ // HTML 5
+ NodeList getElementsByClassName(in [Optional=DefaultIsUndefined] DOMString name);
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ readonly attribute DOMStringMap dataset;
+#endif
+
+ // NodeSelector - Selector API
+ Element querySelector(in DOMString selectors)
+ raises(DOMException);
+ NodeList querySelectorAll(in DOMString selectors)
+ raises(DOMException);
+
+ // WebKit extension, pending specification.
+ boolean webkitMatchesSelector(in [Optional=DefaultIsUndefined] DOMString selectors)
+ raises(DOMException);
+
+ // ElementTraversal API
+ readonly attribute Element firstElementChild;
+ readonly attribute Element lastElementChild;
+ readonly attribute Element previousElementSibling;
+ readonly attribute Element nextElementSibling;
+ readonly attribute unsigned long childElementCount;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // CSSOM View Module API
+ ClientRectList getClientRects();
+ ClientRect getBoundingClientRect();
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // Objective-C extensions
+ readonly attribute DOMString innerText;
+#endif
+
+#if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
+ // Mozilla version
+ const unsigned short ALLOW_KEYBOARD_INPUT = 1;
+ [V8EnabledAtRuntime] void webkitRequestFullScreen(in [Optional=DefaultIsUndefined] unsigned short flags);
+
+ // W3C version
+ [V8EnabledAtRuntime] void webkitRequestFullscreen();
+#endif
+
+ // CSS Regions API
+ readonly attribute DOMString webkitRegionOverflow;
+
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ // Event handler DOM attributes
+ attribute [NotEnumerable] EventListener onabort;
+ attribute [NotEnumerable] EventListener onblur;
+ attribute [NotEnumerable] EventListener onchange;
+ attribute [NotEnumerable] EventListener onclick;
+ attribute [NotEnumerable] EventListener oncontextmenu;
+ attribute [NotEnumerable] EventListener ondblclick;
+ attribute [NotEnumerable] EventListener ondrag;
+ attribute [NotEnumerable] EventListener ondragend;
+ attribute [NotEnumerable] EventListener ondragenter;
+ attribute [NotEnumerable] EventListener ondragleave;
+ attribute [NotEnumerable] EventListener ondragover;
+ attribute [NotEnumerable] EventListener ondragstart;
+ attribute [NotEnumerable] EventListener ondrop;
+ attribute [NotEnumerable] EventListener onerror;
+ attribute [NotEnumerable] EventListener onfocus;
+ attribute [NotEnumerable] EventListener oninput;
+ attribute [NotEnumerable] EventListener oninvalid;
+ attribute [NotEnumerable] EventListener onkeydown;
+ attribute [NotEnumerable] EventListener onkeypress;
+ attribute [NotEnumerable] EventListener onkeyup;
+ attribute [NotEnumerable] EventListener onload;
+ attribute [NotEnumerable] EventListener onmousedown;
+ attribute [NotEnumerable] EventListener onmousemove;
+ attribute [NotEnumerable] EventListener onmouseout;
+ attribute [NotEnumerable] EventListener onmouseover;
+ attribute [NotEnumerable] EventListener onmouseup;
+ attribute [NotEnumerable] EventListener onmousewheel;
+ attribute [NotEnumerable] EventListener onscroll;
+ attribute [NotEnumerable] EventListener onselect;
+ attribute [NotEnumerable] EventListener onsubmit;
+
+ // attribute [NotEnumerable] EventListener oncanplay;
+ // attribute [NotEnumerable] EventListener oncanplaythrough;
+ // attribute [NotEnumerable] EventListener ondurationchange;
+ // attribute [NotEnumerable] EventListener onemptied;
+ // attribute [NotEnumerable] EventListener onended;
+ // attribute [NotEnumerable] EventListener onloadeddata;
+ // attribute [NotEnumerable] EventListener onloadedmetadata;
+ // attribute [NotEnumerable] EventListener onloadstart;
+ // attribute [NotEnumerable] EventListener onpause;
+ // attribute [NotEnumerable] EventListener onplay;
+ // attribute [NotEnumerable] EventListener onplaying;
+ // attribute [NotEnumerable] EventListener onprogress;
+ // attribute [NotEnumerable] EventListener onratechange;
+ // attribute [NotEnumerable] EventListener onreadystatechange;
+ // attribute [NotEnumerable] EventListener onseeked;
+ // attribute [NotEnumerable] EventListener onseeking;
+ // attribute [NotEnumerable] EventListener onshow;
+ // attribute [NotEnumerable] EventListener onstalled;
+ // attribute [NotEnumerable] EventListener onsuspend;
+ // attribute [NotEnumerable] EventListener ontimeupdate;
+ // attribute [NotEnumerable] EventListener onvolumechange;
+ // attribute [NotEnumerable] EventListener onwaiting;
+
+ // WebKit extensions
+ attribute [NotEnumerable] EventListener onbeforecut;
+ attribute [NotEnumerable] EventListener oncut;
+ attribute [NotEnumerable] EventListener onbeforecopy;
+ attribute [NotEnumerable] EventListener oncopy;
+ attribute [NotEnumerable] EventListener onbeforepaste;
+ attribute [NotEnumerable] EventListener onpaste;
+ attribute [NotEnumerable] EventListener onreset;
+ attribute [NotEnumerable] EventListener onsearch;
+ attribute [NotEnumerable] EventListener onselectstart;
+ attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchstart;
+ attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchmove;
+ attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchend;
+ attribute [NotEnumerable,Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchcancel;
+ attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenchange;
+ attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenerror;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Entity.idl b/elemental/idl/third_party/WebCore/dom/Entity.idl
new file mode 100644
index 0000000..b9ec406
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Entity.idl
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface Entity : Node {
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString publicId;
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString systemId;
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString notationName;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/EntityReference.idl b/elemental/idl/third_party/WebCore/dom/EntityReference.idl
new file mode 100644
index 0000000..f652d9a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/EntityReference.idl
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface EntityReference : Node {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/ErrorEvent.idl b/elemental/idl/third_party/WebCore/dom/ErrorEvent.idl
new file mode 100644
index 0000000..2a0c2c5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/ErrorEvent.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2009 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module events {
+
+ interface [
+ JSNoStaticTables,
+ ConstructorTemplate=Event
+ ] ErrorEvent : Event {
+ readonly attribute [InitializedByEventConstructor] DOMString message;
+ readonly attribute [InitializedByEventConstructor] DOMString filename;
+ readonly attribute [InitializedByEventConstructor] unsigned long lineno;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Event.idl b/elemental/idl/third_party/WebCore/dom/Event.idl
new file mode 100644
index 0000000..ab039d0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Event.idl
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2006, 2007, 2009, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module events {
+
+ // Introduced in DOM Level 2:
+ interface [
+ CustomToJSObject,
+ ConstructorTemplate=Event,
+ JSNoStaticTables,
+ ObjCPolymorphic
+ ] Event {
+
+ // DOM PhaseType
+ const unsigned short NONE = 0;
+ const unsigned short CAPTURING_PHASE = 1;
+ const unsigned short AT_TARGET = 2;
+ const unsigned short BUBBLING_PHASE = 3;
+
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ // Reverse-engineered from Netscape
+ const unsigned short MOUSEDOWN = 1;
+ const unsigned short MOUSEUP = 2;
+ const unsigned short MOUSEOVER = 4;
+ const unsigned short MOUSEOUT = 8;
+ const unsigned short MOUSEMOVE = 16;
+ const unsigned short MOUSEDRAG = 32;
+ const unsigned short CLICK = 64;
+ const unsigned short DBLCLICK = 128;
+ const unsigned short KEYDOWN = 256;
+ const unsigned short KEYUP = 512;
+ const unsigned short KEYPRESS = 1024;
+ const unsigned short DRAGDROP = 2048;
+ const unsigned short FOCUS = 4096;
+ const unsigned short BLUR = 8192;
+ const unsigned short SELECT = 16384;
+ const unsigned short CHANGE = 32768;
+#endif
+
+ readonly attribute DOMString type;
+ readonly attribute EventTarget target;
+ readonly attribute EventTarget currentTarget;
+ readonly attribute unsigned short eventPhase;
+ readonly attribute [InitializedByEventConstructor] boolean bubbles;
+ readonly attribute [InitializedByEventConstructor] boolean cancelable;
+ readonly attribute DOMTimeStamp timeStamp;
+
+ void stopPropagation();
+ void preventDefault();
+ [ObjCLegacyUnnamedParameters] void initEvent(in [Optional=DefaultIsUndefined] DOMString eventTypeArg,
+ in [Optional=DefaultIsUndefined] boolean canBubbleArg,
+ in [Optional=DefaultIsUndefined] boolean cancelableArg);
+
+ // DOM Level 3 Additions.
+ readonly attribute boolean defaultPrevented;
+ void stopImmediatePropagation();
+
+ // IE Extensions
+ readonly attribute EventTarget srcElement;
+ attribute boolean returnValue;
+ attribute boolean cancelBubble;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ readonly attribute [Custom] Clipboard clipboardData;
+#endif
+
+#if defined(LANGUAGE_CPP) && LANGUAGE_CPP
+ // Extra WebCore methods exposed to allow compile-time casting in C++
+ boolean isMouseEvent();
+ boolean isUIEvent();
+#endif
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/EventException.idl b/elemental/idl/third_party/WebCore/dom/EventException.idl
new file mode 100644
index 0000000..9d105cb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/EventException.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module events {
+
+ // Introduced in DOM Level 2:
+ exception [
+ JSNoStaticTables,
+ DoNotCheckConstants
+ ] EventException {
+
+ readonly attribute unsigned short code;
+ readonly attribute DOMString name;
+ readonly attribute DOMString message;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // Override in a Mozilla compatible format
+ [NotEnumerable] DOMString toString();
+#endif
+
+ // EventExceptionCode
+ const unsigned short UNSPECIFIED_EVENT_TYPE_ERR = 0;
+ const unsigned short DISPATCH_REQUEST_ERR = 1;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/EventListener.idl b/elemental/idl/third_party/WebCore/dom/EventListener.idl
new file mode 100644
index 0000000..4e83b44
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/EventListener.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module events {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSNoStaticTables,
+ ObjCProtocol,
+ CPPPureInterface,
+ OmitConstructor
+ ] EventListener {
+ void handleEvent(in Event evt);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/EventTarget.idl b/elemental/idl/third_party/WebCore/dom/EventTarget.idl
new file mode 100644
index 0000000..f1b0ef0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/EventTarget.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module events {
+
+ // Introduced in DOM Level 2:
+ interface [
+ ObjCProtocol,
+ CPPPureInterface,
+ OmitConstructor
+ ] EventTarget {
+ [ObjCLegacyUnnamedParameters] void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ [ObjCLegacyUnnamedParameters] void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event event)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/HashChangeEvent.idl b/elemental/idl/third_party/WebCore/dom/HashChangeEvent.idl
new file mode 100644
index 0000000..6c80a95
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/HashChangeEvent.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module events {
+
+ // Introduced in http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#event-hashchange
+ interface [
+ ConstructorTemplate=Event
+ ] HashChangeEvent : Event {
+ void initHashChangeEvent(in [Optional=DefaultIsUndefined] DOMString type,
+ in [Optional=DefaultIsUndefined] boolean canBubble,
+ in [Optional=DefaultIsUndefined] boolean cancelable,
+ in [Optional=DefaultIsUndefined] DOMString oldURL,
+ in [Optional=DefaultIsUndefined] DOMString newURL);
+ readonly attribute [InitializedByEventConstructor] DOMString oldURL;
+ readonly attribute [InitializedByEventConstructor] DOMString newURL;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/KeyboardEvent.idl b/elemental/idl/third_party/WebCore/dom/KeyboardEvent.idl
new file mode 100644
index 0000000..2c2b7ba
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/KeyboardEvent.idl
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module events {
+
+ // Introduced in DOM Level 3:
+ interface KeyboardEvent : UIEvent {
+
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
+ // KeyLocationCode
+ const unsigned long KEY_LOCATION_STANDARD = 0x00;
+ const unsigned long KEY_LOCATION_LEFT = 0x01;
+ const unsigned long KEY_LOCATION_RIGHT = 0x02;
+ const unsigned long KEY_LOCATION_NUMPAD = 0x03;
+#endif
+
+ readonly attribute DOMString keyIdentifier;
+ readonly attribute unsigned long keyLocation;
+ readonly attribute boolean ctrlKey;
+ readonly attribute boolean shiftKey;
+ readonly attribute boolean altKey;
+ readonly attribute boolean metaKey;
+ readonly attribute boolean altGraphKey;
+
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
+ boolean getModifierState(in [Optional=DefaultIsUndefined] DOMString keyIdentifierArg);
+#endif
+
+ // FIXME: this does not match the version in the DOM spec.
+ void initKeyboardEvent(in [Optional=DefaultIsUndefined] DOMString type,
+ in [Optional=DefaultIsUndefined] boolean canBubble,
+ in [Optional=DefaultIsUndefined] boolean cancelable,
+ in [Optional=DefaultIsUndefined] DOMWindow view,
+ in [Optional=DefaultIsUndefined] DOMString keyIdentifier,
+ in [Optional=DefaultIsUndefined] unsigned long keyLocation,
+ in [Optional=DefaultIsUndefined] boolean ctrlKey,
+ in [Optional=DefaultIsUndefined] boolean altKey,
+ in [Optional=DefaultIsUndefined] boolean shiftKey,
+ in [Optional=DefaultIsUndefined] boolean metaKey,
+ in [Optional=DefaultIsUndefined] boolean altGraphKey);
+
+ // WebKit Extensions
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
+ readonly attribute long keyCode;
+ readonly attribute long charCode;
+
+ void initKeyboardEvent(in [Optional=DefaultIsUndefined] DOMString type,
+ in [Optional=DefaultIsUndefined] boolean canBubble,
+ in [Optional=DefaultIsUndefined] boolean cancelable,
+ in [Optional=DefaultIsUndefined] DOMWindow view,
+ in [Optional=DefaultIsUndefined] DOMString keyIdentifier,
+ in [Optional=DefaultIsUndefined] unsigned long keyLocation,
+ in [Optional=DefaultIsUndefined] boolean ctrlKey,
+ in [Optional=DefaultIsUndefined] boolean altKey,
+ in [Optional=DefaultIsUndefined] boolean shiftKey,
+ in [Optional=DefaultIsUndefined] boolean metaKey);
+#endif
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/MessageChannel.idl b/elemental/idl/third_party/WebCore/dom/MessageChannel.idl
new file mode 100644
index 0000000..d21eb11
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/MessageChannel.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2008, 2010 Apple 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.
+ *
+ */
+
+module events {
+
+ interface [
+ Constructor,
+ CallWith=ScriptExecutionContext,
+ V8CustomConstructor,
+ JSCustomMarkFunction,
+ JSNoStaticTables
+ ] MessageChannel {
+
+ readonly attribute MessagePort port1;
+ readonly attribute MessagePort port2;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/MessageEvent.idl b/elemental/idl/third_party/WebCore/dom/MessageEvent.idl
new file mode 100644
index 0000000..c8356ed
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/MessageEvent.idl
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2007 Henry Mason <hmason@mac.com>
+ * 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.
+ *
+ */
+
+module events {
+
+ interface [
+ JSNoStaticTables,
+ ConstructorTemplate=Event
+ ] MessageEvent : Event {
+ readonly attribute [InitializedByEventConstructor] DOMString origin;
+ readonly attribute [InitializedByEventConstructor] DOMString lastEventId;
+ readonly attribute [InitializedByEventConstructor] DOMWindow source;
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ readonly attribute [InitializedByEventConstructor, CachedAttribute, CustomGetter] DOMObject data;
+ readonly attribute [InitializedByEventConstructor, CustomGetter] Array ports;
+
+ [Custom] void initMessageEvent(in [Optional=DefaultIsUndefined] DOMString typeArg,
+ in [Optional=DefaultIsUndefined] boolean canBubbleArg,
+ in [Optional=DefaultIsUndefined] boolean cancelableArg,
+ in [Optional=DefaultIsUndefined] DOMObject dataArg,
+ in [Optional=DefaultIsUndefined] DOMString originArg,
+ in [Optional=DefaultIsUndefined] DOMString lastEventIdArg,
+ in [Optional=DefaultIsUndefined] DOMWindow sourceArg,
+ in [Optional=DefaultIsUndefined] Array messagePorts);
+
+ [Custom] void webkitInitMessageEvent(in [Optional=DefaultIsUndefined] DOMString typeArg,
+ in [Optional=DefaultIsUndefined] boolean canBubbleArg,
+ in [Optional=DefaultIsUndefined] boolean cancelableArg,
+ in [Optional=DefaultIsUndefined] DOMObject dataArg,
+ in [Optional=DefaultIsUndefined] DOMString originArg,
+ in [Optional=DefaultIsUndefined] DOMString lastEventIdArg,
+ in [Optional=DefaultIsUndefined] DOMWindow sourceArg,
+ in [Optional=DefaultIsUndefined] Array transferables);
+#else
+ // Code generator for ObjC bindings does not support custom bindings, thus there is no good way to
+ // return a variant value. As workaround, expose the data attribute as SerializedScriptValue.
+ readonly attribute SerializedScriptValue data;
+
+ // There's no good way to expose an array via the ObjC bindings, so for now just expose a single port.
+ readonly attribute MessagePort messagePort;
+
+ void initMessageEvent(in [Optional=DefaultIsUndefined] DOMString typeArg,
+ in [Optional=DefaultIsUndefined] boolean canBubbleArg,
+ in [Optional=DefaultIsUndefined] boolean cancelableArg,
+ in [Optional=DefaultIsUndefined] SerializedScriptValue dataArg,
+ in [Optional=DefaultIsUndefined] DOMString originArg,
+ in [Optional=DefaultIsUndefined] DOMString lastEventIdArg,
+ in [Optional=DefaultIsUndefined] DOMWindow sourceArg,
+ in [Optional=DefaultIsUndefined] MessagePort messagePort);
+#endif
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/MessagePort.idl b/elemental/idl/third_party/WebCore/dom/MessagePort.idl
new file mode 100644
index 0000000..f318f79
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/MessagePort.idl
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2008 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.
+ *
+ */
+
+module events {
+
+ interface [
+ JSCustomMarkFunction,
+ JSGenerateIsReachable=Impl,
+ ActiveDOMObject,
+ EventTarget,
+ JSNoStaticTables
+ ] MessagePort {
+// We need to have something as an ObjC binding, because MessagePort is used in MessageEvent, which already has one,
+// but we don't want to actually expose the API while it is in flux.
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [Custom] void postMessage(in DOMString message, in [Optional] Array messagePorts)
+ raises(DOMException);
+ [Custom] void webkitPostMessage(in DOMString message, in [Optional] Array transfer)
+ raises(DOMException);
+ void start();
+ void close();
+
+ // event handler attributes
+ attribute EventListener onmessage;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/MouseEvent.idl b/elemental/idl/third_party/WebCore/dom/MouseEvent.idl
new file mode 100644
index 0000000..48eff1e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/MouseEvent.idl
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module events {
+
+ // Introduced in DOM Level 2:
+ interface MouseEvent : UIEvent {
+ readonly attribute long screenX;
+ readonly attribute long screenY;
+ readonly attribute long clientX;
+ readonly attribute long clientY;
+ readonly attribute [Conditional=POINTER_LOCK, V8EnabledAtRuntime] long webkitMovementX;
+ readonly attribute [Conditional=POINTER_LOCK, V8EnabledAtRuntime] long webkitMovementY;
+ readonly attribute boolean ctrlKey;
+ readonly attribute boolean shiftKey;
+ readonly attribute boolean altKey;
+ readonly attribute boolean metaKey;
+ readonly attribute unsigned short button;
+ readonly attribute EventTarget relatedTarget;
+
+ [ObjCLegacyUnnamedParameters] void initMouseEvent(in [Optional=DefaultIsUndefined] DOMString type,
+ in [Optional=DefaultIsUndefined] boolean canBubble,
+ in [Optional=DefaultIsUndefined] boolean cancelable,
+ in [Optional=DefaultIsUndefined] DOMWindow view,
+ in [Optional=DefaultIsUndefined] long detail,
+ in [Optional=DefaultIsUndefined] long screenX,
+ in [Optional=DefaultIsUndefined] long screenY,
+ in [Optional=DefaultIsUndefined] long clientX,
+ in [Optional=DefaultIsUndefined] long clientY,
+ in [Optional=DefaultIsUndefined] boolean ctrlKey,
+ in [Optional=DefaultIsUndefined] boolean altKey,
+ in [Optional=DefaultIsUndefined] boolean shiftKey,
+ in [Optional=DefaultIsUndefined] boolean metaKey,
+ in [Optional=DefaultIsUndefined] unsigned short button,
+ in [Optional=DefaultIsUndefined] EventTarget relatedTarget);
+
+ // extensions
+ readonly attribute long offsetX;
+ readonly attribute long offsetY;
+ readonly attribute long x;
+ readonly attribute long y;
+ readonly attribute Node fromElement;
+ readonly attribute Node toElement;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ readonly attribute Clipboard dataTransfer;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/MutationCallback.idl b/elemental/idl/third_party/WebCore/dom/MutationCallback.idl
new file mode 100644
index 0000000..1638171
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/MutationCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+ interface [
+ Conditional=MUTATION_OBSERVERS,
+ Callback
+ ] MutationCallback {
+ [Custom] boolean handleEvent(in MutationRecordArray mutations, in WebKitMutationObserver observer);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/dom/MutationEvent.idl b/elemental/idl/third_party/WebCore/dom/MutationEvent.idl
new file mode 100644
index 0000000..2765dc9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/MutationEvent.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module events {
+
+ // Introduced in DOM Level 2:
+ interface MutationEvent : Event {
+
+ // attrChangeType
+ const unsigned short MODIFICATION = 1;
+ const unsigned short ADDITION = 2;
+ const unsigned short REMOVAL = 3;
+
+ readonly attribute Node relatedNode;
+ readonly attribute DOMString prevValue;
+ readonly attribute DOMString newValue;
+ readonly attribute DOMString attrName;
+ readonly attribute unsigned short attrChange;
+
+ [ObjCLegacyUnnamedParameters] void initMutationEvent(in [Optional=DefaultIsUndefined] DOMString type,
+ in [Optional=DefaultIsUndefined] boolean canBubble,
+ in [Optional=DefaultIsUndefined] boolean cancelable,
+ in [Optional=DefaultIsUndefined] Node relatedNode,
+ in [Optional=DefaultIsUndefined] DOMString prevValue,
+ in [Optional=DefaultIsUndefined] DOMString newValue,
+ in [Optional=DefaultIsUndefined] DOMString attrName,
+ in [Optional=DefaultIsUndefined] unsigned short attrChange);
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/MutationRecord.idl b/elemental/idl/third_party/WebCore/dom/MutationRecord.idl
new file mode 100644
index 0000000..a7883c5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/MutationRecord.idl
@@ -0,0 +1,48 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+ interface [
+ Conditional=MUTATION_OBSERVERS
+ ] MutationRecord {
+ readonly attribute DOMString type;
+ readonly attribute Node target;
+
+ readonly attribute NodeList addedNodes;
+ readonly attribute NodeList removedNodes;
+ readonly attribute Node previousSibling;
+ readonly attribute Node nextSibling;
+
+ readonly attribute DOMString attributeName;
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString attributeNamespace;
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString oldValue;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/dom/NamedNodeMap.idl b/elemental/idl/third_party/WebCore/dom/NamedNodeMap.idl
new file mode 100644
index 0000000..88820c0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/NamedNodeMap.idl
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface [
+ JSGenerateIsReachable=ImplElementRoot,
+ JSCustomMarkFunction,
+ IndexedGetter,
+ NamedGetter,
+ V8CustomToJSObject
+ ] NamedNodeMap {
+
+ Node getNamedItem(in [Optional=DefaultIsUndefined] DOMString name);
+
+ Node setNamedItem(in [Optional=DefaultIsUndefined] Node node)
+ raises(DOMException);
+
+ Node removeNamedItem(in [Optional=DefaultIsUndefined] DOMString name)
+ raises(DOMException);
+
+ Node item(in [Optional=DefaultIsUndefined] unsigned long index);
+
+ readonly attribute unsigned long length;
+
+
+ // Introduced in DOM Level 2:
+
+ [ObjCLegacyUnnamedParameters] Node getNamedItemNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [Optional=DefaultIsUndefined] DOMString localName)
+ // FIXME: the implementation does take an exceptioncode parameter.
+ /*raises(DOMException)*/;
+
+ Node setNamedItemNS(in [Optional=DefaultIsUndefined] Node node)
+ raises(DOMException);
+
+ [ObjCLegacyUnnamedParameters] Node removeNamedItemNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [Optional=DefaultIsUndefined] DOMString localName)
+ raises(DOMException);
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Node.idl b/elemental/idl/third_party/WebCore/dom/Node.idl
new file mode 100644
index 0000000..fc4a882
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Node.idl
@@ -0,0 +1,169 @@
+/*
+ * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface [
+ JSCustomHeader,
+ JSCustomMarkFunction,
+ JSCustomPushEventHandlerScope,
+ JSCustomIsReachable,
+ JSCustomFinalize,
+ CustomToJSObject,
+ EventTarget,
+ JSGenerateToNativeObject,
+ JSInlineGetOwnPropertySlot,
+ ObjCPolymorphic,
+ V8DependentLifetime
+ ] Node
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ : Object, EventTarget
+#endif /* defined(LANGUAGE_OBJECTIVE_C) */
+ {
+ // NodeType
+ const unsigned short ELEMENT_NODE = 1;
+ const unsigned short ATTRIBUTE_NODE = 2;
+ const unsigned short TEXT_NODE = 3;
+ const unsigned short CDATA_SECTION_NODE = 4;
+ const unsigned short ENTITY_REFERENCE_NODE = 5;
+ const unsigned short ENTITY_NODE = 6;
+ const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
+ const unsigned short COMMENT_NODE = 8;
+ const unsigned short DOCUMENT_NODE = 9;
+ const unsigned short DOCUMENT_TYPE_NODE = 10;
+ const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
+ const unsigned short NOTATION_NODE = 12;
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString nodeName;
+
+ // FIXME: the spec says this can also raise on retrieval.
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString nodeValue
+ setter raises(DOMException);
+
+ readonly attribute unsigned short nodeType;
+ readonly attribute Node parentNode;
+ readonly attribute NodeList childNodes;
+ readonly attribute Node firstChild;
+ readonly attribute Node lastChild;
+ readonly attribute Node previousSibling;
+ readonly attribute Node nextSibling;
+ readonly attribute NamedNodeMap attributes;
+ readonly attribute Document ownerDocument;
+
+ [ObjCLegacyUnnamedParameters, Custom] Node insertBefore(in [CustomReturn] Node newChild,
+ in Node refChild)
+ raises(DOMException);
+ [ObjCLegacyUnnamedParameters, Custom] Node replaceChild(in Node newChild,
+ in [CustomReturn] Node oldChild)
+ raises(DOMException);
+ [Custom] Node removeChild(in [CustomReturn] Node oldChild)
+ raises(DOMException);
+ [Custom] Node appendChild(in [CustomReturn] Node newChild)
+ raises(DOMException);
+
+ boolean hasChildNodes();
+ Node cloneNode(in [Optional=DefaultIsUndefined] boolean deep);
+ void normalize();
+
+ // Introduced in DOM Level 2:
+
+ [ObjCLegacyUnnamedParameters] boolean isSupported(in [Optional=DefaultIsUndefined] DOMString feature,
+ in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString version);
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString namespaceURI;
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString prefix
+ setter raises(DOMException);
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString localName;
+
+ boolean hasAttributes();
+
+ // Introduced in DOM Level 3:
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString baseURI;
+
+ // FIXME: the spec says this can also raise on retrieval.
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString textContent
+ setter raises(DOMException);
+
+ boolean isSameNode(in [Optional=DefaultIsUndefined] Node other);
+ boolean isEqualNode(in [Optional=DefaultIsUndefined] Node other);
+ [TreatReturnedNullStringAs=Null] DOMString lookupPrefix(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI);
+ boolean isDefaultNamespace(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI);
+ [TreatReturnedNullStringAs=Null] DOMString lookupNamespaceURI(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString prefix);
+
+ // DocumentPosition
+ const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01;
+ const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02;
+ const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04;
+ const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08;
+ const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10;
+ const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
+
+ unsigned short compareDocumentPosition(in [Optional=DefaultIsUndefined] Node other);
+
+ // Introduced in DOM4
+ boolean contains(in [Optional=DefaultIsUndefined] Node other);
+
+#if 0
+ DOMObject getFeature(in DOMString feature,
+ in DOMString version);
+ DOMUserData setUserData(in DOMString key,
+ in DOMUserData data,
+ in UserDataHandler handler);
+ DOMUserData getUserData(in DOMString key);
+#endif /* 0 */
+
+ // IE extensions
+ readonly attribute Element parentElement;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // Objective-C extensions
+ readonly attribute boolean isContentEditable;
+
+ void inspect();
+#endif /* defined(LANGUAGE_OBJECTIVE_C) */
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event event)
+ raises(EventException);
+#endif
+#endif
+
+#if defined(LANGUAGE_CPP) && LANGUAGE_CPP
+ [Custom] void addEventListener(in DOMString type,
+ in EventListener listener,
+ in boolean useCapture);
+ [Custom] void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in boolean useCapture);
+ boolean dispatchEvent(in Event event)
+ raises(EventException);
+#endif
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/NodeFilter.idl b/elemental/idl/third_party/WebCore/dom/NodeFilter.idl
new file mode 100644
index 0000000..5caa5ff
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/NodeFilter.idl
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module traversal {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSCustomMarkFunction,
+ JSCustomToNativeObject,
+ ObjCProtocol,
+ CPPPureInterface
+ ] NodeFilter {
+ // Constants returned by acceptNode
+ const short FILTER_ACCEPT = 1;
+ const short FILTER_REJECT = 2;
+ const short FILTER_SKIP = 3;
+
+ // Constants for whatToShow
+ const unsigned long SHOW_ALL = 0xFFFFFFFF;
+ const unsigned long SHOW_ELEMENT = 0x00000001;
+ const unsigned long SHOW_ATTRIBUTE = 0x00000002;
+ const unsigned long SHOW_TEXT = 0x00000004;
+ const unsigned long SHOW_CDATA_SECTION = 0x00000008;
+ const unsigned long SHOW_ENTITY_REFERENCE = 0x00000010;
+ const unsigned long SHOW_ENTITY = 0x00000020;
+ const unsigned long SHOW_PROCESSING_INSTRUCTION = 0x00000040;
+ const unsigned long SHOW_COMMENT = 0x00000080;
+ const unsigned long SHOW_DOCUMENT = 0x00000100;
+ const unsigned long SHOW_DOCUMENT_TYPE = 0x00000200;
+ const unsigned long SHOW_DOCUMENT_FRAGMENT = 0x00000400;
+ const unsigned long SHOW_NOTATION = 0x00000800;
+
+ [CallWith=ScriptState] short acceptNode(in [Optional=DefaultIsUndefined] Node n);
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/NodeIterator.idl b/elemental/idl/third_party/WebCore/dom/NodeIterator.idl
new file mode 100644
index 0000000..5b3f288
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/NodeIterator.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module traversal {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSCustomMarkFunction
+ ] NodeIterator {
+ readonly attribute Node root;
+ readonly attribute unsigned long whatToShow;
+ readonly attribute NodeFilter filter;
+ readonly attribute boolean expandEntityReferences;
+ readonly attribute Node referenceNode;
+ readonly attribute boolean pointerBeforeReferenceNode;
+
+ [CallWith=ScriptState] Node nextNode()
+ raises (DOMException);
+ [CallWith=ScriptState] Node previousNode()
+ raises (DOMException);
+ void detach();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/NodeList.idl b/elemental/idl/third_party/WebCore/dom/NodeList.idl
new file mode 100644
index 0000000..71544d1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/NodeList.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface [
+ JSCustomIsReachable,
+ IndexedGetter,
+ NamedGetter
+ ] NodeList {
+
+ Node item(in [IsIndex,Optional=DefaultIsUndefined] unsigned long index);
+
+ readonly attribute unsigned long length;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Notation.idl b/elemental/idl/third_party/WebCore/dom/Notation.idl
new file mode 100644
index 0000000..2917cb2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Notation.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface Notation : Node {
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString publicId;
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString systemId;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/OverflowEvent.idl b/elemental/idl/third_party/WebCore/dom/OverflowEvent.idl
new file mode 100644
index 0000000..10b9504
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/OverflowEvent.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2006, 2007 Apple 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.
+ */
+
+module events {
+
+ interface [
+ ConstructorTemplate=Event
+ ] OverflowEvent : Event {
+ const unsigned short HORIZONTAL = 0;
+ const unsigned short VERTICAL = 1;
+ const unsigned short BOTH = 2;
+
+ readonly attribute [InitializedByEventConstructor] unsigned short orient;
+ readonly attribute [InitializedByEventConstructor] boolean horizontalOverflow;
+ readonly attribute [InitializedByEventConstructor] boolean verticalOverflow;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ void initOverflowEvent(in [Optional=DefaultIsUndefined] unsigned short orient,
+ in [Optional=DefaultIsUndefined] boolean horizontalOverflow,
+ in [Optional=DefaultIsUndefined] boolean verticalOverflow);
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/PageTransitionEvent.idl b/elemental/idl/third_party/WebCore/dom/PageTransitionEvent.idl
new file mode 100644
index 0000000..76c8727
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/PageTransitionEvent.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2009 Apple 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 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 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.
+ */
+
+module events {
+
+ interface [
+ ConstructorTemplate=Event
+ ] PageTransitionEvent : Event {
+ readonly attribute [InitializedByEventConstructor] boolean persisted;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/PopStateEvent.idl b/elemental/idl/third_party/WebCore/dom/PopStateEvent.idl
new file mode 100644
index 0000000..c9343ca
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/PopStateEvent.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2009 Apple 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, 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.
+ *
+ */
+
+module events {
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ interface [
+ ConstructorTemplate=Event
+ ] PopStateEvent : Event {
+ readonly attribute [InitializedByEventConstructor, CachedAttribute, CustomGetter] DOMObject state;
+ };
+#endif
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/ProcessingInstruction.idl b/elemental/idl/third_party/WebCore/dom/ProcessingInstruction.idl
new file mode 100644
index 0000000..02499a2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/ProcessingInstruction.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface ProcessingInstruction : Node {
+
+ // DOM Level 1
+
+ readonly attribute [TreatReturnedNullStringAs=Null] DOMString target;
+ attribute [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] DOMString data
+ setter raises(DOMException);
+
+ // interface LinkStyle from DOM Level 2 Style Sheets
+ readonly attribute StyleSheet sheet;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/ProgressEvent.idl b/elemental/idl/third_party/WebCore/dom/ProgressEvent.idl
new file mode 100644
index 0000000..525fa4a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/ProgressEvent.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ */
+
+module events {
+
+ interface [
+ ConstructorTemplate=Event,
+ JSNoStaticTables
+ ] ProgressEvent : Event {
+ readonly attribute [InitializedByEventConstructor] boolean lengthComputable;
+ readonly attribute [InitializedByEventConstructor] unsigned long long loaded;
+ readonly attribute [InitializedByEventConstructor] unsigned long long total;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Range.idl b/elemental/idl/third_party/WebCore/dom/Range.idl
new file mode 100644
index 0000000..67f4aee
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Range.idl
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module ranges {
+
+ // Introduced in DOM Level 2:
+ interface Range {
+
+ readonly attribute Node startContainer
+ getter raises(DOMException);
+ readonly attribute long startOffset
+ getter raises(DOMException);
+ readonly attribute Node endContainer
+ getter raises(DOMException);
+ readonly attribute long endOffset
+ getter raises(DOMException);
+ readonly attribute boolean collapsed
+ getter raises(DOMException);
+ readonly attribute Node commonAncestorContainer
+ getter raises(DOMException);
+
+ [ObjCLegacyUnnamedParameters] void setStart(in [Optional=DefaultIsUndefined] Node refNode,
+ in [Optional=DefaultIsUndefined] long offset)
+ raises(RangeException, DOMException);
+ [ObjCLegacyUnnamedParameters] void setEnd(in [Optional=DefaultIsUndefined] Node refNode,
+ in [Optional=DefaultIsUndefined] long offset)
+ raises(RangeException, DOMException);
+ void setStartBefore(in [Optional=DefaultIsUndefined] Node refNode)
+ raises(RangeException, DOMException);
+ void setStartAfter(in [Optional=DefaultIsUndefined] Node refNode)
+ raises(RangeException, DOMException);
+ void setEndBefore(in [Optional=DefaultIsUndefined] Node refNode)
+ raises(RangeException, DOMException);
+ void setEndAfter(in [Optional=DefaultIsUndefined] Node refNode)
+ raises(RangeException, DOMException);
+ void collapse(in [Optional=DefaultIsUndefined] boolean toStart)
+ raises(DOMException);
+ void selectNode(in [Optional=DefaultIsUndefined] Node refNode)
+ raises(RangeException, DOMException);
+ void selectNodeContents(in [Optional=DefaultIsUndefined] Node refNode)
+ raises(RangeException, DOMException);
+
+ // CompareHow
+ const unsigned short START_TO_START = 0;
+ const unsigned short START_TO_END = 1;
+ const unsigned short END_TO_END = 2;
+ const unsigned short END_TO_START = 3;
+
+ [ObjCLegacyUnnamedParameters] short compareBoundaryPoints(in [Optional=DefaultIsUndefined] CompareHow how,
+ in [Optional=DefaultIsUndefined] Range sourceRange)
+ raises(DOMException);
+
+ void deleteContents()
+ raises(DOMException);
+ DocumentFragment extractContents()
+ raises(DOMException);
+ DocumentFragment cloneContents()
+ raises(DOMException);
+ void insertNode(in [Optional=DefaultIsUndefined] Node newNode)
+ raises(DOMException, RangeException);
+ void surroundContents(in [Optional=DefaultIsUndefined] Node newParent)
+ raises(DOMException, RangeException);
+ Range cloneRange()
+ raises(DOMException);
+ DOMString toString()
+ raises(DOMException);
+
+ void detach()
+ raises(DOMException);
+
+#if defined(LANGUAGE_JAVASCRIPT) || LANGUAGE_JAVASCRIPT
+ // CSSOM View Module API extensions
+
+ ClientRectList getClientRects();
+ ClientRect getBoundingClientRect();
+#endif
+
+ // extensions
+
+ DocumentFragment createContextualFragment(in [Optional=DefaultIsUndefined] DOMString html)
+ raises(DOMException);
+
+ // WebKit extensions
+
+ boolean intersectsNode(in [Optional=DefaultIsUndefined] Node refNode)
+ raises(RangeException, DOMException);
+
+ short compareNode(in [Optional=DefaultIsUndefined] Node refNode)
+ raises(RangeException, DOMException);
+
+ // CompareResults
+ const unsigned short NODE_BEFORE = 0;
+ const unsigned short NODE_AFTER = 1;
+ const unsigned short NODE_BEFORE_AND_AFTER = 2;
+ const unsigned short NODE_INSIDE = 3;
+
+ short comparePoint(in [Optional=DefaultIsUndefined] Node refNode,
+ in [Optional=DefaultIsUndefined] long offset)
+ raises(RangeException, DOMException);
+
+ boolean isPointInRange(in [Optional=DefaultIsUndefined] Node refNode,
+ in [Optional=DefaultIsUndefined] long offset)
+ raises(RangeException, DOMException);
+
+ void expand(in [Optional=DefaultIsUndefined] DOMString unit)
+ raises(RangeException, DOMException);
+
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
+ readonly attribute DOMString text;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/RangeException.idl b/elemental/idl/third_party/WebCore/dom/RangeException.idl
new file mode 100644
index 0000000..7ef8c4a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/RangeException.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module ranges {
+
+ exception [
+ DoNotCheckConstants
+ ] RangeException {
+
+ readonly attribute unsigned short code;
+ readonly attribute DOMString name;
+ readonly attribute DOMString message;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [NotEnumerable] DOMString toString();
+#endif
+
+ // DOM Level 2
+
+ const unsigned short BAD_BOUNDARYPOINTS_ERR = 1;
+ const unsigned short INVALID_NODE_TYPE_ERR = 2;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/RequestAnimationFrameCallback.idl b/elemental/idl/third_party/WebCore/dom/RequestAnimationFrameCallback.idl
new file mode 100644
index 0000000..4da6820
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/RequestAnimationFrameCallback.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+ interface [
+ Callback,
+ Conditional=REQUEST_ANIMATION_FRAME,
+ ] RequestAnimationFrameCallback{
+#if defined(V8_BINDING) && V8_BINDING
+ boolean handleEvent(in DOMTimeStamp time);
+#else
+ [Custom] boolean handleEvent(in DOMTimeStamp time);
+#endif
+
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/dom/ShadowRoot.idl b/elemental/idl/third_party/WebCore/dom/ShadowRoot.idl
new file mode 100644
index 0000000..8110c1e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/ShadowRoot.idl
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+
+ interface [
+ Conditional=SHADOW_DOM,
+ Constructor(in Element host),
+ ConstructorRaisesException
+ ] ShadowRoot : DocumentFragment {
+ readonly attribute Element host;
+ readonly attribute Element activeElement;
+ attribute boolean applyAuthorStyles;
+
+ attribute [TreatNullAs=NullString] DOMString innerHTML
+ setter raises(DOMException);
+
+ DOMSelection getSelection();
+ Element getElementById(in [Optional=DefaultIsUndefined] DOMString elementId);
+ NodeList getElementsByClassName(in [Optional=DefaultIsUndefined] DOMString className);
+ NodeList getElementsByTagName(in [Optional=DefaultIsUndefined] DOMString tagName);
+ NodeList getElementsByTagNameNS(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString namespaceURI,
+ in [Optional=DefaultIsUndefined] DOMString localName);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/StringCallback.idl b/elemental/idl/third_party/WebCore/dom/StringCallback.idl
new file mode 100644
index 0000000..1e18d83
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/StringCallback.idl
@@ -0,0 +1,37 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+ interface [
+ Callback
+ ] StringCallback {
+ boolean handleEvent(in DOMString data);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Text.idl b/elemental/idl/third_party/WebCore/dom/Text.idl
new file mode 100644
index 0000000..4736e22
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Text.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module core {
+
+ interface Text : CharacterData {
+
+ // DOM Level 1
+
+ Text splitText(in [IsIndex,Optional=DefaultIsUndefined] unsigned long offset)
+ raises (DOMException);
+
+ // Introduced in DOM Level 3:
+ readonly attribute DOMString wholeText;
+ Text replaceWholeText(in [Optional=DefaultIsUndefined] DOMString content)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/TextEvent.idl b/elemental/idl/third_party/WebCore/dom/TextEvent.idl
new file mode 100644
index 0000000..36f507c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/TextEvent.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ */
+
+module events {
+
+ // Introduced in DOM Level 3:
+ interface TextEvent : UIEvent {
+
+ readonly attribute DOMString data;
+
+ void initTextEvent(in [Optional=DefaultIsUndefined] DOMString typeArg,
+ in [Optional=DefaultIsUndefined] boolean canBubbleArg,
+ in [Optional=DefaultIsUndefined] boolean cancelableArg,
+ in [Optional=DefaultIsUndefined] DOMWindow viewArg,
+ in [Optional=DefaultIsUndefined] DOMString dataArg);
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/Touch.idl b/elemental/idl/third_party/WebCore/dom/Touch.idl
new file mode 100644
index 0000000..d2937b3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/Touch.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2008, The Android Open Source Project
+ *
+ * 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 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.
+ */
+
+module events {
+
+ interface [
+ Conditional=TOUCH_EVENTS
+ ] Touch {
+ readonly attribute long clientX;
+ readonly attribute long clientY;
+ readonly attribute long screenX;
+ readonly attribute long screenY;
+ readonly attribute long pageX;
+ readonly attribute long pageY;
+ readonly attribute EventTarget target;
+ readonly attribute unsigned long identifier;
+ readonly attribute int webkitRadiusX;
+ readonly attribute int webkitRadiusY;
+ readonly attribute float webkitRotationAngle;
+ readonly attribute float webkitForce;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/dom/TouchEvent.idl b/elemental/idl/third_party/WebCore/dom/TouchEvent.idl
new file mode 100644
index 0000000..4b79757
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/TouchEvent.idl
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2008, The Android Open Source Project
+ *
+ * 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 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.
+ */
+
+module events {
+
+ interface [
+ Conditional=TOUCH_EVENTS
+ ] TouchEvent : UIEvent {
+ readonly attribute TouchList touches;
+ readonly attribute TouchList targetTouches;
+ readonly attribute TouchList changedTouches;
+ readonly attribute boolean ctrlKey;
+ readonly attribute boolean shiftKey;
+ readonly attribute boolean altKey;
+ readonly attribute boolean metaKey;
+
+ void initTouchEvent(in [Optional=DefaultIsUndefined] TouchList touches,
+ in [Optional=DefaultIsUndefined] TouchList targetTouches,
+ in [Optional=DefaultIsUndefined] TouchList changedTouches,
+ in [Optional=DefaultIsUndefined] DOMString type,
+ in [Optional=DefaultIsUndefined] DOMWindow view,
+ in [Optional=DefaultIsUndefined] long screenX,
+ in [Optional=DefaultIsUndefined] long screenY,
+ in [Optional=DefaultIsUndefined] long clientX,
+ in [Optional=DefaultIsUndefined] long clientY,
+ in [Optional=DefaultIsUndefined] boolean ctrlKey,
+ in [Optional=DefaultIsUndefined] boolean altKey,
+ in [Optional=DefaultIsUndefined] boolean shiftKey,
+ in [Optional=DefaultIsUndefined] boolean metaKey);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/dom/TouchList.idl b/elemental/idl/third_party/WebCore/dom/TouchList.idl
new file mode 100644
index 0000000..542325c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/TouchList.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2008, The Android Open Source Project
+ *
+ * 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 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.
+ */
+
+module events {
+
+ interface [
+ Conditional=TOUCH_EVENTS,
+ IndexedGetter
+ ] TouchList {
+ readonly attribute unsigned long length;
+
+ Touch item(in unsigned long index);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/dom/TreeWalker.idl b/elemental/idl/third_party/WebCore/dom/TreeWalker.idl
new file mode 100644
index 0000000..d9ed36e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/TreeWalker.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module traversal {
+
+ // Introduced in DOM Level 2:
+ interface [
+ JSCustomMarkFunction
+ ] TreeWalker {
+ readonly attribute Node root;
+ readonly attribute unsigned long whatToShow;
+ readonly attribute NodeFilter filter;
+ readonly attribute boolean expandEntityReferences;
+ attribute Node currentNode
+ setter raises(DOMException);
+
+ [CallWith=ScriptState] Node parentNode();
+ [CallWith=ScriptState] Node firstChild();
+ [CallWith=ScriptState] Node lastChild();
+ [CallWith=ScriptState] Node previousSibling();
+ [CallWith=ScriptState] Node nextSibling();
+ [CallWith=ScriptState] Node previousNode();
+ [CallWith=ScriptState] Node nextNode();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/UIEvent.idl b/elemental/idl/third_party/WebCore/dom/UIEvent.idl
new file mode 100644
index 0000000..39a2caf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/UIEvent.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module events {
+
+ // Introduced in DOM Level 2:
+ interface UIEvent : Event {
+ readonly attribute DOMWindow view;
+ readonly attribute long detail;
+
+ [ObjCLegacyUnnamedParameters] void initUIEvent(in [Optional=DefaultIsUndefined] DOMString type,
+ in [Optional=DefaultIsUndefined] boolean canBubble,
+ in [Optional=DefaultIsUndefined] boolean cancelable,
+ in [Optional=DefaultIsUndefined] DOMWindow view,
+ in [Optional=DefaultIsUndefined] long detail);
+
+ // extensions
+ readonly attribute long keyCode;
+ readonly attribute long charCode;
+ readonly attribute long layerX;
+ readonly attribute long layerY;
+ readonly attribute long pageX;
+ readonly attribute long pageY;
+ readonly attribute long which;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/WebKitAnimationEvent.idl b/elemental/idl/third_party/WebCore/dom/WebKitAnimationEvent.idl
new file mode 100644
index 0000000..5e52250
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/WebKitAnimationEvent.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007, 2008 Apple 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.
+ */
+
+module events {
+
+ interface [
+ ConstructorTemplate=Event
+ ] WebKitAnimationEvent : Event {
+ readonly attribute [InitializedByEventConstructor] DOMString animationName;
+ readonly attribute [InitializedByEventConstructor] double elapsedTime;
+};
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/WebKitMutationObserver.idl b/elemental/idl/third_party/WebCore/dom/WebKitMutationObserver.idl
new file mode 100644
index 0000000..e535f45
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/WebKitMutationObserver.idl
@@ -0,0 +1,42 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+ interface [
+ Conditional=MUTATION_OBSERVERS,
+ CustomConstructor,
+ ConstructorParameters=1
+ ] WebKitMutationObserver {
+ [Custom] void observe(in Node target, in MutationObserverOptions options)
+ raises(DOMException);
+ sequence<MutationRecord> takeRecords();
+ void disconnect();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/dom/WebKitNamedFlow.idl b/elemental/idl/third_party/WebCore/dom/WebKitNamedFlow.idl
new file mode 100644
index 0000000..0da90e0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/WebKitNamedFlow.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2011 Adobe Systems Incorporated. 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 THE COPYRIGHT HOLDER "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 HOLDER 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.
+ */
+
+module core {
+ interface [
+ JSGenerateToJSObject
+ ] WebKitNamedFlow {
+ readonly attribute DOMString name;
+ readonly attribute boolean overset;
+ NodeList getRegionsByContentNode(in Node contentNode);
+ readonly attribute NodeList contentNodes;
+ };
+}
+
diff --git a/elemental/idl/third_party/WebCore/dom/WebKitTransitionEvent.idl b/elemental/idl/third_party/WebCore/dom/WebKitTransitionEvent.idl
new file mode 100644
index 0000000..39903bd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/WebKitTransitionEvent.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007, 2008 Apple 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.
+ */
+
+module events {
+
+ interface [
+ ConstructorTemplate=Event
+ ] WebKitTransitionEvent : Event {
+ readonly attribute [InitializedByEventConstructor] DOMString propertyName;
+ readonly attribute [InitializedByEventConstructor] double elapsedTime;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/dom/WheelEvent.idl b/elemental/idl/third_party/WebCore/dom/WheelEvent.idl
new file mode 100644
index 0000000..0282525
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/dom/WheelEvent.idl
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module events {
+
+ // Based off of proposed IDL interface for WheelEvent:
+ interface WheelEvent : UIEvent {
+ readonly attribute long screenX;
+ readonly attribute long screenY;
+ readonly attribute long clientX;
+ readonly attribute long clientY;
+ readonly attribute boolean ctrlKey;
+ readonly attribute boolean shiftKey;
+ readonly attribute boolean altKey;
+ readonly attribute boolean metaKey;
+ readonly attribute long wheelDelta;
+ readonly attribute long wheelDeltaX;
+ readonly attribute long wheelDeltaY;
+
+ // WebKit Extensions
+ readonly attribute long offsetX;
+ readonly attribute long offsetY;
+ readonly attribute long x;
+ readonly attribute long y;
+ readonly attribute boolean webkitDirectionInvertedFromDevice;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ readonly attribute boolean isHorizontal;
+#endif /* defined(LANGUAGE_OBJECTIVE_C) */
+
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
+ void initWheelEvent(in [Optional=DefaultIsUndefined] long wheelDeltaX,
+ in [Optional=DefaultIsUndefined] long wheelDeltaY,
+ in [Optional=DefaultIsUndefined] DOMWindow view,
+ in [Optional=DefaultIsUndefined] long screenX,
+ in [Optional=DefaultIsUndefined] long screenY,
+ in [Optional=DefaultIsUndefined] long clientX,
+ in [Optional=DefaultIsUndefined] long clientY,
+ in [Optional=DefaultIsUndefined] boolean ctrlKey,
+ in [Optional=DefaultIsUndefined] boolean altKey,
+ in [Optional=DefaultIsUndefined] boolean shiftKey,
+ in [Optional=DefaultIsUndefined] boolean metaKey);
+#endif /* !defined(LANGUAGE_JAVASCRIPT) */
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ void initWebKitWheelEvent(in [Optional=DefaultIsUndefined] long wheelDeltaX,
+ in [Optional=DefaultIsUndefined] long wheelDeltaY,
+ in [Optional=DefaultIsUndefined] DOMWindow view,
+ in [Optional=DefaultIsUndefined] long screenX,
+ in [Optional=DefaultIsUndefined] long screenY,
+ in [Optional=DefaultIsUndefined] long clientX,
+ in [Optional=DefaultIsUndefined] long clientY,
+ in [Optional=DefaultIsUndefined] boolean ctrlKey,
+ in [Optional=DefaultIsUndefined] boolean altKey,
+ in [Optional=DefaultIsUndefined] boolean shiftKey,
+ in [Optional=DefaultIsUndefined] boolean metaKey);
+#endif /* defined(LANGUAGE_JAVASCRIPT) */
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/fileapi/Blob.idl b/elemental/idl/third_party/WebCore/fileapi/Blob.idl
new file mode 100644
index 0000000..6b7e59d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/fileapi/Blob.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+
+ interface [
+ JSGenerateIsReachable=Impl,
+ CustomToJSObject,
+ JSNoStaticTables,
+ CustomConstructor,
+ ConstructorParameters=2
+ ] Blob {
+ readonly attribute unsigned long long size;
+ readonly attribute DOMString type;
+
+#if !defined(LANGUAGE_OBJECTIVE_C)
+#if defined(ENABLE_BLOB) && ENABLE_BLOB
+ Blob webkitSlice(in [Optional] long long start, in [Optional] long long end, in [Optional, TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString contentType);
+#endif
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/fileapi/File.idl b/elemental/idl/third_party/WebCore/fileapi/File.idl
new file mode 100644
index 0000000..00bdde6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/fileapi/File.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module html {
+
+ interface [
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject,
+ JSNoStaticTables
+ ] File : Blob {
+ readonly attribute DOMString name;
+#if !defined(LANGUAGE_GOBJECT) || !LANGUAGE_GOBJECT
+ readonly attribute [ImplementedAs=lastModifiedDateForBinding] Date lastModifiedDate;
+#endif
+#if defined(ENABLE_DIRECTORY_UPLOAD) && ENABLE_DIRECTORY_UPLOAD
+ readonly attribute DOMString webkitRelativePath;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/fileapi/FileError.idl b/elemental/idl/third_party/WebCore/fileapi/FileError.idl
new file mode 100644
index 0000000..158d784
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/fileapi/FileError.idl
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ interface [
+ Conditional=BLOB|FILE_SYSTEM,
+ JSNoStaticTables
+ ] FileError {
+#if !defined(LANGUAGE_OBJECTIVE_C)
+ // FIXME: Some of constant names are already defined in DOMException.h for Objective-C binding and we cannot have the same names here (they are translated into a enum in the same namespace).
+ const unsigned short NOT_FOUND_ERR = 1;
+ const unsigned short SECURITY_ERR = 2;
+ const unsigned short ABORT_ERR = 3;
+ const unsigned short NOT_READABLE_ERR = 4;
+ const unsigned short ENCODING_ERR = 5;
+ const unsigned short NO_MODIFICATION_ALLOWED_ERR = 6;
+ const unsigned short INVALID_STATE_ERR = 7;
+ const unsigned short SYNTAX_ERR = 8;
+ const unsigned short INVALID_MODIFICATION_ERR = 9;
+ const unsigned short QUOTA_EXCEEDED_ERR = 10;
+ const unsigned short TYPE_MISMATCH_ERR = 11;
+ const unsigned short PATH_EXISTS_ERR = 12;
+#endif
+ readonly attribute unsigned short code;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/fileapi/FileException.idl b/elemental/idl/third_party/WebCore/fileapi/FileException.idl
new file mode 100644
index 0000000..33244f9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/fileapi/FileException.idl
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ exception [
+ Conditional=BLOB|FILE_SYSTEM,
+ DoNotCheckConstants,
+ JSNoStaticTables
+ ] FileException {
+
+ readonly attribute unsigned short code;
+ readonly attribute DOMString name;
+ readonly attribute DOMString message;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // Override in a Mozilla compatible format
+ [NotEnumerable] DOMString toString();
+#endif
+
+ // FileExceptionCode
+ const unsigned short NOT_FOUND_ERR = 1;
+ const unsigned short SECURITY_ERR = 2;
+ const unsigned short ABORT_ERR = 3;
+ const unsigned short NOT_READABLE_ERR = 4;
+ const unsigned short ENCODING_ERR = 5;
+ const unsigned short NO_MODIFICATION_ALLOWED_ERR = 6;
+ const unsigned short INVALID_STATE_ERR = 7;
+ const unsigned short SYNTAX_ERR = 8;
+ const unsigned short INVALID_MODIFICATION_ERR = 9;
+ const unsigned short QUOTA_EXCEEDED_ERR = 10;
+ const unsigned short TYPE_MISMATCH_ERR = 11;
+ const unsigned short PATH_EXISTS_ERR = 12;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/fileapi/FileList.idl b/elemental/idl/third_party/WebCore/fileapi/FileList.idl
new file mode 100644
index 0000000..0cdf861
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/fileapi/FileList.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module html {
+
+ interface [
+ IndexedGetter,
+ JSNoStaticTables
+ ] FileList {
+ readonly attribute unsigned long length;
+ File item(in [IsIndex] unsigned long index);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/fileapi/FileReader.idl b/elemental/idl/third_party/WebCore/fileapi/FileReader.idl
new file mode 100644
index 0000000..9a6440c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/fileapi/FileReader.idl
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ interface [
+ Conditional=BLOB,
+ ActiveDOMObject,
+ Constructor,
+ CallWith=ScriptExecutionContext,
+ EventTarget,
+ JSNoStaticTables
+ ] FileReader {
+ // ready states
+ const unsigned short EMPTY = 0;
+ const unsigned short LOADING = 1;
+ const unsigned short DONE = 2;
+ readonly attribute unsigned short readyState;
+
+ // async read methods
+ void readAsArrayBuffer(in Blob blob)
+ raises(OperationNotAllowedException);
+ void readAsBinaryString(in Blob blob)
+ raises(OperationNotAllowedException);
+ void readAsText(in Blob blob, in [Optional] DOMString encoding)
+ raises(OperationNotAllowedException);
+ void readAsDataURL(in Blob blob)
+ raises(OperationNotAllowedException);
+
+ void abort();
+
+ // file data
+ readonly attribute [Custom] DOMObject result;
+
+ readonly attribute FileError error;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+
+ attribute EventListener onloadstart;
+ attribute EventListener onprogress;
+ attribute EventListener onload;
+ attribute EventListener onabort;
+ attribute EventListener onerror;
+ attribute EventListener onloadend;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/fileapi/FileReaderSync.idl b/elemental/idl/third_party/WebCore/fileapi/FileReaderSync.idl
new file mode 100644
index 0000000..920f368
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/fileapi/FileReaderSync.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ interface [
+ Conditional=BLOB,
+ Constructor,
+ JSNoStaticTables
+ ] FileReaderSync {
+ [CallWith=ScriptExecutionContext] ArrayBuffer readAsArrayBuffer(in Blob blob)
+ raises(FileException);
+ [CallWith=ScriptExecutionContext] DOMString readAsBinaryString(in Blob blob)
+ raises(FileException);
+ [CallWith=ScriptExecutionContext] DOMString readAsText(in Blob blob, in [Optional] DOMString encoding)
+ raises(FileException);
+ [CallWith=ScriptExecutionContext] DOMString readAsDataURL(in Blob blob)
+ raises(FileException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/fileapi/OperationNotAllowedException.idl b/elemental/idl/third_party/WebCore/fileapi/OperationNotAllowedException.idl
new file mode 100644
index 0000000..50040df
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/fileapi/OperationNotAllowedException.idl
@@ -0,0 +1,48 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ exception [
+ Conditional=BLOB,
+ DoNotCheckConstants,
+ JSNoStaticTables
+ ] OperationNotAllowedException {
+ readonly attribute unsigned short code;
+ readonly attribute DOMString name;
+ readonly attribute DOMString message;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // Override in a Mozilla compatible format
+ [NotEnumerable] DOMString toString();
+#endif
+
+ const unsigned short NOT_ALLOWED_ERR = 1;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/fileapi/WebKitBlobBuilder.idl b/elemental/idl/third_party/WebCore/fileapi/WebKitBlobBuilder.idl
new file mode 100644
index 0000000..e0c7c5c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/fileapi/WebKitBlobBuilder.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ interface [
+ Conditional=LEGACY_WEBKIT_BLOB_BUILDER,
+ Constructor,
+ JSGenerateToNativeObject,
+ JSNoStaticTables
+ ] WebKitBlobBuilder {
+#if !defined(LANGUAGE_OBJECTIVE_C)
+ Blob getBlob(in [Optional, TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString contentType);
+#endif
+ void append(in Blob blob);
+#if defined(ENABLE_BLOB) && ENABLE_BLOB
+ void append(in ArrayBuffer arrayBuffer);
+#endif
+ void append(in DOMString value, in [Optional, TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString endings) raises (DOMException);
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/html/DOMFormData.idl b/elemental/idl/third_party/WebCore/html/DOMFormData.idl
new file mode 100644
index 0000000..73eaa66
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/DOMFormData.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject,
+ InterfaceName=FormData
+ ] DOMFormData {
+ // void append(DOMString name, DOMString value);
+ // void append(DOMString name, Blob value, optional DOMString filename);
+ [Custom] void append(in [Optional=DefaultIsUndefined] DOMString name,
+ in [Optional=DefaultIsUndefined] DOMString value,
+ in [Optional=DefaultIsUndefined] DOMString filename);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/DOMSettableTokenList.idl b/elemental/idl/third_party/WebCore/html/DOMSettableTokenList.idl
new file mode 100644
index 0000000..93bf67f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/DOMSettableTokenList.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2010 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+
+ interface [
+ IndexedGetter,
+ JSGenerateToJSObject
+ ] DOMSettableTokenList : DOMTokenList {
+ attribute DOMString value;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/DOMTokenList.idl b/elemental/idl/third_party/WebCore/html/DOMTokenList.idl
new file mode 100644
index 0000000..55b636f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/DOMTokenList.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2010, 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+
+ interface [
+ JSGenerateIsReachable=ImplElementRoot,
+ IndexedGetter,
+ V8CustomToJSObject
+ ] DOMTokenList {
+ readonly attribute unsigned long length;
+ [TreatReturnedNullStringAs=Null] DOMString item(in unsigned long index);
+ boolean contains(in DOMString token) raises(DOMException);
+ void add(in DOMString token) raises(DOMException);
+ void remove(in DOMString token) raises(DOMException);
+ boolean toggle(in DOMString token) raises(DOMException);
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [NotEnumerable] DOMString toString();
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/DOMURL.idl b/elemental/idl/third_party/WebCore/html/DOMURL.idl
new file mode 100644
index 0000000..44bb638
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/DOMURL.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2012 Motorola Mobility Inc.
+ *
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+ interface [
+ Conditional=BLOB,
+ Constructor,
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject,
+ JSNoStaticTables,
+ InterfaceName=URL
+ ] DOMURL {
+#if defined(ENABLE_MEDIA_STREAM) && ENABLE_MEDIA_STREAM
+ [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(in MediaStream stream);
+#endif
+ [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(in Blob blob);
+ [CallWith=ScriptExecutionContext] static void revokeObjectURL(in DOMString url);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLAllCollection.idl b/elemental/idl/third_party/WebCore/html/HTMLAllCollection.idl
new file mode 100644
index 0000000..5ceae01
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLAllCollection.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2009 Apple 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 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 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.
+ */
+
+module html {
+
+ interface [
+ IndexedGetter,
+ NamedGetter,
+ CustomCall,
+ MasqueradesAsUndefined,
+ JSGenerateIsReachable
+ ] HTMLAllCollection {
+ readonly attribute unsigned long length;
+ [Custom] Node item(in [Optional=DefaultIsUndefined] unsigned long index);
+ [Custom] Node namedItem(in DOMString name);
+
+ // FIXME: This should return an HTMLAllCollection.
+ NodeList tags(in DOMString name);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLAnchorElement.idl b/elemental/idl/third_party/WebCore/html/HTMLAnchorElement.idl
new file mode 100644
index 0000000..7bd174c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLAnchorElement.idl
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLAnchorElement : HTMLElement {
+ attribute [Reflect] DOMString charset;
+ attribute [Reflect] DOMString coords;
+ attribute [Conditional=DOWNLOAD_ATTRIBUTE, Reflect] DOMString download;
+ attribute [Reflect, URL] DOMString href;
+ attribute [Reflect] DOMString hreflang;
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] DOMString ping;
+ attribute [Reflect] DOMString rel;
+ attribute [Reflect] DOMString rev;
+ attribute [Reflect] DOMString shape;
+ attribute [Reflect] DOMString target;
+ attribute [Reflect] DOMString type;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ attribute [Reflect] DOMString accessKey;
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ readonly attribute DOMString hash;
+ readonly attribute DOMString host;
+ readonly attribute DOMString hostname;
+ readonly attribute DOMString pathname;
+ readonly attribute DOMString port;
+ readonly attribute DOMString protocol;
+ readonly attribute DOMString search;
+#else
+ attribute [TreatNullAs=NullString] DOMString hash;
+ attribute [TreatNullAs=NullString] DOMString host;
+ attribute [TreatNullAs=NullString] DOMString hostname;
+ attribute [TreatNullAs=NullString] DOMString pathname;
+ attribute [TreatNullAs=NullString] DOMString port;
+ attribute [TreatNullAs=NullString] DOMString protocol;
+ attribute [TreatNullAs=NullString] DOMString search;
+
+ readonly attribute [TreatNullAs=NullString] DOMString origin;
+#endif
+
+ readonly attribute DOMString text;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [NotEnumerable] DOMString toString();
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // Objective-C extension:
+ readonly attribute URL absoluteLinkURL;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLAppletElement.idl b/elemental/idl/third_party/WebCore/html/HTMLAppletElement.idl
new file mode 100644
index 0000000..8f16a40
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLAppletElement.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ CustomNamedSetter,
+ JSCustomGetOwnPropertySlotAndDescriptor,
+ CustomCall
+ ] HTMLAppletElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+ attribute [Reflect] DOMString alt;
+ attribute [Reflect] DOMString archive;
+ attribute [Reflect] DOMString code;
+ attribute [Reflect] DOMString codeBase;
+ attribute [Reflect] DOMString height;
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ attribute [Reflect] DOMString hspace;
+#else
+ attribute [Reflect] long hspace;
+#endif
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] DOMString object;
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ attribute [Reflect] DOMString vspace;
+#else
+ attribute [Reflect] long vspace;
+#endif
+ attribute [Reflect] DOMString width;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLAreaElement.idl b/elemental/idl/third_party/WebCore/html/HTMLAreaElement.idl
new file mode 100644
index 0000000..dfb9c9b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLAreaElement.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2006, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLAreaElement : HTMLElement {
+ attribute [Reflect] DOMString alt;
+ attribute [Reflect] DOMString coords;
+ attribute [Reflect, URL] DOMString href;
+ attribute [Reflect] boolean noHref;
+ attribute [Reflect] DOMString ping;
+ attribute [Reflect] DOMString shape;
+ attribute [Reflect] DOMString target;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ attribute [Reflect] DOMString accessKey;
+#endif
+ // IE Extensions
+ readonly attribute DOMString hash;
+ readonly attribute DOMString host;
+ readonly attribute DOMString hostname;
+ readonly attribute DOMString pathname;
+ readonly attribute DOMString port;
+ readonly attribute DOMString protocol;
+ readonly attribute DOMString search;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // Objective-C extension:
+ readonly attribute URL absoluteLinkURL;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLAudioElement.idl b/elemental/idl/third_party/WebCore/html/HTMLAudioElement.idl
new file mode 100644
index 0000000..1adf01c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLAudioElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ */
+
+module html {
+ interface [
+ ActiveDOMObject,
+ Conditional=VIDEO,
+ NamedConstructor=Audio(in [Optional=DefaultIsNullString] DOMString src)
+ ] HTMLAudioElement : HTMLMediaElement {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLBRElement.idl b/elemental/idl/third_party/WebCore/html/HTMLBRElement.idl
new file mode 100644
index 0000000..a6d215d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLBRElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006, 2009 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLBRElement : HTMLElement {
+ attribute [Reflect] DOMString clear;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLBaseElement.idl b/elemental/idl/third_party/WebCore/html/HTMLBaseElement.idl
new file mode 100644
index 0000000..2750c9e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLBaseElement.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006, 2009, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLBaseElement : HTMLElement {
+ attribute [Reflect, URL] DOMString href;
+ attribute [Reflect] DOMString target;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLBaseFontElement.idl b/elemental/idl/third_party/WebCore/html/HTMLBaseFontElement.idl
new file mode 100644
index 0000000..95bc92c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLBaseFontElement.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2006, 2009, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLBaseFontElement : HTMLElement {
+ attribute [Reflect] DOMString color;
+ attribute [Reflect] DOMString face;
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ attribute [Reflect] DOMString size; // this changed to a long, but our existing API is a string
+#else
+ attribute [Reflect] long size;
+#endif
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLBodyElement.idl b/elemental/idl/third_party/WebCore/html/HTMLBodyElement.idl
new file mode 100644
index 0000000..a6b7f56
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLBodyElement.idl
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2006, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLBodyElement : HTMLElement {
+ attribute [Reflect] DOMString aLink;
+ attribute [Reflect] DOMString background;
+ attribute [Reflect] DOMString bgColor;
+ attribute [Reflect] DOMString link;
+ attribute [Reflect] DOMString text;
+ attribute [Reflect] DOMString vLink;
+
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ // Event handler attributes
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onbeforeunload;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onhashchange;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onmessage;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onoffline;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener ononline;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onpopstate;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onresize;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onstorage;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onunload;
+
+ attribute [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] EventListener onorientationchange;
+
+ // Overrides of Element attributes (with different implementation in bindings).
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onblur;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onerror;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onfocus;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onload;
+
+ // Not implemented yet.
+ // attribute [NotEnumerable, JSWindowEventListener] EventListener onafterprint;
+ // attribute [NotEnumerable, JSWindowEventListener] EventListener onbeforeprint;
+ // attribute [NotEnumerable, JSWindowEventListener] EventListener onredo;
+ // attribute [NotEnumerable, JSWindowEventListener] EventListener onundo;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLButtonElement.idl b/elemental/idl/third_party/WebCore/html/HTMLButtonElement.idl
new file mode 100644
index 0000000..692fd61
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLButtonElement.idl
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLButtonElement : HTMLElement {
+ attribute [Reflect] boolean autofocus;
+ attribute [Reflect] boolean disabled;
+ readonly attribute HTMLFormElement form;
+ attribute [Reflect, URL] DOMString formAction;
+ attribute [TreatNullAs=NullString] DOMString formEnctype;
+ attribute [TreatNullAs=NullString] DOMString formMethod;
+ attribute [Reflect] boolean formNoValidate;
+ attribute [Reflect] DOMString formTarget;
+ attribute [Reflect] DOMString name;
+ readonly attribute DOMString type;
+ attribute [Reflect] DOMString value;
+
+ readonly attribute boolean willValidate;
+ readonly attribute ValidityState validity;
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ void setCustomValidity(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString error);
+
+ readonly attribute NodeList labels;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ attribute [Reflect] DOMString accessKey;
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ void click();
+#endif
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLCanvasElement.idl b/elemental/idl/third_party/WebCore/html/HTMLCanvasElement.idl
new file mode 100644
index 0000000..2be96a5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLCanvasElement.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2006, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. 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.
+ */
+
+module html {
+
+ interface [
+ JSGenerateToNativeObject
+ ] HTMLCanvasElement : HTMLElement {
+
+ attribute long width;
+ attribute long height;
+
+ [Custom] DOMString toDataURL(in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString type)
+ raises(DOMException);
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ // The custom binding is needed to handle context creation attributes.
+ [Custom] DOMObject getContext(in [Optional=DefaultIsUndefined] DOMString contextId);
+#endif
+#endif
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLCollection.idl b/elemental/idl/third_party/WebCore/html/HTMLCollection.idl
new file mode 100644
index 0000000..7783776
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLCollection.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ IndexedGetter,
+ NamedGetter,
+ CustomToJSObject,
+ JSGenerateIsReachable,
+ ObjCPolymorphic
+ ] HTMLCollection {
+ readonly attribute unsigned long length;
+ Node item(in [Optional=DefaultIsUndefined] unsigned long index);
+ [Custom] Node namedItem(in [Optional=DefaultIsUndefined] DOMString name);
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ NodeList tags(in [Optional=DefaultIsUndefined] DOMString name);
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLDListElement.idl b/elemental/idl/third_party/WebCore/html/HTMLDListElement.idl
new file mode 100644
index 0000000..1a9326f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLDListElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLDListElement : HTMLElement {
+ attribute [Reflect] boolean compact;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLDataListElement.idl b/elemental/idl/third_party/WebCore/html/HTMLDataListElement.idl
new file mode 100644
index 0000000..1f38105
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLDataListElement.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2009, 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ interface [
+ Conditional=DATALIST,
+ ] HTMLDataListElement : HTMLElement {
+ readonly attribute HTMLCollection options;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLDetailsElement.idl b/elemental/idl/third_party/WebCore/html/HTMLDetailsElement.idl
new file mode 100644
index 0000000..5ad9508
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLDetailsElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLDetailsElement : HTMLElement {
+ attribute [Reflect] boolean open;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLDirectoryElement.idl b/elemental/idl/third_party/WebCore/html/HTMLDirectoryElement.idl
new file mode 100644
index 0000000..b096974
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLDirectoryElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLDirectoryElement : HTMLElement {
+ attribute [Reflect] boolean compact;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLDivElement.idl b/elemental/idl/third_party/WebCore/html/HTMLDivElement.idl
new file mode 100644
index 0000000..90fb84f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLDivElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLDivElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLDocument.idl b/elemental/idl/third_party/WebCore/html/HTMLDocument.idl
new file mode 100644
index 0000000..de9b51d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLDocument.idl
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ CustomNamedGetter,
+ V8CustomToJSObject
+ ] HTMLDocument : Document {
+ [JSCustom, V8Custom] void open();
+ void close();
+ [Custom] void write(in [Optional=DefaultIsUndefined] DOMString text);
+ [Custom] void writeln(in [Optional=DefaultIsUndefined] DOMString text);
+
+ readonly attribute HTMLCollection embeds;
+ readonly attribute HTMLCollection plugins;
+ readonly attribute HTMLCollection scripts;
+
+ // Extensions
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // FIXME: This should eventually be available (if they are wanted) for all languages.
+ attribute [Custom, Deletable] HTMLAllCollection all;
+#endif
+
+ void clear();
+
+ void captureEvents();
+ void releaseEvents();
+
+ readonly attribute long width;
+ readonly attribute long height;
+ attribute [TreatNullAs=NullString] DOMString dir;
+ attribute [TreatNullAs=NullString] DOMString designMode;
+ readonly attribute DOMString compatMode;
+
+ readonly attribute Element activeElement;
+ boolean hasFocus();
+
+ // Deprecated attributes
+ attribute [TreatNullAs=NullString] DOMString bgColor;
+ attribute [TreatNullAs=NullString] DOMString fgColor;
+ attribute [TreatNullAs=NullString] DOMString alinkColor;
+ attribute [TreatNullAs=NullString] DOMString linkColor;
+ attribute [TreatNullAs=NullString] DOMString vlinkColor;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLElement.idl b/elemental/idl/third_party/WebCore/html/HTMLElement.idl
new file mode 100644
index 0000000..4f5f236
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLElement.idl
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ JSGenerateToNativeObject,
+ JSCustomPushEventHandlerScope,
+ V8CustomToJSObject
+ ] HTMLElement : Element {
+ // iht.com relies on id returning the empty string when no id is present.
+ // Other browsers do this as well. So we don't convert null to JS null.
+ attribute [Reflect] DOMString id;
+ attribute [Reflect] DOMString title;
+ attribute [Reflect] DOMString lang;
+ attribute boolean translate;
+ attribute [Reflect] DOMString dir;
+ attribute [Reflect=class] DOMString className;
+ readonly attribute DOMTokenList classList;
+
+ attribute long tabIndex;
+ attribute boolean draggable;
+ attribute [Reflect] DOMString webkitdropzone;
+ attribute [Reflect] boolean hidden;
+ attribute [Reflect] DOMString accessKey;
+
+ // Extensions
+ attribute [TreatNullAs=NullString] DOMString innerHTML
+ setter raises(DOMException);
+ attribute [TreatNullAs=NullString] DOMString innerText
+ setter raises(DOMException);
+ attribute [TreatNullAs=NullString] DOMString outerHTML
+ setter raises(DOMException);
+ attribute [TreatNullAs=NullString] DOMString outerText
+ setter raises(DOMException);
+
+ Element insertAdjacentElement(in [Optional=DefaultIsUndefined] DOMString where,
+ in [Optional=DefaultIsUndefined] Element element)
+ raises(DOMException);
+ void insertAdjacentHTML(in [Optional=DefaultIsUndefined] DOMString where,
+ in [Optional=DefaultIsUndefined] DOMString html)
+ raises(DOMException);
+ void insertAdjacentText(in [Optional=DefaultIsUndefined] DOMString where,
+ in [Optional=DefaultIsUndefined] DOMString text)
+ raises(DOMException);
+
+ readonly attribute HTMLCollection children;
+
+ attribute [TreatNullAs=NullString] DOMString contentEditable
+ setter raises(DOMException);
+ readonly attribute boolean isContentEditable;
+
+ attribute boolean spellcheck;
+
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C // No Objective-C bindings yet.
+ attribute [Conditional=MICRODATA, Reflect] boolean itemScope;
+ readonly attribute [Conditional=MICRODATA] DOMSettableTokenList itemType;
+ attribute [Conditional=MICRODATA, Reflect, URL] DOMString itemId;
+
+ readonly attribute [Conditional=MICRODATA] DOMSettableTokenList itemRef;
+ readonly attribute [Conditional=MICRODATA] DOMSettableTokenList itemProp;
+
+#if defined(ENABLE_MICRODATA) && ENABLE_MICRODATA
+ readonly attribute [Conditional=MICRODATA] HTMLPropertiesCollection properties;
+#endif
+#endif
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ attribute [Conditional=MICRODATA, Custom] DOMObject itemValue
+ setter raises(DOMException);
+#endif
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ readonly attribute DOMString titleDisplayString;
+#endif
+
+ void click();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLEmbedElement.idl b/elemental/idl/third_party/WebCore/html/HTMLEmbedElement.idl
new file mode 100644
index 0000000..b6e3c16
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLEmbedElement.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ CustomNamedSetter,
+ JSCustomGetOwnPropertySlotAndDescriptor,
+ CustomCall
+ ] HTMLEmbedElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ attribute [Reflect] DOMString height;
+#else
+ attribute [Reflect] long height;
+#endif
+ attribute [Reflect] DOMString name;
+ attribute [Reflect, URL] DOMString src;
+ attribute [Reflect] DOMString type;
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ attribute [Reflect] DOMString width;
+#else
+ attribute [Reflect] long width;
+#endif
+
+#if defined(ENABLE_SVG) && ENABLE_SVG
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C || defined(ENABLE_SVG_DOM_OBJC_BINDINGS) && ENABLE_SVG_DOM_OBJC_BINDINGS
+ [CheckSecurityForNode] SVGDocument getSVGDocument() raises(DOMException);
+#endif
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLFieldSetElement.idl b/elemental/idl/third_party/WebCore/html/HTMLFieldSetElement.idl
new file mode 100644
index 0000000..d67b3f6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLFieldSetElement.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLFieldSetElement : HTMLElement {
+ attribute [Reflect] boolean disabled;
+ readonly attribute HTMLFormElement form;
+ attribute [Reflect] DOMString name;
+
+ readonly attribute DOMString type;
+
+ readonly attribute HTMLCollection elements;
+
+ readonly attribute boolean willValidate;
+ readonly attribute ValidityState validity;
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ void setCustomValidity(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString error);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLFontElement.idl b/elemental/idl/third_party/WebCore/html/HTMLFontElement.idl
new file mode 100644
index 0000000..141816d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLFontElement.idl
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLFontElement : HTMLElement {
+ attribute [Reflect] DOMString color;
+ attribute [Reflect] DOMString face;
+ attribute [Reflect] DOMString size;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLFormElement.idl b/elemental/idl/third_party/WebCore/html/HTMLFormElement.idl
new file mode 100644
index 0000000..b6a536c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLFormElement.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ IndexedGetter,
+ CustomNamedGetter
+ ] HTMLFormElement : HTMLElement {
+ attribute [Reflect=accept_charset] DOMString acceptCharset;
+ attribute [Reflect, URL] DOMString action;
+ attribute [Reflect] DOMString autocomplete;
+ attribute [TreatNullAs=NullString] DOMString enctype;
+ attribute [TreatNullAs=NullString] DOMString encoding;
+ attribute [TreatNullAs=NullString] DOMString method;
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] boolean noValidate;
+ attribute [Reflect] DOMString target;
+
+ readonly attribute HTMLCollection elements;
+ readonly attribute long length;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [ImplementedAs=submitFromJavaScript] void submit();
+#else
+ void submit();
+#endif
+ void reset();
+ boolean checkValidity();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLFrameElement.idl b/elemental/idl/third_party/WebCore/html/HTMLFrameElement.idl
new file mode 100644
index 0000000..f40f7b1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLFrameElement.idl
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLFrameElement : HTMLElement {
+
+ attribute [Reflect] DOMString frameBorder;
+ attribute [Reflect] DOMString longDesc;
+ attribute [Reflect] DOMString marginHeight;
+ attribute [Reflect] DOMString marginWidth;
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] boolean noResize;
+ attribute [Reflect] DOMString scrolling;
+ attribute [Reflect, URL] DOMString src;
+
+ // Introduced in DOM Level 2:
+ readonly attribute [CheckSecurityForNode] Document contentDocument;
+
+ // Extensions
+ readonly attribute DOMWindow contentWindow;
+
+#if defined(ENABLE_SVG) && ENABLE_SVG
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C || defined(ENABLE_SVG_DOM_OBJC_BINDINGS) && ENABLE_SVG_DOM_OBJC_BINDINGS
+ [CheckSecurityForNode] SVGDocument getSVGDocument()
+ raises(DOMException);
+#endif
+#endif
+
+ attribute [TreatNullAs=NullString, CustomSetter] DOMString location;
+
+ readonly attribute long width;
+ readonly attribute long height;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLFrameSetElement.idl b/elemental/idl/third_party/WebCore/html/HTMLFrameSetElement.idl
new file mode 100644
index 0000000..a3d4b3e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLFrameSetElement.idl
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserve
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ CustomNamedGetter
+ ] HTMLFrameSetElement : HTMLElement {
+ attribute [Reflect] DOMString cols;
+ attribute [Reflect] DOMString rows;
+
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ // Event handler attributes
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onbeforeunload;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onhashchange;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onmessage;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onoffline;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener ononline;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onpopstate;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onresize;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onstorage;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onunload;
+
+ attribute [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] EventListener onorientationchange;
+
+ // Overrides of Element attributes (with different implementation in bindings).
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onblur;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onerror;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onfocus;
+ attribute [NotEnumerable, JSWindowEventListener] EventListener onload;
+
+ // Not implemented yet.
+ // attribute [NotEnumerable, JSWindowEventListener] EventListener onafterprint;
+ // attribute [NotEnumerable, JSWindowEventListener] EventListener onbeforeprint;
+ // attribute [NotEnumerable, JSWindowEventListener] EventListener onredo;
+ // attribute [NotEnumerable, JSWindowEventListener] EventListener onundo;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLHRElement.idl b/elemental/idl/third_party/WebCore/html/HTMLHRElement.idl
new file mode 100644
index 0000000..23a57da
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLHRElement.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLHRElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+ attribute [Reflect] boolean noShade;
+ attribute [Reflect] DOMString size;
+ attribute [Reflect] DOMString width;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLHeadElement.idl b/elemental/idl/third_party/WebCore/html/HTMLHeadElement.idl
new file mode 100644
index 0000000..59bdbf0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLHeadElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLHeadElement : HTMLElement {
+ attribute [Reflect] DOMString profile;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLHeadingElement.idl b/elemental/idl/third_party/WebCore/html/HTMLHeadingElement.idl
new file mode 100644
index 0000000..e419c1c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLHeadingElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLHeadingElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLHtmlElement.idl b/elemental/idl/third_party/WebCore/html/HTMLHtmlElement.idl
new file mode 100644
index 0000000..03c661c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLHtmlElement.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLHtmlElement : HTMLElement {
+ attribute [Reflect] DOMString version;
+ attribute [Reflect, URL] DOMString manifest;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLIFrameElement.idl b/elemental/idl/third_party/WebCore/html/HTMLIFrameElement.idl
new file mode 100644
index 0000000..2dbf38d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLIFrameElement.idl
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLIFrameElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+ attribute [Reflect] DOMString frameBorder;
+ attribute [Reflect] DOMString height;
+ attribute [Reflect] DOMString longDesc;
+ attribute [Reflect] DOMString marginHeight;
+ attribute [Reflect] DOMString marginWidth;
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] DOMString sandbox;
+ attribute [Reflect, Conditional=IFRAME_SEAMLESS] boolean seamless;
+ attribute [Reflect] DOMString scrolling;
+ attribute [Reflect, URL] DOMString src;
+ attribute [Reflect] DOMString srcdoc;
+ attribute [Reflect] DOMString width;
+
+ // Introduced in DOM Level 2:
+ readonly attribute [CheckSecurityForNode] Document contentDocument;
+
+ // Extensions
+ readonly attribute DOMWindow contentWindow;
+
+#if defined(ENABLE_SVG) && ENABLE_SVG
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C || defined(ENABLE_SVG_DOM_OBJC_BINDINGS) && ENABLE_SVG_DOM_OBJC_BINDINGS
+ [CheckSecurityForNode] SVGDocument getSVGDocument()
+ raises(DOMException);
+#endif
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLImageElement.idl b/elemental/idl/third_party/WebCore/html/HTMLImageElement.idl
new file mode 100644
index 0000000..d893b6c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLImageElement.idl
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2006, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ JSGenerateToNativeObject
+ ] HTMLImageElement : HTMLElement {
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] DOMString align;
+ attribute [Reflect] DOMString alt;
+ attribute [Reflect] DOMString border;
+ attribute [Reflect] DOMString crossOrigin;
+ attribute long height;
+ attribute [Reflect] long hspace;
+ attribute [Reflect] boolean isMap;
+ attribute [Reflect, URL] DOMString longDesc;
+ attribute [Reflect, URL] DOMString src;
+ attribute [Reflect] DOMString useMap;
+ attribute [Reflect] long vspace;
+ attribute long width;
+
+ // Extensions
+ readonly attribute boolean complete;
+ attribute [Reflect,URL] DOMString lowsrc;
+ readonly attribute long naturalHeight;
+ readonly attribute long naturalWidth;
+ readonly attribute long x;
+ readonly attribute long y;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // Objective-C extension:
+ readonly attribute DOMString altDisplayString;
+ readonly attribute URL absoluteImageURL;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLInputElement.idl b/elemental/idl/third_party/WebCore/html/HTMLInputElement.idl
new file mode 100644
index 0000000..e326ce7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLInputElement.idl
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2012 Samsung Electronics. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLInputElement : HTMLElement {
+ attribute [Reflect] DOMString accept;
+ attribute [Reflect] DOMString alt;
+ attribute [Reflect] DOMString autocomplete;
+ attribute [Reflect] boolean autofocus;
+ attribute [Reflect=checked] boolean defaultChecked;
+ attribute boolean checked;
+ attribute [Reflect] DOMString dirName;
+ attribute [Reflect] boolean disabled;
+ readonly attribute HTMLFormElement form;
+ attribute FileList files;
+ attribute [Reflect, URL] DOMString formAction;
+ attribute [TreatNullAs=NullString] DOMString formEnctype;
+ attribute [TreatNullAs=NullString] DOMString formMethod;
+ attribute [Reflect] boolean formNoValidate;
+ attribute [Reflect] DOMString formTarget;
+ attribute unsigned long height;
+ attribute boolean indeterminate;
+ readonly attribute [Conditional=DATALIST] HTMLElement list;
+ attribute [Reflect] DOMString max;
+ attribute long maxLength setter raises(DOMException);
+ attribute [Reflect] DOMString min;
+ attribute [Reflect] boolean multiple;
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] DOMString pattern;
+ attribute [Reflect] DOMString placeholder;
+ attribute [Reflect] boolean readOnly;
+ attribute [Reflect] boolean required;
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ attribute [ObjCImplementedAsUnsignedLong] DOMString size; // DOM level 2 changed this to a long, but ObjC API is a string
+#else
+ attribute unsigned long size; // Changed string -> long -> unsigned long
+#endif
+ attribute [Reflect, URL] DOMString src;
+ attribute [Reflect] DOMString step;
+ attribute [TreatNullAs=NullString] DOMString type; // readonly dropped as part of DOM level 2
+ attribute [TreatNullAs=NullString] DOMString defaultValue;
+ attribute [TreatNullAs=NullString] DOMString value;
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ attribute Date valueAsDate setter raises(DOMException);
+#endif
+ attribute double valueAsNumber setter raises(DOMException);
+
+ void stepUp(in [Optional] long n) raises(DOMException);
+ void stepDown(in [Optional] long n) raises(DOMException);
+
+ attribute unsigned long width;
+ readonly attribute boolean willValidate;
+ readonly attribute ValidityState validity;
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ void setCustomValidity(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString error);
+
+ readonly attribute NodeList labels;
+
+ void select();
+ attribute [Custom] long selectionStart;
+ attribute [Custom] long selectionEnd;
+ attribute [Custom] DOMString selectionDirection;
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ [Custom] void setSelectionRange(in long start, in long end);
+#else
+ [Custom] void setSelectionRange(in [Optional=DefaultIsUndefined] long start,
+ in [Optional=DefaultIsUndefined] long end,
+ in [Optional] DOMString direction);
+#endif
+
+ // Non-standard attributes
+ attribute [Reflect] DOMString align;
+ attribute [Conditional=DIRECTORY_UPLOAD, Reflect] boolean webkitdirectory;
+ attribute [Reflect] DOMString useMap;
+ attribute [Reflect] boolean incremental;
+ attribute [Conditional=INPUT_SPEECH, Reflect, V8EnabledAtRuntime] boolean webkitSpeech;
+ attribute [Conditional=INPUT_SPEECH, Reflect, V8EnabledAtRuntime] boolean webkitGrammar;
+ attribute [Conditional=INPUT_SPEECH, NotEnumerable] EventListener onwebkitspeechchange;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ attribute [Reflect] DOMString accessKey;
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ void click();
+#endif
+
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
+ void setValueForUser(in [TreatNullAs=NullString] DOMString value);
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // Objective-C extension:
+ readonly attribute DOMString altDisplayString;
+ readonly attribute URL absoluteImageURL;
+#endif
+
+ // See http://www.w3.org/TR/html-media-capture/
+ attribute [Conditional=MEDIA_CAPTURE] DOMString capture;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLIntentElement.idl b/elemental/idl/third_party/WebCore/html/HTMLIntentElement.idl
new file mode 100644
index 0000000..608c5ac
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLIntentElement.idl
@@ -0,0 +1,38 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=WEB_INTENTS_TAG
+ ] HTMLIntentElement : HTMLElement {
+ attribute [Reflect] DOMString action;
+ attribute [Reflect] DOMString type;
+ attribute [Reflect, URL] DOMString href;
+ attribute [Reflect] DOMString title;
+ attribute [Reflect] DOMString disposition;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLKeygenElement.idl b/elemental/idl/third_party/WebCore/html/HTMLKeygenElement.idl
new file mode 100644
index 0000000..914fb99
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLKeygenElement.idl
@@ -0,0 +1,52 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+
+ interface HTMLKeygenElement : HTMLElement {
+ attribute [Reflect] boolean autofocus;
+ attribute [Reflect] DOMString challenge;
+ attribute [Reflect] boolean disabled;
+ readonly attribute HTMLFormElement form;
+ attribute [Reflect] DOMString keytype;
+ attribute DOMString name;
+
+ readonly attribute DOMString type;
+
+ readonly attribute boolean willValidate;
+ readonly attribute ValidityState validity;
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ void setCustomValidity(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString error);
+
+ readonly attribute NodeList labels;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLLIElement.idl b/elemental/idl/third_party/WebCore/html/HTMLLIElement.idl
new file mode 100644
index 0000000..2dc541b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLLIElement.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLLIElement : HTMLElement {
+ attribute [Reflect] DOMString type;
+ attribute [Reflect] long value;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLLabelElement.idl b/elemental/idl/third_party/WebCore/html/HTMLLabelElement.idl
new file mode 100644
index 0000000..bf79680
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLLabelElement.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLLabelElement : HTMLElement {
+ readonly attribute HTMLFormElement form;
+ attribute [Reflect=for] DOMString htmlFor;
+ readonly attribute HTMLElement control;
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ attribute [Reflect] DOMString accessKey;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLLegendElement.idl b/elemental/idl/third_party/WebCore/html/HTMLLegendElement.idl
new file mode 100644
index 0000000..bf755a5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLLegendElement.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLLegendElement : HTMLElement {
+ readonly attribute HTMLFormElement form;
+ attribute [Reflect] DOMString align;
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ attribute [Reflect] DOMString accessKey;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLLinkElement.idl b/elemental/idl/third_party/WebCore/html/HTMLLinkElement.idl
new file mode 100644
index 0000000..8d16f25
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLLinkElement.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLLinkElement : HTMLElement {
+ attribute [Reflect] boolean disabled;
+ attribute [Reflect] DOMString charset;
+ attribute [Reflect, URL] DOMString href;
+ attribute [Reflect] DOMString hreflang;
+ attribute [Reflect] DOMString media;
+ attribute [Reflect] DOMString rel;
+ attribute [Reflect] DOMString rev;
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ attribute [Custom] DOMSettableTokenList sizes;
+#endif
+ attribute [Reflect] DOMString target;
+ attribute [Reflect] DOMString type;
+
+ // DOM Level 2 Style
+ readonly attribute StyleSheet sheet;
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // Objective-C extension:
+ readonly attribute URL absoluteLinkURL;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLMapElement.idl b/elemental/idl/third_party/WebCore/html/HTMLMapElement.idl
new file mode 100644
index 0000000..7811c9a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLMapElement.idl
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLMapElement : HTMLElement {
+ readonly attribute HTMLCollection areas;
+ attribute [Reflect] DOMString name;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLMarqueeElement.idl b/elemental/idl/third_party/WebCore/html/HTMLMarqueeElement.idl
new file mode 100644
index 0000000..3174fac
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLMarqueeElement.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLMarqueeElement : HTMLElement {
+ void start();
+ void stop();
+
+ attribute [Reflect] DOMString behavior;
+ attribute [Reflect] DOMString bgColor;
+ attribute [Reflect] DOMString direction;
+ attribute [Reflect] DOMString height;
+ attribute [Reflect] unsigned long hspace;
+ attribute long loop setter raises(DOMException);
+ attribute long scrollAmount setter raises(DOMException);
+ attribute long scrollDelay setter raises(DOMException);
+ attribute [Reflect] boolean trueSpeed;
+ attribute [Reflect] unsigned long vspace;
+ attribute [Reflect] DOMString width;
+
+ // FIXME: Implement the following event handler attributes
+ // https://bugs.webkit.org/show_bug.cgi?id=49788
+ // attribute EventListener onbounce;
+ // attribute EventListener onfinish;
+ // attribute EventListener onstart;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLMediaElement.idl b/elemental/idl/third_party/WebCore/html/HTMLMediaElement.idl
new file mode 100644
index 0000000..ac0fa46
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLMediaElement.idl
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2007, 2010, 2011 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=VIDEO,
+ JSGenerateToNativeObject
+ ] HTMLMediaElement : HTMLElement {
+
+ // error state
+ readonly attribute MediaError error;
+
+ // network state
+ attribute [Reflect, URL] DOMString src;
+ readonly attribute [URL] DOMString currentSrc;
+
+ const unsigned short NETWORK_EMPTY = 0;
+ const unsigned short NETWORK_IDLE = 1;
+ const unsigned short NETWORK_LOADING = 2;
+ const unsigned short NETWORK_NO_SOURCE = 3;
+ readonly attribute unsigned short networkState;
+ attribute DOMString preload;
+
+ readonly attribute TimeRanges buffered;
+ void load()
+ raises (DOMException);
+#if defined(ENABLE_ENCRYPTED_MEDIA) && ENABLE_ENCRYPTED_MEDIA
+ DOMString canPlayType(in [Optional=DefaultIsUndefined] DOMString type, in [Optional=DefaultIsNullString, TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem);
+#else
+ DOMString canPlayType(in [Optional=DefaultIsUndefined] DOMString type);
+#endif
+
+ // ready state
+ const unsigned short HAVE_NOTHING = 0;
+ const unsigned short HAVE_METADATA = 1;
+ const unsigned short HAVE_CURRENT_DATA = 2;
+ const unsigned short HAVE_FUTURE_DATA = 3;
+ const unsigned short HAVE_ENOUGH_DATA = 4;
+ readonly attribute unsigned short readyState;
+ readonly attribute boolean seeking;
+
+ // playback state
+ attribute float currentTime
+ setter raises (DOMException);
+ readonly attribute double initialTime;
+ readonly attribute float startTime;
+ readonly attribute float duration;
+ readonly attribute boolean paused;
+ attribute float defaultPlaybackRate;
+ attribute float playbackRate;
+ readonly attribute TimeRanges played;
+ readonly attribute TimeRanges seekable;
+ readonly attribute boolean ended;
+ attribute [Reflect] boolean autoplay;
+ attribute [Reflect] boolean loop;
+ void play();
+ void pause();
+
+ // controls
+ attribute boolean controls;
+ attribute float volume
+ setter raises (DOMException);
+ attribute boolean muted;
+ attribute [Reflect=muted] boolean defaultMuted;
+
+ // WebKit extensions
+ attribute boolean webkitPreservesPitch;
+
+ readonly attribute boolean webkitHasClosedCaptions;
+ attribute boolean webkitClosedCaptionsVisible;
+
+ // The number of bytes consumed by the media decoder.
+ readonly attribute [Conditional=MEDIA_STATISTICS] unsigned long webkitAudioDecodedByteCount;
+ readonly attribute [Conditional=MEDIA_STATISTICS] unsigned long webkitVideoDecodedByteCount;
+
+#if defined(ENABLE_MEDIA_SOURCE) && ENABLE_MEDIA_SOURCE
+ // URL passed to src attribute to enable the media source logic.
+ readonly attribute [V8EnabledAtRuntime=mediaSource, URL] DOMString webkitMediaSourceURL;
+
+ // Manages IDs for appending media to the source.
+ [V8EnabledAtRuntime=mediaSource] void webkitSourceAddId(in DOMString id, in DOMString type) raises (DOMException);
+ [V8EnabledAtRuntime=mediaSource] void webkitSourceRemoveId(in DOMString id) raises (DOMException);
+
+ // Returns the time ranges buffered for a specific source ID.
+ [V8EnabledAtRuntime=mediaSource] TimeRanges webkitSourceBuffered(in DOMString id) raises (DOMException);
+
+ // Appends segment data.
+ [V8EnabledAtRuntime=mediaSource] void webkitSourceAppend(in DOMString id, in Uint8Array data) raises (DOMException);
+
+ // Aborts the current segment.
+ [V8EnabledAtRuntime=mediaSource] void webkitSourceAbort(in DOMString id) raises (DOMException);
+
+ // Signals the end of stream.
+ [V8EnabledAtRuntime=mediaSource] const unsigned short EOS_NO_ERROR = 0; // End of stream reached w/o error.
+ [V8EnabledAtRuntime=mediaSource] const unsigned short EOS_NETWORK_ERR = 1; // A network error triggered end of stream.
+ [V8EnabledAtRuntime=mediaSource] const unsigned short EOS_DECODE_ERR = 2; // A decode error triggered end of stream.
+ [V8EnabledAtRuntime=mediaSource] void webkitSourceEndOfStream(in unsigned short status) raises (DOMException);
+
+ // Indicates the current state of the media source.
+ [V8EnabledAtRuntime=mediaSource] const unsigned short SOURCE_CLOSED = 0;
+ [V8EnabledAtRuntime=mediaSource] const unsigned short SOURCE_OPEN = 1;
+ [V8EnabledAtRuntime=mediaSource] const unsigned short SOURCE_ENDED = 2;
+ readonly attribute [V8EnabledAtRuntime=mediaSource] unsigned short webkitSourceState;
+
+ attribute [V8EnabledAtRuntime=mediaSource] EventListener onwebkitsourceopen;
+ attribute [V8EnabledAtRuntime=mediaSource] EventListener onwebkitsourceended;
+ attribute [V8EnabledAtRuntime=mediaSource] EventListener onwebkitsourceclose;
+#endif
+
+#if defined(ENABLE_ENCRYPTED_MEDIA) && ENABLE_ENCRYPTED_MEDIA
+ [V8EnabledAtRuntime=encryptedMedia] void webkitGenerateKeyRequest(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, in [Optional] Uint8Array initData)
+ raises (DOMException);
+ [V8EnabledAtRuntime=encryptedMedia] void webkitAddKey(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, in Uint8Array key, in [Optional] Uint8Array initData, in [Optional=DefaultIsNullString] DOMString sessionId)
+ raises (DOMException);
+ [V8EnabledAtRuntime=encryptedMedia] void webkitCancelKeyRequest(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, in [Optional=DefaultIsNullString] DOMString sessionId)
+ raises (DOMException);
+
+ attribute [V8EnabledAtRuntime=encryptedMedia] EventListener onwebkitkeyadded;
+ attribute [V8EnabledAtRuntime=encryptedMedia] EventListener onwebkitkeyerror;
+ attribute [V8EnabledAtRuntime=encryptedMedia] EventListener onwebkitkeymessage;
+ attribute [V8EnabledAtRuntime=encryptedMedia] EventListener onwebkitneedkey;
+#endif
+
+#if defined(ENABLE_VIDEO_TRACK) && ENABLE_VIDEO_TRACK
+ [V8EnabledAtRuntime=webkitVideoTrack] TextTrack addTextTrack(in DOMString kind, in [Optional] DOMString label, in [Optional] DOMString language)
+ raises (DOMException);
+ readonly attribute [V8EnabledAtRuntime=webkitVideoTrack] TextTrackList textTracks;
+#endif
+
+ attribute [Reflect, TreatNullAs=NullString] DOMString mediaGroup;
+ attribute [CustomSetter] MediaController controller;
+};
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLMenuElement.idl b/elemental/idl/third_party/WebCore/html/HTMLMenuElement.idl
new file mode 100644
index 0000000..ff14754
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLMenuElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLMenuElement : HTMLElement {
+ attribute [Reflect] boolean compact;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLMetaElement.idl b/elemental/idl/third_party/WebCore/html/HTMLMetaElement.idl
new file mode 100644
index 0000000..f4ffb2d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLMetaElement.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLMetaElement : HTMLElement {
+ attribute [Reflect] DOMString content;
+ attribute [Reflect=http_equiv] DOMString httpEquiv;
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] DOMString scheme;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLMeterElement.idl b/elemental/idl/third_party/WebCore/html/HTMLMeterElement.idl
new file mode 100644
index 0000000..7c11fe4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLMeterElement.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+ interface [
+ Conditional=METER_TAG
+ ] HTMLMeterElement : HTMLElement {
+ attribute double value
+ setter raises(DOMException);
+ attribute double min
+ setter raises(DOMException);
+ attribute double max
+ setter raises(DOMException);
+ attribute double low
+ setter raises(DOMException);
+ attribute double high
+ setter raises(DOMException);
+ attribute double optimum
+ setter raises(DOMException);
+ readonly attribute NodeList labels;
+ };
+}
+
diff --git a/elemental/idl/third_party/WebCore/html/HTMLModElement.idl b/elemental/idl/third_party/WebCore/html/HTMLModElement.idl
new file mode 100644
index 0000000..ad8281c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLModElement.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLModElement : HTMLElement {
+ attribute [Reflect, URL] DOMString cite;
+ attribute [Reflect] DOMString dateTime;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLOListElement.idl b/elemental/idl/third_party/WebCore/html/HTMLOListElement.idl
new file mode 100644
index 0000000..8d1d3a4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLOListElement.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLOListElement : HTMLElement {
+ attribute [Reflect] boolean compact;
+ attribute long start;
+ attribute [Reflect] boolean reversed;
+ attribute [Reflect] DOMString type;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLObjectElement.idl b/elemental/idl/third_party/WebCore/html/HTMLObjectElement.idl
new file mode 100644
index 0000000..f1055fd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLObjectElement.idl
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ CustomNamedSetter,
+ JSCustomGetOwnPropertySlotAndDescriptor,
+ CustomCall
+ ] HTMLObjectElement : HTMLElement {
+ readonly attribute HTMLFormElement form;
+ attribute [Reflect] DOMString code;
+ attribute [Reflect] DOMString align;
+ attribute [Reflect] DOMString archive;
+ attribute [Reflect] DOMString border;
+ attribute [Reflect] DOMString codeBase;
+ attribute [Reflect] DOMString codeType;
+ attribute [Reflect, URL] DOMString data;
+ attribute [Reflect] boolean declare;
+ attribute [Reflect] DOMString height;
+ attribute [Reflect] long hspace;
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] DOMString standby;
+ attribute [Reflect] DOMString type;
+ attribute [Reflect] DOMString useMap;
+ attribute [Reflect] long vspace;
+ attribute [Reflect] DOMString width;
+ readonly attribute boolean willValidate;
+ readonly attribute ValidityState validity;
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ void setCustomValidity(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString error);
+
+ // Introduced in DOM Level 2:
+ readonly attribute [CheckSecurityForNode] Document contentDocument;
+
+#if defined(ENABLE_SVG) && ENABLE_SVG
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C || defined(ENABLE_SVG_DOM_OBJC_BINDINGS) && ENABLE_SVG_DOM_OBJC_BINDINGS
+ [CheckSecurityForNode] SVGDocument getSVGDocument() raises(DOMException);
+#endif
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // Objective-C extension:
+ readonly attribute URL absoluteImageURL;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLOptGroupElement.idl b/elemental/idl/third_party/WebCore/html/HTMLOptGroupElement.idl
new file mode 100644
index 0000000..75cead0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLOptGroupElement.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLOptGroupElement : HTMLElement {
+ attribute [Reflect] boolean disabled;
+ attribute [Reflect] DOMString label;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLOptionElement.idl b/elemental/idl/third_party/WebCore/html/HTMLOptionElement.idl
new file mode 100644
index 0000000..b7b3489
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLOptionElement.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple, Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ JSGenerateToNativeObject,
+ NamedConstructor=Option(in [Optional=DefaultIsNullString] DOMString data, in [Optional=DefaultIsNullString] DOMString value, in [Optional=DefaultIsUndefined] boolean defaultSelected, in [Optional=DefaultIsUndefined] boolean selected),
+ ConstructorRaisesException
+ ] HTMLOptionElement : HTMLElement {
+ attribute [Reflect] boolean disabled;
+ readonly attribute HTMLFormElement form;
+ attribute DOMString label;
+ attribute [Reflect=selected] boolean defaultSelected;
+ attribute boolean selected;
+ attribute DOMString value;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ attribute DOMString text setter raises(DOMException);
+#else
+ readonly attribute DOMString text;
+#endif
+ readonly attribute long index;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLOptionsCollection.idl b/elemental/idl/third_party/WebCore/html/HTMLOptionsCollection.idl
new file mode 100644
index 0000000..0476e65
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLOptionsCollection.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ JSGenerateToNativeObject,
+ CustomIndexedSetter
+ ] HTMLOptionsCollection : HTMLCollection {
+ attribute long selectedIndex;
+ attribute [Custom] unsigned long length
+ setter raises (DOMException);
+
+ [Custom] void add(in [Optional=DefaultIsUndefined] HTMLOptionElement option,
+ in [Optional] unsigned long index)
+ raises (DOMException);
+ [Custom] void remove(in [Optional=DefaultIsUndefined] unsigned long index);
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ Node item(in unsigned long index);
+ Node namedItem(in DOMString name);
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLOutputElement.idl b/elemental/idl/third_party/WebCore/html/HTMLOutputElement.idl
new file mode 100644
index 0000000..35761c3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLOutputElement.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module html {
+ interface HTMLOutputElement : HTMLElement {
+ attribute [Custom] DOMSettableTokenList htmlFor;
+ readonly attribute HTMLFormElement form;
+ attribute [Reflect] DOMString name;
+
+ readonly attribute DOMString type;
+ attribute [TreatNullAs=NullString] DOMString defaultValue;
+ attribute [TreatNullAs=NullString] DOMString value;
+
+ readonly attribute boolean willValidate;
+ readonly attribute ValidityState validity;
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ void setCustomValidity(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString error);
+
+ readonly attribute NodeList labels;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLParagraphElement.idl b/elemental/idl/third_party/WebCore/html/HTMLParagraphElement.idl
new file mode 100644
index 0000000..246e9e9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLParagraphElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLParagraphElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLParamElement.idl b/elemental/idl/third_party/WebCore/html/HTMLParamElement.idl
new file mode 100644
index 0000000..1f0c0de
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLParamElement.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLParamElement : HTMLElement {
+ attribute [Reflect] DOMString name;
+ attribute [Reflect] DOMString type;
+ attribute [Reflect] DOMString value;
+ attribute [Reflect] DOMString valueType;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLPreElement.idl b/elemental/idl/third_party/WebCore/html/HTMLPreElement.idl
new file mode 100644
index 0000000..ae137f0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLPreElement.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All right reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLPreElement : HTMLElement {
+ // FIXME: DOM spec says that width should be of type DOMString
+ // see http://bugs.webkit.org/show_bug.cgi?id=8992
+ attribute [Reflect] long width;
+
+ // Extensions
+ attribute [Reflect] boolean wrap;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLProgressElement.idl b/elemental/idl/third_party/WebCore/html/HTMLProgressElement.idl
new file mode 100644
index 0000000..ace4def
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLProgressElement.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+ interface [
+ Conditional=PROGRESS_TAG
+ ] HTMLProgressElement : HTMLElement {
+ attribute double value
+ setter raises(DOMException);
+ attribute double max
+ setter raises(DOMException);
+ readonly attribute double position;
+ readonly attribute NodeList labels;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLPropertiesCollection.idl b/elemental/idl/third_party/WebCore/html/HTMLPropertiesCollection.idl
new file mode 100644
index 0000000..d2c8e31
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLPropertiesCollection.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2011 Motorola Mobility, 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.
+ *
+ * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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 HOLDER 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=MICRODATA,
+ JSGenerateToJSObject,
+ IndexedGetter,
+ NamedGetter
+ ] HTMLPropertiesCollection : HTMLCollection {
+ readonly attribute unsigned long length;
+ Node item(in unsigned long index);
+
+ readonly attribute DOMStringList names;
+
+ // FIXME: HTML5 specifies that this should return PropertyNodeList.
+ NodeList namedItem(in DOMString name);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLQuoteElement.idl b/elemental/idl/third_party/WebCore/html/HTMLQuoteElement.idl
new file mode 100644
index 0000000..fa1bcdb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLQuoteElement.idl
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLQuoteElement : HTMLElement {
+ attribute [Reflect, URL] DOMString cite;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLScriptElement.idl b/elemental/idl/third_party/WebCore/html/HTMLScriptElement.idl
new file mode 100644
index 0000000..a41e104
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLScriptElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLScriptElement : HTMLElement {
+ attribute [TreatNullAs=NullString] DOMString text;
+ attribute [Reflect=for] DOMString htmlFor;
+ attribute [Reflect] DOMString event;
+ attribute [Reflect] DOMString charset;
+ attribute boolean async;
+ attribute [Reflect] boolean defer;
+ attribute [Reflect, URL] DOMString src;
+ attribute [Reflect] DOMString type;
+ attribute [Reflect] DOMString crossOrigin;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLSelectElement.idl b/elemental/idl/third_party/WebCore/html/HTMLSelectElement.idl
new file mode 100644
index 0000000..415b1b9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLSelectElement.idl
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ IndexedGetter,
+ CustomIndexedSetter
+ ] HTMLSelectElement : HTMLElement {
+ attribute [Reflect] boolean autofocus;
+ attribute [Reflect] boolean disabled;
+ readonly attribute HTMLFormElement form;
+ attribute boolean multiple;
+ attribute [TreatNullAs=NullString] DOMString name;
+ attribute [Reflect] boolean required;
+ attribute long size;
+
+ readonly attribute DOMString type;
+
+ readonly attribute HTMLOptionsCollection options;
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ // DOM Level 2 changes type of length attribute to unsigned long,
+ // for compatibility we keep DOM Level 1 definition.
+ readonly attribute long length;
+#else
+ attribute unsigned long length setter raises (DOMException);
+#endif
+ Node item(in [IsIndex,Optional=DefaultIsUndefined] unsigned long index);
+ Node namedItem(in [Optional=DefaultIsUndefined] DOMString name);
+ [ObjCLegacyUnnamedParameters] void add(in [Optional=DefaultIsUndefined] HTMLElement element,
+ in [Optional=DefaultIsUndefined] HTMLElement before) raises(DOMException);
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // In JavaScript, we support both option index and option object parameters.
+ // As of this writing this cannot be auto-generated.
+ [Custom] void remove(in long index);
+ [Custom] void remove(in HTMLOptionElement option);
+#else
+ void remove(in long index);
+#endif
+ readonly attribute HTMLCollection selectedOptions;
+ attribute long selectedIndex;
+ attribute [TreatNullAs=NullString] DOMString value;
+
+ readonly attribute boolean willValidate;
+ readonly attribute ValidityState validity;
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ void setCustomValidity(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString error);
+
+ readonly attribute NodeList labels;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLSourceElement.idl b/elemental/idl/third_party/WebCore/html/HTMLSourceElement.idl
new file mode 100644
index 0000000..dc70714
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLSourceElement.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2007, 2010 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=VIDEO,
+ ] HTMLSourceElement : HTMLElement {
+ attribute [Reflect, URL] DOMString src;
+ attribute DOMString type;
+ attribute DOMString media;
+};
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLSpanElement.idl b/elemental/idl/third_party/WebCore/html/HTMLSpanElement.idl
new file mode 100644
index 0000000..d6d4e59
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLSpanElement.idl
@@ -0,0 +1,32 @@
+/*
+ * 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 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 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.
+ */
+
+module html {
+
+ // http://www.whatwg.org/specs/web-apps/current-work/#htmlspanelement
+ interface HTMLSpanElement : HTMLElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLStyleElement.idl b/elemental/idl/third_party/WebCore/html/HTMLStyleElement.idl
new file mode 100644
index 0000000..1b9abd4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLStyleElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLStyleElement : HTMLElement {
+ attribute boolean disabled;
+ attribute [Conditional=STYLE_SCOPED, V8EnabledAtRuntime=styleScoped] boolean scoped;
+ attribute [Reflect] DOMString media;
+ attribute [Reflect] DOMString type;
+
+ // DOM Level 2 Style
+ readonly attribute StyleSheet sheet;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLTableCaptionElement.idl b/elemental/idl/third_party/WebCore/html/HTMLTableCaptionElement.idl
new file mode 100644
index 0000000..0759539
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLTableCaptionElement.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ JSGenerateToNativeObject
+ ] HTMLTableCaptionElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLTableCellElement.idl b/elemental/idl/third_party/WebCore/html/HTMLTableCellElement.idl
new file mode 100644
index 0000000..ae286f4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLTableCellElement.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLTableCellElement : HTMLElement {
+ readonly attribute long cellIndex;
+ attribute [Reflect] DOMString abbr;
+ attribute [Reflect] DOMString align;
+ attribute [Reflect] DOMString axis;
+ attribute [Reflect] DOMString bgColor;
+ attribute [Reflect=char] DOMString ch;
+ attribute [Reflect=charoff] DOMString chOff;
+ attribute long colSpan;
+ attribute [Reflect] DOMString headers;
+ attribute [Reflect] DOMString height;
+ attribute [Reflect] boolean noWrap;
+ attribute long rowSpan;
+ attribute [Reflect] DOMString scope;
+ attribute [Reflect] DOMString vAlign;
+ attribute [Reflect] DOMString width;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLTableColElement.idl b/elemental/idl/third_party/WebCore/html/HTMLTableColElement.idl
new file mode 100644
index 0000000..a6e6654
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLTableColElement.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLTableColElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+ attribute [Reflect=char] DOMString ch;
+ attribute [Reflect=charoff] DOMString chOff;
+ attribute long span;
+ attribute [Reflect] DOMString vAlign;
+ attribute [Reflect] DOMString width;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLTableElement.idl b/elemental/idl/third_party/WebCore/html/HTMLTableElement.idl
new file mode 100644
index 0000000..190861a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLTableElement.idl
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLTableElement : HTMLElement {
+ attribute HTMLTableCaptionElement caption setter raises(DOMException);
+ attribute HTMLTableSectionElement tHead setter raises(DOMException);
+ attribute HTMLTableSectionElement tFoot setter raises(DOMException);
+
+ readonly attribute HTMLCollection rows;
+ readonly attribute HTMLCollection tBodies;
+ attribute [Reflect] DOMString align;
+ attribute [Reflect] DOMString bgColor;
+ attribute [Reflect] DOMString border;
+ attribute [Reflect] DOMString cellPadding;
+ attribute [Reflect] DOMString cellSpacing;
+
+ attribute [Reflect] DOMString frame;
+
+ attribute [Reflect] DOMString rules;
+ attribute [Reflect] DOMString summary;
+ attribute [Reflect] DOMString width;
+
+ HTMLElement createTHead();
+ void deleteTHead();
+ HTMLElement createTFoot();
+ void deleteTFoot();
+ HTMLElement createTBody();
+ HTMLElement createCaption();
+ void deleteCaption();
+
+ HTMLElement insertRow(in [Optional=DefaultIsUndefined] long index) raises(DOMException);
+ void deleteRow(in [Optional=DefaultIsUndefined] long index) raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLTableRowElement.idl b/elemental/idl/third_party/WebCore/html/HTMLTableRowElement.idl
new file mode 100644
index 0000000..b16d754
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLTableRowElement.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple Inc. ALl rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLTableRowElement : HTMLElement {
+ readonly attribute long rowIndex;
+ readonly attribute long sectionRowIndex;
+ readonly attribute HTMLCollection cells;
+ attribute [Reflect] DOMString align;
+ attribute [Reflect] DOMString bgColor;
+ attribute [Reflect=char] DOMString ch;
+ attribute [Reflect=charoff] DOMString chOff;
+ attribute [Reflect] DOMString vAlign;
+ HTMLElement insertCell(in [Optional=DefaultIsUndefined] long index) raises(DOMException);
+ void deleteCell(in [Optional=DefaultIsUndefined] long index) raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLTableSectionElement.idl b/elemental/idl/third_party/WebCore/html/HTMLTableSectionElement.idl
new file mode 100644
index 0000000..88f5336
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLTableSectionElement.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface [
+ JSGenerateToNativeObject
+ ] HTMLTableSectionElement : HTMLElement {
+ attribute [Reflect] DOMString align;
+ attribute [Reflect=char] DOMString ch;
+ attribute [Reflect=charoff] DOMString chOff;
+ attribute [Reflect] DOMString vAlign;
+ readonly attribute HTMLCollection rows;
+ HTMLElement insertRow(in [Optional=DefaultIsUndefined] long index) raises(DOMException);
+ void deleteRow(in [Optional=DefaultIsUndefined] long index) raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLTextAreaElement.idl b/elemental/idl/third_party/WebCore/html/HTMLTextAreaElement.idl
new file mode 100644
index 0000000..f9d80b5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLTextAreaElement.idl
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2011 Motorola Mobility, Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLTextAreaElement : HTMLElement {
+ attribute [Reflect] boolean autofocus;
+ attribute long cols;
+ attribute [Reflect] DOMString dirName;
+ attribute [Reflect] boolean disabled;
+ readonly attribute HTMLFormElement form;
+ attribute long maxLength setter raises(DOMException);
+ attribute [TreatNullAs=NullString] DOMString name;
+ attribute [Reflect] DOMString placeholder;
+ attribute [Reflect] boolean readOnly;
+ attribute [Reflect] boolean required;
+ attribute long rows;
+ attribute [Reflect] DOMString wrap;
+
+ readonly attribute DOMString type;
+ attribute [TreatNullAs=NullString] DOMString defaultValue;
+ attribute [TreatNullAs=NullString] DOMString value;
+ readonly attribute unsigned long textLength;
+
+ readonly attribute boolean willValidate;
+ readonly attribute ValidityState validity;
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ void setCustomValidity(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString error);
+
+ readonly attribute NodeList labels;
+
+ void select();
+ attribute long selectionStart;
+ attribute long selectionEnd;
+ attribute DOMString selectionDirection;
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ void setSelectionRange(in long start, in long end);
+#else
+ void setSelectionRange(in [Optional=DefaultIsUndefined] long start,
+ in [Optional=DefaultIsUndefined] long end,
+ in [Optional] DOMString direction);
+#endif
+
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ attribute [Reflect] DOMString accessKey;
+#endif
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLTitleElement.idl b/elemental/idl/third_party/WebCore/html/HTMLTitleElement.idl
new file mode 100644
index 0000000..e691f7b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLTitleElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLTitleElement : HTMLElement {
+ attribute [TreatNullAs=NullString] DOMString text;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLTrackElement.idl b/elemental/idl/third_party/WebCore/html/HTMLTrackElement.idl
new file mode 100644
index 0000000..0107df5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLTrackElement.idl
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+
+module html {
+ interface [
+ Conditional=VIDEO_TRACK,
+ V8EnabledAtRuntime=webkitVideoTrack
+ ] HTMLTrackElement : HTMLElement {
+ attribute [Reflect, URL] DOMString src;
+ attribute DOMString kind;
+ attribute DOMString srclang;
+ attribute DOMString label;
+ attribute [Reflect] boolean default;
+
+ const unsigned short NONE = 0;
+ const unsigned short LOADING = 1;
+ const unsigned short LOADED = 2;
+ // Reflect is used for ERROR because it conflicts with a windows define.
+ [Reflect=TRACK_ERROR] const unsigned short ERROR = 3;
+ readonly attribute unsigned short readyState;
+
+ readonly attribute TextTrack track;
+};
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLUListElement.idl b/elemental/idl/third_party/WebCore/html/HTMLUListElement.idl
new file mode 100644
index 0000000..221dcca
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLUListElement.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module html {
+
+ interface HTMLUListElement : HTMLElement {
+ attribute [Reflect] boolean compact;
+ attribute [Reflect] DOMString type;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLUnknownElement.idl b/elemental/idl/third_party/WebCore/html/HTMLUnknownElement.idl
new file mode 100644
index 0000000..9e4f90a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLUnknownElement.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011 Code Aurora Forum. 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.
+ * * Neither the name of Code Aurora Forum, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * 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.
+ */
+
+module html {
+
+ interface HTMLUnknownElement : HTMLElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/HTMLVideoElement.idl b/elemental/idl/third_party/WebCore/html/HTMLVideoElement.idl
new file mode 100644
index 0000000..97a1779
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/HTMLVideoElement.idl
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2007, 2010 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=VIDEO,
+ JSGenerateToNativeObject
+ ] HTMLVideoElement : HTMLMediaElement {
+ attribute [Reflect] unsigned long width;
+ attribute [Reflect] unsigned long height;
+ readonly attribute unsigned long videoWidth;
+ readonly attribute unsigned long videoHeight;
+ attribute [Reflect, URL] DOMString poster;
+
+ readonly attribute boolean webkitSupportsFullscreen;
+ readonly attribute boolean webkitDisplayingFullscreen;
+
+ void webkitEnterFullscreen() raises (DOMException);
+ void webkitExitFullscreen();
+
+ // Note the different capitalization of the "S" in FullScreen.
+ void webkitEnterFullScreen() raises (DOMException);
+ void webkitExitFullScreen();
+
+ // The number of frames that have been decoded and made available for
+ // playback.
+ readonly attribute [Conditional=MEDIA_STATISTICS] unsigned long webkitDecodedFrameCount;
+
+ // The number of decoded frames that have been dropped by the player
+ // for performance reasons during playback.
+ readonly attribute [Conditional=MEDIA_STATISTICS] unsigned long webkitDroppedFrameCount;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/ImageData.idl b/elemental/idl/third_party/WebCore/html/ImageData.idl
new file mode 100644
index 0000000..f2ea0ca
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/ImageData.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2008, 2009 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+
+ interface [
+ CustomToJSObject
+ ] ImageData {
+ readonly attribute long width;
+ readonly attribute long height;
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT
+ readonly attribute Uint8ClampedArray data;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/MediaController.idl b/elemental/idl/third_party/WebCore/html/MediaController.idl
new file mode 100644
index 0000000..d3f3348
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/MediaController.idl
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2011 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=VIDEO,
+ Constructor,
+ CallWith=ScriptExecutionContext,
+ JSGenerateToJSObject,
+ EventTarget
+ ] MediaController {
+ readonly attribute TimeRanges buffered;
+ readonly attribute TimeRanges seekable;
+
+ readonly attribute double duration;
+ attribute double currentTime
+ setter raises (DOMException);
+
+ readonly attribute boolean paused;
+ readonly attribute TimeRanges played;
+ void play();
+ void pause();
+
+ attribute double defaultPlaybackRate;
+ attribute double playbackRate;
+
+ attribute double volume
+ setter raises (DOMException);
+ attribute boolean muted;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/MediaError.idl b/elemental/idl/third_party/WebCore/html/MediaError.idl
new file mode 100644
index 0000000..8eb9d54
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/MediaError.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=VIDEO
+ ] MediaError {
+ const unsigned short MEDIA_ERR_ABORTED = 1;
+ const unsigned short MEDIA_ERR_NETWORK = 2;
+ const unsigned short MEDIA_ERR_DECODE = 3;
+ const unsigned short MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
+#if defined(ENABLE_ENCRYPTED_MEDIA) && ENABLE_ENCRYPTED_MEDIA
+ const unsigned short MEDIA_ERR_ENCRYPTED = 5;
+#endif
+ readonly attribute unsigned short code;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/MediaKeyError.idl b/elemental/idl/third_party/WebCore/html/MediaKeyError.idl
new file mode 100644
index 0000000..55b9b04
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/MediaKeyError.idl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+module html {
+ interface [
+ Conditional=ENCRYPTED_MEDIA,
+ V8EnabledAtRuntime=encryptedMedia,
+ ] MediaKeyError {
+ const unsigned short MEDIA_KEYERR_UNKNOWN = 1;
+ const unsigned short MEDIA_KEYERR_CLIENT = 2;
+ const unsigned short MEDIA_KEYERR_SERVICE = 3;
+ const unsigned short MEDIA_KEYERR_OUTPUT = 4;
+ const unsigned short MEDIA_KEYERR_HARDWARECHANGE = 5;
+ const unsigned short MEDIA_KEYERR_DOMAIN = 6;
+ readonly attribute unsigned short code;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/MediaKeyEvent.idl b/elemental/idl/third_party/WebCore/html/MediaKeyEvent.idl
new file mode 100644
index 0000000..b1387dc
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/MediaKeyEvent.idl
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=ENCRYPTED_MEDIA,
+ V8EnabledAtRuntime=encryptedMedia,
+ ConstructorTemplate=Event
+ ] MediaKeyEvent : Event {
+ readonly attribute [InitializedByEventConstructor] DOMString keySystem;
+ readonly attribute [InitializedByEventConstructor] DOMString sessionId;
+ readonly attribute [InitializedByEventConstructor] Uint8Array initData;
+ readonly attribute [InitializedByEventConstructor] Uint8Array message;
+ readonly attribute [InitializedByEventConstructor] DOMString defaultURL;
+ readonly attribute [InitializedByEventConstructor] MediaKeyError errorCode;
+ readonly attribute [InitializedByEventConstructor] unsigned short systemCode;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/RadioNodeList.idl b/elemental/idl/third_party/WebCore/html/RadioNodeList.idl
new file mode 100644
index 0000000..8ed57ba
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/RadioNodeList.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2012 Motorola Mobility, 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 MOTOROLA MOBILITY, INC. AND ITS CONTRIBUTORS
+ * ``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 MOTOROLA MOBILITY, INC. OR ITS
+ * 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.
+ */
+
+module html {
+
+ interface [
+ JSGenerateToJSObject,
+ IndexedGetter,
+ ] RadioNodeList : NodeList {
+ attribute DOMString value;
+ };
+}
+
diff --git a/elemental/idl/third_party/WebCore/html/TextMetrics.idl b/elemental/idl/third_party/WebCore/html/TextMetrics.idl
new file mode 100644
index 0000000..1a315ba
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/TextMetrics.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module html {
+
+ interface TextMetrics {
+ readonly attribute float width;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/TimeRanges.idl b/elemental/idl/third_party/WebCore/html/TimeRanges.idl
new file mode 100644
index 0000000..c37c360
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/TimeRanges.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2007, 2010 Apple 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=VIDEO
+ ] TimeRanges {
+ readonly attribute unsigned long length;
+ float start(in unsigned long index)
+ raises (DOMException);
+ float end(in unsigned long index)
+ raises (DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/ValidityState.idl b/elemental/idl/third_party/WebCore/html/ValidityState.idl
new file mode 100644
index 0000000..601bfaf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/ValidityState.idl
@@ -0,0 +1,38 @@
+/*
+ * This file is part of the WebKit project.
+ *
+ * Copyright (C) 2009 Michelangelo De Simone <micdesim@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+module html {
+
+ interface [
+ OmitConstructor
+ ] ValidityState {
+ readonly attribute boolean valueMissing;
+ readonly attribute boolean typeMismatch;
+ readonly attribute boolean patternMismatch;
+ readonly attribute boolean tooLong;
+ readonly attribute boolean rangeUnderflow;
+ readonly attribute boolean rangeOverflow;
+ readonly attribute boolean stepMismatch;
+ readonly attribute boolean customError;
+ readonly attribute boolean valid;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/VoidCallback.idl b/elemental/idl/third_party/WebCore/html/VoidCallback.idl
new file mode 100644
index 0000000..d0f159b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/VoidCallback.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ */
+
+module html {
+ interface [
+ JSCustomToNativeObject,
+ OmitConstructor
+ ] VoidCallback {
+ void handleEvent();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/ArrayBuffer.idl b/elemental/idl/third_party/WebCore/html/canvas/ArrayBuffer.idl
new file mode 100644
index 0000000..26dd341
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/ArrayBuffer.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2009, 2010 Apple 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.
+ */
+
+module html {
+
+ interface [
+ JSGenerateIsReachable=Impl,
+ CustomConstructor,
+ ConstructorParameters=1,
+ JSNoStaticTables
+ ] ArrayBuffer {
+ readonly attribute int byteLength;
+ ArrayBuffer slice(in long begin, in [Optional] long end);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/ArrayBufferView.idl b/elemental/idl/third_party/WebCore/html/canvas/ArrayBufferView.idl
new file mode 100644
index 0000000..0e934e6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/ArrayBufferView.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module html {
+ interface [
+ CustomToJSObject,
+ JSNoStaticTables,
+ OmitConstructor
+ ] ArrayBufferView {
+ readonly attribute ArrayBuffer buffer;
+ readonly attribute unsigned long byteOffset;
+ readonly attribute unsigned long byteLength;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/CanvasGradient.idl b/elemental/idl/third_party/WebCore/html/canvas/CanvasGradient.idl
new file mode 100644
index 0000000..496d4c1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/CanvasGradient.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Apple Computer, 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.
+ */
+
+module html {
+
+ interface CanvasGradient {
+
+ void addColorStop(in [Optional=DefaultIsUndefined] float offset,
+ in [Optional=DefaultIsUndefined] DOMString color)
+ raises (DOMException);
+
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/html/canvas/CanvasPattern.idl b/elemental/idl/third_party/WebCore/html/canvas/CanvasPattern.idl
new file mode 100644
index 0000000..e5aa036
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/CanvasPattern.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2006 Apple Computer, 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.
+ */
+
+module html {
+
+ interface CanvasPattern {
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/html/canvas/CanvasPixelArray.idl b/elemental/idl/third_party/WebCore/html/canvas/CanvasPixelArray.idl
new file mode 100644
index 0000000..8c0836b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/CanvasPixelArray.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2008, 2009 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+#if !defined(LANGUAGE_JAVASCRIPT) || !LANGUAGE_JAVASCRIPT || defined(V8_BINDING) && V8_BINDING
+ interface [
+ OmitConstructor,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ V8CustomToJSObject
+ ] CanvasPixelArray {
+#if !defined(V8_BINDING) || !V8_BINDING
+ readonly attribute long length;
+#endif
+ };
+#endif
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/CanvasRenderingContext.idl b/elemental/idl/third_party/WebCore/html/canvas/CanvasRenderingContext.idl
new file mode 100644
index 0000000..b937393
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/CanvasRenderingContext.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module html {
+
+ interface [
+ JSCustomMarkFunction,
+ JSGenerateIsReachable,
+ JSCustomToJSObject
+ ] CanvasRenderingContext {
+
+ readonly attribute HTMLCanvasElement canvas;
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/html/canvas/CanvasRenderingContext2D.idl b/elemental/idl/third_party/WebCore/html/canvas/CanvasRenderingContext2D.idl
new file mode 100644
index 0000000..d41f875
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/CanvasRenderingContext2D.idl
@@ -0,0 +1,239 @@
+/*
+ * Copyright (C) 2006 Apple Computer, 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.
+ */
+
+module html {
+
+ interface CanvasRenderingContext2D : CanvasRenderingContext {
+
+ void save();
+ void restore();
+
+ void scale(in [Optional=DefaultIsUndefined] float sx,
+ in [Optional=DefaultIsUndefined] float sy);
+ void rotate(in [Optional=DefaultIsUndefined] float angle);
+ void translate(in [Optional=DefaultIsUndefined] float tx,
+ in [Optional=DefaultIsUndefined] float ty);
+ void transform(in [Optional=DefaultIsUndefined] float m11,
+ in [Optional=DefaultIsUndefined] float m12,
+ in [Optional=DefaultIsUndefined] float m21,
+ in [Optional=DefaultIsUndefined] float m22,
+ in [Optional=DefaultIsUndefined] float dx,
+ in [Optional=DefaultIsUndefined] float dy);
+ void setTransform(in [Optional=DefaultIsUndefined] float m11,
+ in [Optional=DefaultIsUndefined] float m12,
+ in [Optional=DefaultIsUndefined] float m21,
+ in [Optional=DefaultIsUndefined] float m22,
+ in [Optional=DefaultIsUndefined] float dx,
+ in [Optional=DefaultIsUndefined] float dy);
+
+ attribute float globalAlpha;
+ attribute [TreatNullAs=NullString] DOMString globalCompositeOperation;
+
+ CanvasGradient createLinearGradient(in [Optional=DefaultIsUndefined] float x0,
+ in [Optional=DefaultIsUndefined] float y0,
+ in [Optional=DefaultIsUndefined] float x1,
+ in [Optional=DefaultIsUndefined] float y1)
+ raises (DOMException);
+ CanvasGradient createRadialGradient(in [Optional=DefaultIsUndefined] float x0,
+ in [Optional=DefaultIsUndefined] float y0,
+ in [Optional=DefaultIsUndefined] float r0,
+ in [Optional=DefaultIsUndefined] float x1,
+ in [Optional=DefaultIsUndefined] float y1,
+ in [Optional=DefaultIsUndefined] float r1)
+ raises (DOMException);
+
+ attribute float lineWidth;
+ attribute [TreatNullAs=NullString] DOMString lineCap;
+ attribute [TreatNullAs=NullString] DOMString lineJoin;
+ attribute float miterLimit;
+
+ attribute float shadowOffsetX;
+ attribute float shadowOffsetY;
+ attribute float shadowBlur;
+ attribute [TreatNullAs=NullString] DOMString shadowColor;
+
+ // FIXME: These attributes should also be implemented for V8.
+#if !(defined(V8_BINDING) && V8_BINDING)
+ attribute [Custom] Array webkitLineDash;
+ attribute float webkitLineDashOffset;
+#endif
+
+ void clearRect(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float width,
+ in [Optional=DefaultIsUndefined] float height);
+ void fillRect(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float width,
+ in [Optional=DefaultIsUndefined] float height);
+
+ void beginPath();
+ void closePath();
+ void moveTo(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+ void lineTo(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+ void quadraticCurveTo(in [Optional=DefaultIsUndefined] float cpx,
+ in [Optional=DefaultIsUndefined] float cpy,
+ in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+ void bezierCurveTo(in [Optional=DefaultIsUndefined] float cp1x,
+ in [Optional=DefaultIsUndefined] float cp1y,
+ in [Optional=DefaultIsUndefined] float cp2x,
+ in [Optional=DefaultIsUndefined] float cp2y,
+ in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+ void arcTo(in [Optional=DefaultIsUndefined] float x1,
+ in [Optional=DefaultIsUndefined] float y1,
+ in [Optional=DefaultIsUndefined] float x2,
+ in [Optional=DefaultIsUndefined] float y2,
+ in [Optional=DefaultIsUndefined] float radius)
+ raises (DOMException);
+ void rect(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float width,
+ in [Optional=DefaultIsUndefined] float height);
+ void arc(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float radius,
+ in [Optional=DefaultIsUndefined] float startAngle,
+ in [Optional=DefaultIsUndefined] float endAngle,
+ in [Optional=DefaultIsUndefined] boolean anticlockwise)
+ raises (DOMException);
+ void fill();
+ void stroke();
+ void clip();
+ boolean isPointInPath(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+
+ // text
+ attribute DOMString font;
+ attribute DOMString textAlign;
+ attribute DOMString textBaseline;
+
+ TextMetrics measureText(in [Optional=DefaultIsUndefined] DOMString text);
+
+ // other
+
+ void setAlpha(in [Optional=DefaultIsUndefined] float alpha);
+ void setCompositeOperation(in [Optional=DefaultIsUndefined] DOMString compositeOperation);
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ void setLineWidth(in [Optional=DefaultIsUndefined] float width);
+ void setLineCap(in [Optional=DefaultIsUndefined] DOMString cap);
+ void setLineJoin(in [Optional=DefaultIsUndefined] DOMString join);
+ void setMiterLimit(in [Optional=DefaultIsUndefined] float limit);
+#endif
+
+ void clearShadow();
+
+ void fillText(in DOMString text, in float x, in float y, in [Optional] float maxWidth);
+ void strokeText(in DOMString text, in float x, in float y, in [Optional] float maxWidth);
+
+ void setStrokeColor(in DOMString color, in [Optional] float alpha);
+ void setStrokeColor(in float grayLevel, in [Optional] float alpha);
+ void setStrokeColor(in float r, in float g, in float b, in float a);
+ void setStrokeColor(in float c, in float m, in float y, in float k, in float a);
+
+ void setFillColor(in DOMString color, in [Optional] float alpha);
+ void setFillColor(in float grayLevel, in [Optional] float alpha);
+ void setFillColor(in float r, in float g, in float b, in float a);
+ void setFillColor(in float c, in float m, in float y, in float k, in float a);
+
+ void strokeRect(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float width,
+ in [Optional=DefaultIsUndefined] float height,
+ in [Optional] float lineWidth);
+
+ void drawImage(in HTMLImageElement image, in float x, in float y)
+ raises (DOMException);
+ void drawImage(in HTMLImageElement image, in float x, in float y, in float width, in float height)
+ raises (DOMException);
+ void drawImage(in HTMLImageElement image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh)
+ raises (DOMException);
+ void drawImage(in HTMLCanvasElement canvas, in float x, in float y)
+ raises (DOMException);
+ void drawImage(in HTMLCanvasElement canvas, in float x, in float y, in float width, in float height)
+ raises (DOMException);
+ void drawImage(in HTMLCanvasElement canvas, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh)
+ raises (DOMException);
+#if defined(ENABLE_VIDEO) && ENABLE_VIDEO
+ void drawImage(in HTMLVideoElement video, in float x, in float y)
+ raises (DOMException);
+ void drawImage(in HTMLVideoElement video, in float x, in float y, in float width, in float height)
+ raises (DOMException);
+ void drawImage(in HTMLVideoElement video, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh)
+ raises (DOMException);
+#endif
+
+ void drawImageFromRect(in HTMLImageElement image,
+ in [Optional] float sx, in [Optional] float sy, in [Optional] float sw, in [Optional] float sh,
+ in [Optional] float dx, in [Optional] float dy, in [Optional] float dw, in [Optional] float dh,
+ in [Optional] DOMString compositeOperation);
+
+ void setShadow(in float width, in float height, in float blur, in [Optional] DOMString color, in [Optional] float alpha);
+ void setShadow(in float width, in float height, in float blur, in float grayLevel, in [Optional] float alpha);
+ void setShadow(in float width, in float height, in float blur, in float r, in float g, in float b, in float a);
+ void setShadow(in float width, in float height, in float blur, in float c, in float m, in float y, in float k, in float a);
+
+ void putImageData(in ImageData imagedata, in float dx, in float dy)
+ raises(DOMException);
+ void putImageData(in ImageData imagedata, in float dx, in float dy, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight)
+ raises(DOMException);
+
+ void webkitPutImageDataHD(in ImageData imagedata, in float dx, in float dy)
+ raises(DOMException);
+ void webkitPutImageDataHD(in ImageData imagedata, in float dx, in float dy, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight)
+ raises(DOMException);
+
+ CanvasPattern createPattern(in HTMLCanvasElement canvas, in [TreatNullAs=NullString] DOMString repetitionType)
+ raises (DOMException);
+ CanvasPattern createPattern(in HTMLImageElement image, in [TreatNullAs=NullString] DOMString repetitionType)
+ raises (DOMException);
+ ImageData createImageData(in ImageData imagedata)
+ raises (DOMException);
+ ImageData createImageData(in float sw, in float sh)
+ raises (DOMException);
+
+ attribute [Custom] custom strokeStyle;
+ attribute [Custom] custom fillStyle;
+
+ // pixel manipulation
+ ImageData getImageData(in [Optional=DefaultIsUndefined] float sx, in [Optional=DefaultIsUndefined] float sy,
+ in [Optional=DefaultIsUndefined] float sw, in [Optional=DefaultIsUndefined] float sh)
+ raises(DOMException);
+
+ ImageData webkitGetImageDataHD(in [Optional=DefaultIsUndefined] float sx, in [Optional=DefaultIsUndefined] float sy,
+ in [Optional=DefaultIsUndefined] float sw, in [Optional=DefaultIsUndefined] float sh)
+ raises(DOMException);
+
+ readonly attribute float webkitBackingStorePixelRatio;
+
+ attribute boolean webkitImageSmoothingEnabled;
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/html/canvas/DataView.idl b/elemental/idl/third_party/WebCore/html/canvas/DataView.idl
new file mode 100755
index 0000000..3f4dcdf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/DataView.idl
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+
+ interface [
+ CustomConstructor,
+ ConstructorParameters=3,
+ CustomToJSObject,
+ JSNoStaticTables
+ ] DataView : ArrayBufferView {
+ // All these methods raise an exception if they would read or write beyond the end of the view.
+
+ // We have to use custom code because our code generator does not support int8_t type.
+ // int8_t getInt8(in unsigned long byteOffset);
+ // uint8_t getUint8(in unsigned long byteOffset);
+ [Custom] DOMObject getInt8()
+ raises (DOMException);
+ [Custom] DOMObject getUint8()
+ raises (DOMException);
+
+ [StrictTypeChecking] short getInt16(in unsigned long byteOffset, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ [StrictTypeChecking] unsigned short getUint16(in unsigned long byteOffset, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ [StrictTypeChecking] long getInt32(in unsigned long byteOffset, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ [StrictTypeChecking] unsigned long getUint32(in unsigned long byteOffset, in [Optional] boolean littleEndian)
+ raises (DOMException);
+
+ // Use custom code to handle NaN case for JSC.
+ [JSCustom, StrictTypeChecking] float getFloat32(in unsigned long byteOffset, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ [JSCustom, StrictTypeChecking] double getFloat64(in unsigned long byteOffset, in [Optional] boolean littleEndian)
+ raises (DOMException);
+
+ // We have to use custom code because our code generator does not support uint8_t type.
+ // void setInt8(in unsigned long byteOffset, in int8_t value);
+ // void setUint8(in unsigned long byteOffset, in uint8_t value);
+ [Custom] void setInt8()
+ raises (DOMException);
+ [Custom] void setUint8()
+ raises (DOMException);
+
+ [StrictTypeChecking] void setInt16(in unsigned long byteOffset, in short value, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ [StrictTypeChecking] void setUint16(in unsigned long byteOffset, in unsigned short value, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ [StrictTypeChecking] void setInt32(in unsigned long byteOffset, in long value, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ [StrictTypeChecking] void setUint32(in unsigned long byteOffset, in unsigned long value, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ [StrictTypeChecking] void setFloat32(in unsigned long byteOffset, in float value, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ [StrictTypeChecking] void setFloat64(in unsigned long byteOffset, in double value, in [Optional] boolean littleEndian)
+ raises (DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl b/elemental/idl/third_party/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl
new file mode 100644
index 0000000..568aa9a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl
@@ -0,0 +1,36 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ JSGenerateIsReachable=ImplContext,
+ OmitConstructor,
+ DoNotCheckConstants
+ ] EXTTextureFilterAnisotropic {
+ const unsigned int TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
+ const unsigned int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/Float32Array.idl b/elemental/idl/third_party/WebCore/html/canvas/Float32Array.idl
new file mode 100644
index 0000000..8eaebe4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/Float32Array.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2009 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Float32Array : ArrayBufferView {
+ const unsigned long BYTES_PER_ELEMENT = 4;
+
+ readonly attribute unsigned long length;
+ Float32Array subarray(in [Optional=DefaultIsUndefined] long start,
+ in [Optional] long end);
+
+ // void set(in Float32Array array, [Optional] in unsigned long offset);
+ // void set(in sequence<long> array, [Optional] in unsigned long offset);
+ [Custom] void set();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/Float64Array.idl b/elemental/idl/third_party/WebCore/html/canvas/Float64Array.idl
new file mode 100644
index 0000000..abfeb21
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/Float64Array.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Float64Array : ArrayBufferView {
+ const unsigned long BYTES_PER_ELEMENT = 8;
+
+ readonly attribute unsigned long length;
+ Float64Array subarray(in [Optional=DefaultIsUndefined] long start,
+ in [Optional] long end);
+
+ // void set(in Float64Array array, [Optional] in unsigned long offset);
+ // void set(in sequence<long> array, [Optional] in unsigned long offset);
+ [Custom] void set();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/Int16Array.idl b/elemental/idl/third_party/WebCore/html/canvas/Int16Array.idl
new file mode 100644
index 0000000..f6d089e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/Int16Array.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2006, 2010 Apple Computer, 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Int16Array : ArrayBufferView {
+ const unsigned long BYTES_PER_ELEMENT = 2;
+
+ readonly attribute unsigned long length;
+ Int16Array subarray(in [Optional=DefaultIsUndefined] long start,
+ in [Optional] long end);
+
+ // void set(in Int16Array array, [Optional] in unsigned long offset);
+ // void set(in sequence<long> array, [Optional] in unsigned long offset);
+ [Custom] void set();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/Int32Array.idl b/elemental/idl/third_party/WebCore/html/canvas/Int32Array.idl
new file mode 100644
index 0000000..f98835a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/Int32Array.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Int32Array : ArrayBufferView {
+ const unsigned long BYTES_PER_ELEMENT = 4;
+
+ readonly attribute unsigned long length;
+ Int32Array subarray(in [Optional=DefaultIsUndefined] long start,
+ in [Optional] long end);
+
+ // void set(in Int32Array array, [Optional] in unsigned long offset);
+ // void set(in sequence<long> array, [Optional] in unsigned long offset);
+ [Custom] void set();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/Int8Array.idl b/elemental/idl/third_party/WebCore/html/canvas/Int8Array.idl
new file mode 100644
index 0000000..00faa4f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/Int8Array.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Int8Array : ArrayBufferView {
+ const unsigned long BYTES_PER_ELEMENT = 1;
+
+ readonly attribute unsigned long length;
+ Int8Array subarray(in [Optional=DefaultIsUndefined] long start,
+ in [Optional] long end);
+
+ // void set(in Int8Array array, [Optional] in unsigned long offset);
+ // void set(in sequence<long> array, [Optional] in unsigned long offset);
+ [Custom] void set();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/OESStandardDerivatives.idl b/elemental/idl/third_party/WebCore/html/canvas/OESStandardDerivatives.idl
new file mode 100644
index 0000000..93f0a01
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/OESStandardDerivatives.idl
@@ -0,0 +1,35 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ JSGenerateIsReachable=ImplContext,
+ OmitConstructor,
+ DoNotCheckConstants
+ ] OESStandardDerivatives {
+ const unsigned int FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/OESTextureFloat.idl b/elemental/idl/third_party/WebCore/html/canvas/OESTextureFloat.idl
new file mode 100644
index 0000000..6537f47
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/OESTextureFloat.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ JSGenerateIsReachable=ImplContext,
+ OmitConstructor
+ ] OESTextureFloat {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/OESVertexArrayObject.idl b/elemental/idl/third_party/WebCore/html/canvas/OESVertexArrayObject.idl
new file mode 100644
index 0000000..c3d3666
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/OESVertexArrayObject.idl
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ JSGenerateIsReachable=ImplContext,
+ OmitConstructor,
+ DoNotCheckConstants
+ ] OESVertexArrayObject {
+ const unsigned int VERTEX_ARRAY_BINDING_OES = 0x85B5;
+
+ [StrictTypeChecking] WebGLVertexArrayObjectOES createVertexArrayOES();
+ [StrictTypeChecking] void deleteVertexArrayOES(in [Optional=DefaultIsUndefined] WebGLVertexArrayObjectOES arrayObject);
+ [StrictTypeChecking] boolean isVertexArrayOES(in [Optional=DefaultIsUndefined] WebGLVertexArrayObjectOES arrayObject);
+ [StrictTypeChecking] void bindVertexArrayOES(in [Optional=DefaultIsUndefined] WebGLVertexArrayObjectOES arrayObject) raises(DOMException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/Uint16Array.idl b/elemental/idl/third_party/WebCore/html/canvas/Uint16Array.idl
new file mode 100644
index 0000000..79e05ef
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/Uint16Array.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Uint16Array : ArrayBufferView {
+ const unsigned long BYTES_PER_ELEMENT = 2;
+
+ readonly attribute unsigned long length;
+ Uint16Array subarray(in [Optional=DefaultIsUndefined] long start, in [Optional] long end);
+
+ // void set(in Uint16Array array, [Optional] in unsigned long offset);
+ // void set(in sequence<long> array, [Optional] in unsigned long offset);
+ [Custom] void set();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/Uint32Array.idl b/elemental/idl/third_party/WebCore/html/canvas/Uint32Array.idl
new file mode 100644
index 0000000..67e61b2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/Uint32Array.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Uint32Array : ArrayBufferView {
+ const unsigned long BYTES_PER_ELEMENT = 4;
+
+ readonly attribute unsigned long length;
+ Uint32Array subarray(in [Optional=DefaultIsUndefined] long start, in [Optional] long end);
+
+ // void set(in Uint32Array array, [Optional] in unsigned long offset);
+ // void set(in sequence<long> array, [Optional] in unsigned long offset);
+ [Custom] void set();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/Uint8Array.idl b/elemental/idl/third_party/WebCore/html/canvas/Uint8Array.idl
new file mode 100644
index 0000000..260a327
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/Uint8Array.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Uint8Array : ArrayBufferView {
+ const unsigned long BYTES_PER_ELEMENT = 1;
+
+ readonly attribute unsigned long length;
+ Uint8Array subarray(in [Optional=DefaultIsUndefined] long start, in [Optional] long end);
+
+ // void set(in Uint8Array array, [Optional] in unsigned long offset);
+ // void set(in sequence<long> array, [Optional] in unsigned long offset);
+ [Custom] void set();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/Uint8ClampedArray.idl b/elemental/idl/third_party/WebCore/html/canvas/Uint8ClampedArray.idl
new file mode 100644
index 0000000..cadd663
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/Uint8ClampedArray.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 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.
+ */
+
+module html {
+ interface [
+ CustomConstructor,
+ ConstructorParameters=1,
+ NumericIndexedGetter,
+ CustomIndexedSetter,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ CustomToJSObject,
+ DoNotCheckConstants
+ ] Uint8ClampedArray : Uint8Array {
+ const unsigned long BYTES_PER_ELEMENT = 1;
+
+ readonly attribute unsigned long length;
+ Uint8ClampedArray subarray(in [Optional=DefaultIsUndefined] long start, in [Optional] long end);
+
+ // FIXME: Missing other setters!
+ // void set(in Uint8ClampedArray array, [Optional] in unsigned long offset);
+ // void set(in sequence<long> array, [Optional] in unsigned long offset);
+ [Custom] void set();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLActiveInfo.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLActiveInfo.idl
new file mode 100644
index 0000000..20ab8af
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLActiveInfo.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2009 Apple 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 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 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=WEBGL,
+ ] WebGLActiveInfo {
+ readonly attribute int size;
+ readonly attribute unsigned int type;
+ readonly attribute DOMString name;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLBuffer.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLBuffer.idl
new file mode 100644
index 0000000..312b009
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLBuffer.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ ] WebGLBuffer {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl
new file mode 100644
index 0000000..7fde5bb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl
@@ -0,0 +1,39 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ JSGenerateIsReachable=ImplContext,
+ OmitConstructor,
+ DoNotCheckConstants
+ ] WebGLCompressedTextureS3TC {
+ /* Compressed Texture Formats */
+ const unsigned int COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
+ const unsigned int COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1;
+ const unsigned int COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2;
+ const unsigned int COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLContextAttributes.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLContextAttributes.idl
new file mode 100644
index 0000000..56da1c6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLContextAttributes.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2010, 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 AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ OmitConstructor
+ ] WebGLContextAttributes {
+ attribute boolean alpha;
+ attribute boolean depth;
+ attribute boolean stencil;
+ attribute boolean antialias;
+ attribute boolean premultipliedAlpha;
+ attribute boolean preserveDrawingBuffer;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLContextEvent.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLContextEvent.idl
new file mode 100644
index 0000000..3735f12
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLContextEvent.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=WEBGL,
+ ConstructorTemplate=Event
+ ] WebGLContextEvent : Event {
+ readonly attribute [InitializedByEventConstructor] DOMString statusMessage;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLDebugRendererInfo.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLDebugRendererInfo.idl
new file mode 100644
index 0000000..b307a14
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLDebugRendererInfo.idl
@@ -0,0 +1,36 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ JSGenerateIsReachable=ImplContext,
+ OmitConstructor,
+ DoNotCheckConstants
+ ] WebGLDebugRendererInfo {
+ const unsigned int UNMASKED_VENDOR_WEBGL = 0x9245;
+ const unsigned int UNMASKED_RENDERER_WEBGL = 0x9246;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLDebugShaders.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLDebugShaders.idl
new file mode 100644
index 0000000..ee330b6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLDebugShaders.idl
@@ -0,0 +1,34 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ JSGenerateIsReachable=ImplContext,
+ OmitConstructor
+ ] WebGLDebugShaders {
+ [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString getTranslatedShaderSource(in WebGLShader shader) raises(DOMException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLFramebuffer.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLFramebuffer.idl
new file mode 100644
index 0000000..d0caa91
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLFramebuffer.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL
+ ] WebGLFramebuffer {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLLoseContext.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLLoseContext.idl
new file mode 100644
index 0000000..390da26
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLLoseContext.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2010 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL,
+ JSGenerateIsReachable=ImplContext,
+ OmitConstructor
+ ] WebGLLoseContext {
+ [StrictTypeChecking] void loseContext();
+ [StrictTypeChecking] void restoreContext();
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLProgram.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLProgram.idl
new file mode 100644
index 0000000..326f1c3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLProgram.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL
+ ] WebGLProgram {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLRenderbuffer.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLRenderbuffer.idl
new file mode 100644
index 0000000..a6518ea
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLRenderbuffer.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL
+ ] WebGLRenderbuffer {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLRenderingContext.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLRenderingContext.idl
new file mode 100644
index 0000000..e6d10a7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLRenderingContext.idl
@@ -0,0 +1,701 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=WEBGL,
+ JSCustomMarkFunction,
+ DoNotCheckConstants
+ ] WebGLRenderingContext : CanvasRenderingContext {
+
+ /* ClearBufferMask */
+ const unsigned int DEPTH_BUFFER_BIT = 0x00000100;
+ const unsigned int STENCIL_BUFFER_BIT = 0x00000400;
+ const unsigned int COLOR_BUFFER_BIT = 0x00004000;
+
+ /* BeginMode */
+ const unsigned int POINTS = 0x0000;
+ const unsigned int LINES = 0x0001;
+ const unsigned int LINE_LOOP = 0x0002;
+ const unsigned int LINE_STRIP = 0x0003;
+ const unsigned int TRIANGLES = 0x0004;
+ const unsigned int TRIANGLE_STRIP = 0x0005;
+ const unsigned int TRIANGLE_FAN = 0x0006;
+
+ /* AlphaFunction (not supported in ES20) */
+ /* NEVER */
+ /* LESS */
+ /* EQUAL */
+ /* LEQUAL */
+ /* GREATER */
+ /* NOTEQUAL */
+ /* GEQUAL */
+ /* ALWAYS */
+
+ /* BlendingFactorDest */
+ const unsigned int ZERO = 0;
+ const unsigned int ONE = 1;
+ const unsigned int SRC_COLOR = 0x0300;
+ const unsigned int ONE_MINUS_SRC_COLOR = 0x0301;
+ const unsigned int SRC_ALPHA = 0x0302;
+ const unsigned int ONE_MINUS_SRC_ALPHA = 0x0303;
+ const unsigned int DST_ALPHA = 0x0304;
+ const unsigned int ONE_MINUS_DST_ALPHA = 0x0305;
+
+ /* BlendingFactorSrc */
+ /* ZERO */
+ /* ONE */
+ const unsigned int DST_COLOR = 0x0306;
+ const unsigned int ONE_MINUS_DST_COLOR = 0x0307;
+ const unsigned int SRC_ALPHA_SATURATE = 0x0308;
+ /* SRC_ALPHA */
+ /* ONE_MINUS_SRC_ALPHA */
+ /* DST_ALPHA */
+ /* ONE_MINUS_DST_ALPHA */
+
+ /* BlendEquationSeparate */
+ const unsigned int FUNC_ADD = 0x8006;
+ const unsigned int BLEND_EQUATION = 0x8009;
+ const unsigned int BLEND_EQUATION_RGB = 0x8009; /* same as BLEND_EQUATION */
+ const unsigned int BLEND_EQUATION_ALPHA = 0x883D;
+
+ /* BlendSubtract */
+ const unsigned int FUNC_SUBTRACT = 0x800A;
+ const unsigned int FUNC_REVERSE_SUBTRACT = 0x800B;
+
+ /* Separate Blend Functions */
+ const unsigned int BLEND_DST_RGB = 0x80C8;
+ const unsigned int BLEND_SRC_RGB = 0x80C9;
+ const unsigned int BLEND_DST_ALPHA = 0x80CA;
+ const unsigned int BLEND_SRC_ALPHA = 0x80CB;
+ const unsigned int CONSTANT_COLOR = 0x8001;
+ const unsigned int ONE_MINUS_CONSTANT_COLOR = 0x8002;
+ const unsigned int CONSTANT_ALPHA = 0x8003;
+ const unsigned int ONE_MINUS_CONSTANT_ALPHA = 0x8004;
+ const unsigned int BLEND_COLOR = 0x8005;
+
+ /* Buffer Objects */
+ const unsigned int ARRAY_BUFFER = 0x8892;
+ const unsigned int ELEMENT_ARRAY_BUFFER = 0x8893;
+ const unsigned int ARRAY_BUFFER_BINDING = 0x8894;
+ const unsigned int ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
+
+ const unsigned int STREAM_DRAW = 0x88E0;
+ const unsigned int STATIC_DRAW = 0x88E4;
+ const unsigned int DYNAMIC_DRAW = 0x88E8;
+
+ const unsigned int BUFFER_SIZE = 0x8764;
+ const unsigned int BUFFER_USAGE = 0x8765;
+
+ const unsigned int CURRENT_VERTEX_ATTRIB = 0x8626;
+
+ /* CullFaceMode */
+ const unsigned int FRONT = 0x0404;
+ const unsigned int BACK = 0x0405;
+ const unsigned int FRONT_AND_BACK = 0x0408;
+
+ /* DepthFunction */
+ /* NEVER */
+ /* LESS */
+ /* EQUAL */
+ /* LEQUAL */
+ /* GREATER */
+ /* NOTEQUAL */
+ /* GEQUAL */
+ /* ALWAYS */
+
+ /* EnableCap */
+ const unsigned int TEXTURE_2D = 0x0DE1;
+ const unsigned int CULL_FACE = 0x0B44;
+ const unsigned int BLEND = 0x0BE2;
+ const unsigned int DITHER = 0x0BD0;
+ const unsigned int STENCIL_TEST = 0x0B90;
+ const unsigned int DEPTH_TEST = 0x0B71;
+ const unsigned int SCISSOR_TEST = 0x0C11;
+ const unsigned int POLYGON_OFFSET_FILL = 0x8037;
+ const unsigned int SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
+ const unsigned int SAMPLE_COVERAGE = 0x80A0;
+
+ /* ErrorCode */
+ const unsigned int NO_ERROR = 0;
+ const unsigned int INVALID_ENUM = 0x0500;
+ const unsigned int INVALID_VALUE = 0x0501;
+ const unsigned int INVALID_OPERATION = 0x0502;
+ const unsigned int OUT_OF_MEMORY = 0x0505;
+
+ /* FrontFaceDirection */
+ const unsigned int CW = 0x0900;
+ const unsigned int CCW = 0x0901;
+
+ /* GetPName */
+ const unsigned int LINE_WIDTH = 0x0B21;
+ const unsigned int ALIASED_POINT_SIZE_RANGE = 0x846D;
+ const unsigned int ALIASED_LINE_WIDTH_RANGE = 0x846E;
+ const unsigned int CULL_FACE_MODE = 0x0B45;
+ const unsigned int FRONT_FACE = 0x0B46;
+ const unsigned int DEPTH_RANGE = 0x0B70;
+ const unsigned int DEPTH_WRITEMASK = 0x0B72;
+ const unsigned int DEPTH_CLEAR_VALUE = 0x0B73;
+ const unsigned int DEPTH_FUNC = 0x0B74;
+ const unsigned int STENCIL_CLEAR_VALUE = 0x0B91;
+ const unsigned int STENCIL_FUNC = 0x0B92;
+ const unsigned int STENCIL_FAIL = 0x0B94;
+ const unsigned int STENCIL_PASS_DEPTH_FAIL = 0x0B95;
+ const unsigned int STENCIL_PASS_DEPTH_PASS = 0x0B96;
+ const unsigned int STENCIL_REF = 0x0B97;
+ const unsigned int STENCIL_VALUE_MASK = 0x0B93;
+ const unsigned int STENCIL_WRITEMASK = 0x0B98;
+ const unsigned int STENCIL_BACK_FUNC = 0x8800;
+ const unsigned int STENCIL_BACK_FAIL = 0x8801;
+ const unsigned int STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
+ const unsigned int STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
+ const unsigned int STENCIL_BACK_REF = 0x8CA3;
+ const unsigned int STENCIL_BACK_VALUE_MASK = 0x8CA4;
+ const unsigned int STENCIL_BACK_WRITEMASK = 0x8CA5;
+ const unsigned int VIEWPORT = 0x0BA2;
+ const unsigned int SCISSOR_BOX = 0x0C10;
+ /* SCISSOR_TEST */
+ const unsigned int COLOR_CLEAR_VALUE = 0x0C22;
+ const unsigned int COLOR_WRITEMASK = 0x0C23;
+ const unsigned int UNPACK_ALIGNMENT = 0x0CF5;
+ const unsigned int PACK_ALIGNMENT = 0x0D05;
+ const unsigned int MAX_TEXTURE_SIZE = 0x0D33;
+ const unsigned int MAX_VIEWPORT_DIMS = 0x0D3A;
+ const unsigned int SUBPIXEL_BITS = 0x0D50;
+ const unsigned int RED_BITS = 0x0D52;
+ const unsigned int GREEN_BITS = 0x0D53;
+ const unsigned int BLUE_BITS = 0x0D54;
+ const unsigned int ALPHA_BITS = 0x0D55;
+ const unsigned int DEPTH_BITS = 0x0D56;
+ const unsigned int STENCIL_BITS = 0x0D57;
+ const unsigned int POLYGON_OFFSET_UNITS = 0x2A00;
+ /* POLYGON_OFFSET_FILL */
+ const unsigned int POLYGON_OFFSET_FACTOR = 0x8038;
+ const unsigned int TEXTURE_BINDING_2D = 0x8069;
+ const unsigned int SAMPLE_BUFFERS = 0x80A8;
+ const unsigned int SAMPLES = 0x80A9;
+ const unsigned int SAMPLE_COVERAGE_VALUE = 0x80AA;
+ const unsigned int SAMPLE_COVERAGE_INVERT = 0x80AB;
+
+ /* GetTextureParameter */
+ /* TEXTURE_MAG_FILTER */
+ /* TEXTURE_MIN_FILTER */
+ /* TEXTURE_WRAP_S */
+ /* TEXTURE_WRAP_T */
+
+ const unsigned int COMPRESSED_TEXTURE_FORMATS = 0x86A3;
+
+ /* HintMode */
+ const unsigned int DONT_CARE = 0x1100;
+ const unsigned int FASTEST = 0x1101;
+ const unsigned int NICEST = 0x1102;
+
+ /* HintTarget */
+ const unsigned int GENERATE_MIPMAP_HINT = 0x8192;
+
+ /* DataType */
+ const unsigned int BYTE = 0x1400;
+ const unsigned int UNSIGNED_BYTE = 0x1401;
+ const unsigned int SHORT = 0x1402;
+ const unsigned int UNSIGNED_SHORT = 0x1403;
+ const unsigned int INT = 0x1404;
+ const unsigned int UNSIGNED_INT = 0x1405;
+ const unsigned int FLOAT = 0x1406;
+
+ /* PixelFormat */
+ const unsigned int DEPTH_COMPONENT = 0x1902;
+ const unsigned int ALPHA = 0x1906;
+ const unsigned int RGB = 0x1907;
+ const unsigned int RGBA = 0x1908;
+ const unsigned int LUMINANCE = 0x1909;
+ const unsigned int LUMINANCE_ALPHA = 0x190A;
+
+ /* PixelType */
+ /* UNSIGNED_BYTE */
+ const unsigned int UNSIGNED_SHORT_4_4_4_4 = 0x8033;
+ const unsigned int UNSIGNED_SHORT_5_5_5_1 = 0x8034;
+ const unsigned int UNSIGNED_SHORT_5_6_5 = 0x8363;
+
+ /* Shaders */
+ const unsigned int FRAGMENT_SHADER = 0x8B30;
+ const unsigned int VERTEX_SHADER = 0x8B31;
+ const unsigned int MAX_VERTEX_ATTRIBS = 0x8869;
+ const unsigned int MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
+ const unsigned int MAX_VARYING_VECTORS = 0x8DFC;
+ const unsigned int MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
+ const unsigned int MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
+ const unsigned int MAX_TEXTURE_IMAGE_UNITS = 0x8872;
+ const unsigned int MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
+ const unsigned int SHADER_TYPE = 0x8B4F;
+ const unsigned int DELETE_STATUS = 0x8B80;
+ const unsigned int LINK_STATUS = 0x8B82;
+ const unsigned int VALIDATE_STATUS = 0x8B83;
+ const unsigned int ATTACHED_SHADERS = 0x8B85;
+ const unsigned int ACTIVE_UNIFORMS = 0x8B86;
+ const unsigned int ACTIVE_ATTRIBUTES = 0x8B89;
+ const unsigned int SHADING_LANGUAGE_VERSION = 0x8B8C;
+ const unsigned int CURRENT_PROGRAM = 0x8B8D;
+
+ /* StencilFunction */
+ const unsigned int NEVER = 0x0200;
+ const unsigned int LESS = 0x0201;
+ const unsigned int EQUAL = 0x0202;
+ const unsigned int LEQUAL = 0x0203;
+ const unsigned int GREATER = 0x0204;
+ const unsigned int NOTEQUAL = 0x0205;
+ const unsigned int GEQUAL = 0x0206;
+ const unsigned int ALWAYS = 0x0207;
+
+ /* StencilOp */
+ /* ZERO */
+ const unsigned int KEEP = 0x1E00;
+ const unsigned int REPLACE = 0x1E01;
+ const unsigned int INCR = 0x1E02;
+ const unsigned int DECR = 0x1E03;
+ const unsigned int INVERT = 0x150A;
+ const unsigned int INCR_WRAP = 0x8507;
+ const unsigned int DECR_WRAP = 0x8508;
+
+ /* StringName */
+ const unsigned int VENDOR = 0x1F00;
+ const unsigned int RENDERER = 0x1F01;
+ const unsigned int VERSION = 0x1F02;
+
+ /* TextureMagFilter */
+ const unsigned int NEAREST = 0x2600;
+ const unsigned int LINEAR = 0x2601;
+
+ /* TextureMinFilter */
+ /* NEAREST */
+ /* LINEAR */
+ const unsigned int NEAREST_MIPMAP_NEAREST = 0x2700;
+ const unsigned int LINEAR_MIPMAP_NEAREST = 0x2701;
+ const unsigned int NEAREST_MIPMAP_LINEAR = 0x2702;
+ const unsigned int LINEAR_MIPMAP_LINEAR = 0x2703;
+
+ /* TextureParameterName */
+ const unsigned int TEXTURE_MAG_FILTER = 0x2800;
+ const unsigned int TEXTURE_MIN_FILTER = 0x2801;
+ const unsigned int TEXTURE_WRAP_S = 0x2802;
+ const unsigned int TEXTURE_WRAP_T = 0x2803;
+
+ /* TextureTarget */
+ /* TEXTURE_2D */
+ const unsigned int TEXTURE = 0x1702;
+
+ const unsigned int TEXTURE_CUBE_MAP = 0x8513;
+ const unsigned int TEXTURE_BINDING_CUBE_MAP = 0x8514;
+ const unsigned int TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
+ const unsigned int TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
+ const unsigned int TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
+ const unsigned int TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
+ const unsigned int TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
+ const unsigned int TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
+ const unsigned int MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
+
+ /* TextureUnit */
+ const unsigned int TEXTURE0 = 0x84C0;
+ const unsigned int TEXTURE1 = 0x84C1;
+ const unsigned int TEXTURE2 = 0x84C2;
+ const unsigned int TEXTURE3 = 0x84C3;
+ const unsigned int TEXTURE4 = 0x84C4;
+ const unsigned int TEXTURE5 = 0x84C5;
+ const unsigned int TEXTURE6 = 0x84C6;
+ const unsigned int TEXTURE7 = 0x84C7;
+ const unsigned int TEXTURE8 = 0x84C8;
+ const unsigned int TEXTURE9 = 0x84C9;
+ const unsigned int TEXTURE10 = 0x84CA;
+ const unsigned int TEXTURE11 = 0x84CB;
+ const unsigned int TEXTURE12 = 0x84CC;
+ const unsigned int TEXTURE13 = 0x84CD;
+ const unsigned int TEXTURE14 = 0x84CE;
+ const unsigned int TEXTURE15 = 0x84CF;
+ const unsigned int TEXTURE16 = 0x84D0;
+ const unsigned int TEXTURE17 = 0x84D1;
+ const unsigned int TEXTURE18 = 0x84D2;
+ const unsigned int TEXTURE19 = 0x84D3;
+ const unsigned int TEXTURE20 = 0x84D4;
+ const unsigned int TEXTURE21 = 0x84D5;
+ const unsigned int TEXTURE22 = 0x84D6;
+ const unsigned int TEXTURE23 = 0x84D7;
+ const unsigned int TEXTURE24 = 0x84D8;
+ const unsigned int TEXTURE25 = 0x84D9;
+ const unsigned int TEXTURE26 = 0x84DA;
+ const unsigned int TEXTURE27 = 0x84DB;
+ const unsigned int TEXTURE28 = 0x84DC;
+ const unsigned int TEXTURE29 = 0x84DD;
+ const unsigned int TEXTURE30 = 0x84DE;
+ const unsigned int TEXTURE31 = 0x84DF;
+ const unsigned int ACTIVE_TEXTURE = 0x84E0;
+
+ /* TextureWrapMode */
+ const unsigned int REPEAT = 0x2901;
+ const unsigned int CLAMP_TO_EDGE = 0x812F;
+ const unsigned int MIRRORED_REPEAT = 0x8370;
+
+ /* Uniform Types */
+ const unsigned int FLOAT_VEC2 = 0x8B50;
+ const unsigned int FLOAT_VEC3 = 0x8B51;
+ const unsigned int FLOAT_VEC4 = 0x8B52;
+ const unsigned int INT_VEC2 = 0x8B53;
+ const unsigned int INT_VEC3 = 0x8B54;
+ const unsigned int INT_VEC4 = 0x8B55;
+ const unsigned int BOOL = 0x8B56;
+ const unsigned int BOOL_VEC2 = 0x8B57;
+ const unsigned int BOOL_VEC3 = 0x8B58;
+ const unsigned int BOOL_VEC4 = 0x8B59;
+ const unsigned int FLOAT_MAT2 = 0x8B5A;
+ const unsigned int FLOAT_MAT3 = 0x8B5B;
+ const unsigned int FLOAT_MAT4 = 0x8B5C;
+ const unsigned int SAMPLER_2D = 0x8B5E;
+ const unsigned int SAMPLER_CUBE = 0x8B60;
+
+ /* Vertex Arrays */
+ const unsigned int VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
+ const unsigned int VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
+ const unsigned int VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
+ const unsigned int VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
+ const unsigned int VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
+ const unsigned int VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
+ const unsigned int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
+
+ /* Shader Source */
+ const unsigned int COMPILE_STATUS = 0x8B81;
+
+ /* Shader Precision-Specified Types */
+ const unsigned int LOW_FLOAT = 0x8DF0;
+ const unsigned int MEDIUM_FLOAT = 0x8DF1;
+ const unsigned int HIGH_FLOAT = 0x8DF2;
+ const unsigned int LOW_INT = 0x8DF3;
+ const unsigned int MEDIUM_INT = 0x8DF4;
+ const unsigned int HIGH_INT = 0x8DF5;
+
+ /* Framebuffer Object. */
+ const unsigned int FRAMEBUFFER = 0x8D40;
+ const unsigned int RENDERBUFFER = 0x8D41;
+
+ const unsigned int RGBA4 = 0x8056;
+ const unsigned int RGB5_A1 = 0x8057;
+ const unsigned int RGB565 = 0x8D62;
+ const unsigned int DEPTH_COMPONENT16 = 0x81A5;
+ const unsigned int STENCIL_INDEX = 0x1901;
+ const unsigned int STENCIL_INDEX8 = 0x8D48;
+ const unsigned int DEPTH_STENCIL = 0x84F9;
+
+ const unsigned int RENDERBUFFER_WIDTH = 0x8D42;
+ const unsigned int RENDERBUFFER_HEIGHT = 0x8D43;
+ const unsigned int RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
+ const unsigned int RENDERBUFFER_RED_SIZE = 0x8D50;
+ const unsigned int RENDERBUFFER_GREEN_SIZE = 0x8D51;
+ const unsigned int RENDERBUFFER_BLUE_SIZE = 0x8D52;
+ const unsigned int RENDERBUFFER_ALPHA_SIZE = 0x8D53;
+ const unsigned int RENDERBUFFER_DEPTH_SIZE = 0x8D54;
+ const unsigned int RENDERBUFFER_STENCIL_SIZE = 0x8D55;
+
+ const unsigned int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
+ const unsigned int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
+ const unsigned int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
+ const unsigned int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
+
+ const unsigned int COLOR_ATTACHMENT0 = 0x8CE0;
+ const unsigned int DEPTH_ATTACHMENT = 0x8D00;
+ const unsigned int STENCIL_ATTACHMENT = 0x8D20;
+ const unsigned int DEPTH_STENCIL_ATTACHMENT = 0x821A;
+
+ const unsigned int NONE = 0;
+
+ const unsigned int FRAMEBUFFER_COMPLETE = 0x8CD5;
+ const unsigned int FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
+ const unsigned int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
+ const unsigned int FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
+ const unsigned int FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
+
+ const unsigned int FRAMEBUFFER_BINDING = 0x8CA6;
+ const unsigned int RENDERBUFFER_BINDING = 0x8CA7;
+ const unsigned int MAX_RENDERBUFFER_SIZE = 0x84E8;
+
+ const unsigned int INVALID_FRAMEBUFFER_OPERATION = 0x0506;
+
+ /* WebGL-specific enums */
+ const unsigned int UNPACK_FLIP_Y_WEBGL = 0x9240;
+ const unsigned int UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
+ const unsigned int CONTEXT_LOST_WEBGL = 0x9242;
+ const unsigned int UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
+ const unsigned int BROWSER_DEFAULT_WEBGL = 0x9244;
+
+ readonly attribute long drawingBufferWidth;
+ readonly attribute long drawingBufferHeight;
+
+ [StrictTypeChecking] void activeTexture(in unsigned long texture) raises(DOMException);
+ [StrictTypeChecking] void attachShader(in WebGLProgram program, in WebGLShader shader) raises(DOMException);
+ [StrictTypeChecking] void bindAttribLocation(in WebGLProgram program, in unsigned long index, in DOMString name) raises(DOMException);
+ [StrictTypeChecking] void bindBuffer(in unsigned long target, in WebGLBuffer buffer) raises(DOMException);
+ [StrictTypeChecking] void bindFramebuffer(in unsigned long target, in WebGLFramebuffer framebuffer) raises(DOMException);
+ [StrictTypeChecking] void bindRenderbuffer(in unsigned long target, in WebGLRenderbuffer renderbuffer) raises(DOMException);
+ [StrictTypeChecking] void bindTexture(in unsigned long target, in WebGLTexture texture) raises(DOMException);
+ [StrictTypeChecking] void blendColor(in float red, in float green, in float blue, in float alpha);
+ [StrictTypeChecking] void blendEquation( in unsigned long mode );
+ [StrictTypeChecking] void blendEquationSeparate(in unsigned long modeRGB, in unsigned long modeAlpha);
+ [StrictTypeChecking] void blendFunc(in unsigned long sfactor, in unsigned long dfactor);
+ [StrictTypeChecking] void blendFuncSeparate(in unsigned long srcRGB, in unsigned long dstRGB, in unsigned long srcAlpha, in unsigned long dstAlpha);
+ [StrictTypeChecking] void bufferData(in unsigned long target, in ArrayBuffer data, in unsigned long usage) raises (DOMException);
+ [StrictTypeChecking] void bufferData(in unsigned long target, in ArrayBufferView data, in unsigned long usage) raises (DOMException);
+ [StrictTypeChecking] void bufferData(in unsigned long target, in long long size, in unsigned long usage) raises (DOMException);
+ [StrictTypeChecking] void bufferSubData(in unsigned long target, in long long offset, in ArrayBuffer data) raises (DOMException);
+ [StrictTypeChecking] void bufferSubData(in unsigned long target, in long long offset, in ArrayBufferView data) raises (DOMException);
+
+ [StrictTypeChecking] unsigned long checkFramebufferStatus(in unsigned long target);
+ [StrictTypeChecking] void clear(in unsigned long mask);
+ [StrictTypeChecking] void clearColor(in float red, in float green, in float blue, in float alpha);
+ [StrictTypeChecking] void clearDepth(in float depth);
+ [StrictTypeChecking] void clearStencil(in long s);
+ [StrictTypeChecking] void colorMask(in boolean red, in boolean green, in boolean blue, in boolean alpha);
+ [StrictTypeChecking] void compileShader(in WebGLShader shader) raises(DOMException);
+
+ [StrictTypeChecking] void compressedTexImage2D(in unsigned long target, in long level, in unsigned long internalformat,
+ in long width, in long height, in long border, in ArrayBufferView data);
+ [StrictTypeChecking] void compressedTexSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
+ in long width, in long height, in unsigned long format, in ArrayBufferView data);
+
+ [StrictTypeChecking] void copyTexImage2D(in unsigned long target, in long level, in unsigned long internalformat, in long x, in long y, in long width, in long height, in long border);
+ [StrictTypeChecking] void copyTexSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset, in long x, in long y, in long width, in long height);
+
+ [StrictTypeChecking] WebGLBuffer createBuffer();
+ [StrictTypeChecking] WebGLFramebuffer createFramebuffer();
+ [StrictTypeChecking] WebGLProgram createProgram();
+ [StrictTypeChecking] WebGLRenderbuffer createRenderbuffer();
+ [StrictTypeChecking] WebGLShader createShader(in unsigned long type) raises(DOMException);
+ [StrictTypeChecking] WebGLTexture createTexture();
+
+ [StrictTypeChecking] void cullFace(in unsigned long mode);
+
+ [StrictTypeChecking] void deleteBuffer(in WebGLBuffer buffer);
+ [StrictTypeChecking] void deleteFramebuffer(in WebGLFramebuffer framebuffer);
+ [StrictTypeChecking] void deleteProgram(in WebGLProgram program);
+ [StrictTypeChecking] void deleteRenderbuffer(in WebGLRenderbuffer renderbuffer);
+ [StrictTypeChecking] void deleteShader(in WebGLShader shader);
+ [StrictTypeChecking] void deleteTexture(in WebGLTexture texture);
+
+ [StrictTypeChecking] void depthFunc(in unsigned long func);
+ [StrictTypeChecking] void depthMask(in boolean flag);
+ // FIXME: this differs from the current WebGL spec (depthRangef)
+ [StrictTypeChecking] void depthRange(in float zNear, in float zFar);
+ [StrictTypeChecking] void detachShader(in WebGLProgram program, in WebGLShader shader) raises(DOMException);
+ [StrictTypeChecking] void disable(in unsigned long cap);
+ [StrictTypeChecking] void disableVertexAttribArray(in unsigned long index) raises(DOMException);
+ [StrictTypeChecking] void drawArrays(in unsigned long mode, in long first, in long count) raises(DOMException);
+ [StrictTypeChecking] void drawElements(in unsigned long mode, in long count, in unsigned long type, in long long offset) raises(DOMException);
+
+ [StrictTypeChecking] void enable(in unsigned long cap);
+ [StrictTypeChecking] void enableVertexAttribArray(in unsigned long index) raises(DOMException);
+ [StrictTypeChecking] void finish();
+ [StrictTypeChecking] void flush();
+ [StrictTypeChecking] void framebufferRenderbuffer(in unsigned long target, in unsigned long attachment, in unsigned long renderbuffertarget, in WebGLRenderbuffer renderbuffer) raises(DOMException);
+ [StrictTypeChecking] void framebufferTexture2D(in unsigned long target, in unsigned long attachment, in unsigned long textarget, in WebGLTexture texture, in long level) raises(DOMException);
+ [StrictTypeChecking] void frontFace(in unsigned long mode);
+ [StrictTypeChecking] void generateMipmap(in unsigned long target);
+
+ [StrictTypeChecking] WebGLActiveInfo getActiveAttrib(in WebGLProgram program, in unsigned long index) raises (DOMException);
+ [StrictTypeChecking] WebGLActiveInfo getActiveUniform(in WebGLProgram program, in unsigned long index) raises (DOMException);
+
+#if (defined(LANGUAGE_DART) && LANGUAGE_DART)
+ [StrictTypeChecking, Custom] any[] getAttachedShaders(in WebGLProgram program) raises (DOMException);
+#else
+ [StrictTypeChecking, Custom] void getAttachedShaders(in WebGLProgram program) raises (DOMException);
+#endif
+
+ [StrictTypeChecking] int getAttribLocation(in WebGLProgram program, in DOMString name);
+
+ // any getBufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+#if (defined(LANGUAGE_DART) && LANGUAGE_DART)
+ [StrictTypeChecking, Custom] any getBufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+#else
+ [StrictTypeChecking, Custom] void getBufferParameter();
+#endif
+
+ [StrictTypeChecking] WebGLContextAttributes getContextAttributes();
+
+ [StrictTypeChecking] unsigned long getError();
+
+#if (defined(LANGUAGE_DART) && LANGUAGE_DART)
+ [StrictTypeChecking, Custom] any getExtension(in DOMString name);
+ [StrictTypeChecking, Custom] any getParameter(in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] any getFramebufferAttachmentParameter(in unsigned long target, in unsigned long attachment, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] any getProgramParameter(in WebGLProgram program, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString getProgramInfoLog(in WebGLProgram program) raises(DOMException);
+#else
+ // object getExtension(in DOMString name);
+ [StrictTypeChecking, Custom] void getExtension(in DOMString name);
+
+ // any getFramebufferAttachmentParameter(in unsigned long target, in unsigned long attachment, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] void getFramebufferAttachmentParameter();
+ // any getParameter(in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] void getParameter();
+ // any getProgramParameter(in WebGLProgram program, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] void getProgramParameter();
+ [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString getProgramInfoLog(in WebGLProgram program) raises(DOMException);
+#endif
+
+#if (defined(LANGUAGE_DART) && LANGUAGE_DART)
+ [StrictTypeChecking, Custom] any getRenderbufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] any getShaderParameter(in WebGLShader shader, in unsigned long pname) raises(DOMException);
+#else
+ // any getRenderbufferParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] void getRenderbufferParameter();
+ // any getShaderParameter(in WebGLShader shader, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] void getShaderParameter() raises(DOMException);
+#endif
+
+ [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString getShaderInfoLog(in WebGLShader shader) raises(DOMException);
+
+ [StrictTypeChecking] WebGLShaderPrecisionFormat getShaderPrecisionFormat(in unsigned long shadertype, in unsigned long precisiontype) raises(DOMException);
+
+ [StrictTypeChecking, TreatReturnedNullStringAs=Null] DOMString getShaderSource(in WebGLShader shader) raises(DOMException);
+
+#if (defined(LANGUAGE_DART) && LANGUAGE_DART)
+ [StrictTypeChecking, Custom] DOMString[] getSupportedExtensions();
+ [StrictTypeChecking, Custom] any getTexParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] any getUniform(in WebGLProgram program, in WebGLUniformLocation location) raises(DOMException);
+#else
+ // DOMString[] getSupportedExtensions()
+ [StrictTypeChecking, Custom] void getSupportedExtensions();
+
+ // any getTexParameter(in unsigned long target, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] void getTexParameter();
+
+ // any getUniform(in WebGLProgram program, in WebGLUniformLocation location) raises(DOMException);
+ [StrictTypeChecking, Custom] void getUniform();
+#endif
+
+ [StrictTypeChecking] WebGLUniformLocation getUniformLocation(in WebGLProgram program, in DOMString name) raises(DOMException);
+
+#if (defined(LANGUAGE_DART) && LANGUAGE_DART)
+ [StrictTypeChecking, Custom] any getVertexAttrib(in unsigned long index, in unsigned long pname) raises(DOMException);
+#else
+ // any getVertexAttrib(in unsigned long index, in unsigned long pname) raises(DOMException);
+ [StrictTypeChecking, Custom] void getVertexAttrib();
+#endif
+
+ [StrictTypeChecking] long long getVertexAttribOffset(in unsigned long index, in unsigned long pname);
+
+ [StrictTypeChecking] void hint(in unsigned long target, in unsigned long mode);
+ [StrictTypeChecking] boolean isBuffer(in WebGLBuffer buffer);
+ [StrictTypeChecking] boolean isContextLost();
+ [StrictTypeChecking] boolean isEnabled(in unsigned long cap);
+ [StrictTypeChecking] boolean isFramebuffer(in WebGLFramebuffer framebuffer);
+ [StrictTypeChecking] boolean isProgram(in WebGLProgram program);
+ [StrictTypeChecking] boolean isRenderbuffer(in WebGLRenderbuffer renderbuffer);
+ [StrictTypeChecking] boolean isShader(in WebGLShader shader);
+ [StrictTypeChecking] boolean isTexture(in WebGLTexture texture);
+ [StrictTypeChecking] void lineWidth(in float width);
+ [StrictTypeChecking] void linkProgram(in WebGLProgram program) raises(DOMException);
+ [StrictTypeChecking] void pixelStorei(in unsigned long pname, in long param);
+ [StrictTypeChecking] void polygonOffset(in float factor, in float units);
+
+ [StrictTypeChecking] void readPixels(in long x, in long y, in long width, in long height, in unsigned long format, in unsigned long type, in ArrayBufferView pixels) raises(DOMException);
+
+ [StrictTypeChecking] void releaseShaderCompiler();
+ [StrictTypeChecking] void renderbufferStorage(in unsigned long target, in unsigned long internalformat, in long width, in long height);
+ [StrictTypeChecking] void sampleCoverage(in float value, in boolean invert);
+ [StrictTypeChecking] void scissor(in long x, in long y, in long width, in long height);
+ [StrictTypeChecking] void shaderSource(in WebGLShader shader, in DOMString string) raises(DOMException);
+ [StrictTypeChecking] void stencilFunc(in unsigned long func, in long ref, in unsigned long mask);
+ [StrictTypeChecking] void stencilFuncSeparate(in unsigned long face, in unsigned long func, in long ref, in unsigned long mask);
+ [StrictTypeChecking] void stencilMask(in unsigned long mask);
+ [StrictTypeChecking] void stencilMaskSeparate(in unsigned long face, in unsigned long mask);
+ [StrictTypeChecking] void stencilOp(in unsigned long fail, in unsigned long zfail, in unsigned long zpass);
+ [StrictTypeChecking] void stencilOpSeparate(in unsigned long face, in unsigned long fail, in unsigned long zfail, in unsigned long zpass);
+
+ [StrictTypeChecking] void texParameterf(in unsigned long target, in unsigned long pname, in float param);
+ [StrictTypeChecking] void texParameteri(in unsigned long target, in unsigned long pname, in long param);
+
+ // Supported forms:
+ [StrictTypeChecking] void texImage2D(in unsigned long target, in long level, in unsigned long internalformat, in long width, in long height,
+ in long border, in unsigned long format, in unsigned long type, in ArrayBufferView pixels) raises (DOMException);
+ [StrictTypeChecking] void texImage2D(in unsigned long target, in long level, in unsigned long internalformat,
+ in unsigned long format, in unsigned long type, in ImageData pixels) raises (DOMException);
+ [StrictTypeChecking] void texImage2D(in unsigned long target, in long level, in unsigned long internalformat,
+ in unsigned long format, in unsigned long type, in HTMLImageElement image) raises (DOMException);
+ [StrictTypeChecking] void texImage2D(in unsigned long target, in long level, in unsigned long internalformat,
+ in unsigned long format, in unsigned long type, in HTMLCanvasElement canvas) raises (DOMException);
+#if defined(ENABLE_VIDEO) && ENABLE_VIDEO
+ [StrictTypeChecking] void texImage2D(in unsigned long target, in long level, in unsigned long internalformat,
+ in unsigned long format, in unsigned long type, in HTMLVideoElement video) raises (DOMException);
+#endif
+
+ [StrictTypeChecking] void texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
+ in long width, in long height,
+ in unsigned long format, in unsigned long type, in ArrayBufferView pixels) raises (DOMException);
+ [StrictTypeChecking] void texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
+ in unsigned long format, in unsigned long type, in ImageData pixels) raises (DOMException);
+ [StrictTypeChecking] void texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
+ in unsigned long format, in unsigned long type, in HTMLImageElement image) raises (DOMException);
+ [StrictTypeChecking] void texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
+ in unsigned long format, in unsigned long type, in HTMLCanvasElement canvas) raises (DOMException);
+#if defined(ENABLE_VIDEO) && ENABLE_VIDEO
+ [StrictTypeChecking] void texSubImage2D(in unsigned long target, in long level, in long xoffset, in long yoffset,
+ in unsigned long format, in unsigned long type, in HTMLVideoElement video) raises (DOMException);
+#endif
+
+ [StrictTypeChecking] void uniform1f(in WebGLUniformLocation location, in float x) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniform1fv(in WebGLUniformLocation location, in Float32Array v) raises(DOMException);
+ [StrictTypeChecking] void uniform1i(in WebGLUniformLocation location, in long x) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniform1iv(in WebGLUniformLocation location, in Int32Array v) raises(DOMException);
+ [StrictTypeChecking] void uniform2f(in WebGLUniformLocation location, in float x, in float y) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniform2fv(in WebGLUniformLocation location, in Float32Array v) raises(DOMException);
+ [StrictTypeChecking] void uniform2i(in WebGLUniformLocation location, in long x, in long y) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniform2iv(in WebGLUniformLocation location, in Int32Array v) raises(DOMException);
+ [StrictTypeChecking] void uniform3f(in WebGLUniformLocation location, in float x, in float y, in float z) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniform3fv(in WebGLUniformLocation location, in Float32Array v) raises(DOMException);
+ [StrictTypeChecking] void uniform3i(in WebGLUniformLocation location, in long x, in long y, in long z) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniform3iv(in WebGLUniformLocation location, in Int32Array v) raises(DOMException);
+ [StrictTypeChecking] void uniform4f(in WebGLUniformLocation location, in float x, in float y, in float z, in float w) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniform4fv(in WebGLUniformLocation location, in Float32Array v) raises(DOMException);
+ [StrictTypeChecking] void uniform4i(in WebGLUniformLocation location, in long x, in long y, in long z, in long w) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniform4iv(in WebGLUniformLocation location, in Int32Array v) raises(DOMException);
+
+ [StrictTypeChecking, Custom] void uniformMatrix2fv(in WebGLUniformLocation location, in boolean transpose, in Float32Array array) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniformMatrix3fv(in WebGLUniformLocation location, in boolean transpose, in Float32Array array) raises(DOMException);
+ [StrictTypeChecking, Custom] void uniformMatrix4fv(in WebGLUniformLocation location, in boolean transpose, in Float32Array array) raises(DOMException);
+
+ [StrictTypeChecking] void useProgram(in WebGLProgram program) raises(DOMException);
+ [StrictTypeChecking] void validateProgram(in WebGLProgram program) raises(DOMException);
+
+ [StrictTypeChecking] void vertexAttrib1f(in unsigned long indx, in float x);
+ [StrictTypeChecking, Custom] void vertexAttrib1fv(in unsigned long indx, in Float32Array values);
+ [StrictTypeChecking] void vertexAttrib2f(in unsigned long indx, in float x, in float y);
+ [StrictTypeChecking, Custom] void vertexAttrib2fv(in unsigned long indx, in Float32Array values);
+ [StrictTypeChecking] void vertexAttrib3f(in unsigned long indx, in float x, in float y, in float z);
+ [StrictTypeChecking, Custom] void vertexAttrib3fv(in unsigned long indx, in Float32Array values);
+ [StrictTypeChecking] void vertexAttrib4f(in unsigned long indx, in float x, in float y, in float z, in float w);
+ [StrictTypeChecking, Custom] void vertexAttrib4fv(in unsigned long indx, in Float32Array values);
+ [StrictTypeChecking] void vertexAttribPointer(in unsigned long indx, in long size, in unsigned long type, in boolean normalized,
+ in long stride, in long long offset) raises(DOMException);
+
+ [StrictTypeChecking] void viewport(in long x, in long y, in long width, in long height);
+ };
+}
+
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLShader.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLShader.idl
new file mode 100644
index 0000000..2aeb704
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLShader.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL
+ ] WebGLShader {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLShaderPrecisionFormat.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLShaderPrecisionFormat.idl
new file mode 100644
index 0000000..7cfb80e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLShaderPrecisionFormat.idl
@@ -0,0 +1,37 @@
+/*
+ * 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 AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+
+ interface [
+ Conditional=WEBGL,
+ ] WebGLShaderPrecisionFormat {
+ readonly attribute int rangeMin;
+ readonly attribute int rangeMax;
+ readonly attribute int precision;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLTexture.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLTexture.idl
new file mode 100644
index 0000000..8e72dd3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLTexture.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2009 Apple 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL
+ ] WebGLTexture {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLUniformLocation.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLUniformLocation.idl
new file mode 100644
index 0000000..eb3167c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLUniformLocation.idl
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL
+ ] WebGLUniformLocation {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl b/elemental/idl/third_party/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl
new file mode 100644
index 0000000..0abbe07
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl
@@ -0,0 +1,31 @@
+/*
+ * 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.
+ */
+
+module html {
+ interface [
+ Conditional=WEBGL
+ ] WebGLVertexArrayObjectOES {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/shadow/HTMLContentElement.idl b/elemental/idl/third_party/WebCore/html/shadow/HTMLContentElement.idl
new file mode 100644
index 0000000..c928d44
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/shadow/HTMLContentElement.idl
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+ interface [
+ Conditional=SHADOW_DOM,
+ V8EnabledAtRuntime=shadowDOM
+ ] HTMLContentElement : HTMLElement {
+ attribute [Reflect] DOMString select;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/shadow/HTMLShadowElement.idl b/elemental/idl/third_party/WebCore/html/shadow/HTMLShadowElement.idl
new file mode 100644
index 0000000..94facb7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/shadow/HTMLShadowElement.idl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module html {
+
+ interface [
+ Conditional=SHADOW_DOM,
+ V8EnabledAtRuntime=shadowDOM
+ ] HTMLShadowElement : HTMLElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/track/TextTrack.idl b/elemental/idl/third_party/WebCore/html/track/TextTrack.idl
new file mode 100644
index 0000000..845a80c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/track/TextTrack.idl
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=VIDEO_TRACK,
+ V8EnabledAtRuntime=webkitVideoTrack,
+ EventTarget,
+ JSCustomMarkFunction,
+ JSCustomIsReachable
+ ] TextTrack {
+ readonly attribute DOMString kind;
+ readonly attribute DOMString label;
+ readonly attribute DOMString language;
+
+ const unsigned short DISABLED = 0;
+ const unsigned short HIDDEN = 1;
+ const unsigned short SHOWING = 2;
+ attribute unsigned short mode
+ setter raises (DOMException);
+
+ readonly attribute TextTrackCueList cues;
+ readonly attribute TextTrackCueList activeCues;
+ attribute EventListener oncuechange;
+
+ void addCue(in TextTrackCue cue)
+ raises (DOMException);
+ void removeCue(in TextTrackCue cue)
+ raises (DOMException);
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/html/track/TextTrackCue.idl b/elemental/idl/third_party/WebCore/html/track/TextTrackCue.idl
new file mode 100644
index 0000000..d552525
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/track/TextTrackCue.idl
@@ -0,0 +1,74 @@
+/*
+ * 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=VIDEO_TRACK,
+ V8EnabledAtRuntime=webkitVideoTrack,
+ JSGenerateToNativeObject,
+ Constructor(in DOMString id, in double startTime, in double endTime, in DOMString text, in [Optional=DefaultIsUndefined] DOMString settings, in [Optional=DefaultIsUndefined] boolean pauseOnExit),
+ CallWith=ScriptExecutionContext,
+ EventTarget,
+ JSCustomMarkFunction,
+ JSCustomIsReachable
+ ] TextTrackCue {
+ readonly attribute TextTrack track;
+
+ attribute DOMString id;
+ attribute double startTime;
+ attribute double endTime;
+ attribute boolean pauseOnExit;
+
+ attribute DOMString vertical
+ setter raises (DOMException);
+ attribute boolean snapToLines;
+ attribute long line
+ setter raises (DOMException);
+ attribute long position
+ setter raises (DOMException);
+ attribute long size
+ setter raises (DOMException);
+ attribute DOMString align
+ setter raises (DOMException);
+
+ attribute DOMString text;
+ DocumentFragment getCueAsHTML();
+
+ attribute EventListener onenter;
+ attribute EventListener onexit;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/track/TextTrackCueList.idl b/elemental/idl/third_party/WebCore/html/track/TextTrackCueList.idl
new file mode 100644
index 0000000..380e59a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/track/TextTrackCueList.idl
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=VIDEO_TRACK,
+ V8EnabledAtRuntime=webkitVideoTrack,
+ IndexedGetter
+ ] TextTrackCueList {
+ readonly attribute unsigned long length;
+ TextTrackCue item(in unsigned long index);
+ TextTrackCue getCueById(in DOMString id);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/track/TextTrackList.idl b/elemental/idl/third_party/WebCore/html/track/TextTrackList.idl
new file mode 100644
index 0000000..aedda2e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/track/TextTrackList.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2011 Apple 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=VIDEO_TRACK,
+ V8EnabledAtRuntime=webkitVideoTrack,
+ IndexedGetter,
+ EventTarget,
+ JSCustomMarkFunction,
+ JSCustomIsReachable
+ ] TextTrackList {
+ readonly attribute unsigned long length;
+ TextTrack item(in unsigned long index);
+
+ attribute EventListener onaddtrack;
+
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/html/track/TrackEvent.idl b/elemental/idl/third_party/WebCore/html/track/TrackEvent.idl
new file mode 100644
index 0000000..b475ad4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/html/track/TrackEvent.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2011 Apple 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.
+ */
+
+module html {
+
+ interface [
+ Conditional=VIDEO_TRACK,
+ V8EnabledAtRuntime=webkitVideoTrack,
+ ConstructorTemplate=Event
+ ] TrackEvent : Event {
+ readonly attribute [InitializedByEventConstructor, CustomGetter] object track;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/inspector/InjectedScriptHost.idl b/elemental/idl/third_party/WebCore/inspector/InjectedScriptHost.idl
new file mode 100644
index 0000000..54f080f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/inspector/InjectedScriptHost.idl
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+ interface [
+ Conditional=INSPECTOR
+ ] InjectedScriptHost {
+ void clearConsoleMessages();
+
+ void copyText(in DOMString text);
+ [Custom] void inspect(in DOMObject objectId, in DOMObject hints);
+ [Custom] DOMObject inspectedObject(in int num);
+ [Custom] DOMObject internalConstructorName(in DOMObject object);
+ [Custom] boolean isHTMLAllCollection(in DOMObject object);
+ [Custom] DOMString type(in DOMObject object);
+ [Custom] DOMObject functionDetails(in DOMObject object);
+ [Custom] Array getEventListeners(in Node node);
+
+ [Custom] DOMString databaseId(in DOMObject database);
+ [Custom] DOMString storageId(in DOMObject storage);
+
+#if defined(ENABLE_WORKERS) && ENABLE_WORKERS
+ void didCreateWorker(in long id, in DOMString url, in boolean isFakeWorker);
+ void didDestroyWorker(in long id);
+ long nextWorkerId();
+#endif
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/inspector/InspectorFrontendHost.idl b/elemental/idl/third_party/WebCore/inspector/InspectorFrontendHost.idl
new file mode 100644
index 0000000..2a20370
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/inspector/InspectorFrontendHost.idl
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
+ * Copyright (C) 2009 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module core {
+ interface [
+ Conditional=INSPECTOR
+ ] InspectorFrontendHost {
+ void loaded();
+ void closeWindow();
+ void bringToFront();
+ void setZoomFactor(in float zoom);
+ void inspectedURLChanged(in DOMString newURL);
+
+ void requestAttachWindow();
+ void requestDetachWindow();
+ void requestSetDockSide(in DOMString side);
+ void setAttachedWindowHeight(in unsigned long height);
+ void moveWindowBy(in float x, in float y);
+ void setInjectedScriptForOrigin(in DOMString origin, in DOMString script);
+
+ DOMString localizedStringsURL();
+ DOMString hiddenPanels();
+
+ void copyText(in DOMString text);
+ void openInNewTab(in DOMString url);
+ boolean canSave();
+ void save(in DOMString url, in DOMString content, in boolean forceSaveAs);
+ void append(in DOMString url, in DOMString content);
+
+ [Custom] DOMString platform();
+ [Custom] DOMString port();
+ [Custom] void showContextMenu(in MouseEvent event, in DOMObject items);
+ void sendMessageToBackend(in DOMString message);
+
+ [Custom] void recordActionTaken(in unsigned long actionCode);
+ [Custom] void recordPanelShown(in unsigned long panelCode);
+ [Custom] void recordSettingChanged(in unsigned long settingChanged);
+
+ DOMString loadResourceSynchronously(in DOMString url);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/inspector/JavaScriptCallFrame.idl b/elemental/idl/third_party/WebCore/inspector/JavaScriptCallFrame.idl
new file mode 100644
index 0000000..47ca5d1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/inspector/JavaScriptCallFrame.idl
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module inspector {
+
+ interface [
+ Conditional=JAVASCRIPT_DEBUGGER,
+ OmitConstructor,
+ DoNotCheckConstants
+ ] JavaScriptCallFrame {
+
+ // Scope type
+ const unsigned short GLOBAL_SCOPE = 0;
+ const unsigned short LOCAL_SCOPE = 1;
+ const unsigned short WITH_SCOPE = 2;
+ const unsigned short CLOSURE_SCOPE = 3;
+ const unsigned short CATCH_SCOPE = 4;
+
+ [Custom] void evaluate(in DOMString script);
+
+ readonly attribute JavaScriptCallFrame caller;
+ readonly attribute long sourceID;
+ readonly attribute long line;
+ readonly attribute long column;
+ readonly attribute [CustomGetter] Array scopeChain;
+ [Custom] unsigned short scopeType(in int scopeIndex);
+ readonly attribute [CustomGetter] Object thisObject;
+ readonly attribute DOMString functionName;
+ readonly attribute [CustomGetter] DOMString type;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/inspector/ScriptProfile.idl b/elemental/idl/third_party/WebCore/inspector/ScriptProfile.idl
new file mode 100644
index 0000000..ebbee2e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/inspector/ScriptProfile.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=JAVASCRIPT_DEBUGGER,
+ OmitConstructor,
+ V8CustomToJSObject
+ ] ScriptProfile {
+ readonly attribute DOMString title;
+ readonly attribute unsigned long uid;
+ readonly attribute ScriptProfileNode head;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/inspector/ScriptProfileNode.idl b/elemental/idl/third_party/WebCore/inspector/ScriptProfileNode.idl
new file mode 100644
index 0000000..43f795f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/inspector/ScriptProfileNode.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=JAVASCRIPT_DEBUGGER,
+ OmitConstructor,
+ V8CustomToJSObject
+ ] ScriptProfileNode {
+ readonly attribute DOMString functionName;
+ readonly attribute DOMString url;
+ readonly attribute unsigned long lineNumber;
+ readonly attribute double totalTime;
+ readonly attribute double selfTime;
+ readonly attribute unsigned long numberOfCalls;
+ readonly attribute sequence<ScriptProfileNode> children;
+ readonly attribute boolean visible;
+ readonly attribute [CustomGetter] unsigned long callUID;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/loader/appcache/DOMApplicationCache.idl b/elemental/idl/third_party/WebCore/loader/appcache/DOMApplicationCache.idl
new file mode 100644
index 0000000..a35fa47
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/loader/appcache/DOMApplicationCache.idl
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2008, 2009 Apple 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 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 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.
+ */
+
+module offline {
+
+ interface [
+ EventTarget,
+ OmitConstructor,
+ DoNotCheckConstants,
+ JSGenerateIsReachable=ImplFrame
+ ] DOMApplicationCache {
+ // update status
+ const unsigned short UNCACHED = 0;
+ const unsigned short IDLE = 1;
+ const unsigned short CHECKING = 2;
+ const unsigned short DOWNLOADING = 3;
+ const unsigned short UPDATEREADY = 4;
+ const unsigned short OBSOLETE = 5;
+ readonly attribute unsigned short status;
+
+ void update()
+ raises(DOMException);
+ void swapCache()
+ raises(DOMException);
+ void abort();
+
+ // events
+ attribute EventListener onchecking;
+ attribute EventListener onerror;
+ attribute EventListener onnoupdate;
+ attribute EventListener ondownloading;
+ attribute EventListener onprogress;
+ attribute EventListener onupdateready;
+ attribute EventListener oncached;
+ attribute EventListener onobsolete;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/notifications/DOMWindowNotifications.idl b/elemental/idl/third_party/WebCore/notifications/DOMWindowNotifications.idl
new file mode 100644
index 0000000..ea8a129
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/notifications/DOMWindowNotifications.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006, 2007, 2008, 2009, 2012 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.
+ */
+
+module window {
+
+ interface [
+ Conditional=NOTIFICATIONS|LEGACY_NOTIFICATIONS,
+ Supplemental=DOMWindow
+ ] DOMWindowNotifications {
+#if defined(ENABLE_LEGACY_NOTIFICATIONS) && ENABLE_LEGACY_NOTIFICATIONS
+ readonly attribute [V8EnabledAtRuntime] NotificationCenter webkitNotifications;
+#endif
+#if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
+ attribute NotificationConstructor Notification;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/notifications/Notification.idl b/elemental/idl/third_party/WebCore/notifications/Notification.idl
new file mode 100644
index 0000000..da2eb7f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/notifications/Notification.idl
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2011, 2012 Apple 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module threads {
+
+ interface [
+ Conditional=NOTIFICATIONS|LEGACY_NOTIFICATIONS,
+ ActiveDOMObject,
+ EventTarget,
+#if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
+ Constructor(in DOMString title, in [Optional=DefaultIsUndefined] Dictionary options),
+ CallWith=ScriptExecutionContext,
+#else
+ OmitConstructor
+#endif
+ ] Notification {
+ void show();
+#if defined(ENABLE_LEGACY_NOTIFICATIONS) && ENABLE_LEGACY_NOTIFICATIONS
+ void cancel();
+#endif
+#if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
+ void close();
+#endif
+
+
+#if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
+ [CallWith=ScriptExecutionContext] static DOMString permissionLevel();
+ [Custom] static void requestPermission(in NotificationPermissionCallback callback);
+#endif
+
+ attribute EventListener onshow;
+#if defined(ENABLE_LEGACY_NOTIFICATIONS) && ENABLE_LEGACY_NOTIFICATIONS
+ attribute EventListener ondisplay;
+#endif
+ attribute EventListener onerror;
+ attribute EventListener onclose;
+ attribute EventListener onclick;
+
+ attribute DOMString dir;
+#if defined(ENABLE_LEGACY_NOTIFICATIONS) && ENABLE_LEGACY_NOTIFICATIONS
+ attribute DOMString replaceId;
+#endif
+#if defined(ENABLE_NOTIFICATIONS) && ENABLE_NOTIFICATIONS
+ attribute DOMString tag;
+#endif
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/notifications/NotificationCenter.idl b/elemental/idl/third_party/WebCore/notifications/NotificationCenter.idl
new file mode 100644
index 0000000..da99ba9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/notifications/NotificationCenter.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2011, 2012 Apple 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module threads {
+
+ interface [
+ Conditional=LEGACY_NOTIFICATIONS,
+ ActiveDOMObject,
+ OmitConstructor
+ ] NotificationCenter {
+#if !defined(ENABLE_TEXT_NOTIFICATIONS_ONLY) || !ENABLE_TEXT_NOTIFICATIONS_ONLY
+ [V8Custom] Notification createHTMLNotification(in DOMString url) raises(DOMException);
+#endif
+ [V8Custom] Notification createNotification(in DOMString iconUrl, in DOMString title, in DOMString body) raises(DOMException);
+
+ int checkPermission();
+ [Custom] void requestPermission(in VoidCallback callback);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/notifications/NotificationPermissionCallback.idl b/elemental/idl/third_party/WebCore/notifications/NotificationPermissionCallback.idl
new file mode 100644
index 0000000..1f11161
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/notifications/NotificationPermissionCallback.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2012 Apple 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.
+ */
+
+module threads {
+
+ interface [
+ Conditional=NOTIFICATIONS,
+ Callback
+ ] NotificationPermissionCallback {
+ boolean handleEvent(in DOMString permission);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/notifications/WorkerContextNotifications.idl b/elemental/idl/third_party/WebCore/notifications/WorkerContextNotifications.idl
new file mode 100644
index 0000000..3c93bc2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/notifications/WorkerContextNotifications.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ *
+ */
+
+module threads {
+
+ interface [
+ Conditional=NOTIFICATIONS|LEGACY_NOTIFICATIONS,
+ Supplemental=WorkerContext
+ ] WorkerContextNotifications {
+#if defined(ENABLE_LEGACY_NOTIFICATIONS) && ENABLE_LEGACY_NOTIFICATIONS
+ readonly attribute [V8EnabledAtRuntime] NotificationCenter webkitNotifications;
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/AbstractView.idl b/elemental/idl/third_party/WebCore/page/AbstractView.idl
new file mode 100644
index 0000000..6d8232b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/AbstractView.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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.
+ */
+
+module views {
+
+ // Introduced in DOM Level 2:
+ interface [
+ ObjCCustomImplementation,
+ OmitConstructor
+ ] AbstractView {
+ readonly attribute Document document;
+ readonly attribute StyleMedia styleMedia;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/BarInfo.idl b/elemental/idl/third_party/WebCore/page/BarInfo.idl
new file mode 100644
index 0000000..11a97c7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/BarInfo.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+
+ interface [
+ JSGenerateIsReachable=ImplFrame,
+ OmitConstructor
+ ] BarInfo {
+ readonly attribute boolean visible;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/Console.idl b/elemental/idl/third_party/WebCore/page/Console.idl
new file mode 100644
index 0000000..5f215e8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/Console.idl
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007, 2008 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+
+ interface [
+ JSGenerateIsReachable=ImplFrame,
+ OmitConstructor
+ ] Console {
+
+ [CallWith=ScriptArguments|CallStack] void debug();
+ [CallWith=ScriptArguments|CallStack] void error();
+ [CallWith=ScriptArguments|CallStack] void info();
+ [CallWith=ScriptArguments|CallStack] void log();
+ [CallWith=ScriptArguments|CallStack] void warn();
+ [CallWith=ScriptArguments|CallStack] void dir();
+ [CallWith=ScriptArguments|CallStack] void dirxml();
+ [V8Custom, CallWith=ScriptArguments|CallStack] void trace();
+ [V8Custom, CallWith=ScriptArguments|CallStack, ImplementedAs=assertCondition] void assert(in boolean condition);
+ [CallWith=ScriptArguments|CallStack] void count();
+ [CallWith=ScriptArguments|CallStack] void markTimeline();
+
+#if defined(ENABLE_JAVASCRIPT_DEBUGGER) && ENABLE_JAVASCRIPT_DEBUGGER
+ readonly attribute sequence<ScriptProfile> profiles;
+ [Custom] void profile(in DOMString title);
+ [Custom] void profileEnd(in DOMString title);
+#endif
+
+ void time(in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString title);
+ [CallWith=ScriptArguments|CallStack] void timeEnd(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString title);
+ [CallWith=ScriptArguments|CallStack] void timeStamp();
+ [CallWith=ScriptArguments|CallStack] void group();
+ [CallWith=ScriptArguments|CallStack] void groupCollapsed();
+ void groupEnd();
+
+ readonly attribute [V8CustomGetter] MemoryInfo memory;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/Coordinates.idl b/elemental/idl/third_party/WebCore/page/Coordinates.idl
new file mode 100644
index 0000000..f83d87e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/Coordinates.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2009 Apple 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 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 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.
+ */
+
+module core {
+
+ interface [
+ OmitConstructor
+ ] Coordinates {
+ readonly attribute double latitude;
+ readonly attribute double longitude;
+ readonly attribute [Custom] double altitude;
+ readonly attribute double accuracy;
+ readonly attribute [Custom] double altitudeAccuracy;
+ readonly attribute [Custom] double heading;
+ readonly attribute [Custom] double speed;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/page/Crypto.idl b/elemental/idl/third_party/WebCore/page/Crypto.idl
new file mode 100644
index 0000000..807b63f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/Crypto.idl
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ * 3. Neither the name of Googl, Inc. ("Google") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY GOOGLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+
+ interface [
+ OmitConstructor
+ ] Crypto {
+ void getRandomValues(in ArrayBufferView array) raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/DOMSelection.idl b/elemental/idl/third_party/WebCore/page/DOMSelection.idl
new file mode 100644
index 0000000..1f7d3da
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/DOMSelection.idl
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+
+ // This is based off of Mozilla's Selection interface
+ // https://developer.mozilla.org/En/DOM/Selection
+ interface [
+ JSGenerateIsReachable=ImplFrame,
+ InterfaceName=Selection
+ ] DOMSelection {
+ readonly attribute Node anchorNode;
+ readonly attribute long anchorOffset;
+ readonly attribute Node focusNode;
+ readonly attribute long focusOffset;
+
+ readonly attribute boolean isCollapsed;
+ readonly attribute long rangeCount;
+
+ void collapse(in [Optional=DefaultIsUndefined] Node node,
+ in [Optional=DefaultIsUndefined] long index)
+ raises(DOMException);
+ void collapseToEnd()
+ raises(DOMException);
+ void collapseToStart()
+ raises(DOMException);
+
+ void deleteFromDocument();
+ boolean containsNode(in [Optional=DefaultIsUndefined] Node node,
+ in [Optional=DefaultIsUndefined] boolean allowPartial);
+ void selectAllChildren(in [Optional=DefaultIsUndefined] Node node)
+ raises(DOMException);
+
+ void extend(in [Optional=DefaultIsUndefined] Node node,
+ in [Optional=DefaultIsUndefined] long offset)
+ raises(DOMException);
+
+ Range getRangeAt(in [Optional=DefaultIsUndefined] long index)
+ raises(DOMException);
+ void removeAllRanges();
+ void addRange(in [Optional=DefaultIsUndefined] Range range);
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [NotEnumerable] DOMString toString();
+#endif
+
+ // WebKit extensions
+ readonly attribute Node baseNode;
+ readonly attribute long baseOffset;
+ readonly attribute Node extentNode;
+ readonly attribute long extentOffset;
+
+ // WebKit's "type" accessor returns "None", "Range" and "Caret"
+ // IE's type accessor returns "none", "text" and "control"
+ readonly attribute DOMString type;
+
+ void modify(in [Optional=DefaultIsUndefined] DOMString alter,
+ in [Optional=DefaultIsUndefined] DOMString direction,
+ in [Optional=DefaultIsUndefined] DOMString granularity);
+ void setBaseAndExtent(in [Optional=DefaultIsUndefined] Node baseNode,
+ in [Optional=DefaultIsUndefined] long baseOffset,
+ in [Optional=DefaultIsUndefined] Node extentNode,
+ in [Optional=DefaultIsUndefined] long extentOffset)
+ raises(DOMException);
+ void setPosition(in [Optional=DefaultIsUndefined] Node node,
+ in [Optional=DefaultIsUndefined] long offset)
+ raises(DOMException);
+
+ // IE extentions
+ // http://msdn.microsoft.com/en-us/library/ms535869(VS.85).aspx
+ void empty();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/DOMWindow.idl b/elemental/idl/third_party/WebCore/page/DOMWindow.idl
new file mode 100644
index 0000000..f0656d8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/DOMWindow.idl
@@ -0,0 +1,796 @@
+/*
+ * 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.
+ */
+
+module window {
+
+ interface [
+ CheckSecurity,
+ JSCustomDefineOwnProperty,
+ CustomDeleteProperty,
+ CustomGetOwnPropertySlot,
+ CustomEnumerateProperty,
+ JSCustomMarkFunction,
+ JSCustomToNativeObject,
+ CustomPutFunction,
+ EventTarget,
+ ExtendsDOMGlobalObject,
+ JSGenerateToNativeObject,
+ ReplaceableConstructor,
+ JSLegacyParent=JSDOMWindowBase,
+ V8CustomToJSObject,
+ InterfaceName=Window
+ ] DOMWindow {
+ // DOM Level 0
+ attribute [Replaceable] Screen screen;
+ attribute [Replaceable, DoNotCheckSecurityOnGetter] History history;
+ attribute [Replaceable] BarInfo locationbar;
+ attribute [Replaceable] BarInfo menubar;
+ attribute [Replaceable] BarInfo personalbar;
+ attribute [Replaceable] BarInfo scrollbars;
+ attribute [Replaceable] BarInfo statusbar;
+ attribute [Replaceable] BarInfo toolbar;
+ attribute [Replaceable] Navigator navigator;
+ attribute [Replaceable] Navigator clientInformation;
+ readonly attribute Crypto crypto;
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ attribute [DoNotCheckSecurity, CustomSetter, V8Unforgeable] Location location;
+#endif
+ attribute [Replaceable, CustomGetter, V8CustomSetter] Event event;
+
+ DOMSelection getSelection();
+
+ readonly attribute [CheckSecurityForNode] Element frameElement;
+
+ [DoNotCheckSecurity, CallWith=ScriptExecutionContext] void focus();
+ [DoNotCheckSecurity] void blur();
+ [DoNotCheckSecurity, CallWith=ScriptExecutionContext] void close();
+
+ void print();
+ void stop();
+
+ [Custom] DOMWindow open(in DOMString url,
+ in DOMString name,
+ in [Optional] DOMString options);
+
+ [Custom] DOMObject showModalDialog(in DOMString url,
+ in [Optional] DOMObject dialogArgs,
+ in [Optional] DOMString featureArgs);
+
+ void alert(in [Optional=DefaultIsUndefined] DOMString message);
+ boolean confirm(in [Optional=DefaultIsUndefined] DOMString message);
+ [TreatReturnedNullStringAs=Null] DOMString prompt(in [Optional=DefaultIsUndefined] DOMString message,
+ in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString defaultValue);
+
+ boolean find(in [Optional=DefaultIsUndefined] DOMString string,
+ in [Optional=DefaultIsUndefined] boolean caseSensitive,
+ in [Optional=DefaultIsUndefined] boolean backwards,
+ in [Optional=DefaultIsUndefined] boolean wrap,
+ in [Optional=DefaultIsUndefined] boolean wholeWord,
+ in [Optional=DefaultIsUndefined] boolean searchInFrames,
+ in [Optional=DefaultIsUndefined] boolean showDialog);
+
+ attribute [Replaceable] boolean offscreenBuffering;
+
+ attribute [Replaceable] long outerHeight;
+ attribute [Replaceable] long outerWidth;
+ attribute [Replaceable] long innerHeight;
+ attribute [Replaceable] long innerWidth;
+ attribute [Replaceable] long screenX;
+ attribute [Replaceable] long screenY;
+ attribute [Replaceable] long screenLeft;
+ attribute [Replaceable] long screenTop;
+ attribute [Replaceable] long scrollX;
+ attribute [Replaceable] long scrollY;
+ readonly attribute long pageXOffset;
+ readonly attribute long pageYOffset;
+
+ void scrollBy(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
+ void scrollTo(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
+ void scroll(in [Optional=DefaultIsUndefined] long x, in [Optional=DefaultIsUndefined] long y);
+ void moveBy(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
+ void moveTo(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
+ void resizeBy(in [Optional=DefaultIsUndefined] float x, in [Optional=DefaultIsUndefined] float y); // FIXME: this should take longs not floats.
+ void resizeTo(in [Optional=DefaultIsUndefined] float width, in [Optional=DefaultIsUndefined] float height); // FIXME: this should take longs not floats.
+
+ readonly attribute [DoNotCheckSecurity] boolean closed;
+
+ attribute [Replaceable, DoNotCheckSecurityOnGetter] unsigned long length;
+
+ attribute DOMString name;
+
+ attribute DOMString status;
+ attribute DOMString defaultStatus;
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // This attribute is an alias of defaultStatus and is necessary for legacy uses.
+ attribute DOMString defaultstatus;
+#endif
+
+ // Self referential attributes
+ attribute [Replaceable, DoNotCheckSecurityOnGetter] DOMWindow self;
+ readonly attribute [DoNotCheckSecurity, V8Unforgeable] DOMWindow window;
+ attribute [Replaceable, DoNotCheckSecurityOnGetter] DOMWindow frames;
+
+ attribute [Replaceable, DoNotCheckSecurityOnGetter, V8CustomSetter] DOMWindow opener;
+ attribute [Replaceable, DoNotCheckSecurityOnGetter] DOMWindow parent;
+ attribute [Replaceable, DoNotCheckSecurityOnGetter, V8Unforgeable, V8ReadOnly] DOMWindow top;
+
+ // DOM Level 2 AbstractView Interface
+ readonly attribute Document document;
+
+ // CSSOM View Module
+ MediaQueryList matchMedia(in DOMString query);
+
+ // styleMedia has been removed from the CSSOM View specification.
+ readonly attribute StyleMedia styleMedia;
+
+ // DOM Level 2 Style Interface
+ CSSStyleDeclaration getComputedStyle(in [Optional=DefaultIsUndefined] Element element,
+ in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString pseudoElement);
+
+ // WebKit extensions
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ CSSRuleList getMatchedCSSRules(in [Optional=DefaultIsUndefined] Element element,
+ in [TreatNullAs=NullString, TreatUndefinedAs=NullString,Optional=DefaultIsUndefined] DOMString pseudoElement);
+#endif
+
+ attribute [Replaceable] double devicePixelRatio;
+
+ WebKitPoint webkitConvertPointFromPageToNode(in [Optional=DefaultIsUndefined] Node node,
+ in [Optional=DefaultIsUndefined] WebKitPoint p);
+ WebKitPoint webkitConvertPointFromNodeToPage(in [Optional=DefaultIsUndefined] Node node,
+ in [Optional=DefaultIsUndefined] WebKitPoint p);
+
+ readonly attribute [V8EnabledAtRuntime] DOMApplicationCache applicationCache;
+
+ readonly attribute [V8EnabledAtRuntime] Storage sessionStorage
+ getter raises(DOMException);
+ readonly attribute [V8EnabledAtRuntime] Storage localStorage
+ getter raises(DOMException);
+
+#if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
+ // This is the interface orientation in degrees. Some examples are:
+ // 0 is straight up; -90 is when the device is rotated 90 clockwise;
+ // 90 is when rotated counter clockwise.
+ readonly attribute long orientation;
+#endif
+
+ attribute [Replaceable] Console console;
+
+ // cross-document messaging
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin)
+ raises(DOMException);
+ [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin, in Array messagePorts)
+ raises(DOMException);
+
+ [DoNotCheckSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in DOMString targetOrigin)
+ raises(DOMException);
+ [DoNotCheckSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in DOMString targetOrigin, in Array transferList)
+ raises(DOMException);
+#else
+ // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
+ [DoNotCheckSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort, in DOMString targetOrigin)
+ raises(DOMException);
+#endif
+
+#if defined(ENABLE_WEB_TIMING) && ENABLE_WEB_TIMING
+ attribute [Replaceable] Performance performance;
+#endif
+
+ // Timers
+ [Custom] long setTimeout(in [Optional=DefaultIsUndefined] TimeoutHandler handler,
+ in [Optional=DefaultIsUndefined] long timeout);
+ // [Custom] long setTimeout(in TimeoutHandler handler, in long timeout, arguments...);
+ // [Custom] long setTimeout(in DOMString code, in long timeout);
+ void clearTimeout(in [Optional=DefaultIsUndefined] long handle);
+ [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
+ // [Custom] long setInterval(in TimeoutHandler handler, in long timeout, arguments...);
+ // [Custom] long setInterval(in DOMString code, in long timeout);
+ void clearInterval(in [Optional=DefaultIsUndefined] long handle);
+
+#if defined(ENABLE_REQUEST_ANIMATION_FRAME)
+ // WebKit animation extensions, being standardized in the WebPerf WG
+ long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback);
+ void webkitCancelAnimationFrame(in long id);
+ void webkitCancelRequestAnimationFrame(in long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.
+#endif
+
+ // Base64
+ DOMString atob(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
+ raises(DOMException);
+ DOMString btoa(in [TreatNullAs=NullString,Optional=DefaultIsUndefined] DOMString string)
+ raises(DOMException);
+
+ // Events
+ attribute EventListener onabort;
+ attribute EventListener onbeforeunload;
+ attribute EventListener onblur;
+ attribute EventListener oncanplay;
+ attribute EventListener oncanplaythrough;
+ attribute EventListener onchange;
+ attribute EventListener onclick;
+ attribute EventListener oncontextmenu;
+ attribute EventListener ondblclick;
+ attribute EventListener ondrag;
+ attribute EventListener ondragend;
+ attribute EventListener ondragenter;
+ attribute EventListener ondragleave;
+ attribute EventListener ondragover;
+ attribute EventListener ondragstart;
+ attribute EventListener ondrop;
+ attribute EventListener ondurationchange;
+ attribute EventListener onemptied;
+ attribute EventListener onended;
+ attribute EventListener onerror;
+ attribute EventListener onfocus;
+ attribute EventListener onhashchange;
+ attribute EventListener oninput;
+ attribute EventListener oninvalid;
+ attribute EventListener onkeydown;
+ attribute EventListener onkeypress;
+ attribute EventListener onkeyup;
+ attribute EventListener onload;
+ attribute EventListener onloadeddata;
+ attribute EventListener onloadedmetadata;
+ attribute EventListener onloadstart;
+ attribute EventListener onmessage;
+ attribute EventListener onmousedown;
+ attribute EventListener onmousemove;
+ attribute EventListener onmouseout;
+ attribute EventListener onmouseover;
+ attribute EventListener onmouseup;
+ attribute EventListener onmousewheel;
+ attribute EventListener onoffline;
+ attribute EventListener ononline;
+ attribute EventListener onpagehide;
+ attribute EventListener onpageshow;
+ attribute EventListener onpause;
+ attribute EventListener onplay;
+ attribute EventListener onplaying;
+ attribute EventListener onpopstate;
+ attribute EventListener onprogress;
+ attribute EventListener onratechange;
+ attribute EventListener onresize;
+ attribute EventListener onscroll;
+ attribute EventListener onseeked;
+ attribute EventListener onseeking;
+ attribute EventListener onselect;
+ attribute EventListener onstalled;
+ attribute EventListener onstorage;
+ attribute EventListener onsubmit;
+ attribute EventListener onsuspend;
+ attribute EventListener ontimeupdate;
+ attribute EventListener onunload;
+ attribute EventListener onvolumechange;
+ attribute EventListener onwaiting;
+
+ // Not implemented yet.
+ // attribute EventListener onafterprint;
+ // attribute EventListener onbeforeprint;
+ // attribute EventListener onreadystatechange;
+ // attribute EventListener onredo;
+ // attribute EventListener onshow;
+ // attribute EventListener onundo;
+
+ // Webkit extensions
+ attribute EventListener onreset;
+ attribute EventListener onsearch;
+ attribute EventListener onwebkitanimationend;
+ attribute EventListener onwebkitanimationiteration;
+ attribute EventListener onwebkitanimationstart;
+ attribute EventListener onwebkittransitionend;
+#if defined(ENABLE_ORIENTATION_EVENTS) && ENABLE_ORIENTATION_EVENTS
+ attribute EventListener onorientationchange;
+#endif
+ attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchstart;
+ attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchmove;
+ attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchend;
+ attribute [Conditional=TOUCH_EVENTS,V8EnabledAtRuntime] EventListener ontouchcancel;
+
+ attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondevicemotion;
+ attribute [Conditional=DEVICE_ORIENTATION,V8EnabledAtRuntime] EventListener ondeviceorientation;
+
+ // EventTarget interface
+ [Custom] void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ [Custom] void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+
+ [V8Custom] void captureEvents(/*in long eventFlags*/);
+ [V8Custom] 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_FILTERS) && ENABLE_CSS_FILTERS
+ attribute WebKitCSSFilterValueConstructor WebKitCSSFilterValue;
+#endif
+
+ attribute CSSRuleConstructor CSSRule;
+ attribute CSSCharsetRuleConstructor CSSCharsetRule;
+ attribute CSSFontFaceRuleConstructor CSSFontFaceRule;
+ 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;
+ 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;
+ attribute ProcessingInstructionConstructor ProcessingInstruction;
+ attribute [Conditional=SHADOW_DOM, V8EnabledPerContext=shadowDOM] ShadowRootConstructor WebKitShadowRoot;
+ attribute [Conditional=SHADOW_DOM, V8EnabledPerContext=shadowDOM] HTMLContentElementConstructor HTMLContentElement;
+ attribute [Conditional=SHADOW_DOM, V8EnabledPerContext=shadowDOM] HTMLShadowElementConstructor HTMLShadowElement;
+
+ 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;
+ attribute [Conditional=DATALIST] HTMLDataListElementConstructor HTMLDataListElement;
+ 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_TAG) && ENABLE_METER_TAG
+ 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_TAG) && ENABLE_PROGRESS_TAG
+ 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 HTMLTextAreaElementConstructor HTMLTextAreaElement;
+ attribute HTMLTitleElementConstructor HTMLTitleElement;
+ attribute HTMLUListElementConstructor HTMLUListElement;
+
+ attribute HTMLCollectionConstructor HTMLCollection;
+ attribute HTMLAllCollectionConstructor HTMLAllCollection;
+ attribute [Conditional=MICRODATA] HTMLPropertiesCollectionConstructor HTMLPropertiesCollection;
+ attribute HTMLUnknownElementConstructor HTMLUnknownElement;
+
+ attribute [JSCustomGetter, CustomConstructor] HTMLImageElementConstructorConstructor Image; // Usable with new operator
+ attribute [JSCustomGetter] HTMLOptionElementConstructorConstructor Option; // Usable with new operator
+
+ attribute [Conditional=ENCRYPTED_MEDIA, V8EnabledAtRuntime=encryptedMedia] MediaKeyErrorConstructor MediaKeyError;
+ attribute [Conditional=ENCRYPTED_MEDIA, V8EnabledAtRuntime=encryptedMedia] MediaKeyEventConstructor MediaKeyEvent;
+
+ attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] HTMLTrackElementConstructor HTMLTrackElement;
+ attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackConstructor TextTrack;
+ attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackCueConstructor TextTrackCue; // Usable with the new operator
+ attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackCueListConstructor TextTrackCueList;
+ attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TextTrackListConstructor TextTrackList;
+ attribute [Conditional=VIDEO_TRACK, V8EnabledAtRuntime=webkitVideoTrack] TrackEventConstructor TrackEvent;
+
+ attribute [JSCustomGetter, Conditional=VIDEO, V8EnabledAtRuntime] HTMLAudioElementConstructorConstructor Audio; // Usable with the new operator
+ attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLAudioElementConstructor HTMLAudioElement;
+ attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLMediaElementConstructor HTMLMediaElement;
+ attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLVideoElementConstructor HTMLVideoElement;
+ attribute [Conditional=VIDEO, V8EnabledAtRuntime] MediaErrorConstructor MediaError;
+ attribute [Conditional=VIDEO, V8EnabledAtRuntime] TimeRangesConstructor TimeRanges;
+ attribute [Conditional=VIDEO, V8EnabledAtRuntime] HTMLSourceElementConstructor HTMLSourceElement;
+ attribute [Conditional=VIDEO, V8EnabledAtRuntime] MediaControllerConstructor MediaController;
+
+ attribute [Conditional=WEB_INTENTS_TAG] HTMLIntentElementConstructor HTMLIntentElement;
+
+ attribute CanvasPatternConstructor CanvasPattern;
+ attribute CanvasGradientConstructor CanvasGradient;
+ attribute CanvasRenderingContext2DConstructor CanvasRenderingContext2D;
+
+ attribute ImageDataConstructor ImageData;
+ attribute TextMetricsConstructor TextMetrics;
+
+ attribute [Conditional=WEBGL] WebGLActiveInfoConstructor WebGLActiveInfo;
+ attribute [Conditional=WEBGL] WebGLBufferConstructor WebGLBuffer;
+ attribute [Conditional=WEBGL] WebGLFramebufferConstructor WebGLFramebuffer;
+ attribute [Conditional=WEBGL] WebGLProgramConstructor WebGLProgram;
+ attribute [Conditional=WEBGL] WebGLRenderbufferConstructor WebGLRenderbuffer;
+ attribute [Conditional=WEBGL] WebGLRenderingContextConstructor WebGLRenderingContext;
+ attribute [Conditional=WEBGL] WebGLShaderConstructor WebGLShader;
+ attribute [Conditional=WEBGL] WebGLShaderPrecisionFormatConstructor WebGLShaderPrecisionFormat;
+ attribute [Conditional=WEBGL] WebGLTextureConstructor WebGLTexture;
+ attribute [Conditional=WEBGL] WebGLUniformLocationConstructor WebGLUniformLocation;
+
+ attribute DOMStringMapConstructor DOMStringMap;
+
+ attribute ArrayBufferConstructor ArrayBuffer; // Usable with new operator
+ 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 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 UIEventConstructor UIEvent;
+ attribute WebKitAnimationEventConstructor WebKitAnimationEvent;
+ attribute WebKitTransitionEventConstructor WebKitTransitionEvent;
+ attribute WheelEventConstructor WheelEvent;
+ attribute XMLHttpRequestProgressEventConstructor XMLHttpRequestProgressEvent;
+ attribute [Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] DeviceMotionEventConstructor DeviceMotionEvent;
+ attribute [Conditional=DEVICE_ORIENTATION, V8EnabledAtRuntime] DeviceOrientationEventConstructor DeviceOrientationEvent;
+ attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
+ attribute StorageEventConstructor StorageEvent;
+ attribute [Conditional=INPUT_SPEECH] SpeechInputEventConstructor SpeechInputEvent;
+ attribute [Conditional=WEBGL] WebGLContextEventConstructor WebGLContextEvent;
+
+ attribute EventExceptionConstructor EventException;
+
+ attribute WebKitCSSKeyframeRuleConstructor WebKitCSSKeyframeRule;
+ attribute WebKitCSSKeyframesRuleConstructor WebKitCSSKeyframesRule;
+ attribute [Conditional=CSS_REGIONS] WebKitCSSRegionRuleConstructor WebKitCSSRegionRule;
+
+ attribute WebKitCSSMatrixConstructor WebKitCSSMatrix; // Usable with the new operator
+
+ attribute WebKitPointConstructor WebKitPoint; // Usable with new the operator
+
+ attribute ClipboardConstructor Clipboard;
+
+ attribute [Conditional=WORKERS] WorkerConstructor Worker; // Usable with the new operator
+ attribute [Conditional=SHARED_WORKERS, JSCustomGetter, V8EnabledAtRuntime] 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.
+ // 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;
+ attribute [Conditional=XSLT] XSLTProcessorConstructor XSLTProcessor; // Usable with the new operator
+
+#if defined(ENABLE_CHANNEL_MESSAGING) && ENABLE_CHANNEL_MESSAGING
+ attribute MessagePortConstructor MessagePort;
+ attribute MessageChannelConstructor MessageChannel; // Usable with the new operator
+#endif
+
+ attribute DOMPluginConstructor Plugin;
+ attribute DOMPluginArrayConstructor PluginArray;
+
+ attribute DOMMimeTypeConstructor MimeType;
+ attribute DOMMimeTypeArrayConstructor MimeTypeArray;
+
+ attribute ClientRectConstructor ClientRect;
+ attribute ClientRectListConstructor ClientRectList;
+
+ attribute StorageConstructor Storage;
+
+#if defined(ENABLE_ANIMATION_API) && ENABLE_ANIMATION_API
+ attribute WebKitAnimationConstructor WebKitAnimation;
+ attribute WebKitAnimationListConstructor WebKitAnimationList;
+#endif
+
+ attribute XPathEvaluatorConstructor XPathEvaluator;
+ attribute XPathResultConstructor XPathResult;
+ attribute XPathExceptionConstructor XPathException;
+
+ attribute [Conditional=SVG] 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
+ // SVGStylable, 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;
+
+ attribute [Conditional=BLOB|FILE_SYSTEM] FileErrorConstructor FileError;
+ attribute [Conditional=BLOB] FileReaderConstructor FileReader;
+
+ attribute [Conditional=BLOB&LEGACY_WEBKIT_BLOB_BUILDER] WebKitBlobBuilderConstructor WebKitBlobBuilder;
+
+ attribute [Conditional=BLOB] DOMURLConstructor webkitURL;
+
+#if defined(ENABLE_QUOTA) && ENABLE_QUOTA
+ readonly attribute [V8EnabledAtRuntime=Quota] StorageInfo webkitStorageInfo;
+#endif
+
+ attribute [Conditional=MUTATION_OBSERVERS] WebKitMutationObserverConstructor WebKitMutationObserver;
+
+#endif // defined(LANGUAGE_JAVASCRIPT)
+
+#if defined(V8_BINDING) && V8_BINDING
+ // window.toString() requires special handling in V8
+ [V8DoNotCheckSignature, DoNotCheckSecurity, Custom, NotEnumerable] DOMString toString();
+#endif // defined(V8_BINDING)
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/page/DOMWindowPagePopup.idl b/elemental/idl/third_party/WebCore/page/DOMWindowPagePopup.idl
new file mode 100644
index 0000000..aa477a1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/DOMWindowPagePopup.idl
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module window {
+ interface [
+ Conditional=PAGE_POPUP,
+ Supplemental=DOMWindow
+ ] DOMWindowPagePopup {
+ readonly attribute [V8EnabledPerContext=pagePopup] PagePopupController pagePopupController;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/page/EventSource.idl b/elemental/idl/third_party/WebCore/page/EventSource.idl
new file mode 100644
index 0000000..48df3eb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/EventSource.idl
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2009 Ericsson AB. All rights reserved.
+ * Copyright (C) 2010, 2011 Apple 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.
+ * 3. Neither the name of Ericsson nor the names of its contributors
+ * may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module window {
+
+ interface [
+ ActiveDOMObject,
+ Constructor(in DOMString scriptUrl),
+ CallWith=ScriptExecutionContext,
+ ConstructorRaisesException,
+ EventTarget,
+ JSNoStaticTables
+ ] EventSource {
+
+ readonly attribute DOMString URL; // Lowercased .url is the one in the spec, but leaving .URL for compatibility reasons.
+ readonly attribute DOMString url;
+
+ // ready state
+ const unsigned short CONNECTING = 0;
+ const unsigned short OPEN = 1;
+ const unsigned short CLOSED = 2;
+ readonly attribute unsigned short readyState;
+
+ // networking
+ attribute EventListener onopen;
+ attribute EventListener onmessage;
+ attribute EventListener onerror;
+ void close();
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/page/History.idl b/elemental/idl/third_party/WebCore/page/History.idl
new file mode 100644
index 0000000..6e8f6ab
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/History.idl
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2007, 2008 Apple 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.
+ */
+
+module window {
+
+ interface [
+#if defined(V8_BINDING) && V8_BINDING
+ CheckSecurity,
+#endif
+ JSCustomGetOwnPropertySlotAndDescriptor,
+ CustomNamedSetter,
+ JSGenerateIsReachable=ImplFrame,
+ CustomDeleteProperty,
+ CustomEnumerateProperty,
+ OmitConstructor
+ ] History {
+ readonly attribute unsigned long length;
+ readonly attribute [CachedAttribute, Custom] SerializedScriptValue state;
+
+ [DoNotCheckSecurity, CallWith=ScriptExecutionContext] void back();
+ [DoNotCheckSecurity, CallWith=ScriptExecutionContext] void forward();
+ [DoNotCheckSecurity, CallWith=ScriptExecutionContext] void go(in [Optional=DefaultIsUndefined] long distance);
+
+ [Custom, V8EnabledAtRuntime] void pushState(in any data, in DOMString title, in [Optional] DOMString url)
+ raises(DOMException);
+ [Custom, V8EnabledAtRuntime] void replaceState(in any data, in DOMString title, in [Optional] DOMString url)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/Location.idl b/elemental/idl/third_party/WebCore/page/Location.idl
new file mode 100644
index 0000000..1f1703a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/Location.idl
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+
+ interface [
+#if defined(V8_BINDING) && V8_BINDING
+ CheckSecurity,
+#endif
+ JSCustomGetOwnPropertySlotAndDescriptor,
+ CustomNamedSetter,
+ JSGenerateIsReachable=ImplFrame,
+ CustomDeleteProperty,
+ CustomEnumerateProperty,
+ JSCustomDefineOwnProperty,
+ JSCustomNamedGetterOnPrototype,
+ JSCustomDefineOwnPropertyOnPrototype,
+ OmitConstructor,
+ V8CustomToJSObject
+ ] Location {
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ attribute [DoNotCheckSecurityOnSetter, CustomSetter, V8Unforgeable] DOMString href;
+#endif
+
+ [Custom, V8Unforgeable] void assign(in [Optional=DefaultIsUndefined] DOMString url);
+ [Custom, V8Unforgeable] void replace(in [Optional=DefaultIsUndefined] DOMString url);
+ [Custom, V8Unforgeable] void reload();
+
+ // URI decomposition attributes
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ attribute [CustomSetter] DOMString protocol;
+ attribute [CustomSetter] DOMString host;
+ attribute [CustomSetter] DOMString hostname;
+ attribute [CustomSetter] DOMString port;
+ attribute [CustomSetter] DOMString pathname;
+ attribute [CustomSetter] DOMString search;
+ attribute [CustomSetter] DOMString hash;
+
+ readonly attribute DOMString origin;
+#endif
+
+ readonly attribute DOMStringList ancestorOrigins;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [NotEnumerable, Custom, V8Unforgeable, V8ReadOnly, ImplementedAs=toStringFunction] DOMString toString();
+#endif
+#if defined(V8_BINDING) && V8_BINDING
+ [NotEnumerable, Custom, V8Unforgeable, V8ReadOnly] DOMObject valueOf();
+#endif
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/MemoryInfo.idl b/elemental/idl/third_party/WebCore/page/MemoryInfo.idl
new file mode 100644
index 0000000..b9149d5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/MemoryInfo.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module window {
+
+ interface [
+ OmitConstructor
+ ] MemoryInfo {
+
+ readonly attribute unsigned long totalJSHeapSize;
+ readonly attribute unsigned long usedJSHeapSize;
+ readonly attribute [JSCustomGetter] unsigned long jsHeapSizeLimit;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/Navigator.idl b/elemental/idl/third_party/WebCore/page/Navigator.idl
new file mode 100644
index 0000000..400d8e0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/Navigator.idl
@@ -0,0 +1,50 @@
+/*
+ Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+module window {
+
+ interface [
+ JSGenerateIsReachable=ImplFrame,
+ OmitConstructor
+ ] Navigator {
+ readonly attribute DOMString appCodeName;
+ readonly attribute DOMString appName;
+ readonly attribute DOMString appVersion;
+ readonly attribute DOMString language;
+ readonly attribute DOMString userAgent;
+ readonly attribute DOMString platform;
+ readonly attribute DOMPluginArray plugins;
+ readonly attribute DOMMimeTypeArray mimeTypes;
+ readonly attribute DOMString product;
+ readonly attribute DOMString productSub;
+ readonly attribute DOMString vendor;
+ readonly attribute DOMString vendorSub;
+ readonly attribute boolean cookieEnabled;
+ boolean javaEnabled();
+
+ readonly attribute boolean onLine;
+
+#if defined(ENABLE_POINTER_LOCK) && ENABLE_POINTER_LOCK
+ readonly attribute [V8EnabledAtRuntime] PointerLock webkitPointer;
+#endif
+
+ void getStorageUpdates(); // FIXME: Remove this method or rename to yieldForStorageUpdates.
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/NavigatorRegisterProtocolHandler.idl b/elemental/idl/third_party/WebCore/page/NavigatorRegisterProtocolHandler.idl
new file mode 100644
index 0000000..174d063
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/NavigatorRegisterProtocolHandler.idl
@@ -0,0 +1,30 @@
+/*
+ Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+module window {
+
+ interface [
+ Conditional=REGISTER_PROTOCOL_HANDLER,
+ Supplemental=Navigator
+ ] NavigatorRegisterProtocolHandler {
+ void registerProtocolHandler(in DOMString scheme, in DOMString url, in DOMString title)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/PagePopupController.idl b/elemental/idl/third_party/WebCore/page/PagePopupController.idl
new file mode 100644
index 0000000..6e0a49d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/PagePopupController.idl
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module window {
+ interface [
+ Conditional=PAGE_POPUP
+ ] PagePopupController {
+ void setValueAndClosePopup(in long numberValue, in DOMString stringValue);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/page/Performance.idl b/elemental/idl/third_party/WebCore/page/Performance.idl
new file mode 100644
index 0000000..663b742
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/Performance.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module window {
+
+ // See: http://dev.w3.org/2006/webapi/WebTiming/
+ interface [
+ Conditional=WEB_TIMING,
+ OmitConstructor
+ ] Performance {
+ readonly attribute PerformanceNavigation navigation;
+ readonly attribute PerformanceTiming timing;
+ readonly attribute [V8CustomGetter] MemoryInfo memory;
+
+#if defined(ENABLE_PERFORMANCE_TIMELINE) && ENABLE_PERFORMANCE_TIMELINE
+ PerformanceEntryList webkitGetEntries();
+ PerformanceEntryList webkitGetEntriesByType(in DOMString entryType);
+ PerformanceEntryList webkitGetEntriesByName(in DOMString name, in [Optional=DefaultIsNullString] DOMString entryType);
+#endif
+ // See http://www.w3.org/TR/hr-time/ for details.
+ double webkitNow();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/PerformanceEntry.idl b/elemental/idl/third_party/WebCore/page/PerformanceEntry.idl
new file mode 100644
index 0000000..a788bd9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/PerformanceEntry.idl
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module window {
+
+ // See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
+ interface [
+ Conditional=WEB_TIMING,
+ Conditional=PERFORMANCE_TIMELINE,
+ OmitConstructor
+ ] PerformanceEntry {
+ readonly attribute DOMString name;
+ readonly attribute DOMString entryType;
+ readonly attribute double startTime;
+ readonly attribute double duration;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/page/PerformanceEntryList.idl b/elemental/idl/third_party/WebCore/page/PerformanceEntryList.idl
new file mode 100644
index 0000000..8be43d5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/PerformanceEntryList.idl
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module window {
+
+ // See: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
+ interface [
+ Conditional=WEB_TIMING,
+ Conditional=PERFORMANCE_TIMELINE,
+ OmitConstructor,
+ IndexedGetter
+ ] PerformanceEntryList {
+ readonly attribute unsigned long length;
+ PerformanceEntry item(in unsigned long index);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/PerformanceNavigation.idl b/elemental/idl/third_party/WebCore/page/PerformanceNavigation.idl
new file mode 100644
index 0000000..4c6b612
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/PerformanceNavigation.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module window {
+
+ // See: http://www.w3.org/TR/navigation-timing/
+ interface [
+ Conditional=WEB_TIMING,
+ OmitConstructor
+ ] PerformanceNavigation {
+ const unsigned short TYPE_NAVIGATE = 0;
+ const unsigned short TYPE_RELOAD = 1;
+ const unsigned short TYPE_BACK_FORWARD = 2;
+ const unsigned short TYPE_RESERVED = 255;
+ readonly attribute unsigned short type;
+
+ readonly attribute unsigned short redirectCount;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/PerformanceTiming.idl b/elemental/idl/third_party/WebCore/page/PerformanceTiming.idl
new file mode 100644
index 0000000..3e14f7c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/PerformanceTiming.idl
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2010 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module window {
+
+ // See: http://dev.w3.org/2006/webapi/WebTiming/
+ interface [
+ Conditional=WEB_TIMING,
+ OmitConstructor
+ ] PerformanceTiming {
+ readonly attribute unsigned long long navigationStart;
+ readonly attribute unsigned long long unloadEventStart;
+ readonly attribute unsigned long long unloadEventEnd;
+ readonly attribute unsigned long long redirectStart;
+ readonly attribute unsigned long long redirectEnd;
+ readonly attribute unsigned long long fetchStart;
+ readonly attribute unsigned long long domainLookupStart;
+ readonly attribute unsigned long long domainLookupEnd;
+ readonly attribute unsigned long long connectStart;
+ readonly attribute unsigned long long connectEnd;
+ readonly attribute unsigned long long secureConnectionStart;
+ readonly attribute unsigned long long requestStart;
+ readonly attribute unsigned long long responseStart;
+ readonly attribute unsigned long long responseEnd;
+ readonly attribute unsigned long long domLoading;
+ readonly attribute unsigned long long domInteractive;
+ readonly attribute unsigned long long domContentLoadedEventStart;
+ readonly attribute unsigned long long domContentLoadedEventEnd;
+ readonly attribute unsigned long long domComplete;
+ readonly attribute unsigned long long loadEventStart;
+ readonly attribute unsigned long long loadEventEnd;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/PointerLock.idl b/elemental/idl/third_party/WebCore/page/PointerLock.idl
new file mode 100644
index 0000000..3054bcf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/PointerLock.idl
@@ -0,0 +1,36 @@
+/*
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=POINTER_LOCK,
+ OmitConstructor
+ ] PointerLock {
+ void lock(in Element target, in [Callback, Optional] VoidCallback successCallback, in [Callback, Optional] VoidCallback failureCallback);
+ void unlock();
+ readonly attribute boolean isLocked;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/Screen.idl b/elemental/idl/third_party/WebCore/page/Screen.idl
new file mode 100644
index 0000000..5880609
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/Screen.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+
+module window {
+
+ interface [
+ JSGenerateIsReachable=ImplFrame,
+ OmitConstructor
+ ] Screen {
+ readonly attribute unsigned long height;
+ readonly attribute unsigned long width;
+ readonly attribute unsigned long colorDepth;
+ readonly attribute unsigned long pixelDepth;
+ readonly attribute long availLeft;
+ readonly attribute long availTop;
+ readonly attribute unsigned long availHeight;
+ readonly attribute unsigned long availWidth;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/SpeechInputEvent.idl b/elemental/idl/third_party/WebCore/page/SpeechInputEvent.idl
new file mode 100644
index 0000000..03846af
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/SpeechInputEvent.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=INPUT_SPEECH,
+ ] SpeechInputEvent : Event {
+ readonly attribute SpeechInputResultList results;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/SpeechInputResult.idl b/elemental/idl/third_party/WebCore/page/SpeechInputResult.idl
new file mode 100644
index 0000000..3542c60
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/SpeechInputResult.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+module core {
+
+ interface [
+ Conditional=INPUT_SPEECH,
+ ] SpeechInputResult {
+ readonly attribute DOMString utterance;
+ readonly attribute float confidence;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/SpeechInputResultList.idl b/elemental/idl/third_party/WebCore/page/SpeechInputResultList.idl
new file mode 100644
index 0000000..b9213d0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/SpeechInputResultList.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+module core {
+
+ interface [
+ IndexedGetter,
+ Conditional=INPUT_SPEECH
+ ] SpeechInputResultList {
+ readonly attribute unsigned long length;
+ SpeechInputResult item(in [IsIndex] unsigned long index);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/WebKitAnimation.idl b/elemental/idl/third_party/WebCore/page/WebKitAnimation.idl
new file mode 100644
index 0000000..4fba2e8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/WebKitAnimation.idl
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2011 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module html {
+
+ interface WebKitAnimation {
+
+ readonly attribute DOMString name;
+
+ readonly attribute double duration;
+ attribute double elapsedTime;
+
+ readonly attribute double delay;
+ readonly attribute [Custom] int iterationCount;
+
+ readonly attribute boolean paused;
+ readonly attribute boolean ended;
+
+ const unsigned short DIRECTION_NORMAL = 0;
+ const unsigned short DIRECTION_ALTERNATE = 1;
+ readonly attribute unsigned short direction;
+
+ const unsigned short FILL_NONE = 0;
+ const unsigned short FILL_BACKWARDS = 1;
+ const unsigned short FILL_FORWARDS = 2;
+ const unsigned short FILL_BOTH = 3;
+ readonly attribute unsigned short fillMode;
+
+ void play();
+ void pause();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/WebKitAnimationList.idl b/elemental/idl/third_party/WebCore/page/WebKitAnimationList.idl
new file mode 100644
index 0000000..ed305f7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/WebKitAnimationList.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2011 Apple 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.
+ */
+
+module html {
+
+ interface [
+ IndexedGetter
+ ] WebKitAnimationList {
+ readonly attribute unsigned long length;
+ WebKitAnimation item(in unsigned long index);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/WebKitPoint.idl b/elemental/idl/third_party/WebCore/page/WebKitPoint.idl
new file mode 100644
index 0000000..e44fd21
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/WebKitPoint.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2009, 2010 Apple 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.
+ */
+
+module window {
+
+ interface [
+ CustomConstructor,
+ ConstructorParameters=2
+ ] WebKitPoint {
+ attribute float x;
+ attribute float y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/page/WorkerNavigator.idl b/elemental/idl/third_party/WebCore/page/WorkerNavigator.idl
new file mode 100644
index 0000000..819de09
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/page/WorkerNavigator.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module threads {
+
+ interface [
+ Conditional=WORKERS,
+ JSGenerateIsReachable=Impl,
+ JSNoStaticTables,
+ OmitConstructor
+ ] WorkerNavigator {
+ readonly attribute DOMString appName;
+ readonly attribute DOMString appVersion;
+ readonly attribute DOMString platform;
+ readonly attribute DOMString userAgent;
+
+ readonly attribute boolean onLine;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/plugins/DOMMimeType.idl b/elemental/idl/third_party/WebCore/plugins/DOMMimeType.idl
new file mode 100644
index 0000000..942060f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/plugins/DOMMimeType.idl
@@ -0,0 +1,32 @@
+/*
+ Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+ Copyright (C) 2008 Apple Inc. All rights reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+module window {
+
+ interface [
+ InterfaceName=MimeType
+ ] DOMMimeType {
+ readonly attribute DOMString type;
+ readonly attribute DOMString suffixes;
+ readonly attribute DOMString description;
+ readonly attribute DOMPlugin enabledPlugin;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/plugins/DOMMimeTypeArray.idl b/elemental/idl/third_party/WebCore/plugins/DOMMimeTypeArray.idl
new file mode 100644
index 0000000..3de7f8d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/plugins/DOMMimeTypeArray.idl
@@ -0,0 +1,34 @@
+/*
+ Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+ Copyright (C) 2008 Apple Inc. All rights reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+module window {
+
+ interface [
+ JSGenerateIsReachable=ImplFrame,
+ NamedGetter,
+ IndexedGetter,
+ InterfaceName=MimeTypeArray
+ ] DOMMimeTypeArray {
+ readonly attribute unsigned long length;
+ DOMMimeType item(in [Optional=DefaultIsUndefined] unsigned long index);
+ DOMMimeType namedItem(in [Optional=DefaultIsUndefined] DOMString name);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/plugins/DOMPlugin.idl b/elemental/idl/third_party/WebCore/plugins/DOMPlugin.idl
new file mode 100644
index 0000000..f645a0b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/plugins/DOMPlugin.idl
@@ -0,0 +1,36 @@
+/*
+ Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+ Copyright (C) 2008 Apple Inc. All rights reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+module window {
+
+ interface [
+ NamedGetter,
+ IndexedGetter,
+ InterfaceName=Plugin
+ ] DOMPlugin {
+ readonly attribute DOMString name;
+ readonly attribute DOMString filename;
+ readonly attribute DOMString description;
+ readonly attribute unsigned long length;
+ DOMMimeType item(in [Optional=DefaultIsUndefined] unsigned long index);
+ DOMMimeType namedItem(in [Optional=DefaultIsUndefined] DOMString name);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/plugins/DOMPluginArray.idl b/elemental/idl/third_party/WebCore/plugins/DOMPluginArray.idl
new file mode 100644
index 0000000..f042f92
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/plugins/DOMPluginArray.idl
@@ -0,0 +1,35 @@
+/*
+ Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+ Copyright (C) 2008 Apple Inc. All rights reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+module window {
+
+ interface [
+ JSGenerateIsReachable=ImplFrame,
+ NamedGetter,
+ IndexedGetter,
+ InterfaceName=PluginArray
+ ] DOMPluginArray {
+ readonly attribute unsigned long length;
+ DOMPlugin item(in [Optional=DefaultIsUndefined] unsigned long index);
+ DOMPlugin namedItem(in [Optional=DefaultIsUndefined] DOMString name);
+ void refresh(in [Optional=DefaultIsUndefined] boolean reload);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/storage/Storage.idl b/elemental/idl/third_party/WebCore/storage/Storage.idl
new file mode 100644
index 0000000..1d5b327
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/storage/Storage.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module storage {
+
+ interface [
+ NamedGetter,
+ JSGenerateIsReachable=ImplFrame,
+ CustomDeleteProperty,
+ CustomEnumerateProperty,
+ CustomNamedSetter,
+ ] Storage {
+ readonly attribute [NotEnumerable] unsigned long length;
+ [NotEnumerable, TreatReturnedNullStringAs=Null] DOMString key(in unsigned long index);
+ [NotEnumerable, TreatReturnedNullStringAs=Null] DOMString getItem(in DOMString key);
+ [NotEnumerable] void setItem(in DOMString key, in DOMString data)
+ raises(DOMException);
+ [NotEnumerable] void removeItem(in DOMString key);
+ [NotEnumerable] void clear();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/storage/StorageEvent.idl b/elemental/idl/third_party/WebCore/storage/StorageEvent.idl
new file mode 100644
index 0000000..6e4770a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/storage/StorageEvent.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2008, 2009 Apple 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 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 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.
+ */
+
+module storage {
+
+ interface [
+ ConstructorTemplate=Event
+ ] StorageEvent : Event {
+ readonly attribute [InitializedByEventConstructor] DOMString key;
+ readonly attribute [InitializedByEventConstructor, TreatReturnedNullStringAs=Null] DOMString oldValue;
+ readonly attribute [InitializedByEventConstructor, TreatReturnedNullStringAs=Null] DOMString newValue;
+ readonly attribute [InitializedByEventConstructor] DOMString url;
+ readonly attribute [InitializedByEventConstructor] Storage storageArea;
+
+ void initStorageEvent(in [Optional=DefaultIsUndefined] DOMString typeArg,
+ in [Optional=DefaultIsUndefined] boolean canBubbleArg,
+ in [Optional=DefaultIsUndefined] boolean cancelableArg,
+ in [Optional=DefaultIsUndefined] DOMString keyArg,
+ in [Optional=DefaultIsUndefined,TreatNullAs=NullString] DOMString oldValueArg,
+ in [Optional=DefaultIsUndefined,TreatNullAs=NullString] DOMString newValueArg,
+ in [Optional=DefaultIsUndefined] DOMString urlArg,
+ in [Optional=DefaultIsUndefined] Storage storageAreaArg);
+
+ // Needed once we support init<blank>EventNS
+ // void initStorageEventNS(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString urlArg, in Storage storageAreaArg);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/storage/StorageInfo.idl b/elemental/idl/third_party/WebCore/storage/StorageInfo.idl
new file mode 100644
index 0000000..eb8b9a1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/storage/StorageInfo.idl
@@ -0,0 +1,38 @@
+/*
+ * 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 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 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.
+ */
+
+module storage {
+ interface [
+ Conditional=QUOTA,
+ OmitConstructor,
+ JSGenerateToNativeObject
+ ] StorageInfo {
+ const unsigned short TEMPORARY = 0;
+ const unsigned short PERSISTENT = 1;
+
+ [CallWith=ScriptExecutionContext] void queryUsageAndQuota(in unsigned short storageType, in [Callback, Optional] StorageInfoUsageCallback usageCallback, in [Callback, Optional] StorageInfoErrorCallback errorCallback);
+ [CallWith=ScriptExecutionContext] void requestQuota(in unsigned short storageType, in unsigned long long newQuotaInBytes, in [Callback, Optional] StorageInfoQuotaCallback quotaCallback, in [Callback, Optional] StorageInfoErrorCallback errorCallback);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/storage/StorageInfoErrorCallback.idl b/elemental/idl/third_party/WebCore/storage/StorageInfoErrorCallback.idl
new file mode 100644
index 0000000..66c3316
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/storage/StorageInfoErrorCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=QUOTA,
+ Callback
+ ] StorageInfoErrorCallback {
+ boolean handleEvent(in DOMCoreException error);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/storage/StorageInfoQuotaCallback.idl b/elemental/idl/third_party/WebCore/storage/StorageInfoQuotaCallback.idl
new file mode 100644
index 0000000..1c8e11c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/storage/StorageInfoQuotaCallback.idl
@@ -0,0 +1,38 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=QUOTA,
+ Callback
+ ] StorageInfoQuotaCallback {
+ boolean handleEvent(in unsigned long long grantedQuotaInBytes);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/storage/StorageInfoUsageCallback.idl b/elemental/idl/third_party/WebCore/storage/StorageInfoUsageCallback.idl
new file mode 100644
index 0000000..dfa58e6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/storage/StorageInfoUsageCallback.idl
@@ -0,0 +1,39 @@
+/*
+ * 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module storage {
+ interface [
+ Conditional=QUOTA,
+ Callback
+ ] StorageInfoUsageCallback {
+ boolean handleEvent(in unsigned long long currentUsageInBytes, in unsigned long long currentQuotaInBytes);
+ };
+}
+
diff --git a/elemental/idl/third_party/WebCore/svg/ElementTimeControl.idl b/elemental/idl/third_party/WebCore/svg/ElementTimeControl.idl
new file mode 100644
index 0000000..9c748c9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/ElementTimeControl.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ OmitConstructor
+ ] ElementTimeControl {
+ void beginElement();
+ void beginElementAt(in [Optional=DefaultIsUndefined] float offset);
+ void endElement();
+ void endElementAt(in [Optional=DefaultIsUndefined] float offset);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAElement.idl b/elemental/idl/third_party/WebCore/svg/SVGAElement.idl
new file mode 100644
index 0000000..686503b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAElement.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAElement : SVGElement,
+ SVGURIReference,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGAnimatedString target;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAltGlyphDefElement.idl b/elemental/idl/third_party/WebCore/svg/SVGAltGlyphDefElement.idl
new file mode 100644
index 0000000..b4b44d2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAltGlyphDefElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2011 Leo Yang <leoyang@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [Conditional=SVG&SVG_FONTS] SVGAltGlyphDefElement : SVGElement {
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAltGlyphElement.idl b/elemental/idl/third_party/WebCore/svg/SVGAltGlyphElement.idl
new file mode 100644
index 0000000..865dbdd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAltGlyphElement.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS,
+ ] SVGAltGlyphElement : SVGTextPositioningElement, SVGURIReference {
+ attribute DOMString glyphRef
+ setter raises(DOMException);
+ attribute DOMString format
+ setter raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAltGlyphItemElement.idl b/elemental/idl/third_party/WebCore/svg/SVGAltGlyphItemElement.idl
new file mode 100644
index 0000000..a98443c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAltGlyphItemElement.idl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2011 Leo Yang <leoyang@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [Conditional=SVG&SVG_FONTS] SVGAltGlyphItemElement : SVGElement {
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAngle.idl b/elemental/idl/third_party/WebCore/svg/SVGAngle.idl
new file mode 100644
index 0000000..24ab62f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAngle.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAngle {
+ // Angle Unit Types
+ const unsigned short SVG_ANGLETYPE_UNKNOWN = 0;
+ const unsigned short SVG_ANGLETYPE_UNSPECIFIED = 1;
+ const unsigned short SVG_ANGLETYPE_DEG = 2;
+ const unsigned short SVG_ANGLETYPE_RAD = 3;
+ const unsigned short SVG_ANGLETYPE_GRAD = 4;
+
+ readonly attribute unsigned short unitType;
+ attribute [StrictTypeChecking] float value;
+ attribute [StrictTypeChecking] float valueInSpecifiedUnits;
+
+ attribute [TreatNullAs=NullString] DOMString valueAsString
+ setter raises(DOMException);
+
+ [StrictTypeChecking] void newValueSpecifiedUnits(in unsigned short unitType, in float valueInSpecifiedUnits)
+ raises(DOMException);
+
+ [StrictTypeChecking] void convertToSpecifiedUnits(in unsigned short unitType)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimateColorElement.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimateColorElement.idl
new file mode 100644
index 0000000..2240fc1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimateColorElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimateColorElement : SVGAnimationElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimateElement.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimateElement.idl
new file mode 100644
index 0000000..013615a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimateElement.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimateElement : SVGAnimationElement {
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimateMotionElement.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimateMotionElement.idl
new file mode 100644
index 0000000..bd09b3c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimateMotionElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) Research In Motion Limited 2011. 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimateMotionElement : SVGAnimationElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimateTransformElement.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimateTransformElement.idl
new file mode 100644
index 0000000..76053ac
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimateTransformElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimateTransformElement : SVGAnimationElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedAngle.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedAngle.idl
new file mode 100644
index 0000000..bdeff62
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedAngle.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedAngle {
+ readonly attribute SVGAngle baseVal;
+ readonly attribute SVGAngle animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedBoolean.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedBoolean.idl
new file mode 100644
index 0000000..a7252d6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedBoolean.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedBoolean {
+ attribute [StrictTypeChecking] boolean baseVal
+ setter raises(DOMException);
+ readonly attribute boolean animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedEnumeration.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedEnumeration.idl
new file mode 100644
index 0000000..0d43abd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedEnumeration.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedEnumeration {
+ attribute [StrictTypeChecking] unsigned short baseVal
+ setter raises(DOMException);
+ readonly attribute unsigned short animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedInteger.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedInteger.idl
new file mode 100644
index 0000000..a8c07ea
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedInteger.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedInteger {
+ attribute [StrictTypeChecking] long baseVal
+ setter raises(DOMException);
+ readonly attribute long animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedLength.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedLength.idl
new file mode 100644
index 0000000..1bb7317
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedLength.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedLength {
+ readonly attribute SVGLength baseVal;
+ readonly attribute SVGLength animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedLengthList.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedLengthList.idl
new file mode 100644
index 0000000..d02c998
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedLengthList.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedLengthList {
+ readonly attribute SVGLengthList baseVal;
+ readonly attribute SVGLengthList animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedNumber.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedNumber.idl
new file mode 100644
index 0000000..ed0c395
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedNumber.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedNumber {
+ attribute [StrictTypeChecking] float baseVal
+ setter raises(DOMException);
+ readonly attribute float animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedNumberList.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedNumberList.idl
new file mode 100644
index 0000000..b644938
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedNumberList.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedNumberList {
+ readonly attribute SVGNumberList baseVal;
+ readonly attribute SVGNumberList animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl
new file mode 100644
index 0000000..e5b1e8b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedPreserveAspectRatio {
+ readonly attribute SVGPreserveAspectRatio baseVal;
+ readonly attribute SVGPreserveAspectRatio animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedRect.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedRect.idl
new file mode 100644
index 0000000..d589738
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedRect.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedRect {
+ readonly attribute SVGRect baseVal;
+ readonly attribute SVGRect animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedString.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedString.idl
new file mode 100644
index 0000000..7804dfa
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedString.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedString {
+ attribute DOMString baseVal
+ setter raises(DOMException);
+ readonly attribute DOMString animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimatedTransformList.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimatedTransformList.idl
new file mode 100644
index 0000000..b6aa84e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimatedTransformList.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGAnimatedTransformList {
+ readonly attribute SVGTransformList baseVal;
+ readonly attribute SVGTransformList animVal;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGAnimationElement.idl b/elemental/idl/third_party/WebCore/svg/SVGAnimationElement.idl
new file mode 100644
index 0000000..532603c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGAnimationElement.idl
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ OmitConstructor
+ ] SVGAnimationElement : SVGElement,
+ SVGTests,
+ SVGExternalResourcesRequired,
+ ElementTimeControl {
+ readonly attribute SVGElement targetElement;
+
+ float getStartTime();
+ float getCurrentTime();
+ float getSimpleDuration()
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGCircleElement.idl b/elemental/idl/third_party/WebCore/svg/SVGCircleElement.idl
new file mode 100644
index 0000000..50b84bd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGCircleElement.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGCircleElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGAnimatedLength cx;
+ readonly attribute SVGAnimatedLength cy;
+ readonly attribute SVGAnimatedLength r;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGClipPathElement.idl b/elemental/idl/third_party/WebCore/svg/SVGClipPathElement.idl
new file mode 100644
index 0000000..5d346f4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGClipPathElement.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGClipPathElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable
+ /* SVGUnitTypes */ {
+ readonly attribute SVGAnimatedEnumeration clipPathUnits;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGColor.idl b/elemental/idl/third_party/WebCore/svg/SVGColor.idl
new file mode 100644
index 0000000..887ad84
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGColor.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGColor : CSSValue {
+ const unsigned short SVG_COLORTYPE_UNKNOWN = 0;
+ const unsigned short SVG_COLORTYPE_RGBCOLOR = 1;
+ const unsigned short SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2;
+ const unsigned short SVG_COLORTYPE_CURRENTCOLOR = 3;
+
+ readonly attribute unsigned short colorType;
+ readonly attribute RGBColor rgbColor;
+ // FIXME: readonly attribute SVGICCColor iccColor;
+
+ [StrictTypeChecking] void setRGBColor(in DOMString rgbColor)
+ raises(DOMException, SVGException);
+
+ [StrictTypeChecking] void setRGBColorICCColor(in DOMString rgbColor, in DOMString iccColor)
+ raises(DOMException, SVGException);
+
+ [StrictTypeChecking] void setColor(in unsigned short colorType, in DOMString rgbColor, in DOMString iccColor)
+ raises(DOMException, SVGException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGComponentTransferFunctionElement.idl b/elemental/idl/third_party/WebCore/svg/SVGComponentTransferFunctionElement.idl
new file mode 100644
index 0000000..1edd5cf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGComponentTransferFunctionElement.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS,
+ DoNotCheckConstants
+ ] SVGComponentTransferFunctionElement : SVGElement {
+ // Component Transfer Types
+ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0;
+ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;
+ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2;
+ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3;
+ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4;
+ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5;
+
+ readonly attribute SVGAnimatedEnumeration type;
+ readonly attribute SVGAnimatedNumberList tableValues;
+ readonly attribute SVGAnimatedNumber slope;
+ readonly attribute SVGAnimatedNumber intercept;
+ readonly attribute SVGAnimatedNumber amplitude;
+ readonly attribute SVGAnimatedNumber exponent;
+ readonly attribute SVGAnimatedNumber offset;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGCursorElement.idl b/elemental/idl/third_party/WebCore/svg/SVGCursorElement.idl
new file mode 100644
index 0000000..2c8b5f5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGCursorElement.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGCursorElement : SVGElement,
+ SVGURIReference,
+ SVGTests,
+ SVGExternalResourcesRequired {
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGDefsElement.idl b/elemental/idl/third_party/WebCore/svg/SVGDefsElement.idl
new file mode 100644
index 0000000..8cb2b08
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGDefsElement.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGDefsElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGDescElement.idl b/elemental/idl/third_party/WebCore/svg/SVGDescElement.idl
new file mode 100644
index 0000000..b7b33c2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGDescElement.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGDescElement : SVGElement,
+ SVGLangSpace,
+ SVGStylable {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGDocument.idl b/elemental/idl/third_party/WebCore/svg/SVGDocument.idl
new file mode 100644
index 0000000..2f9abfc
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGDocument.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ V8CustomToJSObject
+ ] SVGDocument : Document {
+ readonly attribute SVGSVGElement rootElement;
+
+ // Overwrite the one in events::DocumentEvent
+ Event createEvent(in [Optional=DefaultIsUndefined] DOMString eventType)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGElement.idl b/elemental/idl/third_party/WebCore/svg/SVGElement.idl
new file mode 100644
index 0000000..41ae9c2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGElement.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ JSGenerateToNativeObject,
+ Conditional=SVG,
+ V8CustomToJSObject
+ ] SVGElement : Element {
+ attribute [Reflect] DOMString id;
+ attribute [TreatNullAs=NullString] DOMString xmlbase setter raises(DOMException);
+ readonly attribute SVGSVGElement ownerSVGElement;
+ readonly attribute SVGElement viewportElement;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGElementInstance.idl b/elemental/idl/third_party/WebCore/svg/SVGElementInstance.idl
new file mode 100644
index 0000000..9c7175c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGElementInstance.idl
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2008 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ JSCustomMarkFunction,
+ JSGenerateToNativeObject
+ ] SVGElementInstance
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+ : Object, EventTarget
+#endif /* defined(LANGUAGE_OBJECTIVE_C) */
+ {
+ readonly attribute SVGElement correspondingElement;
+ readonly attribute SVGUseElement correspondingUseElement;
+ readonly attribute SVGElementInstance parentNode;
+ readonly attribute SVGElementInstanceList childNodes;
+ readonly attribute SVGElementInstance firstChild;
+ readonly attribute SVGElementInstance lastChild;
+ readonly attribute SVGElementInstance previousSibling;
+ readonly attribute SVGElementInstance nextSibling;
+
+ // EventTarget
+#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
+ attribute [NotEnumerable] EventListener onabort;
+ attribute [NotEnumerable] EventListener onblur;
+ attribute [NotEnumerable] EventListener onchange;
+ attribute [NotEnumerable] EventListener onclick;
+ attribute [NotEnumerable] EventListener oncontextmenu;
+ attribute [NotEnumerable] EventListener ondblclick;
+ attribute [NotEnumerable] EventListener onerror;
+ attribute [NotEnumerable] EventListener onfocus;
+ attribute [NotEnumerable] EventListener oninput;
+ attribute [NotEnumerable] EventListener onkeydown;
+ attribute [NotEnumerable] EventListener onkeypress;
+ attribute [NotEnumerable] EventListener onkeyup;
+ attribute [NotEnumerable] EventListener onload;
+ attribute [NotEnumerable] EventListener onmousedown;
+ attribute [NotEnumerable] EventListener onmousemove;
+ attribute [NotEnumerable] EventListener onmouseout;
+ attribute [NotEnumerable] EventListener onmouseover;
+ attribute [NotEnumerable] EventListener onmouseup;
+ attribute [NotEnumerable] EventListener onmousewheel;
+ attribute [NotEnumerable] EventListener onbeforecut;
+ attribute [NotEnumerable] EventListener oncut;
+ attribute [NotEnumerable] EventListener onbeforecopy;
+ attribute [NotEnumerable] EventListener oncopy;
+ attribute [NotEnumerable] EventListener onbeforepaste;
+ attribute [NotEnumerable] EventListener onpaste;
+ attribute [NotEnumerable] EventListener ondragenter;
+ attribute [NotEnumerable] EventListener ondragover;
+ attribute [NotEnumerable] EventListener ondragleave;
+ attribute [NotEnumerable] EventListener ondrop;
+ attribute [NotEnumerable] EventListener ondragstart;
+ attribute [NotEnumerable] EventListener ondrag;
+ attribute [NotEnumerable] EventListener ondragend;
+ attribute [NotEnumerable] EventListener onreset;
+ attribute [NotEnumerable] EventListener onresize;
+ attribute [NotEnumerable] EventListener onscroll;
+ attribute [NotEnumerable] EventListener onsearch;
+ attribute [NotEnumerable] EventListener onselect;
+ attribute [NotEnumerable] EventListener onselectstart;
+ attribute [NotEnumerable] EventListener onsubmit;
+ attribute [NotEnumerable] EventListener onunload;
+
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event event)
+ raises(EventException);
+#endif /* defined(LANGUAGE_OBJECTIVE_C) */
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGElementInstanceList.idl b/elemental/idl/third_party/WebCore/svg/SVGElementInstanceList.idl
new file mode 100644
index 0000000..9429da7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGElementInstanceList.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+ interface [
+ Conditional=SVG
+ ] SVGElementInstanceList {
+ readonly attribute unsigned long length;
+
+ SVGElementInstance item(in [Optional=DefaultIsUndefined] unsigned long index);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGEllipseElement.idl b/elemental/idl/third_party/WebCore/svg/SVGEllipseElement.idl
new file mode 100644
index 0000000..7c291dd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGEllipseElement.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGEllipseElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGAnimatedLength cx;
+ readonly attribute SVGAnimatedLength cy;
+ readonly attribute SVGAnimatedLength rx;
+ readonly attribute SVGAnimatedLength ry;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGException.idl b/elemental/idl/third_party/WebCore/svg/SVGException.idl
new file mode 100644
index 0000000..57255c3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGException.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ exception [
+ Conditional=SVG,
+ DoNotCheckConstants
+ ] SVGException {
+
+ readonly attribute unsigned short code;
+ readonly attribute DOMString name;
+ readonly attribute DOMString message;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // Override in a Mozilla compatible format
+ [NotEnumerable] DOMString toString();
+#endif
+
+ // SVGExceptionCode
+ const unsigned short SVG_WRONG_TYPE_ERR = 0;
+ const unsigned short SVG_INVALID_VALUE_ERR = 1;
+ const unsigned short SVG_MATRIX_NOT_INVERTABLE = 2;
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGExternalResourcesRequired.idl b/elemental/idl/third_party/WebCore/svg/SVGExternalResourcesRequired.idl
new file mode 100644
index 0000000..a650c8f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGExternalResourcesRequired.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ SuppressToJSObject,
+ OmitConstructor
+ ] SVGExternalResourcesRequired {
+ readonly attribute SVGAnimatedBoolean externalResourcesRequired;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEBlendElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEBlendElement.idl
new file mode 100644
index 0000000..288059c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEBlendElement.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS,
+ DoNotCheckConstants
+ ] SVGFEBlendElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ // Blend Mode Types
+ const unsigned short SVG_FEBLEND_MODE_UNKNOWN = 0;
+ const unsigned short SVG_FEBLEND_MODE_NORMAL = 1;
+ const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2;
+ const unsigned short SVG_FEBLEND_MODE_SCREEN = 3;
+ const unsigned short SVG_FEBLEND_MODE_DARKEN = 4;
+ const unsigned short SVG_FEBLEND_MODE_LIGHTEN = 5;
+
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedString in2;
+ readonly attribute SVGAnimatedEnumeration mode;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEColorMatrixElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEColorMatrixElement.idl
new file mode 100644
index 0000000..6b18061
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEColorMatrixElement.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS,
+ DoNotCheckConstants
+ ] SVGFEColorMatrixElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ // Color Matrix Types
+ const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
+ const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
+ const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
+ const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
+ const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
+
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedEnumeration type;
+ readonly attribute SVGAnimatedNumberList values;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEComponentTransferElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEComponentTransferElement.idl
new file mode 100644
index 0000000..bf69915
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEComponentTransferElement.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEComponentTransferElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ readonly attribute SVGAnimatedString in1;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFECompositeElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFECompositeElement.idl
new file mode 100644
index 0000000..76840e5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFECompositeElement.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS,
+ DoNotCheckConstants
+ ] SVGFECompositeElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ // Composite Operators
+ const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
+ const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER = 1;
+ const unsigned short SVG_FECOMPOSITE_OPERATOR_IN = 2;
+ const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT = 3;
+ const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
+ const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR = 5;
+ const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
+
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedString in2;
+ readonly attribute SVGAnimatedEnumeration operator;
+ readonly attribute SVGAnimatedNumber k1;
+ readonly attribute SVGAnimatedNumber k2;
+ readonly attribute SVGAnimatedNumber k3;
+ readonly attribute SVGAnimatedNumber k4;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEConvolveMatrixElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEConvolveMatrixElement.idl
new file mode 100644
index 0000000..e78219d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEConvolveMatrixElement.idl
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS,
+ DoNotCheckConstants
+ ] SVGFEConvolveMatrixElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ // Edge Mode Values
+ const unsigned short SVG_EDGEMODE_UNKNOWN = 0;
+ const unsigned short SVG_EDGEMODE_DUPLICATE = 1;
+ const unsigned short SVG_EDGEMODE_WRAP = 2;
+ const unsigned short SVG_EDGEMODE_NONE = 3;
+
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedInteger orderX;
+ readonly attribute SVGAnimatedInteger orderY;
+ readonly attribute SVGAnimatedNumberList kernelMatrix;
+ readonly attribute SVGAnimatedNumber divisor;
+ readonly attribute SVGAnimatedNumber bias;
+ readonly attribute SVGAnimatedInteger targetX;
+ readonly attribute SVGAnimatedInteger targetY;
+ readonly attribute SVGAnimatedEnumeration edgeMode;
+ readonly attribute SVGAnimatedNumber kernelUnitLengthX;
+ readonly attribute SVGAnimatedNumber kernelUnitLengthY;
+ readonly attribute SVGAnimatedBoolean preserveAlpha;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEDiffuseLightingElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEDiffuseLightingElement.idl
new file mode 100644
index 0000000..f9fac19
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEDiffuseLightingElement.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEDiffuseLightingElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedNumber surfaceScale;
+ readonly attribute SVGAnimatedNumber diffuseConstant;
+ readonly attribute SVGAnimatedNumber kernelUnitLengthX;
+ readonly attribute SVGAnimatedNumber kernelUnitLengthY;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEDisplacementMapElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEDisplacementMapElement.idl
new file mode 100644
index 0000000..0729586
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEDisplacementMapElement.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS,
+ DoNotCheckConstants
+ ] SVGFEDisplacementMapElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ // Channel Selectors
+ const unsigned short SVG_CHANNEL_UNKNOWN = 0;
+ const unsigned short SVG_CHANNEL_R = 1;
+ const unsigned short SVG_CHANNEL_G = 2;
+ const unsigned short SVG_CHANNEL_B = 3;
+ const unsigned short SVG_CHANNEL_A = 4;
+
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedString in2;
+ readonly attribute SVGAnimatedNumber scale;
+ readonly attribute SVGAnimatedEnumeration xChannelSelector;
+ readonly attribute SVGAnimatedEnumeration yChannelSelector;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEDistantLightElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEDistantLightElement.idl
new file mode 100644
index 0000000..d8ff6fe
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEDistantLightElement.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEDistantLightElement : SVGElement {
+ readonly attribute SVGAnimatedNumber azimuth;
+ readonly attribute SVGAnimatedNumber elevation;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEDropShadowElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEDropShadowElement.idl
new file mode 100644
index 0000000..3c7d7ce
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEDropShadowElement.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) Research In Motion Limited 2011. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEDropShadowElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedNumber dx;
+ readonly attribute SVGAnimatedNumber dy;
+ readonly attribute SVGAnimatedNumber stdDeviationX;
+ readonly attribute SVGAnimatedNumber stdDeviationY;
+
+ void setStdDeviation(in [Optional=DefaultIsUndefined] float stdDeviationX,
+ in [Optional=DefaultIsUndefined] float stdDeviationY);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEFloodElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEFloodElement.idl
new file mode 100644
index 0000000..53ce047
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEFloodElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEFloodElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEFuncAElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEFuncAElement.idl
new file mode 100644
index 0000000..ca3fa11
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEFuncAElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEFuncAElement : SVGComponentTransferFunctionElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEFuncBElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEFuncBElement.idl
new file mode 100644
index 0000000..0581b39
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEFuncBElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEFuncBElement : SVGComponentTransferFunctionElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEFuncGElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEFuncGElement.idl
new file mode 100644
index 0000000..ab09161
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEFuncGElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEFuncGElement : SVGComponentTransferFunctionElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEFuncRElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEFuncRElement.idl
new file mode 100644
index 0000000..5678f99
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEFuncRElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEFuncRElement : SVGComponentTransferFunctionElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEGaussianBlurElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEGaussianBlurElement.idl
new file mode 100644
index 0000000..25858f8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEGaussianBlurElement.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEGaussianBlurElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedNumber stdDeviationX;
+ readonly attribute SVGAnimatedNumber stdDeviationY;
+
+ void setStdDeviation(in [Optional=DefaultIsUndefined] float stdDeviationX,
+ in [Optional=DefaultIsUndefined] float stdDeviationY);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEImageElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEImageElement.idl
new file mode 100644
index 0000000..9a6c0e8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEImageElement.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEImageElement : SVGElement,
+ SVGURIReference,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGFilterPrimitiveStandardAttributes {
+ readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEMergeElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEMergeElement.idl
new file mode 100644
index 0000000..18cf92c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEMergeElement.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEMergeElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEMergeNodeElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEMergeNodeElement.idl
new file mode 100644
index 0000000..f6b1d27
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEMergeNodeElement.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEMergeNodeElement : SVGElement {
+ readonly attribute SVGAnimatedString in1;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEMorphologyElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEMorphologyElement.idl
new file mode 100644
index 0000000..24c0a47
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEMorphologyElement.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS,
+ DoNotCheckConstants
+ ] SVGFEMorphologyElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ // Morphology Operators
+ const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
+ const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
+ const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
+
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedEnumeration operator;
+ readonly attribute SVGAnimatedNumber radiusX;
+ readonly attribute SVGAnimatedNumber radiusY;
+
+ void setRadius(in [Optional=DefaultIsUndefined] float radiusX,
+ in [Optional=DefaultIsUndefined] float radiusY);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEOffsetElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEOffsetElement.idl
new file mode 100644
index 0000000..95f9565
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEOffsetElement.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEOffsetElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedNumber dx;
+ readonly attribute SVGAnimatedNumber dy;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFEPointLightElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFEPointLightElement.idl
new file mode 100644
index 0000000..b6dd0fa
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFEPointLightElement.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFEPointLightElement : SVGElement {
+ readonly attribute SVGAnimatedNumber x;
+ readonly attribute SVGAnimatedNumber y;
+ readonly attribute SVGAnimatedNumber z;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFESpecularLightingElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFESpecularLightingElement.idl
new file mode 100644
index 0000000..3dc4e34
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFESpecularLightingElement.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFESpecularLightingElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ readonly attribute SVGAnimatedString in1;
+ readonly attribute SVGAnimatedNumber surfaceScale;
+ readonly attribute SVGAnimatedNumber specularConstant;
+ readonly attribute SVGAnimatedNumber specularExponent;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFESpotLightElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFESpotLightElement.idl
new file mode 100644
index 0000000..36c12eb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFESpotLightElement.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFESpotLightElement : SVGElement {
+ readonly attribute SVGAnimatedNumber x;
+ readonly attribute SVGAnimatedNumber y;
+ readonly attribute SVGAnimatedNumber z;
+ readonly attribute SVGAnimatedNumber pointsAtX;
+ readonly attribute SVGAnimatedNumber pointsAtY;
+ readonly attribute SVGAnimatedNumber pointsAtZ;
+ readonly attribute SVGAnimatedNumber specularExponent;
+ readonly attribute SVGAnimatedNumber limitingConeAngle;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFETileElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFETileElement.idl
new file mode 100644
index 0000000..6b853e5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFETileElement.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFETileElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ readonly attribute SVGAnimatedString in1;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFETurbulenceElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFETurbulenceElement.idl
new file mode 100644
index 0000000..0060fbf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFETurbulenceElement.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS,
+ DoNotCheckConstants
+ ] SVGFETurbulenceElement : SVGElement,
+ SVGFilterPrimitiveStandardAttributes {
+ // Turbulence Types
+ const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN = 0;
+ const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
+ const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE = 2;
+
+ // Stitch Options
+ const unsigned short SVG_STITCHTYPE_UNKNOWN = 0;
+ const unsigned short SVG_STITCHTYPE_STITCH = 1;
+ const unsigned short SVG_STITCHTYPE_NOSTITCH = 2;
+
+ readonly attribute SVGAnimatedNumber baseFrequencyX;
+ readonly attribute SVGAnimatedNumber baseFrequencyY;
+ readonly attribute SVGAnimatedInteger numOctaves;
+ readonly attribute SVGAnimatedNumber seed;
+ readonly attribute SVGAnimatedEnumeration stitchTiles;
+ readonly attribute SVGAnimatedEnumeration type;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFilterElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFilterElement.idl
new file mode 100644
index 0000000..ff2f496
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFilterElement.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&FILTERS
+ ] SVGFilterElement : SVGElement,
+ SVGURIReference,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable
+ /* SVGUnitTypes */ {
+ readonly attribute SVGAnimatedEnumeration filterUnits;
+ readonly attribute SVGAnimatedEnumeration primitiveUnits;
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+ readonly attribute SVGAnimatedInteger filterResX;
+ readonly attribute SVGAnimatedInteger filterResY;
+
+ void setFilterRes(in [Optional=DefaultIsUndefined] unsigned long filterResX,
+ in [Optional=DefaultIsUndefined] unsigned long filterResY);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl b/elemental/idl/third_party/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl
new file mode 100644
index 0000000..4b1d3fb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol
+ ] SVGFilterPrimitiveStandardAttributes : SVGStylable {
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+ readonly attribute SVGAnimatedString result;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFitToViewBox.idl b/elemental/idl/third_party/WebCore/svg/SVGFitToViewBox.idl
new file mode 100644
index 0000000..a57a8dd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFitToViewBox.idl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ SuppressToJSObject,
+ OmitConstructor
+ ] SVGFitToViewBox {
+ readonly attribute SVGAnimatedRect viewBox;
+ readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFontElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFontElement.idl
new file mode 100644
index 0000000..0b95d0f
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFontElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGFontElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFontFaceElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFontFaceElement.idl
new file mode 100644
index 0000000..1eed0e2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFontFaceElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGFontFaceElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFontFaceFormatElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFontFaceFormatElement.idl
new file mode 100644
index 0000000..a0848b9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFontFaceFormatElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGFontFaceFormatElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFontFaceNameElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFontFaceNameElement.idl
new file mode 100644
index 0000000..8407ccf
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFontFaceNameElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGFontFaceNameElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFontFaceSrcElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFontFaceSrcElement.idl
new file mode 100644
index 0000000..77af8cd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFontFaceSrcElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGFontFaceSrcElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGFontFaceUriElement.idl b/elemental/idl/third_party/WebCore/svg/SVGFontFaceUriElement.idl
new file mode 100644
index 0000000..b4f626a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGFontFaceUriElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGFontFaceUriElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGForeignObjectElement.idl b/elemental/idl/third_party/WebCore/svg/SVGForeignObjectElement.idl
new file mode 100644
index 0000000..a1b3882
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGForeignObjectElement.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGForeignObjectElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGGElement.idl b/elemental/idl/third_party/WebCore/svg/SVGGElement.idl
new file mode 100644
index 0000000..b6377a6
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGGElement.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGGElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGGlyphElement.idl b/elemental/idl/third_party/WebCore/svg/SVGGlyphElement.idl
new file mode 100644
index 0000000..d00309c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGGlyphElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGGlyphElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGGlyphRefElement.idl b/elemental/idl/third_party/WebCore/svg/SVGGlyphRefElement.idl
new file mode 100644
index 0000000..8a1cdb1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGGlyphRefElement.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2011 Leo Yang <leoyang@webkit.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [Conditional=SVG&SVG_FONTS] SVGGlyphRefElement : SVGElement,
+ SVGURIReference,
+ SVGStylable {
+ // FIXME: Use [Reflect] after https://bugs.webkit.org/show_bug.cgi?id=64843 is fixed.
+ attribute DOMString glyphRef
+ setter raises(DOMException);
+ attribute [Reflect] DOMString format;
+ attribute float x
+ setter raises(DOMException);
+ attribute float y
+ setter raises(DOMException);
+ attribute float dx
+ setter raises(DOMException);
+ attribute float dy
+ setter raises(DOMException);
+ };
+
+}
+
diff --git a/elemental/idl/third_party/WebCore/svg/SVGGradientElement.idl b/elemental/idl/third_party/WebCore/svg/SVGGradientElement.idl
new file mode 100644
index 0000000..6db27fb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGGradientElement.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ DoNotCheckConstants
+ ] SVGGradientElement : SVGElement,
+ SVGURIReference,
+ SVGExternalResourcesRequired,
+ SVGStylable
+ /* SVGUnitTypes */ {
+ // Spread Method Types
+ const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0;
+ const unsigned short SVG_SPREADMETHOD_PAD = 1;
+ const unsigned short SVG_SPREADMETHOD_REFLECT = 2;
+ const unsigned short SVG_SPREADMETHOD_REPEAT = 3;
+
+ readonly attribute SVGAnimatedEnumeration gradientUnits;
+ readonly attribute SVGAnimatedTransformList gradientTransform;
+ readonly attribute SVGAnimatedEnumeration spreadMethod;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGHKernElement.idl b/elemental/idl/third_party/WebCore/svg/SVGHKernElement.idl
new file mode 100644
index 0000000..4087749
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGHKernElement.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGHKernElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGImageElement.idl b/elemental/idl/third_party/WebCore/svg/SVGImageElement.idl
new file mode 100644
index 0000000..6f716e1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGImageElement.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGImageElement : SVGElement,
+ SVGURIReference,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+ readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGLangSpace.idl b/elemental/idl/third_party/WebCore/svg/SVGLangSpace.idl
new file mode 100644
index 0000000..212c85a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGLangSpace.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ SuppressToJSObject,
+ OmitConstructor
+ ] SVGLangSpace {
+ attribute DOMString xmllang
+ /*setter raises(DOMException)*/;
+ attribute DOMString xmlspace
+ /*setter raises(DOMException)*/;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGLength.idl b/elemental/idl/third_party/WebCore/svg/SVGLength.idl
new file mode 100644
index 0000000..a5c952d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGLength.idl
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGLength {
+ // Length Unit Types
+ const unsigned short SVG_LENGTHTYPE_UNKNOWN = 0;
+ const unsigned short SVG_LENGTHTYPE_NUMBER = 1;
+ const unsigned short SVG_LENGTHTYPE_PERCENTAGE = 2;
+ const unsigned short SVG_LENGTHTYPE_EMS = 3;
+ const unsigned short SVG_LENGTHTYPE_EXS = 4;
+ const unsigned short SVG_LENGTHTYPE_PX = 5;
+ const unsigned short SVG_LENGTHTYPE_CM = 6;
+ const unsigned short SVG_LENGTHTYPE_MM = 7;
+ const unsigned short SVG_LENGTHTYPE_IN = 8;
+ const unsigned short SVG_LENGTHTYPE_PT = 9;
+ const unsigned short SVG_LENGTHTYPE_PC = 10;
+
+ readonly attribute unsigned short unitType;
+ attribute [Custom, StrictTypeChecking] float value
+ setter raises(DOMException),
+ getter raises(DOMException);
+
+ attribute [StrictTypeChecking] float valueInSpecifiedUnits;
+ attribute [TreatNullAs=NullString, StrictTypeChecking] DOMString valueAsString
+ setter raises(DOMException);
+
+ [StrictTypeChecking] void newValueSpecifiedUnits(in unsigned short unitType,
+ in float valueInSpecifiedUnits)
+ raises(DOMException);
+
+ [Custom, StrictTypeChecking] void convertToSpecifiedUnits(in unsigned short unitType)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGLengthList.idl b/elemental/idl/third_party/WebCore/svg/SVGLengthList.idl
new file mode 100644
index 0000000..a90c9e2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGLengthList.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGLengthList {
+ readonly attribute unsigned long numberOfItems;
+
+ void clear()
+ raises(DOMException);
+ [StrictTypeChecking] SVGLength initialize(in SVGLength item)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGLength getItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGLength insertItemBefore(in SVGLength item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGLength replaceItem(in SVGLength item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGLength removeItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGLength appendItem(in SVGLength item)
+ raises(DOMException, SVGException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGLineElement.idl b/elemental/idl/third_party/WebCore/svg/SVGLineElement.idl
new file mode 100644
index 0000000..1655861
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGLineElement.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGLineElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGAnimatedLength x1;
+ readonly attribute SVGAnimatedLength y1;
+ readonly attribute SVGAnimatedLength x2;
+ readonly attribute SVGAnimatedLength y2;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGLinearGradientElement.idl b/elemental/idl/third_party/WebCore/svg/SVGLinearGradientElement.idl
new file mode 100644
index 0000000..385bcfb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGLinearGradientElement.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGLinearGradientElement : SVGGradientElement {
+ readonly attribute SVGAnimatedLength x1;
+ readonly attribute SVGAnimatedLength y1;
+ readonly attribute SVGAnimatedLength x2;
+ readonly attribute SVGAnimatedLength y2;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGLocatable.idl b/elemental/idl/third_party/WebCore/svg/SVGLocatable.idl
new file mode 100644
index 0000000..3b38a39
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGLocatable.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ SuppressToJSObject,
+ OmitConstructor
+ ] SVGLocatable {
+ readonly attribute SVGElement nearestViewportElement;
+ readonly attribute SVGElement farthestViewportElement;
+
+ SVGRect getBBox();
+ SVGMatrix getCTM();
+ SVGMatrix getScreenCTM();
+ SVGMatrix getTransformToElement(in [Optional=DefaultIsUndefined] SVGElement element)
+ raises(SVGException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGMPathElement.idl b/elemental/idl/third_party/WebCore/svg/SVGMPathElement.idl
new file mode 100644
index 0000000..da52f3d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGMPathElement.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) Research In Motion Limited 2011. 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGMPathElement : SVGElement,
+ SVGURIReference,
+ SVGExternalResourcesRequired {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGMarkerElement.idl b/elemental/idl/third_party/WebCore/svg/SVGMarkerElement.idl
new file mode 100644
index 0000000..dd351e3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGMarkerElement.idl
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGMarkerElement : SVGElement,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGFitToViewBox {
+ // Marker Unit Types
+ const unsigned short SVG_MARKERUNITS_UNKNOWN = 0;
+ const unsigned short SVG_MARKERUNITS_USERSPACEONUSE = 1;
+ const unsigned short SVG_MARKERUNITS_STROKEWIDTH = 2;
+
+ // Marker Orientation Types
+ const unsigned short SVG_MARKER_ORIENT_UNKNOWN = 0;
+ const unsigned short SVG_MARKER_ORIENT_AUTO = 1;
+ const unsigned short SVG_MARKER_ORIENT_ANGLE = 2;
+
+ readonly attribute SVGAnimatedLength refX;
+ readonly attribute SVGAnimatedLength refY;
+ readonly attribute SVGAnimatedEnumeration markerUnits;
+ readonly attribute SVGAnimatedLength markerWidth;
+ readonly attribute SVGAnimatedLength markerHeight;
+ readonly attribute SVGAnimatedEnumeration orientType;
+ readonly attribute SVGAnimatedAngle orientAngle;
+
+ void setOrientToAuto();
+ void setOrientToAngle(in [Optional=DefaultIsUndefined] SVGAngle angle);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGMaskElement.idl b/elemental/idl/third_party/WebCore/svg/SVGMaskElement.idl
new file mode 100644
index 0000000..6106ed3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGMaskElement.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGMaskElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable {
+ readonly attribute SVGAnimatedEnumeration maskUnits;
+ readonly attribute SVGAnimatedEnumeration maskContentUnits;
+
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGMatrix.idl b/elemental/idl/third_party/WebCore/svg/SVGMatrix.idl
new file mode 100644
index 0000000..0cfe547
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGMatrix.idl
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGMatrix {
+ // FIXME: these attributes should all be floats but since we implement
+ // AffineTransform with doubles setting these as doubles makes more sense.
+ attribute [StrictTypeChecking] double a;
+ attribute [StrictTypeChecking] double b;
+ attribute [StrictTypeChecking] double c;
+ attribute [StrictTypeChecking] double d;
+ attribute [StrictTypeChecking] double e;
+ attribute [StrictTypeChecking] double f;
+
+ [StrictTypeChecking] SVGMatrix multiply(in SVGMatrix secondMatrix);
+ SVGMatrix inverse()
+ raises(SVGException);
+ [Immutable, StrictTypeChecking] SVGMatrix translate(in float x, in float y);
+ [Immutable, StrictTypeChecking] SVGMatrix scale(in float scaleFactor);
+ [Immutable, StrictTypeChecking] SVGMatrix scaleNonUniform(in float scaleFactorX, in float scaleFactorY);
+ [Immutable, StrictTypeChecking] SVGMatrix rotate(in float angle);
+ [StrictTypeChecking] SVGMatrix rotateFromVector(in float x, in float y)
+ raises(SVGException);
+ [Immutable] SVGMatrix flipX();
+ [Immutable] SVGMatrix flipY();
+ [Immutable, StrictTypeChecking] SVGMatrix skewX(in float angle);
+ [Immutable, StrictTypeChecking] SVGMatrix skewY(in float angle);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGMetadataElement.idl b/elemental/idl/third_party/WebCore/svg/SVGMetadataElement.idl
new file mode 100644
index 0000000..878e5d9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGMetadataElement.idl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGMetadataElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGMissingGlyphElement.idl b/elemental/idl/third_party/WebCore/svg/SVGMissingGlyphElement.idl
new file mode 100644
index 0000000..5e3074b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGMissingGlyphElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGMissingGlyphElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGNumber.idl b/elemental/idl/third_party/WebCore/svg/SVGNumber.idl
new file mode 100644
index 0000000..ebd212b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGNumber.idl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGNumber {
+ attribute [StrictTypeChecking] float value;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGNumberList.idl b/elemental/idl/third_party/WebCore/svg/SVGNumberList.idl
new file mode 100644
index 0000000..43e5117
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGNumberList.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGNumberList {
+ readonly attribute unsigned long numberOfItems;
+
+ void clear()
+ raises(DOMException);
+ [StrictTypeChecking] SVGNumber initialize(in SVGNumber item)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGNumber getItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGNumber insertItemBefore(in SVGNumber item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGNumber replaceItem(in SVGNumber item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGNumber removeItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGNumber appendItem(in SVGNumber item)
+ raises(DOMException, SVGException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPaint.idl b/elemental/idl/third_party/WebCore/svg/SVGPaint.idl
new file mode 100644
index 0000000..8711655
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPaint.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPaint : SVGColor {
+ const unsigned short SVG_PAINTTYPE_UNKNOWN = 0;
+ const unsigned short SVG_PAINTTYPE_RGBCOLOR = 1;
+ const unsigned short SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2;
+ const unsigned short SVG_PAINTTYPE_NONE = 101;
+ const unsigned short SVG_PAINTTYPE_CURRENTCOLOR = 102;
+ const unsigned short SVG_PAINTTYPE_URI_NONE = 103;
+ const unsigned short SVG_PAINTTYPE_URI_CURRENTCOLOR = 104;
+ const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR = 105;
+ const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106;
+ const unsigned short SVG_PAINTTYPE_URI = 107;
+
+ readonly attribute unsigned short paintType;
+ readonly attribute DOMString uri;
+
+ [StrictTypeChecking] void setUri(in DOMString uri);
+ [StrictTypeChecking] void setPaint(in unsigned short paintType, in DOMString uri, in DOMString rgbColor, in DOMString iccColor)
+ raises(DOMException, SVGException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathElement.idl b/elemental/idl/third_party/WebCore/svg/SVGPathElement.idl
new file mode 100644
index 0000000..5f4f6ca
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathElement.idl
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGAnimatedNumber pathLength;
+
+ float getTotalLength();
+ SVGPoint getPointAtLength(in [Optional=DefaultIsUndefined] float distance);
+ unsigned long getPathSegAtLength(in [Optional=DefaultIsUndefined] float distance);
+
+ SVGPathSegClosePath createSVGPathSegClosePath();
+
+ SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+ SVGPathSegMovetoRel createSVGPathSegMovetoRel(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+
+ SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+ SVGPathSegLinetoRel createSVGPathSegLinetoRel(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+
+ SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float x1,
+ in [Optional=DefaultIsUndefined] float y1,
+ in [Optional=DefaultIsUndefined] float x2,
+ in [Optional=DefaultIsUndefined] float y2);
+ SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float x1,
+ in [Optional=DefaultIsUndefined] float y1,
+ in [Optional=DefaultIsUndefined] float x2,
+ in [Optional=DefaultIsUndefined] float y2);
+
+ SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float x1,
+ in [Optional=DefaultIsUndefined] float y1);
+ SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float x1,
+ in [Optional=DefaultIsUndefined] float y1);
+
+ SVGPathSegArcAbs createSVGPathSegArcAbs(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float r1,
+ in [Optional=DefaultIsUndefined] float r2,
+ in [Optional=DefaultIsUndefined] float angle,
+ in [Optional=DefaultIsUndefined] boolean largeArcFlag,
+ in [Optional=DefaultIsUndefined] boolean sweepFlag);
+ SVGPathSegArcRel createSVGPathSegArcRel(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float r1,
+ in [Optional=DefaultIsUndefined] float r2,
+ in [Optional=DefaultIsUndefined] float angle,
+ in [Optional=DefaultIsUndefined] boolean largeArcFlag,
+ in [Optional=DefaultIsUndefined] boolean sweepFlag);
+
+ SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(in [Optional=DefaultIsUndefined] float x);
+ SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(in [Optional=DefaultIsUndefined] float x);
+
+ SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(in [Optional=DefaultIsUndefined] float y);
+ SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(in [Optional=DefaultIsUndefined] float y);
+
+ SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float x2,
+ in [Optional=DefaultIsUndefined] float y2);
+ SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y,
+ in [Optional=DefaultIsUndefined] float x2,
+ in [Optional=DefaultIsUndefined] float y2);
+
+ SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+ SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(in [Optional=DefaultIsUndefined] float x,
+ in [Optional=DefaultIsUndefined] float y);
+
+ readonly attribute SVGPathSegList pathSegList;
+ readonly attribute SVGPathSegList normalizedPathSegList;
+ readonly attribute SVGPathSegList animatedPathSegList;
+ readonly attribute SVGPathSegList animatedNormalizedPathSegList;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSeg.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSeg.idl
new file mode 100644
index 0000000..e7ad75a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSeg.idl
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006, 2009 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ CustomToJSObject,
+ ObjCPolymorphic
+ ] SVGPathSeg {
+ // Path Segment Types
+ const unsigned short PATHSEG_UNKNOWN = 0;
+ const unsigned short PATHSEG_CLOSEPATH = 1;
+ const unsigned short PATHSEG_MOVETO_ABS = 2;
+ const unsigned short PATHSEG_MOVETO_REL = 3;
+ const unsigned short PATHSEG_LINETO_ABS = 4;
+ const unsigned short PATHSEG_LINETO_REL = 5;
+ const unsigned short PATHSEG_CURVETO_CUBIC_ABS = 6;
+ const unsigned short PATHSEG_CURVETO_CUBIC_REL = 7;
+ const unsigned short PATHSEG_CURVETO_QUADRATIC_ABS = 8;
+ const unsigned short PATHSEG_CURVETO_QUADRATIC_REL = 9;
+ const unsigned short PATHSEG_ARC_ABS = 10;
+ const unsigned short PATHSEG_ARC_REL = 11;
+ const unsigned short PATHSEG_LINETO_HORIZONTAL_ABS = 12;
+ const unsigned short PATHSEG_LINETO_HORIZONTAL_REL = 13;
+ const unsigned short PATHSEG_LINETO_VERTICAL_ABS = 14;
+ const unsigned short PATHSEG_LINETO_VERTICAL_REL = 15;
+ const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
+ const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
+ const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
+ const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
+
+ readonly attribute unsigned short pathSegType;
+ readonly attribute DOMString pathSegTypeAsLetter;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegArcAbs.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegArcAbs.idl
new file mode 100644
index 0000000..4805e8b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegArcAbs.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegArcAbs : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ attribute [StrictTypeChecking] float r1;
+ attribute [StrictTypeChecking] float r2;
+ attribute [StrictTypeChecking] float angle;
+ attribute [StrictTypeChecking] boolean largeArcFlag;
+ attribute [StrictTypeChecking] boolean sweepFlag;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegArcRel.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegArcRel.idl
new file mode 100644
index 0000000..a22c61e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegArcRel.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegArcRel : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ attribute [StrictTypeChecking] float r1;
+ attribute [StrictTypeChecking] float r2;
+ attribute [StrictTypeChecking] float angle;
+ attribute [StrictTypeChecking] boolean largeArcFlag;
+ attribute [StrictTypeChecking] boolean sweepFlag;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegClosePath.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegClosePath.idl
new file mode 100644
index 0000000..8c57d86
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegClosePath.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegClosePath : SVGPathSeg {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl
new file mode 100644
index 0000000..4311c8d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicAbs.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegCurvetoCubicAbs : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ attribute [StrictTypeChecking] float x1;
+ attribute [StrictTypeChecking] float y1;
+ attribute [StrictTypeChecking] float x2;
+ attribute [StrictTypeChecking] float y2;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicRel.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicRel.idl
new file mode 100644
index 0000000..f279f6e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicRel.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegCurvetoCubicRel : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ attribute [StrictTypeChecking] float x1;
+ attribute [StrictTypeChecking] float y1;
+ attribute [StrictTypeChecking] float x2;
+ attribute [StrictTypeChecking] float y2;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
new file mode 100644
index 0000000..fbfde0d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ attribute [StrictTypeChecking] float x2;
+ attribute [StrictTypeChecking] float y2;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl
new file mode 100644
index 0000000..1b9de2a
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ attribute [StrictTypeChecking] float x2;
+ attribute [StrictTypeChecking] float y2;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl
new file mode 100644
index 0000000..69a9930
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegCurvetoQuadraticAbs : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ attribute [StrictTypeChecking] float x1;
+ attribute [StrictTypeChecking] float y1;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl
new file mode 100644
index 0000000..0679280
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticRel.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegCurvetoQuadraticRel : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ attribute [StrictTypeChecking] float x1;
+ attribute [StrictTypeChecking] float y1;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
new file mode 100644
index 0000000..8834c03
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
new file mode 100644
index 0000000..3d042c8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoAbs.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoAbs.idl
new file mode 100644
index 0000000..714fa10
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoAbs.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegLinetoAbs : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl
new file mode 100644
index 0000000..2948297
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoHorizontalAbs.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegLinetoHorizontalAbs : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl
new file mode 100644
index 0000000..1e46dd0
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoHorizontalRel.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegLinetoHorizontalRel : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoRel.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoRel.idl
new file mode 100644
index 0000000..62ea231
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoRel.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegLinetoRel : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl
new file mode 100644
index 0000000..95c9d27
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoVerticalAbs.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegLinetoVerticalAbs : SVGPathSeg {
+ attribute [StrictTypeChecking] float y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoVerticalRel.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoVerticalRel.idl
new file mode 100644
index 0000000..4a359a5
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegLinetoVerticalRel.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegLinetoVerticalRel : SVGPathSeg {
+ attribute [StrictTypeChecking] float y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegList.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegList.idl
new file mode 100644
index 0000000..ea9e515
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegList.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegList {
+ readonly attribute unsigned long numberOfItems;
+
+ void clear()
+ raises(DOMException);
+ [StrictTypeChecking] SVGPathSeg initialize(in SVGPathSeg newItem)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGPathSeg getItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGPathSeg insertItemBefore(in SVGPathSeg newItem, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGPathSeg replaceItem(in SVGPathSeg newItem, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGPathSeg removeItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGPathSeg appendItem(in SVGPathSeg newItem)
+ raises(DOMException, SVGException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegMovetoAbs.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegMovetoAbs.idl
new file mode 100644
index 0000000..3a4f806
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegMovetoAbs.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegMovetoAbs : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPathSegMovetoRel.idl b/elemental/idl/third_party/WebCore/svg/SVGPathSegMovetoRel.idl
new file mode 100644
index 0000000..a64b351
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPathSegMovetoRel.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPathSegMovetoRel : SVGPathSeg {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPatternElement.idl b/elemental/idl/third_party/WebCore/svg/SVGPatternElement.idl
new file mode 100644
index 0000000..2dd89c2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPatternElement.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPatternElement : SVGElement,
+ SVGURIReference,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGFitToViewBox
+ /* SVGUnitTypes */ {
+ readonly attribute SVGAnimatedEnumeration patternUnits;
+ readonly attribute SVGAnimatedEnumeration patternContentUnits;
+ readonly attribute SVGAnimatedTransformList patternTransform;
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPoint.idl b/elemental/idl/third_party/WebCore/svg/SVGPoint.idl
new file mode 100644
index 0000000..ce2d51d
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPoint.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPoint {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+
+ [StrictTypeChecking] SVGPoint matrixTransform(in SVGMatrix matrix);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPointList.idl b/elemental/idl/third_party/WebCore/svg/SVGPointList.idl
new file mode 100644
index 0000000..9713ca2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPointList.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPointList {
+ readonly attribute unsigned long numberOfItems;
+
+ void clear()
+ raises(DOMException);
+ [StrictTypeChecking] SVGPoint initialize(in SVGPoint item)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGPoint getItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGPoint insertItemBefore(in SVGPoint item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGPoint replaceItem(in SVGPoint item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGPoint removeItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGPoint appendItem(in SVGPoint item)
+ raises(DOMException, SVGException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPolygonElement.idl b/elemental/idl/third_party/WebCore/svg/SVGPolygonElement.idl
new file mode 100644
index 0000000..bc9f966
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPolygonElement.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPolygonElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGPointList points;
+ readonly attribute SVGPointList animatedPoints;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPolylineElement.idl b/elemental/idl/third_party/WebCore/svg/SVGPolylineElement.idl
new file mode 100644
index 0000000..93bdaf1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPolylineElement.idl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPolylineElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGPointList points;
+ readonly attribute SVGPointList animatedPoints;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGPreserveAspectRatio.idl b/elemental/idl/third_party/WebCore/svg/SVGPreserveAspectRatio.idl
new file mode 100644
index 0000000..975bfc7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGPreserveAspectRatio.idl
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGPreserveAspectRatio {
+ // Alignment Types
+ const unsigned short SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
+ const unsigned short SVG_PRESERVEASPECTRATIO_NONE = 1;
+ const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
+ const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
+ const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
+ const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
+ const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
+ const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
+ const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
+ const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
+ const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
+
+ // Meet-or-slice Types
+ const unsigned short SVG_MEETORSLICE_UNKNOWN = 0;
+ const unsigned short SVG_MEETORSLICE_MEET = 1;
+ const unsigned short SVG_MEETORSLICE_SLICE = 2;
+
+ attribute [StrictTypeChecking] unsigned short align
+ setter raises(DOMException);
+
+ attribute [StrictTypeChecking] unsigned short meetOrSlice
+ setter raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGRadialGradientElement.idl b/elemental/idl/third_party/WebCore/svg/SVGRadialGradientElement.idl
new file mode 100644
index 0000000..000f6b4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGRadialGradientElement.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGRadialGradientElement : SVGGradientElement {
+ readonly attribute SVGAnimatedLength cx;
+ readonly attribute SVGAnimatedLength cy;
+ readonly attribute SVGAnimatedLength r;
+ readonly attribute SVGAnimatedLength fx;
+ readonly attribute SVGAnimatedLength fy;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGRect.idl b/elemental/idl/third_party/WebCore/svg/SVGRect.idl
new file mode 100644
index 0000000..4bfce0e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGRect.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGRect {
+ attribute [StrictTypeChecking] float x;
+ attribute [StrictTypeChecking] float y;
+ attribute [StrictTypeChecking] float width;
+ attribute [StrictTypeChecking] float height;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGRectElement.idl b/elemental/idl/third_party/WebCore/svg/SVGRectElement.idl
new file mode 100644
index 0000000..d93f5d7
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGRectElement.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGRectElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+ readonly attribute SVGAnimatedLength rx;
+ readonly attribute SVGAnimatedLength ry;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGRenderingIntent.idl b/elemental/idl/third_party/WebCore/svg/SVGRenderingIntent.idl
new file mode 100644
index 0000000..c66d648
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGRenderingIntent.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ SuppressToJSObject
+ ] SVGRenderingIntent {
+ // Rendering Intent Types
+ const unsigned short RENDERING_INTENT_UNKNOWN = 0;
+ const unsigned short RENDERING_INTENT_AUTO = 1;
+ const unsigned short RENDERING_INTENT_PERCEPTUAL = 2;
+ const unsigned short RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3;
+ const unsigned short RENDERING_INTENT_SATURATION = 4;
+ const unsigned short RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGSVGElement.idl b/elemental/idl/third_party/WebCore/svg/SVGSVGElement.idl
new file mode 100644
index 0000000..54f4c61
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGSVGElement.idl
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2010 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ // TODO: no css::ViewCSS available!
+ // TODO: Fix SVGSVGElement inheritance (css::DocumentCSS)!
+ // TODO: no events::DocumentEvent available!
+ interface [
+ Conditional=SVG
+ ] SVGSVGElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGLocatable,
+ SVGFitToViewBox,
+ SVGZoomAndPan {
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+ attribute DOMString contentScriptType
+ /*setter raises(DOMException)*/;
+ attribute DOMString contentStyleType
+ /*setter raises(DOMException)*/;
+ readonly attribute SVGRect viewport;
+ readonly attribute float pixelUnitToMillimeterX;
+ readonly attribute float pixelUnitToMillimeterY;
+ readonly attribute float screenPixelToMillimeterX;
+ readonly attribute float screenPixelToMillimeterY;
+ readonly attribute boolean useCurrentView;
+ readonly attribute SVGViewSpec currentView;
+ attribute float currentScale
+ /*setter raises(DOMException)*/;
+ readonly attribute SVGPoint currentTranslate;
+
+ unsigned long suspendRedraw(in [Optional=DefaultIsUndefined] unsigned long maxWaitMilliseconds);
+ void unsuspendRedraw(in [Optional=DefaultIsUndefined] unsigned long suspendHandleId);
+ void unsuspendRedrawAll();
+ void forceRedraw();
+ void pauseAnimations();
+ void unpauseAnimations();
+ boolean animationsPaused();
+ float getCurrentTime();
+ void setCurrentTime(in [Optional=DefaultIsUndefined] float seconds);
+ NodeList getIntersectionList(in [Optional=DefaultIsUndefined] SVGRect rect,
+ in [Optional=DefaultIsUndefined] SVGElement referenceElement);
+ NodeList getEnclosureList(in [Optional=DefaultIsUndefined] SVGRect rect,
+ in [Optional=DefaultIsUndefined] SVGElement referenceElement);
+ boolean checkIntersection(in [Optional=DefaultIsUndefined] SVGElement element,
+ in [Optional=DefaultIsUndefined] SVGRect rect);
+ boolean checkEnclosure(in [Optional=DefaultIsUndefined] SVGElement element,
+ in [Optional=DefaultIsUndefined] SVGRect rect);
+ void deselectAll();
+
+ SVGNumber createSVGNumber();
+ SVGLength createSVGLength();
+ SVGAngle createSVGAngle();
+ SVGPoint createSVGPoint();
+ SVGMatrix createSVGMatrix();
+ SVGRect createSVGRect();
+ SVGTransform createSVGTransform();
+ SVGTransform createSVGTransformFromMatrix(in [Optional=DefaultIsUndefined] SVGMatrix matrix);
+ Element getElementById(in [Optional=DefaultIsUndefined] DOMString elementId);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGScriptElement.idl b/elemental/idl/third_party/WebCore/svg/SVGScriptElement.idl
new file mode 100644
index 0000000..111ee59
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGScriptElement.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGScriptElement : SVGElement,
+ SVGURIReference,
+ SVGExternalResourcesRequired {
+ attribute [TreatNullAs=NullString] DOMString type
+ /*setter raises(DOMException)*/;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGSetElement.idl b/elemental/idl/third_party/WebCore/svg/SVGSetElement.idl
new file mode 100644
index 0000000..a285789
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGSetElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGSetElement : SVGAnimationElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGStopElement.idl b/elemental/idl/third_party/WebCore/svg/SVGStopElement.idl
new file mode 100644
index 0000000..14a2ba3
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGStopElement.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGStopElement : SVGElement,
+ SVGStylable {
+ readonly attribute SVGAnimatedNumber offset;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGStringList.idl b/elemental/idl/third_party/WebCore/svg/SVGStringList.idl
new file mode 100644
index 0000000..9d94e71
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGStringList.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGStringList {
+ readonly attribute unsigned long numberOfItems;
+
+ void clear()
+ raises(DOMException);
+ [StrictTypeChecking] DOMString initialize(in DOMString item)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] DOMString getItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] DOMString insertItemBefore(in DOMString item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] DOMString replaceItem(in DOMString item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] DOMString removeItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] DOMString appendItem(in DOMString item)
+ raises(DOMException, SVGException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGStylable.idl b/elemental/idl/third_party/WebCore/svg/SVGStylable.idl
new file mode 100644
index 0000000..53269c9
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGStylable.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2007 Rob Buis <rwlbuis@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ SuppressToJSObject,
+ OmitConstructor
+ ] SVGStylable {
+ readonly attribute SVGAnimatedString className;
+ readonly attribute CSSStyleDeclaration style;
+
+ CSSValue getPresentationAttribute(in [Optional=DefaultIsUndefined] DOMString name);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGStyleElement.idl b/elemental/idl/third_party/WebCore/svg/SVGStyleElement.idl
new file mode 100644
index 0000000..7fbe999
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGStyleElement.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGStyleElement : SVGElement,
+ SVGLangSpace {
+ attribute boolean disabled;
+ attribute DOMString type
+ setter raises(DOMException);
+ attribute DOMString media
+ setter raises(DOMException);
+ attribute DOMString title
+ setter raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGSwitchElement.idl b/elemental/idl/third_party/WebCore/svg/SVGSwitchElement.idl
new file mode 100644
index 0000000..10f8332
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGSwitchElement.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGSwitchElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGSymbolElement.idl b/elemental/idl/third_party/WebCore/svg/SVGSymbolElement.idl
new file mode 100644
index 0000000..f214116
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGSymbolElement.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGSymbolElement : SVGElement,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGFitToViewBox {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTRefElement.idl b/elemental/idl/third_party/WebCore/svg/SVGTRefElement.idl
new file mode 100644
index 0000000..08637f4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTRefElement.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGTRefElement : SVGTextPositioningElement,
+ SVGURIReference {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTSpanElement.idl b/elemental/idl/third_party/WebCore/svg/SVGTSpanElement.idl
new file mode 100644
index 0000000..5aec3a8
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTSpanElement.idl
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGTSpanElement : SVGTextPositioningElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTests.idl b/elemental/idl/third_party/WebCore/svg/SVGTests.idl
new file mode 100644
index 0000000..d9f79cc
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTests.idl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ SuppressToJSObject,
+ OmitConstructor
+ ] SVGTests {
+ readonly attribute SVGStringList requiredFeatures;
+ readonly attribute SVGStringList requiredExtensions;
+ readonly attribute SVGStringList systemLanguage;
+
+ boolean hasExtension(in [Optional=DefaultIsUndefined] DOMString extension);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTextContentElement.idl b/elemental/idl/third_party/WebCore/svg/SVGTextContentElement.idl
new file mode 100644
index 0000000..6ce8a53
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTextContentElement.idl
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGTextContentElement : SVGElement,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable {
+ // lengthAdjust Types
+ const unsigned short LENGTHADJUST_UNKNOWN = 0;
+ const unsigned short LENGTHADJUST_SPACING = 1;
+ const unsigned short LENGTHADJUST_SPACINGANDGLYPHS = 2;
+
+ readonly attribute SVGAnimatedLength textLength;
+ readonly attribute SVGAnimatedEnumeration lengthAdjust;
+
+ long getNumberOfChars();
+ float getComputedTextLength();
+ float getSubStringLength(in [Optional=DefaultIsUndefined,IsIndex] unsigned long offset,
+ in [Optional=DefaultIsUndefined,IsIndex] unsigned long length)
+ raises(DOMException);
+ SVGPoint getStartPositionOfChar(in [Optional=DefaultIsUndefined,IsIndex] unsigned long offset)
+ raises(DOMException);
+ SVGPoint getEndPositionOfChar(in [Optional=DefaultIsUndefined,IsIndex] unsigned long offset)
+ raises(DOMException);
+ SVGRect getExtentOfChar(in [Optional=DefaultIsUndefined,IsIndex] unsigned long offset)
+ raises(DOMException);
+ float getRotationOfChar(in [Optional=DefaultIsUndefined,IsIndex] unsigned long offset)
+ raises(DOMException);
+ long getCharNumAtPosition(in [Optional=DefaultIsUndefined] SVGPoint point);
+ void selectSubString(in [Optional=DefaultIsUndefined,IsIndex] unsigned long offset,
+ in [Optional=DefaultIsUndefined,IsIndex] unsigned long length)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTextElement.idl b/elemental/idl/third_party/WebCore/svg/SVGTextElement.idl
new file mode 100644
index 0000000..a381dd2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTextElement.idl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGTextElement : SVGTextPositioningElement,
+ SVGTransformable {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTextPathElement.idl b/elemental/idl/third_party/WebCore/svg/SVGTextPathElement.idl
new file mode 100644
index 0000000..0904a0c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTextPathElement.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGTextPathElement : SVGTextContentElement,
+ SVGURIReference {
+ // textPath Method Types
+ const unsigned short TEXTPATH_METHODTYPE_UNKNOWN = 0;
+ const unsigned short TEXTPATH_METHODTYPE_ALIGN = 1;
+ const unsigned short TEXTPATH_METHODTYPE_STRETCH = 2;
+
+ // textPath Spacing Types
+ const unsigned short TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
+ const unsigned short TEXTPATH_SPACINGTYPE_AUTO = 1;
+ const unsigned short TEXTPATH_SPACINGTYPE_EXACT = 2;
+
+ readonly attribute SVGAnimatedLength startOffset;
+ readonly attribute SVGAnimatedEnumeration method;
+ readonly attribute SVGAnimatedEnumeration spacing;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTextPositioningElement.idl b/elemental/idl/third_party/WebCore/svg/SVGTextPositioningElement.idl
new file mode 100644
index 0000000..0410f77
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTextPositioningElement.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGTextPositioningElement : SVGTextContentElement {
+ readonly attribute SVGAnimatedLengthList x;
+ readonly attribute SVGAnimatedLengthList y;
+ readonly attribute SVGAnimatedLengthList dx;
+ readonly attribute SVGAnimatedLengthList dy;
+ readonly attribute SVGAnimatedNumberList rotate;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTitleElement.idl b/elemental/idl/third_party/WebCore/svg/SVGTitleElement.idl
new file mode 100644
index 0000000..2cf241b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTitleElement.idl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGTitleElement : SVGElement,
+ SVGLangSpace,
+ SVGStylable {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTransform.idl b/elemental/idl/third_party/WebCore/svg/SVGTransform.idl
new file mode 100644
index 0000000..e3e9f5e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTransform.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+ * Copyright (C) 2006 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGTransform {
+ // Transform Types
+ const unsigned short SVG_TRANSFORM_UNKNOWN = 0;
+ const unsigned short SVG_TRANSFORM_MATRIX = 1;
+ const unsigned short SVG_TRANSFORM_TRANSLATE = 2;
+ const unsigned short SVG_TRANSFORM_SCALE = 3;
+ const unsigned short SVG_TRANSFORM_ROTATE = 4;
+ const unsigned short SVG_TRANSFORM_SKEWX = 5;
+ const unsigned short SVG_TRANSFORM_SKEWY = 6;
+
+ readonly attribute unsigned short type;
+ readonly attribute SVGMatrix matrix;
+ readonly attribute float angle;
+
+ [StrictTypeChecking] void setMatrix(in SVGMatrix matrix);
+ [StrictTypeChecking] void setTranslate(in float tx, in float ty);
+ [StrictTypeChecking] void setScale(in float sx, in float sy);
+ [StrictTypeChecking] void setRotate(in float angle, in float cx, in float cy);
+ [StrictTypeChecking] void setSkewX(in float angle);
+ [StrictTypeChecking] void setSkewY(in float angle);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTransformList.idl b/elemental/idl/third_party/WebCore/svg/SVGTransformList.idl
new file mode 100644
index 0000000..590fe65
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTransformList.idl
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGTransformList {
+ readonly attribute unsigned long numberOfItems;
+
+ void clear()
+ raises(DOMException);
+ [StrictTypeChecking] SVGTransform initialize(in SVGTransform item)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGTransform getItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGTransform insertItemBefore(in SVGTransform item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGTransform replaceItem(in SVGTransform item, in unsigned long index)
+ raises(DOMException, SVGException);
+ [StrictTypeChecking] SVGTransform removeItem(in unsigned long index)
+ raises(DOMException);
+ [StrictTypeChecking] SVGTransform appendItem(in SVGTransform item)
+ raises(DOMException, SVGException);
+
+ [StrictTypeChecking] SVGTransform createSVGTransformFromMatrix(in SVGMatrix matrix)
+ raises(DOMException);
+
+ SVGTransform consolidate()
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGTransformable.idl b/elemental/idl/third_party/WebCore/svg/SVGTransformable.idl
new file mode 100644
index 0000000..1af3895
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGTransformable.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ OmitConstructor
+ ] SVGTransformable : SVGLocatable {
+ readonly attribute SVGAnimatedTransformList transform;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGURIReference.idl b/elemental/idl/third_party/WebCore/svg/SVGURIReference.idl
new file mode 100644
index 0000000..960873e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGURIReference.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ SuppressToJSObject,
+ OmitConstructor
+ ] SVGURIReference {
+ readonly attribute SVGAnimatedString href;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGUnitTypes.idl b/elemental/idl/third_party/WebCore/svg/SVGUnitTypes.idl
new file mode 100644
index 0000000..7ed8b0b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGUnitTypes.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ SuppressToJSObject
+ ] SVGUnitTypes {
+ // Unit Types
+ const unsigned short SVG_UNIT_TYPE_UNKNOWN = 0;
+ const unsigned short SVG_UNIT_TYPE_USERSPACEONUSE = 1;
+ const unsigned short SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGUseElement.idl b/elemental/idl/third_party/WebCore/svg/SVGUseElement.idl
new file mode 100644
index 0000000..032f453
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGUseElement.idl
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGUseElement : SVGElement,
+ SVGURIReference,
+ SVGTests,
+ SVGLangSpace,
+ SVGExternalResourcesRequired,
+ SVGStylable,
+ SVGTransformable {
+ readonly attribute SVGAnimatedLength x;
+ readonly attribute SVGAnimatedLength y;
+ readonly attribute SVGAnimatedLength width;
+ readonly attribute SVGAnimatedLength height;
+
+ readonly attribute SVGElementInstance instanceRoot;
+ readonly attribute SVGElementInstance animatedInstanceRoot;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGVKernElement.idl b/elemental/idl/third_party/WebCore/svg/SVGVKernElement.idl
new file mode 100644
index 0000000..7fe8dc2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGVKernElement.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG&SVG_FONTS
+ ] SVGVKernElement : SVGElement {
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGViewElement.idl b/elemental/idl/third_party/WebCore/svg/SVGViewElement.idl
new file mode 100644
index 0000000..04b2457
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGViewElement.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGViewElement : SVGElement,
+ SVGExternalResourcesRequired,
+ SVGFitToViewBox,
+ SVGZoomAndPan {
+ readonly attribute SVGStringList viewTarget;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGViewSpec.idl b/elemental/idl/third_party/WebCore/svg/SVGViewSpec.idl
new file mode 100644
index 0000000..ec545d1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGViewSpec.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ *
+ * 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 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 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.
+ */
+
+module svg {
+
+ // SVGViewSpec intentionally doesn't inherit from SVGZoomAndPan & SVGFitToViewBox on the IDLs.
+ // It would require that any of those classes would be RefCounted, and we want to avoid that.
+ interface [
+ Conditional=SVG,
+ JSGenerateToJSObject
+ ] SVGViewSpec {
+ readonly attribute SVGTransformList transform;
+ readonly attribute SVGElement viewTarget;
+ readonly attribute DOMString viewBoxString;
+ readonly attribute DOMString preserveAspectRatioString;
+ readonly attribute DOMString transformString;
+ readonly attribute DOMString viewTargetString;
+
+ // SVGZoomAndPan
+ attribute unsigned short zoomAndPan
+ setter raises(DOMException);
+
+ // SVGFitToViewBox
+ readonly attribute SVGAnimatedRect viewBox;
+ readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGZoomAndPan.idl b/elemental/idl/third_party/WebCore/svg/SVGZoomAndPan.idl
new file mode 100644
index 0000000..37621bb
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGZoomAndPan.idl
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCProtocol,
+ SuppressToJSObject
+ ] SVGZoomAndPan {
+ const unsigned short SVG_ZOOMANDPAN_UNKNOWN = 0;
+ const unsigned short SVG_ZOOMANDPAN_DISABLE = 1;
+ const unsigned short SVG_ZOOMANDPAN_MAGNIFY = 2;
+
+ attribute unsigned short zoomAndPan;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/svg/SVGZoomEvent.idl b/elemental/idl/third_party/WebCore/svg/SVGZoomEvent.idl
new file mode 100644
index 0000000..a288237
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/svg/SVGZoomEvent.idl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2006 Apple 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 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 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.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG
+ ] SVGZoomEvent : UIEvent {
+ readonly attribute SVGRect zoomRectScreen;
+ readonly attribute float previousScale;
+ readonly attribute [Immutable] SVGPoint previousTranslate;
+ readonly attribute float newScale;
+ readonly attribute [Immutable] SVGPoint newTranslate;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/testing/InternalSettings.idl b/elemental/idl/third_party/WebCore/testing/InternalSettings.idl
new file mode 100644
index 0000000..53c5176
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/testing/InternalSettings.idl
@@ -0,0 +1,64 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+ interface [
+ OmitConstructor
+ ] InternalSettings {
+ void setInspectorResourcesDataSizeLimits(in long maximumResourcesContentSize, in long maximumSingleResourceContentSize) raises(DOMException);
+ void setForceCompositingMode(in boolean enabled) raises(DOMException);
+ void setEnableCompositingForFixedPosition(in boolean enabled) raises(DOMException);
+ void setEnableCompositingForScrollableFrames(in boolean enabled) raises(DOMException);
+ void setAcceleratedDrawingEnabled(in boolean enabled) raises(DOMException);
+ void setAcceleratedFiltersEnabled(in boolean enabled) raises(DOMException);
+ void setMockScrollbarsEnabled(in boolean enabled) raises(DOMException);
+ void setPasswordEchoEnabled(in boolean enabled) raises(DOMException);
+ void setPasswordEchoDurationInSeconds(in double durationInSeconds) raises(DOMException);
+ void setFixedElementsLayoutRelativeToFrame(in boolean enabled) raises(DOMException);
+ void setUnifiedTextCheckingEnabled(in boolean enabled) raises (DOMException);
+ boolean unifiedTextCheckingEnabled() raises (DOMException);
+ void setPageScaleFactor(in float scaleFactor, in long x, in long y) raises(DOMException);
+ void setTouchEventEmulationEnabled(in boolean enabled) raises(DOMException);
+ void setDeviceSupportsTouch(in boolean enabled) raises(DOMException);
+ void setShadowDOMEnabled(in boolean enabled) raises(DOMException);
+ void setStandardFontFamily(in DOMString family, in DOMString script) raises(DOMException);
+ void setSerifFontFamily(in DOMString family, in DOMString script) raises(DOMException);
+ void setSansSerifFontFamily(in DOMString family, in DOMString script) raises(DOMException);
+ void setFixedFontFamily(in DOMString family, in DOMString script) raises(DOMException);
+ void setCursiveFontFamily(in DOMString family, in DOMString script) raises(DOMException);
+ void setFantasyFontFamily(in DOMString family, in DOMString script) raises(DOMException);
+ void setPictographFontFamily(in DOMString family, in DOMString script) raises(DOMException);
+ void setEnableScrollAnimator(in boolean enabled) raises(DOMException);
+ boolean scrollAnimatorEnabled() raises(DOMException);
+ void setCSSExclusionsEnabled(in boolean enabled) raises(DOMException);
+ void setMediaPlaybackRequiresUserGesture(in boolean enabled) raises(DOMException);
+ void setEditingBehavior(in DOMString behavior) raises(DOMException);
+ void setFixedPositionCreatesStackingContext(in boolean creates) raises(DOMException);
+ void setSyncXHRInDocumentsEnabled(in boolean enabled) raises(DOMException);
+ void setJavaScriptProfilingEnabled(in boolean creates) raises(DOMException);
+ void setWindowFocusRestricted(in boolean restricted) raises(DOMException);
+ };
+}
+
diff --git a/elemental/idl/third_party/WebCore/testing/Internals.idl b/elemental/idl/third_party/WebCore/testing/Internals.idl
new file mode 100644
index 0000000..aa10858
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/testing/Internals.idl
@@ -0,0 +1,162 @@
+/*
+ * 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 AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module window {
+ interface [
+ OmitConstructor
+ ] Internals {
+ DOMString address(in Node node);
+
+ DOMString elementRenderTreeAsText(in Element element) raises(DOMException);
+ boolean isPreloaded(in Document document, in DOMString url);
+
+ unsigned long numberOfScopedHTMLStyleChildren(in Node scope) raises(DOMException);
+
+#if defined(ENABLE_SHADOW_DOM)
+ ShadowRoot ensureShadowRoot(in Element host) raises (DOMException);
+ ShadowRoot shadowRoot(in Element host) raises (DOMException);
+ ShadowRoot youngestShadowRoot(in Element host) raises (DOMException);
+ ShadowRoot oldestShadowRoot(in Element host) raises (DOMException);
+ ShadowRoot youngerShadowRoot(in Node root) raises (DOMException);
+ ShadowRoot olderShadowRoot(in Node root) raises (DOMException);
+#else
+ Node ensureShadowRoot(in Element host) raises (DOMException);
+ Node shadowRoot(in Element host) raises (DOMException);
+ Node youngestShadowRoot(in Element host) raises (DOMException);
+ Node oldestShadowRoot(in Element host) raises (DOMException);
+ Node youngerShadowRoot(in Node root) raises (DOMException);
+#endif
+ Element includerFor(in Node node) raises (DOMException);
+ DOMString shadowPseudoId(in Element element) raises (DOMException);
+ Element createContentElement(in Document document) raises(DOMException);
+ Element getElementByIdInShadowRoot(in Node shadowRoot, in DOMString id) raises(DOMException);
+ boolean isValidContentSelect(in Element contentElement) raises(DOMException);
+ Node treeScopeRootNode(in Node node) raises (DOMException);
+
+ Node nextSiblingByWalker(in Node node) raises(DOMException);
+ Node firstChildByWalker(in Node node) raises(DOMException);
+ Node lastChildByWalker(in Node node) raises(DOMException);
+ Node nextNodeByWalker(in Node node) raises(DOMException);
+ Node previousNodeByWalker(in Node node) raises(DOMException);
+
+ boolean attached(in Node node) raises(DOMException);
+
+ DOMString visiblePlaceholder(in Element element);
+#if defined(ENABLE_INPUT_TYPE_COLOR) && ENABLE_INPUT_TYPE_COLOR
+ void selectColorInColorChooser(in Element element, in DOMString colorValue);
+#endif
+
+ ClientRect absoluteCaretBounds(in Document document) raises(DOMException);
+
+ ClientRect boundingBox(in Element element) raises(DOMException);
+
+ ClientRectList inspectorHighlightRects(in Document document) raises (DOMException);
+
+ void setBackgroundBlurOnNode(in Node node, in long blurLength) raises(DOMException);
+
+ unsigned long markerCountForNode(in Node node, in DOMString markerType) raises(DOMException);
+ Range markerRangeForNode(in Node node, in DOMString markerType, in unsigned long index) raises(DOMException);
+ DOMString markerDescriptionForNode(in Node node, in DOMString markerType, in unsigned long index) raises(DOMException);
+
+ void setScrollViewPosition(in Document document, in long x, in long y) raises(DOMException);
+
+ void setPagination(in Document document, in DOMString mode, in long gap) raises(DOMException);
+
+ boolean wasLastChangeUserEdit(in Element textField) raises (DOMException);
+ DOMString suggestedValue(in Element inputElement) raises (DOMException);
+ void setSuggestedValue(in Element inputElement, in DOMString value) raises (DOMException);
+ void setEditingValue(in Element inputElement, in DOMString value) raises (DOMException);
+
+ void paintControlTints(in Document document) raises (DOMException);
+
+ void scrollElementToRect(in Element element, in long x, in long y, in long w, in long h) raises (DOMException);
+
+ Range rangeFromLocationAndLength(in Element scope, in long rangeLocation, in long rangeLength) raises (DOMException);
+ unsigned long locationFromRange(in Element scope, in Range range) raises (DOMException);
+ unsigned long lengthFromRange(in Element scope, in Range range) raises (DOMException);
+ DOMString rangeAsText(in Range range) raises (DOMException);
+
+ void setDelegatesScrolling(in boolean enabled, in Document document) raises (DOMException);
+#if defined(ENABLE_TOUCH_ADJUSTMENT) && ENABLE_TOUCH_ADJUSTMENT
+ WebKitPoint touchPositionAdjustedToBestClickableNode(in long x, in long y, in long width, in long height, in Document document) raises (DOMException);
+ Node touchNodeAdjustedToBestClickableNode(in long x, in long y, in long width, in long height, in Document document) raises (DOMException);
+ ClientRect bestZoomableAreaForTouchPoint(in long x, in long y, in long width, in long height, in Document document) raises (DOMException);
+#endif
+
+ long lastSpellCheckRequestSequence(in Document document) raises (DOMException);
+ long lastSpellCheckProcessedSequence(in Document document) raises (DOMException);
+
+#if defined(ENABLE_VIDEO_TRACK) && ENABLE_VIDEO_TRACK
+ void setShouldDisplayTrackKind(in Document document, in DOMString kind, in boolean enabled) raises (DOMException);
+ boolean shouldDisplayTrackKind(in Document document, in DOMString trackKind) raises (DOMException);
+#endif
+
+ attribute sequence<String> userPreferredLanguages;
+
+ unsigned long wheelEventHandlerCount(in Document document) raises (DOMException);
+ unsigned long touchEventHandlerCount(in Document document) raises (DOMException);
+
+ NodeList nodesFromRect(in Document document, in long x, in long y,
+ in unsigned long topPadding, in unsigned long rightPadding, in unsigned long bottomPadding, in unsigned long leftPadding,
+ in boolean ignoreClipping, in boolean allowShadowContent) raises (DOMException);
+
+ void emitInspectorDidBeginFrame();
+ void emitInspectorDidCancelFrame();
+
+ boolean hasSpellingMarker(in Document document, in long from, in long length) raises (DOMException);
+ boolean hasGrammarMarker(in Document document, in long from, in long length) raises (DOMException);
+
+ unsigned long numberOfScrollableAreas(in Document document) raises (DOMException);
+
+ boolean isPageBoxVisible(in Document document, in long pageNumber) raises (DOMException);
+
+ readonly attribute InternalSettings settings;
+
+ void suspendAnimations(in Document document) raises (DOMException);
+ void resumeAnimations(in Document document) raises (DOMException);
+
+ void allowRoundingHacks();
+
+#if defined(ENABLE_BATTERY_STATUS) && ENABLE_BATTERY_STATUS
+ void setBatteryStatus(in Document document, in DOMString eventType, in boolean charging, in double chargingTime, in double dischargingTime, in double level) raises (DOMException);
+#endif
+
+#if defined(ENABLE_NETWORK_INFO) && ENABLE_NETWORK_INFO
+ void setNetworkInformation(in Document document, in DOMString eventType, in long bandwidth, in boolean metered) raises (DOMException);
+#endif
+
+ [Conditional=INSPECTOR] unsigned long numberOfLiveNodes();
+ [Conditional=INSPECTOR] unsigned long numberOfLiveDocuments();
+ [Conditional=INSPECTOR] sequence<String> consoleMessageArgumentCounts(in Document document);
+
+#if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
+ void webkitWillEnterFullScreenForElement(in Document document, in Element element);
+ void webkitDidEnterFullScreenForElement(in Document document, in Element element);
+ void webkitWillExitFullScreenForElement(in Document document, in Element element);
+ void webkitDidExitFullScreenForElement(in Document document, in Element element);
+#endif
+ };
+}
+
diff --git a/elemental/idl/third_party/WebCore/workers/AbstractWorker.idl b/elemental/idl/third_party/WebCore/workers/AbstractWorker.idl
new file mode 100644
index 0000000..3c90d1e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/workers/AbstractWorker.idl
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module threads {
+
+ interface [
+ Conditional=WORKERS,
+ ActiveDOMObject,
+ JSCustomToJSObject,
+ EventTarget
+ ] AbstractWorker {
+
+ attribute EventListener onerror;
+
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/workers/DedicatedWorkerContext.idl b/elemental/idl/third_party/WebCore/workers/DedicatedWorkerContext.idl
new file mode 100644
index 0000000..48ecfdc
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/workers/DedicatedWorkerContext.idl
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2009, 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:
+ *
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module threads {
+
+ interface [
+ Conditional=WORKERS,
+ ExtendsDOMGlobalObject,
+ IsWorkerContext,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ OmitConstructor
+ ] DedicatedWorkerContext : WorkerContext {
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [Custom] void postMessage(in any message, in [Optional] Array messagePorts)
+ raises(DOMException);
+ [Custom] void webkitPostMessage(in any message, in [Optional] Array transferList)
+ raises(DOMException);
+#else
+ // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
+ void postMessage(in DOMString message, in [Optional] MessagePort messagePort)
+ raises(DOMException);
+#endif
+#endif
+
+ attribute EventListener onmessage;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/workers/SharedWorker.idl b/elemental/idl/third_party/WebCore/workers/SharedWorker.idl
new file mode 100644
index 0000000..40ccdd4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/workers/SharedWorker.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2010 Apple 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module threads {
+
+ interface [
+ Conditional=SHARED_WORKERS,
+ ActiveDOMObject,
+ JSCustomConstructor,
+ Constructor(in DOMString scriptURL, in [Optional=DefaultIsNullString] DOMString name),
+ CallWith=ScriptExecutionContext,
+ ConstructorRaisesException,
+ JSCustomMarkFunction,
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject
+ ] SharedWorker : AbstractWorker {
+ readonly attribute MessagePort port;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/workers/SharedWorkerContext.idl b/elemental/idl/third_party/WebCore/workers/SharedWorkerContext.idl
new file mode 100644
index 0000000..6769811
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/workers/SharedWorkerContext.idl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2009 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "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.
+ */
+
+module threads {
+
+ interface [
+ Conditional=SHARED_WORKERS,
+ ExtendsDOMGlobalObject,
+ IsWorkerContext,
+ JSGenerateToNativeObject,
+ JSNoStaticTables,
+ OmitConstructor
+ ] SharedWorkerContext : WorkerContext {
+
+ readonly attribute DOMString name;
+ attribute EventListener onconnect;
+
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/workers/Worker.idl b/elemental/idl/third_party/WebCore/workers/Worker.idl
new file mode 100644
index 0000000..083353c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/workers/Worker.idl
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2008, 2010 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.
+ *
+ */
+
+module threads {
+
+ interface [
+ Conditional=WORKERS,
+ ActiveDOMObject,
+ JSCustomConstructor,
+ Constructor(in DOMString scriptUrl),
+ CallWith=ScriptExecutionContext,
+ ConstructorRaisesException,
+ JSGenerateToNativeObject,
+ JSGenerateToJSObject
+ ] Worker : AbstractWorker {
+
+ attribute EventListener onmessage;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [Custom] void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts)
+ raises(DOMException);
+ [Custom] void webkitPostMessage(in SerializedScriptValue message, in [Optional] Array messagePorts)
+ raises(DOMException);
+#else
+ // There's no good way to expose an array via the ObjC bindings, so for now just allow passing in a single port.
+ void postMessage(in SerializedScriptValue message, in [Optional] MessagePort messagePort)
+ raises(DOMException);
+#endif
+
+ void terminate();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/workers/WorkerContext.idl b/elemental/idl/third_party/WebCore/workers/WorkerContext.idl
new file mode 100644
index 0000000..65a64fd
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/workers/WorkerContext.idl
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ *
+ */
+
+module threads {
+
+ interface [
+ Conditional=WORKERS,
+ JSCustomMarkFunction,
+ JSCustomGetOwnPropertySlotAndDescriptor,
+ EventTarget,
+ ExtendsDOMGlobalObject,
+ IsWorkerContext,
+ JSLegacyParent=JSWorkerContextBase,
+ JSNoStaticTables,
+ OmitConstructor,
+ V8CustomToJSObject
+ ] WorkerContext {
+
+ // WorkerGlobalScope
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ attribute [Replaceable] WorkerContext self;
+#endif
+ attribute [Replaceable] WorkerLocation location;
+ void close();
+ attribute EventListener onerror;
+
+ // WorkerUtils
+ [Custom] void importScripts(/*[Variadic] in DOMString urls */);
+ attribute [Replaceable] WorkerNavigator navigator;
+
+ // Timers
+ [Custom] long setTimeout(in TimeoutHandler handler, in long timeout);
+ // [Custom] long setTimeout(in DOMString code, in long timeout);
+ void clearTimeout(in [Optional=DefaultIsUndefined] long handle);
+ [Custom] long setInterval(in TimeoutHandler handler, in long timeout);
+ // [Custom] long setInterval(in DOMString code, in long timeout);
+ void clearInterval(in [Optional=DefaultIsUndefined] long handle);
+
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+
+#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
+ // Constructors
+ attribute MessageEventConstructor MessageEvent;
+ attribute WorkerLocationConstructor WorkerLocation;
+
+#if ENABLE_CHANNEL_MESSAGING
+ attribute [JSCustomGetter] MessageChannelConstructor MessageChannel;
+#endif
+ attribute [JSCustomGetter] EventSourceConstructor EventSource;
+ attribute [JSCustomGetter] XMLHttpRequestConstructor XMLHttpRequest;
+#endif
+
+#if defined(ENABLE_BLOB) && ENABLE_BLOB
+ attribute [Conditional=LEGACY_WEBKIT_BLOB_BUILDER] WebKitBlobBuilderConstructor WebKitBlobBuilder;
+ attribute BlobConstructor Blob;
+ attribute FileReaderConstructor FileReader;
+ attribute FileReaderSyncConstructor FileReaderSync;
+#endif
+
+ attribute [Conditional=BLOB] DOMURLConstructor webkitURL;
+
+ attribute ArrayBufferConstructor ArrayBuffer; // Usable with new operator
+ attribute Int8ArrayConstructor Int8Array; // Usable with new operator
+ attribute Uint8ArrayConstructor Uint8Array; // Usable with new operator
+ attribute Uint8ArrayConstructor 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
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/workers/WorkerLocation.idl b/elemental/idl/third_party/WebCore/workers/WorkerLocation.idl
new file mode 100644
index 0000000..3b302c4
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/workers/WorkerLocation.idl
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module threads {
+
+ interface [
+ Conditional=WORKERS,
+ JSGenerateIsReachable=Impl,
+ JSNoStaticTables
+ ] WorkerLocation {
+ readonly attribute DOMString href;
+ readonly attribute DOMString protocol;
+ readonly attribute DOMString host;
+ readonly attribute DOMString hostname;
+ readonly attribute DOMString port;
+ readonly attribute DOMString pathname;
+ readonly attribute DOMString search;
+ readonly attribute DOMString hash;
+
+ [NotEnumerable] DOMString toString();
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/DOMParser.idl b/elemental/idl/third_party/WebCore/xml/DOMParser.idl
new file mode 100644
index 0000000..5e51bc1
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/DOMParser.idl
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module xpath {
+ interface [
+ Constructor
+ ] DOMParser {
+ Document parseFromString(in [Optional=DefaultIsUndefined] DOMString str,
+ in [Optional=DefaultIsUndefined] DOMString contentType);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XMLHttpRequest.idl b/elemental/idl/third_party/WebCore/xml/XMLHttpRequest.idl
new file mode 100644
index 0000000..0dcedfe
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XMLHttpRequest.idl
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2008, 2011 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module xml {
+
+ interface [
+ ActiveDOMObject,
+ Constructor,
+ CallWith=ScriptExecutionContext,
+ V8CustomConstructor,
+ JSCustomMarkFunction,
+ EventTarget,
+ JSNoStaticTables
+ ] XMLHttpRequest {
+ // From XMLHttpRequestEventTarget
+ // event handler attributes
+ attribute EventListener onabort;
+ attribute EventListener onerror;
+ attribute EventListener onload;
+ attribute EventListener onloadend;
+ attribute EventListener onloadstart;
+ attribute EventListener onprogress;
+
+ // event handler attributes
+ attribute EventListener onreadystatechange;
+
+ // state
+ const unsigned short UNSENT = 0;
+ const unsigned short OPENED = 1;
+ const unsigned short HEADERS_RECEIVED = 2;
+ const unsigned short LOADING = 3;
+ const unsigned short DONE = 4;
+
+ readonly attribute unsigned short readyState;
+
+ // request
+ attribute [Conditional=XHR_RESPONSE_BLOB, V8EnabledAtRuntime] boolean asBlob
+ setter raises(DOMException);
+
+ attribute boolean withCredentials
+ setter raises(DOMException);
+
+ [Custom] void open(in DOMString method, in DOMString url, in [Optional] boolean async, in [Optional] DOMString user, in [Optional] DOMString password)
+ raises(DOMException);
+
+ void setRequestHeader(in DOMString header, in DOMString value)
+ raises(DOMException);
+
+ [Custom] void send()
+ raises(DOMException);
+ [Custom] void send(in ArrayBuffer data)
+ raises(DOMException);
+ [Conditional=BLOB, Custom] void send(in Blob data)
+ raises(DOMException);
+ [Custom] void send(in Document data)
+ raises(DOMException);
+ [Custom] void send(in DOMString data)
+ raises(DOMException);
+ [Custom] void send(in DOMFormData data)
+ raises(DOMException);
+
+ void abort();
+
+ readonly attribute XMLHttpRequestUpload upload;
+
+ // response
+ [TreatReturnedNullStringAs=Undefined] DOMString getAllResponseHeaders()
+ raises(DOMException);
+ [TreatReturnedNullStringAs=Null] DOMString getResponseHeader(in DOMString header)
+ raises(DOMException);
+ readonly attribute [CustomGetter] DOMString responseText // The custom getter implements TreatReturnedNullStringAs=Null
+ getter raises(DOMException);
+ readonly attribute Document responseXML
+ getter raises(DOMException);
+ readonly attribute [Conditional=XHR_RESPONSE_BLOB, V8EnabledAtRuntime] Blob responseBlob
+ getter raises(DOMException);
+
+ attribute DOMString responseType
+ setter raises(DOMException);
+ readonly attribute [CustomGetter] Object response
+ getter raises(DOMException);
+
+ readonly attribute unsigned short status
+ getter raises(DOMException);
+ readonly attribute DOMString statusText
+ getter raises(DOMException);
+
+ // Extension
+ void overrideMimeType(in DOMString override);
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XMLHttpRequestException.idl b/elemental/idl/third_party/WebCore/xml/XMLHttpRequestException.idl
new file mode 100644
index 0000000..a0be458
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XMLHttpRequestException.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module xml {
+
+ exception [
+ JSNoStaticTables,
+ DoNotCheckConstants
+ ] XMLHttpRequestException {
+
+ readonly attribute unsigned short code;
+ readonly attribute DOMString name;
+ readonly attribute DOMString message;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // Override in a Mozilla compatible format
+ [NotEnumerable] DOMString toString();
+#endif
+
+ // XMLHttpRequestExceptionCode
+ const unsigned short NETWORK_ERR = 101;
+ const unsigned short ABORT_ERR = 102;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XMLHttpRequestProgressEvent.idl b/elemental/idl/third_party/WebCore/xml/XMLHttpRequestProgressEvent.idl
new file mode 100644
index 0000000..b1ca355
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XMLHttpRequestProgressEvent.idl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2008, 2010 Apple 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.
+ */
+
+module events {
+
+ interface [
+ JSNoStaticTables
+ // We should also inherit from LSProgressEvent when the idl is added.
+ ] XMLHttpRequestProgressEvent : ProgressEvent {
+ readonly attribute unsigned long long position;
+ readonly attribute unsigned long long totalSize;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XMLHttpRequestUpload.idl b/elemental/idl/third_party/WebCore/xml/XMLHttpRequestUpload.idl
new file mode 100644
index 0000000..584c293
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XMLHttpRequestUpload.idl
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2008 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module xml {
+
+ interface [
+ JSGenerateIsReachable=Impl,
+ EventTarget,
+ JSNoStaticTables
+ ] XMLHttpRequestUpload {
+ // From XMLHttpRequestEventTarget
+ // event handler attributes
+ attribute EventListener onabort;
+ attribute EventListener onerror;
+ attribute EventListener onload;
+ attribute EventListener onloadend;
+ attribute EventListener onloadstart;
+ attribute EventListener onprogress;
+
+ // EventTarget interface
+ void addEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in [Optional] boolean useCapture);
+ boolean dispatchEvent(in Event evt)
+ raises(EventException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XMLSerializer.idl b/elemental/idl/third_party/WebCore/xml/XMLSerializer.idl
new file mode 100644
index 0000000..58327cc
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XMLSerializer.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Samuel Weinig (sam@webkit.org)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module xpath {
+
+ interface [
+ Constructor
+ ] XMLSerializer {
+ DOMString serializeToString(in [Optional=DefaultIsUndefined] Node node)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XPathEvaluator.idl b/elemental/idl/third_party/WebCore/xml/XPathEvaluator.idl
new file mode 100644
index 0000000..cb9950c
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XPathEvaluator.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module xpath {
+ interface [
+ Constructor
+ ] XPathEvaluator {
+ XPathExpression createExpression(in [Optional=DefaultIsUndefined] DOMString expression,
+ in [Optional=DefaultIsUndefined] XPathNSResolver resolver)
+ raises(DOMException);
+
+ XPathNSResolver createNSResolver(in [Optional=DefaultIsUndefined] Node nodeResolver);
+
+ XPathResult evaluate(in [Optional=DefaultIsUndefined] DOMString expression,
+ in [Optional=DefaultIsUndefined] Node contextNode,
+ in [Optional=DefaultIsUndefined] XPathNSResolver resolver,
+ in [Optional=DefaultIsUndefined] unsigned short type,
+ in [Optional=DefaultIsUndefined] XPathResult inResult)
+ raises(DOMException);
+ };
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XPathException.idl b/elemental/idl/third_party/WebCore/xml/XPathException.idl
new file mode 100644
index 0000000..cec0c54
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XPathException.idl
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2007 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module xpath {
+
+ exception [
+ DoNotCheckConstants
+ ] XPathException {
+
+ readonly attribute unsigned short code;
+ readonly attribute DOMString name;
+ readonly attribute DOMString message;
+
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ // Override in a Mozilla compatible format
+ [NotEnumerable] DOMString toString();
+#endif
+
+ // XPathExceptionCode
+ const unsigned short INVALID_EXPRESSION_ERR = 51;
+ const unsigned short TYPE_ERR = 52;
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XPathExpression.idl b/elemental/idl/third_party/WebCore/xml/XPathExpression.idl
new file mode 100644
index 0000000..5e60840
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XPathExpression.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module xpath {
+
+ interface XPathExpression {
+ [ObjCLegacyUnnamedParameters] XPathResult evaluate(in [Optional=DefaultIsUndefined] Node contextNode,
+ in [Optional=DefaultIsUndefined] unsigned short type,
+ in [Optional=DefaultIsUndefined] XPathResult inResult)
+ raises(DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XPathNSResolver.idl b/elemental/idl/third_party/WebCore/xml/XPathNSResolver.idl
new file mode 100644
index 0000000..e9fa41b
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XPathNSResolver.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module xpath {
+
+ interface [
+ ObjCProtocol,
+ OmitConstructor
+ ] XPathNSResolver {
+ [TreatReturnedNullStringAs=Null] DOMString lookupNamespaceURI(in [Optional=DefaultIsUndefined] DOMString prefix);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XPathResult.idl b/elemental/idl/third_party/WebCore/xml/XPathResult.idl
new file mode 100644
index 0000000..77c5b8e
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XPathResult.idl
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+module xpath {
+
+ interface [
+ JSCustomMarkFunction
+ ] XPathResult {
+ const unsigned short ANY_TYPE = 0;
+ const unsigned short NUMBER_TYPE = 1;
+ const unsigned short STRING_TYPE = 2;
+ const unsigned short BOOLEAN_TYPE = 3;
+ const unsigned short UNORDERED_NODE_ITERATOR_TYPE = 4;
+ const unsigned short ORDERED_NODE_ITERATOR_TYPE = 5;
+ const unsigned short UNORDERED_NODE_SNAPSHOT_TYPE = 6;
+ const unsigned short ORDERED_NODE_SNAPSHOT_TYPE = 7;
+ const unsigned short ANY_UNORDERED_NODE_TYPE = 8;
+ const unsigned short FIRST_ORDERED_NODE_TYPE = 9;
+
+ readonly attribute unsigned short resultType;
+ readonly attribute double numberValue
+ getter raises (DOMException);
+
+ readonly attribute DOMString stringValue
+ getter raises (DOMException);
+
+ readonly attribute boolean booleanValue
+ getter raises (DOMException);
+
+ readonly attribute Node singleNodeValue
+ getter raises (DOMException);
+
+ readonly attribute boolean invalidIteratorState;
+ readonly attribute unsigned long snapshotLength
+ getter raises (DOMException);
+
+ Node iterateNext()
+ raises (DOMException);
+ Node snapshotItem(in [Optional=DefaultIsUndefined] unsigned long index)
+ raises (DOMException);
+ };
+
+}
diff --git a/elemental/idl/third_party/WebCore/xml/XSLTProcessor.idl b/elemental/idl/third_party/WebCore/xml/XSLTProcessor.idl
new file mode 100644
index 0000000..48ec6c2
--- /dev/null
+++ b/elemental/idl/third_party/WebCore/xml/XSLTProcessor.idl
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2008, 2010 Apple 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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.
+ */
+
+module xml {
+
+ // Eventually we should implement XSLTException:
+ // http://lxr.mozilla.org/seamonkey/source/content/xsl/public/nsIXSLTException.idl
+ // http://bugs.webkit.org/show_bug.cgi?id=5446
+
+ interface [
+ Conditional=XSLT,
+ Constructor
+ ] XSLTProcessor {
+
+ [Custom] void importStylesheet(in Node stylesheet);
+ [Custom] DocumentFragment transformToFragment(in Node source, in Document docVal);
+ [Custom] Document transformToDocument(in Node source);
+
+ [Custom] void setParameter(in DOMString namespaceURI, in DOMString localName, in DOMString value);
+ [Custom, TreatReturnedNullStringAs=Undefined] DOMString getParameter(in DOMString namespaceURI, in DOMString localName);
+ [Custom] void removeParameter(in DOMString namespaceURI, in DOMString localName);
+ void clearParameters();
+
+ void reset();
+
+ };
+
+}