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/README b/elemental/README
new file mode 100644
index 0000000..3537a00
--- /dev/null
+++ b/elemental/README
@@ -0,0 +1,19 @@
+Elemental is a "to the metal" raw programming API designed to keep up with fast changing
+HTML5 browsers, reduce the need for JSNI code, and melt away to as little overhead as possible.
+It is particularly suited for situations where direct low level access and small code are important
+such as mobile devices.
+
+Currently, Elemental is generated from the WebKit project's WebIDL binding definitions which are used also
+by the Dart project. Because of this, vendor prefixed APIs also show up (webkit specific). These APIs are
+often also available on Firefox, Opera, and IE. A future version of Elemental will generate these
+as well, either as Mozilla/Opera/IE vendor prefixed calls, or as standardized non-prefix calls backed by
+multibrowser shim.
+
+To see Elemental and SuperDevMode in action, run 'ant dist-dev' to build gwt-dev and gwt-user jars. Then
+cd to examples/silvercomet and run 'ant demo'
+
+Visit http://localhost:9876/SilverComet/SilverComet.html and enjoy.
+
+
+
+
diff --git a/elemental/STOP.EXPERIMENTAL b/elemental/STOP.EXPERIMENTAL
new file mode 100644
index 0000000..c00e557
--- /dev/null
+++ b/elemental/STOP.EXPERIMENTAL
@@ -0,0 +1,6 @@
+DANGER! DANGER!
+
+Elemental is experimental. It will change rapidly, both because the HTML5 IDLs are evolving, and because
+some things like the Collection class APIs will most likely be changed. If you use elemental, be prepared to
+have your app broken, and to contribute by giving feedback and/or patches.
+
diff --git a/elemental/build.xml b/elemental/build.xml
new file mode 100644
index 0000000..51ad92d
--- /dev/null
+++ b/elemental/build.xml
@@ -0,0 +1,57 @@
+<project name="elemental" default="build" basedir=".">
+ <property name="gwt.root" location=".." />
+ <property name="project.tail" value="elemental" />
+ <property name="test.args" value="-ea" />
+ <property name="test.jvmargs" value="-ea" />
+
+ <import file="${gwt.root}/common.ant.xml" />
+
+ <!-- Platform shouldn't matter here, just picking one -->
+ <property.ensure name="gwt.dev.jar" location="${gwt.build.lib}/gwt-dev.jar" />
+ <property.ensure name="gwt.user.jar" location="${gwt.build.lib}/gwt-user.jar" />
+
+ <target name="compile" description="Compile all class files">
+ <mkdir dir="${javac.out}" />
+ <gwt.javac excludes="**/super/**">
+ <classpath>
+ <pathelement location="${gwt.dev.jar}" />
+ <pathelement location="${gwt.user.jar}" />
+ </classpath>
+ </gwt.javac>
+ </target>
+
+ <target name="build" depends="compile"
+ description="Creates gwt-elemental.jar">
+ <mkdir dir="${gwt.build.lib}" />
+ <gwt.jar>
+ <fileset dir="src" excludes="**/package.html" />
+ <fileset dir="${javac.out}" />
+ </gwt.jar>
+ </target>
+
+ <macrodef name="compileModule">
+ <element name="module" />
+ <sequential>
+ <gwt.timer name="Pre-compile module">
+ <java classname="com.google.gwt.dev.CompileModule" fork="yes" failonerror="true">
+ <classpath>
+ <pathelement location="${gwt.root}/elemental/src" />
+ <pathelement location="${gwt.dev.jar}" />
+ <pathelement location="${gwt.user.jar}" />
+ </classpath>
+ <jvmarg value="-Xmx512M" />
+ <module />
+ <arg value="-strict" />
+ <arg value="-out" />
+ <arg value="${project.build}/bin" />
+ </java>
+ </gwt.timer>
+ </sequential>
+ </macrodef>
+
+ <target name="clean"
+ description="Cleans this project's intermediate and output files">
+ <delete dir="${project.build}" />
+ <delete file="${project.lib}" />
+ </target>
+</project>
diff --git a/elemental/examples/silvercomet/build.xml b/elemental/examples/silvercomet/build.xml
new file mode 100755
index 0000000..cdd70c6
--- /dev/null
+++ b/elemental/examples/silvercomet/build.xml
@@ -0,0 +1,37 @@
+<!-- Demo of elemental implementing search and visualization of marathon runner times (json data) -->
+<project name="silvercomet" default="build" basedir=".">
+ <property name="gwt.root" location="../../.." />
+ <property name="project.tail" value="elemental/examples/silvercomet" />
+ <import file="${gwt.root}/common.ant.xml" />
+
+ <property.ensure name="gwt.dev.jar" location="${gwt.build.lib}/gwt-dev.jar" />
+ <property.ensure name="gwt.codeserver.jar" location="${gwt.build.lib}/gwt-codeserver.jar" />
+ <property.ensure name="gwt.elemental.jar" location="${gwt.build.lib}/gwt-elemental.jar" />
+
+ <target name="demo" depends="build" description="starts the code server with a sample app">
+
+ <!-- hack to make sourcemaps generation work in the compiler -->
+ <!-- See: http://code.google.com/p/google-web-toolkit/issues/detail?id=7397 -->
+ <property.ensure name="json.jar"
+ location="${gwt.tools}/redist/json/r2_20080312/json-1.5.jar" />
+
+ <property.ensure name="gwt.user.jar" location="${gwt.build.lib}/gwt-user.jar" />
+ <property.ensure name="sample-src" location="${gwt.root}/elemental/examples/silvercomet/src" />
+
+
+ <java fork="true" failonerror="true" classname="com.google.gwt.dev.codeserver.CodeServer">
+ <classpath>
+ <pathelement location="${project.lib}"/>
+ <pathelement location="${gwt.dev.jar}"/>
+ <pathelement location="${json.jar}" />
+ <pathelement location="${gwt.user.jar}"/>
+ <pathelement location="${gwt.codeserver.jar}"/>
+ <pathelement location="${gwt.elemental.jar}"/>
+ </classpath>
+ <arg value="-src"/>
+ <arg value="${sample-src}"/>
+ <arg value="com.google.silvercomet.SilverComet"/>
+ </java>
+ </target>
+
+</project>
diff --git a/elemental/examples/silvercomet/src/com/google/silvercomet/SilverComet.gwt.xml b/elemental/examples/silvercomet/src/com/google/silvercomet/SilverComet.gwt.xml
new file mode 100644
index 0000000..40ba8d8
--- /dev/null
+++ b/elemental/examples/silvercomet/src/com/google/silvercomet/SilverComet.gwt.xml
@@ -0,0 +1,6 @@
+<module rename-to="SilverComet">
+ <inherits name="elemental.Elemental"/>
+ <add-linker name="xsiframe"/>
+ <set-configuration-property name="devModeRedirectEnabled" value="true"/>
+ <entry-point class="com.google.silvercomet.client.Main"/>
+</module>
diff --git a/elemental/examples/silvercomet/src/com/google/silvercomet/client/Main.java b/elemental/examples/silvercomet/src/com/google/silvercomet/client/Main.java
new file mode 100644
index 0000000..e6c67ce
--- /dev/null
+++ b/elemental/examples/silvercomet/src/com/google/silvercomet/client/Main.java
@@ -0,0 +1,522 @@
+package com.google.silvercomet.client;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.resources.client.ClientBundle;
+import com.google.gwt.resources.client.CssResource;
+
+import elemental.client.Browser;
+import elemental.css.CSSStyleDeclaration;
+import elemental.css.CSSStyleDeclaration.Display;
+import elemental.css.CSSStyleDeclaration.Unit;
+import elemental.css.CSSStyleDeclaration.Visibility;
+import elemental.events.Event;
+import elemental.events.EventListener;
+import elemental.events.KeyboardEvent;
+import elemental.dom.Document;
+import elemental.dom.Element;
+import elemental.html.InputElement;
+import elemental.html.StyleElement;
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfInt;
+import elemental.util.Collections;
+import elemental.dom.*;
+
+/**
+ * All the view code that is fit to run.
+ *
+ * @author knorton@google.com (Kelly Norton)
+ */
+public class Main implements EntryPoint, Model.Listener, EventListener {
+
+ /**
+ * Access to all the relevant classnames and constants for the CSS selectors.
+ */
+ public static interface Css extends CssResource {
+ String bar();
+
+ String browserInfo();
+
+ String count();
+
+ String label();
+
+ String marker();
+
+ String moreResults();
+
+ String result();
+
+ String resultLeft();
+
+ String resultName();
+
+ String resultRight();
+
+ String root();
+
+ int rootHeight();
+
+ int rootWidth();
+
+ String tickMajor();
+
+ String tickMinor();
+ }
+
+ /**
+ * Bundles the CSS resources.
+ */
+ public interface Resources extends ClientBundle {
+ @Source("silver-comet.gwt.css")
+ Css css();
+ }
+
+ /**
+ * A simple view to show a runner's finishing info.
+ */
+ private static class RunnerView {
+ /**
+ * Returns a string describing a runner's place & finishing time. Example:
+ * 325th (1:49:11)
+ */
+ private static String infoString(Runner runner) {
+ return placeString(runner.place()) + " (" + secondsToTime(runner.time(), true) + ")";
+ }
+
+ /**
+ * Produces a english locale human readable places. Example: 1st, 2nd, 11th,
+ * etc.
+ */
+ private static String placeString(int place) {
+ final int tens = place / 10;
+ final int ones = place % 10;
+ if (ones == 1 && tens != 1) {
+ return place + "st";
+ } else if (ones == 2 && tens != 1) {
+ return place + "nd";
+ } else if (ones == 3 && tens != 1) {
+ return place + "rd";
+ } else {
+ return place + "th";
+ }
+ }
+
+ /**
+ * Sets the current runner being displayed.
+ */
+ private static native void setRunner(Element element, Runner runner) /*-{
+ element.currentRunner = runner;
+ }-*/;
+
+ /**
+ * This is a hack for sure, but I claim it demonstrates your ability to
+ * commit clever atrosities in JavaScript even while working in Java.
+ */
+ static native Runner getRunnerFromElement(Element element) /*-{
+ return element.currentRunner || element.parentNode.currentRunner;
+ }-*/;
+
+ private final Element root;
+
+ private final Element name;
+
+ private final Element info;
+
+ private final double secondsPerPixel;
+
+ /**
+ * Create a new view with a classname for the root element and a scaling
+ * factor for translating along the timeline.
+ */
+ RunnerView(String rootClass, double secondsPerPixel) {
+ this(rootClass, null, secondsPerPixel);
+ }
+
+ /**
+ * Create a new view classnames for the root element and text elements and a
+ * scaling factor for translating along the timeline.
+ */
+ RunnerView(String rootClass, String textClass, double secondsPerPixel) {
+ root = div(rootClass);
+ name = textClass == null ? div() : div(textClass);
+ info = textClass == null ? div() : div(textClass);
+
+ root.appendChild(name);
+ root.appendChild(info);
+
+ this.secondsPerPixel = secondsPerPixel;
+ }
+
+ /**
+ * Returns the root element for the view. Generally used to add the view to
+ * the DOM.
+ */
+ Element element() {
+ return root;
+ }
+
+ /**
+ * Make the view invisible.
+ */
+ void hide() {
+ root.getStyle().setVisibility(Visibility.HIDDEN);
+ }
+
+ /**
+ * Make the view visible.
+ */
+ void show() {
+ root.getStyle().removeProperty("visibility");
+ }
+
+ /**
+ * Update the view to show the info of a runner.
+ */
+ void update(Runner runner) {
+ setRunner(root, runner);
+ name.setTextContent(runner.name());
+ info.setTextContent(infoString(runner));
+ final int x = (int) ((double) runner.time() / (double) Model.SECONDS_PER_HISTOGRAM_BUCKET
+ * secondsPerPixel);
+
+ // TODO(knorton): This is actually wrong because it sets left on all
+ // markers.
+ root.getStyle().setLeft(x, Unit.PX);
+ show();
+ }
+ }
+
+ private static final int NUM_SEARCH_RESULTS = 6;
+
+ /*
+ * Get the correct classname based on the index of the result. This allows for
+ * different classnames on the first and last item.
+ */
+ private static String cssClassForResultItem(Css css, int index) {
+ if (index == 0) {
+ return css.result() + " " + css.resultLeft();
+ }
+
+ if (index == NUM_SEARCH_RESULTS - 1) {
+ return css.result() + " " + css.resultRight();
+ }
+
+ return css.result();
+ }
+
+ /**
+ * Convenience method for creating a new div.
+ */
+ private static Element div() {
+ return Browser.getDocument().createElement("div");
+ }
+
+ /**
+ * Convenience method for creating a new div with a classname.
+ */
+ private static Element div(String className) {
+ final Element e = div();
+ e.setClassName(className);
+ return e;
+ }
+
+ private static String getBrowserInfoString() {
+ final Browser.Info info = Browser.getInfo();
+ if (info.isWebKit()) {
+ return "WebKit Browser";
+ } else if (info.isGecko()) {
+ return "Gecko Browser";
+ }
+ return "Unsupported Browser";
+ }
+
+ private static void injectStyles(Document document, String css) {
+ final StyleElement style = (StyleElement)document.createElement("style");
+ style.setTextContent(css);
+ document.getHead().appendChild(style);
+ }
+
+ /**
+ * Converts a integer to a {@link String}, prepending a zero if the string
+ * representation is only 1 character in length.
+ */
+ private static String pad(int number) {
+ return number > 9 ? "" + number : "0" + number;
+ }
+
+ /**
+ * Converts the number of seconds to a more human readable finishing time.
+ */
+ private static String secondsToTime(int seconds, boolean includeSeconds) {
+ final int hrs = seconds / 3600;
+ final int mns = seconds / 60 - hrs * 60;
+ if (includeSeconds) {
+ final int scs = seconds - hrs * 3600 - mns * 60;
+ return hrs + ":" + pad(mns) + ":" + pad(scs);
+ }
+ return hrs + ":" + pad(mns);
+ }
+
+ private final Css css = GWT.<Resources>create(Resources.class).css();
+
+ private Element root;
+
+ private InputElement search;
+
+ private RunnerView marker;
+
+ private Model model;
+
+ private String lastQuery;
+
+ private Element results;
+
+ private ArrayOf<RunnerView> resultItems;
+
+ private double xAxisScale;
+
+ private Element moreResults;
+
+ /**
+ * Handles all DOM events for the app.
+ */
+ @Override
+ public void handleEvent(Event evt) {
+ final Element target = (Element) evt.getTarget();
+
+ // Handle searches.
+ if (target == search) {
+ // if (((KeyboardEvent)evt).getKeyCode() == 42) {
+ // clearSearch();
+ // } else {
+ final String query = search.getValue();
+ updateSearch(query == null ? "" : query.trim());
+ // }
+ return;
+ }
+
+ // Handle clicks on search results.
+ final Runner runner = RunnerView.getRunnerFromElement(target);
+ if (runner != null) {
+ marker.update(runner);
+ clearSearch();
+ return;
+ }
+ }
+
+ /**
+ * Indicates that the data failed to load.
+ */
+ @Override
+ public void modelDidFailLoading(Model model) {
+ }
+
+ /**
+ * Indicates that the model finished building the search indexes.
+ */
+ @Override
+ public void modelDidFinishBuildingIndex(Model model) {
+ // TODO(knorton): File crbug about readOnly not working properly.
+ // search.setReadOnly(false);
+ search.focus();
+ }
+
+ /**
+ * Indicates that all data has been loaded into the model.
+ */
+ @Override
+ public void modelDidFinishLoading(Model model) {
+ final ArrayOfInt histogram = model.histogram();
+ assert histogram.length() > 0 : "histogram is empty.";
+
+ xAxisScale = (double) css.rootWidth() / (double) histogram.length();
+
+ // Build the histogram graph.
+ render();
+
+ // Create the marker.
+ marker = new RunnerView(css.marker(), xAxisScale);
+ marker.hide();
+ root.appendChild(marker.element());
+ Browser.getDocument().getBody().getStyle().setOpacity(1.0);
+ }
+
+ /**
+ * The main entry point for the application.
+ */
+ public void onModuleLoad() {
+ injectStyles(Browser.getDocument(), css.getText());
+
+ // TODO(knorton): Bad Elemental pattern.
+ search = (InputElement) Browser.getDocument().getElementById("search");
+ // TODO(knorton): File crbug about readOnly not working properly.
+ // search.setReadOnly(true);
+ search.addEventListener("change", this, false);
+ search.addEventListener("keyup", this, false);
+ search.addEventListener("keydown", this, false);
+
+ root = (Element) Browser.getDocument().getElementById("c");
+ root.setClassName(css.root());
+
+ results = (Element)Browser.getDocument().getElementById("r");
+ results.getStyle().setVisibility(Visibility.HIDDEN);
+ results.addEventListener("click", this, false);
+
+ // Browser info indicator.
+ // TODO(knorton): Put this in a debug perm.
+ final Element info = Browser.getDocument().getElementById("f");
+ info.setClassName(css.browserInfo());
+ info.setTextContent(getBrowserInfoString());
+
+ model = new Model(this);
+ model.load();
+ }
+
+ /**
+ * Clear the search box and hide the result item list.
+ */
+ private void clearSearch() {
+ search.setValue("");
+ hideSearchResults();
+ }
+
+ /**
+ * Ensure that the DOM for result items has been built and appended to the
+ * DOM.
+ */
+ private void ensureSearchResultItems() {
+ if (resultItems != null) {
+ return;
+ }
+
+ resultItems = Collections.arrayOf();
+ for (int i = 0; i < NUM_SEARCH_RESULTS; ++i) {
+ final RunnerView marker =
+ new RunnerView(cssClassForResultItem(css, i), css.resultName(), xAxisScale);
+ results.appendChild(marker.element());
+ resultItems.push(marker);
+ }
+
+ moreResults = div(css.moreResults());
+ results.appendChild(moreResults);
+ moreResults.getStyle().setDisplay(Display.NONE);
+ }
+
+ /**
+ * Hide the search result items list.
+ */
+ private void hideSearchResults() {
+ results.getStyle().setVisibility(Visibility.HIDDEN);
+ }
+
+ /**
+ * Renders the bar graph.
+ */
+ private void render() {
+ final ArrayOfInt histogram = model.histogram();
+
+ final int padding = 2;
+ final int topPadding = 50;
+
+ final double dx = xAxisScale;
+ final double dy = (double) css.rootHeight() / histogram.get(histogram.length() - 1);
+ final double halfDx = dx / 2.0;
+
+ // Render all bars.
+ for (int i = 0, n = histogram.length(); i < n; ++i) {
+ final int value = histogram.get(i);
+ if (value == 0) continue;
+
+ final int x = (int) (dx * i) + padding;
+ final int h = (int) (dy * value) - topPadding;
+ final int w = (int) dx - padding * 2;
+
+ // Create the vertical bar.
+ final Element bar = div(css.bar());
+ final CSSStyleDeclaration barStyle = bar.getStyle();
+ barStyle.setLeft(x, Unit.PX);
+ barStyle.setBottom("0");
+ barStyle.setHeight(h, Unit.PX);
+ barStyle.setWidth(w, Unit.PX);
+
+ // Add a count at the top.
+ final Element count = div(css.count());
+ count.setTextContent("" + value);
+
+ bar.appendChild(count);
+ root.appendChild(bar);
+ }
+
+ // Render labels
+ for (int i = 0, n = histogram.length(); i <= n; ++i) {
+ final int x = (int) (dx * i);
+ final int w = (int) dx;
+
+ final String time = secondsToTime(i * Model.SECONDS_PER_HISTOGRAM_BUCKET, false);
+
+ final Element label = div(css.label());
+ label.setTextContent(time);
+ final CSSStyleDeclaration labelStyle = label.getStyle();
+ labelStyle.setLeft(x - dx, Unit.PX);
+ labelStyle.setWidth(w, Unit.PX);
+ root.appendChild(label);
+
+ // TODO(knorton): Heh, that's pretty trashy. I should fix that. :-)
+ final Element tick =
+ div(time.charAt(time.length() - 1) == '0' && time.charAt(time.length() - 2) == '0'
+ ? css.tickMajor() : css.tickMinor());
+ tick.getStyle().setLeft(x, Unit.PX);
+ root.appendChild(tick);
+ }
+ }
+
+ /**
+ * Show the search result items list and update it with the specified list of
+ * results.
+ */
+ private void showSearchResults(ArrayOf<Runner> runners) {
+ ensureSearchResultItems();
+ results.getStyle().removeProperty("visibility");
+ for (int i = 0; i < NUM_SEARCH_RESULTS; ++i) {
+ final RunnerView item = resultItems.get(i);
+ if (i < runners.length()) {
+ item.show();
+ item.update(runners.get(i));
+ } else {
+ item.hide();
+ }
+ }
+
+ if (runners.length() > NUM_SEARCH_RESULTS) {
+ moreResults.setTextContent("+" + (runners.length() - NUM_SEARCH_RESULTS) + " more");
+ moreResults.getStyle().removeProperty("display");
+ } else {
+ moreResults.getStyle().setDisplay(Display.NONE);
+ }
+ }
+
+ /**
+ * Update the search results visually for the specified query.
+ */
+ private void updateSearch(String query) {
+ if (query.equals(lastQuery)) {
+ return;
+ }
+
+ lastQuery = query;
+ if (query.length() == 0) {
+ hideSearchResults();
+ }
+
+ final ArrayOf<Runner> runners = model.search(query);
+ if (runners == null) {
+ hideSearchResults();
+ } else if (runners.length() == 1) {
+ hideSearchResults();
+ marker.update(runners.get(0));
+ } else {
+ showSearchResults(runners);
+ }
+ }
+}
diff --git a/elemental/examples/silvercomet/src/com/google/silvercomet/client/Model.java b/elemental/examples/silvercomet/src/com/google/silvercomet/client/Model.java
new file mode 100644
index 0000000..9db9022
--- /dev/null
+++ b/elemental/examples/silvercomet/src/com/google/silvercomet/client/Model.java
@@ -0,0 +1,193 @@
+// Copyright 2010 Google Inc. All Rights Reserved.
+
+package com.google.silvercomet.client;
+
+import com.google.gwt.xhr.client.XMLHttpRequest;
+
+import elemental.client.Browser;
+import elemental.html.Window;
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfInt;
+import elemental.util.ArrayOfString;
+import elemental.util.MapFromStringTo;
+import elemental.json.Json;
+import elemental.js.util.StringUtil;
+import elemental.js.util.Xhr;
+import elemental.util.CanCompare;
+import elemental.dom.TimeoutHandler;
+import elemental.util.Collections;
+
+/**
+ * A very simple data model for the application.
+ *
+ * @author knorton@google.com (Kelly Norton)
+ */
+public class Model implements Xhr.Callback {
+
+ /**
+ * A listener to receive callbacks on model events.
+ */
+ public interface Listener {
+ void modelDidFailLoading(Model model);
+
+ void modelDidFinishBuildingIndex(Model model);
+
+ void modelDidFinishLoading(Model model);
+ }
+
+ private static final String DATA_URL = "results.json";
+
+ public static final int SECONDS_PER_HISTOGRAM_BUCKET = 600;
+
+ /**
+ * Compute a histogram with number of finishers per bucket of time where the
+ * size of the bucket is indicated by <code>seconds</code>.
+ */
+ private static ArrayOfInt computeHistogram(ArrayOf<Runner> runners, int seconds) {
+ final ArrayOfInt hist = Collections.arrayOfInt();
+
+ for (int i = 0, n = runners.length(); i < n; ++i) {
+ int index = runners.get(i).time() / seconds;
+ hist.set(index, hist.isSet(index) ? hist.get(index) + 1 : 1);
+ }
+
+ int sum = 0;
+ for (int i = 0, n = hist.length(); i < n; ++i) {
+ if (hist.isSet(i)) {
+ sum += hist.get(i);
+ }
+ hist.set(i, sum);
+ }
+
+ return hist;
+ }
+
+ /**
+ * Sorts the list of runners by {@link Runner#time()} and updates their places
+ * accordingly.
+ */
+ private static ArrayOf<Runner> normalize(ArrayOf<Runner> runners) {
+ // Sort by time() which is based on bib time.
+ runners.sort(new CanCompare<Runner>() {
+ @Override
+ public int compare(Runner a, Runner b) {
+ return a.time() - b.time();
+ }
+ });
+
+ // Update the runner's new place.
+ for (int i = 0, n = runners.length(); i < n; ++i) {
+ runners.get(i).setPlace(i + 1);
+ }
+
+ return runners;
+ }
+
+ /**
+ * Update the model's index with all possible prefixes of the search key.
+ */
+ private static void updateIndexForAllPrefixes(
+ MapFromStringTo<ArrayOf<Runner>> index, String key, Runner runner) {
+ assert key.length() > 0 : "key.length must be > 0.";
+
+ for (int i = 1, n = key.length(); i <= n; ++i) {
+ final String prefix = key.substring(0, i);
+ if (!index.hasKey(prefix)) {
+ index.put(prefix, Collections.<Runner>arrayOf());
+ }
+
+ final ArrayOf<Runner> values = index.get(prefix);
+ // Do not add the same runner twice.
+ if (values.get(values.length() - 1) != runner) {
+ index.get(prefix).push(runner);
+ }
+ }
+ }
+
+ private final Listener listener;
+
+ private ArrayOfInt histogram = null;
+
+ private MapFromStringTo<ArrayOf<Runner>> index = Collections.mapFromStringTo();
+
+ /**
+ * Create a new model.
+ */
+ public Model(Listener listener) {
+ this.listener = listener;
+ }
+
+ /**
+ * Get a reference to the models histogram.
+ */
+ public ArrayOfInt histogram() {
+ return histogram;
+ }
+
+ /**
+ * Load the remote data into the model.
+ */
+ public void load() {
+ Xhr.get(DATA_URL, this);
+ }
+
+ /**
+ * Called if the XHR fails to load data from there server.
+ */
+ @Override
+ public void onFail(XMLHttpRequest xhr) {
+ listener.modelDidFailLoading(this);
+ }
+
+ /**
+ * Called when XHR successfully loads data from the server.
+ */
+ @Override
+ public void onSuccess(XMLHttpRequest xhr) {
+ update((ArrayOf<Runner>)Json.parse(xhr.getResponseText()));
+ listener.modelDidFinishLoading(this);
+ }
+
+ /**
+ * Performs a search and returns the list of runners that match.
+ */
+ public ArrayOf<Runner> search(String query) {
+ return index.get(query);
+ }
+
+ /**
+ * Update the model's internal data from an list of runners coming from the
+ * server.
+ */
+ private void update(ArrayOf<Runner> data) {
+ // Sort & mutate source data.
+ final ArrayOf<Runner> runners = normalize(data);
+
+ // Update indexes later.
+ Browser.getWindow().setTimeout(new TimeoutHandler() {
+ @Override
+ public void onTimeoutHandler() {
+ for (int i = 0, n = runners.length(); i < n; ++i) {
+ final Runner runner = runners.get(i);
+
+ final String name = runner.name().toLowerCase();
+ updateIndexForAllPrefixes(index, name, runner);
+ final ArrayOfString words = StringUtil.split(name, " ");
+ for (int j = 0, m = words.length(); j < m; ++j) {
+ updateIndexForAllPrefixes(index, words.get(j), runner);
+ }
+
+ updateIndexForAllPrefixes(index, "" + runner.place(), runner);
+ updateIndexForAllPrefixes(index, "" + runner.bibNumber(), runner);
+ }
+ listener.modelDidFinishBuildingIndex(Model.this);
+ }
+ }, 0);
+
+ // Compute histogram.
+ final ArrayOfInt histogram = computeHistogram(runners, SECONDS_PER_HISTOGRAM_BUCKET);
+
+ // Update fields.
+ this.histogram = histogram;
+ }
+}
diff --git a/elemental/examples/silvercomet/src/com/google/silvercomet/client/Runner.java b/elemental/examples/silvercomet/src/com/google/silvercomet/client/Runner.java
new file mode 100644
index 0000000..09667d8
--- /dev/null
+++ b/elemental/examples/silvercomet/src/com/google/silvercomet/client/Runner.java
@@ -0,0 +1,96 @@
+// Copyright 2010 Google Inc. All Rights Reserved.
+
+package com.google.silvercomet.client;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+/**
+ * An overlay type that structures a runner's data.
+ *
+ * @author knorton@google.com (Kelly Norton)
+ */
+public final class Runner extends JavaScriptObject {
+ protected Runner() {
+ }
+
+ /**
+ * The runner's age.
+ */
+ public native int age() /*-{
+ return this[2];
+ }-*/;
+
+ /**
+ * The number on the runner's bib (race number).
+ */
+ public native int bibNumber() /*-{
+ return this[5];
+ }-*/;
+
+ /**
+ * The runner's finishing time based on the RFID tag in their bib. -1 is
+ * returned if the runner did not record a valid time with their bib.
+ */
+ public native int bibTime() /*-{
+ return this[8];
+ }-*/;
+
+ /**
+ * The city the runner entered in their registration.
+ */
+ public native String city() /*-{
+ return this[4];
+ }-*/;
+
+ /**
+ * Male or Female.
+ */
+ public native int gender() /*-{
+ return this[3];
+ }-*/;
+
+ /**
+ * The runner's finishing time based on the time from the gun fire to the time
+ * they passed the finish line.
+ */
+ public native int gunTime() /*-{
+ return this[6];
+ }-*/;
+
+ /**
+ * The runner's full name.
+ */
+ public native String name() /*-{
+ return this[1];
+ }-*/;
+
+ /**
+ * The runner's pace in seconds / mile.
+ */
+ public native int pace() /*-{
+ return this[7];
+ }-*/;
+
+ /**
+ * The runner's finishing place (1 based).
+ */
+ public native int place() /*-{
+ return this[0];
+ }-*/;
+
+ /**
+ * Allows updating of the runner's place to accomodate recordering by
+ * {@link #bibTime()} instead of {@link #gunTime()}.
+ */
+ public native void setPlace(int place) /*-{
+ this[0] = place;
+ }-*/;
+
+ /**
+ * Normalized finishing time. This returns the {@link #bibTime()} if it's
+ * valid, {@link #gunTime()} otherwise.
+ */
+ public int time() {
+ return bibTime() != -1 ? bibTime() : gunTime();
+ }
+}
diff --git a/elemental/examples/silvercomet/src/com/google/silvercomet/client/silver-comet.gwt.css b/elemental/examples/silvercomet/src/com/google/silvercomet/client/silver-comet.gwt.css
new file mode 100644
index 0000000..e641ccc
--- /dev/null
+++ b/elemental/examples/silvercomet/src/com/google/silvercomet/client/silver-comet.gwt.css
@@ -0,0 +1,175 @@
+@def rootWidth 800px;
+@def rootHeight 600px;
+
+/* TODO(knorton): -moz and -webkit prefixes can be targeted with @if */
+body {
+ font-family: Helvetica,Arial,san-serif;
+ -webkit-transition: opacity 200ms ease-in-out;
+ /* opacity: 0 is defined in SilverComet.html */
+
+ /*
+ * Firefox doesn't allow margin: auto on flex-box displayed elements.
+ * It's like the new IE6.
+ */
+ text-align: center;
+}
+
+/* header */
+#h {
+ display: -webkit-box;
+ display: -moz-box;
+ -webkit-box-orient: horizontal;
+ -moz-box-orient: horizontal;
+ width: rootWidth;
+ margin: 10px auto;
+ background: #666;
+ padding: 10px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ color: #be7;
+ font-size: 12pt;
+}
+
+/* The chart */
+#c {
+ text-align: left;
+}
+
+/* find a runner */
+#ha {
+ font-size: 10px;
+ background-color: #777;
+ padding: 4px 10px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+}
+
+/* header title */
+#hb {
+ padding: 4px 10px;
+ -webkit-box-flex: 1;
+ -moz-box-flex: 1;
+ text-align: right;
+}
+
+/* search results */
+#r {
+ position: relative;
+ text-align: left;
+ font-size: 10px;
+ width: rootWidth;
+ margin: 0 auto;
+ height: 45px;
+ padding: 10px 4px;
+ background-color: #eee;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+}
+
+.result {
+ display: inline-block;
+ margin: 4px 0;
+ padding: 4px 10px;
+ border-right: 1px solid #999;
+ border-left: 1px solid #fff;
+ width: 111px;
+ cursor: pointer;
+ text-align: center;
+}
+
+.resultLeft {
+ border-left: none;
+}
+
+.resultRight {
+ border-right: none;
+}
+
+ .resultName {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+#search {
+ font-size: 10px;
+ margin-left: 10px;
+}
+
+.root {
+ width: rootWidth;
+ height: rootHeight;
+ border-bottom: 1px solid #666;
+ margin: 50px auto;
+ position: relative;
+}
+
+.bar {
+ position: absolute;
+ background: #ccc;
+}
+
+.count {
+ font-size: 10px;
+ color: #666;
+ margin-top: -15px;
+}
+
+.label {
+ font-size: 10px;
+ position: absolute;
+ top: 601px;
+ height: 20px;
+ padding-top: 15px;
+ text-align: center;
+}
+
+.tickMinor {
+ position: absolute;
+ border-left: 1px solid #666;
+ bottom: -6px;
+ height: 6px;
+}
+
+.tickMajor {
+ position: absolute;
+ border-left: 1px solid #666;
+ bottom: -10px;
+ height: 10px;
+}
+
+.marker {
+ font-size: 10px;
+ border-left: 1px solid #600;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ color: #600;
+ padding-left: 4px;
+ -webkit-transition: left 200ms ease-in-out;
+ -moz-transition: left 200ms ease-in-out;
+ min-width: 200px;
+}
+
+.moreResults {
+ right: -5em;
+ top: 2.5em;
+ position: absolute;
+ background-color: #fff;
+ color: #000;
+ padding: 2px 10px;
+ -webkit-box-shadow: rgba(0, 0, 0, 0.2) 2px 2px 2px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.2) 2px 2px 2px;
+ -webkit-border-radius: 20px;
+ -moz-border-radius: 20px;
+ border: 1px solid #666;
+}
+
+.browserInfo {
+ font-size: 8px;
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ padding: 4px;
+ color: #666;
+}
\ No newline at end of file
diff --git a/elemental/examples/silvercomet/src/com/google/silvercomet/public/SilverComet.html b/elemental/examples/silvercomet/src/com/google/silvercomet/public/SilverComet.html
new file mode 100644
index 0000000..3b3cdb7
--- /dev/null
+++ b/elemental/examples/silvercomet/src/com/google/silvercomet/public/SilverComet.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <script src="SilverComet.nocache.js"></script>
+ </head>
+ <body style="opacity:0">
+ <div id="h">
+ <div id="ha">find a runner <input type="search" id="search"></div>
+ <div id="hb">Silver Comet Half Marathon – Oct 30, 2010</div>
+ </div>
+ <div id="r">
+ </div>
+ <div id="c"></div>
+ <div id="f"></div>
+ </body>
+</html>
+
diff --git a/elemental/examples/silvercomet/src/com/google/silvercomet/public/results.json b/elemental/examples/silvercomet/src/com/google/silvercomet/public/results.json
new file mode 100644
index 0000000..8723dcc
--- /dev/null
+++ b/elemental/examples/silvercomet/src/com/google/silvercomet/public/results.json
@@ -0,0 +1,18735 @@
+[
+ [
+ 1,
+ "KEVIN CLARY",
+ 29,
+ "M",
+ "ATLANTA GA",
+ 337,
+ 4090,
+ 313,
+ 4088
+ ],
+ [
+ 2,
+ "TIM PRICHARD",
+ 39,
+ "M",
+ "DECATUR GA",
+ 1470,
+ 4665,
+ 357,
+ 4662
+ ],
+ [
+ 3,
+ "CHRIS SMITH",
+ 32,
+ "M",
+ "ATLANTA GA",
+ 1704,
+ 4687,
+ 358,
+ 4685
+ ],
+ [
+ 4,
+ "DAVID CATER",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 299,
+ 4694,
+ 359,
+ 4692
+ ],
+ [
+ 5,
+ "JUSTIN TUCKER",
+ 25,
+ "M",
+ "DOUGLASVILLE GA",
+ 1863,
+ 4726,
+ 361,
+ 4723
+ ],
+ [
+ 6,
+ "JACK WESTRICK",
+ 40,
+ "M",
+ "DUNWOODY GA",
+ 1954,
+ 4739,
+ 362,
+ 4736
+ ],
+ [
+ 7,
+ "KEN YOUNGERS",
+ 54,
+ "M",
+ "DECATUR GA",
+ 2016,
+ 4795,
+ 366,
+ 4791
+ ],
+ [
+ 8,
+ "BRITTNEY MENSEN",
+ 28,
+ "F",
+ "WINSTON GA",
+ 1255,
+ 4846,
+ 370,
+ 4843
+ ],
+ [
+ 9,
+ "RAOUL NOWITZ",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 1356,
+ 4971,
+ 380,
+ 4966
+ ],
+ [
+ 10,
+ "DANIEL SEO",
+ 28,
+ "M",
+ "DECATUR GA",
+ 1640,
+ 4986,
+ 381,
+ 4983
+ ],
+ [
+ 11,
+ "IAN SMITH",
+ 22,
+ "M",
+ "MARIETTA GA",
+ 1707,
+ 5064,
+ 387,
+ 5057
+ ],
+ [
+ 12,
+ "TODD KENNEDY",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 989,
+ 5071,
+ 388,
+ 5065
+ ],
+ [
+ 13,
+ "EVAN GLUECK",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 700,
+ 5142,
+ 393,
+ 5139
+ ],
+ [
+ 14,
+ "JOHN ALSOBROOK",
+ 40,
+ "M",
+ "SUGAR HILL GA",
+ 38,
+ 5158,
+ 394,
+ 5156
+ ],
+ [
+ 15,
+ "JEFF CHAMBRELLO",
+ 51,
+ "M",
+ "MARIETTA GA",
+ 2034,
+ 5168,
+ 395,
+ 5164
+ ],
+ [
+ 16,
+ "TOREY MCCORMICK",
+ 36,
+ "M",
+ "MCDONOUGH GA",
+ 1201,
+ 5177,
+ 396,
+ 5172
+ ],
+ [
+ 17,
+ "MIKE WIEN",
+ 59,
+ "M",
+ "ATLANTA",
+ 2146,
+ 5184,
+ 396,
+ 5181
+ ],
+ [
+ 18,
+ "BRAD SUMNER",
+ 40,
+ "M",
+ "CANTON GA",
+ 1787,
+ 5186,
+ 396,
+ 5182
+ ],
+ [
+ 19,
+ "RAYMOND ROSS",
+ 49,
+ "M",
+ "ROSEWELL GA",
+ 1563,
+ 5222,
+ 399,
+ 5218
+ ],
+ [
+ 20,
+ "ROBERT SCHNITTMAN",
+ 23,
+ "M",
+ "ATLANTA GA",
+ 1614,
+ 5236,
+ 400,
+ 5233
+ ],
+ [
+ 21,
+ "CHAD DANIEL",
+ 32,
+ "M",
+ "PEACHTREE CITY GA",
+ 436,
+ 5245,
+ 401,
+ 5242
+ ],
+ [
+ 22,
+ "KIMBERLY KREMER",
+ 31,
+ "F",
+ "MARIETTA GA",
+ 1025,
+ 5251,
+ 401,
+ 5248
+ ],
+ [
+ 23,
+ "DAVID REHM",
+ 48,
+ "M",
+ "FAYETTEVILLE GA",
+ 1508,
+ 5263,
+ 402,
+ 5260
+ ],
+ [
+ 24,
+ "DIRK REAUME",
+ 53,
+ "M",
+ "GAINESVILLE GA",
+ 1498,
+ 5269,
+ 403,
+ 5264
+ ],
+ [
+ 25,
+ "MARK MCDUFFIE",
+ 40,
+ "M",
+ "BUFORD GA",
+ 1213,
+ 5272,
+ 403,
+ 5264
+ ],
+ [
+ 26,
+ "JOHN KELSCH",
+ 39,
+ "M",
+ "MARIETTA GA",
+ 985,
+ 5281,
+ 404,
+ 5277
+ ],
+ [
+ 27,
+ "NICK WESTBROOK",
+ 30,
+ "M",
+ "MCDONOUGH GA",
+ 1952,
+ 5284,
+ 404,
+ 5279
+ ],
+ [
+ 28,
+ "DANNY WESTHEIMER",
+ 45,
+ "M",
+ "ATLANTA GA",
+ 1953,
+ 5288,
+ 404,
+ 5283
+ ],
+ [
+ 29,
+ "JON CHALLY",
+ 31,
+ "M",
+ "SMYRNA GA",
+ 309,
+ 5300,
+ 405,
+ 5290
+ ],
+ [
+ 30,
+ "JARED LEE",
+ 31,
+ "M",
+ "ATHENS GA",
+ 1079,
+ 5307,
+ 406,
+ 5303
+ ],
+ [
+ 31,
+ "RYAN MCCREADY",
+ 30,
+ "M",
+ "OXFORD MS",
+ 1204,
+ 5314,
+ 406,
+ 5305
+ ],
+ [
+ 32,
+ "GRANT KENDALL",
+ 24,
+ "M",
+ "ATLANTA GA",
+ 987,
+ 5320,
+ 407,
+ 5314
+ ],
+ [
+ 33,
+ "SEAN DAVIS",
+ 39,
+ "M",
+ "MCDONOUGH GA",
+ 455,
+ 5323,
+ 407,
+ 5318
+ ],
+ [
+ 34,
+ "KATE BRUN",
+ 24,
+ "F",
+ "KENNESAW GA",
+ 224,
+ 5325,
+ 407,
+ 5322
+ ],
+ [
+ 35,
+ "NICK SMYTHE",
+ 30,
+ "M",
+ "SMYRNA GA",
+ 1719,
+ 5399,
+ 413,
+ 5395
+ ],
+ [
+ 36,
+ "AMYN SOLDIER",
+ 23,
+ "M",
+ "DULUTH GA",
+ 1723,
+ 5403,
+ 413,
+ 5395
+ ],
+ [
+ 37,
+ "MATT CAMPBELL",
+ 36,
+ "M",
+ "ATLANTA GA",
+ 277,
+ 5404,
+ 413,
+ 5400
+ ],
+ [
+ 38,
+ "DAN SPOHRER",
+ 38,
+ "M",
+ "ALPHARETTA GA",
+ 1740,
+ 5405,
+ 413,
+ 5397
+ ],
+ [
+ 39,
+ "BEN MCLAIN",
+ 35,
+ "M",
+ "CONYERS GA",
+ 1229,
+ 5405,
+ 413,
+ 5401
+ ],
+ [
+ 40,
+ "RAY ALLEN",
+ 39,
+ "M",
+ "ROSWELL GA",
+ 35,
+ 5409,
+ 413,
+ 5395
+ ],
+ [
+ 41,
+ "JACKSON ESODA",
+ 20,
+ "M",
+ "MARIETTA GA",
+ 577,
+ 5413,
+ 414,
+ 5410
+ ],
+ [
+ 42,
+ "LAURA GOLD",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 702,
+ 5427,
+ 415,
+ 5423
+ ],
+ [
+ 43,
+ "TODD KIEFFER",
+ 44,
+ "M",
+ "ATLANTA GA",
+ 994,
+ 5430,
+ 415,
+ 5425
+ ],
+ [
+ 44,
+ "MATT HACKETT",
+ 37,
+ "M",
+ "WOODSTOCK GA",
+ 750,
+ 5433,
+ 415,
+ 5409
+ ],
+ [
+ 45,
+ "DUANE NOVOTNI",
+ 31,
+ "M",
+ "FAIRFAX VA",
+ 1355,
+ 5455,
+ 417,
+ 5451
+ ],
+ [
+ 46,
+ "CLAUDE GAUTHIER",
+ 45,
+ "M",
+ "DECATUR GA",
+ 677,
+ 5475,
+ 418,
+ 5454
+ ],
+ [
+ 47,
+ "WENDELL BREWTON",
+ 34,
+ "M",
+ "DOUGLASVILLE GA",
+ 204,
+ 5483,
+ 419,
+ 5476
+ ],
+ [
+ 48,
+ "ORLANDO DANIELS",
+ 46,
+ "M",
+ "COLLEGE PARK GA",
+ 2038,
+ 5484,
+ 419,
+ 5480
+ ],
+ [
+ 49,
+ "PATRICIA COPPEL",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 862,
+ 5486,
+ 419,
+ 5482
+ ],
+ [
+ 50,
+ "HARRY EVANS",
+ 48,
+ "M",
+ "ATLANTA GA",
+ 585,
+ 5498,
+ 420,
+ 5494
+ ],
+ [
+ 51,
+ "PHILLIP FINLEY",
+ 46,
+ "M",
+ "ATLANTA GA",
+ 601,
+ 5505,
+ 421,
+ 5500
+ ],
+ [
+ 52,
+ "HEIDI SPAETH",
+ 39,
+ "F",
+ "CANTON GA",
+ 1727,
+ 5528,
+ 422,
+ 5524
+ ],
+ [
+ 53,
+ "REHAN HAQUE",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 781,
+ 5535,
+ 423,
+ 5530
+ ],
+ [
+ 54,
+ "MICHEL ODERMATT",
+ 49,
+ "M",
+ "SMYRNA GA",
+ 1364,
+ 5567,
+ 425,
+ 5563
+ ],
+ [
+ 55,
+ "THOMAS PLATT",
+ 26,
+ "M",
+ "ATLANTA GA",
+ 1446,
+ 5577,
+ 426,
+ 5566
+ ],
+ [
+ 56,
+ "RAY DEMELFI",
+ 28,
+ "M",
+ "ATLANTA GA",
+ 474,
+ 5578,
+ 426,
+ 5570
+ ],
+ [
+ 57,
+ "ROBERT TRUCKENMILLER",
+ 35,
+ "M",
+ "ACWORTH GA",
+ 1857,
+ 5579,
+ 426,
+ 5570
+ ],
+ [
+ 58,
+ "MITCHELL BUTLER",
+ 46,
+ "M",
+ "FAYETTEVILLE GA",
+ 256,
+ 5583,
+ 427,
+ 5577
+ ],
+ [
+ 59,
+ "LAURIE WHARTON",
+ 44,
+ "F",
+ "MARIETTA GA",
+ 1955,
+ 5585,
+ 427,
+ 5582
+ ],
+ [
+ 60,
+ "ERIC LAMPHIER",
+ 36,
+ "M",
+ "MABLETON GA",
+ 1052,
+ 5590,
+ 427,
+ 5585
+ ],
+ [
+ 61,
+ "JACOB BARTON",
+ 32,
+ "M",
+ "COLUMBUS GA",
+ 116,
+ 5595,
+ 428,
+ 5591
+ ],
+ [
+ 62,
+ "HUMBERTO BENEDETTO",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 140,
+ 5595,
+ 428,
+ 5591
+ ],
+ [
+ 63,
+ "MICHAEL WYSONG",
+ 48,
+ "M",
+ "ALPHARETTA GA",
+ 2013,
+ 5598,
+ 428,
+ 5593
+ ],
+ [
+ 64,
+ "JEFF BREWER",
+ 42,
+ "M",
+ "POWDER SPRINGS GA",
+ 203,
+ 5599,
+ 428,
+ -1
+ ],
+ [
+ 65,
+ "TAD SCEPANIAK",
+ 36,
+ "M",
+ "WOODSTOCK GA",
+ 1601,
+ 5603,
+ 428,
+ 5597
+ ],
+ [
+ 66,
+ "CHRIS KOJALI",
+ 42,
+ "M",
+ "FAYETTEVILLE GA",
+ 1016,
+ 5603,
+ 428,
+ 5596
+ ],
+ [
+ 67,
+ "DANIEL DELAMATER",
+ 38,
+ "M",
+ "ATHENS GA",
+ 469,
+ 5605,
+ 428,
+ 5602
+ ],
+ [
+ 68,
+ "NAVEEN RAMACHANDRAPPA",
+ 28,
+ "M",
+ "ATLANTA GA",
+ 1489,
+ 5610,
+ 429,
+ 5603
+ ],
+ [
+ 69,
+ "GREG MORRIS",
+ 36,
+ "M",
+ "BUFORD GA",
+ 1315,
+ 5620,
+ 429,
+ 5612
+ ],
+ [
+ 70,
+ "BRIAN FRANK",
+ 42,
+ "M",
+ "ATLANTA GA",
+ 630,
+ 5621,
+ 430,
+ 5617
+ ],
+ [
+ 71,
+ "JIM PARKER",
+ 51,
+ "M",
+ "CUMMING GA",
+ 1393,
+ 5623,
+ 430,
+ 5616
+ ],
+ [
+ 72,
+ "DIRK MAISEL",
+ 41,
+ "M",
+ "CUMMING GA",
+ 1155,
+ 5623,
+ 430,
+ 5613
+ ],
+ [
+ 73,
+ "RON TEED",
+ 41,
+ "M",
+ "ATLANTA GA",
+ 1814,
+ 5624,
+ 430,
+ 5617
+ ],
+ [
+ 74,
+ "DEAN SHAW",
+ 45,
+ "M",
+ "KENNESAW GA",
+ 1658,
+ 5626,
+ 430,
+ 5623
+ ],
+ [
+ 75,
+ "JOSHUA STEPHENS",
+ 21,
+ "M",
+ "MARIETTA GA",
+ 1762,
+ 5628,
+ 430,
+ 5625
+ ],
+ [
+ 76,
+ "MICHAEL FIELDER",
+ 33,
+ "M",
+ "SMYRNA GA",
+ 598,
+ 5631,
+ 430,
+ 5620
+ ],
+ [
+ 77,
+ "BRIAN KAUFMANN",
+ 50,
+ "M",
+ "MARIETTA GA",
+ 972,
+ 5635,
+ 431,
+ 5622
+ ],
+ [
+ 78,
+ "TONY DICKS",
+ 36,
+ "M",
+ "WOODSTOCK GA",
+ 489,
+ 5673,
+ 434,
+ 5665
+ ],
+ [
+ 79,
+ "JUSTIN BAKER",
+ 37,
+ "M",
+ "ATLANTA GA",
+ 82,
+ 5680,
+ 434,
+ 5675
+ ],
+ [
+ 80,
+ "TAMMI KOLE",
+ 37,
+ "F",
+ "JOHNS CREEK GA",
+ 1019,
+ 5683,
+ 434,
+ 5678
+ ],
+ [
+ 81,
+ "MIKE ERNSTES",
+ 52,
+ "M",
+ "MARIETTA GA",
+ 575,
+ 5704,
+ 436,
+ 5698
+ ],
+ [
+ 82,
+ "DENNIS SITZMANN",
+ 44,
+ "M",
+ "MADISON GA",
+ 1691,
+ 5708,
+ 436,
+ 5701
+ ],
+ [
+ 83,
+ "ANDREW SHANNON",
+ 23,
+ "M",
+ "ATLANTA GA",
+ 1651,
+ 5709,
+ 436,
+ 5704
+ ],
+ [
+ 84,
+ "MATTHEW PORTER",
+ 30,
+ "M",
+ "ATLANTA GA",
+ 1458,
+ 5716,
+ 437,
+ 5681
+ ],
+ [
+ 85,
+ "AARON DELAIGLE",
+ 24,
+ "M",
+ "OAKWOOD GA",
+ 467,
+ 5718,
+ 437,
+ 5712
+ ],
+ [
+ 86,
+ "GRIFFEN ELLINGTON",
+ 39,
+ "M",
+ "CLARKSTON GA",
+ 563,
+ 5726,
+ 438,
+ 5722
+ ],
+ [
+ 87,
+ "DEREK SCHILS",
+ 41,
+ "M",
+ "DALLAS GA",
+ 1604,
+ 5727,
+ 438,
+ 5713
+ ],
+ [
+ 88,
+ "YVONNE BEDELL",
+ 33,
+ "F",
+ "DUNWOODY GA",
+ 136,
+ 5729,
+ 438,
+ 5721
+ ],
+ [
+ 89,
+ "TIM WRIGHT",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 2009,
+ 5735,
+ 438,
+ 5729
+ ],
+ [
+ 90,
+ "JASON HUYCK",
+ 35,
+ "M",
+ "CANTON GA",
+ 898,
+ 5738,
+ 438,
+ 5729
+ ],
+ [
+ 91,
+ "BYRNE LAMB",
+ 42,
+ "M",
+ "ALPHARETTA GA",
+ 1050,
+ 5748,
+ 439,
+ 5692
+ ],
+ [
+ 92,
+ "JOHN VOLTZ",
+ 38,
+ "M",
+ "LOGANVILLE GA",
+ 1894,
+ 5751,
+ 439,
+ 5745
+ ],
+ [
+ 93,
+ "WES DUKE",
+ 43,
+ "M",
+ "ROSWELL GA",
+ 529,
+ 5755,
+ 440,
+ 5751
+ ],
+ [
+ 94,
+ "MATTHEW THIBAULT",
+ 22,
+ "M",
+ "SAVAGE MN",
+ 1819,
+ 5759,
+ 440,
+ 5751
+ ],
+ [
+ 95,
+ "SANDRA RIGGIN",
+ 49,
+ "F",
+ "SAUTEE GA",
+ 1529,
+ 5761,
+ 440,
+ 5759
+ ],
+ [
+ 96,
+ "KEN ALMON",
+ 49,
+ "M",
+ "NORCROSS GA",
+ 36,
+ 5777,
+ 441,
+ 5773
+ ],
+ [
+ 97,
+ "DAN MCCORMICK",
+ 51,
+ "M",
+ "MARIETTA GA",
+ 1200,
+ 5796,
+ 443,
+ 5788
+ ],
+ [
+ 98,
+ "RYAN LEWIS",
+ 34,
+ "M",
+ "NEW FAIRFIELD CT",
+ 1094,
+ 5803,
+ 443,
+ 5796
+ ],
+ [
+ 99,
+ "JASON TURNAGE",
+ 34,
+ "M",
+ "CANTON GA",
+ 1868,
+ 5805,
+ 444,
+ 5778
+ ],
+ [
+ 100,
+ "KATIE HEINTZELMAN",
+ 37,
+ "F",
+ "MARIETTA GA",
+ 825,
+ 5806,
+ 444,
+ 5798
+ ],
+ [
+ 101,
+ "TOM BRYSON",
+ 49,
+ "M",
+ "LAWRENCEVILLE GA",
+ 231,
+ 5809,
+ 444,
+ 5790
+ ],
+ [
+ 102,
+ "TARA SARGENT",
+ 42,
+ "F",
+ "DALLAS GA",
+ 1595,
+ 5812,
+ 444,
+ 5805
+ ],
+ [
+ 103,
+ "CHRIS RECKNOR",
+ 45,
+ "M",
+ "GAINESVILLE GA",
+ 1500,
+ 5816,
+ 444,
+ 5810
+ ],
+ [
+ 104,
+ "MICHAEL TAYLOR HENDRIXSON",
+ 18,
+ "M",
+ "MARIETTA GA",
+ 828,
+ 5818,
+ 445,
+ 5780
+ ],
+ [
+ 105,
+ "HEATH WOLFE",
+ 31,
+ "M",
+ "MARIETTA GA",
+ 1993,
+ 5820,
+ 445,
+ 5811
+ ],
+ [
+ 106,
+ "MARC DAHLQUIST",
+ 28,
+ "M",
+ "CUMMING GA",
+ 429,
+ 5831,
+ 446,
+ 5818
+ ],
+ [
+ 107,
+ "MIKE HENDRIXSON",
+ 47,
+ "M",
+ "MARIETTA GA",
+ 829,
+ 5845,
+ 447,
+ 5807
+ ],
+ [
+ 108,
+ "PAUL SHINGLER",
+ 36,
+ "M",
+ "ATLANTA GA",
+ 1670,
+ 5847,
+ 447,
+ 5841
+ ],
+ [
+ 109,
+ "MARIUS HECHTER",
+ 44,
+ "M",
+ "ATLANTA GA",
+ 823,
+ 5850,
+ 447,
+ -1
+ ],
+ [
+ 110,
+ "MELANIE COX",
+ 40,
+ "F",
+ "KNOXVILLE TN",
+ 398,
+ 5855,
+ 447,
+ 5849
+ ],
+ [
+ 111,
+ "LINDSEY AMERSON",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 46,
+ 5874,
+ 449,
+ 5863
+ ],
+ [
+ 112,
+ "JAMES MOON",
+ 44,
+ "M",
+ "ROSWELL GA",
+ 1300,
+ 5876,
+ 449,
+ 5865
+ ],
+ [
+ 113,
+ "ASHLEY KEETON",
+ 33,
+ "F",
+ "SUWANEE GA",
+ 979,
+ 5880,
+ 449,
+ 5875
+ ],
+ [
+ 114,
+ "JASON PALMER",
+ 25,
+ "M",
+ "ATLANTA GA",
+ 1389,
+ 5882,
+ 449,
+ 5877
+ ],
+ [
+ 115,
+ "JEFF DROBNEY",
+ 44,
+ "M",
+ "ACWORTH GA",
+ 524,
+ 5898,
+ 451,
+ 5885
+ ],
+ [
+ 116,
+ "MICHAEL BABCOCK",
+ 37,
+ "M",
+ "DECATUR GA",
+ 75,
+ 5899,
+ 451,
+ 5889
+ ],
+ [
+ 117,
+ "DAWN HULTSTROM",
+ 43,
+ "F",
+ "WOODSTOCK GA",
+ 883,
+ 5904,
+ 451,
+ 5899
+ ],
+ [
+ 118,
+ "AMY MAYER",
+ 37,
+ "F",
+ "DECATUR GA",
+ 1190,
+ 5904,
+ 451,
+ 5895
+ ],
+ [
+ 119,
+ "JAMES BYRNES",
+ 54,
+ "M",
+ "HOSCHTON GA",
+ 265,
+ 5917,
+ 452,
+ 5911
+ ],
+ [
+ 120,
+ "JAMES STANLEY",
+ 43,
+ "M",
+ "ACWORTH GA",
+ 1752,
+ 5919,
+ 452,
+ 5907
+ ],
+ [
+ 121,
+ "FRED SOLLER",
+ 36,
+ "M",
+ "ALPHARETTA GA",
+ 2029,
+ 5920,
+ 452,
+ 5912
+ ],
+ [
+ 122,
+ "KEVIN O'SULLIVAN",
+ 42,
+ "M",
+ "ATLANTA GA",
+ 1360,
+ 5921,
+ 452,
+ 5914
+ ],
+ [
+ 123,
+ "ASHLEY JOHNSON",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 939,
+ 5921,
+ 452,
+ 5912
+ ],
+ [
+ 124,
+ "STEVEN PHELPS",
+ 35,
+ "M",
+ "MARIETTA GA",
+ 1429,
+ 5936,
+ 454,
+ 5928
+ ],
+ [
+ 125,
+ "SAMANTHA HACKETT",
+ 34,
+ "F",
+ "WOODSTOCK GA",
+ 751,
+ 5940,
+ 454,
+ 5926
+ ],
+ [
+ 126,
+ "TIM GILLMAN",
+ 53,
+ "M",
+ "ROSWELL GA",
+ 695,
+ 5940,
+ 454,
+ 5932
+ ],
+ [
+ 127,
+ "BRIAN WARREN",
+ 34,
+ "M",
+ "MARIETTA GA",
+ 1923,
+ 5945,
+ 454,
+ 5934
+ ],
+ [
+ 128,
+ "STEVE GLEICHWEIT",
+ 41,
+ "M",
+ "MARIETTA GA",
+ 698,
+ 5957,
+ 455,
+ 5950
+ ],
+ [
+ 129,
+ "SEAN FRICK",
+ 34,
+ "M",
+ "PEACHTREE CITY GA",
+ 643,
+ 5958,
+ 455,
+ 5927
+ ],
+ [
+ 130,
+ "TOM LOACH",
+ 44,
+ "M",
+ "NORCROSS GA",
+ 1112,
+ 5972,
+ 456,
+ 5961
+ ],
+ [
+ 131,
+ "KRISTA OSBORNE",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 1377,
+ 5982,
+ 457,
+ 5972
+ ],
+ [
+ 132,
+ "CASEY KEETER",
+ 34,
+ "F",
+ "MARIETTA GA",
+ 978,
+ 5983,
+ 457,
+ 5980
+ ],
+ [
+ 133,
+ "DAVID HOGAN",
+ 39,
+ "M",
+ "CUMMING GA",
+ 850,
+ 5987,
+ 457,
+ 5976
+ ],
+ [
+ 134,
+ "PAUL TAYLOR",
+ 52,
+ "M",
+ "ATLANTA GA",
+ 1811,
+ 5989,
+ 458,
+ 5972
+ ],
+ [
+ 135,
+ "BOBBY SMITH",
+ 57,
+ "M",
+ "SOUTH PITTSBURG TN",
+ 1702,
+ 5992,
+ 458,
+ 5988
+ ],
+ [
+ 136,
+ "JORDAN EISON",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 562,
+ 5996,
+ 458,
+ 5993
+ ],
+ [
+ 137,
+ "R BEAVER",
+ 30,
+ "M",
+ "ATLANTA GA",
+ 134,
+ 5998,
+ 458,
+ 5984
+ ],
+ [
+ 138,
+ "BETH MCCURDY",
+ 41,
+ "F",
+ "DACULA GA",
+ 1206,
+ 6005,
+ 459,
+ 5996
+ ],
+ [
+ 139,
+ "BARRY SNYDER",
+ 39,
+ "M",
+ "TUCKER GA",
+ 1721,
+ 6015,
+ 460,
+ 6008
+ ],
+ [
+ 140,
+ "ENRIQUE (RICK) ALVAREZ",
+ 39,
+ "M",
+ "CHAMBLEE GA",
+ 42,
+ 6019,
+ 460,
+ 6005
+ ],
+ [
+ 141,
+ "ANTHONY HARVEY",
+ 40,
+ "M",
+ "ALPHARETTA GA",
+ 805,
+ 6022,
+ 460,
+ 6010
+ ],
+ [
+ 142,
+ "STEPHEN JANIS",
+ 41,
+ "M",
+ "DUNWOODY GA",
+ 920,
+ 6032,
+ 461,
+ 6026
+ ],
+ [
+ 143,
+ "MARK SINGLETARY",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 1690,
+ 6037,
+ 461,
+ 6030
+ ],
+ [
+ 144,
+ "RUSSELL DALBA",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 431,
+ 6040,
+ 462,
+ 6031
+ ],
+ [
+ 145,
+ "KEELAN DIEHL",
+ 26,
+ "M",
+ "ATLANTA GA",
+ 490,
+ 6043,
+ 462,
+ 6008
+ ],
+ [
+ 146,
+ "CHAD ADAMS",
+ 39,
+ "M",
+ "DECATUR GA",
+ 8,
+ 6046,
+ 462,
+ 6034
+ ],
+ [
+ 147,
+ "SARAH HALBACH",
+ 33,
+ "F",
+ "MABLETON GA",
+ 756,
+ 6051,
+ 462,
+ 6038
+ ],
+ [
+ 148,
+ "STEPHEN COCKERHAM",
+ 49,
+ "M",
+ "BLAIRSVILLE GA",
+ 351,
+ 6056,
+ 463,
+ 6048
+ ],
+ [
+ 149,
+ "MARK WIMAN",
+ 53,
+ "M",
+ "ACWORTH GA",
+ 1986,
+ 6056,
+ 463,
+ 6038
+ ],
+ [
+ 150,
+ "CURTISS SAMUEL",
+ 49,
+ "M",
+ "MARIETTA GA",
+ 1587,
+ 6056,
+ 463,
+ 6050
+ ],
+ [
+ 151,
+ "PAUL LIPSEY",
+ 51,
+ "M",
+ "NEWNAN GA",
+ 1107,
+ 6057,
+ 463,
+ 6045
+ ],
+ [
+ 152,
+ "JILL LOACH",
+ 45,
+ "F",
+ "NORCROSS GA",
+ 1111,
+ 6064,
+ 463,
+ 6054
+ ],
+ [
+ 153,
+ "ROBERT OCHS",
+ 34,
+ "M",
+ "DACULA GA",
+ 1362,
+ 6068,
+ 464,
+ 6053
+ ],
+ [
+ 154,
+ "JIM WALTERS",
+ 39,
+ "M",
+ "MABLETON GA",
+ 1910,
+ 6071,
+ 464,
+ 6064
+ ],
+ [
+ 155,
+ "BOB DEBUSK",
+ 25,
+ "M",
+ "CARTERSVILLE GA",
+ 465,
+ 6072,
+ 464,
+ 6055
+ ],
+ [
+ 156,
+ "BARRY MEREDITH JR",
+ 43,
+ "M",
+ "ATLANTA GA",
+ 1256,
+ 6073,
+ 464,
+ 6057
+ ],
+ [
+ 157,
+ "BUDDY RABIN",
+ 58,
+ "M",
+ "MARIETTA GA",
+ 1479,
+ 6078,
+ 464,
+ 6066
+ ],
+ [
+ 158,
+ "BRIAN GRAY",
+ 44,
+ "M",
+ "NORCROSS GA",
+ 722,
+ 6085,
+ 465,
+ 6070
+ ],
+ [
+ 159,
+ "RACHELLE KURAMOTO",
+ 36,
+ "F",
+ "NORCROSS GA",
+ 1041,
+ 6086,
+ 465,
+ 6069
+ ],
+ [
+ 160,
+ "VINCE BARTGES",
+ 29,
+ "M",
+ "ATLANTA GA",
+ 113,
+ 6095,
+ 466,
+ 6071
+ ],
+ [
+ 161,
+ "CHUCK CARVER",
+ 50,
+ "M",
+ "ATLANTA GA",
+ 293,
+ 6095,
+ 466,
+ 6079
+ ],
+ [
+ 162,
+ "BRANDON KUNZ",
+ 39,
+ "M",
+ "CUMMING GA",
+ 1040,
+ 6097,
+ 466,
+ 6086
+ ],
+ [
+ 163,
+ "BILL JONES",
+ 52,
+ "M",
+ "ATLANTA GA",
+ 953,
+ 6097,
+ 466,
+ 6085
+ ],
+ [
+ 164,
+ "RANDY LESTER",
+ 99,
+ "M",
+ "ACWORTH GA",
+ 1086,
+ 6098,
+ 466,
+ 6075
+ ],
+ [
+ 165,
+ "ELIZABETH BROWN",
+ 45,
+ "F",
+ "DUNWOODY GA",
+ 217,
+ 6099,
+ 466,
+ 6096
+ ],
+ [
+ 166,
+ "LARRY GORDON",
+ 58,
+ "M",
+ "DUNWOODY GA",
+ 711,
+ 6101,
+ 466,
+ 6095
+ ],
+ [
+ 167,
+ "PAULA MUSONE",
+ 37,
+ "F",
+ "HOSCHTON GA",
+ 1327,
+ 6110,
+ 467,
+ 6102
+ ],
+ [
+ 168,
+ "MARY HOWIE",
+ 40,
+ "F",
+ "DUNWOODY GA",
+ 876,
+ 6114,
+ 467,
+ 6110
+ ],
+ [
+ 169,
+ "MOLLY HART",
+ 36,
+ "F",
+ "ALPHARETTA GA",
+ 800,
+ 6118,
+ 467,
+ 6107
+ ],
+ [
+ 170,
+ "RONALD BYRNE",
+ 40,
+ "M",
+ "CUMMING GA",
+ 264,
+ 6126,
+ 468,
+ 6115
+ ],
+ [
+ 171,
+ "BARRETT MERRILL",
+ 16,
+ "M",
+ "ATLANTA GA",
+ 1259,
+ 6127,
+ 468,
+ 6115
+ ],
+ [
+ 172,
+ "JOE MCCOY",
+ 29,
+ "M",
+ "SMYRNA GA",
+ 1202,
+ 6132,
+ 469,
+ 6123
+ ],
+ [
+ 173,
+ "SCOTT BOWMAN",
+ 43,
+ "M",
+ "ACWORTH GA",
+ 184,
+ 6137,
+ 469,
+ 6129
+ ],
+ [
+ 174,
+ "CHARLIE PEEBLES",
+ 41,
+ "M",
+ "ALPHARETTA GA",
+ 1411,
+ 6138,
+ 469,
+ 6126
+ ],
+ [
+ 175,
+ "WILLIAM FLETCHER",
+ 31,
+ "M",
+ "SMYRNA GA",
+ 613,
+ 6138,
+ 469,
+ 6103
+ ],
+ [
+ 176,
+ "KIMARI WILSON",
+ 34,
+ "F",
+ "MABLETON GA",
+ 1979,
+ 6140,
+ 469,
+ 6128
+ ],
+ [
+ 177,
+ "CHAD AKINS",
+ 40,
+ "M",
+ "CUMMING GA",
+ 21,
+ 6160,
+ 471,
+ 6144
+ ],
+ [
+ 178,
+ "JENNY HOULROYD",
+ 29,
+ "F",
+ "MAREITTA GA",
+ 869,
+ 6163,
+ 471,
+ 6153
+ ],
+ [
+ 179,
+ "MARK BLITZ",
+ 49,
+ "M",
+ "CLEARWATER FL",
+ 160,
+ 6166,
+ 471,
+ 6157
+ ],
+ [
+ 180,
+ "KYLE PHILLIPPI",
+ 35,
+ "M",
+ "ROSWELL GA",
+ 1432,
+ 6167,
+ 471,
+ 6153
+ ],
+ [
+ 181,
+ "ZACK NORDEN",
+ 19,
+ "M",
+ "ACWORTH GA",
+ 1351,
+ 6167,
+ 471,
+ 6163
+ ],
+ [
+ 182,
+ "TRENT LLOYD",
+ 24,
+ "M",
+ "DECATUR GA",
+ 1110,
+ 6169,
+ 471,
+ 6159
+ ],
+ [
+ 183,
+ "ANDREW DROTLEFF",
+ 48,
+ "M",
+ "ROSWELL GA",
+ 525,
+ 6169,
+ 471,
+ 6149
+ ],
+ [
+ 184,
+ "JIMMY DALTON",
+ 52,
+ "M",
+ "ATLANTA GA",
+ 433,
+ 6175,
+ 472,
+ 6165
+ ],
+ [
+ 185,
+ "ERIK DOWDEN",
+ 31,
+ "M",
+ "DECATUR GA",
+ 513,
+ 6184,
+ 472,
+ 6158
+ ],
+ [
+ 186,
+ "JOHN STACK",
+ 31,
+ "M",
+ "MACON GA",
+ 1746,
+ 6195,
+ 473,
+ 6189
+ ],
+ [
+ 187,
+ "JONATHAN MACDONALD",
+ 35,
+ "M",
+ "CUMMING GA",
+ 1142,
+ 6198,
+ 474,
+ 6178
+ ],
+ [
+ 188,
+ "KENNETH KONDRITZER",
+ 59,
+ "M",
+ "ATLANTA GA",
+ 1020,
+ 6201,
+ 474,
+ 6198
+ ],
+ [
+ 189,
+ "KAREN LUI",
+ 55,
+ "F",
+ "GAINESVILLE GA",
+ 1134,
+ 6204,
+ 474,
+ 6196
+ ],
+ [
+ 190,
+ "DAVID FOURNIER",
+ 38,
+ "M",
+ "ATLANTA GA",
+ 628,
+ 6204,
+ 474,
+ 6197
+ ],
+ [
+ 191,
+ "BJ MANN",
+ 37,
+ "M",
+ "ROSWELL GA",
+ 1165,
+ 6206,
+ 474,
+ 6186
+ ],
+ [
+ 192,
+ "KEENAN SHARPE",
+ 42,
+ "M",
+ "ALPHARETTA GA",
+ 1653,
+ 6221,
+ 475,
+ 6216
+ ],
+ [
+ 193,
+ "KENNETH TURNER",
+ 42,
+ "M",
+ "POWDER SPRINGS GA",
+ 1871,
+ 6226,
+ 476,
+ 6216
+ ],
+ [
+ 194,
+ "JASON WHITING",
+ 30,
+ "M",
+ "ATHENS GA",
+ 1962,
+ 6228,
+ 476,
+ 6221
+ ],
+ [
+ 195,
+ "ROBERT ANTHONY",
+ 46,
+ "M",
+ "SMYRNA GA",
+ 59,
+ 6232,
+ 476,
+ 6216
+ ],
+ [
+ 196,
+ "CHRISTIAN GRIFFITH",
+ 40,
+ "M",
+ "NORCROSS GA",
+ 740,
+ 6232,
+ 476,
+ 6205
+ ],
+ [
+ 197,
+ "DOROTHY LINDSEY",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 1103,
+ 6233,
+ 476,
+ 6225
+ ],
+ [
+ 198,
+ "DAVID JONES",
+ 55,
+ "M",
+ "ATLANTA GA",
+ 956,
+ 6237,
+ 477,
+ 6231
+ ],
+ [
+ 199,
+ "RACHEL WHITING",
+ 30,
+ "F",
+ "ATHENS GA",
+ 1963,
+ 6239,
+ 477,
+ 6233
+ ],
+ [
+ 200,
+ "MORRIS ESTES",
+ 44,
+ "M",
+ "ALPHARETTA GA",
+ 581,
+ 6243,
+ 477,
+ 6233
+ ],
+ [
+ 201,
+ "STEVE ALTER",
+ 43,
+ "M",
+ "MARIETTA GA",
+ 41,
+ 6244,
+ 477,
+ 6238
+ ],
+ [
+ 202,
+ "ERIK MOORE",
+ 43,
+ "M",
+ "ROSWELL GA",
+ 1302,
+ 6246,
+ 477,
+ 6233
+ ],
+ [
+ 203,
+ "JONATHAN RUBIN",
+ 24,
+ "M",
+ "ATLANTA GA",
+ 1574,
+ 6247,
+ 477,
+ 6222
+ ],
+ [
+ 204,
+ "RAE ANN MCCLAIN",
+ 39,
+ "F",
+ "KENNESAW GA",
+ 1198,
+ 6250,
+ 478,
+ 6235
+ ],
+ [
+ 205,
+ "ERIC TUCKER",
+ 38,
+ "M",
+ "MENLO GA",
+ 1861,
+ 6251,
+ 478,
+ 6239
+ ],
+ [
+ 206,
+ "MATTHEW WHEATLEY",
+ 33,
+ "M",
+ "DECATUR GA",
+ 1957,
+ 6251,
+ 478,
+ 6218
+ ],
+ [
+ 207,
+ "CLAY MERSMANN",
+ 19,
+ "M",
+ "SNELLVILLE GA",
+ 1265,
+ 6253,
+ 478,
+ 6231
+ ],
+ [
+ 208,
+ "KELLY LEFEVERE",
+ 23,
+ "F",
+ "ATLANTA OR",
+ 1081,
+ 6255,
+ 478,
+ 6239
+ ],
+ [
+ 209,
+ "RITCHE CARNEY",
+ 55,
+ "M",
+ "ROSWELL GA",
+ 287,
+ 6259,
+ 478,
+ 6251
+ ],
+ [
+ 210,
+ "CHRIS EHLERS",
+ 39,
+ "M",
+ "MABLETON GA",
+ 560,
+ 6263,
+ 479,
+ 6248
+ ],
+ [
+ 211,
+ "BRIAN SIMMONS",
+ 38,
+ "M",
+ "DALLAS GA",
+ 1681,
+ 6265,
+ 479,
+ 6251
+ ],
+ [
+ 212,
+ "TIMOTHY MERSMANN",
+ 49,
+ "M",
+ "SNELLVILLE GA",
+ 1266,
+ 6265,
+ 479,
+ 6243
+ ],
+ [
+ 213,
+ "JIM UNDERWOOD",
+ 52,
+ "M",
+ "MARIETTA GA",
+ 1873,
+ 6266,
+ 479,
+ 6240
+ ],
+ [
+ 214,
+ "MIKE MCHALE",
+ 43,
+ "M",
+ "SMYRNA GA",
+ 1222,
+ 6267,
+ 479,
+ 6262
+ ],
+ [
+ 215,
+ "NICOLE BENCOMO",
+ 26,
+ "F",
+ "HIRAM GA",
+ 139,
+ 6268,
+ 479,
+ 6256
+ ],
+ [
+ 216,
+ "KELLI MITTRUCKER",
+ 36,
+ "F",
+ "WOODSTOCK GA",
+ 1294,
+ 6270,
+ 479,
+ 6259
+ ],
+ [
+ 217,
+ "SHAWN HARDISTER",
+ 46,
+ "M",
+ "ATLANTA GA",
+ 784,
+ 6277,
+ 480,
+ 6265
+ ],
+ [
+ 218,
+ "KEVIN WEST",
+ 42,
+ "M",
+ "NORCROSS GA",
+ 1951,
+ 6279,
+ 480,
+ 6264
+ ],
+ [
+ 219,
+ "STEPHANIE HAIGLER",
+ 34,
+ "F",
+ "KANNAPOLIS NC",
+ 755,
+ 6280,
+ 480,
+ 6266
+ ],
+ [
+ 220,
+ "DONALD KNAPP",
+ 40,
+ "M",
+ "ALPHARETTA GA",
+ 1013,
+ 6280,
+ 480,
+ 6271
+ ],
+ [
+ 221,
+ "VERNON SERMONS",
+ 54,
+ "M",
+ "MABLETON GA",
+ 1642,
+ 6281,
+ 480,
+ 6265
+ ],
+ [
+ 222,
+ "JEFF BALLARD",
+ 37,
+ "M",
+ "POWDER SPRINGS GA",
+ 87,
+ 6282,
+ 480,
+ 6270
+ ],
+ [
+ 223,
+ "EZRA OWEN",
+ 34,
+ "M",
+ "KENNESAW GA",
+ 1380,
+ 6283,
+ 480,
+ 6268
+ ],
+ [
+ 224,
+ "VERONICA ESTRADA",
+ 32,
+ "F",
+ "MARIETTA GA",
+ 582,
+ 6286,
+ 480,
+ 6278
+ ],
+ [
+ 225,
+ "JULIE RECKNOR",
+ 47,
+ "F",
+ "GAINESVILLE GA",
+ 1501,
+ 6287,
+ 480,
+ 6281
+ ],
+ [
+ 226,
+ "DAVID BROWN",
+ 52,
+ "M",
+ "POWDER SPRINGS GA",
+ 216,
+ 6288,
+ 480,
+ 6284
+ ],
+ [
+ 227,
+ "ARTHUR LYNN",
+ 46,
+ "M",
+ "ATLANTA GA",
+ 1139,
+ 6291,
+ 481,
+ 6277
+ ],
+ [
+ 228,
+ "WINDY LOO",
+ 36,
+ "F",
+ "LAWRENCEVILLE GA",
+ 1123,
+ 6296,
+ 481,
+ 6268
+ ],
+ [
+ 229,
+ "SERGIO TORRES",
+ 42,
+ "M",
+ "MARIETTA GA",
+ 1849,
+ 6298,
+ 481,
+ 6286
+ ],
+ [
+ 230,
+ "TAMARA DANIEL",
+ 32,
+ "F",
+ "PEACHTREE CITY GA",
+ 438,
+ 6304,
+ 482,
+ 6296
+ ],
+ [
+ 231,
+ "WALTER AUSTIN",
+ 39,
+ "M",
+ "MARIETTA GA",
+ 2033,
+ 6304,
+ 482,
+ 6286
+ ],
+ [
+ 232,
+ "MIKE DYER",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 538,
+ 6308,
+ 482,
+ 6292
+ ],
+ [
+ 233,
+ "DALE VANHOOSER",
+ 52,
+ "M",
+ "DULUTH GA",
+ 1884,
+ 6311,
+ 482,
+ 6284
+ ],
+ [
+ 234,
+ "BRENT WYPER",
+ 41,
+ "M",
+ "ATLANTA GA",
+ 2012,
+ 6318,
+ 483,
+ 6301
+ ],
+ [
+ 235,
+ "PETER ROBERTS",
+ 44,
+ "M",
+ "ATLANTA GA",
+ 1541,
+ 6319,
+ 483,
+ 6187
+ ],
+ [
+ 236,
+ "MIKE CHALLMAN",
+ 48,
+ "M",
+ "FAYETTEVILLE GA",
+ 307,
+ 6321,
+ 483,
+ 6309
+ ],
+ [
+ 237,
+ "WILLIAM KING",
+ 41,
+ "M",
+ "ATLANTA GA",
+ 1003,
+ 6325,
+ 483,
+ 6320
+ ],
+ [
+ 238,
+ "JENNIFER ROWAN",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 240,
+ 6328,
+ 484,
+ 6318
+ ],
+ [
+ 239,
+ "JILLIAN BURNS",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 250,
+ 6329,
+ 484,
+ 6319
+ ],
+ [
+ 240,
+ "BRIAN LUCKETT",
+ 45,
+ "M",
+ "ATLANTA GA",
+ 1130,
+ 6330,
+ 484,
+ 6319
+ ],
+ [
+ 241,
+ "TODD MITCHELL",
+ 47,
+ "M",
+ "VANCOUVER BC",
+ 1293,
+ 6333,
+ 484,
+ 6324
+ ],
+ [
+ 242,
+ "DAVID NEUJAHR",
+ 37,
+ "M",
+ "ATLANTA GA",
+ 1341,
+ 6333,
+ 484,
+ 6324
+ ],
+ [
+ 243,
+ "JAMES SALZER",
+ 50,
+ "M",
+ "DECATUR GA",
+ 1584,
+ 6338,
+ 484,
+ 6328
+ ],
+ [
+ 244,
+ "AMY COBB",
+ 35,
+ "F",
+ "ATLANTA GA",
+ 346,
+ 6341,
+ 484,
+ 6335
+ ],
+ [
+ 245,
+ "RANDY STANFORD",
+ 42,
+ "M",
+ "MCDONOUGH GA",
+ 1751,
+ 6343,
+ 485,
+ 6332
+ ],
+ [
+ 246,
+ "DALE WESSON",
+ 35,
+ "M",
+ "NEWNAN GA",
+ 1950,
+ 6343,
+ 485,
+ 6326
+ ],
+ [
+ 247,
+ "LAWRENCE LAMMERS",
+ 47,
+ "M",
+ "DACULA GA",
+ 1051,
+ 6352,
+ 485,
+ 6335
+ ],
+ [
+ 248,
+ "FRANK DEMELFI, JR.",
+ 31,
+ "M",
+ "WOODSTOCK GA",
+ 2022,
+ 6362,
+ 486,
+ 6354
+ ],
+ [
+ 249,
+ "VICTOR HALL",
+ 38,
+ "M",
+ "ATLANTA GA",
+ 766,
+ 6370,
+ 487,
+ 6316
+ ],
+ [
+ 250,
+ "ANDY SMITH",
+ 32,
+ "M",
+ "ACWORTH GA",
+ 1700,
+ 6370,
+ 487,
+ 6366
+ ],
+ [
+ 251,
+ "KATIE SCANLON",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 1600,
+ 6372,
+ 487,
+ 6365
+ ],
+ [
+ 252,
+ "AMY BARKER",
+ 36,
+ "F",
+ "MABLETON GA",
+ 100,
+ 6373,
+ 487,
+ -1
+ ],
+ [
+ 253,
+ "JOHN MCRAE",
+ 32,
+ "M",
+ "ALPHARETTA GA",
+ 1244,
+ 6373,
+ 487,
+ 6291
+ ],
+ [
+ 254,
+ "TOM KELLY",
+ 52,
+ "M",
+ "LAWRENCEVILLE GA",
+ 984,
+ 6375,
+ 487,
+ 6365
+ ],
+ [
+ 255,
+ "BILL BOYNES",
+ 43,
+ "M",
+ "ATLANTA GA",
+ 187,
+ 6376,
+ 487,
+ 6263
+ ],
+ [
+ 256,
+ "JONATHAN MERRILL",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 1261,
+ 6379,
+ 487,
+ 6367
+ ],
+ [
+ 257,
+ "JOHN KAYAL",
+ 42,
+ "M",
+ "MARIETTA GA",
+ 973,
+ 6379,
+ 487,
+ 6319
+ ],
+ [
+ 258,
+ "MATTHEW ANDERSON",
+ 25,
+ "M",
+ "POWDER SPRINGS GA",
+ 53,
+ 6380,
+ 487,
+ 6366
+ ],
+ [
+ 259,
+ "RICHARD HAMBRICK",
+ 33,
+ "M",
+ "LAWRENCEVILLE GA",
+ 770,
+ 6386,
+ 488,
+ 6372
+ ],
+ [
+ 260,
+ "TIMOTHY EDWARDS",
+ 46,
+ "M",
+ "ALPHARETTA GA",
+ 557,
+ 6388,
+ 488,
+ 6373
+ ],
+ [
+ 261,
+ "NICOLE HAWKINS",
+ 35,
+ "F",
+ "SMYRNA GA",
+ 817,
+ 6393,
+ 488,
+ 6382
+ ],
+ [
+ 262,
+ "MAX DUMAS",
+ 44,
+ "M",
+ "MARIETTA GA",
+ 531,
+ 6397,
+ 489,
+ 6386
+ ],
+ [
+ 263,
+ "TODD HENRY",
+ 39,
+ "M",
+ "CANTON GA",
+ 833,
+ 6405,
+ 489,
+ 6384
+ ],
+ [
+ 264,
+ "JUAN GALARZA",
+ 45,
+ "M",
+ "MARIETTA GA",
+ 660,
+ 6408,
+ 490,
+ 6396
+ ],
+ [
+ 265,
+ "JOSEPH HEINRICH",
+ 54,
+ "M",
+ "ATLANTA GA",
+ 824,
+ 6414,
+ 490,
+ 6397
+ ],
+ [
+ 266,
+ "MICHAEL SMITH",
+ 42,
+ "M",
+ "ARNOLDSVILLE GA",
+ 1713,
+ 6418,
+ 490,
+ 6400
+ ],
+ [
+ 267,
+ "PHILIP HARRELL",
+ 51,
+ "M",
+ "LILBURN GA",
+ 791,
+ 6419,
+ 490,
+ 6407
+ ],
+ [
+ 268,
+ "CATHERINE BROWN",
+ 27,
+ "F",
+ "WARRENVILLE SC",
+ 214,
+ 6420,
+ 491,
+ 6397
+ ],
+ [
+ 269,
+ "RYAN RICHARDS",
+ 24,
+ "M",
+ "DUNWOODY GA",
+ 1521,
+ 6423,
+ 491,
+ 6415
+ ],
+ [
+ 270,
+ "STEVE WILSON",
+ 40,
+ "M",
+ "MARIETTA GA",
+ 1984,
+ 6432,
+ 491,
+ 6423
+ ],
+ [
+ 271,
+ "NORMAN RICHARDSON",
+ 40,
+ "M",
+ "MABLETON GA",
+ 1522,
+ 6442,
+ 492,
+ 6431
+ ],
+ [
+ 272,
+ "EMILIE HENRY",
+ 36,
+ "F",
+ "CANTON GA",
+ 832,
+ 6445,
+ 492,
+ 6425
+ ],
+ [
+ 273,
+ "CLINT HAWKINS",
+ 31,
+ "M",
+ "SMYRNA GA",
+ 815,
+ 6449,
+ 493,
+ 6439
+ ],
+ [
+ 274,
+ "DAVID CURRY",
+ 40,
+ "M",
+ "MCDONOUGH GA",
+ 425,
+ 6451,
+ 493,
+ 6443
+ ],
+ [
+ 275,
+ "JOHN CHILDS",
+ 53,
+ "M",
+ "ATLANTA GA",
+ 326,
+ 6456,
+ 493,
+ 6439
+ ],
+ [
+ 276,
+ "DONOVAN HAAG",
+ 37,
+ "M",
+ "DACULA GA",
+ 749,
+ 6458,
+ 493,
+ 6438
+ ],
+ [
+ 277,
+ "KAREN CUNLIFFE",
+ 52,
+ "F",
+ "ATLANTA GA",
+ 415,
+ 6458,
+ 493,
+ 6444
+ ],
+ [
+ 278,
+ "JANET FITZ",
+ 53,
+ "F",
+ "DACULA GA",
+ 604,
+ 6459,
+ 494,
+ 6441
+ ],
+ [
+ 279,
+ "ANDY JOHNSON",
+ 28,
+ "M",
+ "CARROLLTON GA",
+ 936,
+ 6462,
+ 494,
+ 6426
+ ],
+ [
+ 280,
+ "THOMAS STREET",
+ 47,
+ "M",
+ "ATLANTA GA",
+ 1769,
+ 6466,
+ 494,
+ 6451
+ ],
+ [
+ 281,
+ "PHIL HURWITZ",
+ 43,
+ "M",
+ "DUNWOODY GA",
+ 894,
+ 6467,
+ 494,
+ 6446
+ ],
+ [
+ 282,
+ "ELIZABETH BARTGES",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 112,
+ 6468,
+ 494,
+ 6445
+ ],
+ [
+ 283,
+ "BRIAN MURRAY",
+ 27,
+ "M",
+ "DAHLONEGA GA",
+ 1325,
+ 6469,
+ 494,
+ 6430
+ ],
+ [
+ 284,
+ "MARK WEINTRAUB",
+ 41,
+ "M",
+ "ROSWELL GA",
+ 1943,
+ 6471,
+ 494,
+ 6452
+ ],
+ [
+ 285,
+ "KEN BUWALDA",
+ 49,
+ "M",
+ "ACWORTH GA",
+ 260,
+ 6476,
+ 495,
+ 6441
+ ],
+ [
+ 286,
+ "LAURA MOSSING",
+ 22,
+ "F",
+ "DUNWOODY GA",
+ 1319,
+ 6481,
+ 495,
+ 6474
+ ],
+ [
+ 287,
+ "CHRISSIE BURNS",
+ 35,
+ "F",
+ "ATLANTA GA",
+ 249,
+ 6485,
+ 495,
+ 6472
+ ],
+ [
+ 288,
+ "CHRIS KALLIO",
+ 33,
+ "M",
+ "ATLANTA GA",
+ 964,
+ 6485,
+ 496,
+ 6472
+ ],
+ [
+ 289,
+ "MICHAEL BAMBA",
+ 16,
+ "M",
+ "POWDER SPRINGS GA",
+ 91,
+ 6486,
+ 496,
+ 6450
+ ],
+ [
+ 290,
+ "JESSICA BURKHART",
+ 28,
+ "F",
+ "ATLANTA GA",
+ 248,
+ 6488,
+ 496,
+ 6467
+ ],
+ [
+ 291,
+ "EMILY EDWARDS",
+ 37,
+ "F",
+ "ATLANTA GA",
+ 549,
+ 6489,
+ 496,
+ 6466
+ ],
+ [
+ 292,
+ "STEVEN SCOLERI",
+ 39,
+ "M",
+ "PEACHTREE CITY GA",
+ 1624,
+ 6490,
+ 496,
+ 6452
+ ],
+ [
+ 293,
+ "KELLY STEPHENS",
+ 35,
+ "F",
+ "SHARPSBURG GA",
+ 1763,
+ 6492,
+ 496,
+ 6455
+ ],
+ [
+ 294,
+ "ERICA COCHRAN",
+ 41,
+ "F",
+ "CUMMING GA",
+ 349,
+ 6494,
+ 496,
+ 6479
+ ],
+ [
+ 295,
+ "CHRIS FOX",
+ 30,
+ "M",
+ "ATLANTA GA",
+ 629,
+ 6495,
+ 496,
+ 6473
+ ],
+ [
+ 296,
+ "ROB ST. JEAN",
+ 32,
+ "M",
+ "SMYRNA GA",
+ 1745,
+ 6500,
+ 497,
+ 6483
+ ],
+ [
+ 297,
+ "SANDRA ABBOTT",
+ 54,
+ "F",
+ "POWDER SPRINGS GA",
+ 6,
+ 6501,
+ 497,
+ 6494
+ ],
+ [
+ 298,
+ "ROBERT REDHEAD",
+ 40,
+ "M",
+ "MARIETTA GA",
+ 1502,
+ 6502,
+ 497,
+ 6485
+ ],
+ [
+ 299,
+ "DANIEL LECLERC",
+ 23,
+ "M",
+ "ATLANTA GA",
+ 1077,
+ 6503,
+ 497,
+ 6463
+ ],
+ [
+ 300,
+ "JAMES SUMMERLIN",
+ 52,
+ "M",
+ "DACULA GA",
+ 1782,
+ 6504,
+ 497,
+ 6493
+ ],
+ [
+ 301,
+ "KELSEY HAGAN",
+ 23,
+ "F",
+ "CARROLLTON GA",
+ 754,
+ 6512,
+ 498,
+ 6496
+ ],
+ [
+ 302,
+ "ALICE ROUGEUX",
+ 26,
+ "F",
+ "ATLANTA GA",
+ 1568,
+ 6520,
+ 498,
+ 6484
+ ],
+ [
+ 303,
+ "ROBERT TOMEY",
+ 46,
+ "M",
+ "MABLETON GA",
+ 1846,
+ 6521,
+ 498,
+ 6501
+ ],
+ [
+ 304,
+ "CHAD DAVIS",
+ 31,
+ "M",
+ "ALPHARETTA GA",
+ 448,
+ 6527,
+ 499,
+ 6508
+ ],
+ [
+ 305,
+ "WAYNE DOWNEY",
+ 44,
+ "M",
+ "BETHLEHEM GA",
+ 519,
+ 6529,
+ 499,
+ 6502
+ ],
+ [
+ 306,
+ "BETH KRUMPER",
+ 34,
+ "F",
+ "ATLANTA GA",
+ 1032,
+ 6531,
+ 499,
+ 6516
+ ],
+ [
+ 307,
+ "ROBERT LEWALLEN",
+ 39,
+ "M",
+ "ATLANTA GA",
+ 1088,
+ 6532,
+ 499,
+ 6517
+ ],
+ [
+ 308,
+ "KEN BEATTY",
+ 37,
+ "M",
+ "ATLANTA GA",
+ 131,
+ 6538,
+ 500,
+ 6493
+ ],
+ [
+ 309,
+ "KYLE COCHRAN",
+ 36,
+ "M",
+ "MABLETON GA",
+ 350,
+ 6538,
+ 500,
+ 6498
+ ],
+ [
+ 310,
+ "JENS RAHBEK",
+ 41,
+ "M",
+ "SMYRNA GA",
+ 1485,
+ 6544,
+ 500,
+ -1
+ ],
+ [
+ 311,
+ "VINAYAK KULKARNI",
+ 47,
+ "M",
+ "ALPHARETTA GA",
+ 1039,
+ 6545,
+ 500,
+ 6522
+ ],
+ [
+ 312,
+ "CHARLENE PREG",
+ 45,
+ "F",
+ "ATLANTA GA",
+ 1463,
+ 6546,
+ 500,
+ 6533
+ ],
+ [
+ 313,
+ "TREI WENTZ",
+ 37,
+ "M",
+ "WOODSTOCK GA",
+ 1947,
+ 6555,
+ 501,
+ 6542
+ ],
+ [
+ 314,
+ "ROB BYRAM",
+ 39,
+ "M",
+ "SUWANEE GA",
+ 261,
+ 6556,
+ 501,
+ 6537
+ ],
+ [
+ 315,
+ "MELISSA LIBBY",
+ 47,
+ "F",
+ "ATLANTA GA",
+ 1097,
+ 6562,
+ 501,
+ 6552
+ ],
+ [
+ 316,
+ "RYAN STRONG",
+ 35,
+ "M",
+ "ALPHARETTA GA",
+ 1772,
+ 6563,
+ 501,
+ 6545
+ ],
+ [
+ 317,
+ "MICHAEL MCLAUGHLIN",
+ 43,
+ "M",
+ "NORCROSS GA",
+ 1232,
+ 6564,
+ 501,
+ 6545
+ ],
+ [
+ 318,
+ "BENJAMIN COLLIER",
+ 34,
+ "M",
+ "MCDONOUGH GA",
+ 363,
+ 6567,
+ 502,
+ 6549
+ ],
+ [
+ 319,
+ "SUNG FLEMMING",
+ 49,
+ "F",
+ "SUGARHILL GA",
+ 611,
+ 6569,
+ 502,
+ 6525
+ ],
+ [
+ 320,
+ "NEIL HUTCHINSON",
+ 37,
+ "M",
+ "ROSWELL GA",
+ 896,
+ 6572,
+ 502,
+ 6546
+ ],
+ [
+ 321,
+ "BRADLEY FULKERSON",
+ 48,
+ "M",
+ "MARIETTA GA",
+ 651,
+ 6573,
+ 502,
+ 6566
+ ],
+ [
+ 322,
+ "JENNIFER TUCKER",
+ 34,
+ "F",
+ "MARIETTA GA",
+ 1862,
+ 6573,
+ 502,
+ 6558
+ ],
+ [
+ 323,
+ "JEREMY GREENWELL",
+ 35,
+ "M",
+ "SMYRNA GA",
+ 730,
+ 6575,
+ 502,
+ 6544
+ ],
+ [
+ 324,
+ "CARRIE DIX",
+ 47,
+ "F",
+ "ROSWELL GA",
+ 494,
+ 6580,
+ 503,
+ 6565
+ ],
+ [
+ 325,
+ "PATRICK GRAFFIUS",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 715,
+ 6582,
+ 503,
+ 6566
+ ],
+ [
+ 326,
+ "GLENN GRAVES",
+ 47,
+ "M",
+ "DOUGLASVILLE GA",
+ 718,
+ 6583,
+ 503,
+ 6549
+ ],
+ [
+ 327,
+ "JON PICKENS",
+ 36,
+ "M",
+ "ROSWELL GA",
+ 1440,
+ 6585,
+ 503,
+ 6571
+ ],
+ [
+ 328,
+ "JOHN EDWARDS, JR.",
+ 45,
+ "M",
+ "RADCLIFF KY",
+ 558,
+ 6588,
+ 503,
+ 6560
+ ],
+ [
+ 329,
+ "ERIC COONEY",
+ 49,
+ "M",
+ "MARIETTA GA",
+ 381,
+ 6588,
+ 503,
+ 6557
+ ],
+ [
+ 330,
+ "BRITT JONES",
+ 36,
+ "M",
+ "MARIETTA GA",
+ 954,
+ 6590,
+ 504,
+ 6558
+ ],
+ [
+ 331,
+ "ELENA JOHNSON",
+ 31,
+ "F",
+ "ALPHARETTA GA",
+ 944,
+ 6593,
+ 504,
+ 6485
+ ],
+ [
+ 332,
+ "TOM MAKRIDES",
+ 51,
+ "M",
+ "MILTON GA",
+ 1157,
+ 6594,
+ 504,
+ 6526
+ ],
+ [
+ 333,
+ "KARA QUINCY",
+ 39,
+ "F",
+ "CUMMING GA",
+ 1477,
+ 6594,
+ 504,
+ 6582
+ ],
+ [
+ 334,
+ "JENNIFER HASSON",
+ 39,
+ "F",
+ "ROSWELL GA",
+ 811,
+ 6594,
+ 504,
+ 6579
+ ],
+ [
+ 335,
+ "DAVID HURST",
+ 38,
+ "M",
+ "WOODSTOCK GA",
+ 893,
+ 6594,
+ 504,
+ 6569
+ ],
+ [
+ 336,
+ "MAUREEN UNDERWOOD",
+ 43,
+ "F",
+ "ROSWELL GA",
+ 1874,
+ 6596,
+ 504,
+ 6581
+ ],
+ [
+ 337,
+ "NATALIE WITT",
+ 40,
+ "F",
+ "ATLANTA GA",
+ 1991,
+ 6596,
+ 504,
+ 6554
+ ],
+ [
+ 338,
+ "LISA MARCINEK",
+ 34,
+ "F",
+ "CUMMING GA",
+ 1168,
+ 6597,
+ 504,
+ 6585
+ ],
+ [
+ 339,
+ "JOHN HYLAND",
+ 38,
+ "M",
+ "ALPHARETTA GA",
+ 901,
+ 6598,
+ 504,
+ 6579
+ ],
+ [
+ 340,
+ "TOM HYLAND",
+ 46,
+ "M",
+ "AVON LAKE OH",
+ 902,
+ 6599,
+ 504,
+ 6579
+ ],
+ [
+ 341,
+ "JEREMY HENSON",
+ 35,
+ "M",
+ "NEWNAN GA",
+ 835,
+ 6599,
+ 504,
+ 6585
+ ],
+ [
+ 342,
+ "MATTHEW RIGDON",
+ 31,
+ "M",
+ "CALHOUN GA",
+ 2028,
+ 6599,
+ 504,
+ 6582
+ ],
+ [
+ 343,
+ "SARAH LANGVILLE",
+ 29,
+ "F",
+ "ATLANTA GA",
+ 1054,
+ 6605,
+ 505,
+ 6559
+ ],
+ [
+ 344,
+ "CHRISTOPHER FRATTO",
+ 36,
+ "M",
+ "SMYRNA GA",
+ 635,
+ 6607,
+ 505,
+ 6482
+ ],
+ [
+ 345,
+ "JAMES HARRIS",
+ 46,
+ "M",
+ "ATLANTA GA",
+ 796,
+ 6609,
+ 505,
+ 6600
+ ],
+ [
+ 346,
+ "BRANDON FAYE",
+ 39,
+ "M",
+ "MARIETTA GA",
+ 591,
+ 6611,
+ 505,
+ 6570
+ ],
+ [
+ 347,
+ "SCOTT STAFFORD",
+ 38,
+ "M",
+ "SMYRNA GA",
+ 1748,
+ 6612,
+ 505,
+ 6563
+ ],
+ [
+ 348,
+ "STEVE BERREY",
+ 41,
+ "M",
+ "ROSWELL GA",
+ 149,
+ 6613,
+ 505,
+ 6588
+ ],
+ [
+ 349,
+ "KYLE ZAUNBRECHER",
+ 27,
+ "M",
+ "BIRMINGHAM AL",
+ 2020,
+ 6614,
+ 505,
+ 6596
+ ],
+ [
+ 350,
+ "JASON TOOLE",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 1848,
+ 6617,
+ 506,
+ 6575
+ ],
+ [
+ 351,
+ "MATTHEW WOLFE",
+ 39,
+ "M",
+ "DECATUR GA",
+ 1995,
+ 6618,
+ 506,
+ 6578
+ ],
+ [
+ 352,
+ "BRYAN JACKSON",
+ 41,
+ "M",
+ "SANDY SPRINGS GA",
+ 908,
+ 6621,
+ 506,
+ 6603
+ ],
+ [
+ 353,
+ "TOM VANN",
+ 38,
+ "M",
+ "ROSWELL GA",
+ 1885,
+ 6622,
+ 506,
+ 6609
+ ],
+ [
+ 354,
+ "LEONARDO GARCIA",
+ 36,
+ "M",
+ "NEWNAN GA",
+ 668,
+ 6624,
+ 506,
+ 6588
+ ],
+ [
+ 355,
+ "CHRIS KYRIAKAKIS",
+ 38,
+ "M",
+ "DULUTH GA",
+ 1043,
+ 6628,
+ 506,
+ 6609
+ ],
+ [
+ 356,
+ "CAROLYN SULLIVAN",
+ 27,
+ "F",
+ "ACWORTH GA",
+ 1779,
+ 6629,
+ 506,
+ 6595
+ ],
+ [
+ 357,
+ "KELLY NORTON",
+ 36,
+ "M",
+ "DECATUR GA",
+ 1352,
+ 6631,
+ 507,
+ 6551
+ ],
+ [
+ 358,
+ "JENNIFER COLEMAN",
+ 35,
+ "F",
+ "MOBILE AL",
+ 362,
+ 6632,
+ 507,
+ 6603
+ ],
+ [
+ 359,
+ "JANE GROVER",
+ 37,
+ "F",
+ "GRAYSON GA",
+ 744,
+ 6633,
+ 507,
+ 6611
+ ],
+ [
+ 360,
+ "ASHLEY CHURCH",
+ 35,
+ "F",
+ "ALTANTA GA",
+ 331,
+ 6637,
+ 507,
+ 6616
+ ],
+ [
+ 361,
+ "SCOTT MARTIN",
+ 39,
+ "M",
+ "ATLANTA GA",
+ 1178,
+ 6663,
+ 509,
+ 6649
+ ],
+ [
+ 362,
+ "MATTHEW LOGAN",
+ 43,
+ "M",
+ "ACWORTH GA",
+ 1117,
+ 6664,
+ 509,
+ 6645
+ ],
+ [
+ 363,
+ "MITCHELL SALAIN",
+ 41,
+ "M",
+ "DAHLONEGA GA",
+ 1581,
+ 6664,
+ 509,
+ 6615
+ ],
+ [
+ 364,
+ "ALAN MORELLI",
+ 55,
+ "M",
+ "POWDER SPRINGS GA",
+ 1310,
+ 6667,
+ 509,
+ 6629
+ ],
+ [
+ 365,
+ "KEVIN HEATH",
+ 39,
+ "M",
+ "SMRYNA GA",
+ 822,
+ 6668,
+ 509,
+ 6637
+ ],
+ [
+ 366,
+ "JEFF GANTT",
+ 23,
+ "M",
+ "MARIETTA GA",
+ 667,
+ 6668,
+ 509,
+ 6650
+ ],
+ [
+ 367,
+ "DAVID BOFF",
+ 39,
+ "M",
+ "KENNESAW GA",
+ 166,
+ 6674,
+ 510,
+ 6658
+ ],
+ [
+ 368,
+ "CAREY HYDE",
+ 49,
+ "F",
+ "MABLETON GA",
+ 900,
+ 6676,
+ 510,
+ 6651
+ ],
+ [
+ 369,
+ "KRISTIN WHITE",
+ 40,
+ "F",
+ "ALPHARETTA GA",
+ 1960,
+ 6682,
+ 511,
+ 6641
+ ],
+ [
+ 370,
+ "NICHOLE LEWIS",
+ 40,
+ "F",
+ "NEW FAIRFIELD CT",
+ 1093,
+ 6687,
+ 511,
+ 6671
+ ],
+ [
+ 371,
+ "ANDREAS BOMMARIUS",
+ 51,
+ "M",
+ "ATLANTA GA",
+ 170,
+ 6689,
+ 511,
+ 6680
+ ],
+ [
+ 372,
+ "JEREMY SELLARS",
+ 31,
+ "M",
+ "MARIETTA GA",
+ 1637,
+ 6690,
+ 511,
+ 6640
+ ],
+ [
+ 373,
+ "KENDRA SELLARS",
+ 30,
+ "F",
+ "MARIETTA GA",
+ 1638,
+ 6690,
+ 511,
+ 6640
+ ],
+ [
+ 374,
+ "SCOTT NADER",
+ 40,
+ "M",
+ "ROSWELL GA",
+ 1331,
+ 6691,
+ 511,
+ 6680
+ ],
+ [
+ 375,
+ "JAMES N WOODRUFF",
+ 53,
+ "M",
+ "ATLANTA GA",
+ 2000,
+ 6692,
+ 511,
+ 6673
+ ],
+ [
+ 376,
+ "A SWEET",
+ 45,
+ "F",
+ "ALPHARETTA GA",
+ 1793,
+ 6694,
+ 511,
+ 6673
+ ],
+ [
+ 377,
+ "SCOTT GOLDEN",
+ 40,
+ "M",
+ "SMYRNA GA",
+ 703,
+ 6696,
+ 512,
+ 6676
+ ],
+ [
+ 378,
+ "MARYANNA HALL",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 763,
+ 6700,
+ 512,
+ 6684
+ ],
+ [
+ 379,
+ "SHANE CRIDER",
+ 28,
+ "M",
+ "DOUGLASVILLE GA",
+ 405,
+ 6701,
+ 512,
+ 6694
+ ],
+ [
+ 380,
+ "JANET HALL",
+ 43,
+ "F",
+ "MARIETTA GA",
+ 762,
+ 6701,
+ 512,
+ 6683
+ ],
+ [
+ 381,
+ "REID DAVIS",
+ 39,
+ "M",
+ "ATLANTA GA",
+ 453,
+ 6702,
+ 512,
+ 6679
+ ],
+ [
+ 382,
+ "BRETT HASLAM",
+ 38,
+ "M",
+ "BISHOP GA",
+ 810,
+ 6705,
+ 512,
+ 6690
+ ],
+ [
+ 383,
+ "ALYSON HASLAM",
+ 35,
+ "F",
+ "BISHOP GA",
+ 809,
+ 6705,
+ 512,
+ 6691
+ ],
+ [
+ 384,
+ "CALVIN COOK",
+ 32,
+ "M",
+ "WOODSTOCK GA",
+ 374,
+ 6705,
+ 512,
+ 6673
+ ],
+ [
+ 385,
+ "DOUG CUNNINGTON",
+ 31,
+ "M",
+ "DUNWOODY GA",
+ 419,
+ 6706,
+ 512,
+ 6680
+ ],
+ [
+ 386,
+ "HILDE THOMAS",
+ 49,
+ "F",
+ "CARROLLTON GA",
+ 1820,
+ 6706,
+ 512,
+ 6689
+ ],
+ [
+ 387,
+ "CHRISTOPHER BROWN",
+ 25,
+ "M",
+ "ATLANTA GA",
+ 215,
+ 6707,
+ 512,
+ 6686
+ ],
+ [
+ 388,
+ "ASHLEY BROWN",
+ 26,
+ "F",
+ "ATLANTA SC",
+ 212,
+ 6708,
+ 512,
+ 6687
+ ],
+ [
+ 389,
+ "RICK GALLOWAY",
+ 38,
+ "M",
+ "KENNESAW GA",
+ 665,
+ 6709,
+ 513,
+ 6659
+ ],
+ [
+ 390,
+ "GREG SHILLING",
+ 43,
+ "M",
+ "CARROLLTON GA",
+ 1668,
+ 6711,
+ 513,
+ 6681
+ ],
+ [
+ 391,
+ "DIANE MCHORNEY",
+ 38,
+ "F",
+ "ACWORTH GA",
+ 1224,
+ 6716,
+ 513,
+ 6701
+ ],
+ [
+ 392,
+ "BRITTANY ATKINSON",
+ 31,
+ "F",
+ "MILTON GA",
+ 69,
+ 6717,
+ 513,
+ 6660
+ ],
+ [
+ 393,
+ "BRIAN FRONK",
+ 27,
+ "M",
+ "ATLANTA GA",
+ 649,
+ 6719,
+ 513,
+ 6691
+ ],
+ [
+ 394,
+ "RYAN ASCHAUER",
+ 33,
+ "M",
+ "ATLANTA GA",
+ 66,
+ 6724,
+ 514,
+ 6687
+ ],
+ [
+ 395,
+ "TRACI GOWENS",
+ 40,
+ "F",
+ "DULUTH GA",
+ 713,
+ 6726,
+ 514,
+ 6559
+ ],
+ [
+ 396,
+ "JENNIFER STEPHENS",
+ 27,
+ "F",
+ "SMYRNA GA",
+ 1761,
+ 6727,
+ 514,
+ 6706
+ ],
+ [
+ 397,
+ "KIRA DUNKERLEY",
+ 39,
+ "F",
+ "DUNWOODY GA",
+ 532,
+ 6729,
+ 514,
+ 6712
+ ],
+ [
+ 398,
+ "MARIO BACCE",
+ 52,
+ "M",
+ "MARIETTA GA",
+ 76,
+ 6731,
+ 514,
+ 6718
+ ],
+ [
+ 399,
+ "KELLY MCNEARNEY",
+ 42,
+ "F",
+ "ACWORTH GA",
+ 1239,
+ 6732,
+ 514,
+ 6702
+ ],
+ [
+ 400,
+ "GLENN HOWELL",
+ 42,
+ "M",
+ "LILBURN GA",
+ 875,
+ 6732,
+ 514,
+ 6713
+ ],
+ [
+ 401,
+ "HAZEL CALDWELL",
+ 32,
+ "F",
+ "FORSYTH GA",
+ 270,
+ 6733,
+ 514,
+ 6651
+ ],
+ [
+ 402,
+ "NICOLE JAYNE",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 924,
+ 6736,
+ 515,
+ 6653
+ ],
+ [
+ 403,
+ "CHARLES CAYCE",
+ 44,
+ "M",
+ "CUMMING GA",
+ 303,
+ 6736,
+ 515,
+ 6714
+ ],
+ [
+ 404,
+ "BISHOP LEATHERBURY",
+ 58,
+ "M",
+ "ATLANTA GA",
+ 1075,
+ 6742,
+ 515,
+ 6707
+ ],
+ [
+ 405,
+ "DAVID SPEACH",
+ 34,
+ "M",
+ "CARTERSVILLE GA",
+ 1729,
+ 6743,
+ 515,
+ 6726
+ ],
+ [
+ 406,
+ "EMELINE ABEITA",
+ 33,
+ "F",
+ "ATLANTA GA",
+ 7,
+ 6744,
+ 515,
+ 6721
+ ],
+ [
+ 407,
+ "KERRI MCMAHON",
+ 34,
+ "F",
+ "DACULA GA",
+ 1234,
+ 6745,
+ 515,
+ 6714
+ ],
+ [
+ 408,
+ "KEITH JERNIGAN",
+ 45,
+ "M",
+ "SUWANEE GA",
+ 932,
+ 6747,
+ 515,
+ 6716
+ ],
+ [
+ 409,
+ "MELANIE PHILLIPS",
+ 38,
+ "F",
+ "CANTON GA",
+ 1436,
+ 6749,
+ 516,
+ 6691
+ ],
+ [
+ 410,
+ "EARL SHARPE",
+ 44,
+ "M",
+ "DULUTH GA",
+ 1652,
+ 6751,
+ 516,
+ 6717
+ ],
+ [
+ 411,
+ "AMANDA WRUBEL",
+ 35,
+ "F",
+ "ATLANTA GA",
+ 2010,
+ 6752,
+ 516,
+ 6708
+ ],
+ [
+ 412,
+ "KIMBERLEY HALE",
+ 38,
+ "F",
+ "NORCROSS GA",
+ 758,
+ 6752,
+ 516,
+ 6736
+ ],
+ [
+ 413,
+ "GARY MARTIN",
+ 45,
+ "M",
+ "ALPHARETTA GA",
+ 1174,
+ 6753,
+ 516,
+ 6729
+ ],
+ [
+ 414,
+ "ANGELA FREEMAN",
+ 45,
+ "F",
+ "ROSWELL GA",
+ 640,
+ 6755,
+ 516,
+ 6740
+ ],
+ [
+ 415,
+ "CARLOS TALLEY",
+ 99,
+ "M",
+ "MARIETTA GA",
+ 1799,
+ 6757,
+ 516,
+ 6665
+ ],
+ [
+ 416,
+ "CATHERINE HASH",
+ 38,
+ "F",
+ "CUMMING GA",
+ 808,
+ 6759,
+ 516,
+ 6735
+ ],
+ [
+ 417,
+ "JOHN SWANSON",
+ 45,
+ "M",
+ "ATLANTA GA",
+ 1790,
+ 6760,
+ 516,
+ 6743
+ ],
+ [
+ 418,
+ "ALLISON SPEARS",
+ 40,
+ "F",
+ "ATLANTA GA",
+ 1732,
+ 6761,
+ 517,
+ 6741
+ ],
+ [
+ 419,
+ "BETH STUDLEY",
+ 38,
+ "F",
+ "SMYRNA GA",
+ 1774,
+ 6766,
+ 517,
+ 6729
+ ],
+ [
+ 420,
+ "JODI JACKSON",
+ 39,
+ "F",
+ "SANDY SPRINGS GA",
+ 909,
+ 6767,
+ 517,
+ -1
+ ],
+ [
+ 421,
+ "THOMAS RUSSE",
+ 56,
+ "M",
+ "CHATTANOOGA TN",
+ 1576,
+ 6773,
+ 517,
+ 6764
+ ],
+ [
+ 422,
+ "DERRICK FRIEDMAN",
+ 38,
+ "M",
+ "ALPHARETTA GA",
+ 646,
+ 6773,
+ 517,
+ 6759
+ ],
+ [
+ 423,
+ "SCOTT BALLARD",
+ 46,
+ "M",
+ "WOODSTOCK GA",
+ 88,
+ 6775,
+ 518,
+ 6732
+ ],
+ [
+ 424,
+ "LYNN HOWE",
+ 49,
+ "F",
+ "JONESBORO GA",
+ 874,
+ 6775,
+ 518,
+ 6753
+ ],
+ [
+ 425,
+ "KAREN MATHEWS",
+ 45,
+ "F",
+ "ROSWELL GA",
+ 1185,
+ 6778,
+ 518,
+ 6758
+ ],
+ [
+ 426,
+ "CRAIG CURRENT",
+ 45,
+ "M",
+ "MARIETTA GA",
+ 423,
+ 6779,
+ 518,
+ 6667
+ ],
+ [
+ 427,
+ "JOSE RIVERA",
+ 29,
+ "M",
+ "MARIETTA GA",
+ 1534,
+ 6780,
+ 518,
+ 6745
+ ],
+ [
+ 428,
+ "CHRISTOPHER TUFF",
+ 30,
+ "F",
+ "ATLANTA GA",
+ 1865,
+ 6781,
+ 518,
+ 6758
+ ],
+ [
+ 429,
+ "FRANK DEMELFI",
+ 58,
+ "M",
+ "MARIETTA GA",
+ 472,
+ 6782,
+ 518,
+ 6750
+ ],
+ [
+ 430,
+ "RAMON DEMPERS",
+ 52,
+ "M",
+ "ALPHARETTA GA",
+ 477,
+ 6783,
+ 518,
+ 6762
+ ],
+ [
+ 431,
+ "SARAH RANK",
+ 33,
+ "F",
+ "LAGRANGE GA",
+ 1492,
+ 6784,
+ 518,
+ 6752
+ ],
+ [
+ 432,
+ "JULIE TUFF",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 1866,
+ 6787,
+ 519,
+ 6764
+ ],
+ [
+ 433,
+ "MATT COSSON",
+ 37,
+ "M",
+ "HOSCHTON GA",
+ 388,
+ 6789,
+ 519,
+ 6752
+ ],
+ [
+ 434,
+ "NIKKI BLYSTONE",
+ 32,
+ "F",
+ "ELLENWOOD GA",
+ 163,
+ 6789,
+ 519,
+ 6728
+ ],
+ [
+ 435,
+ "TIMOTHY GRANT",
+ 40,
+ "M",
+ "MACON GA",
+ 717,
+ 6789,
+ 519,
+ 6774
+ ],
+ [
+ 436,
+ "MARISA WHEATLEY",
+ 31,
+ "F",
+ "DECATUR GA",
+ 1956,
+ 6790,
+ 519,
+ 6756
+ ],
+ [
+ 437,
+ "CHAD LORD",
+ 37,
+ "M",
+ "SUGAR HILL GA",
+ 1126,
+ 6791,
+ 519,
+ 6690
+ ],
+ [
+ 438,
+ "MICHELLE DAVIDSON",
+ 42,
+ "F",
+ "MABLETON GA",
+ 447,
+ 6791,
+ 519,
+ 6659
+ ],
+ [
+ 439,
+ "NICK ERNESTON",
+ 29,
+ "M",
+ "SMYRNA GA",
+ 573,
+ 6792,
+ 519,
+ 6779
+ ],
+ [
+ 440,
+ "MICHAEL BALLOU",
+ 25,
+ "M",
+ "SMYRNA GA",
+ 89,
+ 6793,
+ 519,
+ 6732
+ ],
+ [
+ 441,
+ "KAREN ANDERSON",
+ 45,
+ "F",
+ "COVINGTON GA",
+ 51,
+ 6794,
+ 519,
+ 6766
+ ],
+ [
+ 442,
+ "TOMMY DANCE",
+ 39,
+ "M",
+ "WOODSTOCK GA",
+ 435,
+ 6794,
+ 519,
+ 6756
+ ],
+ [
+ 443,
+ "DUSTY SHARPES",
+ 24,
+ "M",
+ "ATLANTA GA",
+ 1654,
+ 6799,
+ 519,
+ 6756
+ ],
+ [
+ 444,
+ "JENNIFER PHILLIPPI",
+ 37,
+ "F",
+ "ROSWELL GA",
+ 1431,
+ 6800,
+ 519,
+ 6767
+ ],
+ [
+ 445,
+ "KRISTI COX",
+ 33,
+ "F",
+ "MARIETTA GA",
+ 397,
+ 6801,
+ 520,
+ 6766
+ ],
+ [
+ 446,
+ "BO JACKSON",
+ 33,
+ "M",
+ "CANTON GA",
+ 907,
+ 6801,
+ 520,
+ 6774
+ ],
+ [
+ 447,
+ "KIRSTEN SHARPES",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 1655,
+ 6803,
+ 520,
+ 6780
+ ],
+ [
+ 448,
+ "MATTHEW RACK",
+ 34,
+ "M",
+ "HIXSON TN",
+ 1481,
+ 6804,
+ 520,
+ 6740
+ ],
+ [
+ 449,
+ "BEN WAITES",
+ 48,
+ "M",
+ "SUWANEE GA",
+ 1897,
+ 6809,
+ 520,
+ 6782
+ ],
+ [
+ 450,
+ "VINNIE CUPOLI",
+ 40,
+ "M",
+ "JOHNS CREEK GA",
+ 420,
+ 6823,
+ 521,
+ 6808
+ ],
+ [
+ 451,
+ "STEVE SEGARS",
+ 40,
+ "M",
+ "BRASELTON GA",
+ 1633,
+ 6826,
+ 522,
+ 6822
+ ],
+ [
+ 452,
+ "ANDY PARSONS",
+ 40,
+ "M",
+ "CUMMING GA",
+ 1400,
+ 6829,
+ 522,
+ 6812
+ ],
+ [
+ 453,
+ "JAKE EAVENSON",
+ 21,
+ "M",
+ "ATLANTA GA",
+ 544,
+ 6830,
+ 522,
+ 6796
+ ],
+ [
+ 454,
+ "MARTIN BOYLE",
+ 46,
+ "M",
+ "MARIETTA GA",
+ 186,
+ 6831,
+ 522,
+ 6804
+ ],
+ [
+ 455,
+ "ALISHA JEPPSON",
+ 34,
+ "F",
+ "CUMMING GA",
+ 928,
+ 6832,
+ 522,
+ 6785
+ ],
+ [
+ 456,
+ "JUSTINE PHIFER",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 1430,
+ 6833,
+ 522,
+ 6775
+ ],
+ [
+ 457,
+ "AMI ROACH",
+ 35,
+ "F",
+ "DACULA GA",
+ 1535,
+ 6835,
+ 522,
+ 6816
+ ],
+ [
+ 458,
+ "CHRIS REZEK",
+ 44,
+ "M",
+ "ATLANTA GA",
+ 1517,
+ 6837,
+ 522,
+ 6820
+ ],
+ [
+ 459,
+ "LISA WOODWARD",
+ 47,
+ "F",
+ "CANTON GA",
+ 2003,
+ 6837,
+ 522,
+ 6804
+ ],
+ [
+ 460,
+ "ANDREA RESTIFO",
+ 45,
+ "F",
+ "ATLANTA GA",
+ 1515,
+ 6841,
+ 523,
+ 6815
+ ],
+ [
+ 461,
+ "JENNIFER SCHMIDT",
+ 38,
+ "F",
+ "ATHENS GA",
+ 1608,
+ 6844,
+ 523,
+ 6828
+ ],
+ [
+ 462,
+ "FRANCES CREEKMUIR",
+ 51,
+ "F",
+ "ATLANTA GA",
+ 402,
+ 6846,
+ 523,
+ 6815
+ ],
+ [
+ 463,
+ "CHRIS KULINSKI",
+ 32,
+ "M",
+ "ATLANTA GA",
+ 1036,
+ 6847,
+ 523,
+ 6819
+ ],
+ [
+ 464,
+ "MATT WATERS",
+ 32,
+ "M",
+ "ACWORTH GA",
+ 1930,
+ 6848,
+ 523,
+ 6798
+ ],
+ [
+ 465,
+ "MARGARET BARBEE",
+ 36,
+ "F",
+ "PEACHTREE CITY GA",
+ 97,
+ 6852,
+ 523,
+ 6819
+ ],
+ [
+ 466,
+ "COREY RIECK",
+ 46,
+ "M",
+ "ATLANTA GA",
+ 385,
+ 6854,
+ 524,
+ 6837
+ ],
+ [
+ 467,
+ "KAREN GAILEY",
+ 30,
+ "F",
+ "ATLANTA GA",
+ 658,
+ 6855,
+ 524,
+ 6818
+ ],
+ [
+ 468,
+ "CHRIS HOLTON",
+ 30,
+ "M",
+ "MABLETON GA",
+ 857,
+ 6855,
+ 524,
+ 6798
+ ],
+ [
+ 469,
+ "MICHAEL OZBURN",
+ 36,
+ "M",
+ "SANDY SPRINGS GA",
+ 1384,
+ 6855,
+ 524,
+ 6826
+ ],
+ [
+ 470,
+ "ALEXANDER AMBINDER",
+ 24,
+ "M",
+ "ATLANTA GA",
+ 44,
+ 6857,
+ 524,
+ 6799
+ ],
+ [
+ 471,
+ "EMILY MCINTOSH",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 1225,
+ 6858,
+ 524,
+ 6799
+ ],
+ [
+ 472,
+ "DAN CURRIDEN",
+ 42,
+ "M",
+ "MARIETTA GA",
+ 424,
+ 6864,
+ 524,
+ 6790
+ ],
+ [
+ 473,
+ "JOHN OCONNOR",
+ 43,
+ "M",
+ "SUWANEE GA",
+ 1363,
+ 6865,
+ 524,
+ 6838
+ ],
+ [
+ 474,
+ "STEPHEN BUMPAS",
+ 46,
+ "M",
+ "ATLANTA GA",
+ 239,
+ 6865,
+ 525,
+ 6803
+ ],
+ [
+ 475,
+ "BEN KIRKLAND",
+ 56,
+ "M",
+ "PEACHTREE CITY, GA",
+ 1005,
+ 6866,
+ 525,
+ 6825
+ ],
+ [
+ 476,
+ "JEFF ROBERTS",
+ 40,
+ "M",
+ "WOODSTOCK GA",
+ 1539,
+ 6868,
+ 525,
+ 6831
+ ],
+ [
+ 477,
+ "SHELBY KATZ",
+ 44,
+ "F",
+ "NORCROSS GA",
+ 970,
+ 6869,
+ 525,
+ 6829
+ ],
+ [
+ 478,
+ "SHAWN RYALS",
+ 33,
+ "M",
+ "MABLETON GA",
+ 1578,
+ 6870,
+ 525,
+ 6846
+ ],
+ [
+ 479,
+ "KEVIN GARMON",
+ 37,
+ "M",
+ "CUMMING GA",
+ 670,
+ 6873,
+ 525,
+ 6859
+ ],
+ [
+ 480,
+ "JACQUELINE DANIELS",
+ 38,
+ "F",
+ "KENNESAW GA",
+ 440,
+ 6880,
+ 526,
+ 6853
+ ],
+ [
+ 481,
+ "LES SEIBERT",
+ 50,
+ "M",
+ "ALPHARETTA GA",
+ 1635,
+ 6887,
+ 526,
+ 6871
+ ],
+ [
+ 482,
+ "ERIC WEIDNER",
+ 31,
+ "M",
+ "MARIETTA GA",
+ 1940,
+ 6887,
+ 526,
+ 6851
+ ],
+ [
+ 483,
+ "TERRY HARRIS",
+ 47,
+ "M",
+ "BREMEN GA",
+ 797,
+ 6888,
+ 526,
+ 6834
+ ],
+ [
+ 484,
+ "MARK ADENT",
+ 43,
+ "M",
+ "JOHNS CREEK GA",
+ 14,
+ 6892,
+ 527,
+ 6886
+ ],
+ [
+ 485,
+ "PATTY WILDER",
+ 29,
+ "F",
+ "TUCKER GA",
+ 1967,
+ 6893,
+ 527,
+ 6853
+ ],
+ [
+ 486,
+ "DEBORAH GAUL",
+ 15,
+ "F",
+ "CUMMING GA",
+ 675,
+ 6895,
+ 527,
+ 6883
+ ],
+ [
+ 487,
+ "NANCY GAUL",
+ 42,
+ "F",
+ "CUMMING GA",
+ 676,
+ 6895,
+ 527,
+ -1
+ ],
+ [
+ 488,
+ "DAVE KEMP",
+ 51,
+ "M",
+ "KENNESAW GA",
+ 986,
+ 6895,
+ 527,
+ 6853
+ ],
+ [
+ 489,
+ "TRACY ROSE",
+ 48,
+ "M",
+ "ACWORTH GA",
+ 1561,
+ 6900,
+ 527,
+ 6865
+ ],
+ [
+ 490,
+ "CYNTHIA ESKEW",
+ 43,
+ "F",
+ "BRASELTON GA",
+ 576,
+ 6901,
+ 527,
+ 6881
+ ],
+ [
+ 491,
+ "STEPHANIE WILSON",
+ 36,
+ "F",
+ "TUCKER GA",
+ 1983,
+ 6903,
+ 527,
+ 6882
+ ],
+ [
+ 492,
+ "CAMBREE ROSE",
+ 17,
+ "F",
+ "ACWORTH GA",
+ 1558,
+ 6910,
+ 528,
+ 6875
+ ],
+ [
+ 493,
+ "PETER VAN DER REYDEN",
+ 44,
+ "M",
+ "ATLANTA GA",
+ 1878,
+ 6915,
+ 528,
+ 6905
+ ],
+ [
+ 494,
+ "JOHN COBB",
+ 58,
+ "M",
+ "ATLANTA GA",
+ 347,
+ 6916,
+ 528,
+ 6899
+ ],
+ [
+ 495,
+ "MILO COGAN",
+ 38,
+ "M",
+ "ATLANTA GA",
+ 354,
+ 6916,
+ 528,
+ 6894
+ ],
+ [
+ 496,
+ "ANDREW JEPPSON",
+ 37,
+ "M",
+ "CUMMING GA",
+ 929,
+ 6919,
+ 529,
+ 6870
+ ],
+ [
+ 497,
+ "TONIA HARBIN",
+ 45,
+ "F",
+ "WOODSTOCK GA",
+ 782,
+ 6919,
+ 529,
+ 6901
+ ],
+ [
+ 498,
+ "REBECCA WATTERS",
+ 24,
+ "F",
+ "MABLETON GA",
+ 1935,
+ 6920,
+ 529,
+ 6887
+ ],
+ [
+ 499,
+ "WILL OWENS",
+ 40,
+ "M",
+ "MABLETON GA",
+ 1383,
+ 6920,
+ 529,
+ 6886
+ ],
+ [
+ 500,
+ "ERIK ATKINSON",
+ 37,
+ "M",
+ "MILTON GA",
+ 70,
+ 6921,
+ 529,
+ 6865
+ ],
+ [
+ 501,
+ "LARRY KOLAND",
+ 44,
+ "M",
+ "MABLETON GA",
+ 1017,
+ 6923,
+ 529,
+ 6909
+ ],
+ [
+ 502,
+ "PAUL COX",
+ 41,
+ "M",
+ "ATLANTA GA",
+ 399,
+ 6923,
+ 529,
+ 6880
+ ],
+ [
+ 503,
+ "STEVE BRADY",
+ 54,
+ "M",
+ "LAWRENCEVILLE GA",
+ 195,
+ 6924,
+ 529,
+ 6891
+ ],
+ [
+ 504,
+ "RODNEY SMITH",
+ 45,
+ "M",
+ "CARROLLTON GA",
+ 1715,
+ 6924,
+ 529,
+ 6902
+ ],
+ [
+ 505,
+ "COURTNEY FOSTER",
+ 31,
+ "F",
+ "CANTON GA",
+ 622,
+ 6927,
+ 529,
+ 6900
+ ],
+ [
+ 506,
+ "NOELL WANNAMAKER",
+ 49,
+ "M",
+ "SMYRNA GA",
+ 1917,
+ 6930,
+ 529,
+ 6904
+ ],
+ [
+ 507,
+ "WILLIAM LEAHY",
+ 50,
+ "M",
+ "JASPER GA",
+ 1072,
+ 6933,
+ 530,
+ 6922
+ ],
+ [
+ 508,
+ "BENJAMIN KIRKLAND",
+ 22,
+ "M",
+ "DESTIN FL",
+ 1006,
+ 6933,
+ 530,
+ 6893
+ ],
+ [
+ 509,
+ "ALTON CHAPMAN",
+ 41,
+ "M",
+ "MABLETON GA",
+ 318,
+ 6936,
+ 530,
+ 6931
+ ],
+ [
+ 510,
+ "BOB DANVILLE",
+ 51,
+ "M",
+ "ALPHARETTA GA",
+ 441,
+ 6937,
+ 530,
+ 6923
+ ],
+ [
+ 511,
+ "KURT BRUDER",
+ 48,
+ "M",
+ "ALPHARETTA GA",
+ 223,
+ 6937,
+ 530,
+ 6925
+ ],
+ [
+ 512,
+ "MICHAEL FONSECA",
+ 33,
+ "M",
+ "POWDER SPRINGS GA",
+ 617,
+ 6939,
+ 530,
+ 6921
+ ],
+ [
+ 513,
+ "KRISTINA MCLAUGHLIN",
+ 35,
+ "F",
+ "CUMMING GA",
+ 1230,
+ 6941,
+ 530,
+ 6916
+ ],
+ [
+ 514,
+ "TIMOTHY TACKETT",
+ 49,
+ "M",
+ "SNELLVILLE GA",
+ 1798,
+ 6942,
+ 530,
+ 6914
+ ],
+ [
+ 515,
+ "MALLORY KIRKLAND",
+ 24,
+ "F",
+ "PEACHTREE CITY GA",
+ 1007,
+ 6943,
+ 530,
+ 6903
+ ],
+ [
+ 516,
+ "ROBIN SMITH",
+ 32,
+ "F",
+ "ACWORTH GA",
+ 1714,
+ 6945,
+ 531,
+ 6916
+ ],
+ [
+ 517,
+ "KEN KLAER",
+ 52,
+ "M",
+ "JOHNS CREEK DR GA",
+ 1011,
+ 6947,
+ 531,
+ 6907
+ ],
+ [
+ 518,
+ "ERIC NORDEN",
+ 46,
+ "M",
+ "ACWORTH GA",
+ 1350,
+ 6947,
+ 531,
+ 6925
+ ],
+ [
+ 519,
+ "MARK LASITER",
+ 39,
+ "M",
+ "MABLETON GA",
+ 1056,
+ 6954,
+ 531,
+ 6906
+ ],
+ [
+ 520,
+ "KATHERYN PETTUS",
+ 39,
+ "F",
+ "ATLANTA GA",
+ 1424,
+ 6956,
+ 531,
+ 6867
+ ],
+ [
+ 521,
+ "JACK DILLARD",
+ 29,
+ "M",
+ "LAWRENCEVILLE GA",
+ 491,
+ 6964,
+ 532,
+ 6919
+ ],
+ [
+ 522,
+ "MICHAEL THRASHER",
+ 29,
+ "M",
+ "ATLANTA GA",
+ 1833,
+ 6966,
+ 532,
+ 6927
+ ],
+ [
+ 523,
+ "KEN THRASHER",
+ 59,
+ "M",
+ "ATLANTA GA",
+ 1832,
+ 6967,
+ 532,
+ 6928
+ ],
+ [
+ 524,
+ "GUS JOHNSON",
+ 45,
+ "M",
+ "MARIETTA GA",
+ 945,
+ 6972,
+ 533,
+ 6939
+ ],
+ [
+ 525,
+ "TARA BLACK",
+ 41,
+ "F",
+ "ROSWELL GA",
+ 156,
+ 6973,
+ 533,
+ 6937
+ ],
+ [
+ 526,
+ "RAY BROWN",
+ 53,
+ "M",
+ "ROSWELL GA",
+ 219,
+ 6973,
+ 533,
+ 6959
+ ],
+ [
+ 527,
+ "SHARON BONDHUS",
+ 38,
+ "F",
+ "MABLETON GA",
+ 172,
+ 6974,
+ 533,
+ 6944
+ ],
+ [
+ 528,
+ "HEATHER SHOEMAKER",
+ 25,
+ "F",
+ "ALPHARETTA GA",
+ 1673,
+ 6974,
+ 533,
+ 6964
+ ],
+ [
+ 529,
+ "TONYA CENIZA",
+ 41,
+ "F",
+ "ALPHARETTA GA",
+ 304,
+ 6975,
+ 533,
+ 6964
+ ],
+ [
+ 530,
+ "CHRISTOPHER BARR",
+ 28,
+ "M",
+ "CANTON GA",
+ 105,
+ 6977,
+ 533,
+ 6961
+ ],
+ [
+ 531,
+ "KAREN KRESAK",
+ 47,
+ "F",
+ "MARIETTA GA",
+ 1026,
+ 6983,
+ 534,
+ 6959
+ ],
+ [
+ 532,
+ "STEVE CALBERT",
+ 40,
+ "M",
+ "WOODSTOCK GA",
+ 267,
+ 6985,
+ 534,
+ 6900
+ ],
+ [
+ 533,
+ "ALEXANDRA ALDRICH",
+ 42,
+ "F",
+ "SANDY SPRINGS GA",
+ 28,
+ 6990,
+ 534,
+ 6953
+ ],
+ [
+ 534,
+ "KEN GREBE",
+ 48,
+ "M",
+ "ACWORTH GA",
+ 726,
+ 6992,
+ 534,
+ 6967
+ ],
+ [
+ 535,
+ "LAURA HERAKOVICH",
+ 39,
+ "F",
+ "ATLANTA GA",
+ 836,
+ 6996,
+ 534,
+ 6971
+ ],
+ [
+ 536,
+ "MATTHEW TAYLOR",
+ 35,
+ "M",
+ "SMYRNA GA",
+ 1810,
+ 7000,
+ 535,
+ 6938
+ ],
+ [
+ 537,
+ "KAREN BATTLES",
+ 38,
+ "F",
+ "DAHLONEGA GA",
+ 124,
+ 7015,
+ 536,
+ 6987
+ ],
+ [
+ 538,
+ "DAVID RHODEN",
+ 41,
+ "M",
+ "CANTON GA",
+ 1518,
+ 7017,
+ 536,
+ 6965
+ ],
+ [
+ 539,
+ "BRETT CAMPBELL",
+ 37,
+ "M",
+ "ROSWELL GA",
+ 274,
+ 7018,
+ 536,
+ 6978
+ ],
+ [
+ 540,
+ "ROBERT MORRIS",
+ 34,
+ "M",
+ "DECATUR GA",
+ 1316,
+ 7022,
+ 537,
+ 6989
+ ],
+ [
+ 541,
+ "MOLLY FULLER",
+ 32,
+ "F",
+ "ATLANTA GA",
+ 653,
+ 7024,
+ 537,
+ 7002
+ ],
+ [
+ 542,
+ "ALESHKA CALDERON",
+ 25,
+ "F",
+ "SMYRNA GA",
+ 269,
+ 7025,
+ 537,
+ 6988
+ ],
+ [
+ 543,
+ "BONNIE SCOTT",
+ 22,
+ "F",
+ "ATLANTA GA",
+ 1626,
+ 7026,
+ 537,
+ 7002
+ ],
+ [
+ 544,
+ "ELIZABETH SMITH",
+ 27,
+ "F",
+ "MARIETTA GA",
+ 1705,
+ 7026,
+ 537,
+ 7017
+ ],
+ [
+ 545,
+ "BRETT HADDON-COOK",
+ 39,
+ "M",
+ "ROSWELL GA",
+ 753,
+ 7028,
+ 537,
+ 6989
+ ],
+ [
+ 546,
+ "LAURA JOPLING",
+ 40,
+ "F",
+ "GRAYSON GA",
+ 960,
+ 7028,
+ 537,
+ 7006
+ ],
+ [
+ 547,
+ "JEFF KLEIN",
+ 37,
+ "M",
+ "ROSWELL GA",
+ 1012,
+ 7030,
+ 537,
+ 6990
+ ],
+ [
+ 548,
+ "HUTCH DELOACH",
+ 56,
+ "M",
+ "DOUGLASVILLE GA",
+ 470,
+ 7031,
+ 537,
+ 7018
+ ],
+ [
+ 549,
+ "REBECCA BRYAN",
+ 39,
+ "F",
+ "CUMMING GA",
+ 226,
+ 7034,
+ 537,
+ 6985
+ ],
+ [
+ 550,
+ "DANIEL SZYMANSKI",
+ 44,
+ "M",
+ "ATLANTA GA",
+ 1797,
+ 7035,
+ 537,
+ 6970
+ ],
+ [
+ 551,
+ "MICHAEL TUCHALSKI",
+ 51,
+ "M",
+ "MARIETTA GA",
+ 1859,
+ 7038,
+ 538,
+ 6996
+ ],
+ [
+ 552,
+ "THERESE TUCHALSKI",
+ 51,
+ "F",
+ "MARIETTA GA",
+ 1860,
+ 7039,
+ 538,
+ 6998
+ ],
+ [
+ 553,
+ "NATALIE LOPRESTI",
+ 27,
+ "F",
+ "KENNESAW GA",
+ 1125,
+ 7040,
+ 538,
+ 7001
+ ],
+ [
+ 554,
+ "BART WALTERS",
+ 40,
+ "M",
+ "WATKINSVILLE GA",
+ 1908,
+ 7044,
+ 538,
+ 6994
+ ],
+ [
+ 555,
+ "ROBERT HOWREN",
+ 46,
+ "M",
+ "AUSTELL GA",
+ 877,
+ 7045,
+ 538,
+ 7034
+ ],
+ [
+ 556,
+ "NATHAN FANT",
+ 25,
+ "M",
+ "CARTERSVILLE GA",
+ 590,
+ 7046,
+ 538,
+ 7011
+ ],
+ [
+ 557,
+ "JAY BASSETT",
+ 27,
+ "M",
+ "MABLETON GA",
+ 122,
+ 7049,
+ 539,
+ 7028
+ ],
+ [
+ 558,
+ "DAVID TINSLEY",
+ 61,
+ "M",
+ "CUMMING GA",
+ 1842,
+ 7050,
+ 539,
+ 7029
+ ],
+ [
+ 559,
+ "CHAD DANIELS",
+ 36,
+ "M",
+ "SMYRNA GA",
+ 439,
+ 7051,
+ 539,
+ 6999
+ ],
+ [
+ 560,
+ "MICHAEL STANTON",
+ 28,
+ "M",
+ "DACULA GA",
+ 1755,
+ 7054,
+ 539,
+ 6954
+ ],
+ [
+ 561,
+ "BARRON SMITH",
+ 50,
+ "M",
+ "WHITE GA",
+ 1701,
+ 7057,
+ 539,
+ 7034
+ ],
+ [
+ 562,
+ "BRIAN SIMPSON",
+ 61,
+ "M",
+ "LAWNDALE NC",
+ 1684,
+ 7058,
+ 539,
+ 7034
+ ],
+ [
+ 563,
+ "CHRISTOPHER WEISER",
+ 42,
+ "M",
+ "ACWORTH GA",
+ 1944,
+ 7060,
+ 539,
+ 7013
+ ],
+ [
+ 564,
+ "AUBREY KNICK-KOPPENHOFER",
+ 23,
+ "F",
+ "ATLANTA GA",
+ 1014,
+ 7060,
+ 539,
+ 7006
+ ],
+ [
+ 565,
+ "GEORGE CONNOLLY",
+ 33,
+ "M",
+ "WOODSTOCK GA",
+ 372,
+ 7063,
+ 540,
+ 6950
+ ],
+ [
+ 566,
+ "KIM ROWAN",
+ 41,
+ "F",
+ "SMYRNA GA",
+ 1571,
+ 7064,
+ 540,
+ 7040
+ ],
+ [
+ 567,
+ "WARD PETTENGER",
+ 36,
+ "M",
+ "DOUGLASVILLE GA",
+ 1423,
+ 7064,
+ 540,
+ 7038
+ ],
+ [
+ 568,
+ "ERICA WATFORD",
+ 30,
+ "F",
+ "MARIETTA GA",
+ 1931,
+ 7066,
+ 540,
+ 7017
+ ],
+ [
+ 569,
+ "NICOLE EDWARDS",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 551,
+ 7068,
+ 540,
+ 7044
+ ],
+ [
+ 570,
+ "JANA MCCLENDON",
+ 47,
+ "F",
+ "MARIETTA GA",
+ 4,
+ 7068,
+ 540,
+ 7037
+ ],
+ [
+ 571,
+ "GORDON PATRICK",
+ 36,
+ "M",
+ "WOODSTOCK GA",
+ 1402,
+ 7069,
+ 540,
+ 7050
+ ],
+ [
+ 572,
+ "TERI MCKENNAN",
+ 35,
+ "F",
+ "TYRONE GA",
+ 1226,
+ 7069,
+ 540,
+ 7013
+ ],
+ [
+ 573,
+ "WILLIAM MARTIN II",
+ 41,
+ "M",
+ "MACON GA",
+ 1179,
+ 7070,
+ 540,
+ 7045
+ ],
+ [
+ 574,
+ "DAVID LAMAR",
+ 31,
+ "M",
+ "ATLANTA GA",
+ 1049,
+ 7077,
+ 541,
+ 7038
+ ],
+ [
+ 575,
+ "BEN PHILLIPS",
+ 34,
+ "M",
+ "ATLANTA GA",
+ 1433,
+ 7078,
+ 541,
+ 7039
+ ],
+ [
+ 576,
+ "CARLOS CASON",
+ 37,
+ "M",
+ "ATLANTA GA",
+ 296,
+ 7078,
+ 541,
+ 7065
+ ],
+ [
+ 577,
+ "RANDY STRICKLIN",
+ 39,
+ "M",
+ "STONE MOUNTAIN GA",
+ 2143,
+ 7080,
+ 541,
+ 7058
+ ],
+ [
+ 578,
+ "JOIE FROST",
+ 31,
+ "F",
+ "MARIETTA GA",
+ 650,
+ 7081,
+ 541,
+ 7035
+ ],
+ [
+ 579,
+ "WILLIAM CREEKMUIR",
+ 55,
+ "M",
+ "ATLANTA GA",
+ 403,
+ 7081,
+ 541,
+ 7050
+ ],
+ [
+ 580,
+ "CHRISTINE CASON",
+ 37,
+ "F",
+ "ATLANTA GA",
+ 297,
+ 7083,
+ 541,
+ 7070
+ ],
+ [
+ 581,
+ "ANTHONY WATSON",
+ 33,
+ "M",
+ "TUCKER GA",
+ 1933,
+ 7083,
+ 541,
+ 7043
+ ],
+ [
+ 582,
+ "CHARLIE WILLIAMSON",
+ 33,
+ "M",
+ "LITHIA SPRINGS GA",
+ 1977,
+ 7084,
+ 541,
+ 7055
+ ],
+ [
+ 583,
+ "KURT SCHNEIDER",
+ 43,
+ "M",
+ "CUMMING GA",
+ 1613,
+ 7085,
+ 541,
+ 7051
+ ],
+ [
+ 584,
+ "EVAN RITTENBERG",
+ 46,
+ "M",
+ "NASHVILLE TN",
+ 1532,
+ 7085,
+ 541,
+ 6993
+ ],
+ [
+ 585,
+ "TERESA KIRKMAN",
+ 38,
+ "F",
+ "CANTON GA",
+ 1008,
+ 7087,
+ 541,
+ 7061
+ ],
+ [
+ 586,
+ "VALERIE KELLEHER",
+ 61,
+ "F",
+ "ATLANTA GA",
+ 980,
+ 7087,
+ 541,
+ 7066
+ ],
+ [
+ 587,
+ "DIANNA MORTON",
+ 41,
+ "F",
+ "ATLANTA GA",
+ 1318,
+ 7088,
+ 542,
+ 7017
+ ],
+ [
+ 588,
+ "DANIEL EARLES",
+ 40,
+ "M",
+ "SMYRNA GA",
+ 541,
+ 7093,
+ 542,
+ 6987
+ ],
+ [
+ 589,
+ "BRENDA FLAIG",
+ 37,
+ "F",
+ "ROSWELL GA",
+ 606,
+ 7098,
+ 542,
+ 7087
+ ],
+ [
+ 590,
+ "SUZANNE MCGUIRE",
+ 31,
+ "F",
+ "MCDONOUGH GA",
+ 1221,
+ 7106,
+ 543,
+ 6954
+ ],
+ [
+ 591,
+ "PATRICK MACKEN",
+ 36,
+ "M",
+ "DULUTH GA",
+ 1147,
+ 7108,
+ 543,
+ 7065
+ ],
+ [
+ 592,
+ "JOSIE SNAPP",
+ 29,
+ "F",
+ "MCDONOUGH GA",
+ 1720,
+ 7110,
+ 543,
+ 7043
+ ],
+ [
+ 593,
+ "DAVID ST. HILAIRE",
+ 54,
+ "M",
+ "ALPHARETTA GA",
+ 1743,
+ 7110,
+ 543,
+ 7082
+ ],
+ [
+ 594,
+ "JAMES RICKETT",
+ 41,
+ "M",
+ "ATLANTA GA",
+ 1524,
+ 7111,
+ 543,
+ 6952
+ ],
+ [
+ 595,
+ "ELLEN LAHATTE",
+ 14,
+ "F",
+ "ROSWELL GA",
+ 1045,
+ 7113,
+ 543,
+ 7078
+ ],
+ [
+ 596,
+ "SUSAN PERKINS",
+ 47,
+ "F",
+ "ATLANTA GA",
+ 1418,
+ 7115,
+ 544,
+ 7077
+ ],
+ [
+ 597,
+ "MIKE KOTANIAN",
+ 39,
+ "M",
+ "SUWANEE GA",
+ 1021,
+ 7119,
+ 544,
+ 7109
+ ],
+ [
+ 598,
+ "KIM KRONSHAGE",
+ 40,
+ "M",
+ "ALPHARETTA GA",
+ 1030,
+ 7119,
+ 544,
+ 7109
+ ],
+ [
+ 599,
+ "JOSH TOLLEY",
+ 31,
+ "M",
+ "MARIETTA GA",
+ 1845,
+ 7120,
+ 544,
+ 7055
+ ],
+ [
+ 600,
+ "DANIELLE SPEARMAN",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 1730,
+ 7121,
+ 544,
+ 7061
+ ],
+ [
+ 601,
+ "MICHAEL SIMPSON",
+ 38,
+ "M",
+ "MARIETTA GA",
+ 1686,
+ 7122,
+ 544,
+ 7083
+ ],
+ [
+ 602,
+ "LEE JOHNSON",
+ 42,
+ "F",
+ "ATHENS GA",
+ 948,
+ 7122,
+ 544,
+ 7104
+ ],
+ [
+ 603,
+ "KORY MUEHLHAUSER",
+ 30,
+ "F",
+ "SMYRNA GA",
+ 1320,
+ 7123,
+ 544,
+ 7103
+ ],
+ [
+ 604,
+ "DAVID JACKLITCH",
+ 58,
+ "M",
+ "NEW SMYRNA BEAC FL",
+ 906,
+ 7123,
+ 544,
+ 7096
+ ],
+ [
+ 605,
+ "THOMAS ANDREWS",
+ 47,
+ "M",
+ "SANDY SPRINGS GA",
+ 57,
+ 7124,
+ 544,
+ 7107
+ ],
+ [
+ 606,
+ "CAROLYN LAHATTE",
+ 50,
+ "F",
+ "ROSWELL GA",
+ 1044,
+ 7125,
+ 544,
+ 7090
+ ],
+ [
+ 607,
+ "JERRY LAHATTE",
+ 49,
+ "M",
+ "ROSWELL GA",
+ 1046,
+ 7126,
+ 544,
+ 7091
+ ],
+ [
+ 608,
+ "DAVID DANIEL",
+ 40,
+ "M",
+ "SUWANEE GA",
+ 437,
+ 7126,
+ 544,
+ 7101
+ ],
+ [
+ 609,
+ "LINDSAY ROBISON",
+ 33,
+ "F",
+ "SHARPSBURG GA",
+ 1548,
+ 7127,
+ 545,
+ 7090
+ ],
+ [
+ 610,
+ "LISA ROGERS",
+ 36,
+ "F",
+ "FAYETTEVILLE GA",
+ 1552,
+ 7128,
+ 545,
+ 7091
+ ],
+ [
+ 611,
+ "CHELSEA BUTTRAM",
+ 22,
+ "F",
+ "CATAULA GA",
+ 259,
+ 7129,
+ 545,
+ 7009
+ ],
+ [
+ 612,
+ "KATHERINA GONZALEZ",
+ 43,
+ "F",
+ "MARIETTA GA",
+ 707,
+ 7132,
+ 545,
+ 7081
+ ],
+ [
+ 613,
+ "MICHAEL RIEMAN",
+ 33,
+ "M",
+ "KENNESAW GA",
+ 1528,
+ 7134,
+ 545,
+ 7126
+ ],
+ [
+ 614,
+ "GLORIA ARGUMEDO",
+ 40,
+ "F",
+ "LONG BEACH CA",
+ 62,
+ 7136,
+ 545,
+ 7108
+ ],
+ [
+ 615,
+ "KEITH GALLIGAN",
+ 35,
+ "M",
+ "JASPER GA",
+ 661,
+ 7136,
+ 545,
+ 7086
+ ],
+ [
+ 616,
+ "SANTIAGO (TED) RAVELO, JR.",
+ 39,
+ "M",
+ "NEWNAN GA",
+ 1495,
+ 7138,
+ 545,
+ 7108
+ ],
+ [
+ 617,
+ "DELL MAJURE",
+ 40,
+ "M",
+ "CUMMING GA",
+ 1156,
+ 7140,
+ 545,
+ 7016
+ ],
+ [
+ 618,
+ "PAUL FERGUSON",
+ 29,
+ "M",
+ "ACWORTH GA",
+ 597,
+ 7142,
+ 546,
+ 7090
+ ],
+ [
+ 619,
+ "AMY VINSON",
+ 37,
+ "F",
+ "ROSWELL GA",
+ 1891,
+ 7144,
+ 546,
+ 7107
+ ],
+ [
+ 620,
+ "SAMRA ALIKHAN",
+ 39,
+ "F",
+ "SMYRNA GA",
+ 32,
+ 7146,
+ 546,
+ 7122
+ ],
+ [
+ 621,
+ "GEORGE MONSALVATGE",
+ 44,
+ "M",
+ "POWDER SPRINGS GA",
+ 1297,
+ 7147,
+ 546,
+ 7130
+ ],
+ [
+ 622,
+ "MADELEINE HACKNEY",
+ 36,
+ "F",
+ "ATLANTA GA",
+ 752,
+ 7148,
+ 546,
+ 7040
+ ],
+ [
+ 623,
+ "NATE SANDERS",
+ 31,
+ "M",
+ "CANTON GA",
+ 1590,
+ 7148,
+ 546,
+ 7120
+ ],
+ [
+ 624,
+ "ROBERT POMA",
+ 49,
+ "M",
+ "MARIETTA GA",
+ 2026,
+ 7150,
+ 546,
+ 7135
+ ],
+ [
+ 625,
+ "ELLEN COMEAUX",
+ 32,
+ "F",
+ "ALPHARETTA GA",
+ 368,
+ 7156,
+ 547,
+ 7138
+ ],
+ [
+ 626,
+ "AUDREY SUMMERS",
+ 36,
+ "F",
+ "SMYRNA GA",
+ 1783,
+ 7156,
+ 547,
+ 7035
+ ],
+ [
+ 627,
+ "CHRIS TART",
+ 37,
+ "M",
+ "ATLANTA GA",
+ 1801,
+ 7157,
+ 547,
+ 7081
+ ],
+ [
+ 628,
+ "JESSICA FORREST",
+ 24,
+ "F",
+ "SPRINGFIELD IL",
+ 621,
+ 7157,
+ 547,
+ 7106
+ ],
+ [
+ 629,
+ "TIMOTHY LLOYD",
+ 28,
+ "M",
+ "DECATUR GA",
+ 1109,
+ 7161,
+ 547,
+ 7140
+ ],
+ [
+ 630,
+ "CLAUDE COLE",
+ 52,
+ "M",
+ "MABLETON GA",
+ 358,
+ 7162,
+ 547,
+ 7134
+ ],
+ [
+ 631,
+ "JACQUELINE SANDORA",
+ 34,
+ "F",
+ "WOODSTOCK GA",
+ 1592,
+ 7168,
+ 548,
+ 7136
+ ],
+ [
+ 632,
+ "HEATHER CARTER",
+ 28,
+ "F",
+ "KATHLEEN GA",
+ 289,
+ 7169,
+ 548,
+ 7142
+ ],
+ [
+ 633,
+ "DENISE BERGEY",
+ 40,
+ "F",
+ "CUMMING GA",
+ 145,
+ 7169,
+ 548,
+ 7107
+ ],
+ [
+ 634,
+ "STACEY KELLER",
+ 43,
+ "F",
+ "MARIETTA GA",
+ 981,
+ 7170,
+ 548,
+ 7096
+ ],
+ [
+ 635,
+ "JANICE ST. HILAIRE",
+ 47,
+ "F",
+ "ALPHARETTA GA",
+ 1744,
+ 7177,
+ 548,
+ 7148
+ ],
+ [
+ 636,
+ "GLENN SIMPSON",
+ 44,
+ "M",
+ "ATLANTA GA",
+ 1685,
+ 7178,
+ 548,
+ 7133
+ ],
+ [
+ 637,
+ "CHAD NILES",
+ 38,
+ "M",
+ "ATLANTA GA",
+ 1349,
+ 7181,
+ 549,
+ 7144
+ ],
+ [
+ 638,
+ "NATALIE WATSON",
+ 25,
+ "F",
+ "TUCKER GA",
+ 1934,
+ 7181,
+ 549,
+ 7140
+ ],
+ [
+ 639,
+ "RON EAKER",
+ 52,
+ "M",
+ "AUGUSTA GA",
+ 539,
+ 7187,
+ 549,
+ 7161
+ ],
+ [
+ 640,
+ "ALEXANDRA HARTNETT",
+ 25,
+ "F",
+ "KENNESAW GA",
+ 802,
+ 7188,
+ 549,
+ 7173
+ ],
+ [
+ 641,
+ "ROLF SODERBERG",
+ 57,
+ "M",
+ "JASPER GA",
+ 1722,
+ 7190,
+ 549,
+ 7175
+ ],
+ [
+ 642,
+ "FRANK TURNER",
+ 41,
+ "M",
+ "CUMMING GA",
+ 1869,
+ 7191,
+ 549,
+ 7170
+ ],
+ [
+ 643,
+ "HAMPTON HALE",
+ 41,
+ "M",
+ "MARIETTA GA",
+ 757,
+ 7193,
+ 550,
+ 7120
+ ],
+ [
+ 644,
+ "CARL LINE",
+ 50,
+ "M",
+ "LITHONIA GA",
+ 1104,
+ 7193,
+ 550,
+ 7156
+ ],
+ [
+ 645,
+ "ALISON ESTELLA",
+ 38,
+ "F",
+ "MARIETTA GA",
+ 579,
+ 7193,
+ 550,
+ 7121
+ ],
+ [
+ 646,
+ "NELSON MILLER",
+ 36,
+ "M",
+ "ADAIRSVILLE GA",
+ 1282,
+ 7195,
+ 550,
+ 7148
+ ],
+ [
+ 647,
+ "AMY ROBBINS",
+ 38,
+ "F",
+ "CUMMING GA",
+ 1537,
+ 7195,
+ 550,
+ 7169
+ ],
+ [
+ 648,
+ "SHAWN SIMPSON",
+ 34,
+ "M",
+ "SANDY SPRINGS GA",
+ 1689,
+ 7198,
+ 550,
+ 7172
+ ],
+ [
+ 649,
+ "JESSICA ROPER",
+ 22,
+ "F",
+ "JASPER GA",
+ 1556,
+ 7198,
+ 550,
+ 7158
+ ],
+ [
+ 650,
+ "LIANI SWINGLE",
+ 29,
+ "F",
+ "CHAMBLEE GA",
+ 1795,
+ 7199,
+ 550,
+ 7167
+ ],
+ [
+ 651,
+ "ELEANOR THOMPSON",
+ 51,
+ "F",
+ "SUGAR HILL GA",
+ 1825,
+ 7200,
+ 550,
+ 7163
+ ],
+ [
+ 652,
+ "JILL KANTOR",
+ 34,
+ "F",
+ "MARIETTA GA",
+ 967,
+ 7207,
+ 551,
+ 7140
+ ],
+ [
+ 653,
+ "SUSAN SCHMIDT",
+ 37,
+ "F",
+ "WOODSTOCK GA",
+ 1609,
+ 7207,
+ 551,
+ 7175
+ ],
+ [
+ 654,
+ "JENNIFER ROWAN DUPLICATE",
+ 24,
+ "F",
+ "",
+ 2587,
+ 7208,
+ 551,
+ -1
+ ],
+ [
+ 655,
+ "KATHERINE CUTTER",
+ 35,
+ "F",
+ "ATHENS GA",
+ 427,
+ 7212,
+ 551,
+ 7181
+ ],
+ [
+ 656,
+ "SCOTT SCHATZBERG",
+ 39,
+ "M",
+ "ATHENS GA",
+ 1603,
+ 7212,
+ 551,
+ 7182
+ ],
+ [
+ 657,
+ "JENNIFER SORRELLS",
+ 35,
+ "F",
+ "GAINESVILLE GA",
+ 1726,
+ 7214,
+ 551,
+ 7100
+ ],
+ [
+ 658,
+ "DAVID STEINES",
+ 62,
+ "M",
+ "WOODSTOCK GA",
+ 1758,
+ 7215,
+ 551,
+ 7193
+ ],
+ [
+ 659,
+ "EMILY DRURY",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 527,
+ 7215,
+ 551,
+ 7129
+ ],
+ [
+ 660,
+ "CAROLYN DOWNEY",
+ 48,
+ "F",
+ "KENNESAW GA",
+ 518,
+ 7216,
+ 551,
+ 7184
+ ],
+ [
+ 661,
+ "ANDREA HUYCK",
+ 35,
+ "F",
+ "CANTON GA",
+ 897,
+ 7216,
+ 551,
+ 7195
+ ],
+ [
+ 662,
+ "JILLIAN MARTIN",
+ 28,
+ "F",
+ "ATLANTA GA",
+ 1176,
+ 7218,
+ 551,
+ 7181
+ ],
+ [
+ 663,
+ "SHANE SHEFFIELD",
+ 38,
+ "M",
+ "PEACHTREE CITY GA",
+ 1662,
+ 7222,
+ 552,
+ 7191
+ ],
+ [
+ 664,
+ "DANA VAN WINKLE",
+ 26,
+ "F",
+ "SENOIA GA",
+ 1882,
+ 7225,
+ 552,
+ 7129
+ ],
+ [
+ 665,
+ "ALISON NEISLER",
+ 32,
+ "F",
+ "MABLETON GA",
+ 1337,
+ 7226,
+ 552,
+ 7203
+ ],
+ [
+ 666,
+ "KATHRYN MILLER",
+ 35,
+ "F",
+ "ATLANTA GA",
+ 1279,
+ 7226,
+ 552,
+ 7178
+ ],
+ [
+ 667,
+ "JOANNA DAVIDSON",
+ 41,
+ "F",
+ "ATLANTA GA",
+ 446,
+ 7227,
+ 552,
+ 7203
+ ],
+ [
+ 668,
+ "BRYAN PRICE",
+ 39,
+ "M",
+ "NEWNAN GA",
+ 1467,
+ 7228,
+ 552,
+ 7178
+ ],
+ [
+ 669,
+ "LAINE KILBURN",
+ 37,
+ "F",
+ "ATLANTA GA",
+ 995,
+ 7232,
+ 553,
+ 7210
+ ],
+ [
+ 670,
+ "STEPHANIE TONRA",
+ 42,
+ "F",
+ "ROSWELL GA",
+ 1847,
+ 7234,
+ 553,
+ 7201
+ ],
+ [
+ 671,
+ "ANDREW WARD",
+ 23,
+ "M",
+ "HOUSTON TX",
+ 1918,
+ 7235,
+ 553,
+ 7175
+ ],
+ [
+ 672,
+ "ADAM MILLER",
+ 29,
+ "M",
+ "ATLANTA GA",
+ 1271,
+ 7236,
+ 553,
+ 7184
+ ],
+ [
+ 673,
+ "MANDI SUMMERS",
+ 28,
+ "F",
+ "DALLAS GA",
+ 1786,
+ 7236,
+ 553,
+ 7195
+ ],
+ [
+ 674,
+ "SCOTT MCDUFFEE",
+ 38,
+ "M",
+ "ROSWELL GA",
+ 1212,
+ 7240,
+ 553,
+ 7205
+ ],
+ [
+ 675,
+ "TERESA MOORE",
+ 41,
+ "F",
+ "FAYETTEVILLE GA",
+ 1309,
+ 7241,
+ 553,
+ 7199
+ ],
+ [
+ 676,
+ "LAURA SCHOLZ",
+ 34,
+ "F",
+ "ATLANTA GA",
+ 1616,
+ 7242,
+ 553,
+ 7124
+ ],
+ [
+ 677,
+ "TIMOTHY LONG",
+ 47,
+ "M",
+ "ATLANTA GA",
+ 1122,
+ 7242,
+ 553,
+ 7124
+ ],
+ [
+ 678,
+ "MICHAEL LATHAM",
+ 61,
+ "M",
+ "MABLETON GA",
+ 1061,
+ 7249,
+ 554,
+ 7242
+ ],
+ [
+ 679,
+ "MIQUEL SCHLOERKE",
+ 34,
+ "F",
+ "ALPHARETTA GA",
+ 1607,
+ 7250,
+ 554,
+ 7214
+ ],
+ [
+ 680,
+ "MICHAEL RAYMOND",
+ 34,
+ "M",
+ "MILTON GA",
+ 2027,
+ 7252,
+ 554,
+ 7118
+ ],
+ [
+ 681,
+ "SUSIE CRISLER",
+ 43,
+ "F",
+ "ATLANTA GA",
+ 406,
+ 7252,
+ 554,
+ 7220
+ ],
+ [
+ 682,
+ "RODNEY BARRY",
+ 52,
+ "M",
+ "SMYRNA GA",
+ 110,
+ 7259,
+ 555,
+ 7237
+ ],
+ [
+ 683,
+ "PAGETT BOSSI",
+ 40,
+ "F",
+ "DECATUR GA",
+ 177,
+ 7259,
+ 555,
+ 7212
+ ],
+ [
+ 684,
+ "MELISSA BRODY",
+ 23,
+ "F",
+ "ATLANTA GA",
+ 209,
+ 7259,
+ 555,
+ 7188
+ ],
+ [
+ 685,
+ "JOANNE IANITELLO",
+ 43,
+ "F",
+ "WOODSTOCK GA",
+ 903,
+ 7261,
+ 555,
+ 7247
+ ],
+ [
+ 686,
+ "TIM DOWDY",
+ 49,
+ "M",
+ "MCDONOUGH GA",
+ 516,
+ 7266,
+ 555,
+ 7244
+ ],
+ [
+ 687,
+ "ANTHONY STOLARSKI",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 1767,
+ 7270,
+ 555,
+ 7148
+ ],
+ [
+ 688,
+ "MICHAEL BOZEMAN",
+ 31,
+ "M",
+ "JOHNS CREEK GA",
+ 190,
+ 7275,
+ 556,
+ 7206
+ ],
+ [
+ 689,
+ "NANCY ALBINGER",
+ 47,
+ "F",
+ "MARIETTA GA",
+ 24,
+ 7276,
+ 556,
+ 7231
+ ],
+ [
+ 690,
+ "RHONDA HARRISON",
+ 37,
+ "F",
+ "CHATSWORTH GA",
+ 799,
+ 7277,
+ 556,
+ 7192
+ ],
+ [
+ 691,
+ "ANITA BURKES",
+ 33,
+ "F",
+ "CUMMING GA",
+ 246,
+ 7279,
+ 556,
+ 7231
+ ],
+ [
+ 692,
+ "JILL WANDSTRAT",
+ 33,
+ "F",
+ "ATLANTA GA",
+ 1915,
+ 7282,
+ 556,
+ 7230
+ ],
+ [
+ 693,
+ "ELIZABETH HESMER",
+ 55,
+ "F",
+ "MARIETTA GA",
+ 839,
+ 7284,
+ 557,
+ 7255
+ ],
+ [
+ 694,
+ "RILINDO FOSTER",
+ 36,
+ "M",
+ "ATLANTA GA",
+ 625,
+ 7286,
+ 557,
+ 7237
+ ],
+ [
+ 695,
+ "JENKA FYFE",
+ 35,
+ "F",
+ "ATLANTA GA",
+ 656,
+ 7295,
+ 557,
+ 7181
+ ],
+ [
+ 696,
+ "KELLY JERDEN",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 930,
+ 7296,
+ 557,
+ 7229
+ ],
+ [
+ 697,
+ "ROBERT HULME-LIPPERT",
+ 28,
+ "M",
+ "DECATUR GA",
+ 882,
+ 7297,
+ 557,
+ 7264
+ ],
+ [
+ 698,
+ "JAMES HANSEN",
+ 44,
+ "M",
+ "LYNDHURST OH",
+ 778,
+ 7299,
+ 558,
+ 7243
+ ],
+ [
+ 699,
+ "JILL BAGBY",
+ 46,
+ "F",
+ "BIRMINGHAM AL",
+ 77,
+ 7302,
+ 558,
+ 7260
+ ],
+ [
+ 700,
+ "BRIAN FRANKLIN",
+ 32,
+ "M",
+ "TYRONE GA",
+ 631,
+ 7305,
+ 558,
+ 7246
+ ],
+ [
+ 701,
+ "AMBER MELVILLE",
+ 29,
+ "F",
+ "CARROLLTON GA",
+ 1252,
+ 7308,
+ 558,
+ 7224
+ ],
+ [
+ 702,
+ "L WALLER",
+ 38,
+ "F",
+ "ATLANTA GA",
+ 1905,
+ 7309,
+ 558,
+ 7274
+ ],
+ [
+ 703,
+ "SARAH PORRI",
+ 23,
+ "F",
+ "MARIETTA GA",
+ 1457,
+ 7311,
+ 559,
+ 7291
+ ],
+ [
+ 704,
+ "TOM BANG",
+ 48,
+ "M",
+ "DECATUR GA",
+ 93,
+ 7314,
+ 559,
+ 7253
+ ],
+ [
+ 705,
+ "TARA GREGORY",
+ 38,
+ "F",
+ "ALPHARETTA GA",
+ 733,
+ 7315,
+ 559,
+ 7168
+ ],
+ [
+ 706,
+ "BONGSUB SHIM",
+ 51,
+ "M",
+ "LAGRANGE GA",
+ 1669,
+ 7316,
+ 559,
+ 7232
+ ],
+ [
+ 707,
+ "JOEL FERGUSON",
+ 59,
+ "M",
+ "POWDER SPRINGS GA",
+ 596,
+ 7318,
+ 559,
+ 7264
+ ],
+ [
+ 708,
+ "SEAN BRAUD",
+ 34,
+ "M",
+ "ATLANTA GA",
+ 197,
+ 7318,
+ 559,
+ 7252
+ ],
+ [
+ 709,
+ "HERBERT WASHINGTON",
+ 42,
+ "M",
+ "PEACHTREE CITY GA",
+ 1926,
+ 7320,
+ 559,
+ 7300
+ ],
+ [
+ 710,
+ "CHRISTIE CASEY",
+ 36,
+ "F",
+ "LAKELAND TN",
+ 295,
+ 7320,
+ 559,
+ 7213
+ ],
+ [
+ 711,
+ "KEVIN BALDWIN",
+ 36,
+ "M",
+ "DULUTH GA",
+ 85,
+ 7325,
+ 560,
+ 7296
+ ],
+ [
+ 712,
+ "SAMUEL SIMPSON",
+ 28,
+ "M",
+ "KENNESAW GA",
+ 1688,
+ 7328,
+ 560,
+ 7310
+ ],
+ [
+ 713,
+ "MATT POHLMANN",
+ 26,
+ "M",
+ "ATLANTA GA",
+ 1451,
+ 7328,
+ 560,
+ 7292
+ ],
+ [
+ 714,
+ "STUART DAILEY",
+ 37,
+ "M",
+ "MURRAYVILLE GA",
+ 430,
+ 7329,
+ 560,
+ 7311
+ ],
+ [
+ 715,
+ "MARY MCDONALD",
+ 37,
+ "F",
+ "CARTERSVILLE GA",
+ 1209,
+ 7330,
+ 560,
+ 7276
+ ],
+ [
+ 716,
+ "KELLY BARBERA",
+ 24,
+ "F",
+ "NEW YORK NY",
+ 98,
+ 7332,
+ 560,
+ 7293
+ ],
+ [
+ 717,
+ "ELLEN MCNAMARA",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 1237,
+ 7332,
+ 560,
+ 7294
+ ],
+ [
+ 718,
+ "RENEE WILLIAMS",
+ 36,
+ "F",
+ "SAVANNAH GA",
+ 1976,
+ 7333,
+ 560,
+ 7297
+ ],
+ [
+ 719,
+ "CINDY MCGEE",
+ 42,
+ "F",
+ "DUNWOODY GA",
+ 1217,
+ 7333,
+ 560,
+ 7317
+ ],
+ [
+ 720,
+ "MOLLY ELMORE",
+ 36,
+ "F",
+ "NORCROSS GA",
+ 568,
+ 7334,
+ 560,
+ 7294
+ ],
+ [
+ 721,
+ "JOHNNY WEBB",
+ 61,
+ "M",
+ "ACWORTH GA",
+ 1937,
+ 7336,
+ 560,
+ 7278
+ ],
+ [
+ 722,
+ "BILL YATES",
+ 45,
+ "M",
+ "KENNESAW GA",
+ 2015,
+ 7336,
+ 560,
+ 7277
+ ],
+ [
+ 723,
+ "TAMMY BROWN",
+ 46,
+ "F",
+ "ROSWELL GA",
+ 220,
+ 7340,
+ 561,
+ 7325
+ ],
+ [
+ 724,
+ "MELANIE FRICKS",
+ 48,
+ "F",
+ "ALPHARETTA GA",
+ 645,
+ 7344,
+ 561,
+ 7312
+ ],
+ [
+ 725,
+ "FRANK FRICKS",
+ 50,
+ "M",
+ "ALPHARETTA GA",
+ 644,
+ 7344,
+ 561,
+ 7312
+ ],
+ [
+ 726,
+ "TRACY OVERTON",
+ 36,
+ "F",
+ "KENNESAW GA",
+ 1379,
+ 7345,
+ 561,
+ 7252
+ ],
+ [
+ 727,
+ "CARALYN LEONARD",
+ 52,
+ "F",
+ "MANSFIELD GA",
+ 1084,
+ 7348,
+ 561,
+ 7294
+ ],
+ [
+ 728,
+ "WILLIAM PARRISH",
+ 42,
+ "M",
+ "CARROLLTON GA",
+ 1397,
+ 7348,
+ 561,
+ 7291
+ ],
+ [
+ 729,
+ "ROBERT WILSON",
+ 39,
+ "M",
+ "ROSWELL GA",
+ 1982,
+ 7349,
+ 561,
+ 7316
+ ],
+ [
+ 730,
+ "CATHY HAMRICK",
+ 35,
+ "F",
+ "WOODSTOCK GA",
+ 772,
+ 7350,
+ 562,
+ 7313
+ ],
+ [
+ 731,
+ "TIMOTHY HENDRICKS",
+ 39,
+ "M",
+ "GRIFFIN GA",
+ 827,
+ 7351,
+ 562,
+ 7307
+ ],
+ [
+ 732,
+ "JUDY CANGEALOSE",
+ 46,
+ "F",
+ "SMYRNA GA",
+ 279,
+ 7354,
+ 562,
+ 7323
+ ],
+ [
+ 733,
+ "JENNIFER GROSS",
+ 23,
+ "F",
+ "MCDONOUGH GA",
+ 743,
+ 7356,
+ 562,
+ 7331
+ ],
+ [
+ 734,
+ "ARI MATHE",
+ 31,
+ "F",
+ "FLOWERY BRANCH GA",
+ 1184,
+ 7359,
+ 562,
+ 7329
+ ],
+ [
+ 735,
+ "MICHAL DOERGE",
+ 51,
+ "M",
+ "HARRISBURG IL",
+ 502,
+ 7359,
+ 562,
+ 7315
+ ],
+ [
+ 736,
+ "BONNIE BASSETT",
+ 35,
+ "F",
+ "DECATUR GA",
+ 121,
+ 7359,
+ 562,
+ 7329
+ ],
+ [
+ 737,
+ "MARSHALL THURMOND",
+ 56,
+ "M",
+ "POWDER SPRINGS GA",
+ 1835,
+ 7363,
+ 563,
+ 7305
+ ],
+ [
+ 738,
+ "QUINCY BARNETT",
+ 32,
+ "M",
+ "LITHONIA GA",
+ 104,
+ 7365,
+ 563,
+ 7343
+ ],
+ [
+ 739,
+ "HOLLY BONVISSUTO",
+ 40,
+ "F",
+ "SMYRNA GA",
+ 174,
+ 7366,
+ 563,
+ 7320
+ ],
+ [
+ 740,
+ "KELLY HUNT",
+ 23,
+ "F",
+ "ATLANTA GA",
+ 887,
+ 7366,
+ 563,
+ 7307
+ ],
+ [
+ 741,
+ "DIANA HATCHER",
+ 35,
+ "F",
+ "ROSWELL GA",
+ 814,
+ 7367,
+ 563,
+ 7336
+ ],
+ [
+ 742,
+ "CAREY CHIPPS",
+ 45,
+ "F",
+ "MARIETTA GA",
+ 327,
+ 7367,
+ 563,
+ 7284
+ ],
+ [
+ 743,
+ "JEFF BREWER",
+ 50,
+ "M",
+ "KENNESAW GA",
+ 202,
+ 7375,
+ 563,
+ 7318
+ ],
+ [
+ 744,
+ "JULIE CERNICH",
+ 42,
+ "F",
+ "GRAYSON GA",
+ 306,
+ 7378,
+ 564,
+ 7356
+ ],
+ [
+ 745,
+ "MARIA BRAUNE",
+ 40,
+ "F",
+ "ROSWELL GA",
+ 198,
+ 7387,
+ 564,
+ 7314
+ ],
+ [
+ 746,
+ "GINGER PHELAN",
+ 48,
+ "F",
+ "PEACHTREE CITY GA",
+ 1428,
+ 7388,
+ 564,
+ 7345
+ ],
+ [
+ 747,
+ "SUSIE DEAN",
+ 30,
+ "F",
+ "WOODSTOCK GA",
+ 461,
+ 7390,
+ 565,
+ 7337
+ ],
+ [
+ 748,
+ "RAJEEV DAYAL",
+ 31,
+ "M",
+ "SMYRNA GA",
+ 459,
+ 7391,
+ 565,
+ 7311
+ ],
+ [
+ 749,
+ "KATHARINA PROBST",
+ 34,
+ "F",
+ "ATLANTA GA",
+ 1473,
+ 7391,
+ 565,
+ 7311
+ ],
+ [
+ 750,
+ "TAWANDA LEWIS",
+ 33,
+ "F",
+ "BUFORD GA",
+ 1095,
+ 7392,
+ 565,
+ 7317
+ ],
+ [
+ 751,
+ "KOREY CARTER",
+ 33,
+ "F",
+ "SMYRNA GA",
+ 291,
+ 7392,
+ 565,
+ 7378
+ ],
+ [
+ 752,
+ "GARY SANDERS",
+ 53,
+ "M",
+ "ACWORTH GA",
+ 1588,
+ 7393,
+ 565,
+ 7331
+ ],
+ [
+ 753,
+ "EMILY WILLIAMS",
+ 30,
+ "F",
+ "AUBURN AL",
+ 1973,
+ 7394,
+ 565,
+ 7285
+ ],
+ [
+ 754,
+ "ELIZABETH HUMPHRIES",
+ 43,
+ "F",
+ "CUMMING GA",
+ 884,
+ 7403,
+ 566,
+ 7374
+ ],
+ [
+ 755,
+ "JEFFREY HOLLINGTON",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 855,
+ 7403,
+ 566,
+ 7366
+ ],
+ [
+ 756,
+ "ADDIE COCHRAN",
+ 36,
+ "F",
+ "MABLETON GA",
+ 348,
+ 7405,
+ 566,
+ -1
+ ],
+ [
+ 757,
+ "C.L. DUNN",
+ 60,
+ "M",
+ "DALTON GA",
+ 534,
+ 7407,
+ 566,
+ 7322
+ ],
+ [
+ 758,
+ "JENNIFER ALSOBROOK",
+ 39,
+ "F",
+ "SUGAR HILL GA",
+ 37,
+ 7407,
+ 566,
+ 7383
+ ],
+ [
+ 759,
+ "LAURA BETH JACKSON",
+ 18,
+ "F",
+ "ALPHARETTA GA",
+ 910,
+ 7408,
+ 566,
+ 7350
+ ],
+ [
+ 760,
+ "EDDIE PULLEY",
+ 47,
+ "M",
+ "MARIETTA GA",
+ 1475,
+ 7409,
+ 566,
+ 7349
+ ],
+ [
+ 761,
+ "GREG FANSLER",
+ 30,
+ "M",
+ "BLACKSBURG VA",
+ 589,
+ 7412,
+ 566,
+ 7362
+ ],
+ [
+ 762,
+ "SUSIE PANNES",
+ 37,
+ "F",
+ "ORLANDO FL",
+ 1391,
+ 7412,
+ 566,
+ 7361
+ ],
+ [
+ 763,
+ "RANDOLPH COOK",
+ 49,
+ "M",
+ "VILLA RICA GA",
+ 376,
+ 7414,
+ 566,
+ 7337
+ ],
+ [
+ 764,
+ "KELLY ROTHWELL",
+ 31,
+ "F",
+ "MARIETTA GA",
+ 1567,
+ 7414,
+ 566,
+ 7350
+ ],
+ [
+ 765,
+ "ADELAIDA GALARZA",
+ 43,
+ "F",
+ "MARIETTA GA",
+ 659,
+ 7416,
+ 567,
+ 7399
+ ],
+ [
+ 766,
+ "ELOISA DUMAS",
+ 42,
+ "F",
+ "MARIETTA GA",
+ 530,
+ 7417,
+ 567,
+ 7401
+ ],
+ [
+ 767,
+ "KERI CARTER",
+ 39,
+ "F",
+ "CUMMING GA",
+ 290,
+ 7420,
+ 567,
+ 7401
+ ],
+ [
+ 768,
+ "MARY RUTH HAMBRICK",
+ 38,
+ "F",
+ "LAWRENCEVILLE GA",
+ 769,
+ 7423,
+ 567,
+ 7371
+ ],
+ [
+ 769,
+ "BARRY PRENDERGAST",
+ 35,
+ "M",
+ "MABLETON GA",
+ 1464,
+ 7428,
+ 568,
+ -1
+ ],
+ [
+ 770,
+ "SHEAU-SHAN LIEW",
+ 31,
+ "F",
+ "SMYRNA GA",
+ 1099,
+ 7434,
+ 568,
+ 7355
+ ],
+ [
+ 771,
+ "ALLY HUNG",
+ 35,
+ "F",
+ "SMYRNA GA",
+ 885,
+ 7435,
+ 568,
+ 7356
+ ],
+ [
+ 772,
+ "DAWN SPECKHART",
+ 39,
+ "F",
+ "ROSWELL GA",
+ 1735,
+ 7437,
+ 568,
+ 7412
+ ],
+ [
+ 773,
+ "JARED REEDER",
+ 31,
+ "M",
+ "SMYRNA GA",
+ 1506,
+ 7437,
+ 568,
+ 7420
+ ],
+ [
+ 774,
+ "BARBIE BREGEN",
+ 36,
+ "F",
+ "ATLANTA GA",
+ 2021,
+ 7438,
+ 568,
+ 7354
+ ],
+ [
+ 775,
+ "LARRY SMITH",
+ 34,
+ "M",
+ "LOGANVILLE GA",
+ 1711,
+ 7439,
+ 568,
+ 7345
+ ],
+ [
+ 776,
+ "LORI ANN ROBERTSON",
+ 38,
+ "F",
+ "DAHLONEGA GA",
+ 1542,
+ 7439,
+ 568,
+ 7372
+ ],
+ [
+ 777,
+ "DEBRA POCH",
+ 40,
+ "F",
+ "SMYRNA GA",
+ 1448,
+ 7440,
+ 568,
+ 7416
+ ],
+ [
+ 778,
+ "GARY POCH",
+ 44,
+ "M",
+ "SMYRNA GA",
+ 1449,
+ 7440,
+ 568,
+ 7416
+ ],
+ [
+ 779,
+ "GREGG ERNST",
+ 45,
+ "M",
+ "ATLANTA GA",
+ 574,
+ 7442,
+ 569,
+ 7386
+ ],
+ [
+ 780,
+ "ALEXIS ST JEAN",
+ 27,
+ "F",
+ "DENVER CO",
+ 1742,
+ 7444,
+ 569,
+ 7426
+ ],
+ [
+ 781,
+ "ZACHERY SCHWARTZ",
+ 31,
+ "M",
+ "DULUTH GA",
+ 1622,
+ 7445,
+ 569,
+ 7370
+ ],
+ [
+ 782,
+ "SHARON DEMIDIO",
+ 45,
+ "F",
+ "SENOIA GA",
+ 475,
+ 7447,
+ 569,
+ 7399
+ ],
+ [
+ 783,
+ "ELIZABETH PHILLIPS",
+ 37,
+ "F",
+ "MARIETTA GA",
+ 1435,
+ 7449,
+ 569,
+ 7414
+ ],
+ [
+ 784,
+ "JAMES ONEAL",
+ 42,
+ "M",
+ "CUMMING GA",
+ 1368,
+ 7450,
+ 569,
+ 7386
+ ],
+ [
+ 785,
+ "BECCA SUNDAL",
+ 38,
+ "F",
+ "SMYRNA GA",
+ 1788,
+ 7456,
+ 570,
+ 7433
+ ],
+ [
+ 786,
+ "JENNY HUNTER",
+ 36,
+ "F",
+ "CANTON GA",
+ 890,
+ 7457,
+ 570,
+ 7413
+ ],
+ [
+ 787,
+ "ANDREW DAVEY",
+ 50,
+ "M",
+ "ATLANTA GA",
+ 445,
+ 7457,
+ 570,
+ 7413
+ ],
+ [
+ 788,
+ "KELLIE LOVELL",
+ 40,
+ "F",
+ "GAINESVILLE GA",
+ 2025,
+ 7460,
+ 570,
+ 7433
+ ],
+ [
+ 789,
+ "LEANNE BONSACK",
+ 44,
+ "F",
+ "LAWRENCEVILLE GA",
+ 173,
+ 7460,
+ 570,
+ 7417
+ ],
+ [
+ 790,
+ "JELENA CRAWFORD",
+ 29,
+ "F",
+ "ATLANTA GA",
+ 401,
+ 7460,
+ 570,
+ 7421
+ ],
+ [
+ 791,
+ "KEVIN REDMON",
+ 30,
+ "M",
+ "MARIETTA GA",
+ 1503,
+ 7462,
+ 570,
+ 7422
+ ],
+ [
+ 792,
+ "DESHA SECREST",
+ 34,
+ "F",
+ "HOLLY SPRINGS GA",
+ 1632,
+ 7462,
+ 570,
+ 7436
+ ],
+ [
+ 793,
+ "JILL GRAY",
+ 36,
+ "F",
+ "CANTON GA",
+ 723,
+ 7462,
+ 570,
+ 7436
+ ],
+ [
+ 794,
+ "SCOTT RITTENBERG",
+ 47,
+ "M",
+ "ROSWELL GA",
+ 1533,
+ 7466,
+ 570,
+ 7418
+ ],
+ [
+ 795,
+ "CARL LAI LEUNG",
+ 67,
+ "M",
+ "STONE MOUNTAIN GA",
+ 1047,
+ 7466,
+ 570,
+ 7461
+ ],
+ [
+ 796,
+ "GEORGE MILLS",
+ 35,
+ "M",
+ "WOODSTOCK GA",
+ 1287,
+ 7468,
+ 570,
+ 7359
+ ],
+ [
+ 797,
+ "RIGOBERTO HERNANDEZ",
+ 42,
+ "M",
+ "ATLANTA GA",
+ 838,
+ 7471,
+ 571,
+ 7450
+ ],
+ [
+ 798,
+ "DANA ROBBINS",
+ 51,
+ "M",
+ "ATLANTA GA",
+ 1538,
+ 7481,
+ 571,
+ 7459
+ ],
+ [
+ 799,
+ "AMY HERNANDEZ",
+ 36,
+ "F",
+ "ATLANTA GA",
+ 837,
+ 7485,
+ 572,
+ 7463
+ ],
+ [
+ 800,
+ "SAM MCCLENDON",
+ 46,
+ "M",
+ "MARIETTA GA",
+ 1199,
+ 7486,
+ 572,
+ 7454
+ ],
+ [
+ 801,
+ "LINDSAY MCFEELEY",
+ 35,
+ "F",
+ "WOODSTOCK GA",
+ 1216,
+ 7486,
+ 572,
+ 7432
+ ],
+ [
+ 802,
+ "SHANNON HORSEY",
+ 34,
+ "F",
+ "POWDER SPRINGS GA",
+ 867,
+ 7490,
+ 572,
+ 7423
+ ],
+ [
+ 803,
+ "AMY RYAN",
+ 33,
+ "F",
+ "ALPHARETTA GA",
+ 1579,
+ 7494,
+ 573,
+ 7452
+ ],
+ [
+ 804,
+ "TODD SHERMAN",
+ 41,
+ "M",
+ "MARIETTA GA",
+ 1667,
+ 7495,
+ 573,
+ 7423
+ ],
+ [
+ 805,
+ "STACY KOLAND",
+ 40,
+ "F",
+ "MABLETON GA",
+ 1018,
+ 7495,
+ 573,
+ 7482
+ ],
+ [
+ 806,
+ "STUART GRAY",
+ 37,
+ "M",
+ "TUCKER GA",
+ 725,
+ 7495,
+ 573,
+ 7432
+ ],
+ [
+ 807,
+ "RYAN NICELER",
+ 37,
+ "M",
+ "TUCKER GA",
+ 1342,
+ 7496,
+ 573,
+ 7433
+ ],
+ [
+ 808,
+ "EVETTE MCKENZIE",
+ 44,
+ "F",
+ "LITHONIA GA",
+ 1227,
+ 7496,
+ 573,
+ 7435
+ ],
+ [
+ 809,
+ "REBECCA TIMMIS",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 1841,
+ 7504,
+ 573,
+ 7465
+ ],
+ [
+ 810,
+ "WILLIAM STULTZ",
+ 49,
+ "M",
+ "LAWRENCEVILLE GA",
+ 1776,
+ 7508,
+ 574,
+ 7438
+ ],
+ [
+ 811,
+ "TRACY MCDONALD",
+ 50,
+ "F",
+ "MARIETTA GA",
+ 1210,
+ 7512,
+ 574,
+ 7443
+ ],
+ [
+ 812,
+ "JEANNINE BERNSTEIN",
+ 37,
+ "F",
+ "SMYRNA GA",
+ 148,
+ 7517,
+ 574,
+ 7463
+ ],
+ [
+ 813,
+ "JUSTIN CANTRELL",
+ 31,
+ "M",
+ "LILBURN GA",
+ 281,
+ 7519,
+ 574,
+ 7428
+ ],
+ [
+ 814,
+ "MATTHEW SCHMOLESKY",
+ 39,
+ "M",
+ "OGDEN UT",
+ 1611,
+ 7525,
+ 575,
+ 7476
+ ],
+ [
+ 815,
+ "MARIAN KING",
+ 41,
+ "F",
+ "DULUTH GA",
+ 1000,
+ 7527,
+ 575,
+ 7362
+ ],
+ [
+ 816,
+ "SARA MCNABB",
+ 38,
+ "F",
+ "ROSWELL GA",
+ 1236,
+ 7528,
+ 575,
+ 7428
+ ],
+ [
+ 817,
+ "TIA HARDY",
+ 36,
+ "F",
+ "CANTON GA",
+ 785,
+ 7529,
+ 575,
+ 7490
+ ],
+ [
+ 818,
+ "TREPHINA GALLOWAY",
+ 38,
+ "F",
+ "ATLANTA GA",
+ 666,
+ 7532,
+ 575,
+ 7483
+ ],
+ [
+ 819,
+ "JEFF NICHOLS",
+ 49,
+ "M",
+ "MARIETTA GA",
+ 1345,
+ 7534,
+ 576,
+ 7503
+ ],
+ [
+ 820,
+ "SIMONE HOFFMAN",
+ 49,
+ "F",
+ "MARIETTA GA",
+ 849,
+ 7534,
+ 576,
+ 7503
+ ],
+ [
+ 821,
+ "BRANDON CHECKETTS",
+ 31,
+ "M",
+ "ATHENS GA",
+ 322,
+ 7539,
+ 576,
+ 7484
+ ],
+ [
+ 822,
+ "ANGIE BUDAY",
+ 40,
+ "F",
+ "ROSWELL GA",
+ 235,
+ 7539,
+ 576,
+ 7479
+ ],
+ [
+ 823,
+ "VICTOR MARIANO",
+ 52,
+ "M",
+ "SUWANEE GA",
+ 1169,
+ 7543,
+ 576,
+ 7476
+ ],
+ [
+ 824,
+ "DOUGLAS GIBEAUT",
+ 47,
+ "M",
+ "ROSWELL GA",
+ 691,
+ 7543,
+ 576,
+ 7473
+ ],
+ [
+ 825,
+ "MATTHEW O'HERN",
+ 25,
+ "M",
+ "SMYRNA GA",
+ 1359,
+ 7550,
+ 577,
+ 7494
+ ],
+ [
+ 826,
+ "JENNIFER MCKINNON",
+ 34,
+ "F",
+ "NEWNAN GA",
+ 1228,
+ 7550,
+ 577,
+ 7495
+ ],
+ [
+ 827,
+ "BETH MAGURE",
+ 40,
+ "F",
+ "CUMMING GA",
+ 1152,
+ 7551,
+ 577,
+ 7427
+ ],
+ [
+ 828,
+ "MARK MASON",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 1183,
+ 7554,
+ 577,
+ 7509
+ ],
+ [
+ 829,
+ "ANITA STRUSS",
+ 56,
+ "F",
+ "ARAGON GA",
+ 1773,
+ 7560,
+ 578,
+ 7475
+ ],
+ [
+ 830,
+ "SEREN AYDEMIR",
+ 21,
+ "F",
+ "WARNER ROBINS GA",
+ 74,
+ 7560,
+ 578,
+ 7503
+ ],
+ [
+ 831,
+ "TIFFANY BJERKEN",
+ 37,
+ "F",
+ "MARIETTA GA",
+ 155,
+ 7561,
+ 578,
+ 7532
+ ],
+ [
+ 832,
+ "AMANDA CUNNINGHAM",
+ 25,
+ "F",
+ "ROSWELL GA",
+ 416,
+ 7563,
+ 578,
+ 7497
+ ],
+ [
+ 833,
+ "ROBERT ELLIOTT",
+ 30,
+ "M",
+ "ATLANTA GA",
+ 564,
+ 7563,
+ 578,
+ 7492
+ ],
+ [
+ 834,
+ "CURTIS WALLACE",
+ 29,
+ "M",
+ "LAGRANGE GA",
+ 1903,
+ 7564,
+ 578,
+ 7490
+ ],
+ [
+ 835,
+ "CHRISTINE BAYE",
+ 40,
+ "F",
+ "KENNESAW GA",
+ 127,
+ 7570,
+ 578,
+ 7534
+ ],
+ [
+ 836,
+ "BAI-HENG WANG",
+ 49,
+ "M",
+ "ALPHARETTA GA",
+ 1916,
+ 7572,
+ 578,
+ 7520
+ ],
+ [
+ 837,
+ "CATHERINE LIEMOHN",
+ 43,
+ "F",
+ "ALPHARETTA GA",
+ 1098,
+ 7572,
+ 578,
+ 7530
+ ],
+ [
+ 838,
+ "ZACK NELSON",
+ 33,
+ "M",
+ "SMYRNA GA",
+ 1340,
+ 7574,
+ 579,
+ 7477
+ ],
+ [
+ 839,
+ "TONYA HARDEMAN",
+ 57,
+ "M",
+ "BREMEN GA",
+ 783,
+ 7574,
+ 579,
+ 7511
+ ],
+ [
+ 840,
+ "TARA COWAN",
+ 33,
+ "F",
+ "SMYRNA GA",
+ 395,
+ 7575,
+ 579,
+ 7478
+ ],
+ [
+ 841,
+ "STACI SANDERS",
+ 27,
+ "F",
+ "JEFFERSON GA",
+ 1591,
+ 7578,
+ 579,
+ 7507
+ ],
+ [
+ 842,
+ "KIRKLYN WILSON",
+ 29,
+ "F",
+ "LULA GA",
+ 1980,
+ 7579,
+ 579,
+ 7508
+ ],
+ [
+ 843,
+ "KEVIN DUNLAP",
+ 46,
+ "M",
+ "POWDER SPRINGS GA",
+ 533,
+ 7580,
+ 579,
+ 7522
+ ],
+ [
+ 844,
+ "SUSAN JOHNSON",
+ 37,
+ "F",
+ "MARIETTA GA",
+ 950,
+ 7581,
+ 579,
+ 7490
+ ],
+ [
+ 845,
+ "APARNA JUE",
+ 30,
+ "F",
+ "MARIETTA GA",
+ 963,
+ 7583,
+ 579,
+ 7518
+ ],
+ [
+ 846,
+ "DANA MINCEY",
+ 32,
+ "F",
+ "DAHLONEGA GA",
+ 1289,
+ 7585,
+ 579,
+ 7512
+ ],
+ [
+ 847,
+ "KIA TAYLOR",
+ 33,
+ "F",
+ "ACWORTH GA",
+ 1809,
+ 7585,
+ 579,
+ 7539
+ ],
+ [
+ 848,
+ "RICKY CORNETT",
+ 40,
+ "M",
+ "DAHLONEGA GA",
+ 387,
+ 7585,
+ 579,
+ 7513
+ ],
+ [
+ 849,
+ "ROSE HALE",
+ 40,
+ "F",
+ "MARIETTA GA",
+ 759,
+ 7586,
+ 580,
+ 7514
+ ],
+ [
+ 850,
+ "ERIC GERALDS",
+ 40,
+ "M",
+ "MABLETON GA",
+ 686,
+ 7590,
+ 580,
+ 7562
+ ],
+ [
+ 851,
+ "KRISTI GRECO",
+ 33,
+ "F",
+ "SOCIAL CIRCLE GA",
+ 727,
+ 7594,
+ 580,
+ 7515
+ ],
+ [
+ 852,
+ "JESSICA HINTON",
+ 29,
+ "F",
+ "COVINGTON GA",
+ 844,
+ 7594,
+ 580,
+ 7515
+ ],
+ [
+ 853,
+ "BRADLEY JAMES",
+ 47,
+ "M",
+ "ALPHARETTA GA",
+ 914,
+ 7595,
+ 580,
+ 7531
+ ],
+ [
+ 854,
+ "SAIDA CABALLERO",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 266,
+ 7599,
+ 581,
+ 7508
+ ],
+ [
+ 855,
+ "JENNIFER TARDELLI",
+ 38,
+ "F",
+ "ATLANTA GA",
+ 1800,
+ 7599,
+ 581,
+ 7528
+ ],
+ [
+ 856,
+ "RYAN DOUGHERTY",
+ 17,
+ "F",
+ "LAWRENCEVILLE GA",
+ 512,
+ 7603,
+ 581,
+ 7559
+ ],
+ [
+ 857,
+ "REBECCA HALES",
+ 52,
+ "F",
+ "ALPHARETTA GA",
+ 760,
+ 7604,
+ 581,
+ 7568
+ ],
+ [
+ 858,
+ "JEFFREY TAYLOR",
+ 50,
+ "M",
+ "ALPHARETTA GA",
+ 1808,
+ 7604,
+ 581,
+ 7584
+ ],
+ [
+ 859,
+ "THOMAS ESTELLA",
+ 35,
+ "M",
+ "MARIETTA GA",
+ 580,
+ 7606,
+ 581,
+ 7534
+ ],
+ [
+ 860,
+ "MARGARET TRIPPE",
+ 26,
+ "F",
+ "SILVER SPRING MD",
+ 1854,
+ 7609,
+ 581,
+ 7518
+ ],
+ [
+ 861,
+ "COLLINS ROUX",
+ 48,
+ "F",
+ "MARIETTA GA",
+ 1570,
+ 7609,
+ 581,
+ 7582
+ ],
+ [
+ 862,
+ "RICHARD ABBOTT",
+ 41,
+ "M",
+ "CANTON GA",
+ 5,
+ 7613,
+ 582,
+ 7554
+ ],
+ [
+ 863,
+ "SUSAN WALL",
+ 39,
+ "F",
+ "ROSWELL GA",
+ 1902,
+ 7614,
+ 582,
+ 7554
+ ],
+ [
+ 864,
+ "LISA MAIER",
+ 40,
+ "F",
+ "ATLANTA GA",
+ 1154,
+ 7618,
+ 582,
+ 7557
+ ],
+ [
+ 865,
+ "KATE PIENTKA",
+ 30,
+ "F",
+ "ROSWELL GA",
+ 1442,
+ 7620,
+ 582,
+ 7596
+ ],
+ [
+ 866,
+ "SARAH HOHWALD",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 851,
+ 7621,
+ 582,
+ 7581
+ ],
+ [
+ 867,
+ "MICHELLE LORENZ",
+ 40,
+ "F",
+ "CANTON GA",
+ 1127,
+ 7625,
+ 582,
+ 7586
+ ],
+ [
+ 868,
+ "JEFFREY PERRY",
+ 50,
+ "M",
+ "WACO GA",
+ 1420,
+ 7629,
+ 583,
+ 7521
+ ],
+ [
+ 869,
+ "ROCKY WHITE",
+ 41,
+ "M",
+ "GRIFFIN GA",
+ 1961,
+ 7629,
+ 583,
+ 7584
+ ],
+ [
+ 870,
+ "DAVID BUCHALTER",
+ 46,
+ "M",
+ "DECATUR GA",
+ 232,
+ 7632,
+ 583,
+ 7602
+ ],
+ [
+ 871,
+ "KAREN JOHNSON",
+ 49,
+ "F",
+ "ELLIJAY GA",
+ 947,
+ 7634,
+ 583,
+ 7602
+ ],
+ [
+ 872,
+ "GARY TURNER",
+ 48,
+ "M",
+ "POWDER SPRINGS GA",
+ 1870,
+ 7638,
+ 584,
+ 7610
+ ],
+ [
+ 873,
+ "DANA GURELA",
+ 41,
+ "F",
+ "LAWRENCEVILLE GA",
+ 748,
+ 7639,
+ 584,
+ 7573
+ ],
+ [
+ 874,
+ "CATHERINE CAMERON",
+ 36,
+ "F",
+ "DACULA GA",
+ 273,
+ 7639,
+ 584,
+ 7573
+ ],
+ [
+ 875,
+ "ANGIE MOONEY",
+ 51,
+ "F",
+ "MARIETTA GA",
+ 1301,
+ 7647,
+ 584,
+ 7614
+ ],
+ [
+ 876,
+ "GARY FACKETT",
+ 62,
+ "M",
+ "HENDERSON NV",
+ 586,
+ 7648,
+ 584,
+ 7620
+ ],
+ [
+ 877,
+ "DEREK MULLINS",
+ 26,
+ "M",
+ "MARIETTA GA",
+ 1322,
+ 7656,
+ 585,
+ 7554
+ ],
+ [
+ 878,
+ "RALPH LLOYD",
+ 66,
+ "M",
+ "DUNWOODY GA",
+ 1108,
+ 7661,
+ 585,
+ 7583
+ ],
+ [
+ 879,
+ "JIMMY AHERN",
+ 38,
+ "M",
+ "ATLANTA GA",
+ 17,
+ 7666,
+ 586,
+ 7604
+ ],
+ [
+ 880,
+ "MICAH HOLDEN",
+ 29,
+ "F",
+ "KENNSAW GA",
+ 853,
+ 7666,
+ 586,
+ 7602
+ ],
+ [
+ 881,
+ "TARA ARNOLD",
+ 35,
+ "F",
+ "SMYRNA GA",
+ 64,
+ 7667,
+ 586,
+ 7604
+ ],
+ [
+ 882,
+ "JUSTIN WHITE",
+ 29,
+ "M",
+ "CLEVELAND TN",
+ 1959,
+ 7667,
+ 586,
+ 7603
+ ],
+ [
+ 883,
+ "MICHELLE THOMAS",
+ 26,
+ "F",
+ "ATLANTA GA",
+ 1822,
+ 7668,
+ 586,
+ 7576
+ ],
+ [
+ 884,
+ "ABBI TAYLOR",
+ 44,
+ "F",
+ "DECATUR GA",
+ 1805,
+ 7679,
+ 587,
+ 7620
+ ],
+ [
+ 885,
+ "BEN BRYANT",
+ 39,
+ "M",
+ "STOCKBRIDGE GA",
+ 228,
+ 7684,
+ 587,
+ 7509
+ ],
+ [
+ 886,
+ "SPENCER BRIEN",
+ 31,
+ "M",
+ "DECATUR GA",
+ 205,
+ 7690,
+ 587,
+ 7627
+ ],
+ [
+ 887,
+ "KELLY VAN NORT",
+ 39,
+ "F",
+ "SMYRNA GA",
+ 1879,
+ 7691,
+ 588,
+ 7628
+ ],
+ [
+ 888,
+ "KAREN DEMPERS",
+ 47,
+ "F",
+ "ALPHARETTA GA",
+ 476,
+ 7692,
+ 588,
+ 7671
+ ],
+ [
+ 889,
+ "CHRISTIE CHAPEL",
+ 39,
+ "F",
+ "BETHLEHEM GA",
+ 317,
+ 7702,
+ 588,
+ 7627
+ ],
+ [
+ 890,
+ "NICHOLE ANDERSON",
+ 27,
+ "F",
+ "KENNESAW GA",
+ 54,
+ 7704,
+ 589,
+ 7609
+ ],
+ [
+ 891,
+ "STEPHANIE SPILOTTO",
+ 34,
+ "F",
+ "CANTON GA",
+ 1739,
+ 7705,
+ 589,
+ 7678
+ ],
+ [
+ 892,
+ "LAURA BARTON",
+ 34,
+ "F",
+ "CARROLLTON GA",
+ 117,
+ 7705,
+ 589,
+ 7646
+ ],
+ [
+ 893,
+ "PETER HOAG",
+ 34,
+ "M",
+ "DUNWOODY GA",
+ 847,
+ 7707,
+ 589,
+ 7645
+ ],
+ [
+ 894,
+ "HOLLY ADAMS",
+ 34,
+ "F",
+ "ALPHARETTA GA",
+ 9,
+ 7708,
+ 589,
+ 7647
+ ],
+ [
+ 895,
+ "BRENTON STENSON",
+ 46,
+ "M",
+ "MCDONOUGH GA",
+ 1759,
+ 7709,
+ 589,
+ 7692
+ ],
+ [
+ 896,
+ "BRAD LIPHAM",
+ 40,
+ "M",
+ "CARROLLTON GA",
+ 1105,
+ 7712,
+ 589,
+ 7636
+ ],
+ [
+ 897,
+ "EMILY SHOEMAKER",
+ 28,
+ "F",
+ "ATLANTA GA",
+ 1671,
+ 7714,
+ 589,
+ 7642
+ ],
+ [
+ 898,
+ "CINDY RALSTON",
+ 53,
+ "F",
+ "HIRAM GA",
+ 1488,
+ 7717,
+ 590,
+ 7630
+ ],
+ [
+ 899,
+ "TAMMY DENNEY",
+ 46,
+ "F",
+ "CARROLLTON GA",
+ 480,
+ 7718,
+ 590,
+ 7661
+ ],
+ [
+ 900,
+ "JOHN DENNEY",
+ 63,
+ "M",
+ "CARROLLTON GA",
+ 479,
+ 7718,
+ 590,
+ 7660
+ ],
+ [
+ 901,
+ "JENNIFER ROBERTS",
+ 36,
+ "F",
+ "MACON GA",
+ 1540,
+ 7722,
+ 590,
+ 7661
+ ],
+ [
+ 902,
+ "JASON WRIGHT",
+ 32,
+ "M",
+ "MABLETON GA",
+ 2006,
+ 7723,
+ 590,
+ 7643
+ ],
+ [
+ 903,
+ "MICAH DOWDY",
+ 22,
+ "M",
+ "MCDONOUGH GA",
+ 515,
+ 7723,
+ 590,
+ 7643
+ ],
+ [
+ 904,
+ "TRINA SCHLECHT",
+ 38,
+ "F",
+ "ALPHARETTA GA",
+ 1606,
+ 7727,
+ 590,
+ 7685
+ ],
+ [
+ 905,
+ "LEE ANN NASH",
+ 56,
+ "F",
+ "BARNESVILLE GA",
+ 1333,
+ 7729,
+ 590,
+ 7683
+ ],
+ [
+ 906,
+ "JULIE POOLE",
+ 49,
+ "F",
+ "MARIETTA GA",
+ 1455,
+ 7729,
+ 590,
+ 7683
+ ],
+ [
+ 907,
+ "SPEARS MALLIS",
+ 32,
+ "M",
+ "GAINESVILLE GA",
+ 1161,
+ 7736,
+ 591,
+ 7716
+ ],
+ [
+ 908,
+ "ANGELIA CAMERON",
+ 41,
+ "F",
+ "MONTICELLO GA",
+ 272,
+ 7741,
+ 591,
+ 7687
+ ],
+ [
+ 909,
+ "A ORTKIESE",
+ 42,
+ "F",
+ "ATLANTA GA",
+ 1375,
+ 7743,
+ 592,
+ 7723
+ ],
+ [
+ 910,
+ "ERIN MULL",
+ 31,
+ "F",
+ "MARIETTA GA",
+ 1321,
+ 7745,
+ 592,
+ 7688
+ ],
+ [
+ 911,
+ "LORI BLANCHARD",
+ 42,
+ "F",
+ "SUWANEE GA",
+ 159,
+ 7747,
+ 592,
+ 7726
+ ],
+ [
+ 912,
+ "MERIDITH OKEEFE",
+ 38,
+ "F",
+ "ATLANTA GA",
+ 1365,
+ 7749,
+ 592,
+ 7729
+ ],
+ [
+ 913,
+ "NANCY LOCHMAN",
+ 40,
+ "F",
+ "ROSWELL GA",
+ 1113,
+ 7751,
+ 592,
+ 7715
+ ],
+ [
+ 914,
+ "VICKI GRIZZARD",
+ 39,
+ "F",
+ "LAWRENCEVILLE GA",
+ 742,
+ 7759,
+ 593,
+ 7673
+ ],
+ [
+ 915,
+ "VICKI WASHINGTON",
+ 48,
+ "F",
+ "NICEVILLE FL",
+ 1927,
+ 7761,
+ 593,
+ 7701
+ ],
+ [
+ 916,
+ "YEVONE DEAN",
+ 45,
+ "F",
+ "ACWORTH GA",
+ 462,
+ 7761,
+ 593,
+ 7702
+ ],
+ [
+ 917,
+ "NAVEEN BOOMA",
+ 27,
+ "M",
+ "ATLANTA GA",
+ 175,
+ 7764,
+ 593,
+ 7740
+ ],
+ [
+ 918,
+ "JOSEPH PATRICK",
+ 27,
+ "M",
+ "MILLEDGEVILLE GA",
+ 1403,
+ 7774,
+ 594,
+ 7670
+ ],
+ [
+ 919,
+ "ANGIE BOGGS",
+ 36,
+ "F",
+ "ATLANTA GA",
+ 167,
+ 7774,
+ 594,
+ 7736
+ ],
+ [
+ 920,
+ "STACY WOLFF",
+ 45,
+ "F",
+ "MARIETTA GA",
+ 1997,
+ 7779,
+ 594,
+ 7732
+ ],
+ [
+ 921,
+ "LAURA KURTZ",
+ 49,
+ "F",
+ "ROSWELL GA",
+ 1042,
+ 7783,
+ 595,
+ 7723
+ ],
+ [
+ 922,
+ "TERRY SMITH",
+ 42,
+ "M",
+ "MCHENRY IL",
+ 1717,
+ 7783,
+ 595,
+ 7720
+ ],
+ [
+ 923,
+ "CHRISTOPHER HICKMAN",
+ 34,
+ "M",
+ "MABLETON GA",
+ 842,
+ 7784,
+ 595,
+ 7739
+ ],
+ [
+ 924,
+ "TRACY SELLARS",
+ 35,
+ "F",
+ "DALLAS GA",
+ 1639,
+ 7784,
+ 595,
+ 7720
+ ],
+ [
+ 925,
+ "SUSAN MEHRE",
+ 43,
+ "F",
+ "ATLANTA GA",
+ 1249,
+ 7784,
+ 595,
+ 7713
+ ],
+ [
+ 926,
+ "JAMES GAVIN",
+ 35,
+ "M",
+ "WOODSTOCK GA",
+ 679,
+ 7785,
+ 595,
+ 7690
+ ],
+ [
+ 927,
+ "SUSAN BRADBURY",
+ 47,
+ "F",
+ "DECATUR GA",
+ 193,
+ 7785,
+ 595,
+ 7768
+ ],
+ [
+ 928,
+ "MEGAN BAGBY",
+ 23,
+ "F",
+ "BIRMINGHAM AL",
+ 78,
+ 7788,
+ 595,
+ 7745
+ ],
+ [
+ 929,
+ "PAUL LAZAR",
+ 45,
+ "M",
+ "WOODSTOCK GA",
+ 1069,
+ 7790,
+ 595,
+ 7722
+ ],
+ [
+ 930,
+ "LYNN RIECK",
+ 42,
+ "F",
+ "ATLANTA GA",
+ 1526,
+ 7799,
+ 596,
+ 7744
+ ],
+ [
+ 931,
+ "KELLY KITTLE",
+ 40,
+ "F",
+ "ALPHARETTA GA",
+ 1010,
+ 7802,
+ 596,
+ 7746
+ ],
+ [
+ 932,
+ "JOHN KITTLE",
+ 41,
+ "M",
+ "ALPHARETTA GA",
+ 1009,
+ 7802,
+ 596,
+ 7746
+ ],
+ [
+ 933,
+ "JOE DAVIS",
+ 57,
+ "M",
+ "CHATSWORTH GA",
+ 450,
+ 7803,
+ 596,
+ 7718
+ ],
+ [
+ 934,
+ "KEN FORDE",
+ 41,
+ "M",
+ "SANDY SPRINGS GA",
+ 620,
+ 7807,
+ 596,
+ 7779
+ ],
+ [
+ 935,
+ "CATHY ADDISON",
+ 50,
+ "F",
+ "ATLANTA GA",
+ 12,
+ 7814,
+ 597,
+ 7772
+ ],
+ [
+ 936,
+ "ERIC SCHWARTZ",
+ 26,
+ "M",
+ "ATLANTA GA",
+ 1620,
+ 7818,
+ 597,
+ 7749
+ ],
+ [
+ 937,
+ "AVERY WIENS",
+ 17,
+ "F",
+ "ATLANTA GA",
+ 1966,
+ 7820,
+ 597,
+ 7720
+ ],
+ [
+ 938,
+ "REBECCA ORTON",
+ 29,
+ "F",
+ "ATLANTA GA",
+ 1376,
+ 7823,
+ 598,
+ 7755
+ ],
+ [
+ 939,
+ "CASSIE LASSITER",
+ 38,
+ "F",
+ "ATLANTA GA",
+ 1060,
+ 7826,
+ 598,
+ 7784
+ ],
+ [
+ 940,
+ "GURURAJ RAO",
+ 41,
+ "M",
+ "MARIETTA GA",
+ 1493,
+ 7828,
+ 598,
+ 7788
+ ],
+ [
+ 941,
+ "YANTO YANTO",
+ 26,
+ "M",
+ "ATLANTA GA",
+ 2014,
+ 7828,
+ 598,
+ 7811
+ ],
+ [
+ 942,
+ "SHANE HEWGLEY",
+ 40,
+ "M",
+ "WOODSTOCK GA",
+ 841,
+ 7832,
+ 598,
+ 7799
+ ],
+ [
+ 943,
+ "KATIE WRIGHT",
+ 32,
+ "F",
+ "MABLETON GA",
+ 2007,
+ 7835,
+ 599,
+ 7755
+ ],
+ [
+ 944,
+ "MICHAEL RUSSELL",
+ 38,
+ "M",
+ "ATLANTA GA",
+ 1577,
+ 7837,
+ 599,
+ 7780
+ ],
+ [
+ 945,
+ "AARON BARTELS",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 111,
+ 7839,
+ 599,
+ 7824
+ ],
+ [
+ 946,
+ "CALLEY MERSMANN",
+ 21,
+ "F",
+ "SNELLVILLE GA",
+ 1264,
+ 7840,
+ 599,
+ 7727
+ ],
+ [
+ 947,
+ "DESMOND SULLIVAN",
+ 34,
+ "M",
+ "ATLANTA GA",
+ 1780,
+ 7843,
+ 599,
+ 7749
+ ],
+ [
+ 948,
+ "REETIKA NIJHAWAN",
+ 37,
+ "F",
+ "ATLANTA GA",
+ 1348,
+ 7845,
+ 599,
+ 7790
+ ],
+ [
+ 949,
+ "BARRY BARTON",
+ 37,
+ "M",
+ "CARROLLTON GA",
+ 114,
+ 7847,
+ 599,
+ 7789
+ ],
+ [
+ 950,
+ "STEVE DRUCKENMILLER",
+ 47,
+ "M",
+ "CUMMING GA",
+ 526,
+ 7850,
+ 600,
+ 7804
+ ],
+ [
+ 951,
+ "LANNY BRANUM",
+ 37,
+ "M",
+ "DUNWOODY GA",
+ 196,
+ 7851,
+ 600,
+ 7783
+ ],
+ [
+ 952,
+ "LUTHER OPJORDEN",
+ 65,
+ "M",
+ "MILAN MN",
+ 1373,
+ 7854,
+ 600,
+ 7787
+ ],
+ [
+ 953,
+ "RODNEY EDWARDS",
+ 34,
+ "M",
+ "CANTON GA",
+ 552,
+ 7855,
+ 600,
+ 7801
+ ],
+ [
+ 954,
+ "TINA HARMON",
+ 42,
+ "F",
+ "ATLANTA GA",
+ 788,
+ 7856,
+ 600,
+ 7796
+ ],
+ [
+ 955,
+ "GREG WERCHANOWSKYJ",
+ 36,
+ "M",
+ "HELENA AL",
+ 1948,
+ 7856,
+ 600,
+ 7770
+ ],
+ [
+ 956,
+ "BRANDON TYLER",
+ 26,
+ "M",
+ "ATLANTA GA",
+ 1872,
+ 7863,
+ 601,
+ 7809
+ ],
+ [
+ 957,
+ "RALPH GIACOMARRO",
+ 49,
+ "M",
+ "CUMMING GA",
+ 690,
+ 7865,
+ 601,
+ 7804
+ ],
+ [
+ 958,
+ "ELIZABETH WARD",
+ 23,
+ "F",
+ "ATLANTA GA",
+ 1919,
+ 7870,
+ 601,
+ 7844
+ ],
+ [
+ 959,
+ "KIMBERLY ELLIS",
+ 29,
+ "F",
+ "PRATTVILLE AL",
+ 566,
+ 7873,
+ 601,
+ 7802
+ ],
+ [
+ 960,
+ "GUY CHAMBLESS",
+ 38,
+ "M",
+ "ADAIRSVILLE GA",
+ 313,
+ 7876,
+ 602,
+ 7865
+ ],
+ [
+ 961,
+ "CHRIS YUEH",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 2017,
+ 7883,
+ 602,
+ 7731
+ ],
+ [
+ 962,
+ "KATE HANNON",
+ 33,
+ "F",
+ "ATLANTA GA",
+ 775,
+ 7883,
+ 602,
+ 7803
+ ],
+ [
+ 963,
+ "JAMES TAYLOR",
+ 25,
+ "M",
+ "DOUGLASVILLE GA",
+ 1807,
+ 7886,
+ 602,
+ 7822
+ ],
+ [
+ 964,
+ "NICOLE MEADOR",
+ 31,
+ "F",
+ "MARIETTA GA",
+ 1245,
+ 7887,
+ 602,
+ 7840
+ ],
+ [
+ 965,
+ "CHANDRA BOZEMAN",
+ 41,
+ "F",
+ "JOHNS CREEK GA",
+ 188,
+ 7887,
+ 603,
+ 7818
+ ],
+ [
+ 966,
+ "KIM SHUFORD",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 1677,
+ 7888,
+ 603,
+ 7807
+ ],
+ [
+ 967,
+ "SHAREE CLARKE",
+ 36,
+ "F",
+ "ATLANTA GA",
+ 336,
+ 7889,
+ 603,
+ 7819
+ ],
+ [
+ 968,
+ "MIKE LUEBECK",
+ 55,
+ "M",
+ "MCDONOUGH GA",
+ 1132,
+ 7892,
+ 603,
+ 7847
+ ],
+ [
+ 969,
+ "ASHLEY WILLIAMS",
+ 38,
+ "F",
+ "MABLETON GA",
+ 1971,
+ 7896,
+ 603,
+ 7815
+ ],
+ [
+ 970,
+ "CHRISTI MCCAREY",
+ 44,
+ "F",
+ "MARIETTA GA",
+ 1194,
+ 7906,
+ 604,
+ 7875
+ ],
+ [
+ 971,
+ "WHITNEY BROWN",
+ 26,
+ "F",
+ "ATLANTA GA",
+ 221,
+ 7906,
+ 604,
+ 7836
+ ],
+ [
+ 972,
+ "WALT LIPHAM",
+ 15,
+ "M",
+ "CARROLLTON GA",
+ 1106,
+ 7915,
+ 605,
+ 7838
+ ],
+ [
+ 973,
+ "JARIAN RICH",
+ 31,
+ "M",
+ "WOODSTOCK GA",
+ 1520,
+ 7915,
+ 605,
+ 7860
+ ],
+ [
+ 974,
+ "COLLEEN SPRAYBERRY",
+ 48,
+ "F",
+ "NEWNAN GA",
+ 1741,
+ 7924,
+ 605,
+ 7880
+ ],
+ [
+ 975,
+ "ANDREW SAMPSON",
+ 29,
+ "M",
+ "LAKELAND FL",
+ 1585,
+ 7926,
+ 605,
+ 7862
+ ],
+ [
+ 976,
+ "SAMUEL SAMPSON",
+ 30,
+ "M",
+ "MARIETTA GA",
+ 1586,
+ 7926,
+ 605,
+ 7863
+ ],
+ [
+ 977,
+ "LOU DEMARINO",
+ 37,
+ "M",
+ "MABLETON GA",
+ 471,
+ 7930,
+ 606,
+ 7899
+ ],
+ [
+ 978,
+ "MARICELA SMITH",
+ 39,
+ "F",
+ "POWDER SPRINGS GA",
+ 1712,
+ 7931,
+ 606,
+ 7837
+ ],
+ [
+ 979,
+ "AMBER COOK",
+ 39,
+ "F",
+ "WOODSTOCK GA",
+ 373,
+ 7937,
+ 606,
+ 7905
+ ],
+ [
+ 980,
+ "ELIZABETH BROWN",
+ 14,
+ "F",
+ "ANNISTON AL",
+ 218,
+ 7937,
+ 606,
+ 7865
+ ],
+ [
+ 981,
+ "JAMIE LIMBAUGH",
+ 33,
+ "F",
+ "ANNISTON AL",
+ 1101,
+ 7938,
+ 606,
+ 7866
+ ],
+ [
+ 982,
+ "MARK LEWIS",
+ 39,
+ "M",
+ "ACWORTH GA",
+ 1092,
+ 7940,
+ 607,
+ 7907
+ ],
+ [
+ 983,
+ "ANDREA GEPFER",
+ 27,
+ "F",
+ "ACWORTH GA",
+ 685,
+ 7945,
+ 607,
+ 7858
+ ],
+ [
+ 984,
+ "JAMES KING",
+ 50,
+ "M",
+ "ATLANTA GA",
+ 2140,
+ 7946,
+ 607,
+ 7867
+ ],
+ [
+ 985,
+ "MICHAEL ETHRIDGE",
+ 44,
+ "M",
+ "MARIETTA GA",
+ 584,
+ 7946,
+ 607,
+ 7873
+ ],
+ [
+ 986,
+ "MARK KAUFMAN",
+ 61,
+ "M",
+ "ATLANTA GA",
+ 971,
+ 7950,
+ 607,
+ 7866
+ ],
+ [
+ 987,
+ "SUSAN ALDRICH",
+ 64,
+ "F",
+ "JOHNS CREEK GA",
+ 29,
+ 7951,
+ 607,
+ 7914
+ ],
+ [
+ 988,
+ "JODY ALDERMAN",
+ 53,
+ "M",
+ "DECATUR GA",
+ 27,
+ 7954,
+ 608,
+ 7903
+ ],
+ [
+ 989,
+ "DEBYE ALDERMAN",
+ 55,
+ "F",
+ "DECATUR GA",
+ 26,
+ 7954,
+ 608,
+ 7903
+ ],
+ [
+ 990,
+ "BOB REEVES",
+ 43,
+ "M",
+ "MARIETTA GA",
+ 1507,
+ 7956,
+ 608,
+ 7929
+ ],
+ [
+ 991,
+ "KERRY DOUGHERTY",
+ 44,
+ "F",
+ "LAWRENCEVILLE GA",
+ 511,
+ 7957,
+ 608,
+ 7899
+ ],
+ [
+ 992,
+ "GLORIA LAWTON",
+ 27,
+ "F",
+ "CUMMING GA",
+ 1067,
+ 7957,
+ 608,
+ 7884
+ ],
+ [
+ 993,
+ "LEAH WOLFE",
+ 31,
+ "F",
+ "MARIETTA GA",
+ 1994,
+ 7957,
+ 608,
+ 7927
+ ],
+ [
+ 994,
+ "AIMEE WATKISS",
+ 35,
+ "F",
+ "PEACHTREE CITY GA",
+ 1932,
+ 7958,
+ 608,
+ 7868
+ ],
+ [
+ 995,
+ "DANIEL DONOHUE",
+ 42,
+ "M",
+ "MARIETTA GA",
+ 507,
+ 7959,
+ 608,
+ 7927
+ ],
+ [
+ 996,
+ "CAROLINE PHILSON",
+ 39,
+ "F",
+ "ATLANTA GA",
+ 1438,
+ 7963,
+ 608,
+ 7810
+ ],
+ [
+ 997,
+ "ASTRID FONTAINE",
+ 41,
+ "F",
+ "MABLETON GA",
+ 618,
+ 7964,
+ 608,
+ 7940
+ ],
+ [
+ 998,
+ "KIM SCHOEN",
+ 50,
+ "F",
+ "COHUTTA GA",
+ 1615,
+ 7964,
+ 608,
+ 7883
+ ],
+ [
+ 999,
+ "KACIE DARDEN",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 442,
+ 7965,
+ 608,
+ 7883
+ ],
+ [
+ 1000,
+ "SANDRA HUEY",
+ 48,
+ "F",
+ "CARROLLTON GA",
+ 881,
+ 7966,
+ 609,
+ 7878
+ ],
+ [
+ 1001,
+ "MICHAEL JAMIESON",
+ 45,
+ "M",
+ "SUWANEE GA",
+ 918,
+ 7968,
+ 609,
+ 7859
+ ],
+ [
+ 1002,
+ "DANIEL JAMES",
+ 40,
+ "M",
+ "DACULA GA",
+ 915,
+ 7975,
+ 609,
+ 7915
+ ],
+ [
+ 1003,
+ "KARLA BROOKRESON-OWENS",
+ 35,
+ "F",
+ "STOCKBRIDGE GA",
+ 211,
+ 7976,
+ 609,
+ 7862
+ ],
+ [
+ 1004,
+ "CHRISTOPHER TENNANT",
+ 39,
+ "M",
+ "ATLANTA GA",
+ 1816,
+ 7978,
+ 609,
+ 7879
+ ],
+ [
+ 1005,
+ "ELLIS THORP",
+ 45,
+ "M",
+ "ATLANTA GA",
+ 1831,
+ 7982,
+ 610,
+ 7927
+ ],
+ [
+ 1006,
+ "SUZANNE LEBLANC",
+ 40,
+ "F",
+ "ATLANTA GA",
+ 1076,
+ 7982,
+ 610,
+ 7927
+ ],
+ [
+ 1007,
+ "MEGHAN STACK",
+ 25,
+ "F",
+ "ACWORTH GA",
+ 1747,
+ 7983,
+ 610,
+ 7895
+ ],
+ [
+ 1008,
+ "DONNA THOMPSON",
+ 41,
+ "F",
+ "CARROLLTON GA",
+ 1824,
+ 7989,
+ 610,
+ 7944
+ ],
+ [
+ 1009,
+ "JOSHUA CURRAN",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 422,
+ 7990,
+ 610,
+ 7921
+ ],
+ [
+ 1010,
+ "BRAD TROHA",
+ 36,
+ "M",
+ "DUNWOODY GA",
+ 1855,
+ 7991,
+ 610,
+ 7879
+ ],
+ [
+ 1011,
+ "SARAH GOODBREAD",
+ 28,
+ "F",
+ "KENNESAW GA",
+ 708,
+ 7993,
+ 611,
+ 7891
+ ],
+ [
+ 1012,
+ "MELODY SANFREY",
+ 38,
+ "F",
+ "MACON GA",
+ 1594,
+ 7995,
+ 611,
+ 7934
+ ],
+ [
+ 1013,
+ "STACEY HIPPS",
+ 27,
+ "F",
+ "CUMMING GA",
+ 845,
+ 7999,
+ 611,
+ 7958
+ ],
+ [
+ 1014,
+ "KATIE URBAN",
+ 30,
+ "F",
+ "ATLANTA GA",
+ 1875,
+ 7999,
+ 611,
+ 7968
+ ],
+ [
+ 1015,
+ "CHRISTIE WILLIAMS",
+ 35,
+ "F",
+ "MARIETTA GA",
+ 1972,
+ 8002,
+ 611,
+ 7903
+ ],
+ [
+ 1016,
+ "CINDY LOHEIDE",
+ 39,
+ "F",
+ "MABLETON GA",
+ 1119,
+ 8002,
+ 611,
+ 7903
+ ],
+ [
+ 1017,
+ "CHARLES EARL",
+ 32,
+ "M",
+ "ATLANTA GA",
+ 540,
+ 8002,
+ 611,
+ 7954
+ ],
+ [
+ 1018,
+ "PAOLA BEACH",
+ 41,
+ "F",
+ "LILBURN GA",
+ 128,
+ 8005,
+ 612,
+ 7908
+ ],
+ [
+ 1019,
+ "JUDITH ROBINSON",
+ 48,
+ "F",
+ "MARIETTA GA",
+ 1544,
+ 8008,
+ 612,
+ 7961
+ ],
+ [
+ 1020,
+ "ROSINA AUGSBURGER",
+ 43,
+ "F",
+ "MARIETTA GA",
+ 71,
+ 8018,
+ 612,
+ 7965
+ ],
+ [
+ 1021,
+ "SCARLET HAYES",
+ 35,
+ "F",
+ "WOODSTOCK GA",
+ 2023,
+ 8019,
+ 613,
+ 7946
+ ],
+ [
+ 1022,
+ "KATIE GOLDSMITH",
+ 28,
+ "F",
+ "ATLANTA GA",
+ 704,
+ 8025,
+ 613,
+ 7999
+ ],
+ [
+ 1023,
+ "BRETT LAZANSKY",
+ 38,
+ "M",
+ "JOHNS CREEK GA",
+ 1068,
+ 8025,
+ 613,
+ 7997
+ ],
+ [
+ 1024,
+ "DOUG STROMMEN",
+ 50,
+ "M",
+ "MARIETTA GA",
+ 1771,
+ 8027,
+ 613,
+ 7954
+ ],
+ [
+ 1025,
+ "TOM KESLING",
+ 40,
+ "M",
+ "ACWORTH GA",
+ 991,
+ 8037,
+ 614,
+ 7967
+ ],
+ [
+ 1026,
+ "ROBERT FRIESS",
+ 37,
+ "M",
+ "KENNESAW GA",
+ 648,
+ 8037,
+ 614,
+ 7967
+ ],
+ [
+ 1027,
+ "KIMBERLY NICKELS",
+ 34,
+ "F",
+ "WOODSTOCK GA",
+ 1346,
+ 8040,
+ 614,
+ 7972
+ ],
+ [
+ 1028,
+ "PETER BRACCI",
+ 33,
+ "M",
+ "SMYRNA GA",
+ 191,
+ 8042,
+ 614,
+ 7973
+ ],
+ [
+ 1029,
+ "LILLIAN BARNES",
+ 43,
+ "F",
+ "DALLAS GA",
+ 103,
+ 8047,
+ 615,
+ 8033
+ ],
+ [
+ 1030,
+ "KIM FRANLIN",
+ 29,
+ "F",
+ "MARIETTA GA",
+ 633,
+ 8048,
+ 615,
+ 7993
+ ],
+ [
+ 1031,
+ "MELODY SHELTON",
+ 42,
+ "F",
+ "MARIETTA GA",
+ 1665,
+ 8054,
+ 615,
+ 7976
+ ],
+ [
+ 1032,
+ "EVELYN RACHED",
+ 33,
+ "F",
+ "ALPHARETTA GA",
+ 1480,
+ 8058,
+ 616,
+ 7985
+ ],
+ [
+ 1033,
+ "CRAIG CHAMBERS",
+ 45,
+ "M",
+ "MCDONOUGH GA",
+ 311,
+ 8059,
+ 616,
+ 7967
+ ],
+ [
+ 1034,
+ "CINDI CHAMBERS",
+ 42,
+ "F",
+ "MCDONOUGH GA",
+ 310,
+ 8059,
+ 616,
+ 7966
+ ],
+ [
+ 1035,
+ "DONNA CLEARY",
+ 43,
+ "F",
+ "MCDONOUGH GA",
+ 338,
+ 8060,
+ 616,
+ 7967
+ ],
+ [
+ 1036,
+ "RYAN HANSELL",
+ 29,
+ "M",
+ "ATLANTA GA",
+ 777,
+ 8060,
+ 616,
+ 8009
+ ],
+ [
+ 1037,
+ "AMANDA HANSELL",
+ 28,
+ "F",
+ "ATLANTA GA",
+ 776,
+ 8060,
+ 616,
+ 8010
+ ],
+ [
+ 1038,
+ "EUGENE VAN SICKLE",
+ 38,
+ "M",
+ "DAHLONEGA GA",
+ 1881,
+ 8062,
+ 616,
+ 7995
+ ],
+ [
+ 1039,
+ "MARY HARPER",
+ 45,
+ "F",
+ "ATLANTA GA",
+ 790,
+ 8063,
+ 616,
+ 7893
+ ],
+ [
+ 1040,
+ "SRIDHAR VENNA",
+ 36,
+ "M",
+ "SMYRNA GA",
+ 1889,
+ 8074,
+ 617,
+ 7990
+ ],
+ [
+ 1041,
+ "GARY ANDREWS",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 55,
+ 8075,
+ 617,
+ 8016
+ ],
+ [
+ 1042,
+ "BOBBI HARWOOD",
+ 40,
+ "F",
+ "ATLANTA GA",
+ 807,
+ 8078,
+ 617,
+ 8020
+ ],
+ [
+ 1043,
+ "YVETTE MORGAN",
+ 37,
+ "F",
+ "SUWANEE GA",
+ 1313,
+ 8081,
+ 617,
+ 8011
+ ],
+ [
+ 1044,
+ "CATHY BANKSTON",
+ 36,
+ "F",
+ "FORSYTH GA",
+ 95,
+ 8086,
+ 618,
+ 8004
+ ],
+ [
+ 1045,
+ "LORI WARD",
+ 37,
+ "F",
+ "MARIETTA GA",
+ 1921,
+ 8090,
+ 618,
+ 8063
+ ],
+ [
+ 1046,
+ "MELANIE GERNATT",
+ 52,
+ "F",
+ "MARIETTA GA",
+ 689,
+ 8091,
+ 618,
+ 8063
+ ],
+ [
+ 1047,
+ "VALERIE DAVIS",
+ 39,
+ "F",
+ "KENNESAW GA",
+ 456,
+ 8091,
+ 618,
+ 8009
+ ],
+ [
+ 1048,
+ "RONALD PRINCE",
+ 52,
+ "M",
+ "MARIETTA GA",
+ 1471,
+ 8091,
+ 618,
+ 8010
+ ],
+ [
+ 1049,
+ "JENNIFER COOKE",
+ 29,
+ "F",
+ "CUMMING GA",
+ 379,
+ 8092,
+ 618,
+ 8024
+ ],
+ [
+ 1050,
+ "DANIEL SHUFORD",
+ 33,
+ "M",
+ "ATLANTA GA",
+ 1676,
+ 8094,
+ 618,
+ 8011
+ ],
+ [
+ 1051,
+ "KATHI KIMBELL",
+ 45,
+ "F",
+ "GRIFFIN GA",
+ 997,
+ 8096,
+ 618,
+ 8051
+ ],
+ [
+ 1052,
+ "AMANDA KREFT",
+ 36,
+ "F",
+ "CANTON GA",
+ 1023,
+ 8099,
+ 619,
+ 8057
+ ],
+ [
+ 1053,
+ "KEVIN KREFT",
+ 35,
+ "M",
+ "CANTON GA",
+ 1024,
+ 8100,
+ 619,
+ 8057
+ ],
+ [
+ 1054,
+ "AMANDA JACOBS",
+ 37,
+ "F",
+ "SUWANEE GA",
+ 2024,
+ 8100,
+ 619,
+ 8016
+ ],
+ [
+ 1055,
+ "RYAN FREEL",
+ 32,
+ "M",
+ "MARIETTA GA",
+ 638,
+ 8102,
+ 619,
+ 8038
+ ],
+ [
+ 1056,
+ "SCOTT DRINKARD",
+ 44,
+ "M",
+ "ATLANTA GA",
+ 523,
+ 8103,
+ 619,
+ 8036
+ ],
+ [
+ 1057,
+ "AMY MERRILL",
+ 38,
+ "F",
+ "ATLANTA GA",
+ 1258,
+ 8105,
+ 619,
+ 8049
+ ],
+ [
+ 1058,
+ "CHAD MERRILL",
+ 43,
+ "M",
+ "ATLANTA GA",
+ 1260,
+ 8105,
+ 619,
+ 8049
+ ],
+ [
+ 1059,
+ "JENNY SCHNEIDER",
+ 43,
+ "F",
+ "CUMMING GA",
+ 1612,
+ 8113,
+ 620,
+ 8079
+ ],
+ [
+ 1060,
+ "TERRIE TILLMAN",
+ 42,
+ "F",
+ "SMYRNA GA",
+ 1839,
+ 8114,
+ 620,
+ 8059
+ ],
+ [
+ 1061,
+ "NICK J BIERIE",
+ 21,
+ "M",
+ "ACWORTH GA",
+ 154,
+ 8114,
+ 620,
+ 8046
+ ],
+ [
+ 1062,
+ "SHARON LAWSON",
+ 30,
+ "F",
+ "SUWANEE GA",
+ 1066,
+ 8117,
+ 620,
+ 8074
+ ],
+ [
+ 1063,
+ "MARTHA PACINI",
+ 50,
+ "F",
+ "ATLANTA GA",
+ 1386,
+ 8118,
+ 620,
+ 8009
+ ],
+ [
+ 1064,
+ "JENNIFER WEINGARTH",
+ 38,
+ "F",
+ "SUWANEE GA",
+ 1941,
+ 8119,
+ 620,
+ 8077
+ ],
+ [
+ 1065,
+ "COLLEEN DESANTIS",
+ 45,
+ "F",
+ "MARIETTA FL",
+ 482,
+ 8120,
+ 620,
+ 8023
+ ],
+ [
+ 1066,
+ "SALLIE HONEYCHURCH",
+ 55,
+ "F",
+ "ATLANTA GA",
+ 859,
+ 8123,
+ 621,
+ 8044
+ ],
+ [
+ 1067,
+ "LARRY PEPPER",
+ 60,
+ "M",
+ "ALPHARETTA GA",
+ 1417,
+ 8123,
+ 621,
+ 8094
+ ],
+ [
+ 1068,
+ "MELISSA HAPGOOD",
+ 42,
+ "F",
+ "SMYRNA GA",
+ 780,
+ 8124,
+ 621,
+ 8061
+ ],
+ [
+ 1069,
+ "DEBBIE BRYANT",
+ 54,
+ "F",
+ "JASPER GA",
+ 229,
+ 8126,
+ 621,
+ 8069
+ ],
+ [
+ 1070,
+ "KATHIE WOOD",
+ 43,
+ "F",
+ "MARIETTAQ GA",
+ 1999,
+ 8127,
+ 621,
+ 8019
+ ],
+ [
+ 1071,
+ "DENISE MIRABELLA",
+ 40,
+ "F",
+ "CANTON GA",
+ 1290,
+ 8130,
+ 621,
+ 8051
+ ],
+ [
+ 1072,
+ "NICKI MARMOLL",
+ 46,
+ "F",
+ "MARIETTA GA",
+ 1171,
+ 8134,
+ 621,
+ 8036
+ ],
+ [
+ 1073,
+ "KELLY EMERICK",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 570,
+ 8136,
+ 622,
+ 8082
+ ],
+ [
+ 1074,
+ "LEE BECKNELL",
+ 32,
+ "F",
+ "TUCKER GA",
+ 135,
+ 8141,
+ 622,
+ 8064
+ ],
+ [
+ 1075,
+ "JEANNA CHALLY",
+ 37,
+ "F",
+ "SMYRNA GA",
+ 308,
+ 8143,
+ 622,
+ 8039
+ ],
+ [
+ 1076,
+ "DARREN MARTIN",
+ 36,
+ "M",
+ "DAHLONEGA GA",
+ 1173,
+ 8147,
+ 622,
+ 8096
+ ],
+ [
+ 1077,
+ "WESLEY PARKER",
+ 39,
+ "M",
+ "CALHOUN GA",
+ 1396,
+ 8152,
+ 623,
+ 8023
+ ],
+ [
+ 1078,
+ "JOY SANDOZ",
+ 39,
+ "F",
+ "SANDY SPRINGS GA",
+ 1593,
+ 8152,
+ 623,
+ 8071
+ ],
+ [
+ 1079,
+ "MICHAEL QUIGLEY",
+ 38,
+ "M",
+ "ATLANTA GA",
+ 1476,
+ 8153,
+ 623,
+ 8082
+ ],
+ [
+ 1080,
+ "LINDA NATTRASS",
+ 38,
+ "F",
+ "WOODSTOCK GA",
+ 1334,
+ 8156,
+ 623,
+ 8072
+ ],
+ [
+ 1081,
+ "APRIL STAMBAUGH",
+ 40,
+ "F",
+ "ALPHARETTA GA",
+ 1750,
+ 8164,
+ 624,
+ 8093
+ ],
+ [
+ 1082,
+ "MEERA MODI",
+ 26,
+ "F",
+ "ATLANTA GA",
+ 1295,
+ 8167,
+ 624,
+ 8071
+ ],
+ [
+ 1083,
+ "REBECCA ROFFMAN",
+ 28,
+ "F",
+ "DECATUR GA",
+ 1550,
+ 8167,
+ 624,
+ 8071
+ ],
+ [
+ 1084,
+ "SUSAN MILLS",
+ 62,
+ "F",
+ "PEACHTREE CITY GA",
+ 1288,
+ 8168,
+ 624,
+ 8091
+ ],
+ [
+ 1085,
+ "KRISTIN DEMELFI",
+ 26,
+ "F",
+ "ATLANTA GA",
+ 473,
+ 8171,
+ 624,
+ 8091
+ ],
+ [
+ 1086,
+ "KIM CEPULL",
+ 41,
+ "F",
+ "ROSWELL GA",
+ 305,
+ 8177,
+ 625,
+ 8099
+ ],
+ [
+ 1087,
+ "CARY SCALES",
+ 36,
+ "F",
+ "SMYRNA GA",
+ 1599,
+ 8186,
+ 625,
+ 8161
+ ],
+ [
+ 1088,
+ "DENISE BIERIE",
+ 54,
+ "F",
+ "ACWORTH GA",
+ 153,
+ 8187,
+ 625,
+ 8119
+ ],
+ [
+ 1089,
+ "BRIAN BRODSKY",
+ 29,
+ "M",
+ "CARROLLTON GA",
+ 208,
+ 8188,
+ 625,
+ 8165
+ ],
+ [
+ 1090,
+ "ANASTASIA WALKER",
+ 38,
+ "F",
+ "PEACHTREE CITY GA",
+ 1901,
+ 8189,
+ 626,
+ 8141
+ ],
+ [
+ 1091,
+ "CRAIG SHULER",
+ 43,
+ "M",
+ "SMYRNA GA",
+ 1678,
+ 8196,
+ 626,
+ 8125
+ ],
+ [
+ 1092,
+ "MELISSA ADAMS",
+ 33,
+ "F",
+ "DAHLONEGA GA",
+ 11,
+ 8200,
+ 626,
+ 8085
+ ],
+ [
+ 1093,
+ "MEG ROBINSON",
+ 31,
+ "F",
+ "DECATUR GA",
+ 1546,
+ 8204,
+ 627,
+ 8151
+ ],
+ [
+ 1094,
+ "THERESA SMITH",
+ 41,
+ "F",
+ "MABLETON GA",
+ 1718,
+ 8205,
+ 627,
+ 8140
+ ],
+ [
+ 1095,
+ "DEON WILLIS",
+ 40,
+ "F",
+ "POWDER SPRINGS GA",
+ 1978,
+ 8207,
+ 627,
+ 8176
+ ],
+ [
+ 1096,
+ "JASON BEAVER",
+ 37,
+ "M",
+ "DULUTH GA",
+ 132,
+ 8210,
+ 627,
+ 8194
+ ],
+ [
+ 1097,
+ "LISA WEARING",
+ 43,
+ "F",
+ "ATLANTA GA",
+ 1936,
+ 8210,
+ 627,
+ 8145
+ ],
+ [
+ 1098,
+ "JODI BOSSAK",
+ 33,
+ "F",
+ "AUSTELL GA",
+ 176,
+ 8217,
+ 628,
+ 8139
+ ],
+ [
+ 1099,
+ "ROBERT OWEN",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 1381,
+ 8223,
+ 628,
+ 8166
+ ],
+ [
+ 1100,
+ "LORI BRENNAN",
+ 36,
+ "F",
+ "MABLETON GA",
+ 201,
+ 8224,
+ 628,
+ 8144
+ ],
+ [
+ 1101,
+ "DONALD STAPLES",
+ 50,
+ "M",
+ "LAWRENCEVILLE GA",
+ 1756,
+ 8230,
+ 629,
+ 8142
+ ],
+ [
+ 1102,
+ "MELINDA PRUITT",
+ 41,
+ "F",
+ "GRIFFIN GA",
+ 1474,
+ 8234,
+ 629,
+ 8176
+ ],
+ [
+ 1103,
+ "JESSICA CUMMO",
+ 30,
+ "F",
+ "ATLANTA GA",
+ 414,
+ 8235,
+ 629,
+ 8072
+ ],
+ [
+ 1104,
+ "MILLARD DAVIS",
+ 57,
+ "M",
+ "ATLANTA GA",
+ 452,
+ 8236,
+ 629,
+ 8167
+ ],
+ [
+ 1105,
+ "AMY JEWETT",
+ 39,
+ "F",
+ "ROSWELL GA",
+ 934,
+ 8237,
+ 629,
+ 8180
+ ],
+ [
+ 1106,
+ "LISA TERRY",
+ 45,
+ "F",
+ "JOHNS CREEK GA",
+ 1817,
+ 8237,
+ 629,
+ -1
+ ],
+ [
+ 1107,
+ "ROBERT MOORE",
+ 53,
+ "M",
+ "ACWORTH GA",
+ 1308,
+ 8242,
+ 630,
+ 8193
+ ],
+ [
+ 1108,
+ "JIM PAGE",
+ 56,
+ "M",
+ "ACWORTH GA",
+ 1387,
+ 8243,
+ 630,
+ 8195
+ ],
+ [
+ 1109,
+ "SUZANNE SIMKIN",
+ 48,
+ "F",
+ "ATLANTA GA",
+ 1680,
+ 8243,
+ 630,
+ -1
+ ],
+ [
+ 1110,
+ "JODY KUBIET",
+ 35,
+ "F",
+ "NEWNAN GA",
+ 1034,
+ 8244,
+ 630,
+ 8179
+ ],
+ [
+ 1111,
+ "JENNIFER MCDUFFEE",
+ 40,
+ "F",
+ "ROSWELL GA",
+ 1211,
+ 8244,
+ 630,
+ 8178
+ ],
+ [
+ 1112,
+ "MEG FREDERICK",
+ 57,
+ "F",
+ "ATLANTA GA",
+ 637,
+ 8261,
+ 631,
+ 8195
+ ],
+ [
+ 1113,
+ "KAREN KALLIS",
+ 43,
+ "F",
+ "SANDY SPINGS GA",
+ 965,
+ 8261,
+ 631,
+ 8197
+ ],
+ [
+ 1114,
+ "CASEY BROGDON",
+ 51,
+ "M",
+ "SNELLVILLE GA",
+ 210,
+ 8266,
+ 631,
+ 8189
+ ],
+ [
+ 1115,
+ "MIRANDA DILLARD",
+ 44,
+ "F",
+ "ATLANTA GA",
+ 492,
+ 8269,
+ 632,
+ -1
+ ],
+ [
+ 1116,
+ "NELSON BURKE",
+ 51,
+ "M",
+ "ATLANTA GA",
+ 245,
+ 8269,
+ 632,
+ 8199
+ ],
+ [
+ 1117,
+ "TODD METCALF",
+ 39,
+ "M",
+ "LAWRENCEVILLE GA",
+ 1267,
+ 8272,
+ 632,
+ 8212
+ ],
+ [
+ 1118,
+ "MIKE TETI",
+ 55,
+ "M",
+ "ACWORTH GA",
+ 1818,
+ 8274,
+ 632,
+ 8231
+ ],
+ [
+ 1119,
+ "AMY GLOSSON",
+ 37,
+ "F",
+ "TUCKER GA",
+ 699,
+ 8281,
+ 633,
+ 8222
+ ],
+ [
+ 1120,
+ "VICTORIA FLETCHER",
+ 31,
+ "F",
+ "SMYRNA GA",
+ 612,
+ 8281,
+ 633,
+ 8244
+ ],
+ [
+ 1121,
+ "LISA MILLER",
+ 46,
+ "F",
+ "MILLEDGEVILLE GA",
+ 1281,
+ 8282,
+ 633,
+ 8178
+ ],
+ [
+ 1122,
+ "MARY PICK",
+ 57,
+ "F",
+ "ATLANTA GA",
+ 1439,
+ 8282,
+ 633,
+ 8263
+ ],
+ [
+ 1123,
+ "LINDSEY NELMS",
+ 21,
+ "F",
+ "ATLANTA GA",
+ 1338,
+ 8286,
+ 633,
+ 8253
+ ],
+ [
+ 1124,
+ "HUGH ARMITAGE",
+ 56,
+ "M",
+ "DULUTH GA",
+ 63,
+ 8292,
+ 633,
+ 8218
+ ],
+ [
+ 1125,
+ "JUANITA RAINEY",
+ 41,
+ "F",
+ "DULUTH GA",
+ 1486,
+ 8295,
+ 634,
+ 8178
+ ],
+ [
+ 1126,
+ "PAUL BOUDREAU",
+ 44,
+ "M",
+ "MARIETTA GA",
+ 179,
+ 8298,
+ 634,
+ 8227
+ ],
+ [
+ 1127,
+ "LOREN LYLES",
+ 24,
+ "F",
+ "MARIETTA GA",
+ 1138,
+ 8301,
+ 634,
+ 8203
+ ],
+ [
+ 1128,
+ "KELLEY MAUTZ",
+ 40,
+ "F",
+ "DACULA GA",
+ 1188,
+ 8301,
+ 634,
+ 8193
+ ],
+ [
+ 1129,
+ "HOLLEY FEINBERG",
+ 35,
+ "F",
+ "GRAYSON GA",
+ 593,
+ 8309,
+ 635,
+ 8233
+ ],
+ [
+ 1130,
+ "CAREY HUDDLESTUN",
+ 51,
+ "M",
+ "ATLANTA GA",
+ 880,
+ 8320,
+ 636,
+ 8231
+ ],
+ [
+ 1131,
+ "JAMES LATIMORE",
+ 55,
+ "M",
+ "MABLETON GA",
+ 1062,
+ 8320,
+ 636,
+ 8252
+ ],
+ [
+ 1132,
+ "S WALLER",
+ 39,
+ "M",
+ "ATLANTA GA",
+ 1906,
+ 8326,
+ 636,
+ 8292
+ ],
+ [
+ 1133,
+ "TONIKA LOMAX",
+ 35,
+ "F",
+ "CUMMING GA",
+ 1120,
+ 8329,
+ 636,
+ 8237
+ ],
+ [
+ 1134,
+ "TAMMI PARKER",
+ 39,
+ "F",
+ "ATLANTA GA",
+ 1395,
+ 8331,
+ 636,
+ 8235
+ ],
+ [
+ 1135,
+ "CHERIE AVIV",
+ 57,
+ "F",
+ "DUNWOODY GA",
+ 73,
+ 8331,
+ 636,
+ 8235
+ ],
+ [
+ 1136,
+ "MARGARET TATE",
+ 58,
+ "F",
+ "MONROE NC",
+ 1803,
+ 8333,
+ 637,
+ 8257
+ ],
+ [
+ 1137,
+ "AMANDA DEYOUNG",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 486,
+ 8334,
+ 637,
+ 8280
+ ],
+ [
+ 1138,
+ "KRISTEN ROMANO",
+ 24,
+ "F",
+ "ATLANTA GA",
+ 1555,
+ 8334,
+ 637,
+ 8181
+ ],
+ [
+ 1139,
+ "ROBERTA DALLA VERDE",
+ 38,
+ "F",
+ "SUWANEE GA",
+ 432,
+ 8341,
+ 637,
+ 8273
+ ],
+ [
+ 1140,
+ "WENDY CATES",
+ 44,
+ "F",
+ "CUMMING GA",
+ 301,
+ 8343,
+ 637,
+ 8281
+ ],
+ [
+ 1141,
+ "ASHLEY GIBLIN",
+ 30,
+ "F",
+ "ATLANTA GA",
+ 692,
+ 8347,
+ 638,
+ 8268
+ ],
+ [
+ 1142,
+ "GAYLE MARTIN",
+ 44,
+ "F",
+ "CUMMING GA",
+ 1175,
+ 8348,
+ 638,
+ 8255
+ ],
+ [
+ 1143,
+ "JEFF HARRINGTON",
+ 36,
+ "M",
+ "MONROE GA",
+ 792,
+ 8348,
+ 638,
+ 8273
+ ],
+ [
+ 1144,
+ "JAMES HUNTER",
+ 38,
+ "M",
+ "CANTON GA",
+ 889,
+ 8349,
+ 638,
+ -1
+ ],
+ [
+ 1145,
+ "DAVID ASTOR",
+ 36,
+ "M",
+ "MARIETTA GA",
+ 68,
+ 8350,
+ 638,
+ 8296
+ ],
+ [
+ 1146,
+ "KELLY MARLOW",
+ 43,
+ "F",
+ "CANTON GA",
+ 1170,
+ 8358,
+ 638,
+ 8323
+ ],
+ [
+ 1147,
+ "H MICHAEL BURGETT",
+ 42,
+ "M",
+ "MARIETTA GA",
+ 244,
+ 8358,
+ 638,
+ 8288
+ ],
+ [
+ 1148,
+ "RUSTY GUNTER",
+ 33,
+ "M",
+ "CARTERVILLE GA",
+ 747,
+ 8360,
+ 639,
+ 8305
+ ],
+ [
+ 1149,
+ "JAMES HAYES",
+ 57,
+ "M",
+ "MABLETON GA",
+ 819,
+ 8363,
+ 639,
+ 8312
+ ],
+ [
+ 1150,
+ "ROBERT DOYAL",
+ 37,
+ "M",
+ "PEACHTREE CITY GA",
+ 521,
+ 8375,
+ 640,
+ 8293
+ ],
+ [
+ 1151,
+ "PETER BURKES",
+ 33,
+ "M",
+ "CUMMING GA",
+ 247,
+ 8375,
+ 640,
+ 8328
+ ],
+ [
+ 1152,
+ "PATRICIA DUBOISE",
+ 43,
+ "F",
+ "LAWRENCEVILLE GA",
+ 528,
+ 8379,
+ 640,
+ 8311
+ ],
+ [
+ 1153,
+ "MAGAN HARPER",
+ 37,
+ "F",
+ "DOUGLASVILLE GA",
+ 789,
+ 8381,
+ 640,
+ 8334
+ ],
+ [
+ 1154,
+ "AMY GIROUD",
+ 37,
+ "F",
+ "ATLANTA GA",
+ 697,
+ 8381,
+ 640,
+ 8356
+ ],
+ [
+ 1155,
+ "RACHEL MILES",
+ 29,
+ "F",
+ "ATLANTA GA",
+ 1270,
+ 8385,
+ 641,
+ 8312
+ ],
+ [
+ 1156,
+ "KIM BOZEMAN",
+ 46,
+ "F",
+ "TEMPLE GA",
+ 189,
+ 8387,
+ 641,
+ 8300
+ ],
+ [
+ 1157,
+ "SUSAN EDWARDS",
+ 34,
+ "F",
+ "DALLAS GA",
+ 554,
+ 8387,
+ 641,
+ 8310
+ ],
+ [
+ 1158,
+ "DANIEL NICHOLS",
+ 26,
+ "M",
+ "DECATUR GA",
+ 1343,
+ 8392,
+ 641,
+ 8311
+ ],
+ [
+ 1159,
+ "HIROHIKO ASAKAWA",
+ 52,
+ "M",
+ "ACWORTH GA",
+ 65,
+ 8393,
+ 641,
+ 8338
+ ],
+ [
+ 1160,
+ "EMILY CARLTON",
+ 31,
+ "F",
+ "DECATUR GA",
+ 286,
+ 8395,
+ 641,
+ 8352
+ ],
+ [
+ 1161,
+ "STEVEN POTTS",
+ 30,
+ "M",
+ "ATLANTA GA",
+ 1460,
+ 8396,
+ 641,
+ 8319
+ ],
+ [
+ 1162,
+ "THERESA EBRON",
+ 37,
+ "F",
+ "LAWRENCEVILLE GA",
+ 545,
+ 8397,
+ 641,
+ 8303
+ ],
+ [
+ 1163,
+ "ADRIENNE SMITH",
+ 31,
+ "F",
+ "DECATUR GA",
+ 1698,
+ 8397,
+ 641,
+ 8325
+ ],
+ [
+ 1164,
+ "GINNY ROGERS",
+ 28,
+ "F",
+ "ADAIRSVILLE GA",
+ 1551,
+ 8398,
+ 641,
+ 8327
+ ],
+ [
+ 1165,
+ "LIN STRADLEY",
+ 61,
+ "M",
+ "ATLANTA GA",
+ 1768,
+ 8403,
+ 642,
+ 8371
+ ],
+ [
+ 1166,
+ "KELLI PIRKLE",
+ 40,
+ "F",
+ "GAINESVILLE GA",
+ 1443,
+ 8403,
+ 642,
+ 8291
+ ],
+ [
+ 1167,
+ "KELLY GALLIMORE",
+ 45,
+ "F",
+ "POWDER SPRINGS GA",
+ 662,
+ 8407,
+ 642,
+ 8352
+ ],
+ [
+ 1168,
+ "ERIN ROBINSON",
+ 28,
+ "F",
+ "MARIETTA GA",
+ 1543,
+ 8408,
+ 642,
+ 8316
+ ],
+ [
+ 1169,
+ "BRIE KUDLA",
+ 29,
+ "F",
+ "SMYRNA GA",
+ 1035,
+ 8408,
+ 642,
+ 8317
+ ],
+ [
+ 1170,
+ "CINDY RATLIFF",
+ 39,
+ "F",
+ "GAINESVILLE GA",
+ 1494,
+ 8410,
+ 642,
+ 8336
+ ],
+ [
+ 1171,
+ "LAUREN SOMERS",
+ 23,
+ "F",
+ "ATLANTA GA",
+ 1724,
+ 8416,
+ 643,
+ 8319
+ ],
+ [
+ 1172,
+ "JILL SKOCIR",
+ 35,
+ "F",
+ "DECATUR GA",
+ 1694,
+ 8418,
+ 643,
+ 8320
+ ],
+ [
+ 1173,
+ "TAYLOR EDWARDS",
+ 56,
+ "M",
+ "DOUGLASVILLE GA",
+ 555,
+ 8418,
+ 643,
+ 8379
+ ],
+ [
+ 1174,
+ "MELISSA WHITINGER",
+ 38,
+ "F",
+ "FLOWERY BRANCH GA",
+ 1964,
+ 8419,
+ 643,
+ 8353
+ ],
+ [
+ 1175,
+ "DAWN HANDLEY",
+ 31,
+ "F",
+ "FORT WORTH TX",
+ 773,
+ 8425,
+ 644,
+ 8341
+ ],
+ [
+ 1176,
+ "KIM BRUNDAGE",
+ 44,
+ "F",
+ "SUWANEE GA",
+ 225,
+ 8430,
+ 644,
+ 8345
+ ],
+ [
+ 1177,
+ "SARAH LASITER",
+ 37,
+ "F",
+ "MABLETON GA",
+ 1057,
+ 8431,
+ 644,
+ 8384
+ ],
+ [
+ 1178,
+ "PAULA JAMIESON",
+ 45,
+ "F",
+ "SUWANEE GA",
+ 919,
+ 8432,
+ 644,
+ 8346
+ ],
+ [
+ 1179,
+ "SANDY SCHWARTZ",
+ 57,
+ "M",
+ "ATLANTA GA",
+ 1621,
+ 8432,
+ 644,
+ 8404
+ ],
+ [
+ 1180,
+ "DAVID BARRON",
+ 49,
+ "M",
+ "MARIETTA GA",
+ 107,
+ 8438,
+ 645,
+ 8357
+ ],
+ [
+ 1181,
+ "ANNE SEPKO",
+ 40,
+ "F",
+ "SUGAR HILL GA",
+ 1641,
+ 8442,
+ 645,
+ 8321
+ ],
+ [
+ 1182,
+ "CATHERINE CANFIELD",
+ 50,
+ "F",
+ "LAWRENCEVILLE GA",
+ 278,
+ 8444,
+ 645,
+ 8355
+ ],
+ [
+ 1183,
+ "TERESITA PACHANO",
+ 46,
+ "F",
+ "MARIETTA GA",
+ 1385,
+ 8444,
+ 645,
+ 8391
+ ],
+ [
+ 1184,
+ "HEATHER WRIGHT",
+ 41,
+ "F",
+ "LAWRENCEVILLE GA",
+ 2005,
+ 8444,
+ 645,
+ 8356
+ ],
+ [
+ 1185,
+ "LIZBETH TULLOCH",
+ 53,
+ "F",
+ "HOUSTON TX",
+ 1867,
+ 8446,
+ 645,
+ 8367
+ ],
+ [
+ 1186,
+ "KRISTEN BREEDLOVE",
+ 28,
+ "F",
+ "SMYRNA GA",
+ 199,
+ 8447,
+ 645,
+ 8406
+ ],
+ [
+ 1187,
+ "DIANA RIMBY",
+ 29,
+ "F",
+ "MARIETTA GA",
+ 1531,
+ 8447,
+ 645,
+ 8391
+ ],
+ [
+ 1188,
+ "SANDY SHEAROUSE",
+ 38,
+ "F",
+ "BARNESVILLE GA",
+ 1660,
+ 8447,
+ 645,
+ 8344
+ ],
+ [
+ 1189,
+ "RACHEL WITKIEWICZ",
+ 28,
+ "F",
+ "CANTON GA",
+ 1990,
+ 8451,
+ 646,
+ 8364
+ ],
+ [
+ 1190,
+ "ROBERT MCMENOMY",
+ 26,
+ "M",
+ "MONTGOMERY AL",
+ 1235,
+ 8454,
+ 646,
+ 8349
+ ],
+ [
+ 1191,
+ "KATIE COOPER",
+ 22,
+ "F",
+ "CHARLOTTE NC",
+ 382,
+ 8455,
+ 646,
+ 8404
+ ],
+ [
+ 1192,
+ "JAMIE CROSBY",
+ 37,
+ "M",
+ "NORCROSS GA",
+ 410,
+ 8457,
+ 646,
+ 8438
+ ],
+ [
+ 1193,
+ "SARA TOERING",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 1844,
+ 8457,
+ 646,
+ 8404
+ ],
+ [
+ 1194,
+ "HOWARD ALTER",
+ 50,
+ "M",
+ "SMYRNA GA",
+ 39,
+ 8458,
+ 646,
+ 8376
+ ],
+ [
+ 1195,
+ "CHRISTINA ALLEN",
+ 37,
+ "F",
+ "DAWSONVILLE GA",
+ 33,
+ 8463,
+ 647,
+ 8410
+ ],
+ [
+ 1196,
+ "TIFFANY JONES",
+ 35,
+ "F",
+ "WOODSTOCK GA",
+ 2032,
+ 8465,
+ 647,
+ 8347
+ ],
+ [
+ 1197,
+ "SUZANNE MACKIEWICZ",
+ 40,
+ "F",
+ "MARIETTA GA",
+ 1148,
+ 8469,
+ 647,
+ 8403
+ ],
+ [
+ 1198,
+ "SANDY LASSERE",
+ 44,
+ "F",
+ "ATLANTA GA",
+ 1059,
+ 8470,
+ 647,
+ 8409
+ ],
+ [
+ 1199,
+ "AMBER WATERS",
+ 27,
+ "F",
+ "CARROLLTON GA",
+ 1928,
+ 8472,
+ 647,
+ 8412
+ ],
+ [
+ 1200,
+ "KATHERINE MELVIN",
+ 32,
+ "F",
+ "SMYRNA GA",
+ 1253,
+ 8477,
+ 648,
+ 8423
+ ],
+ [
+ 1201,
+ "MEGAN MCGUIGAN",
+ 33,
+ "F",
+ "ATLANTA GA",
+ 1220,
+ 8499,
+ 649,
+ 8404
+ ],
+ [
+ 1202,
+ "ROBERT MAURY",
+ 53,
+ "M",
+ "FAYETTEVILLE GA",
+ 1187,
+ 8504,
+ 650,
+ 8416
+ ],
+ [
+ 1203,
+ "SUSAN CHRISTIAN",
+ 35,
+ "F",
+ "CANTON GA",
+ 329,
+ 8505,
+ 650,
+ 8420
+ ],
+ [
+ 1204,
+ "KATIE BYRD",
+ 30,
+ "F",
+ "ATLANTA GA",
+ 263,
+ 8513,
+ 650,
+ 8406
+ ],
+ [
+ 1205,
+ "PAMELA ROPER",
+ 37,
+ "F",
+ "KENNESAW GA",
+ 1557,
+ 8520,
+ 651,
+ 8427
+ ],
+ [
+ 1206,
+ "TAMMY MELLOTT",
+ 44,
+ "F",
+ "HOSCHTON GA",
+ 1250,
+ 8520,
+ 651,
+ 8436
+ ],
+ [
+ 1207,
+ "SARA SMITH",
+ 38,
+ "F",
+ "KENNESAW GA",
+ 1716,
+ 8521,
+ 651,
+ 8385
+ ],
+ [
+ 1208,
+ "RON OLIVER",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 1367,
+ 8523,
+ 651,
+ 8479
+ ],
+ [
+ 1209,
+ "ANNA GRAY",
+ 19,
+ "F",
+ "SNELLVILLE GA",
+ 721,
+ 8526,
+ 651,
+ 8458
+ ],
+ [
+ 1210,
+ "ELSPETH FRENCH",
+ 43,
+ "F",
+ "CHAMBLEE GA",
+ 642,
+ 8536,
+ 652,
+ 8440
+ ],
+ [
+ 1211,
+ "ANNIE KING",
+ 51,
+ "F",
+ "DECATUR GA",
+ 998,
+ 8537,
+ 652,
+ 8444
+ ],
+ [
+ 1212,
+ "MICHAEL CHASE",
+ 60,
+ "M",
+ "DECATUR GA",
+ 320,
+ 8538,
+ 652,
+ 8445
+ ],
+ [
+ 1213,
+ "JENNIFER DEYOUNG",
+ 39,
+ "F",
+ "CANTON GA",
+ 487,
+ 8540,
+ 652,
+ 8443
+ ],
+ [
+ 1214,
+ "LYNDEL BEAVER",
+ 25,
+ "F",
+ "ATLANTA GA",
+ 133,
+ 8548,
+ 653,
+ 8502
+ ],
+ [
+ 1215,
+ "MEGAN RILEY",
+ 35,
+ "F",
+ "MARIETTA GA",
+ 1530,
+ 8553,
+ 653,
+ 8434
+ ],
+ [
+ 1216,
+ "BROOKE WALDEN",
+ 29,
+ "F",
+ "CUMMING GA",
+ 1899,
+ 8553,
+ 653,
+ 8505
+ ],
+ [
+ 1217,
+ "TRICIA ONEILL",
+ 36,
+ "F",
+ "CANTON GA",
+ 1371,
+ 8554,
+ 653,
+ 8435
+ ],
+ [
+ 1218,
+ "MEERA SHAH",
+ 29,
+ "F",
+ "ATLANTA GA",
+ 1648,
+ 8555,
+ 654,
+ 8510
+ ],
+ [
+ 1219,
+ "STEPHANIE LOOMIS",
+ 45,
+ "F",
+ "MARIETTA GA",
+ 1124,
+ 8556,
+ 654,
+ 8455
+ ],
+ [
+ 1220,
+ "JOHN BARRON",
+ 15,
+ "M",
+ "MARIETTA GA",
+ 108,
+ 8556,
+ 654,
+ 8477
+ ],
+ [
+ 1221,
+ "MEGAN BOYD",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 2144,
+ 8557,
+ 654,
+ 8472
+ ],
+ [
+ 1222,
+ "JEREMY SALE",
+ 30,
+ "M",
+ "ATLANTA GA",
+ 2145,
+ 8557,
+ 654,
+ 8472
+ ],
+ [
+ 1223,
+ "KIMBERLY RALICH",
+ 39,
+ "F",
+ "POWDER SPRINGS GA",
+ 1487,
+ 8561,
+ 654,
+ 8512
+ ],
+ [
+ 1224,
+ "MELLISSA FRIEDRICH",
+ 42,
+ "F",
+ "CARTERSVILLE GA",
+ 647,
+ 8574,
+ 655,
+ 8519
+ ],
+ [
+ 1225,
+ "VANESSA LE",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 1071,
+ 8576,
+ 655,
+ 8499
+ ],
+ [
+ 1226,
+ "KERSTIN BENTON",
+ 38,
+ "F",
+ "PEACHTREE CITY GA",
+ 144,
+ 8576,
+ 655,
+ 8500
+ ],
+ [
+ 1227,
+ "NIKKI MOORE",
+ 99,
+ "F",
+ "SMYRNA GA",
+ 1306,
+ 8579,
+ 655,
+ 8474
+ ],
+ [
+ 1228,
+ "LAURA FOSTER",
+ 41,
+ "F",
+ "ATLANTA GA",
+ 623,
+ 8584,
+ 656,
+ 8507
+ ],
+ [
+ 1229,
+ "SARAH KING",
+ 38,
+ "F",
+ "ROME GA",
+ 1002,
+ 8584,
+ 656,
+ 8507
+ ],
+ [
+ 1230,
+ "ALI THOMPSON",
+ 35,
+ "F",
+ "WOODSTOCK GA",
+ 2031,
+ 8586,
+ 656,
+ 8468
+ ],
+ [
+ 1231,
+ "JUDY JOHNSTON",
+ 48,
+ "F",
+ "CANTON GA",
+ 951,
+ 8587,
+ 656,
+ 8525
+ ],
+ [
+ 1232,
+ "ROBERTA WALTERS",
+ 36,
+ "F",
+ "WATKINSVILLE GA",
+ 1912,
+ 8588,
+ 656,
+ 8529
+ ],
+ [
+ 1233,
+ "MELINDA SETCHELL",
+ 36,
+ "F",
+ "MARIETTA GA",
+ 1643,
+ 8590,
+ 656,
+ 8517
+ ],
+ [
+ 1234,
+ "BONITA CASON-ATLOW",
+ 41,
+ "F",
+ "ATLANTA GA",
+ 298,
+ 8594,
+ 656,
+ 8548
+ ],
+ [
+ 1235,
+ "TROY RAMBO",
+ 40,
+ "M",
+ "COLUMBUS OH",
+ 1490,
+ 8594,
+ 656,
+ 8561
+ ],
+ [
+ 1236,
+ "MELISSA LUNDELL",
+ 33,
+ "F",
+ "MARIETTA GA",
+ 1135,
+ 8597,
+ 657,
+ 8544
+ ],
+ [
+ 1237,
+ "JENNIFER BUSEICK",
+ 33,
+ "F",
+ "ATLANTA GA",
+ 254,
+ 8598,
+ 657,
+ 8516
+ ],
+ [
+ 1238,
+ "ELIZABETH SCHWARZE",
+ 46,
+ "F",
+ "DUNWOODY GA",
+ 1623,
+ 8598,
+ 657,
+ 8552
+ ],
+ [
+ 1239,
+ "REBECCA KIEFFER",
+ 30,
+ "F",
+ "SMYRNA GA",
+ 993,
+ 8599,
+ 657,
+ 8546
+ ],
+ [
+ 1240,
+ "CURTIS JONES",
+ 29,
+ "M",
+ "ATLANTA GA",
+ 955,
+ 8610,
+ 658,
+ 8564
+ ],
+ [
+ 1241,
+ "TANYA PALMER",
+ 32,
+ "F",
+ "SMYRNA GA",
+ 1390,
+ 8610,
+ 658,
+ 8565
+ ],
+ [
+ 1242,
+ "CHRISTINE PATRICK",
+ 35,
+ "F",
+ "ALPHARETTA GA",
+ 1401,
+ 8611,
+ 658,
+ 8538
+ ],
+ [
+ 1243,
+ "DIANA PENGE",
+ 43,
+ "F",
+ "ACWORTH GA",
+ 1416,
+ 8611,
+ 658,
+ 8534
+ ],
+ [
+ 1244,
+ "JENNIFER HAWKINS",
+ 39,
+ "F",
+ "CUMMING GA",
+ 816,
+ 8620,
+ 658,
+ 8560
+ ],
+ [
+ 1245,
+ "JOSH BUGOSH",
+ 26,
+ "M",
+ "BUFORD GA",
+ 236,
+ 8622,
+ 659,
+ 8517
+ ],
+ [
+ 1246,
+ "TIM SCHIPPMANN",
+ 41,
+ "M",
+ "CUMMING GA",
+ 1605,
+ 8625,
+ 659,
+ 8601
+ ],
+ [
+ 1247,
+ "AMY BERRY",
+ 35,
+ "F",
+ "TULSA OK",
+ 150,
+ 8631,
+ 659,
+ 8536
+ ],
+ [
+ 1248,
+ "WENDY SCHMITZ",
+ 35,
+ "F",
+ "ROSWELL GA",
+ 1610,
+ 8631,
+ 659,
+ 8537
+ ],
+ [
+ 1249,
+ "ROSS JOHNSTON",
+ 48,
+ "M",
+ "CANTON GA",
+ 952,
+ 8640,
+ 660,
+ 8578
+ ],
+ [
+ 1250,
+ "CHERYL HUNTER",
+ 47,
+ "F",
+ "DECATUR GA",
+ 888,
+ 8643,
+ 660,
+ 8527
+ ],
+ [
+ 1251,
+ "TAMERA MILLER",
+ 49,
+ "F",
+ "POWDER SPRINGS GA",
+ 1283,
+ 8644,
+ 660,
+ 8571
+ ],
+ [
+ 1252,
+ "JENNIFER CLEMENS",
+ 39,
+ "F",
+ "MARIETTA GA",
+ 340,
+ 8653,
+ 661,
+ 8565
+ ],
+ [
+ 1253,
+ "JEANNINE BROCK",
+ 39,
+ "F",
+ "MARIETTA GA",
+ 206,
+ 8653,
+ 661,
+ 8565
+ ],
+ [
+ 1254,
+ "DAMON BENNAFIELD",
+ 43,
+ "M",
+ "ATLANTA GA",
+ 141,
+ 8654,
+ 661,
+ 8593
+ ],
+ [
+ 1255,
+ "JANELLE BOWERSOX",
+ 50,
+ "F",
+ "ATLANTA GA",
+ 181,
+ 8658,
+ 661,
+ 8562
+ ],
+ [
+ 1256,
+ "CLAUDIA DONATO",
+ 33,
+ "F",
+ "LAWRENCEVILLE GA",
+ 505,
+ 8662,
+ 662,
+ 8587
+ ],
+ [
+ 1257,
+ "KATE HOWARD",
+ 24,
+ "F",
+ "ACWORTH GA",
+ 872,
+ 8664,
+ 662,
+ 8585
+ ],
+ [
+ 1258,
+ "JUDY STANLEY",
+ 59,
+ "F",
+ "DECATUR GA",
+ 1753,
+ 8677,
+ 663,
+ 8647
+ ],
+ [
+ 1259,
+ "LEWIS DOWDEN",
+ 62,
+ "M",
+ "DECATUR GA GA",
+ 514,
+ 8678,
+ 663,
+ 8647
+ ],
+ [
+ 1260,
+ "MELISSA O'CONNELL",
+ 38,
+ "F",
+ "ATLANTA GA",
+ 1358,
+ 8681,
+ 663,
+ 8619
+ ],
+ [
+ 1261,
+ "ERIN MACE",
+ 35,
+ "F",
+ "NEWNAN GA",
+ 1143,
+ 8681,
+ 663,
+ 8636
+ ],
+ [
+ 1262,
+ "ELIZABETH ALLEN",
+ 38,
+ "F",
+ "COVINGTON GA",
+ 34,
+ 8683,
+ 663,
+ 8625
+ ],
+ [
+ 1263,
+ "ODIONYENFE ADELAKUN",
+ 34,
+ "F",
+ "MARIETTA GA",
+ 13,
+ 8688,
+ 664,
+ 8617
+ ],
+ [
+ 1264,
+ "GLORIA CLARK",
+ 48,
+ "F",
+ "MARIETTA GA",
+ 333,
+ 8689,
+ 664,
+ 8620
+ ],
+ [
+ 1265,
+ "VICTORIA PRICE",
+ 21,
+ "F",
+ "MILLEDGEVILLE GA",
+ 1469,
+ 8690,
+ 664,
+ 8624
+ ],
+ [
+ 1266,
+ "MARK LASSERE",
+ 46,
+ "M",
+ "ATLANTA GA",
+ 1058,
+ 8692,
+ 664,
+ -1
+ ],
+ [
+ 1267,
+ "MITCHELL MCGHEE",
+ 23,
+ "M",
+ "MILLEDGEVILLE GA",
+ 1218,
+ 8692,
+ 664,
+ 8625
+ ],
+ [
+ 1268,
+ "DANIELA MARTINEZ",
+ 25,
+ "F",
+ "DAHLONEGA GA",
+ 1180,
+ 8696,
+ 664,
+ 8582
+ ],
+ [
+ 1269,
+ "WILLIAM HENRY, JR.",
+ 55,
+ "M",
+ "NEWPORT NEWS VA",
+ 834,
+ 8699,
+ 665,
+ 8539
+ ],
+ [
+ 1270,
+ "RUTH COLEGROVE",
+ 37,
+ "F",
+ "DULUTH GA",
+ 361,
+ 8703,
+ 665,
+ 8610
+ ],
+ [
+ 1271,
+ "IRENE DA SILVA",
+ 39,
+ "F",
+ "LAWRENCEVILLE GA",
+ 428,
+ 8711,
+ 665,
+ 8612
+ ],
+ [
+ 1272,
+ "MORGAN ETHERINGTON",
+ 26,
+ "F",
+ "ATLANTA GA",
+ 583,
+ 8711,
+ 665,
+ 8612
+ ],
+ [
+ 1273,
+ "WENDY COSTELLO",
+ 47,
+ "F",
+ "FLOWERY BRANCH GA",
+ 389,
+ 8711,
+ 665,
+ 8640
+ ],
+ [
+ 1274,
+ "KRISTY BASINGER",
+ 38,
+ "F",
+ "GAINESVILLE GA",
+ 120,
+ 8722,
+ 666,
+ 8650
+ ],
+ [
+ 1275,
+ "JULIEANA JOHNSON",
+ 37,
+ "F",
+ "ALPHARETTA GA",
+ 946,
+ 8727,
+ 667,
+ 8606
+ ],
+ [
+ 1276,
+ "KRISTEN GOTT",
+ 30,
+ "F",
+ "LOCUST GROVE GA",
+ 712,
+ 8728,
+ 667,
+ 8633
+ ],
+ [
+ 1277,
+ "CARRIE RAGAN",
+ 18,
+ "F",
+ "ROSWELL GA",
+ 1483,
+ 8729,
+ 667,
+ 8651
+ ],
+ [
+ 1278,
+ "DIANE PITTMAN",
+ 60,
+ "F",
+ "JOHNS CREEK GA",
+ 1444,
+ 8732,
+ 667,
+ 8656
+ ],
+ [
+ 1279,
+ "WHITNEY HALLER",
+ 23,
+ "F",
+ "POWDER SPRINGS GA",
+ 768,
+ 8732,
+ 667,
+ 8662
+ ],
+ [
+ 1280,
+ "JAMES KIM",
+ 26,
+ "M",
+ "LAGRANGE GA",
+ 996,
+ 8734,
+ 667,
+ 8711
+ ],
+ [
+ 1281,
+ "KIMBERLY LARAVEA",
+ 52,
+ "F",
+ "ALPHARETTA GA",
+ 1055,
+ 8737,
+ 667,
+ 8661
+ ],
+ [
+ 1282,
+ "SARAH BABCOCK",
+ 28,
+ "F",
+ "MARIETTA GA",
+ 2035,
+ 8738,
+ 667,
+ 8663
+ ],
+ [
+ 1283,
+ "THOMAS DARNELL",
+ 37,
+ "M",
+ "CANTON GA",
+ 443,
+ 8739,
+ 668,
+ 8703
+ ],
+ [
+ 1284,
+ "RAQUEL BOWMAN",
+ 48,
+ "F",
+ "ACWORTH GA",
+ 183,
+ 8742,
+ 668,
+ 8632
+ ],
+ [
+ 1285,
+ "ALEXIS SEYMOUR",
+ 28,
+ "F",
+ "GAINESVILLE GA",
+ 1645,
+ 8744,
+ 668,
+ 8673
+ ],
+ [
+ 1286,
+ "AMY POTTS",
+ 28,
+ "F",
+ "ATLANTA GA",
+ 1459,
+ 8759,
+ 669,
+ 8660
+ ],
+ [
+ 1287,
+ "JAMES SHELTON",
+ 35,
+ "M",
+ "ROSWELL GA",
+ 1664,
+ 8762,
+ 669,
+ 8735
+ ],
+ [
+ 1288,
+ "JOHN RAFFERTY",
+ 40,
+ "M",
+ "STONE MOUNTAIN GA",
+ 1482,
+ 8762,
+ 669,
+ 8660
+ ],
+ [
+ 1289,
+ "SANDI SASSENBERGER",
+ 41,
+ "F",
+ "MARIETTA GA",
+ 1596,
+ 8770,
+ 670,
+ 8690
+ ],
+ [
+ 1290,
+ "ELIZABETH EDWARDS",
+ 32,
+ "F",
+ "CANTON GA",
+ 548,
+ 8773,
+ 670,
+ 8678
+ ],
+ [
+ 1291,
+ "JENNIFER CHANG",
+ 36,
+ "F",
+ "TUCKER GA",
+ 316,
+ 8775,
+ 670,
+ 8675
+ ],
+ [
+ 1292,
+ "DOMINIC AMBROSIO",
+ 30,
+ "M",
+ "SAN DIEGO CA",
+ 45,
+ 8778,
+ 670,
+ 8711
+ ],
+ [
+ 1293,
+ "BETH BELK",
+ 31,
+ "F",
+ "SAN DIEGO CA",
+ 137,
+ 8778,
+ 671,
+ 8712
+ ],
+ [
+ 1294,
+ "SCOTT BRYANT",
+ 43,
+ "M",
+ "MARIETTA GA",
+ 230,
+ 8780,
+ 671,
+ 8688
+ ],
+ [
+ 1295,
+ "AMY HARVISON",
+ 34,
+ "F",
+ "VILLA RICA GA",
+ 806,
+ 8781,
+ 671,
+ 8724
+ ],
+ [
+ 1296,
+ "KIM SHATTUCK",
+ 44,
+ "F",
+ "SANDY SPRINGS GA",
+ 1657,
+ 8781,
+ 671,
+ 8683
+ ],
+ [
+ 1297,
+ "PAMELA ROSEN",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 1562,
+ 8783,
+ 671,
+ 8704
+ ],
+ [
+ 1298,
+ "DEBBIE PAULDING",
+ 48,
+ "F",
+ "CUMMING GA",
+ 1408,
+ 8787,
+ 671,
+ 8740
+ ],
+ [
+ 1299,
+ "AMY DEARMENT",
+ 23,
+ "F",
+ "ATLANTA GA",
+ 463,
+ 8787,
+ 671,
+ 8722
+ ],
+ [
+ 1300,
+ "DAN MCCULLY",
+ 50,
+ "M",
+ "SHARPSBURG GA",
+ 1205,
+ 8790,
+ 671,
+ 8680
+ ],
+ [
+ 1301,
+ "HEATHER SAILORS",
+ 30,
+ "F",
+ "MARIETTA GA",
+ 1580,
+ 8790,
+ 671,
+ 8693
+ ],
+ [
+ 1302,
+ "MICHAEL VETTER",
+ 37,
+ "M",
+ "GAINESVILLE GA",
+ 1890,
+ 8795,
+ 672,
+ 8721
+ ],
+ [
+ 1303,
+ "LAURA OWENS",
+ 36,
+ "F",
+ "MABLETON GA",
+ 1382,
+ 8795,
+ 672,
+ 8689
+ ],
+ [
+ 1304,
+ "KIM FULKERSON",
+ 40,
+ "F",
+ "KENNESAW GA",
+ 652,
+ 8799,
+ 672,
+ 8714
+ ],
+ [
+ 1305,
+ "STACY ALEXANDER",
+ 33,
+ "F",
+ "MARIETTA GA",
+ 31,
+ 8800,
+ 672,
+ 8754
+ ],
+ [
+ 1306,
+ "KEVIN WILLIAMS",
+ 39,
+ "M",
+ "POWDER SPRINGS GA",
+ 1974,
+ 8801,
+ 672,
+ -1
+ ],
+ [
+ 1307,
+ "KATE JARVIS",
+ 18,
+ "F",
+ "CUMMING GA",
+ 923,
+ 8805,
+ 673,
+ 8724
+ ],
+ [
+ 1308,
+ "CHRIS JARVIS",
+ 44,
+ "M",
+ "CUMMING GA",
+ 922,
+ 8805,
+ 673,
+ 8726
+ ],
+ [
+ 1309,
+ "HINTON DAVIS",
+ 41,
+ "M",
+ "DULUTH GA",
+ 449,
+ 8808,
+ 673,
+ 8734
+ ],
+ [
+ 1310,
+ "RUSSELL SPEARS",
+ 46,
+ "M",
+ "POWDER SPRINGS GA",
+ 1734,
+ 8811,
+ 673,
+ 8737
+ ],
+ [
+ 1311,
+ "MARLENE BURCKHALTER",
+ 46,
+ "F",
+ "THOMASVILLE NC",
+ 241,
+ 8811,
+ 673,
+ 8669
+ ],
+ [
+ 1312,
+ "KAREN SLATE",
+ 53,
+ "F",
+ "THOMASVILLE NC",
+ 1695,
+ 8811,
+ 673,
+ 8670
+ ],
+ [
+ 1313,
+ "JILL SPEARS",
+ 42,
+ "F",
+ "POWDER SPRINGS GA",
+ 1733,
+ 8812,
+ 673,
+ 8737
+ ],
+ [
+ 1314,
+ "MICHAEL LINDSAY",
+ 57,
+ "M",
+ "LITHONIA GA",
+ 1102,
+ 8823,
+ 674,
+ 8728
+ ],
+ [
+ 1315,
+ "MARY ESPIRITU",
+ 39,
+ "F",
+ "COLUMBUS GA",
+ 578,
+ 8826,
+ 674,
+ 8712
+ ],
+ [
+ 1316,
+ "SARAH BIERENFELD",
+ 17,
+ "F",
+ "COLUMBUS GA",
+ 152,
+ 8827,
+ 674,
+ 8713
+ ],
+ [
+ 1317,
+ "KESHAWN RIDGEL",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 1525,
+ 8828,
+ 674,
+ 8737
+ ],
+ [
+ 1318,
+ "MATTHEW BASFORD",
+ 30,
+ "M",
+ "MABLETON GA",
+ 119,
+ 8830,
+ 675,
+ 8730
+ ],
+ [
+ 1319,
+ "KELLIE ADAMS",
+ 28,
+ "F",
+ "CONYERS GA",
+ 10,
+ 8831,
+ 675,
+ 8741
+ ],
+ [
+ 1320,
+ "JEANNE GREEN",
+ 42,
+ "F",
+ "MARIETTA GA",
+ 729,
+ 8831,
+ 675,
+ 8762
+ ],
+ [
+ 1321,
+ "LULIT GEBRU",
+ 41,
+ "F",
+ "MARIETTE GA",
+ 683,
+ 8833,
+ 675,
+ 8731
+ ],
+ [
+ 1322,
+ "ROBERT LOSAW",
+ 66,
+ "M",
+ "CANTON GA",
+ 1128,
+ 8835,
+ 675,
+ 8756
+ ],
+ [
+ 1323,
+ "ALECIA SMITH",
+ 26,
+ "F",
+ "BETHLEHEM GA",
+ 1699,
+ 8835,
+ 675,
+ 8791
+ ],
+ [
+ 1324,
+ "JANNA MALLIS",
+ 31,
+ "F",
+ "GAINESVILLE GA",
+ 1160,
+ 8836,
+ 675,
+ 8763
+ ],
+ [
+ 1325,
+ "ALVARO TEJADA",
+ 33,
+ "M",
+ "CANTON GA",
+ 1815,
+ 8840,
+ 675,
+ 8740
+ ],
+ [
+ 1326,
+ "KENDRA CALDARELLA",
+ 40,
+ "F",
+ "MARIETTA GA",
+ 268,
+ 8843,
+ 675,
+ 8748
+ ],
+ [
+ 1327,
+ "MICHELLE MOORE",
+ 36,
+ "F",
+ "MARIETTA GA",
+ 1305,
+ 8844,
+ 676,
+ 8750
+ ],
+ [
+ 1328,
+ "SARAH KENNEDY",
+ 40,
+ "F",
+ "ATLANTA GA",
+ 988,
+ 8844,
+ 676,
+ 8742
+ ],
+ [
+ 1329,
+ "STEVEN JENKINS",
+ 36,
+ "M",
+ "NOLENSVILLE TN",
+ 926,
+ 8863,
+ 677,
+ 8775
+ ],
+ [
+ 1330,
+ "KEVIN LYON",
+ 36,
+ "M",
+ "SMYRNA GA",
+ 1140,
+ 8864,
+ 677,
+ 8776
+ ],
+ [
+ 1331,
+ "MERISSA HAYMORE",
+ 33,
+ "F",
+ "MARIETTA GA",
+ 821,
+ 8866,
+ 677,
+ 8767
+ ],
+ [
+ 1332,
+ "ROSA KING",
+ 38,
+ "F",
+ "WOODSTOCK GA",
+ 1001,
+ 8869,
+ 677,
+ 8767
+ ],
+ [
+ 1333,
+ "KELLY FREEMAN",
+ 42,
+ "F",
+ "SUGAR HILL GA",
+ 641,
+ 8873,
+ 678,
+ 8751
+ ],
+ [
+ 1334,
+ "YULONDA GODBOLD",
+ 44,
+ "F",
+ "DECATUR GA",
+ 701,
+ 8881,
+ 678,
+ 8782
+ ],
+ [
+ 1335,
+ "ANDY GRIFFIN",
+ 41,
+ "M",
+ "GAINESVILLEG GA",
+ 738,
+ 8888,
+ 679,
+ 8816
+ ],
+ [
+ 1336,
+ "TIMOTHY REESE",
+ 32,
+ "M",
+ "POWDER SPRINGS GA",
+ 2036,
+ 8894,
+ 679,
+ 8808
+ ],
+ [
+ 1337,
+ "JORJA DAVENPORT",
+ 64,
+ "F",
+ "ATLANTA GA",
+ 444,
+ 8894,
+ 679,
+ 8871
+ ],
+ [
+ 1338,
+ "SUSI BRACKNELL",
+ 37,
+ "F",
+ "ACWORTH GA",
+ 192,
+ 8901,
+ 680,
+ 8859
+ ],
+ [
+ 1339,
+ "ANGIE SCOTT",
+ 35,
+ "F",
+ "GRAYSON GA",
+ 1625,
+ 8903,
+ 680,
+ 8833
+ ],
+ [
+ 1340,
+ "TRICIA GRAHAM",
+ 45,
+ "F",
+ "JULIETTE GA",
+ 716,
+ 8911,
+ 681,
+ 8829
+ ],
+ [
+ 1341,
+ "AMANDA HAYMORE",
+ 25,
+ "F",
+ "NASHVILLE TN",
+ 820,
+ 8918,
+ 681,
+ 8819
+ ],
+ [
+ 1342,
+ "ILENE MILLER",
+ 35,
+ "F",
+ "LAWRENCEVILLE GA",
+ 1276,
+ 8918,
+ 681,
+ 8812
+ ],
+ [
+ 1343,
+ "ELIZABETH LEWIS",
+ 39,
+ "F",
+ "DACULA GA",
+ 1090,
+ 8922,
+ 682,
+ 8817
+ ],
+ [
+ 1344,
+ "LISA DOWNER",
+ 34,
+ "F",
+ "DALLAS GA",
+ 517,
+ 8924,
+ 682,
+ 8896
+ ],
+ [
+ 1345,
+ "RACHEL REED",
+ 34,
+ "F",
+ "LAWRENCEVILLE GA",
+ 1505,
+ 8924,
+ 682,
+ 8819
+ ],
+ [
+ 1346,
+ "JEFFREY FLEMING",
+ 46,
+ "M",
+ "HOSCHTON GA",
+ 608,
+ 8925,
+ 682,
+ 8842
+ ],
+ [
+ 1347,
+ "TUCKER FLEMING",
+ 17,
+ "M",
+ "HOSCHTON GA",
+ 610,
+ 8926,
+ 682,
+ 8843
+ ],
+ [
+ 1348,
+ "MELISSA WILSON",
+ 26,
+ "F",
+ "SMYRNA GA",
+ 1981,
+ 8927,
+ 682,
+ 8833
+ ],
+ [
+ 1349,
+ "JAMES GRAVES",
+ 40,
+ "M",
+ "ATLANTA GA",
+ 719,
+ 8928,
+ 682,
+ 8834
+ ],
+ [
+ 1350,
+ "STACEY GRAVES",
+ 37,
+ "F",
+ "ATLANTA GA",
+ 720,
+ 8929,
+ 682,
+ 8836
+ ],
+ [
+ 1351,
+ "JO ANN SHANLEY",
+ 51,
+ "F",
+ "DULUTH GA",
+ 1650,
+ 8929,
+ 682,
+ 8864
+ ],
+ [
+ 1352,
+ "ERIKA SHADOFF",
+ 40,
+ "F",
+ "SUWANEE GA",
+ 1647,
+ 8930,
+ 682,
+ 8830
+ ],
+ [
+ 1353,
+ "RORY GAGAN",
+ 30,
+ "F",
+ "ATLANTA GA",
+ 657,
+ 8933,
+ 682,
+ 8851
+ ],
+ [
+ 1354,
+ "MARIE ONEIL",
+ 28,
+ "F",
+ "ATLANTA GA",
+ 1369,
+ 8946,
+ 683,
+ 8898
+ ],
+ [
+ 1355,
+ "BARBARA BLAKE",
+ 48,
+ "F",
+ "ROSWELL GA",
+ 158,
+ 8947,
+ 683,
+ 8923
+ ],
+ [
+ 1356,
+ "LINDA GEBERT",
+ 51,
+ "F",
+ "DALLAS GA",
+ 682,
+ 8949,
+ 684,
+ 8910
+ ],
+ [
+ 1357,
+ "GARRON BOTHE",
+ 39,
+ "F",
+ "MABLETON GA",
+ 178,
+ 8963,
+ 685,
+ 8932
+ ],
+ [
+ 1358,
+ "JAMIE FISHER",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 603,
+ 8966,
+ 685,
+ 8889
+ ],
+ [
+ 1359,
+ "KATHERINE HOYLE",
+ 53,
+ "F",
+ "LAWNDALE NC",
+ 878,
+ 8967,
+ 685,
+ 8858
+ ],
+ [
+ 1360,
+ "COREEN DELAMATER",
+ 38,
+ "F",
+ "ATHENS GA",
+ 468,
+ 8971,
+ 685,
+ 8890
+ ],
+ [
+ 1361,
+ "FRANK FLYNN",
+ 74,
+ "M",
+ "ROSWELL GA",
+ 616,
+ 8979,
+ 686,
+ 8928
+ ],
+ [
+ 1362,
+ "BRAD WOLFF",
+ 50,
+ "M",
+ "ALPHARETTA GA",
+ 1996,
+ 8983,
+ 686,
+ 8892
+ ],
+ [
+ 1363,
+ "DANIELLE MACIK",
+ 38,
+ "F",
+ "ATLANTA GA",
+ 1144,
+ 8992,
+ 687,
+ 8893
+ ],
+ [
+ 1364,
+ "MARGARET HOPKINS",
+ 28,
+ "F",
+ "ATLANTA GA",
+ 861,
+ 8999,
+ 687,
+ 8957
+ ],
+ [
+ 1365,
+ "SONDI LOSAW",
+ 63,
+ "F",
+ "CANTON GA",
+ 1129,
+ 9004,
+ 688,
+ 8924
+ ],
+ [
+ 1366,
+ "CHRISTY EPSTEIN",
+ 37,
+ "F",
+ "ALPHARETTA GA",
+ 571,
+ 9005,
+ 688,
+ 8907
+ ],
+ [
+ 1367,
+ "MARGO GREGORY",
+ 45,
+ "F",
+ "KENNESAW GA",
+ 732,
+ 9015,
+ 689,
+ 8963
+ ],
+ [
+ 1368,
+ "MARIANN DEWITT",
+ 42,
+ "F",
+ "KENNESAW GA",
+ 485,
+ 9018,
+ 689,
+ 8942
+ ],
+ [
+ 1369,
+ "DEIRDRE WALSH",
+ 40,
+ "F",
+ "ROSWELL GA",
+ 1907,
+ 9021,
+ 689,
+ 8910
+ ],
+ [
+ 1370,
+ "LOLITA MANNIK",
+ 40,
+ "F",
+ "ROSWELL GA",
+ 1166,
+ 9021,
+ 689,
+ 8910
+ ],
+ [
+ 1371,
+ "ALISON GREY",
+ 40,
+ "F",
+ "DACULA GA",
+ 736,
+ 9029,
+ 690,
+ 8919
+ ],
+ [
+ 1372,
+ "BRIDGET GONGOL",
+ 26,
+ "F",
+ "EAST POINT GA",
+ 706,
+ 9031,
+ 690,
+ 8934
+ ],
+ [
+ 1373,
+ "JENNIFER LAZO",
+ 29,
+ "F",
+ "ATLANTA GA",
+ 1070,
+ 9034,
+ 690,
+ 8931
+ ],
+ [
+ 1374,
+ "TAMARA CALDWELL",
+ 45,
+ "F",
+ "MARIETTA GA",
+ 271,
+ 9035,
+ 690,
+ 8939
+ ],
+ [
+ 1375,
+ "MICHAEL GEREN",
+ 51,
+ "M",
+ "SUWANEE GA",
+ 688,
+ 9041,
+ 691,
+ 8963
+ ],
+ [
+ 1376,
+ "VIRGINIA JAMES",
+ 38,
+ "F",
+ "DACULA GA",
+ 917,
+ 9042,
+ 691,
+ 8932
+ ],
+ [
+ 1377,
+ "ADRIENNE MILLER",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 1272,
+ 9044,
+ 691,
+ 8963
+ ],
+ [
+ 1378,
+ "MARYBETH MONTINI",
+ 37,
+ "F",
+ "DACULA GA",
+ 1298,
+ 9045,
+ 691,
+ 8936
+ ],
+ [
+ 1379,
+ "SONJA MCLEOD",
+ 37,
+ "F",
+ "MCDONOUGH GA",
+ 1233,
+ 9060,
+ 692,
+ 9003
+ ],
+ [
+ 1380,
+ "JULIE MILLER",
+ 43,
+ "F",
+ "WOODSTOCK GA",
+ 1278,
+ 9060,
+ 692,
+ 8985
+ ],
+ [
+ 1381,
+ "RYAN REMILLARD",
+ 29,
+ "M",
+ "LAWRENCEVILLE GA",
+ 1511,
+ 9061,
+ 692,
+ 8962
+ ],
+ [
+ 1382,
+ "NICOLE MCCARTHY",
+ 32,
+ "F",
+ "BIRMINGHAM AL",
+ 1196,
+ 9075,
+ 693,
+ 8987
+ ],
+ [
+ 1383,
+ "AMY NUGENT",
+ 42,
+ "F",
+ "ALPHARETTA GA",
+ 1357,
+ 9076,
+ 693,
+ 9002
+ ],
+ [
+ 1384,
+ "SEBASTIAN LURIE",
+ 39,
+ "M",
+ "SAN FRANCISCO CA",
+ 1136,
+ 9087,
+ 694,
+ 9037
+ ],
+ [
+ 1385,
+ "SANDRA HANSEN",
+ 54,
+ "F",
+ "JONESBORO GA",
+ 779,
+ 9087,
+ 694,
+ 9000
+ ],
+ [
+ 1386,
+ "DREW DEMPSEY",
+ 33,
+ "M",
+ "ROME GA",
+ 478,
+ 9089,
+ 694,
+ 9020
+ ],
+ [
+ 1387,
+ "LORI FURR",
+ 47,
+ "F",
+ "DOUGLASVILLE GA",
+ 655,
+ 9099,
+ 695,
+ 9012
+ ],
+ [
+ 1388,
+ "AMY ANASTAS",
+ 27,
+ "F",
+ "FAYETTEVILLE GA",
+ 47,
+ 9100,
+ 695,
+ 9024
+ ],
+ [
+ 1389,
+ "ALLISON REPASS",
+ 16,
+ "F",
+ "LAWRENCEVILLE GA",
+ 1512,
+ 9107,
+ 696,
+ 9063
+ ],
+ [
+ 1390,
+ "JENNIFER WOHL",
+ 40,
+ "F",
+ "MARIETTA GA",
+ 1992,
+ 9113,
+ 696,
+ 9078
+ ],
+ [
+ 1391,
+ "LISA NADREAU",
+ 35,
+ "F",
+ "NEWNAN GA",
+ 1332,
+ 9114,
+ 696,
+ 9038
+ ],
+ [
+ 1392,
+ "CJ ALVERSON",
+ 44,
+ "M",
+ "CANTON GA",
+ 43,
+ 9120,
+ 697,
+ 9075
+ ],
+ [
+ 1393,
+ "MARY BLITZ",
+ 49,
+ "F",
+ "CLEARWATER FL",
+ 161,
+ 9136,
+ 698,
+ 9049
+ ],
+ [
+ 1394,
+ "LINDSAY WOODS",
+ 36,
+ "F",
+ "ATLANTA GA",
+ 2001,
+ 9156,
+ 699,
+ 9117
+ ],
+ [
+ 1395,
+ "CLIFF JORDAN",
+ 32,
+ "M",
+ "AUSTELL GA",
+ 962,
+ 9162,
+ 700,
+ 9117
+ ],
+ [
+ 1396,
+ "DANIEL NELSON",
+ 51,
+ "M",
+ "CARROLLTON GA",
+ 2142,
+ 9164,
+ 700,
+ 9142
+ ],
+ [
+ 1397,
+ "JAMES L. SORRELLS",
+ 69,
+ "M",
+ "CARROLLTON GA",
+ 1725,
+ 9165,
+ 700,
+ 9113
+ ],
+ [
+ 1398,
+ "ANGELA JOHNSON",
+ 43,
+ "F",
+ "ATHENS GA",
+ 937,
+ 9168,
+ 700,
+ 9043
+ ],
+ [
+ 1399,
+ "JOHN THOMAS",
+ 40,
+ "M",
+ "ACWORTH GA",
+ 1821,
+ 9179,
+ 701,
+ 9113
+ ],
+ [
+ 1400,
+ "SUZANNA MORRIS",
+ 50,
+ "F",
+ "MARIETTA GA",
+ 1317,
+ 9182,
+ 701,
+ 9038
+ ],
+ [
+ 1401,
+ "JENNIFER HEWGLEY",
+ 36,
+ "F",
+ "WOODSTOCK GA",
+ 840,
+ 9183,
+ 701,
+ 9151
+ ],
+ [
+ 1402,
+ "JAMIE HATCH",
+ 33,
+ "F",
+ "DORAVILLE GA",
+ 812,
+ 9183,
+ 701,
+ 9095
+ ],
+ [
+ 1403,
+ "SAM HARTIN",
+ 69,
+ "M",
+ "DUNWOODY GA",
+ 801,
+ 9202,
+ 703,
+ 9151
+ ],
+ [
+ 1404,
+ "RON ALTER",
+ 44,
+ "M",
+ "POWDER SPRINGS GA",
+ 40,
+ 9205,
+ 703,
+ 9122
+ ],
+ [
+ 1405,
+ "SHERON CURTIS",
+ 44,
+ "F",
+ "CONYERS GA",
+ 426,
+ 9208,
+ 703,
+ 9108
+ ],
+ [
+ 1406,
+ "JOE COLE",
+ 39,
+ "M",
+ "CUMMING GA",
+ 359,
+ 9219,
+ 704,
+ 9131
+ ],
+ [
+ 1407,
+ "RICHARD DAVIS",
+ 54,
+ "M",
+ "COCHRAN GA",
+ 454,
+ 9224,
+ 705,
+ 9207
+ ],
+ [
+ 1408,
+ "DAVID SLEPPY",
+ 54,
+ "M",
+ "ATLANTA GA",
+ 1696,
+ 9229,
+ 705,
+ 9084
+ ],
+ [
+ 1409,
+ "ARAS KANNU",
+ 40,
+ "M",
+ "CUMMING GA",
+ 966,
+ 9238,
+ 706,
+ 9155
+ ],
+ [
+ 1410,
+ "GAYE ORSINI",
+ 49,
+ "F",
+ "MARIETTA GA",
+ 1374,
+ 9241,
+ 706,
+ 9140
+ ],
+ [
+ 1411,
+ "MICHAEL ALBINGER",
+ 18,
+ "M",
+ "MARIETTA GA",
+ 23,
+ 9267,
+ 708,
+ 9221
+ ],
+ [
+ 1412,
+ "VALERIE FAMBROUGH",
+ 30,
+ "F",
+ "DAHLONEGA GA",
+ 588,
+ 9270,
+ 708,
+ 9157
+ ],
+ [
+ 1413,
+ "WENDY STULL",
+ 30,
+ "F",
+ "PUYALLUP WA",
+ 1775,
+ 9270,
+ 708,
+ 9157
+ ],
+ [
+ 1414,
+ "JOE MILLER",
+ 46,
+ "M",
+ "MARIETTA GA",
+ 1277,
+ 9271,
+ 708,
+ 9202
+ ],
+ [
+ 1415,
+ "RONALD HOLMES",
+ 29,
+ "M",
+ "ATLANTA GA",
+ 856,
+ 9272,
+ 708,
+ 9207
+ ],
+ [
+ 1416,
+ "MIKE KRESAK",
+ 42,
+ "M",
+ "MARIETTA GA",
+ 1027,
+ 9278,
+ 709,
+ 9182
+ ],
+ [
+ 1417,
+ "CANDICE POOR",
+ 39,
+ "F",
+ "MILTON GA",
+ 1456,
+ 9279,
+ 709,
+ 9172
+ ],
+ [
+ 1418,
+ "MICHAEL LYONS",
+ 32,
+ "M",
+ "ATLANTA GA",
+ 1141,
+ 9298,
+ 710,
+ 9229
+ ],
+ [
+ 1419,
+ "REBECCA HELLGETH",
+ 39,
+ "F",
+ "FAYETTEVILLE GA",
+ 826,
+ 9304,
+ 711,
+ 9227
+ ],
+ [
+ 1420,
+ "JESSICA MCCARTY",
+ 29,
+ "F",
+ "MARIETTA GA",
+ 1197,
+ 9306,
+ 711,
+ 9232
+ ],
+ [
+ 1421,
+ "LINDA PAUL",
+ 48,
+ "F",
+ "SNELLVILLE GA",
+ 1407,
+ 9314,
+ 711,
+ 9201
+ ],
+ [
+ 1422,
+ "EMILY PAUL",
+ 19,
+ "F",
+ "SNELLVILLE GA",
+ 1405,
+ 9314,
+ 711,
+ 9203
+ ],
+ [
+ 1423,
+ "CAROLINE KEATING",
+ 39,
+ "F",
+ "KENNESAW GA",
+ 975,
+ 9323,
+ 712,
+ 9218
+ ],
+ [
+ 1424,
+ "LINDSEY MCNEIL",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 1241,
+ 9326,
+ 712,
+ 9254
+ ],
+ [
+ 1425,
+ "ALANA STANTON",
+ 28,
+ "F",
+ "DACULA GA",
+ 1754,
+ 9329,
+ 713,
+ 9227
+ ],
+ [
+ 1426,
+ "JOE SCHUSTER",
+ 52,
+ "M",
+ "CUMMING GA",
+ 1619,
+ 9339,
+ 713,
+ 9278
+ ],
+ [
+ 1427,
+ "ROSS ALEXANDER",
+ 37,
+ "M",
+ "DAHLONEGA GA",
+ 30,
+ 9341,
+ 714,
+ 9274
+ ],
+ [
+ 1428,
+ "KERRY PLATT",
+ 54,
+ "F",
+ "MARIETTA GA",
+ 1445,
+ 9347,
+ 714,
+ 9261
+ ],
+ [
+ 1429,
+ "REBEKAH WALTERS",
+ 28,
+ "F",
+ "LAWRENCEVILLE GA",
+ 1911,
+ 9352,
+ 714,
+ 9262
+ ],
+ [
+ 1430,
+ "STEPHEN WALTERS",
+ 30,
+ "M",
+ "LAWRENCEVILLE GA",
+ 1914,
+ 9352,
+ 714,
+ 9262
+ ],
+ [
+ 1431,
+ "MICHAEL WILLIAMS",
+ 64,
+ "M",
+ "NEWNAN GA",
+ 1975,
+ 9356,
+ 715,
+ 9257
+ ],
+ [
+ 1432,
+ "CHELSEA CLINE",
+ 26,
+ "F",
+ "WINSTON GA",
+ 343,
+ 9364,
+ 715,
+ 9262
+ ],
+ [
+ 1433,
+ "GUS HUBER",
+ 38,
+ "M",
+ "CUMMING GA",
+ 879,
+ 9367,
+ 715,
+ 9258
+ ],
+ [
+ 1434,
+ "PAUL MACIK",
+ 50,
+ "M",
+ "ATLANTA GA",
+ 1145,
+ 9369,
+ 716,
+ 9270
+ ],
+ [
+ 1435,
+ "ERIN ANDERSON",
+ 32,
+ "F",
+ "DALLAS GA",
+ 48,
+ 9377,
+ 716,
+ 9288
+ ],
+ [
+ 1436,
+ "JEFFREY ANDERSON",
+ 32,
+ "M",
+ "DALLAS GA",
+ 50,
+ 9378,
+ 716,
+ 9288
+ ],
+ [
+ 1437,
+ "ERICA LEYDIC",
+ 39,
+ "F",
+ "ATLANTA GA",
+ 1096,
+ 9379,
+ 716,
+ 9281
+ ],
+ [
+ 1438,
+ "LESLIE BENNETT",
+ 51,
+ "F",
+ "JOHNS CREEK GA",
+ 143,
+ 9379,
+ 716,
+ 9303
+ ],
+ [
+ 1439,
+ "KRISTEN WARNER",
+ 40,
+ "F",
+ "WOODSTOCK GA",
+ 1922,
+ 9379,
+ 716,
+ 9305
+ ],
+ [
+ 1440,
+ "LISA CROSBY",
+ 49,
+ "F",
+ "SUWANEE GA",
+ 411,
+ 9381,
+ 717,
+ 9284
+ ],
+ [
+ 1441,
+ "GLORIA CARTER",
+ 53,
+ "F",
+ "MARIETTA GA",
+ 288,
+ 9387,
+ 717,
+ 9286
+ ],
+ [
+ 1442,
+ "CELESTE BASFORD",
+ 33,
+ "F",
+ "MABLETON GA",
+ 118,
+ 9388,
+ 717,
+ 9288
+ ],
+ [
+ 1443,
+ "STEPHANIE OLIN",
+ 36,
+ "F",
+ "MARIETTA GA",
+ 1366,
+ 9406,
+ 718,
+ 9347
+ ],
+ [
+ 1444,
+ "ANGELA VAUGHN",
+ 33,
+ "F",
+ "ATLANTA GA",
+ 1886,
+ 9411,
+ 719,
+ 9320
+ ],
+ [
+ 1445,
+ "LARRY CAMPBELL",
+ 39,
+ "M",
+ "SOCIAL CIRCLE GA",
+ 276,
+ 9419,
+ 719,
+ 9325
+ ],
+ [
+ 1446,
+ "DANA BARTON",
+ 47,
+ "F",
+ "FOREST PARK GA",
+ 115,
+ 9421,
+ 720,
+ 9336
+ ],
+ [
+ 1447,
+ "ALAN EARLS",
+ 52,
+ "M",
+ "HAMPTON GA",
+ 542,
+ 9422,
+ 720,
+ 9336
+ ],
+ [
+ 1448,
+ "JENNIFER MCDONALD",
+ 34,
+ "F",
+ "BREMEN GA",
+ 1208,
+ 9430,
+ 720,
+ 9326
+ ],
+ [
+ 1449,
+ "KARI WARD",
+ 25,
+ "F",
+ "DOUGLASVILLE GA",
+ 1920,
+ 9431,
+ 720,
+ 9328
+ ],
+ [
+ 1450,
+ "MICHELLE FINCH",
+ 41,
+ "F",
+ "LEXINGTON GA",
+ 600,
+ 9432,
+ 720,
+ 9343
+ ],
+ [
+ 1451,
+ "LORI FLEMING",
+ 46,
+ "F",
+ "HOSCHTON GA",
+ 609,
+ 9450,
+ 722,
+ 9366
+ ],
+ [
+ 1452,
+ "MARIA ALBO CARABELLI",
+ 31,
+ "F",
+ "CUMMING GA",
+ 25,
+ 9461,
+ 723,
+ 9348
+ ],
+ [
+ 1453,
+ "BRIGITTE LANDRUM",
+ 43,
+ "F",
+ "ACWORTH GA",
+ 1053,
+ 9462,
+ 723,
+ 9351
+ ],
+ [
+ 1454,
+ "KEVIN SULLIVAN",
+ 30,
+ "M",
+ "WOODSTOCK GA",
+ 1781,
+ 9463,
+ 723,
+ 9409
+ ],
+ [
+ 1455,
+ "HILARIE WALLER",
+ 38,
+ "F",
+ "DULUTH GA",
+ 1904,
+ 9469,
+ 723,
+ 9387
+ ],
+ [
+ 1456,
+ "MARITZA ROSE",
+ 56,
+ "F",
+ "SMYRNA GA",
+ 1560,
+ 9489,
+ 725,
+ 9470
+ ],
+ [
+ 1457,
+ "JULIE HENLY",
+ 49,
+ "F",
+ "CUMMING GA",
+ 831,
+ 9500,
+ 726,
+ 9383
+ ],
+ [
+ 1458,
+ "RACHEL PARISAY",
+ 23,
+ "F",
+ "ATLANTA GA",
+ 1392,
+ 9506,
+ 726,
+ 9408
+ ],
+ [
+ 1459,
+ "JASON LOGAN",
+ 38,
+ "M",
+ "WOODSTOCK GA",
+ 1116,
+ 9508,
+ 726,
+ -1
+ ],
+ [
+ 1460,
+ "JENNIFER PATTERSON",
+ 42,
+ "F",
+ "CANTON GA",
+ 1404,
+ 9517,
+ 727,
+ 9439
+ ],
+ [
+ 1461,
+ "COLLEEN WRAY WRAY",
+ 45,
+ "F",
+ "MANHATTAN IL",
+ 2004,
+ 9517,
+ 727,
+ 9427
+ ],
+ [
+ 1462,
+ "HEATHER FURLONG",
+ 29,
+ "F",
+ "AUSTELL GA",
+ 654,
+ 9525,
+ 728,
+ 9442
+ ],
+ [
+ 1463,
+ "DANIELLE WEBER",
+ 26,
+ "F",
+ "ATLANTA GA",
+ 1938,
+ 9527,
+ 728,
+ 9427
+ ],
+ [
+ 1464,
+ "KATHARINE SIGLER",
+ 28,
+ "F",
+ "KENNESAW GA",
+ 1679,
+ 9528,
+ 728,
+ 9444
+ ],
+ [
+ 1465,
+ "SONIA LEE",
+ 38,
+ "F",
+ "NORCROSS GA",
+ 1080,
+ 9531,
+ 728,
+ 9432
+ ],
+ [
+ 1466,
+ "KENDRA WRIGHT",
+ 37,
+ "F",
+ "AUSTELL GA",
+ 2008,
+ 9547,
+ 729,
+ 9503
+ ],
+ [
+ 1467,
+ "ALISHA JORDAN",
+ 34,
+ "F",
+ "AUSTELL GA",
+ 961,
+ 9547,
+ 729,
+ 9503
+ ],
+ [
+ 1468,
+ "ELLEN SMITH",
+ 63,
+ "F",
+ "LITHIA SPRINGS GA",
+ 1706,
+ 9557,
+ 730,
+ 9450
+ ],
+ [
+ 1469,
+ "ANDREA BAPST",
+ 43,
+ "F",
+ "MABLETON GA",
+ 96,
+ 9566,
+ 731,
+ 9480
+ ],
+ [
+ 1470,
+ "SANDRA STEWART KRUGER",
+ 47,
+ "F",
+ "ATLANTA GA",
+ 1766,
+ 9578,
+ 732,
+ 9469
+ ],
+ [
+ 1471,
+ "NIKI MCCUTCHEN",
+ 40,
+ "F",
+ "POWDER SPRINGS GA",
+ 1207,
+ 9590,
+ 732,
+ 9541
+ ],
+ [
+ 1472,
+ "LAURA CORN",
+ 36,
+ "F",
+ "MARIETTA GA",
+ 386,
+ 9602,
+ 733,
+ 9497
+ ],
+ [
+ 1473,
+ "JEFFREY PAUL",
+ 48,
+ "M",
+ "SNELLVILLE GA",
+ 1406,
+ 9626,
+ 735,
+ 9515
+ ],
+ [
+ 1474,
+ "KATHY PARKER",
+ 43,
+ "F",
+ "LILBURN GA",
+ 1394,
+ 9627,
+ 735,
+ 9515
+ ],
+ [
+ 1475,
+ "GAIL BANG",
+ 51,
+ "F",
+ "DECATUR GA",
+ 92,
+ 9633,
+ 736,
+ 9533
+ ],
+ [
+ 1476,
+ "AMANDA FISHER",
+ 28,
+ "F",
+ "ACWORTH GA",
+ 602,
+ 9637,
+ 736,
+ 9604
+ ],
+ [
+ 1477,
+ "PATTY MCGILL",
+ 53,
+ "F",
+ "ATLANTA GA",
+ 1219,
+ 9644,
+ 737,
+ 9498
+ ],
+ [
+ 1478,
+ "DAVE INFANTE",
+ 41,
+ "M",
+ "WOODSTOCK GA",
+ 904,
+ 9649,
+ 737,
+ 9553
+ ],
+ [
+ 1479,
+ "TRACY COOPER",
+ 31,
+ "F",
+ "ATLANTA GA",
+ 383,
+ 9657,
+ 738,
+ 9567
+ ],
+ [
+ 1480,
+ "DAVID GAVIN",
+ 39,
+ "M",
+ "KENNESAW GA",
+ 678,
+ 9657,
+ 738,
+ 9573
+ ],
+ [
+ 1481,
+ "ALYSSA PARSONS",
+ 28,
+ "F",
+ "DECATUR GA",
+ 1399,
+ 9667,
+ 738,
+ 9587
+ ],
+ [
+ 1482,
+ "PRESTON CLOVER",
+ 25,
+ "M",
+ "MOUNTAIN VIEW CA",
+ 344,
+ 9668,
+ 738,
+ 9588
+ ],
+ [
+ 1483,
+ "BECKY MALCOM",
+ 37,
+ "F",
+ "MARIETTA GA",
+ 1159,
+ 9668,
+ 738,
+ 9563
+ ],
+ [
+ 1484,
+ "DONNA MILLER",
+ 49,
+ "F",
+ "LOGUST GROVE GA",
+ 1274,
+ 9668,
+ 738,
+ 9603
+ ],
+ [
+ 1485,
+ "KIM BRADLEY",
+ 53,
+ "F",
+ "ATHENS GA",
+ 194,
+ 9670,
+ 739,
+ 9546
+ ],
+ [
+ 1486,
+ "SHANNON CASAJUANA",
+ 35,
+ "F",
+ "DALLAS GA",
+ 294,
+ 9671,
+ 739,
+ 9564
+ ],
+ [
+ 1487,
+ "MARY JANE BATES",
+ 43,
+ "F",
+ "FAYETTEVILLE GA",
+ 123,
+ 9671,
+ 739,
+ 9606
+ ],
+ [
+ 1488,
+ "ERIN SHOEMAKER",
+ 34,
+ "F",
+ "ALPHARETTA GA",
+ 1672,
+ 9695,
+ 741,
+ 9660
+ ],
+ [
+ 1489,
+ "PAULA MACKAY",
+ 34,
+ "F",
+ "CUMMING GA",
+ 1146,
+ 9700,
+ 741,
+ 9599
+ ],
+ [
+ 1490,
+ "ANTHONY FOURNIER",
+ 21,
+ "M",
+ "POWDER SPRINGS GA",
+ 627,
+ 9705,
+ 741,
+ 9651
+ ],
+ [
+ 1491,
+ "ALYS PLEDGER",
+ 19,
+ "F",
+ "SMYRNA GA",
+ 1447,
+ 9705,
+ 741,
+ 9651
+ ],
+ [
+ 1492,
+ "JASON HARMON",
+ 39,
+ "M",
+ "POWDER SPRINGS GA",
+ 787,
+ 9706,
+ 741,
+ 9608
+ ],
+ [
+ 1493,
+ "DANIELLE HARMON",
+ 43,
+ "F",
+ "POWDER SPRINGS GA",
+ 786,
+ 9706,
+ 741,
+ 9608
+ ],
+ [
+ 1494,
+ "KENNETH KEATING",
+ 39,
+ "M",
+ "KENNESAW GA",
+ 976,
+ 9709,
+ 742,
+ 9604
+ ],
+ [
+ 1495,
+ "TOM GOODWIN",
+ 45,
+ "M",
+ "ROSWELL GA",
+ 709,
+ 9711,
+ 742,
+ 9610
+ ],
+ [
+ 1496,
+ "STACEY CHAMBLISS",
+ 36,
+ "F",
+ "ROSWELL GA",
+ 314,
+ 9713,
+ 742,
+ 9620
+ ],
+ [
+ 1497,
+ "BECKY JOHNSON",
+ 29,
+ "F",
+ "ALPHARETTA GA",
+ 940,
+ 9713,
+ 742,
+ 9620
+ ],
+ [
+ 1498,
+ "RACHAEL BURNS",
+ 28,
+ "F",
+ "MABLETON GA",
+ 251,
+ 9717,
+ 742,
+ 9684
+ ],
+ [
+ 1499,
+ "BAILEY KNIGHT",
+ 21,
+ "F",
+ "MILLEDGEVILLE GA",
+ 1015,
+ 9731,
+ 743,
+ 9665
+ ],
+ [
+ 1500,
+ "JARED SMITH",
+ 24,
+ "M",
+ "MILLEDGEVILLE GA",
+ 1709,
+ 9731,
+ 743,
+ 9666
+ ],
+ [
+ 1501,
+ "JENNY THOMPSON",
+ 39,
+ "F",
+ "ATLANTA GA",
+ 1828,
+ 9750,
+ 745,
+ 9648
+ ],
+ [
+ 1502,
+ "BONNIE SEABROOKE",
+ 41,
+ "F",
+ "ATLANTA GA",
+ 1630,
+ 9750,
+ 745,
+ 9648
+ ],
+ [
+ 1503,
+ "THOMAS CHERNETSKY",
+ 42,
+ "M",
+ "SUWANEE GA",
+ 324,
+ 9775,
+ 747,
+ 9733
+ ],
+ [
+ 1504,
+ "TOM CHERNETSKY",
+ 72,
+ "M",
+ "ROSWELL GA",
+ 325,
+ 9775,
+ 747,
+ 9733
+ ],
+ [
+ 1505,
+ "LISA ROSS-FAUST",
+ 48,
+ "F",
+ "SMYRNA GA",
+ 1565,
+ 9778,
+ 747,
+ 9680
+ ],
+ [
+ 1506,
+ "DARLENE COWAN",
+ 56,
+ "F",
+ "DALLAS GA",
+ 394,
+ 9781,
+ 747,
+ 9674
+ ],
+ [
+ 1507,
+ "KEVIN BARGER",
+ 56,
+ "M",
+ "WOODSTOCK GA",
+ 99,
+ 9783,
+ 747,
+ 9699
+ ],
+ [
+ 1508,
+ "RANDY REAGAN",
+ 32,
+ "M",
+ "DAWSONVILLE GA",
+ 1496,
+ 9783,
+ 747,
+ 9698
+ ],
+ [
+ 1509,
+ "CINDY MILLER",
+ 48,
+ "F",
+ "WOODSTOCK GA",
+ 1273,
+ 9793,
+ 748,
+ 9695
+ ],
+ [
+ 1510,
+ "JAMIE LONG",
+ 39,
+ "M",
+ "JACKSON GA",
+ 1121,
+ 9801,
+ 749,
+ 9721
+ ],
+ [
+ 1511,
+ "FAYE DIMASSIMO",
+ 50,
+ "F",
+ "POWDER SPRINGS GA",
+ 493,
+ 9818,
+ 750,
+ 9708
+ ],
+ [
+ 1512,
+ "SARAH DURLING",
+ 28,
+ "F",
+ "ATLANTA GA",
+ 537,
+ 9850,
+ 752,
+ 9695
+ ],
+ [
+ 1513,
+ "AMMONS BENFORD",
+ 42,
+ "M",
+ "ATLANTA GA",
+ 2141,
+ 9852,
+ 753,
+ 9794
+ ],
+ [
+ 1514,
+ "LAUREN ROTCHFORD",
+ 34,
+ "F",
+ "ATLANTA GA",
+ 1566,
+ 9854,
+ 753,
+ 9828
+ ],
+ [
+ 1515,
+ "ALISON GREEN",
+ 40,
+ "F",
+ "ATLANTA GA",
+ 728,
+ 9860,
+ 753,
+ 9749
+ ],
+ [
+ 1516,
+ "KIRSTEN JONES",
+ 42,
+ "F",
+ "DOUGLASVILLE GA",
+ 959,
+ 9861,
+ 753,
+ 9754
+ ],
+ [
+ 1517,
+ "JEAN MENSE",
+ 51,
+ "F",
+ "ROSWELL GA",
+ 1254,
+ 9862,
+ 753,
+ 9765
+ ],
+ [
+ 1518,
+ "NEIL MCCARTHY",
+ 71,
+ "M",
+ "ROSWELL GA",
+ 1195,
+ 9870,
+ 754,
+ -1
+ ],
+ [
+ 1519,
+ "MICHELLE DAVIS",
+ 36,
+ "F",
+ "ACWORTH GA",
+ 451,
+ 9875,
+ 754,
+ 9762
+ ],
+ [
+ 1520,
+ "KIM SKIBER",
+ 39,
+ "F",
+ "ROSWELL GA",
+ 1693,
+ 9886,
+ 755,
+ 9797
+ ],
+ [
+ 1521,
+ "LIA KAPLAN",
+ 38,
+ "F",
+ "TUCKER GA",
+ 969,
+ 9891,
+ 755,
+ 9803
+ ],
+ [
+ 1522,
+ "DANA BAHLINGER",
+ 40,
+ "F",
+ "LAWRENCEVILLE GA",
+ 79,
+ 9894,
+ 756,
+ 9775
+ ],
+ [
+ 1523,
+ "EDWARD BOYD",
+ 34,
+ "M",
+ "DAHLONEGA GA",
+ 185,
+ 9895,
+ 756,
+ 9827
+ ],
+ [
+ 1524,
+ "REBECCA GRAY",
+ 22,
+ "F",
+ "ATLANTA GA",
+ 724,
+ 9899,
+ 756,
+ 9831
+ ],
+ [
+ 1525,
+ "IRENE SMITH",
+ 41,
+ "F",
+ "WHITE GA",
+ 1708,
+ 9899,
+ 756,
+ 9837
+ ],
+ [
+ 1526,
+ "KEVIN KELLY",
+ 50,
+ "M",
+ "KENNESAW GA",
+ 983,
+ 9927,
+ 758,
+ 9863
+ ],
+ [
+ 1527,
+ "HEATHER KELLY",
+ 26,
+ "F",
+ "MARIETTA GA",
+ 982,
+ 9928,
+ 758,
+ 9863
+ ],
+ [
+ 1528,
+ "KAREN PICKENS",
+ 50,
+ "F",
+ "POWDER SPRINGS GA",
+ 1441,
+ 9931,
+ 759,
+ 9840
+ ],
+ [
+ 1529,
+ "NATALIE DAWKINS",
+ 48,
+ "F",
+ "POWDER SPRINGS GA",
+ 457,
+ 9932,
+ 759,
+ 9840
+ ],
+ [
+ 1530,
+ "MEGEN MACOMBER",
+ 36,
+ "F",
+ "CANTON GA",
+ 1150,
+ 9942,
+ 759,
+ 9839
+ ],
+ [
+ 1531,
+ "MICHELLE ANSLEY",
+ 43,
+ "F",
+ "MARIETTA GA",
+ 58,
+ 9953,
+ 760,
+ 9838
+ ],
+ [
+ 1532,
+ "DANIEL BUCHANAN",
+ 30,
+ "M",
+ "ALPHARETTA GA",
+ 233,
+ 9961,
+ 761,
+ 9884
+ ],
+ [
+ 1533,
+ "AMANDA DEES",
+ 32,
+ "F",
+ "MONROE NC",
+ 466,
+ 9968,
+ 761,
+ 9891
+ ],
+ [
+ 1534,
+ "JOAN LAKE",
+ 42,
+ "F",
+ "ACWORTH GA",
+ 1048,
+ 9969,
+ 761,
+ 9857
+ ],
+ [
+ 1535,
+ "KELLY LUCKETT",
+ 43,
+ "F",
+ "ATLANTA GA",
+ 1131,
+ 9981,
+ 762,
+ 9954
+ ],
+ [
+ 1536,
+ "MATTHEW GRUND",
+ 33,
+ "M",
+ "MARIETTA GA",
+ 746,
+ 9989,
+ 763,
+ 9881
+ ],
+ [
+ 1537,
+ "EMILY GRUND",
+ 33,
+ "F",
+ "MARIETTA GA",
+ 745,
+ 9989,
+ 763,
+ 9880
+ ],
+ [
+ 1538,
+ "VALORIE KETCHUM",
+ 47,
+ "F",
+ "PINEHURST NC",
+ 992,
+ 9992,
+ 763,
+ 9905
+ ],
+ [
+ 1539,
+ "KAREN POWELL",
+ 41,
+ "F",
+ "MABLETON GA",
+ 1461,
+ 10008,
+ 764,
+ 9906
+ ],
+ [
+ 1540,
+ "SHANNON BRYAN",
+ 35,
+ "F",
+ "KANNAPOLIS NC",
+ 227,
+ 10017,
+ 765,
+ 9909
+ ],
+ [
+ 1541,
+ "MEL DODD",
+ 58,
+ "M",
+ "JOHNS CREEK GA",
+ 500,
+ 10022,
+ 766,
+ 9941
+ ],
+ [
+ 1542,
+ "LAURA DODD",
+ 53,
+ "M",
+ "JOHNS CREEK GA",
+ 499,
+ 10023,
+ 766,
+ 9941
+ ],
+ [
+ 1543,
+ "ELLEN JANNETTA",
+ 42,
+ "F",
+ "ATLANTA GA",
+ 921,
+ 10032,
+ 766,
+ 9918
+ ],
+ [
+ 1544,
+ "SHELLY PETERS",
+ 43,
+ "F",
+ "MARIETTA GA",
+ 2030,
+ 10041,
+ 767,
+ 10004
+ ],
+ [
+ 1545,
+ "LISA SANDERS",
+ 30,
+ "F",
+ "HOLLY SPRINGS GA",
+ 1589,
+ 10070,
+ 769,
+ 10024
+ ],
+ [
+ 1546,
+ "MARY CHAMLEE",
+ 40,
+ "F",
+ "ROSWELL GA",
+ 315,
+ 10073,
+ 769,
+ 9953
+ ],
+ [
+ 1547,
+ "KIMBERLY WALDROP",
+ 39,
+ "F",
+ "PEACHTREE CITY GA",
+ 1900,
+ 10074,
+ 769,
+ 10025
+ ],
+ [
+ 1548,
+ "STACEY CHAPMAN",
+ 39,
+ "F",
+ "MABLETON GA",
+ 319,
+ 10075,
+ 770,
+ 10027
+ ],
+ [
+ 1549,
+ "MARIA HANDWORK",
+ 46,
+ "F",
+ "MARIETTA GA",
+ 774,
+ 10079,
+ 770,
+ 10001
+ ],
+ [
+ 1550,
+ "STACY GAVIN",
+ 35,
+ "F",
+ "WOODSTOCK GA",
+ 680,
+ 10083,
+ 770,
+ 9989
+ ],
+ [
+ 1551,
+ "SARAH MULLINS",
+ 30,
+ "F",
+ "WOODSTOCK GA",
+ 1323,
+ 10083,
+ 770,
+ 9989
+ ],
+ [
+ 1552,
+ "KIM SPERLING",
+ 38,
+ "F",
+ "ROSWELL GA",
+ 1738,
+ 10086,
+ 770,
+ 9981
+ ],
+ [
+ 1553,
+ "MICHELLE DIXON",
+ 28,
+ "F",
+ "SNELLVILLE GA",
+ 495,
+ 10097,
+ 771,
+ 9991
+ ],
+ [
+ 1554,
+ "THEJA WICKERSHAM",
+ 32,
+ "F",
+ "CUMMING GA",
+ 1965,
+ 10144,
+ 775,
+ 10051
+ ],
+ [
+ 1555,
+ "ASHLEY ROCQUE",
+ 28,
+ "F",
+ "KENNESAW GA",
+ 1549,
+ 10146,
+ 775,
+ 10071
+ ],
+ [
+ 1556,
+ "TINA BUTTERFIELD",
+ 31,
+ "F",
+ "COLUMBIA SC",
+ 258,
+ 10146,
+ 775,
+ 10071
+ ],
+ [
+ 1557,
+ "TERI DOEPKE",
+ 36,
+ "F",
+ "OXFORD GA",
+ 501,
+ 10152,
+ 775,
+ 10032
+ ],
+ [
+ 1558,
+ "ROBERT JACKSON",
+ 48,
+ "M",
+ "ATLANTA GA",
+ 912,
+ 10173,
+ 777,
+ 10071
+ ],
+ [
+ 1559,
+ "JASON GALLMAN",
+ 39,
+ "M",
+ "WINDER GA",
+ 663,
+ 10177,
+ 777,
+ 9980
+ ],
+ [
+ 1560,
+ "CANDACE BROWN",
+ 44,
+ "F",
+ "JOHNS CREEK GA",
+ 213,
+ 10190,
+ 778,
+ 10074
+ ],
+ [
+ 1561,
+ "TONYA LETT",
+ 41,
+ "F",
+ "DULUTH GA",
+ 1087,
+ 10191,
+ 778,
+ 10075
+ ],
+ [
+ 1562,
+ "ERIKA MILLER",
+ 41,
+ "F",
+ "ATLANTA GA",
+ 1275,
+ 10234,
+ 782,
+ -1
+ ],
+ [
+ 1563,
+ "STACIE HUSACK",
+ 31,
+ "F",
+ "FAYETTEVILLE GA",
+ 895,
+ 10243,
+ 782,
+ 10146
+ ],
+ [
+ 1564,
+ "JODI DOBY",
+ 41,
+ "F",
+ "DOUGLASVILLE GA",
+ 496,
+ 10249,
+ 783,
+ 10191
+ ],
+ [
+ 1565,
+ "LISA LEGATE",
+ 45,
+ "F",
+ "MARIETTA GA",
+ 1083,
+ 10264,
+ 784,
+ 10226
+ ],
+ [
+ 1566,
+ "JOSEPH ERNEST",
+ 65,
+ "M",
+ "NORCROSS GA",
+ 572,
+ 10314,
+ 788,
+ 10231
+ ],
+ [
+ 1567,
+ "GWEN COTTRELL",
+ 41,
+ "F",
+ "ACWORTH GA",
+ 391,
+ 10379,
+ 793,
+ 10261
+ ],
+ [
+ 1568,
+ "KEVIN TIERNEY",
+ 33,
+ "M",
+ "CUMMING GA",
+ 1837,
+ 10385,
+ 793,
+ 10337
+ ],
+ [
+ 1569,
+ "DEENNA DURHAM",
+ 40,
+ "F",
+ "POWDER SPRINGS GA",
+ 536,
+ 10386,
+ 793,
+ 10271
+ ],
+ [
+ 1570,
+ "JAMIE ANDREWS",
+ 37,
+ "F",
+ "WOODSTOCK GA",
+ 56,
+ 10387,
+ 793,
+ 10279
+ ],
+ [
+ 1571,
+ "HEIDI SHOOK",
+ 39,
+ "F",
+ "ALPHARETTA GA",
+ 1674,
+ 10420,
+ 796,
+ 10308
+ ],
+ [
+ 1572,
+ "ASHLEY GELLIS",
+ 41,
+ "F",
+ "MARIETTA GA",
+ 684,
+ 10430,
+ 797,
+ 10319
+ ],
+ [
+ 1573,
+ "TERRY MILLER",
+ 51,
+ "M",
+ "ATLANTA GA",
+ 1284,
+ 10439,
+ 797,
+ 10413
+ ],
+ [
+ 1574,
+ "MARILEE DORSEY",
+ 53,
+ "F",
+ "DULUTH GA",
+ 508,
+ 10448,
+ 798,
+ 10342
+ ],
+ [
+ 1575,
+ "WYLENE EASON",
+ 69,
+ "F",
+ "MCDONOUGH GA",
+ 543,
+ 10451,
+ 798,
+ 10345
+ ],
+ [
+ 1576,
+ "NATE DEAN",
+ 30,
+ "M",
+ "WOODSTOCK GA",
+ 460,
+ 10452,
+ 798,
+ 10349
+ ],
+ [
+ 1577,
+ "DORI JO LAWRANCE",
+ 40,
+ "F",
+ "CHATTANOOGA TN",
+ 1064,
+ 10466,
+ 799,
+ 10358
+ ],
+ [
+ 1578,
+ "SABRINA MAGEE",
+ 48,
+ "F",
+ "CARROLLTON GA",
+ 1151,
+ 10477,
+ 800,
+ 10365
+ ],
+ [
+ 1579,
+ "LEIGH REED",
+ 44,
+ "F",
+ "ATLANTA GA",
+ 1504,
+ 10477,
+ 800,
+ 10361
+ ],
+ [
+ 1580,
+ "JANET ANDERSON",
+ 54,
+ "F",
+ "ATLANTA GA",
+ 49,
+ 10486,
+ 801,
+ 10423
+ ],
+ [
+ 1581,
+ "DAVID GRIFFIN",
+ 52,
+ "M",
+ "MARIETTA GA",
+ 739,
+ 10512,
+ 803,
+ 10484
+ ],
+ [
+ 1582,
+ "BRANDY AIRALL",
+ 33,
+ "F",
+ "ATLANTA GA",
+ 20,
+ 10530,
+ 804,
+ 10414
+ ],
+ [
+ 1583,
+ "PAUL GRICE",
+ 61,
+ "M",
+ "ATLANTA GA",
+ 737,
+ 10533,
+ 805,
+ 10432
+ ],
+ [
+ 1584,
+ "ANGELA EDGAR",
+ 55,
+ "F",
+ "MCDONOUGH GA",
+ 546,
+ 10534,
+ 805,
+ 10430
+ ],
+ [
+ 1585,
+ "CLARISSA ELS",
+ 22,
+ "F",
+ "SUWANEE GA",
+ 569,
+ 10536,
+ 805,
+ 10330
+ ],
+ [
+ 1586,
+ "KITTI MURRAY",
+ 53,
+ "F",
+ "ATLANTA GA",
+ 1326,
+ 10541,
+ 805,
+ 10334
+ ],
+ [
+ 1587,
+ "KIM FRANKLIN",
+ 29,
+ "F",
+ "MARIETTA GA",
+ 632,
+ 10566,
+ 807,
+ 10476
+ ],
+ [
+ 1588,
+ "SARAH GILBERT",
+ 25,
+ "F",
+ "DOUGLASVILLE GA",
+ 694,
+ 10607,
+ 810,
+ -1
+ ],
+ [
+ 1589,
+ "ALLISON PERRY",
+ 27,
+ "F",
+ "WOODSTOCK GA",
+ 1419,
+ 10607,
+ 810,
+ 10502
+ ],
+ [
+ 1590,
+ "JULIE LUGAR",
+ 48,
+ "F",
+ "POWDER SPRINGS GA",
+ 1133,
+ 10628,
+ 812,
+ 10537
+ ],
+ [
+ 1591,
+ "LUCIANA TUCCI",
+ 32,
+ "F",
+ "ATLANTA GA",
+ 1858,
+ 10656,
+ 814,
+ 10566
+ ],
+ [
+ 1592,
+ "ROBERT PEARSON",
+ 41,
+ "M",
+ "TALLAHASSEE FL",
+ 1410,
+ 10657,
+ 814,
+ 10596
+ ],
+ [
+ 1593,
+ "AMBER PEARSON",
+ 31,
+ "F",
+ "TALLAHASSEE FL",
+ 1409,
+ 10658,
+ 814,
+ 10596
+ ],
+ [
+ 1594,
+ "BECKY COLDWELL",
+ 53,
+ "F",
+ "CARROLLTON GA",
+ 357,
+ 10659,
+ 814,
+ 10566
+ ],
+ [
+ 1595,
+ "ETHEL LILLO",
+ 54,
+ "F",
+ "LAWRENCEVILLE GA",
+ 1100,
+ 10665,
+ 815,
+ 10569
+ ],
+ [
+ 1596,
+ "LORA BOCK",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 165,
+ 10668,
+ 815,
+ 10554
+ ],
+ [
+ 1597,
+ "YVELISE HODO-LOPEZ",
+ 38,
+ "F",
+ "ATLANTA GA",
+ 848,
+ 10669,
+ 815,
+ 10554
+ ],
+ [
+ 1598,
+ "VIC MILLER",
+ 40,
+ "M",
+ "SMYRNA GA",
+ 1285,
+ 10680,
+ 816,
+ 10576
+ ],
+ [
+ 1599,
+ "MATT SHADE",
+ 69,
+ "M",
+ "MARIETTA GA",
+ 1646,
+ 10689,
+ 816,
+ 10586
+ ],
+ [
+ 1600,
+ "LAUREN SAUNDERS",
+ 27,
+ "F",
+ "MARIETTA GA",
+ 1597,
+ 10718,
+ 819,
+ 10652
+ ],
+ [
+ 1601,
+ "AMY MALCOM",
+ 44,
+ "F",
+ "ALPHARETTA GA",
+ 1158,
+ 10730,
+ 820,
+ 10692
+ ],
+ [
+ 1602,
+ "ANDY SHEPPARD",
+ 38,
+ "M",
+ "HOSCHTON GA",
+ 1666,
+ 10733,
+ 820,
+ 10674
+ ],
+ [
+ 1603,
+ "REBECCA GALLMAN",
+ 33,
+ "F",
+ "WINDER GA",
+ 664,
+ 10751,
+ 821,
+ 10553
+ ],
+ [
+ 1604,
+ "SAMANTHA STEPHENS",
+ 38,
+ "F",
+ "MARIETTA GA",
+ 1764,
+ 10754,
+ 821,
+ 10643
+ ],
+ [
+ 1605,
+ "WILLIAM BROCK",
+ 38,
+ "M",
+ "KENNESAW GA",
+ 207,
+ 10765,
+ 822,
+ 10676
+ ],
+ [
+ 1606,
+ "ADAM TOENES",
+ 29,
+ "M",
+ "DACULA GA",
+ 1843,
+ 10765,
+ 822,
+ 10660
+ ],
+ [
+ 1607,
+ "AMANDA REMILLARD",
+ 25,
+ "F",
+ "LAWRENCEVILLE GA",
+ 1510,
+ 10773,
+ 823,
+ 10674
+ ],
+ [
+ 1608,
+ "AUDREA REASE",
+ 37,
+ "F",
+ "DECATUR GA",
+ 1497,
+ 10781,
+ 823,
+ 10740
+ ],
+ [
+ 1609,
+ "RHEA ASHCRAFT",
+ 45,
+ "F",
+ "SAN DIEGO CA",
+ 67,
+ 10801,
+ 825,
+ 10696
+ ],
+ [
+ 1610,
+ "SANDRA HORAN",
+ 67,
+ "F",
+ "SUWANEE GA",
+ 863,
+ 10803,
+ 825,
+ 10687
+ ],
+ [
+ 1611,
+ "KASHI SEHGAL",
+ 30,
+ "F",
+ "ATLANTA GA",
+ 1634,
+ 10820,
+ 826,
+ 10727
+ ],
+ [
+ 1612,
+ "MELISSA KOVACH",
+ 30,
+ "F",
+ "LAWRENCEVILLE GA",
+ 1022,
+ 10824,
+ 827,
+ 10716
+ ],
+ [
+ 1613,
+ "KISHA DONAHUE",
+ 35,
+ "F",
+ "KENNESAW GA",
+ 504,
+ 10840,
+ 828,
+ 10751
+ ],
+ [
+ 1614,
+ "LINDA JACKSON",
+ 55,
+ "F",
+ "CUMMING GA",
+ 911,
+ 10856,
+ 829,
+ 10747
+ ],
+ [
+ 1615,
+ "CHRISTOPHER PETERSON",
+ 38,
+ "M",
+ "MARIETTA GA",
+ 1421,
+ 10894,
+ 832,
+ 10778
+ ],
+ [
+ 1616,
+ "JEFF MCNEIL",
+ 31,
+ "M",
+ "MARIETTA GA",
+ 1240,
+ 10911,
+ 833,
+ 10793
+ ],
+ [
+ 1617,
+ "ANJANETTE KEANE-DAWES",
+ 39,
+ "F",
+ "MABLETON FM",
+ 974,
+ 10919,
+ 834,
+ 10891
+ ],
+ [
+ 1618,
+ "MANISHA KULKARNI",
+ 44,
+ "F",
+ "ALPHARETTA GA",
+ 1038,
+ 10936,
+ 835,
+ 10893
+ ],
+ [
+ 1619,
+ "LINDA MONGELL",
+ 63,
+ "F",
+ "ATLANTA GA",
+ 1296,
+ 10945,
+ 836,
+ 10835
+ ],
+ [
+ 1620,
+ "EDNA SALAMO",
+ 41,
+ "F",
+ "MABLETON GA",
+ 1582,
+ 10949,
+ 836,
+ 10833
+ ],
+ [
+ 1621,
+ "LAURA POLO",
+ 37,
+ "F",
+ "LAWRENCEVILLE GA",
+ 1452,
+ 10984,
+ 839,
+ 10865
+ ],
+ [
+ 1622,
+ "CAROL LEWIS",
+ 64,
+ "F",
+ "CONYERS GA",
+ 1089,
+ 10985,
+ 839,
+ 10866
+ ],
+ [
+ 1623,
+ "AMRUT KULKARNI",
+ 14,
+ "M",
+ "ALPHARETTA GA",
+ 1037,
+ 11030,
+ 842,
+ 10986
+ ],
+ [
+ 1624,
+ "DORALEE GORDON",
+ 43,
+ "F",
+ "OOLTEWAH TN",
+ 710,
+ 11074,
+ 846,
+ 10965
+ ],
+ [
+ 1625,
+ "PEGGY ROGERS",
+ 67,
+ "F",
+ "ATLANTA GA",
+ 1553,
+ 11103,
+ 848,
+ 10994
+ ],
+ [
+ 1626,
+ "SHEREE BERK",
+ 51,
+ "F",
+ "MARIETTA GA",
+ 146,
+ 11129,
+ 850,
+ 11092
+ ],
+ [
+ 1627,
+ "STACIE METCALFE",
+ 39,
+ "F",
+ "ATLANTA GA",
+ 1268,
+ 11170,
+ 853,
+ 11073
+ ],
+ [
+ 1628,
+ "KAREN CONNELLY",
+ 46,
+ "F",
+ "DALLAS GA",
+ 370,
+ 11174,
+ 853,
+ 11066
+ ],
+ [
+ 1629,
+ "MARCI BENNAFIELD",
+ 43,
+ "F",
+ "ATLANTA GA",
+ 142,
+ 11194,
+ 855,
+ 11074
+ ],
+ [
+ 1630,
+ "DAVID GARNER",
+ 40,
+ "M",
+ "POWDER SPRINGS GA",
+ 671,
+ 11203,
+ 856,
+ 11095
+ ],
+ [
+ 1631,
+ "GRACE THOMSEN",
+ 12,
+ "F",
+ "MABLETON GA",
+ 1830,
+ 11217,
+ 857,
+ 11193
+ ],
+ [
+ 1632,
+ "ANGELA THOMSEN",
+ 45,
+ "F",
+ "MABLETON GA",
+ 1829,
+ 11217,
+ 857,
+ 11193
+ ],
+ [
+ 1633,
+ "MITCHELL KAO",
+ 40,
+ "M",
+ "NORCROSS GA",
+ 968,
+ 11223,
+ 857,
+ 11124
+ ],
+ [
+ 1634,
+ "MARY KAY BALTZELL",
+ 47,
+ "F",
+ "TUCKER GA",
+ 90,
+ 11229,
+ 858,
+ 11130
+ ],
+ [
+ 1635,
+ "SUSAN BANKE",
+ 55,
+ "F",
+ "SMYRNA GA",
+ 94,
+ 11270,
+ 861,
+ 11152
+ ],
+ [
+ 1636,
+ "JENNIFER SUGGS",
+ 26,
+ "F",
+ "SMYRNA GA",
+ 1778,
+ 11270,
+ 861,
+ 11151
+ ],
+ [
+ 1637,
+ "CHARLENE DETLER",
+ 42,
+ "F",
+ "ELLENWOOD GA",
+ 483,
+ 11274,
+ 861,
+ 11167
+ ],
+ [
+ 1638,
+ "ASHLEY COX",
+ 25,
+ "F",
+ "KENNESAW GA",
+ 396,
+ 11303,
+ 863,
+ 11204
+ ],
+ [
+ 1639,
+ "SHAYNA PEIKEN",
+ 42,
+ "F",
+ "MARIETTA GA",
+ 1413,
+ 11369,
+ 868,
+ 11280
+ ],
+ [
+ 1640,
+ "CHARLOTTE HOOVER",
+ 61,
+ "F",
+ "MCDONOUGH GA",
+ 860,
+ 11437,
+ 874,
+ 11332
+ ],
+ [
+ 1641,
+ "LINDA SUMMERS",
+ 49,
+ "F",
+ "SENOIA GA",
+ 1785,
+ 11478,
+ 877,
+ 11363
+ ],
+ [
+ 1642,
+ "JEFF SUMMERS",
+ 50,
+ "M",
+ "SENOIA GA",
+ 1784,
+ 11479,
+ 877,
+ 11363
+ ],
+ [
+ 1643,
+ "PHYLLIS HALL",
+ 52,
+ "F",
+ "SHARPSBURT GA",
+ 764,
+ 11480,
+ 877,
+ 11364
+ ],
+ [
+ 1644,
+ "AMY FALZONE",
+ 29,
+ "F",
+ "ALPHARETTA GA",
+ 587,
+ 11514,
+ 879,
+ 11457
+ ],
+ [
+ 1645,
+ "DENNIS LEATH",
+ 62,
+ "M",
+ "JASPER GA",
+ 1073,
+ 11518,
+ 880,
+ 11402
+ ],
+ [
+ 1646,
+ "WANDA HALLER",
+ 53,
+ "F",
+ "POWDER SPRINGS GA",
+ 767,
+ 11541,
+ 881,
+ 11471
+ ],
+ [
+ 1647,
+ "KATE BAWDEN",
+ 24,
+ "F",
+ "CANTON GA",
+ 126,
+ 11541,
+ 881,
+ 11500
+ ],
+ [
+ 1648,
+ "BRIAN BAWDEN",
+ 27,
+ "M",
+ "CANTON GA",
+ 125,
+ 11542,
+ 881,
+ 11501
+ ],
+ [
+ 1649,
+ "SARAH BOLING",
+ 40,
+ "F",
+ "SANDY SPRINGS GA",
+ 169,
+ 11606,
+ 886,
+ 11495
+ ],
+ [
+ 1650,
+ "NANCY WAGES",
+ 60,
+ "F",
+ "DECATUR GA",
+ 1895,
+ 11618,
+ 887,
+ 11508
+ ],
+ [
+ 1651,
+ "DIANNE MASON",
+ 49,
+ "F",
+ "KNIFEVILLE FL",
+ 1182,
+ 11656,
+ 890,
+ 11560
+ ],
+ [
+ 1652,
+ "CAROL MARTIN",
+ 60,
+ "F",
+ "SMYRNA GA",
+ 1172,
+ 11757,
+ 898,
+ 11659
+ ],
+ [
+ 1653,
+ "LYDIA WOODS",
+ 57,
+ "F",
+ "ATLANTA GA",
+ 2002,
+ 11781,
+ 900,
+ 11750
+ ],
+ [
+ 1654,
+ "COLLEEN MELONEY",
+ 61,
+ "F",
+ "ALPHARETTA GA",
+ 1251,
+ 11819,
+ 903,
+ -1
+ ],
+ [
+ 1655,
+ "FARRAR BARKER",
+ 27,
+ "F",
+ "ATLANTA GA",
+ 101,
+ 11820,
+ 903,
+ -1
+ ],
+ [
+ 1656,
+ "KELLY BARKER",
+ 35,
+ "M",
+ "ATLANTA GA",
+ 102,
+ 11820,
+ 903,
+ -1
+ ],
+ [
+ 1657,
+ "BRIDGETTE JOHNSON",
+ 55,
+ "F",
+ "PANAMA CITY BEA FL",
+ 942,
+ 11821,
+ 903,
+ -1
+ ],
+ [
+ 1658,
+ "JOYCE LEATH",
+ 66,
+ "F",
+ "JASPER GA",
+ 1074,
+ 11851,
+ 905,
+ 11735
+ ],
+ [
+ 1659,
+ "SUZANNE FLOWERS",
+ 32,
+ "F",
+ "MABLETON GA",
+ 614,
+ 11852,
+ 905,
+ 11765
+ ],
+ [
+ 1660,
+ "JAN COLLINS",
+ 48,
+ "F",
+ "MARIETTA GA",
+ 366,
+ 11855,
+ 905,
+ 11812
+ ],
+ [
+ 1661,
+ "HARRISON HUNT",
+ 20,
+ "M",
+ "WALESKA GA",
+ 2039,
+ 11859,
+ 906,
+ 11756
+ ],
+ [
+ 1662,
+ "MARC TARTARO",
+ 37,
+ "M",
+ "MARIETTA GA",
+ 1802,
+ 11859,
+ 906,
+ 11755
+ ],
+ [
+ 1663,
+ "SHELLI TREELY",
+ 49,
+ "F",
+ "OSCEOLA IN",
+ 1851,
+ 11864,
+ 906,
+ 11742
+ ],
+ [
+ 1664,
+ "PEGGY SIMPSON",
+ 62,
+ "F",
+ "WHITE GA",
+ 1687,
+ 11884,
+ 908,
+ 11789
+ ],
+ [
+ 1665,
+ "ANDY FREEMAN",
+ 40,
+ "M",
+ "POWDER SPRINGS GA",
+ 639,
+ 11897,
+ 909,
+ 11786
+ ],
+ [
+ 1666,
+ "NEENA JOGLEKAR",
+ 45,
+ "F",
+ "ALPHARETTA GA",
+ 935,
+ 11945,
+ 912,
+ 11902
+ ],
+ [
+ 1667,
+ "MICHELLE BARRON",
+ 47,
+ "F",
+ "MARIETTA GA",
+ 109,
+ 11992,
+ 916,
+ 11882
+ ],
+ [
+ 1668,
+ "TINA LOGAN",
+ 42,
+ "F",
+ "MABLETON GA",
+ 1118,
+ 12076,
+ 922,
+ 12050
+ ],
+ [
+ 1669,
+ "TONYA PHILLIPS",
+ 38,
+ "F",
+ "MABLETON GA",
+ 1437,
+ 12077,
+ 922,
+ 12050
+ ],
+ [
+ 1670,
+ "CHRISTINE OSWALD",
+ 37,
+ "F",
+ "LILBURN GA",
+ 1378,
+ 12175,
+ 930,
+ 12060
+ ],
+ [
+ 1671,
+ "ANITA HARRIS",
+ 50,
+ "F",
+ "ATLANTA GA",
+ 793,
+ 12184,
+ 930,
+ 12097
+ ],
+ [
+ 1672,
+ "SHELIA SCOTT",
+ 53,
+ "F",
+ "L:ITHONIA GA",
+ 1628,
+ 12284,
+ 938,
+ 12181
+ ],
+ [
+ 1673,
+ "MICHELLE COLLIER",
+ 54,
+ "F",
+ "ATLANTA GA",
+ 364,
+ 12397,
+ 947,
+ 12346
+ ],
+ [
+ 1674,
+ "TIFFANY DEBROCK",
+ 34,
+ "F",
+ "SMYRNA GA",
+ 464,
+ 12398,
+ 947,
+ 12283
+ ],
+ [
+ 1675,
+ "ROXANE RUSH",
+ 41,
+ "F",
+ "CANTON GA",
+ 1575,
+ 12508,
+ 955,
+ 12403
+ ],
+ [
+ 1676,
+ "JEANNIE ROKOVITZ",
+ 39,
+ "F",
+ "WOODSTOCK GA",
+ 1554,
+ 12534,
+ 957,
+ 12430
+ ],
+ [
+ 1677,
+ "REE MYERS",
+ 25,
+ "F",
+ "WOODSTOCK GA",
+ 1329,
+ 12580,
+ 961,
+ 12460
+ ],
+ [
+ 1678,
+ "SUSAN MCPHERSON",
+ 52,
+ "F",
+ "CANTON GA",
+ 1243,
+ 12606,
+ 963,
+ 12485
+ ],
+ [
+ 1679,
+ "BETH COPENHAVER",
+ 47,
+ "F",
+ "JOHNS CREEK GA",
+ 384,
+ 12626,
+ 964,
+ 12507
+ ],
+ [
+ 1680,
+ "BENTE SMALL",
+ 46,
+ "F",
+ "LITHONIA GA",
+ 1697,
+ 12706,
+ 970,
+ 12557
+ ],
+ [
+ 1681,
+ "JOHNNYE BAILEY",
+ 51,
+ "F",
+ "ATLANTA GA",
+ 81,
+ 12766,
+ 975,
+ 12703
+ ],
+ [
+ 1682,
+ "BETHANY HARRIS",
+ 30,
+ "F",
+ "DECATUR GA",
+ 794,
+ 12766,
+ 975,
+ 12649
+ ],
+ [
+ 1683,
+ "JAIME HARRIS",
+ 31,
+ "M",
+ "DECATUR GA",
+ 795,
+ 12768,
+ 975,
+ 12649
+ ],
+ [
+ 1684,
+ "ROSEMARY MACMILLAN",
+ 50,
+ "F",
+ "ROSWELL GA",
+ 1149,
+ 12785,
+ 976,
+ 12671
+ ],
+ [
+ 1685,
+ "DIANE ONESTA",
+ 50,
+ "F",
+ "ACWORTH GA",
+ 1372,
+ 12785,
+ 976,
+ 12672
+ ],
+ [
+ 1686,
+ "ANN MANN",
+ 51,
+ "F",
+ "MARIETTA GA",
+ 1164,
+ 12786,
+ 976,
+ 12671
+ ],
+ [
+ 1687,
+ "CATHERINE AGERBECK",
+ 35,
+ "F",
+ "BUFORD GA",
+ 16,
+ 12816,
+ 979,
+ 12752
+ ],
+ [
+ 1688,
+ "KAY ROYCE",
+ 50,
+ "F",
+ "LOGANVILLE GA",
+ 1572,
+ 12994,
+ 992,
+ 12928
+ ],
+ [
+ 1689,
+ "ROXANNE LAWSON",
+ 41,
+ "F",
+ "HOSCHTON GA",
+ 1065,
+ 12994,
+ 992,
+ 12930
+ ],
+ [
+ 1690,
+ "STEPHANIE GOLIAS",
+ 43,
+ "F",
+ "WOODSTOCK GA",
+ 705,
+ 13008,
+ 993,
+ 12891
+ ],
+ [
+ 1691,
+ "GEORGE MALONE",
+ 43,
+ "M",
+ "HUNTSVILLE AL",
+ 1162,
+ 13155,
+ 1005,
+ 13048
+ ],
+ [
+ 1692,
+ "DEBORAH WHITE",
+ 52,
+ "F",
+ "WESTERVILLE OH",
+ 1958,
+ 13161,
+ 1005,
+ 13056
+ ],
+ [
+ 1693,
+ "CHARLES COHN",
+ 79,
+ "M",
+ "AUSTELL GA",
+ 356,
+ 13299,
+ 1016,
+ 13188
+ ],
+ [
+ 1694,
+ "AMIEE TEAL",
+ 37,
+ "F",
+ "MARIETTA GA",
+ 1813,
+ 13461,
+ 1028,
+ 13357
+ ],
+ [
+ 1695,
+ "NICOLE MCCOY",
+ 30,
+ "F",
+ "CUMMING GA",
+ 1203,
+ 13522,
+ 1033,
+ 13408
+ ],
+ [
+ 1696,
+ "TAMIKA PONDER",
+ 34,
+ "F",
+ "DOUGLASVILLE GA",
+ 1453,
+ 13522,
+ 1033,
+ -1
+ ],
+ [
+ 1697,
+ "NELLY HUNZINGER",
+ 71,
+ "F",
+ "HIRAM GA",
+ 891,
+ 13755,
+ 1050,
+ 13633
+ ],
+ [
+ 1698,
+ "JUDY COOK",
+ 70,
+ "F",
+ "ACWORTH GA",
+ 375,
+ 13756,
+ 1051,
+ 13637
+ ],
+ [
+ 1699,
+ "MAGGIE MERRITT",
+ 61,
+ "F",
+ "DECATUR GA",
+ 1263,
+ 14032,
+ 1072,
+ 13969
+ ],
+ [
+ 1700,
+ "CLAUDIA CRENSHAW",
+ 59,
+ "F",
+ "CLARKSTON GA",
+ 404,
+ 14347,
+ 1096,
+ 14301
+ ],
+ [
+ 1701,
+ "JOANNE CLENDENIN",
+ 59,
+ "F",
+ "ATLANTA GA",
+ 342,
+ 15240,
+ 1164,
+ 15119
+ ],
+ [
+ 1702,
+ "JAMES CLENDENIN",
+ 57,
+ "M",
+ "ATLANTA GA",
+ 341,
+ 15240,
+ 1164,
+ 15120
+ ],
+ [
+ 1703,
+ "LINDA MAHER WILLIAMS",
+ 57,
+ "F",
+ "DECATUR GA",
+ 1153,
+ 15240,
+ 1164,
+ 15120
+ ]
+]
diff --git a/elemental/examples/silvercomet/src/com/google/silvercomet/server/Server.java b/elemental/examples/silvercomet/src/com/google/silvercomet/server/Server.java
new file mode 100644
index 0000000..9e98967
--- /dev/null
+++ b/elemental/examples/silvercomet/src/com/google/silvercomet/server/Server.java
@@ -0,0 +1,22 @@
+package com.google.silvercomet.server;
+
+import com.google.common.flags.Flags;
+import com.google.gse.GoogleServletEngine;
+import com.google.gwt.gserver.GwtResourceServlet;
+import com.google.net.base.IpScanners;
+
+import java.io.IOException;
+
+public class Server {
+ public static void main(String[] args) throws IOException {
+ Flags.parse(args);
+ final GoogleServletEngine gse = new GoogleServletEngine();
+ gse.configure();
+ gse.setServerType("what_the_fuck_is_all_this_random_stuff");
+ gse.getPathDispatcher().addServlet("/*", new GwtResourceServlet(
+ Server.class.getClassLoader(),
+ IpScanners.ALLOW_ALL,
+ "SilverComet"));
+ gse.run();
+ }
+}
diff --git a/elemental/examples/simple/src/elemental/example/ElementalExample.gwt.xml b/elemental/examples/simple/src/elemental/example/ElementalExample.gwt.xml
new file mode 100644
index 0000000..68828e0
--- /dev/null
+++ b/elemental/examples/simple/src/elemental/example/ElementalExample.gwt.xml
@@ -0,0 +1,4 @@
+<module rename-to="elementalExample">
+ <inherits name="elemental.Elemental"/>
+ <entry-point class="elemental.example.client.ElementalExample" />
+</module>
diff --git a/elemental/examples/simple/src/elemental/example/client/ElementalExample.java b/elemental/examples/simple/src/elemental/example/client/ElementalExample.java
new file mode 100644
index 0000000..02e96a9
--- /dev/null
+++ b/elemental/examples/simple/src/elemental/example/client/ElementalExample.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2010 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 elemental.example.client;
+
+import static elemental.client.Browser.getDocument;
+import static elemental.client.Browser.getWindow;
+
+import com.google.gwt.core.client.EntryPoint;
+
+import elemental.html.Window;
+
+import elemental.dom.XMLHttpRequest;
+import elemental.events.Event;
+import elemental.events.EventListener;
+import elemental.html.ButtonElement;
+import elemental.html.DivElement;
+
+public class ElementalExample implements EntryPoint {
+
+ @Override
+ public void onModuleLoad() {
+ final ButtonElement btn = getDocument().createButtonElement();
+ btn.setInnerHTML("w00t?");
+ btn.getStyle().setColor("red");
+ getDocument().getBody().appendChild(btn);
+
+ final DivElement div = getDocument().createDivElement();
+ getDocument().getBody().appendChild(div);
+
+ EventListener listener = new EventListener() {
+ public void handleEvent(Event evt) {
+ final XMLHttpRequest xhr = getWindow().newXMLHttpRequest();
+ xhr.setOnLoad(new EventListener() {
+ @Override
+ public void handleEvent(Event evt) {
+ div.setInnerHTML(xhr.getResponseText());
+ }
+ });
+ xhr.open("GET", "/snippet.html");
+ xhr.send();
+
+ getWindow().setTimeout(new Window.TimerCallback() {
+ @Override
+ public void fire() {
+ getWindow().alert("timeout fired");
+ }
+ }, 1000);
+
+ btn.removeEventListener(Event.CLICK, this, false);
+ }
+ };
+
+ btn.addEventListener(Event.CLICK, listener, false);
+ }
+}
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();
+
+ };
+
+}
diff --git a/elemental/src/elemental/Elemental.gwt.xml b/elemental/src/elemental/Elemental.gwt.xml
new file mode 100644
index 0000000..c388e65
--- /dev/null
+++ b/elemental/src/elemental/Elemental.gwt.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<module>
+ <inherits name="com.google.gwt.core.Core" />
+
+ <!-- Enables use of ClientBundle -->
+ <inherits name="com.google.gwt.resources.Resources" />
+ <set-configuration-property name="user.agent.runtimeWarning" value="false" />
+ <set-property name="user.agent" value="safari" />
+ <source path="client" />
+ <source path="js" />
+ <source path='canvas'/>
+ <source path='css'/>
+ <source path='dom'/>
+ <source path='events'/>
+ <source path='html'/>
+ <source path='json'/>
+ <source path='ranges'/>
+ <source path='stylesheets'/>
+ <source path='svg'/>
+ <source path='traversal'/>
+ <source path='xpath'/>
+ <source path='xml'/>
+ <source path='util'/>
+ <super-source path="super"/>
+</module>
diff --git a/elemental/src/elemental/client/Browser.java b/elemental/src/elemental/client/Browser.java
new file mode 100644
index 0000000..5786b70
--- /dev/null
+++ b/elemental/src/elemental/client/Browser.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2010 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 elemental.client;
+
+import elemental.dom.Document;
+import elemental.html.Window;
+import elemental.js.JsBrowser;
+
+/**
+ * Entry-point for getting the access to browser globals.
+ */
+public class Browser {
+
+ /**
+ * Provides limited user agent information for the current browser. The API is
+ * structured such that info can either be determined at runtime or
+ * constrained at compile time through GWT permutations.
+ *
+ * TODO(knorton): Add the gwt.xml file that enables permutations.
+ */
+ public interface Info {
+
+ /**
+ * Indicates whether the browser is a supported version of Gecko.
+ */
+ boolean isGecko();
+
+ /**
+ * Indicates whether the platform is Linux.
+ */
+ boolean isLinux();
+
+ /**
+ * Indicates whether the platform is Macintosh.
+ */
+ boolean isMac();
+
+ /**
+ * Indicates whether the browser is one of the supported browsers.
+ */
+ boolean isSupported();
+
+ /**
+ * Indicates whether the browser is a supported version of WebKit.
+ */
+ boolean isWebKit();
+
+ /**
+ * Indicates whether the platform is Windows.
+ */
+ boolean isWindows();
+ }
+
+ /**
+ * Decodes a URI as specified in the ECMA-262, 5th edition specification,
+ * section 15.1.3.1.
+ *
+ * @see "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf"
+ */
+ public static native String decodeURI(String encodedURI) /*-{
+ return decodeURI(encodedURI);
+ }-*/;
+
+ /**
+ * Encodes a URI compoment as specified in the ECMA-262, 5th edition specification,
+ * section 15.1.3.1.
+ *
+ * @see "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf"
+ */
+ public static native String decodeURIComponent(String encodedUriComponent) /*-{
+ return decodeURIComponent(encodedUriComponent);
+ }-*/;
+
+ /**
+ * Encodes a URI as specified in the ECMA-262, 5th edition specification,
+ * section 15.1.3.1.
+ *
+ * @see "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf"
+ */
+ public static native String encodeURI(String uri) /*-{
+ return encodeURI(uri);
+ }-*/;
+
+ /**
+ * Encodes a URI component as specified in the ECMA-262, 5th edition specification,
+ * section 15.1.3.1.
+ *
+ * @see "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf"
+ */
+ public static native String encodeURIComponent(String uriComponent) /*-{
+ return encodeURIComponent(uriComponent);
+ }-*/;
+
+ /**
+ * Gets the document within which this script is running.
+ */
+ public static Document getDocument() {
+ return JsBrowser.getDocument();
+ }
+
+ /**
+ * Gets information about the current browser.
+ */
+ public static Info getInfo() {
+ return JsBrowser.getInfo();
+ }
+
+ /**
+ * Gets the window within which this script is running.
+ */
+ public static Window getWindow() {
+ return JsBrowser.getWindow();
+ }
+
+ // Non-instantiable.
+ private Browser() {
+ }
+}
diff --git a/elemental/src/elemental/css/CSSCharsetRule.java b/elemental/src/elemental/css/CSSCharsetRule.java
new file mode 100644
index 0000000..2653bfb
--- /dev/null
+++ b/elemental/src/elemental/css/CSSCharsetRule.java
@@ -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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSCharsetRule extends CSSRule {
+
+ String getEncoding();
+
+ void setEncoding(String arg);
+}
diff --git a/elemental/src/elemental/css/CSSFontFaceRule.java b/elemental/src/elemental/css/CSSFontFaceRule.java
new file mode 100644
index 0000000..3a2dd97
--- /dev/null
+++ b/elemental/src/elemental/css/CSSFontFaceRule.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSFontFaceRule extends CSSRule {
+
+ CSSStyleDeclaration getStyle();
+}
diff --git a/elemental/src/elemental/css/CSSImportRule.java b/elemental/src/elemental/css/CSSImportRule.java
new file mode 100644
index 0000000..4274d98
--- /dev/null
+++ b/elemental/src/elemental/css/CSSImportRule.java
@@ -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 elemental.css;
+import elemental.stylesheets.MediaList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSImportRule extends CSSRule {
+
+ String getHref();
+
+ MediaList getMedia();
+
+ CSSStyleSheet getStyleSheet();
+}
diff --git a/elemental/src/elemental/css/CSSKeyframeRule.java b/elemental/src/elemental/css/CSSKeyframeRule.java
new file mode 100644
index 0000000..d703a6c
--- /dev/null
+++ b/elemental/src/elemental/css/CSSKeyframeRule.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSKeyframeRule extends CSSRule {
+
+ String getKeyText();
+
+ void setKeyText(String arg);
+
+ CSSStyleDeclaration getStyle();
+}
diff --git a/elemental/src/elemental/css/CSSKeyframesRule.java b/elemental/src/elemental/css/CSSKeyframesRule.java
new file mode 100644
index 0000000..04f7c98
--- /dev/null
+++ b/elemental/src/elemental/css/CSSKeyframesRule.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSKeyframesRule extends CSSRule {
+
+ CSSRuleList getCssRules();
+
+ String getName();
+
+ void setName(String arg);
+
+ void deleteRule(String key);
+
+ CSSKeyframeRule findRule(String key);
+
+ void insertRule(String rule);
+}
diff --git a/elemental/src/elemental/css/CSSMatrix.java b/elemental/src/elemental/css/CSSMatrix.java
new file mode 100644
index 0000000..3e8e6d3a
--- /dev/null
+++ b/elemental/src/elemental/css/CSSMatrix.java
@@ -0,0 +1,137 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSMatrix {
+
+ double getA();
+
+ void setA(double arg);
+
+ double getB();
+
+ void setB(double arg);
+
+ double getC();
+
+ void setC(double arg);
+
+ double getD();
+
+ void setD(double arg);
+
+ double getE();
+
+ void setE(double arg);
+
+ double getF();
+
+ void setF(double arg);
+
+ double getM11();
+
+ void setM11(double arg);
+
+ double getM12();
+
+ void setM12(double arg);
+
+ double getM13();
+
+ void setM13(double arg);
+
+ double getM14();
+
+ void setM14(double arg);
+
+ double getM21();
+
+ void setM21(double arg);
+
+ double getM22();
+
+ void setM22(double arg);
+
+ double getM23();
+
+ void setM23(double arg);
+
+ double getM24();
+
+ void setM24(double arg);
+
+ double getM31();
+
+ void setM31(double arg);
+
+ double getM32();
+
+ void setM32(double arg);
+
+ double getM33();
+
+ void setM33(double arg);
+
+ double getM34();
+
+ void setM34(double arg);
+
+ double getM41();
+
+ void setM41(double arg);
+
+ double getM42();
+
+ void setM42(double arg);
+
+ double getM43();
+
+ void setM43(double arg);
+
+ double getM44();
+
+ void setM44(double arg);
+
+ CSSMatrix inverse();
+
+ CSSMatrix multiply(CSSMatrix secondMatrix);
+
+ CSSMatrix rotate(double rotX, double rotY, double rotZ);
+
+ CSSMatrix rotateAxisAngle(double x, double y, double z, double angle);
+
+ CSSMatrix scale(double scaleX, double scaleY, double scaleZ);
+
+ void setMatrixValue(String string);
+
+ CSSMatrix skewX(double angle);
+
+ CSSMatrix skewY(double angle);
+
+ CSSMatrix translate(double x, double y, double z);
+}
diff --git a/elemental/src/elemental/css/CSSMediaRule.java b/elemental/src/elemental/css/CSSMediaRule.java
new file mode 100644
index 0000000..1e035e5
--- /dev/null
+++ b/elemental/src/elemental/css/CSSMediaRule.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.css;
+import elemental.stylesheets.MediaList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface CSSMediaRule extends CSSRule {
+
+
+ /**
+ * 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.
+ */
+ CSSRuleList getCssRules();
+
+
+ /**
+ * Specifies the intended destination medium for style information.
+ */
+ MediaList getMedia();
+
+
+ /**
+ * Deletes a rule from the style sheet.
+ */
+ void deleteRule(int index);
+
+
+ /**
+ * Inserts a new style rule into the current style sheet.
+ */
+ int insertRule(String rule, int index);
+}
diff --git a/elemental/src/elemental/css/CSSPageRule.java b/elemental/src/elemental/css/CSSPageRule.java
new file mode 100644
index 0000000..5f34d05
--- /dev/null
+++ b/elemental/src/elemental/css/CSSPageRule.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSPageRule extends CSSRule {
+
+ String getSelectorText();
+
+ void setSelectorText(String arg);
+
+ CSSStyleDeclaration getStyle();
+}
diff --git a/elemental/src/elemental/css/CSSPrimitiveValue.java b/elemental/src/elemental/css/CSSPrimitiveValue.java
new file mode 100644
index 0000000..4bdeeff
--- /dev/null
+++ b/elemental/src/elemental/css/CSSPrimitiveValue.java
@@ -0,0 +1,105 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSPrimitiveValue extends CSSValue {
+
+ static final int CSS_ATTR = 22;
+
+ static final int CSS_CM = 6;
+
+ static final int CSS_COUNTER = 23;
+
+ static final int CSS_DEG = 11;
+
+ static final int CSS_DIMENSION = 18;
+
+ static final int CSS_EMS = 3;
+
+ static final int CSS_EXS = 4;
+
+ static final int CSS_GRAD = 13;
+
+ static final int CSS_HZ = 16;
+
+ static final int CSS_IDENT = 21;
+
+ static final int CSS_IN = 8;
+
+ static final int CSS_KHZ = 17;
+
+ static final int CSS_MM = 7;
+
+ static final int CSS_MS = 14;
+
+ static final int CSS_NUMBER = 1;
+
+ static final int CSS_PC = 10;
+
+ static final int CSS_PERCENTAGE = 2;
+
+ static final int CSS_PT = 9;
+
+ static final int CSS_PX = 5;
+
+ static final int CSS_RAD = 12;
+
+ static final int CSS_RECT = 24;
+
+ static final int CSS_RGBCOLOR = 25;
+
+ static final int CSS_S = 15;
+
+ static final int CSS_STRING = 19;
+
+ static final int CSS_UNKNOWN = 0;
+
+ static final int CSS_URI = 20;
+
+ static final int CSS_VH = 27;
+
+ static final int CSS_VMIN = 28;
+
+ static final int CSS_VW = 26;
+
+ int getPrimitiveType();
+
+ Counter getCounterValue();
+
+ float getFloatValue(int unitType);
+
+ RGBColor getRGBColorValue();
+
+ Rect getRectValue();
+
+ String getStringValue();
+
+ void setFloatValue(int unitType, float floatValue);
+
+ void setStringValue(int stringType, String stringValue);
+}
diff --git a/elemental/src/elemental/css/CSSRule.java b/elemental/src/elemental/css/CSSRule.java
new file mode 100644
index 0000000..5306268
--- /dev/null
+++ b/elemental/src/elemental/css/CSSRule.java
@@ -0,0 +1,76 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface CSSRule {
+
+ static final int CHARSET_RULE = 2;
+
+ static final int FONT_FACE_RULE = 5;
+
+ static final int IMPORT_RULE = 3;
+
+ static final int MEDIA_RULE = 4;
+
+ static final int PAGE_RULE = 6;
+
+ static final int STYLE_RULE = 1;
+
+ static final int UNKNOWN_RULE = 0;
+
+ static final int WEBKIT_KEYFRAMES_RULE = 7;
+
+ static final int WEBKIT_KEYFRAME_RULE = 8;
+
+
+ /**
+ * Returns the textual representation of the rule, e.g. <code>"h1,h2 { font-size: 16pt }"</code>
+ */
+ String getCssText();
+
+ void setCssText(String arg);
+
+
+ /**
+ * 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>.
+ */
+ CSSRule getParentRule();
+
+
+ /**
+ * 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
+ */
+ CSSStyleSheet getParentStyleSheet();
+
+
+ /**
+ * 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.
+ */
+ int getType();
+}
diff --git a/elemental/src/elemental/css/CSSRuleList.java b/elemental/src/elemental/css/CSSRuleList.java
new file mode 100644
index 0000000..b09b67b
--- /dev/null
+++ b/elemental/src/elemental/css/CSSRuleList.java
@@ -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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface CSSRuleList {
+
+ int getLength();
+
+ CSSRule item(int index);
+}
diff --git a/elemental/src/elemental/css/CSSStyleDeclaration.java b/elemental/src/elemental/css/CSSStyleDeclaration.java
new file mode 100644
index 0000000..17f4aa4
--- /dev/null
+++ b/elemental/src/elemental/css/CSSStyleDeclaration.java
@@ -0,0 +1,1259 @@
+/*
+ * 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 elemental.css;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ * $CLASS_JAVADOC
+ */
+public interface CSSStyleDeclaration {
+
+
+ /**
+ * Textual representation of the declaration block. Setting this attribute changes the style.
+ */
+ String getCssText();
+
+ void setCssText(String arg);
+
+
+ /**
+ * The number of properties. See the <strong>item</strong> method below.
+ */
+ int getLength();
+
+
+ /**
+ * The containing <code><a href="https://developer.mozilla.org/en/DOM/cssRule" rel="internal" title="en/DOM/cssRule">cssRule</a>.</code>
+ */
+ CSSRule getParentRule();
+
+
+ /**
+ * <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>.
+ */
+ CSSValue getPropertyCSSValue(String propertyName);
+
+
+ /**
+ * Returns the optional priority, "important".<br> Example: <em>priString</em>= <em>styleObj</em>.getPropertyPriority('color')
+ */
+ String getPropertyPriority(String propertyName);
+
+ String getPropertyShorthand(String propertyName);
+
+
+ /**
+ * Returns the property value.<br> Example: <em>valString</em>= <em>styleObj</em>.getPropertyValue('color')
+ */
+ String getPropertyValue(String propertyName);
+
+ boolean isPropertyImplicit(String propertyName);
+
+
+ /**
+ * Returns a property name.<br> Example: <em>nameString</em>= <em>styleObj</em>.item(0)<br> Alternative: <em>nameString</em>= <em>styleObj</em>[0]
+ */
+ String item(int index);
+
+
+ /**
+ * Returns the value deleted.<br> Example: <em>valString</em>= <em>styleObj</em>.removeProperty('color')
+ */
+ String removeProperty(String propertyName);
+
+
+ /**
+ * No return.<br> Example: <em>styleObj</em>.setProperty('color', 'red', 'important')
+ */
+ void setProperty(String propertyName, String value);
+
+
+ /**
+ * No return.<br> Example: <em>styleObj</em>.setProperty('color', 'red', 'important')
+ */
+ void setProperty(String propertyName, String value, String priority);
+
+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/src/elemental/css/CSSStyleRule.java b/elemental/src/elemental/css/CSSStyleRule.java
new file mode 100644
index 0000000..577b0c5
--- /dev/null
+++ b/elemental/src/elemental/css/CSSStyleRule.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ interface.
+ */
+public interface CSSStyleRule extends CSSRule {
+
+
+ /**
+ * Gets/sets the textual representation of the selector for this rule, e.g. <code>"h1,h2"</code>.
+ */
+ String getSelectorText();
+
+ void setSelectorText(String arg);
+
+
+ /**
+ * 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>
+ */
+ CSSStyleDeclaration getStyle();
+}
diff --git a/elemental/src/elemental/css/CSSStyleSheet.java b/elemental/src/elemental/css/CSSStyleSheet.java
new file mode 100644
index 0000000..91f1ccc
--- /dev/null
+++ b/elemental/src/elemental/css/CSSStyleSheet.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.css;
+import elemental.stylesheets.StyleSheet;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<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>
+ */
+public interface CSSStyleSheet extends StyleSheet {
+
+
+ /**
+ * 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.
+ */
+ CSSRuleList getCssRules();
+
+
+ /**
+ * 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>.
+ */
+ CSSRule getOwnerRule();
+
+ CSSRuleList getRules();
+
+ int addRule(String selector, String style);
+
+ int addRule(String selector, String style, int index);
+
+
+ /**
+ * Deletes a rule from the style sheet.
+ */
+ void deleteRule(int index);
+
+
+ /**
+ * Inserts a new style rule into the current style sheet.
+ */
+ int insertRule(String rule, int index);
+
+ void removeRule(int index);
+}
diff --git a/elemental/src/elemental/css/CSSTransformValue.java b/elemental/src/elemental/css/CSSTransformValue.java
new file mode 100644
index 0000000..cd1fe50
--- /dev/null
+++ b/elemental/src/elemental/css/CSSTransformValue.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSTransformValue extends CSSValueList {
+
+ static final int CSS_MATRIX = 11;
+
+ static final int CSS_MATRIX3D = 21;
+
+ static final int CSS_PERSPECTIVE = 20;
+
+ static final int CSS_ROTATE = 4;
+
+ static final int CSS_ROTATE3D = 17;
+
+ static final int CSS_ROTATEX = 14;
+
+ static final int CSS_ROTATEY = 15;
+
+ static final int CSS_ROTATEZ = 16;
+
+ static final int CSS_SCALE = 5;
+
+ static final int CSS_SCALE3D = 19;
+
+ static final int CSS_SCALEX = 6;
+
+ static final int CSS_SCALEY = 7;
+
+ static final int CSS_SCALEZ = 18;
+
+ static final int CSS_SKEW = 8;
+
+ static final int CSS_SKEWX = 9;
+
+ static final int CSS_SKEWY = 10;
+
+ static final int CSS_TRANSLATE = 1;
+
+ static final int CSS_TRANSLATE3D = 13;
+
+ static final int CSS_TRANSLATEX = 2;
+
+ static final int CSS_TRANSLATEY = 3;
+
+ static final int CSS_TRANSLATEZ = 12;
+
+ int getOperationType();
+}
diff --git a/elemental/src/elemental/css/CSSUnknownRule.java b/elemental/src/elemental/css/CSSUnknownRule.java
new file mode 100644
index 0000000..7f081f0
--- /dev/null
+++ b/elemental/src/elemental/css/CSSUnknownRule.java
@@ -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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSUnknownRule extends CSSRule {
+}
diff --git a/elemental/src/elemental/css/CSSValue.java b/elemental/src/elemental/css/CSSValue.java
new file mode 100644
index 0000000..1a43687
--- /dev/null
+++ b/elemental/src/elemental/css/CSSValue.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSValue {
+
+ static final int CSS_CUSTOM = 3;
+
+ static final int CSS_INHERIT = 0;
+
+ static final int CSS_PRIMITIVE_VALUE = 1;
+
+ static final int CSS_VALUE_LIST = 2;
+
+ String getCssText();
+
+ void setCssText(String arg);
+
+ int getCssValueType();
+}
diff --git a/elemental/src/elemental/css/CSSValueList.java b/elemental/src/elemental/css/CSSValueList.java
new file mode 100644
index 0000000..b1c4e04
--- /dev/null
+++ b/elemental/src/elemental/css/CSSValueList.java
@@ -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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CSSValueList extends CSSValue {
+
+ int getLength();
+
+ CSSValue item(int index);
+}
diff --git a/elemental/src/elemental/css/Counter.java b/elemental/src/elemental/css/Counter.java
new file mode 100644
index 0000000..3f2ddfb
--- /dev/null
+++ b/elemental/src/elemental/css/Counter.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/CSS/counter-increment">counter-increment</a></code>
+ 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.
+ */
+public interface Counter {
+
+ String getIdentifier();
+
+ String getListStyle();
+
+ String getSeparator();
+}
diff --git a/elemental/src/elemental/css/RGBColor.java b/elemental/src/elemental/css/RGBColor.java
new file mode 100644
index 0000000..61a1892
--- /dev/null
+++ b/elemental/src/elemental/css/RGBColor.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface RGBColor {
+
+ CSSPrimitiveValue getBlue();
+
+ CSSPrimitiveValue getGreen();
+
+ CSSPrimitiveValue getRed();
+}
diff --git a/elemental/src/elemental/css/Rect.java b/elemental/src/elemental/css/Rect.java
new file mode 100644
index 0000000..4eec5ab
--- /dev/null
+++ b/elemental/src/elemental/css/Rect.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface Rect {
+
+ CSSPrimitiveValue getBottom();
+
+ CSSPrimitiveValue getLeft();
+
+ CSSPrimitiveValue getRight();
+
+ CSSPrimitiveValue getTop();
+}
diff --git a/elemental/src/elemental/css/WebKitCSSFilterValue.java b/elemental/src/elemental/css/WebKitCSSFilterValue.java
new file mode 100644
index 0000000..cf6a1f8
--- /dev/null
+++ b/elemental/src/elemental/css/WebKitCSSFilterValue.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebKitCSSFilterValue extends CSSValueList {
+
+ static final int CSS_FILTER_BLUR = 10;
+
+ static final int CSS_FILTER_BRIGHTNESS = 8;
+
+ static final int CSS_FILTER_CONTRAST = 9;
+
+ static final int CSS_FILTER_CUSTOM = 12;
+
+ static final int CSS_FILTER_DROP_SHADOW = 11;
+
+ static final int CSS_FILTER_GRAYSCALE = 2;
+
+ static final int CSS_FILTER_HUE_ROTATE = 5;
+
+ static final int CSS_FILTER_INVERT = 6;
+
+ static final int CSS_FILTER_OPACITY = 7;
+
+ static final int CSS_FILTER_REFERENCE = 1;
+
+ static final int CSS_FILTER_SATURATE = 4;
+
+ static final int CSS_FILTER_SEPIA = 3;
+
+ int getOperationType();
+}
diff --git a/elemental/src/elemental/css/WebKitCSSKeyframeRule.java b/elemental/src/elemental/css/WebKitCSSKeyframeRule.java
new file mode 100644
index 0000000..37c7862
--- /dev/null
+++ b/elemental/src/elemental/css/WebKitCSSKeyframeRule.java
@@ -0,0 +1,16 @@
+
+package elemental.css;
+
+import elemental.events.*;
+
+/**
+ *
+ */
+public interface WebKitCSSKeyframeRule extends CSSRule {
+
+ String getKeyText();
+
+ void setKeyText(String arg);
+
+ CSSStyleDeclaration getStyle();
+}
diff --git a/elemental/src/elemental/css/WebKitCSSKeyframesRule.java b/elemental/src/elemental/css/WebKitCSSKeyframesRule.java
new file mode 100644
index 0000000..b1180d4
--- /dev/null
+++ b/elemental/src/elemental/css/WebKitCSSKeyframesRule.java
@@ -0,0 +1,22 @@
+
+package elemental.css;
+
+import elemental.events.*;
+
+/**
+ *
+ */
+public interface WebKitCSSKeyframesRule extends CSSRule {
+
+ CSSRuleList getCssRules();
+
+ String getName();
+
+ void setName(String arg);
+
+ void deleteRule(String key);
+
+ WebKitCSSKeyframeRule findRule(String key);
+
+ void insertRule(String rule);
+}
diff --git a/elemental/src/elemental/css/WebKitCSSMatrix.java b/elemental/src/elemental/css/WebKitCSSMatrix.java
new file mode 100644
index 0000000..4222adb
--- /dev/null
+++ b/elemental/src/elemental/css/WebKitCSSMatrix.java
@@ -0,0 +1,118 @@
+
+package elemental.css;
+
+import elemental.events.*;
+
+/**
+ *
+ */
+public interface WebKitCSSMatrix {
+
+ double getA();
+
+ void setA(double arg);
+
+ double getB();
+
+ void setB(double arg);
+
+ double getC();
+
+ void setC(double arg);
+
+ double getD();
+
+ void setD(double arg);
+
+ double getE();
+
+ void setE(double arg);
+
+ double getF();
+
+ void setF(double arg);
+
+ double getM11();
+
+ void setM11(double arg);
+
+ double getM12();
+
+ void setM12(double arg);
+
+ double getM13();
+
+ void setM13(double arg);
+
+ double getM14();
+
+ void setM14(double arg);
+
+ double getM21();
+
+ void setM21(double arg);
+
+ double getM22();
+
+ void setM22(double arg);
+
+ double getM23();
+
+ void setM23(double arg);
+
+ double getM24();
+
+ void setM24(double arg);
+
+ double getM31();
+
+ void setM31(double arg);
+
+ double getM32();
+
+ void setM32(double arg);
+
+ double getM33();
+
+ void setM33(double arg);
+
+ double getM34();
+
+ void setM34(double arg);
+
+ double getM41();
+
+ void setM41(double arg);
+
+ double getM42();
+
+ void setM42(double arg);
+
+ double getM43();
+
+ void setM43(double arg);
+
+ double getM44();
+
+ void setM44(double arg);
+
+ WebKitCSSMatrix inverse();
+
+ WebKitCSSMatrix multiply(WebKitCSSMatrix secondMatrix);
+
+ WebKitCSSMatrix rotate(double rotX, double rotY, double rotZ);
+
+ WebKitCSSMatrix rotateAxisAngle(double x, double y, double z, double angle);
+
+ WebKitCSSMatrix scale(double scaleX, double scaleY, double scaleZ);
+
+ void setMatrixValue(String string);
+
+ WebKitCSSMatrix skewX(double angle);
+
+ WebKitCSSMatrix skewY(double angle);
+
+ String toString();
+
+ WebKitCSSMatrix translate(double x, double y, double z);
+}
diff --git a/elemental/src/elemental/css/WebKitCSSRegionRule.java b/elemental/src/elemental/css/WebKitCSSRegionRule.java
new file mode 100644
index 0000000..200b9db
--- /dev/null
+++ b/elemental/src/elemental/css/WebKitCSSRegionRule.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.css;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebKitCSSRegionRule extends CSSRule {
+
+ CSSRuleList getCssRules();
+}
diff --git a/elemental/src/elemental/css/WebKitCSSTransformValue.java b/elemental/src/elemental/css/WebKitCSSTransformValue.java
new file mode 100644
index 0000000..de7d607
--- /dev/null
+++ b/elemental/src/elemental/css/WebKitCSSTransformValue.java
@@ -0,0 +1,54 @@
+
+package elemental.css;
+
+import elemental.events.*;
+
+/**
+ *
+ */
+public interface WebKitCSSTransformValue extends CSSValueList {
+
+ static final int CSS_MATRIX = 11;
+
+ static final int CSS_MATRIX3D = 21;
+
+ static final int CSS_PERSPECTIVE = 20;
+
+ static final int CSS_ROTATE = 4;
+
+ static final int CSS_ROTATE3D = 17;
+
+ static final int CSS_ROTATEX = 14;
+
+ static final int CSS_ROTATEY = 15;
+
+ static final int CSS_ROTATEZ = 16;
+
+ static final int CSS_SCALE = 5;
+
+ static final int CSS_SCALE3D = 19;
+
+ static final int CSS_SCALEX = 6;
+
+ static final int CSS_SCALEY = 7;
+
+ static final int CSS_SCALEZ = 18;
+
+ static final int CSS_SKEW = 8;
+
+ static final int CSS_SKEWX = 9;
+
+ static final int CSS_SKEWY = 10;
+
+ static final int CSS_TRANSLATE = 1;
+
+ static final int CSS_TRANSLATE3D = 13;
+
+ static final int CSS_TRANSLATEX = 2;
+
+ static final int CSS_TRANSLATEY = 3;
+
+ static final int CSS_TRANSLATEZ = 12;
+
+ int getOperationType();
+}
diff --git a/elemental/src/elemental/dom/Attr.java b/elemental/src/elemental/dom/Attr.java
new file mode 100644
index 0000000..730cf10
--- /dev/null
+++ b/elemental/src/elemental/dom/Attr.java
@@ -0,0 +1,69 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+, but certain functions (e.g., <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Element.getAttributeNode">Element.getAttributeNode()</a></code>
+) or means of iterating give <code>Attr</code> types.</p>
+<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>
+. You should not be using any <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Node">Node</a></code>
+ properties or methods on <code>Attr</code> objects. Starting in Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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>
+ */
+public interface Attr extends Node {
+
+
+ /**
+ * 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.
+ */
+ boolean isId();
+
+
+ /**
+ * The attribute's name.
+ */
+ String getName();
+
+
+ /**
+ * 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
+ */
+ Element getOwnerElement();
+
+
+ /**
+ * This property has been deprecated and will be removed in the future; it now always returns <code>true</code>.
+ */
+ boolean isSpecified();
+
+
+ /**
+ * The attribute's value.
+ */
+ String getValue();
+
+ void setValue(String arg);
+}
diff --git a/elemental/src/elemental/dom/CDATASection.java b/elemental/src/elemental/dom/CDATASection.java
new file mode 100644
index 0000000..c165f20
--- /dev/null
+++ b/elemental/src/elemental/dom/CDATASection.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p>It takes the form:</p>
+<pre class="eval"><![CDATA[ ... ]]>
+</pre>
+<p>For example:</p>
+<pre class="eval"><foo>Here is a CDATA section: <![CDATA[ < > & ]]> with all kinds of unescaped text. </foo>
+</pre>
+<p>The only sequence which is not allowed within a CDATA section is the closing sequence of a CDATA section itself:</p>
+<pre class="eval"><![CDATA[ ]]> will cause an error ]]>
+</pre>
+<p>Note that CDATA sections should not be used (without hiding) within HTML.</p>
+<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>
+ */
+public interface CDATASection extends Text {
+}
diff --git a/elemental/src/elemental/dom/CharacterData.java b/elemental/src/elemental/dom/CharacterData.java
new file mode 100644
index 0000000..3ad91af
--- /dev/null
+++ b/elemental/src/elemental/dom/CharacterData.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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.
+ */
+public interface CharacterData extends Node {
+
+ String getData();
+
+ void setData(String arg);
+
+ int getLength();
+
+ void appendData(String data);
+
+ void deleteData(int offset, int length);
+
+ void insertData(int offset, String data);
+
+ void replaceData(int offset, int length, String data);
+
+ String substringData(int offset, int length);
+}
diff --git a/elemental/src/elemental/dom/Clipboard.java b/elemental/src/elemental/dom/Clipboard.java
new file mode 100644
index 0000000..d4e347a
--- /dev/null
+++ b/elemental/src/elemental/dom/Clipboard.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.dom;
+import elemental.html.FileList;
+import elemental.util.Indexable;
+import elemental.html.ImageElement;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div>
+
+<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>
+<span>Last changed in Gecko 1.8 (Firefox 1.5 / Thunderbird 1.5 / SeaMonkey 1.0)
+</span></div>
+ */
+public interface Clipboard {
+
+ String getDropEffect();
+
+ void setDropEffect(String arg);
+
+ String getEffectAllowed();
+
+ void setEffectAllowed(String arg);
+
+ FileList getFiles();
+
+ DataTransferItemList getItems();
+
+ Indexable getTypes();
+
+ void clearData();
+
+ void clearData(String type);
+
+
+ /**
+ * <p>This method retrieves data from the clipboard into a transferable.</p>
+
+<div id="section_8"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ String getData(String type);
+
+
+ /**
+ * <p>This method sets the data from a transferable on the native clipboard.</p>
+
+<div id="section_13"><span id="Parameters_5"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ boolean setData(String type, String data);
+
+ void setDragImage(ImageElement image, int x, int y);
+}
diff --git a/elemental/src/elemental/dom/Comment.java b/elemental/src/elemental/dom/Comment.java
new file mode 100644
index 0000000..98e4e50
--- /dev/null
+++ b/elemental/src/elemental/dom/Comment.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface Comment extends CharacterData {
+}
diff --git a/elemental/src/elemental/dom/Coordinates.java b/elemental/src/elemental/dom/Coordinates.java
new file mode 100644
index 0000000..ee97129
--- /dev/null
+++ b/elemental/src/elemental/dom/Coordinates.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface Coordinates {
+
+ double getAccuracy();
+
+ double getAltitude();
+
+ double getAltitudeAccuracy();
+
+ double getHeading();
+
+ double getLatitude();
+
+ double getLongitude();
+
+ double getSpeed();
+}
diff --git a/elemental/src/elemental/dom/DOMError.java b/elemental/src/elemental/dom/DOMError.java
new file mode 100644
index 0000000..ad63a0c
--- /dev/null
+++ b/elemental/src/elemental/dom/DOMError.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMError {
+
+ String getName();
+}
diff --git a/elemental/src/elemental/dom/DOMException.java b/elemental/src/elemental/dom/DOMException.java
new file mode 100644
index 0000000..4e457b9
--- /dev/null
+++ b/elemental/src/elemental/dom/DOMException.java
@@ -0,0 +1,89 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The following are the <strong>DOMException</strong> codes:</p>
+<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>
+</table>
+ */
+public interface DOMException {
+
+ static final int ABORT_ERR = 20;
+
+ static final int DATA_CLONE_ERR = 25;
+
+ static final int DOMSTRING_SIZE_ERR = 2;
+
+ static final int HIERARCHY_REQUEST_ERR = 3;
+
+ static final int INDEX_SIZE_ERR = 1;
+
+ static final int INUSE_ATTRIBUTE_ERR = 10;
+
+ static final int INVALID_ACCESS_ERR = 15;
+
+ static final int INVALID_CHARACTER_ERR = 5;
+
+ static final int INVALID_MODIFICATION_ERR = 13;
+
+ static final int INVALID_NODE_TYPE_ERR = 24;
+
+ static final int INVALID_STATE_ERR = 11;
+
+ static final int NAMESPACE_ERR = 14;
+
+ static final int NETWORK_ERR = 19;
+
+ static final int NOT_FOUND_ERR = 8;
+
+ static final int NOT_SUPPORTED_ERR = 9;
+
+ static final int NO_DATA_ALLOWED_ERR = 6;
+
+ static final int NO_MODIFICATION_ALLOWED_ERR = 7;
+
+ static final int QUOTA_EXCEEDED_ERR = 22;
+
+ static final int SECURITY_ERR = 18;
+
+ static final int SYNTAX_ERR = 12;
+
+ static final int TIMEOUT_ERR = 23;
+
+ static final int TYPE_MISMATCH_ERR = 17;
+
+ static final int URL_MISMATCH_ERR = 21;
+
+ static final int VALIDATION_ERR = 16;
+
+ static final int WRONG_DOCUMENT_ERR = 4;
+
+ int getCode();
+
+ String getMessage();
+
+ String getName();
+}
diff --git a/elemental/src/elemental/dom/DOMImplementation.java b/elemental/src/elemental/dom/DOMImplementation.java
new file mode 100644
index 0000000..b12d41d
--- /dev/null
+++ b/elemental/src/elemental/dom/DOMImplementation.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.dom;
+import elemental.css.CSSStyleSheet;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>.
+ */
+public interface DOMImplementation {
+
+ CSSStyleSheet createCSSStyleSheet(String title, String media);
+
+ Document createDocument(String namespaceURI, String qualifiedName, DocumentType doctype);
+
+ DocumentType createDocumentType(String qualifiedName, String publicId, String systemId);
+
+ Document createHTMLDocument(String title);
+
+ boolean hasFeature(String feature, String version);
+}
diff --git a/elemental/src/elemental/dom/DOMSettableTokenList.java b/elemental/src/elemental/dom/DOMSettableTokenList.java
new file mode 100644
index 0000000..17aa397
--- /dev/null
+++ b/elemental/src/elemental/dom/DOMSettableTokenList.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMSettableTokenList extends DOMTokenList {
+
+ String getValue();
+
+ void setValue(String arg);
+}
diff --git a/elemental/src/elemental/dom/DOMStringList.java b/elemental/src/elemental/dom/DOMStringList.java
new file mode 100644
index 0000000..aa9b1b2
--- /dev/null
+++ b/elemental/src/elemental/dom/DOMStringList.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMStringList extends Indexable {
+
+ int getLength();
+
+ boolean contains(String string);
+
+ String item(int index);
+}
diff --git a/elemental/src/elemental/dom/DOMStringMap.java b/elemental/src/elemental/dom/DOMStringMap.java
new file mode 100644
index 0000000..b7919b3
--- /dev/null
+++ b/elemental/src/elemental/dom/DOMStringMap.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMStringMap {
+}
diff --git a/elemental/src/elemental/dom/DOMTokenList.java b/elemental/src/elemental/dom/DOMTokenList.java
new file mode 100644
index 0000000..0c06975
--- /dev/null
+++ b/elemental/src/elemental/dom/DOMTokenList.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+, HTMLLinkElement.relList, HTMLAnchorElement.relList or HTMLAreaElement.relList. It is indexed beginning with 0 as with JavaScript arrays. DOMTokenList is always case-sensitive.
+ */
+public interface DOMTokenList {
+
+ int getLength();
+
+ void add(String token);
+
+ boolean contains(String token);
+
+ String item(int index);
+
+ void remove(String token);
+
+ boolean toggle(String token);
+}
diff --git a/elemental/src/elemental/dom/DataTransferItem.java b/elemental/src/elemental/dom/DataTransferItem.java
new file mode 100644
index 0000000..d711d07
--- /dev/null
+++ b/elemental/src/elemental/dom/DataTransferItem.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.dom;
+import elemental.html.Blob;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DataTransferItem {
+
+ String getKind();
+
+ String getType();
+
+ Blob getAsFile();
+
+ void getAsString();
+
+ void getAsString(StringCallback callback);
+}
diff --git a/elemental/src/elemental/dom/DataTransferItemList.java b/elemental/src/elemental/dom/DataTransferItemList.java
new file mode 100644
index 0000000..bd3f4ee
--- /dev/null
+++ b/elemental/src/elemental/dom/DataTransferItemList.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.dom;
+import elemental.html.File;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DataTransferItemList {
+
+ int getLength();
+
+ void add(File file);
+
+ void add(String data, String type);
+
+ void clear();
+
+ DataTransferItem item(int index);
+}
diff --git a/elemental/src/elemental/dom/DeviceMotionEvent.java b/elemental/src/elemental/dom/DeviceMotionEvent.java
new file mode 100644
index 0000000..d54f4c5
--- /dev/null
+++ b/elemental/src/elemental/dom/DeviceMotionEvent.java
@@ -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 elemental.dom;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface DeviceMotionEvent extends Event {
+
+
+ /**
+ * The interval, in milliseconds, at which the <code>DeviceMotionEvent</code> is fired. The next event will be fired in approximately this amount of time.
+ */
+ double getInterval();
+}
diff --git a/elemental/src/elemental/dom/DeviceOrientationEvent.java b/elemental/src/elemental/dom/DeviceOrientationEvent.java
new file mode 100644
index 0000000..f603227
--- /dev/null
+++ b/elemental/src/elemental/dom/DeviceOrientationEvent.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.dom;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface DeviceOrientationEvent extends Event {
+
+
+ /**
+ * 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>
+ */
+ boolean isAbsolute();
+
+
+ /**
+ * 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>
+ */
+ double getAlpha();
+
+
+ /**
+ * 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>
+ */
+ double getBeta();
+
+
+ /**
+ * <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>
+</dl>
+<div class="note"><strong>Note:</strong> If the browser is not able to provide notification information, all values are 0.</div>
+ */
+ double getGamma();
+
+ void initDeviceOrientationEvent(String type, boolean bubbles, boolean cancelable, double alpha, double beta, double gamma, boolean absolute);
+}
diff --git a/elemental/src/elemental/dom/Document.java b/elemental/src/elemental/dom/Document.java
new file mode 100644
index 0000000..570820d
--- /dev/null
+++ b/elemental/src/elemental/dom/Document.java
@@ -0,0 +1,1197 @@
+/*
+ * 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 elemental.dom;
+import elemental.html.HTMLAllCollection;
+import elemental.stylesheets.StyleSheetList;
+import elemental.html.CanvasRenderingContext;
+import elemental.events.EventTarget;
+import elemental.html.HTMLCollection;
+import elemental.traversal.NodeFilter;
+import elemental.css.CSSStyleDeclaration;
+import elemental.events.Touch;
+import elemental.xpath.XPathNSResolver;
+import elemental.xpath.XPathResult;
+import elemental.ranges.Range;
+import elemental.html.Location;
+import elemental.html.Selection;
+import elemental.html.Window;
+import elemental.xpath.XPathExpression;
+import elemental.traversal.NodeIterator;
+import elemental.events.Event;
+import elemental.traversal.TreeWalker;
+import elemental.html.HeadElement;
+import elemental.events.TouchList;
+import elemental.events.EventListener;
+
+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;
+
+/**
+ * <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>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/table"><table></a></code>
+) and provides functionality global to the document (such as obtaining the page's URL and creating new elements in the document).</p>
+<p>A document object can be obtained from various APIs:</p>
+<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>
+</ul>
+<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>
+<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>
+</ul>
+<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>
+<p>Note that some APIs listed below are not available in all browsers for various reasons:</p>
+<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>
+</ul>
+<p>Detailed browser compatibility tables are located at the pages describing each property or method.</p>
+ */
+public interface Document extends Node, NodeSelector {
+
+/**
+ * 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";
+}
+
+
+ /**
+ * Returns a string containing the URL of the current document.
+ */
+ String getURL();
+
+
+ /**
+ * Returns the currently focused element
+ */
+ Element getActiveElement();
+
+
+ /**
+ * Returns or sets the color of active links in the document body.
+ */
+ String getAlinkColor();
+
+ void setAlinkColor(String arg);
+
+ HTMLAllCollection getAll();
+
+ void setAll(HTMLAllCollection arg);
+
+
+ /**
+ * Returns a list of all of the anchors in the document.
+ */
+ HTMLCollection getAnchors();
+
+
+ /**
+ * Returns an ordered list of the applets within a document.
+ */
+ HTMLCollection getApplets();
+
+
+ /**
+ * Gets/sets the background color of the current document.
+ */
+ String getBgColor();
+
+ void setBgColor(String arg);
+
+
+ /**
+ * Returns the BODY node of the current document.
+ */
+ Element getBody();
+
+ void setBody(Element arg);
+
+
+ /**
+ * Returns the character set being used by the document.
+ */
+ String getCharacterSet();
+
+ String getCharset();
+
+ void setCharset(String arg);
+
+
+ /**
+ * Indicates whether the document is rendered in Quirks or Strict mode.
+ */
+ String getCompatMode();
+
+
+ /**
+ * Returns a semicolon-separated list of the cookies for that document or sets a single cookie.
+ */
+ String getCookie();
+
+ void setCookie(String arg);
+
+ String getDefaultCharset();
+
+
+ /**
+ * Returns a reference to the window object.
+ */
+ Window getDefaultView();
+
+
+ /**
+ * 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.
+ */
+ String getDesignMode();
+
+ void setDesignMode(String arg);
+
+
+ /**
+ * Gets/sets directionality (rtl/ltr) of the document
+ */
+ String getDir();
+
+ void setDir(String arg);
+
+
+ /**
+ * Returns the Document Type Definition (DTD) of the current document.
+ */
+ DocumentType getDoctype();
+
+
+ /**
+ * Returns the Element that is a direct child of document. For HTML documents, this is normally the HTML element.
+ */
+ Element getDocumentElement();
+
+
+ /**
+ * Returns the document location.
+ */
+ String getDocumentURI();
+
+ void setDocumentURI(String arg);
+
+
+ /**
+ * Returns the domain of the current document.
+ */
+ String getDomain();
+
+ void setDomain(String arg);
+
+
+ /**
+ * Returns a list of the embedded OBJECTS within the current document.
+ */
+ HTMLCollection getEmbeds();
+
+
+ /**
+ * Gets/sets the foreground color, or text color, of the current document.
+ */
+ String getFgColor();
+
+ void setFgColor(String arg);
+
+
+ /**
+ * Returns a list of the FORM elements within the current document.
+ */
+ HTMLCollection getForms();
+
+
+ /**
+ * Returns the HEAD node of the current document.
+ */
+ HeadElement getHead();
+
+
+ /**
+ * Gets/sets the height of the current document.
+ */
+ int getHeight();
+
+
+ /**
+ * Returns a list of the images in the current document.
+ */
+ HTMLCollection getImages();
+
+
+ /**
+ * Returns the DOM implementation associated with the current document.
+ */
+ DOMImplementation getImplementation();
+
+
+ /**
+ * Returns the encoding used when the document was parsed.
+ */
+ String getInputEncoding();
+
+
+ /**
+ * Returns the date on which the document was last modified.
+ */
+ String getLastModified();
+
+
+ /**
+ * Gets/sets the color of hyperlinks in the document.
+ */
+ String getLinkColor();
+
+ void setLinkColor(String arg);
+
+
+ /**
+ * Returns a list of all the hyperlinks in the document.
+ */
+ HTMLCollection getLinks();
+
+
+ /**
+ * Returns the URI of the current document.
+ */
+ Location getLocation();
+
+ void setLocation(Location arg);
+
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+ EventListener getOnbeforecopy();
+
+ void setOnbeforecopy(EventListener arg);
+
+ EventListener getOnbeforecut();
+
+ void setOnbeforecut(EventListener arg);
+
+ EventListener getOnbeforepaste();
+
+ void setOnbeforepaste(EventListener arg);
+
+ EventListener getOnblur();
+
+ void setOnblur(EventListener arg);
+
+ EventListener getOnchange();
+
+ void setOnchange(EventListener arg);
+
+ EventListener getOnclick();
+
+ void setOnclick(EventListener arg);
+
+ EventListener getOncontextmenu();
+
+ void setOncontextmenu(EventListener arg);
+
+ EventListener getOncopy();
+
+ void setOncopy(EventListener arg);
+
+ EventListener getOncut();
+
+ void setOncut(EventListener arg);
+
+ EventListener getOndblclick();
+
+ void setOndblclick(EventListener arg);
+
+ EventListener getOndrag();
+
+ void setOndrag(EventListener arg);
+
+ EventListener getOndragend();
+
+ void setOndragend(EventListener arg);
+
+ EventListener getOndragenter();
+
+ void setOndragenter(EventListener arg);
+
+ EventListener getOndragleave();
+
+ void setOndragleave(EventListener arg);
+
+ EventListener getOndragover();
+
+ void setOndragover(EventListener arg);
+
+ EventListener getOndragstart();
+
+ void setOndragstart(EventListener arg);
+
+ EventListener getOndrop();
+
+ void setOndrop(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnfocus();
+
+ void setOnfocus(EventListener arg);
+
+ EventListener getOninput();
+
+ void setOninput(EventListener arg);
+
+ EventListener getOninvalid();
+
+ void setOninvalid(EventListener arg);
+
+ EventListener getOnkeydown();
+
+ void setOnkeydown(EventListener arg);
+
+ EventListener getOnkeypress();
+
+ void setOnkeypress(EventListener arg);
+
+ EventListener getOnkeyup();
+
+ void setOnkeyup(EventListener arg);
+
+ EventListener getOnload();
+
+ void setOnload(EventListener arg);
+
+ EventListener getOnmousedown();
+
+ void setOnmousedown(EventListener arg);
+
+ EventListener getOnmousemove();
+
+ void setOnmousemove(EventListener arg);
+
+ EventListener getOnmouseout();
+
+ void setOnmouseout(EventListener arg);
+
+ EventListener getOnmouseover();
+
+ void setOnmouseover(EventListener arg);
+
+ EventListener getOnmouseup();
+
+ void setOnmouseup(EventListener arg);
+
+ EventListener getOnmousewheel();
+
+ void setOnmousewheel(EventListener arg);
+
+ EventListener getOnpaste();
+
+ void setOnpaste(EventListener arg);
+
+
+ /**
+ * <dl><dd>Returns the event handling code for the <code>readystatechange</code> event.</dd>
+</dl>
+<div class="geckoVersionNote"> <p>
+</p><div class="geckoVersionHeading">Gecko 9.0 note<div>(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+</div></div>
+<p></p> <p>Starting in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+, 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>
+</div>
+ */
+ EventListener getOnreadystatechange();
+
+ void setOnreadystatechange(EventListener arg);
+
+ EventListener getOnreset();
+
+ void setOnreset(EventListener arg);
+
+ EventListener getOnscroll();
+
+ void setOnscroll(EventListener arg);
+
+ EventListener getOnsearch();
+
+ void setOnsearch(EventListener arg);
+
+ EventListener getOnselect();
+
+ void setOnselect(EventListener arg);
+
+ EventListener getOnselectionchange();
+
+ void setOnselectionchange(EventListener arg);
+
+ EventListener getOnselectstart();
+
+ void setOnselectstart(EventListener arg);
+
+ EventListener getOnsubmit();
+
+ void setOnsubmit(EventListener arg);
+
+ EventListener getOntouchcancel();
+
+ void setOntouchcancel(EventListener arg);
+
+ EventListener getOntouchend();
+
+ void setOntouchend(EventListener arg);
+
+ EventListener getOntouchmove();
+
+ void setOntouchmove(EventListener arg);
+
+ EventListener getOntouchstart();
+
+ void setOntouchstart(EventListener arg);
+
+ EventListener getOnwebkitfullscreenchange();
+
+ void setOnwebkitfullscreenchange(EventListener arg);
+
+ EventListener getOnwebkitfullscreenerror();
+
+ void setOnwebkitfullscreenerror(EventListener arg);
+
+
+ /**
+ * Returns a list of the available plugins.
+ */
+ HTMLCollection getPlugins();
+
+ String getPreferredStylesheetSet();
+
+
+ /**
+ * Returns loading status of the document
+ */
+ String getReadyState();
+
+
+ /**
+ * Returns the URI of the page that linked to this page.
+ */
+ String getReferrer();
+
+
+ /**
+ * Returns all the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/script"><script></a></code>
+ elements on the document.
+ */
+ HTMLCollection getScripts();
+
+ String getSelectedStylesheetSet();
+
+ void setSelectedStylesheetSet(String arg);
+
+
+ /**
+ * Returns a list of the stylesheet objects on the current document.
+ */
+ StyleSheetList getStyleSheets();
+
+
+ /**
+ * Returns the title of the current document.
+ */
+ String getTitle();
+
+ void setTitle(String arg);
+
+
+ /**
+ * Gets/sets the color of visited hyperlinks.
+ */
+ String getVlinkColor();
+
+ void setVlinkColor(String arg);
+
+ Element getWebkitCurrentFullScreenElement();
+
+ boolean isWebkitFullScreenKeyboardInputAllowed();
+
+ Element getWebkitFullscreenElement();
+
+ boolean isWebkitFullscreenEnabled();
+
+ boolean isWebkitHidden();
+
+ boolean isWebkitIsFullScreen();
+
+ String getWebkitVisibilityState();
+
+
+ /**
+ * Returns the width of the current document.
+ */
+ int getWidth();
+
+
+ /**
+ * Returns the encoding as determined by the XML declaration.<br> <div class="note">Firefox 10 and later don't implement it anymore.</div>
+ */
+ String getXmlEncoding();
+
+
+ /**
+ * 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>.
+ */
+ boolean isXmlStandalone();
+
+ void setXmlStandalone(boolean arg);
+
+
+ /**
+ * Returns the version number as specified in the XML declaration or <code>"1.0"</code> if the declaration is absent.
+ */
+ String getXmlVersion();
+
+ void setXmlVersion(String arg);
+
+
+ /**
+ * <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>
+</dt> <dd>Adds a node to the end of the list of children of a specified parent node.</dd>
+ */
+ Node adoptNode(Node source);
+
+ Range caretRangeFromPoint(int x, int y);
+
+
+ /**
+ * Creates a new attribute node and returns it.
+ */
+ Attr createAttribute(String name);
+
+
+ /**
+ * Creates a new attribute node in a given namespace and returns it.
+ */
+ Attr createAttributeNS(String namespaceURI, String qualifiedName);
+
+
+ /**
+ * Creates a new CDATA node and returns it.
+ */
+ CDATASection createCDATASection(String data);
+
+
+ /**
+ * Creates a new comment node and returns it.
+ */
+ Comment createComment(String data);
+
+
+ /**
+ * Creates a new document fragment.
+ */
+ DocumentFragment createDocumentFragment();
+
+
+ /**
+ * Creates a new element with the given tag name.
+ */
+ Element createElement(String tagName);
+
+
+ /**
+ * Creates a new element with the given tag name and namespace URI.
+ */
+ Element createElementNS(String namespaceURI, String qualifiedName);
+
+
+ /**
+ * Creates a new entity reference object and returns it.
+ */
+ EntityReference createEntityReference(String name);
+
+
+ /**
+ * Creates an event.
+ */
+ Event createEvent(String eventType);
+
+
+ /**
+ * 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.
+ */
+ XPathExpression createExpression(String expression, XPathNSResolver resolver);
+
+
+ /**
+ * Creates an XPathNSResolver.
+ */
+ XPathNSResolver createNSResolver(Node nodeResolver);
+
+ NodeIterator createNodeIterator(Node root, int whatToShow, NodeFilter filter, boolean expandEntityReferences);
+
+
+ /**
+ * Creates a new processing instruction element and returns it.
+ */
+ ProcessingInstruction createProcessingInstruction(String target, String data);
+
+
+ /**
+ * Creates a Range object.
+ */
+ Range createRange();
+
+
+ /**
+ * Creates a text node.
+ */
+ Text createTextNode(String data);
+
+ Touch createTouch(Window window, EventTarget target, int identifier, int pageX, int pageY, int screenX, int screenY, int webkitRadiusX, int webkitRadiusY, float webkitRotationAngle, float webkitForce);
+
+ TouchList createTouchList();
+
+
+ /**
+ * Creates a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/treeWalker">treeWalker</a></code>
+ object.
+ */
+ TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean expandEntityReferences);
+
+
+ /**
+ * Returns the element visible at the specified coordinates.
+ */
+ Element elementFromPoint(int x, int y);
+
+
+ /**
+ * Evaluates an XPath expression.
+ */
+ XPathResult evaluate(String expression, Node contextNode, XPathNSResolver resolver, int type, XPathResult inResult);
+
+
+ /**
+ * Executes a <a title="en/Midas" rel="internal" href="https://developer.mozilla.org/en/Midas">Midas</a> command.
+ */
+ boolean execCommand(String command, boolean userInterface, String value);
+
+ CanvasRenderingContext getCSSCanvasContext(String contextId, String name, int width, int height);
+
+
+ /**
+ * Returns an object reference to the identified element.
+ */
+ Element getElementById(String elementId);
+
+
+ /**
+ * Returns a list of elements with the given class name.
+ */
+ NodeList getElementsByClassName(String tagname);
+
+
+ /**
+ * Returns a list of elements with the given name.
+ */
+ NodeList getElementsByName(String elementName);
+
+
+ /**
+ * Returns a list of elements with the given tag name.
+ */
+ NodeList getElementsByTagName(String tagname);
+
+
+ /**
+ * <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>
+</dt>
+ */
+ NodeList getElementsByTagNameNS(String namespaceURI, String localName);
+
+ CSSStyleDeclaration getOverrideStyle(Element element, String pseudoElement);
+
+
+ /**
+ * <dd>Returns a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Selection">Selection</a></code>
+ 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>
+</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>
+</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>
+</dt> <dd>Returns a Boolean value indicating whether the current element has child nodes or not.</dd>
+ */
+ Selection getSelection();
+
+
+ /**
+ * <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>
+</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>
+</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>
+</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>
+</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>
+</dt> <dd>Tests whether the DOM implementation implements a specific feature and that feature is supported by this node or document</dd>
+ */
+ Node importNode(Node importedNode);
+
+
+ /**
+ * <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>
+</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>
+</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>
+</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>
+</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>
+</dt> <dd>Tests whether the DOM implementation implements a specific feature and that feature is supported by this node or document</dd>
+ */
+ Node importNode(Node importedNode, boolean deep);
+
+
+ /**
+ * 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.
+ */
+ boolean queryCommandEnabled(String command);
+
+
+ /**
+ * 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.
+ */
+ boolean queryCommandIndeterm(String command);
+
+
+ /**
+ * 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.
+ */
+ boolean queryCommandState(String command);
+
+ boolean queryCommandSupported(String command);
+
+
+ /**
+ * 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.
+ */
+ String queryCommandValue(String command);
+
+
+ /**
+ * Returns the first Element node within the document, in document order, that matches the specified selectors.
+ */
+ Element querySelector(String selectors);
+
+
+ /**
+ * Returns a list of all the Element nodes within the document that match the specified selectors.
+ */
+ NodeList querySelectorAll(String selectors);
+
+ void webkitCancelFullScreen();
+
+ void webkitExitFullscreen();
+
+ void captureEvents();
+
+
+ /**
+ * <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>
+</dt> <dd>Makes a copy of a node or document</dd>
+ */
+ void clear();
+
+
+ /**
+ * <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>
+</dt> <dd>Compares the position of the current node against another node in any other document.</dd>
+ */
+ void close();
+
+
+ /**
+ * Returns <code>true</code> if the focus is currently located anywhere inside the specified document.
+ */
+ boolean hasFocus();
+
+
+ /**
+ * Opens a document stream for writing.
+ */
+ void open();
+
+
+ /**
+ * <dt><code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Node.removeChild">Node.removeChild</a></code>
+</dt> <dd>Removes a child node from the DOM</dd>
+ */
+ void releaseEvents();
+
+
+ /**
+ * Writes text to a document.
+ */
+ void write(String text);
+
+
+ /**
+ * Write a line of text to a document.
+ */
+ void writeln(String text);
+
+ AnchorElement createAnchorElement();
+
+ AppletElement createAppletElement();
+
+ AreaElement createAreaElement();
+
+ AudioElement createAudioElement();
+
+ BRElement createBRElement();
+
+ BaseElement createBaseElement();
+
+ BaseFontElement createBaseFontElement();
+
+ BodyElement createBodyElement();
+
+ ButtonElement createButtonElement();
+
+ CanvasElement createCanvasElement();
+
+ ContentElement createContentElement();
+
+ DListElement createDListElement();
+
+ DetailsElement createDetailsElement();
+
+ DirectoryElement createDirectoryElement();
+
+ DivElement createDivElement();
+
+ EmbedElement createEmbedElement();
+
+ FieldSetElement createFieldSetElement();
+
+ FontElement createFontElement();
+
+ FormElement createFormElement();
+
+ FrameElement createFrameElement();
+
+ FrameSetElement createFrameSetElement();
+
+ HRElement createHRElement();
+
+ HeadElement createHeadElement();
+
+ HeadingElement createHeadingElement();
+
+ HtmlElement createHtmlElement();
+
+ IFrameElement createIFrameElement();
+
+ ImageElement createImageElement();
+
+ InputElement createInputElement();
+
+ KeygenElement createKeygenElement();
+
+ LIElement createLIElement();
+
+ LabelElement createLabelElement();
+
+ LegendElement createLegendElement();
+
+ LinkElement createLinkElement();
+
+ MapElement createMapElement();
+
+ MarqueeElement createMarqueeElement();
+
+ MediaElement createMediaElement();
+
+ MenuElement createMenuElement();
+
+ MetaElement createMetaElement();
+
+ MeterElement createMeterElement();
+
+ ModElement createModElement();
+
+ OListElement createOListElement();
+
+ ObjectElement createObjectElement();
+
+ OptGroupElement createOptGroupElement();
+
+ OptionElement createOptionElement();
+
+ OutputElement createOutputElement();
+
+ ParagraphElement createParagraphElement();
+
+ ParamElement createParamElement();
+
+ PreElement createPreElement();
+
+ ProgressElement createProgressElement();
+
+ QuoteElement createQuoteElement();
+
+ SVGAElement createSVGAElement();
+
+ SVGAltGlyphDefElement createSVGAltGlyphDefElement();
+
+ SVGAltGlyphElement createSVGAltGlyphElement();
+
+ SVGAltGlyphItemElement createSVGAltGlyphItemElement();
+
+ SVGAnimateColorElement createSVGAnimateColorElement();
+
+ SVGAnimateElement createSVGAnimateElement();
+
+ SVGAnimateMotionElement createSVGAnimateMotionElement();
+
+ SVGAnimateTransformElement createSVGAnimateTransformElement();
+
+ SVGAnimationElement createSVGAnimationElement();
+
+ SVGCircleElement createSVGCircleElement();
+
+ SVGClipPathElement createSVGClipPathElement();
+
+ SVGComponentTransferFunctionElement createSVGComponentTransferFunctionElement();
+
+ SVGCursorElement createSVGCursorElement();
+
+ SVGDefsElement createSVGDefsElement();
+
+ SVGDescElement createSVGDescElement();
+
+ SVGEllipseElement createSVGEllipseElement();
+
+ SVGFEBlendElement createSVGFEBlendElement();
+
+ SVGFEColorMatrixElement createSVGFEColorMatrixElement();
+
+ SVGFEComponentTransferElement createSVGFEComponentTransferElement();
+
+ SVGFECompositeElement createSVGFECompositeElement();
+
+ SVGFEConvolveMatrixElement createSVGFEConvolveMatrixElement();
+
+ SVGFEDiffuseLightingElement createSVGFEDiffuseLightingElement();
+
+ SVGFEDisplacementMapElement createSVGFEDisplacementMapElement();
+
+ SVGFEDistantLightElement createSVGFEDistantLightElement();
+
+ SVGFEDropShadowElement createSVGFEDropShadowElement();
+
+ SVGFEFloodElement createSVGFEFloodElement();
+
+ SVGFEFuncAElement createSVGFEFuncAElement();
+
+ SVGFEFuncBElement createSVGFEFuncBElement();
+
+ SVGFEFuncGElement createSVGFEFuncGElement();
+
+ SVGFEFuncRElement createSVGFEFuncRElement();
+
+ SVGFEGaussianBlurElement createSVGFEGaussianBlurElement();
+
+ SVGFEImageElement createSVGFEImageElement();
+
+ SVGFEMergeElement createSVGFEMergeElement();
+
+ SVGFEMergeNodeElement createSVGFEMergeNodeElement();
+
+ SVGFEMorphologyElement createSVGFEMorphologyElement();
+
+ SVGFEOffsetElement createSVGFEOffsetElement();
+
+ SVGFEPointLightElement createSVGFEPointLightElement();
+
+ SVGFESpecularLightingElement createSVGFESpecularLightingElement();
+
+ SVGFESpotLightElement createSVGFESpotLightElement();
+
+ SVGFETileElement createSVGFETileElement();
+
+ SVGFETurbulenceElement createSVGFETurbulenceElement();
+
+ SVGFilterElement createSVGFilterElement();
+
+ SVGFontElement createSVGFontElement();
+
+ SVGFontFaceElement createSVGFontFaceElement();
+
+ SVGFontFaceFormatElement createSVGFontFaceFormatElement();
+
+ SVGFontFaceNameElement createSVGFontFaceNameElement();
+
+ SVGFontFaceSrcElement createSVGFontFaceSrcElement();
+
+ SVGFontFaceUriElement createSVGFontFaceUriElement();
+
+ SVGForeignObjectElement createSVGForeignObjectElement();
+
+ SVGGElement createSVGGElement();
+
+ SVGGlyphElement createSVGGlyphElement();
+
+ SVGGlyphRefElement createSVGGlyphRefElement();
+
+ SVGGradientElement createSVGGradientElement();
+
+ SVGHKernElement createSVGHKernElement();
+
+ SVGImageElement createSVGImageElement();
+
+ SVGLineElement createSVGLineElement();
+
+ SVGLinearGradientElement createSVGLinearGradientElement();
+
+ SVGMPathElement createSVGMPathElement();
+
+ SVGMarkerElement createSVGMarkerElement();
+
+ SVGMaskElement createSVGMaskElement();
+
+ SVGMetadataElement createSVGMetadataElement();
+
+ SVGMissingGlyphElement createSVGMissingGlyphElement();
+
+ SVGPathElement createSVGPathElement();
+
+ SVGPatternElement createSVGPatternElement();
+
+ SVGPolygonElement createSVGPolygonElement();
+
+ SVGPolylineElement createSVGPolylineElement();
+
+ SVGRadialGradientElement createSVGRadialGradientElement();
+
+ SVGRectElement createSVGRectElement();
+
+ SVGSVGElement createSVGElement();
+
+ SVGScriptElement createSVGScriptElement();
+
+ SVGSetElement createSVGSetElement();
+
+ SVGStopElement createSVGStopElement();
+
+ SVGStyleElement createSVGStyleElement();
+
+ SVGSwitchElement createSVGSwitchElement();
+
+ SVGSymbolElement createSVGSymbolElement();
+
+ SVGTRefElement createSVGTRefElement();
+
+ SVGTSpanElement createSVGTSpanElement();
+
+ SVGTextContentElement createSVGTextContentElement();
+
+ SVGTextElement createSVGTextElement();
+
+ SVGTextPathElement createSVGTextPathElement();
+
+ SVGTextPositioningElement createSVGTextPositioningElement();
+
+ SVGTitleElement createSVGTitleElement();
+
+ SVGUseElement createSVGUseElement();
+
+ SVGVKernElement createSVGVKernElement();
+
+ SVGViewElement createSVGViewElement();
+
+ ScriptElement createScriptElement();
+
+ SelectElement createSelectElement();
+
+ ShadowElement createShadowElement();
+
+ SourceElement createSourceElement();
+
+ SpanElement createSpanElement();
+
+ StyleElement createStyleElement();
+
+ TableCaptionElement createTableCaptionElement();
+
+ TableCellElement createTableCellElement();
+
+ TableColElement createTableColElement();
+
+ TableElement createTableElement();
+
+ TableRowElement createTableRowElement();
+
+ TableSectionElement createTableSectionElement();
+
+ TextAreaElement createTextAreaElement();
+
+ TitleElement createTitleElement();
+
+ TrackElement createTrackElement();
+
+ UListElement createUListElement();
+
+ UnknownElement createUnknownElement();
+
+ VideoElement createVideoElement();
+}
diff --git a/elemental/src/elemental/dom/DocumentFragment.java b/elemental/src/elemental/dom/DocumentFragment.java
new file mode 100644
index 0000000..b7c8b61
--- /dev/null
+++ b/elemental/src/elemental/dom/DocumentFragment.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<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>
+<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>
+ */
+public interface DocumentFragment extends Node, NodeSelector {
+
+ Element querySelector(String selectors);
+
+ NodeList querySelectorAll(String selectors);
+}
diff --git a/elemental/src/elemental/dom/DocumentType.java b/elemental/src/elemental/dom/DocumentType.java
new file mode 100644
index 0000000..d298c3c
--- /dev/null
+++ b/elemental/src/elemental/dom/DocumentType.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface DocumentType extends Node {
+
+ NamedNodeMap getEntities();
+
+ String getInternalSubset();
+
+ String getName();
+
+ NamedNodeMap getNotations();
+
+ String getPublicId();
+
+ String getSystemId();
+}
diff --git a/elemental/src/elemental/dom/Element.java b/elemental/src/elemental/dom/Element.java
new file mode 100644
index 0000000..4eda4b4
--- /dev/null
+++ b/elemental/src/elemental/dom/Element.java
@@ -0,0 +1,771 @@
+/*
+ * 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 elemental.dom;
+import elemental.html.HTMLCollection;
+import elemental.util.Mappable;
+import elemental.events.EventListener;
+import elemental.html.ClientRect;
+import elemental.css.CSSStyleDeclaration;
+import elemental.html.ClientRectList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p>Various W3C specifications apply to elements:</p>
+<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
+<span>New in <a rel="custom" href="https://developer.mozilla.org/en/Firefox_3.5_for_developers">Firefox 3.5</a></span>
+</li>
+</ul>
+<p>The articles listed here span the above and include links to the appropriate W3C DOM specification.</p>
+<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>
+<p><code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLHtmlElement">Html</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLHeadElement">Head</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLLinkElement">Link</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLTitleElement">Title</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLMetaElement">Meta</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLBaseElement">Base</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/HTMLIsIndexElement" class="new">IsIndex</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLStyleElement">Style</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLBodyElement">Body</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLFormElement">Form</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLSelectElement">Select</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/HTMLOptGroupElement" class="new">OptGroup</a></code>
+, <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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLTextAreaElement">TextArea</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLButtonElement">Button</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLLabelElement">Label</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLFieldSetElement">FieldSet</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLLegendElement">Legend</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/HTMLUListElement" class="new">UList</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/OList" class="new">OList</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/DList" class="new">DList</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Directory" class="new">Directory</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Menu" class="new">Menu</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/LI" class="new">LI</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Div" class="new">Div</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Paragraph" class="new">Paragraph</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Heading" class="new">Heading</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Quote" class="new">Quote</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Pre" class="new">Pre</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/BR" class="new">BR</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/BaseFont" class="new">BaseFont</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Font" class="new">Font</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/HR" class="new">HR</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Mod" class="new">Mod</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLAnchorElement">Anchor</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Image" class="new">Image</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLObjectElement">Object</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Param" class="new">Param</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Applet" class="new">Applet</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Map" class="new">Map</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Area" class="new">Area</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Script" class="new">Script</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLTableElement">Table</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableCaption" class="new">TableCaption</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableCol" class="new">TableCol</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableSection" class="new">TableSection</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLTableRowElement">TableRow</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/TableCell" class="new">TableCell</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/FrameSet" class="new">FrameSet</a></code>
+, <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/Frame" class="new">Frame</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/HTMLIFrameElement">IFrame</a></code>
+</p>
+ */
+public interface Element extends Node, NodeSelector, ElementTraversal {
+
+ static final int ALLOW_KEYBOARD_INPUT = 1;
+
+ String getAccessKey();
+
+ void setAccessKey(String arg);
+
+
+ /**
+ * The number of child nodes that are elements.
+ */
+ int getChildElementCount();
+
+
+ /**
+ * 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>
+ of the current child elements.
+ */
+ HTMLCollection getChildren();
+
+
+ /**
+ * Token list of class attribute
+ */
+ DOMTokenList getClassList();
+
+
+ /**
+ * Gets/sets the class of the element.
+ */
+ String getClassName();
+
+ void setClassName(String arg);
+
+
+ /**
+ * The inner height of an element.
+ */
+ int getClientHeight();
+
+
+ /**
+ * The width of the left border of an element.
+ */
+ int getClientLeft();
+
+
+ /**
+ * The width of the top border of an element.
+ */
+ int getClientTop();
+
+
+ /**
+ * The inner width of an element.
+ */
+ int getClientWidth();
+
+
+ /**
+ * Gets/sets whether or not the element is editable.
+ */
+ String getContentEditable();
+
+ void setContentEditable(String arg);
+
+
+ /**
+ * Allows access to read and write custom data attributes on the element.
+ */
+ Mappable getDataset();
+
+
+ /**
+ * Gets/sets the directionality of the element.
+ */
+ String getDir();
+
+ void setDir(String arg);
+
+ boolean isDraggable();
+
+ void setDraggable(boolean arg);
+
+
+ /**
+ * The first direct child element of an element, or <code>null</code> if the element has no child elements.
+ */
+ Element getFirstElementChild();
+
+ boolean isHidden();
+
+ void setHidden(boolean arg);
+
+
+ /**
+ * Gets/sets the id of the element.
+ */
+ String getId();
+
+ void setId(String arg);
+
+
+ /**
+ * Gets/sets the markup of the element's content.
+ */
+ String getInnerHTML();
+
+ void setInnerHTML(String arg);
+
+ String getInnerText();
+
+ void setInnerText(String arg);
+
+
+ /**
+ * Indicates whether or not the content of the element can be edited. Read only.
+ */
+ boolean isContentEditable();
+
+
+ /**
+ * Gets/sets the language of an element's attributes, text, and element contents.
+ */
+ String getLang();
+
+ void setLang(String arg);
+
+
+ /**
+ * The last direct child element of an element, or <code>null</code> if the element has no child elements.
+ */
+ Element getLastElementChild();
+
+
+ /**
+ * The element immediately following the given one in the tree, or <code>null</code> if there's no sibling node.
+ */
+ Element getNextElementSibling();
+
+
+ /**
+ * The height of an element, relative to the layout.
+ */
+ int getOffsetHeight();
+
+
+ /**
+ * The distance from this element's left border to its <code>offsetParent</code>'s left border.
+ */
+ int getOffsetLeft();
+
+
+ /**
+ * The element from which all offset calculations are currently computed.
+ */
+ Element getOffsetParent();
+
+
+ /**
+ * The distance from this element's top border to its <code>offsetParent</code>'s top border.
+ */
+ int getOffsetTop();
+
+
+ /**
+ * The width of an element, relative to the layout.
+ */
+ int getOffsetWidth();
+
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+ EventListener getOnbeforecopy();
+
+ void setOnbeforecopy(EventListener arg);
+
+ EventListener getOnbeforecut();
+
+ void setOnbeforecut(EventListener arg);
+
+ EventListener getOnbeforepaste();
+
+ void setOnbeforepaste(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the blur event.
+ */
+ EventListener getOnblur();
+
+ void setOnblur(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the change event.
+ */
+ EventListener getOnchange();
+
+ void setOnchange(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the click event.
+ */
+ EventListener getOnclick();
+
+ void setOnclick(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the contextmenu event.
+ */
+ EventListener getOncontextmenu();
+
+ void setOncontextmenu(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the copy event.
+ */
+ EventListener getOncopy();
+
+ void setOncopy(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the cut event.
+ */
+ EventListener getOncut();
+
+ void setOncut(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the dblclick event.
+ */
+ EventListener getOndblclick();
+
+ void setOndblclick(EventListener arg);
+
+ EventListener getOndrag();
+
+ void setOndrag(EventListener arg);
+
+ EventListener getOndragend();
+
+ void setOndragend(EventListener arg);
+
+ EventListener getOndragenter();
+
+ void setOndragenter(EventListener arg);
+
+ EventListener getOndragleave();
+
+ void setOndragleave(EventListener arg);
+
+ EventListener getOndragover();
+
+ void setOndragover(EventListener arg);
+
+ EventListener getOndragstart();
+
+ void setOndragstart(EventListener arg);
+
+ EventListener getOndrop();
+
+ void setOndrop(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the focus event.
+ */
+ EventListener getOnfocus();
+
+ void setOnfocus(EventListener arg);
+
+ EventListener getOninput();
+
+ void setOninput(EventListener arg);
+
+ EventListener getOninvalid();
+
+ void setOninvalid(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the keydown event.
+ */
+ EventListener getOnkeydown();
+
+ void setOnkeydown(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the keypress event.
+ */
+ EventListener getOnkeypress();
+
+ void setOnkeypress(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the keyup event.
+ */
+ EventListener getOnkeyup();
+
+ void setOnkeyup(EventListener arg);
+
+ EventListener getOnload();
+
+ void setOnload(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the mousedown event.
+ */
+ EventListener getOnmousedown();
+
+ void setOnmousedown(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the mousemove event.
+ */
+ EventListener getOnmousemove();
+
+ void setOnmousemove(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the mouseout event.
+ */
+ EventListener getOnmouseout();
+
+ void setOnmouseout(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the mouseover event.
+ */
+ EventListener getOnmouseover();
+
+ void setOnmouseover(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the mouseup event.
+ */
+ EventListener getOnmouseup();
+
+ void setOnmouseup(EventListener arg);
+
+ EventListener getOnmousewheel();
+
+ void setOnmousewheel(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the paste event.
+ */
+ EventListener getOnpaste();
+
+ void setOnpaste(EventListener arg);
+
+ EventListener getOnreset();
+
+ void setOnreset(EventListener arg);
+
+
+ /**
+ * Returns the event handling code for the scroll event.
+ */
+ EventListener getOnscroll();
+
+ void setOnscroll(EventListener arg);
+
+ EventListener getOnsearch();
+
+ void setOnsearch(EventListener arg);
+
+ EventListener getOnselect();
+
+ void setOnselect(EventListener arg);
+
+ EventListener getOnselectstart();
+
+ void setOnselectstart(EventListener arg);
+
+ EventListener getOnsubmit();
+
+ void setOnsubmit(EventListener arg);
+
+ EventListener getOntouchcancel();
+
+ void setOntouchcancel(EventListener arg);
+
+ EventListener getOntouchend();
+
+ void setOntouchend(EventListener arg);
+
+ EventListener getOntouchmove();
+
+ void setOntouchmove(EventListener arg);
+
+ EventListener getOntouchstart();
+
+ void setOntouchstart(EventListener arg);
+
+ EventListener getOnwebkitfullscreenchange();
+
+ void setOnwebkitfullscreenchange(EventListener arg);
+
+ EventListener getOnwebkitfullscreenerror();
+
+ void setOnwebkitfullscreenerror(EventListener arg);
+
+
+ /**
+ * Gets the markup of the element including its content. When used as a setter, replaces the element with nodes parsed from the given string.
+ */
+ String getOuterHTML();
+
+ void setOuterHTML(String arg);
+
+ String getOuterText();
+
+ void setOuterText(String arg);
+
+
+ /**
+ * The element immediately preceding the given one in the tree, or <code>null</code> if there is no sibling element.
+ */
+ Element getPreviousElementSibling();
+
+
+ /**
+ * The scroll view height of an element.
+ */
+ int getScrollHeight();
+
+
+ /**
+ * Gets/sets the left scroll offset of an element.
+ */
+ int getScrollLeft();
+
+ void setScrollLeft(int arg);
+
+
+ /**
+ * Gets/sets the top scroll offset of an element.
+ */
+ int getScrollTop();
+
+ void setScrollTop(int arg);
+
+
+ /**
+ * The scroll view width of an element.
+ */
+ int getScrollWidth();
+
+
+ /**
+ * 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)
+ */
+ boolean isSpellcheck();
+
+ void setSpellcheck(boolean arg);
+
+
+ /**
+ * An object representing the declarations of an element's style attributes.
+ */
+ CSSStyleDeclaration getStyle();
+
+
+ /**
+ * Gets/sets the position of the element in the tabbing order.
+ */
+ int getTabIndex();
+
+ void setTabIndex(int arg);
+
+
+ /**
+ * The name of the tag for the given element.
+ */
+ String getTagName();
+
+
+ /**
+ * A string that appears in a popup box when mouse is over the element.
+ */
+ String getTitle();
+
+ void setTitle(String arg);
+
+ boolean isTranslate();
+
+ void setTranslate(boolean arg);
+
+ String getWebkitRegionOverflow();
+
+ String getWebkitdropzone();
+
+ void setWebkitdropzone(String arg);
+
+
+ /**
+ * Removes keyboard focus from the current element.
+ */
+ void blur();
+
+
+ /**
+ * Gives keyboard focus to the current element.
+ */
+ void focus();
+
+
+ /**
+ * Retrieve the value of the named attribute from the current node.
+ */
+ String getAttribute(String name);
+
+
+ /**
+ * Retrieve the value of the attribute with the specified name and namespace, from the current node.
+ */
+ String getAttributeNS(String namespaceURI, String localName);
+
+
+ /**
+ * Retrieve the node representation of the named attribute from the current node.
+ */
+ Attr getAttributeNode(String name);
+
+
+ /**
+ * Retrieve the node representation of the attribute with the specified name and namespace, from the current node.
+ */
+ Attr getAttributeNodeNS(String namespaceURI, String localName);
+
+ ClientRect getBoundingClientRect();
+
+ ClientRectList getClientRects();
+
+ NodeList getElementsByClassName(String name);
+
+
+ /**
+ * Retrieve a set of all descendant elements, of a particular tag name, from the current element.
+ */
+ NodeList getElementsByTagName(String name);
+
+
+ /**
+ * Retrieve a set of all descendant elements, of a particular tag name and namespace, from the current element.
+ */
+ NodeList getElementsByTagNameNS(String namespaceURI, String localName);
+
+
+ /**
+ * Check if the element has the specified attribute, or not.
+ */
+ boolean hasAttribute(String name);
+
+
+ /**
+ * Check if the element has the specified attribute, in the specified namespace, or not.
+ */
+ boolean hasAttributeNS(String namespaceURI, String localName);
+
+ Element querySelector(String selectors);
+
+ NodeList querySelectorAll(String selectors);
+
+
+ /**
+ * Remove the named attribute from the current node.
+ */
+ void removeAttribute(String name);
+
+
+ /**
+ * Remove the attribute with the specified name and namespace, from the current node.
+ */
+ void removeAttributeNS(String namespaceURI, String localName);
+
+
+ /**
+ * Remove the node representation of the named attribute from the current node.
+ */
+ Attr removeAttributeNode(Attr oldAttr);
+
+ void scrollByLines(int lines);
+
+ void scrollByPages(int pages);
+
+
+ /**
+ * Scrolls the page until the element gets into the view.
+ */
+ void scrollIntoView();
+
+
+ /**
+ * Scrolls the page until the element gets into the view.
+ */
+ void scrollIntoView(boolean alignWithTop);
+
+ void scrollIntoViewIfNeeded();
+
+ void scrollIntoViewIfNeeded(boolean centerIfNeeded);
+
+
+ /**
+ * Set the value of the named attribute from the current node.
+ */
+ void setAttribute(String name, String value);
+
+
+ /**
+ * Set the value of the attribute with the specified name and namespace, from the current node.
+ */
+ void setAttributeNS(String namespaceURI, String qualifiedName, String value);
+
+
+ /**
+ * Set the node representation of the named attribute from the current node.
+ */
+ Attr setAttributeNode(Attr newAttr);
+
+
+ /**
+ * Set the node representation of the attribute with the specified name and namespace, from the current node.
+ */
+ Attr setAttributeNodeNS(Attr newAttr);
+
+
+ /**
+ * Returns whether or not the element would be selected by the specified selector string.
+ */
+ boolean webkitMatchesSelector(String selectors);
+
+
+ /**
+ * Asynchronously asks the browser to make the element full-screen.
+ */
+ void webkitRequestFullScreen(int flags);
+
+ void webkitRequestFullscreen();
+
+
+ /**
+ * Simulates a click on the current element.
+ */
+ void click();
+
+ Element insertAdjacentElement(String where, Element element);
+
+
+ /**
+ * Parses the text as HTML or XML and inserts the resulting nodes into the tree in the position given.
+ */
+ void insertAdjacentHTML(String where, String html);
+
+ void insertAdjacentText(String where, String text);
+}
diff --git a/elemental/src/elemental/dom/ElementTraversal.java b/elemental/src/elemental/dom/ElementTraversal.java
new file mode 100644
index 0000000..4e5037f
--- /dev/null
+++ b/elemental/src/elemental/dom/ElementTraversal.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ElementTraversal {
+
+ int getChildElementCount();
+
+ Element getFirstElementChild();
+
+ Element getLastElementChild();
+
+ Element getNextElementSibling();
+
+ Element getPreviousElementSibling();
+}
diff --git a/elemental/src/elemental/dom/ElementalMixinBase.java b/elemental/src/elemental/dom/ElementalMixinBase.java
new file mode 100644
index 0000000..7436fbf
--- /dev/null
+++ b/elemental/src/elemental/dom/ElementalMixinBase.java
@@ -0,0 +1,135 @@
+/*
+ * 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 elemental.dom;
+import elemental.svg.SVGAnimatedRect;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGAnimatedTransformList;
+import elemental.svg.SVGAnimatedBoolean;
+import elemental.svg.SVGStringList;
+import elemental.svg.SVGRect;
+import elemental.css.CSSValue;
+import elemental.svg.SVGAnimatedLength;
+import elemental.events.EventListener;
+import elemental.svg.SVGMatrix;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedPreserveAspectRatio;
+import elemental.css.CSSStyleDeclaration;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ElementalMixinBase {
+
+ int getChildElementCount();
+
+ SVGAnimatedString getAnimatedClassName();
+
+ SVGAnimatedBoolean getExternalResourcesRequired();
+
+ SVGElement getFarthestViewportElement();
+
+ Element getFirstElementChild();
+
+ SVGAnimatedLength getAnimatedHeight();
+
+ SVGAnimatedString getAnimatedHref();
+
+ Element getLastElementChild();
+
+ SVGElement getNearestViewportElement();
+
+ Element getNextElementSibling();
+
+ SVGAnimatedPreserveAspectRatio getPreserveAspectRatio();
+
+ Element getPreviousElementSibling();
+
+ SVGStringList getRequiredExtensions();
+
+ SVGStringList getRequiredFeatures();
+
+ SVGAnimatedString getAnimatedResult();
+
+ CSSStyleDeclaration getSvgStyle();
+
+ SVGStringList getSystemLanguage();
+
+ SVGAnimatedTransformList getAnimatedTransform();
+
+ SVGAnimatedRect getViewBox();
+
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getAnimatedX();
+
+ String getXmllang();
+
+ void setXmllang(String arg);
+
+ String getXmlspace();
+
+ void setXmlspace(String arg);
+
+ SVGAnimatedLength getAnimatedY();
+
+ int getZoomAndPan();
+
+ void setZoomAndPan(int arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event event);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ SVGRect getBBox();
+
+ SVGMatrix getCTM();
+
+ SVGMatrix getScreenCTM();
+
+ SVGMatrix getTransformToElement(SVGElement element);
+
+ void beginElement();
+
+ void beginElementAt(float offset);
+
+ void endElement();
+
+ void endElementAt(float offset);
+
+ boolean hasExtension(String extension);
+
+ Element querySelector(String selectors);
+
+ NodeList querySelectorAll(String selectors);
+
+ CSSValue getPresentationAttribute(String name);
+}
diff --git a/elemental/src/elemental/dom/Entity.java b/elemental/src/elemental/dom/Entity.java
new file mode 100644
index 0000000..2e0a358
--- /dev/null
+++ b/elemental/src/elemental/dom/Entity.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p><span>NOTE: This is not implemented in Mozilla</span></p>
+<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>
+ */
+public interface Entity extends Node {
+
+ String getNotationName();
+
+ String getPublicId();
+
+ String getSystemId();
+}
diff --git a/elemental/src/elemental/dom/EntityReference.java b/elemental/src/elemental/dom/EntityReference.java
new file mode 100644
index 0000000..661fc40
--- /dev/null
+++ b/elemental/src/elemental/dom/EntityReference.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p><span>NOTE: This is not implemented in Mozilla</span></p>
+<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>
+ */
+public interface EntityReference extends Node {
+}
diff --git a/elemental/src/elemental/dom/Geolocation.java b/elemental/src/elemental/dom/Geolocation.java
new file mode 100644
index 0000000..af5230d
--- /dev/null
+++ b/elemental/src/elemental/dom/Geolocation.java
@@ -0,0 +1,101 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface Geolocation {
+
+
+ /**
+ * When the <code>clearWatch()</code> method is called, the <code>watch()</code> process stops calling for new position identifiers and cease invoking callbacks.
+ */
+ void clearWatch(int watchId);
+
+
+ /**
+ * <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>
+
+<div id="section_8"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+<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>
+</dl>
+<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>
+</dl>
+</div>
+ */
+ void getCurrentPosition(PositionCallback successCallback);
+
+
+ /**
+ * <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>
+
+<div id="section_8"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+<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>
+</dl>
+<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>
+</dl>
+</div>
+ */
+ void getCurrentPosition(PositionCallback successCallback, PositionErrorCallback errorCallback);
+
+
+ /**
+ * <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>
+
+<div id="section_10"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+<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>
+</dl>
+<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>
+</dl>
+</div><div id="section_11"><span id="Return_value"></span><h6 class="editable">Return value</h6>
+<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>
+</div>
+ */
+ int watchPosition(PositionCallback successCallback);
+
+
+ /**
+ * <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>
+
+<div id="section_10"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+<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>
+</dl>
+<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>
+</dl>
+</div><div id="section_11"><span id="Return_value"></span><h6 class="editable">Return value</h6>
+<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>
+</div>
+ */
+ int watchPosition(PositionCallback successCallback, PositionErrorCallback errorCallback);
+}
diff --git a/elemental/src/elemental/dom/Geoposition.java b/elemental/src/elemental/dom/Geoposition.java
new file mode 100644
index 0000000..3882f8c
--- /dev/null
+++ b/elemental/src/elemental/dom/Geoposition.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface Geoposition {
+
+ Coordinates getCoords();
+
+ double getTimestamp();
+}
diff --git a/elemental/src/elemental/dom/LocalMediaStream.java b/elemental/src/elemental/dom/LocalMediaStream.java
new file mode 100644
index 0000000..c94a5a5
--- /dev/null
+++ b/elemental/src/elemental/dom/LocalMediaStream.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface LocalMediaStream extends MediaStream {
+
+ void stop();
+}
diff --git a/elemental/src/elemental/dom/MediaStream.java b/elemental/src/elemental/dom/MediaStream.java
new file mode 100644
index 0000000..95f6e9c
--- /dev/null
+++ b/elemental/src/elemental/dom/MediaStream.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.dom;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaStream extends EventTarget {
+
+ static final int ENDED = 2;
+
+ static final int LIVE = 1;
+
+ MediaStreamTrackList getAudioTracks();
+
+ String getLabel();
+
+ EventListener getOnended();
+
+ void setOnended(EventListener arg);
+
+ int getReadyState();
+
+ MediaStreamTrackList getVideoTracks();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event event);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/dom/MediaStreamList.java b/elemental/src/elemental/dom/MediaStreamList.java
new file mode 100644
index 0000000..863a9e5
--- /dev/null
+++ b/elemental/src/elemental/dom/MediaStreamList.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaStreamList {
+
+ int getLength();
+
+ MediaStream item(int index);
+}
diff --git a/elemental/src/elemental/dom/MediaStreamTrack.java b/elemental/src/elemental/dom/MediaStreamTrack.java
new file mode 100644
index 0000000..bc2df1f
--- /dev/null
+++ b/elemental/src/elemental/dom/MediaStreamTrack.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaStreamTrack {
+
+ boolean isEnabled();
+
+ void setEnabled(boolean arg);
+
+ String getKind();
+
+ String getLabel();
+}
diff --git a/elemental/src/elemental/dom/MediaStreamTrackList.java b/elemental/src/elemental/dom/MediaStreamTrackList.java
new file mode 100644
index 0000000..b789239
--- /dev/null
+++ b/elemental/src/elemental/dom/MediaStreamTrackList.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaStreamTrackList {
+
+ int getLength();
+
+ MediaStreamTrack item(int index);
+}
diff --git a/elemental/src/elemental/dom/MutationCallback.java b/elemental/src/elemental/dom/MutationCallback.java
new file mode 100644
index 0000000..47eae6d
--- /dev/null
+++ b/elemental/src/elemental/dom/MutationCallback.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MutationCallback {
+}
diff --git a/elemental/src/elemental/dom/MutationRecord.java b/elemental/src/elemental/dom/MutationRecord.java
new file mode 100644
index 0000000..0cb58c7
--- /dev/null
+++ b/elemental/src/elemental/dom/MutationRecord.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MutationRecord {
+
+ NodeList getAddedNodes();
+
+ String getAttributeName();
+
+ String getAttributeNamespace();
+
+ Node getNextSibling();
+
+ String getOldValue();
+
+ Node getPreviousSibling();
+
+ NodeList getRemovedNodes();
+
+ Node getTarget();
+
+ String getType();
+}
diff --git a/elemental/src/elemental/dom/NamedNodeMap.java b/elemental/src/elemental/dom/NamedNodeMap.java
new file mode 100644
index 0000000..15fd651
--- /dev/null
+++ b/elemental/src/elemental/dom/NamedNodeMap.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface NamedNodeMap extends Indexable {
+
+ int getLength();
+
+ Node getNamedItem(String name);
+
+ Node getNamedItemNS(String namespaceURI, String localName);
+
+ Node item(int index);
+
+ Node removeNamedItem(String name);
+
+ Node removeNamedItemNS(String namespaceURI, String localName);
+
+ Node setNamedItem(Node node);
+
+ Node setNamedItemNS(Node node);
+}
diff --git a/elemental/src/elemental/dom/Node.java b/elemental/src/elemental/dom/Node.java
new file mode 100644
index 0000000..1ca8412
--- /dev/null
+++ b/elemental/src/elemental/dom/Node.java
@@ -0,0 +1,164 @@
+/*
+ * 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 elemental.dom;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Element">Element</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Attr">Attr</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/CharacterData">CharacterData</a></code>
+ (which <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Text">Text</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Comment">Comment</a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/CDATASection">CDATASection</a></code>
+ inherit), <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/ProcessingInstruction">ProcessingInstruction</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/DocumentFragment">DocumentFragment</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/DocumentType">DocumentType</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Notation">Notation</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Entity">Entity</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/EntityReference">EntityReference</a></code>
+ */
+public interface Node extends EventTarget {
+
+ static final int ATTRIBUTE_NODE = 2;
+
+ static final int CDATA_SECTION_NODE = 4;
+
+ static final int COMMENT_NODE = 8;
+
+ static final int DOCUMENT_FRAGMENT_NODE = 11;
+
+ static final int DOCUMENT_NODE = 9;
+
+ static final int DOCUMENT_POSITION_CONTAINED_BY = 0x10;
+
+ static final int DOCUMENT_POSITION_CONTAINS = 0x08;
+
+ static final int DOCUMENT_POSITION_DISCONNECTED = 0x01;
+
+ static final int DOCUMENT_POSITION_FOLLOWING = 0x04;
+
+ static final int DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
+
+ static final int DOCUMENT_POSITION_PRECEDING = 0x02;
+
+ static final int DOCUMENT_TYPE_NODE = 10;
+
+ static final int ELEMENT_NODE = 1;
+
+ static final int ENTITY_NODE = 6;
+
+ static final int ENTITY_REFERENCE_NODE = 5;
+
+ static final int NOTATION_NODE = 12;
+
+ static final int PROCESSING_INSTRUCTION_NODE = 7;
+
+ static final int TEXT_NODE = 3;
+
+ NamedNodeMap getAttributes();
+
+ String getBaseURI();
+
+ NodeList getChildNodes();
+
+ Node getFirstChild();
+
+ Node getLastChild();
+
+ String getLocalName();
+
+ String getNamespaceURI();
+
+ Node getNextSibling();
+
+ String getNodeName();
+
+ int getNodeType();
+
+ String getNodeValue();
+
+ void setNodeValue(String arg);
+
+ Document getOwnerDocument();
+
+ Element getParentElement();
+
+ Node getParentNode();
+
+ String getPrefix();
+
+ void setPrefix(String arg);
+
+ Node getPreviousSibling();
+
+ String getTextContent();
+
+ void setTextContent(String arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ Node appendChild(Node newChild);
+
+ Node cloneNode(boolean deep);
+
+ int compareDocumentPosition(Node other);
+
+ boolean contains(Node other);
+
+ boolean dispatchEvent(Event event);
+
+ boolean hasAttributes();
+
+ boolean hasChildNodes();
+
+ Node insertBefore(Node newChild, Node refChild);
+
+ boolean isDefaultNamespace(String namespaceURI);
+
+ boolean isEqualNode(Node other);
+
+ boolean isSameNode(Node other);
+
+ boolean isSupported(String feature, String version);
+
+ String lookupNamespaceURI(String prefix);
+
+ String lookupPrefix(String namespaceURI);
+
+ void normalize();
+
+ Node removeChild(Node oldChild);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ Node replaceChild(Node newChild, Node oldChild);
+}
diff --git a/elemental/src/elemental/dom/NodeList.java b/elemental/src/elemental/dom/NodeList.java
new file mode 100644
index 0000000..b97f942
--- /dev/null
+++ b/elemental/src/elemental/dom/NodeList.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+, <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>
+, <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.
+ */
+public interface NodeList extends Indexable {
+
+
+ /**
+ * Reflects the number of elements in the NodeList.
+ */
+ int getLength();
+
+
+ /**
+ * Returns an item in the list by its index, or <code>null</code> if out-of-bounds. Equivalent to nodeList[idx]
+ */
+ Node item(int index);
+}
diff --git a/elemental/src/elemental/dom/NodeSelector.java b/elemental/src/elemental/dom/NodeSelector.java
new file mode 100644
index 0000000..984b731
--- /dev/null
+++ b/elemental/src/elemental/dom/NodeSelector.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface NodeSelector {
+
+ Element querySelector(String selectors);
+
+ NodeList querySelectorAll(String selectors);
+}
diff --git a/elemental/src/elemental/dom/Notation.java b/elemental/src/elemental/dom/Notation.java
new file mode 100644
index 0000000..710efe2
--- /dev/null
+++ b/elemental/src/elemental/dom/Notation.java
@@ -0,0 +1,36 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p><span>NOTE: This is not implemented in Mozilla</span></p>
+<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>
+ */
+public interface Notation extends Node {
+
+ String getPublicId();
+
+ String getSystemId();
+}
diff --git a/elemental/src/elemental/dom/PointerLock.java b/elemental/src/elemental/dom/PointerLock.java
new file mode 100644
index 0000000..69f5c67
--- /dev/null
+++ b/elemental/src/elemental/dom/PointerLock.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.dom;
+import elemental.html.VoidCallback;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface PointerLock {
+
+ boolean isLocked();
+
+ void lock(Element target);
+
+ void lock(Element target, VoidCallback successCallback);
+
+ void lock(Element target, VoidCallback successCallback, VoidCallback failureCallback);
+
+ void unlock();
+}
diff --git a/elemental/src/elemental/dom/PositionCallback.java b/elemental/src/elemental/dom/PositionCallback.java
new file mode 100644
index 0000000..49816b9
--- /dev/null
+++ b/elemental/src/elemental/dom/PositionCallback.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface PositionCallback {
+ boolean onPositionCallback(Geoposition position);
+}
diff --git a/elemental/src/elemental/dom/PositionError.java b/elemental/src/elemental/dom/PositionError.java
new file mode 100644
index 0000000..952b186
--- /dev/null
+++ b/elemental/src/elemental/dom/PositionError.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface PositionError {
+
+ static final int PERMISSION_DENIED = 1;
+
+ static final int POSITION_UNAVAILABLE = 2;
+
+ static final int TIMEOUT = 3;
+
+ int getCode();
+
+ String getMessage();
+}
diff --git a/elemental/src/elemental/dom/PositionErrorCallback.java b/elemental/src/elemental/dom/PositionErrorCallback.java
new file mode 100644
index 0000000..801a63f
--- /dev/null
+++ b/elemental/src/elemental/dom/PositionErrorCallback.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface PositionErrorCallback {
+ boolean onPositionErrorCallback(PositionError error);
+}
diff --git a/elemental/src/elemental/dom/ProcessingInstruction.java b/elemental/src/elemental/dom/ProcessingInstruction.java
new file mode 100644
index 0000000..5e007c4
--- /dev/null
+++ b/elemental/src/elemental/dom/ProcessingInstruction.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.dom;
+import elemental.stylesheets.StyleSheet;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<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>
+<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>
+ */
+public interface ProcessingInstruction extends Node {
+
+ String getData();
+
+ void setData(String arg);
+
+ StyleSheet getSheet();
+
+ String getTarget();
+}
diff --git a/elemental/src/elemental/dom/RequestAnimationFrameCallback.java b/elemental/src/elemental/dom/RequestAnimationFrameCallback.java
new file mode 100644
index 0000000..3ee210e
--- /dev/null
+++ b/elemental/src/elemental/dom/RequestAnimationFrameCallback.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface RequestAnimationFrameCallback {
+ boolean onRequestAnimationFrameCallback(double time);
+}
diff --git a/elemental/src/elemental/dom/ScriptProfile.java b/elemental/src/elemental/dom/ScriptProfile.java
new file mode 100644
index 0000000..6394119
--- /dev/null
+++ b/elemental/src/elemental/dom/ScriptProfile.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ScriptProfile {
+
+ ScriptProfileNode getHead();
+
+ String getTitle();
+
+ int getUid();
+}
diff --git a/elemental/src/elemental/dom/ScriptProfileNode.java b/elemental/src/elemental/dom/ScriptProfileNode.java
new file mode 100644
index 0000000..811ec07
--- /dev/null
+++ b/elemental/src/elemental/dom/ScriptProfileNode.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ScriptProfileNode {
+
+ int getCallUID();
+
+ Indexable getChildren();
+
+ String getFunctionName();
+
+ int getLineNumber();
+
+ int getNumberOfCalls();
+
+ double getSelfTime();
+
+ double getTotalTime();
+
+ String getUrl();
+
+ boolean isVisible();
+}
diff --git a/elemental/src/elemental/dom/ShadowRoot.java b/elemental/src/elemental/dom/ShadowRoot.java
new file mode 100644
index 0000000..c134955
--- /dev/null
+++ b/elemental/src/elemental/dom/ShadowRoot.java
@@ -0,0 +1,54 @@
+/*
+ * 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 elemental.dom;
+import elemental.html.Selection;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ShadowRoot extends DocumentFragment {
+
+ Element getActiveElement();
+
+ boolean isApplyAuthorStyles();
+
+ void setApplyAuthorStyles(boolean arg);
+
+ Element getHost();
+
+ String getInnerHTML();
+
+ void setInnerHTML(String arg);
+
+ Element getElementById(String elementId);
+
+ NodeList getElementsByClassName(String className);
+
+ NodeList getElementsByTagName(String tagName);
+
+ NodeList getElementsByTagNameNS(String namespaceURI, String localName);
+
+ Selection getSelection();
+}
diff --git a/elemental/src/elemental/dom/SpeechGrammar.java b/elemental/src/elemental/dom/SpeechGrammar.java
new file mode 100644
index 0000000..1ac90b1
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechGrammar.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechGrammar {
+
+ String getSrc();
+
+ void setSrc(String arg);
+
+ float getWeight();
+
+ void setWeight(float arg);
+}
diff --git a/elemental/src/elemental/dom/SpeechGrammarList.java b/elemental/src/elemental/dom/SpeechGrammarList.java
new file mode 100644
index 0000000..19c616b
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechGrammarList.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechGrammarList {
+
+ int getLength();
+
+ void addFromString(String string);
+
+ void addFromString(String string, float weight);
+
+ void addFromUri(String src);
+
+ void addFromUri(String src, float weight);
+
+ SpeechGrammar item(int index);
+}
diff --git a/elemental/src/elemental/dom/SpeechInputEvent.java b/elemental/src/elemental/dom/SpeechInputEvent.java
new file mode 100644
index 0000000..002923f
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechInputEvent.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.dom;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechInputEvent extends Event {
+
+ SpeechInputResultList getResults();
+}
diff --git a/elemental/src/elemental/dom/SpeechInputResult.java b/elemental/src/elemental/dom/SpeechInputResult.java
new file mode 100644
index 0000000..16c3fa0
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechInputResult.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechInputResult {
+
+ float getConfidence();
+
+ String getUtterance();
+}
diff --git a/elemental/src/elemental/dom/SpeechInputResultList.java b/elemental/src/elemental/dom/SpeechInputResultList.java
new file mode 100644
index 0000000..0a37645
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechInputResultList.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechInputResultList {
+
+ int getLength();
+
+ SpeechInputResult item(int index);
+}
diff --git a/elemental/src/elemental/dom/SpeechRecognition.java b/elemental/src/elemental/dom/SpeechRecognition.java
new file mode 100644
index 0000000..1b59ce2
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechRecognition.java
@@ -0,0 +1,110 @@
+/*
+ * 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 elemental.dom;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechRecognition extends EventTarget {
+
+ boolean isContinuous();
+
+ void setContinuous(boolean arg);
+
+ SpeechGrammarList getGrammars();
+
+ void setGrammars(SpeechGrammarList arg);
+
+ String getLang();
+
+ void setLang(String arg);
+
+ EventListener getOnaudioend();
+
+ void setOnaudioend(EventListener arg);
+
+ EventListener getOnaudiostart();
+
+ void setOnaudiostart(EventListener arg);
+
+ EventListener getOnend();
+
+ void setOnend(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnnomatch();
+
+ void setOnnomatch(EventListener arg);
+
+ EventListener getOnresult();
+
+ void setOnresult(EventListener arg);
+
+ EventListener getOnresultdeleted();
+
+ void setOnresultdeleted(EventListener arg);
+
+ EventListener getOnsoundend();
+
+ void setOnsoundend(EventListener arg);
+
+ EventListener getOnsoundstart();
+
+ void setOnsoundstart(EventListener arg);
+
+ EventListener getOnspeechend();
+
+ void setOnspeechend(EventListener arg);
+
+ EventListener getOnspeechstart();
+
+ void setOnspeechstart(EventListener arg);
+
+ EventListener getOnstart();
+
+ void setOnstart(EventListener arg);
+
+ void abort();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ void start();
+
+ void stop();
+}
diff --git a/elemental/src/elemental/dom/SpeechRecognitionAlternative.java b/elemental/src/elemental/dom/SpeechRecognitionAlternative.java
new file mode 100644
index 0000000..a85457c
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechRecognitionAlternative.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechRecognitionAlternative {
+
+ float getConfidence();
+
+ String getTranscript();
+}
diff --git a/elemental/src/elemental/dom/SpeechRecognitionError.java b/elemental/src/elemental/dom/SpeechRecognitionError.java
new file mode 100644
index 0000000..650d6c2
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechRecognitionError.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechRecognitionError {
+
+ static final int ABORTED = 2;
+
+ static final int AUDIO_CAPTURE = 3;
+
+ static final int BAD_GRAMMAR = 7;
+
+ static final int LANGUAGE_NOT_SUPPORTED = 8;
+
+ static final int NETWORK = 4;
+
+ static final int NOT_ALLOWED = 5;
+
+ static final int NO_SPEECH = 1;
+
+ static final int OTHER = 0;
+
+ static final int SERVICE_NOT_ALLOWED = 6;
+
+ int getCode();
+
+ String getMessage();
+}
diff --git a/elemental/src/elemental/dom/SpeechRecognitionResult.java b/elemental/src/elemental/dom/SpeechRecognitionResult.java
new file mode 100644
index 0000000..a3927a5
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechRecognitionResult.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechRecognitionResult {
+
+ boolean isFinalValue();
+
+ int getLength();
+
+ SpeechRecognitionAlternative item(int index);
+}
diff --git a/elemental/src/elemental/dom/SpeechRecognitionResultList.java b/elemental/src/elemental/dom/SpeechRecognitionResultList.java
new file mode 100644
index 0000000..b71f755
--- /dev/null
+++ b/elemental/src/elemental/dom/SpeechRecognitionResultList.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechRecognitionResultList {
+
+ int getLength();
+
+ SpeechRecognitionResult item(int index);
+}
diff --git a/elemental/src/elemental/dom/StringCallback.java b/elemental/src/elemental/dom/StringCallback.java
new file mode 100644
index 0000000..f7af40d
--- /dev/null
+++ b/elemental/src/elemental/dom/StringCallback.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface StringCallback {
+ boolean onStringCallback(String data);
+}
diff --git a/elemental/src/elemental/dom/Text.java b/elemental/src/elemental/dom/Text.java
new file mode 100644
index 0000000..0020830
--- /dev/null
+++ b/elemental/src/elemental/dom/Text.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<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>
+ */
+public interface Text extends CharacterData {
+
+
+ /**
+ * Returns all text of all Text nodes logically adjacent to this node, concatenated in document order.
+ */
+ String getWholeText();
+
+
+ /**
+ * 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>
+ */
+ Text replaceWholeText(String content);
+
+
+ /**
+ * Breaks the node into two nodes at a specified offset.
+ */
+ Text splitText(int offset);
+}
diff --git a/elemental/src/elemental/dom/TimeoutHandler.java b/elemental/src/elemental/dom/TimeoutHandler.java
new file mode 100644
index 0000000..e91f6df
--- /dev/null
+++ b/elemental/src/elemental/dom/TimeoutHandler.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface TimeoutHandler {
+ void onTimeoutHandler();
+}
diff --git a/elemental/src/elemental/dom/WebKitMutationObserver.java b/elemental/src/elemental/dom/WebKitMutationObserver.java
new file mode 100644
index 0000000..04748af
--- /dev/null
+++ b/elemental/src/elemental/dom/WebKitMutationObserver.java
@@ -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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebKitMutationObserver {
+
+ void disconnect();
+
+ Indexable takeRecords();
+}
diff --git a/elemental/src/elemental/dom/WebKitNamedFlow.java b/elemental/src/elemental/dom/WebKitNamedFlow.java
new file mode 100644
index 0000000..6e6418c
--- /dev/null
+++ b/elemental/src/elemental/dom/WebKitNamedFlow.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.dom;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebKitNamedFlow {
+
+ NodeList getContentNodes();
+
+ String getName();
+
+ boolean isOverset();
+
+ NodeList getRegionsByContentNode(Node contentNode);
+}
diff --git a/elemental/src/elemental/events/AnimationEvent.java b/elemental/src/elemental/events/AnimationEvent.java
new file mode 100644
index 0000000..f242c54
--- /dev/null
+++ b/elemental/src/elemental/events/AnimationEvent.java
@@ -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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AnimationEvent extends Event {
+
+ String getAnimationName();
+
+ double getElapsedTime();
+}
diff --git a/elemental/src/elemental/events/BeforeLoadEvent.java b/elemental/src/elemental/events/BeforeLoadEvent.java
new file mode 100644
index 0000000..2361f7e
--- /dev/null
+++ b/elemental/src/elemental/events/BeforeLoadEvent.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface BeforeLoadEvent extends Event {
+
+ String getUrl();
+}
diff --git a/elemental/src/elemental/events/CloseEvent.java b/elemental/src/elemental/events/CloseEvent.java
new file mode 100644
index 0000000..1314523
--- /dev/null
+++ b/elemental/src/elemental/events/CloseEvent.java
@@ -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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface CloseEvent extends Event {
+
+
+ /**
+ * 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.
+ */
+ int getCode();
+
+
+ /**
+ * A string indicating the reason the server closed the connection. This is specific to the particular server and sub-protocol.
+ */
+ String getReason();
+
+
+ /**
+ * Indicates whether or not the connection was cleanly closed.
+ */
+ boolean isWasClean();
+}
diff --git a/elemental/src/elemental/events/CompositionEvent.java b/elemental/src/elemental/events/CompositionEvent.java
new file mode 100644
index 0000000..e270204
--- /dev/null
+++ b/elemental/src/elemental/events/CompositionEvent.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.events;
+import elemental.html.Window;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><div>
+
+<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)
+"></div><div title="Last changed in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+"></div></div>
+<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>
+<span>Last changed in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+</span></div></div>
+<p></p>
+<p>The DOM <code>CompositionEvent</code> represents events that occur due to the user indirectly entering text.</p>
+ */
+public interface CompositionEvent extends UIEvent {
+
+
+ /**
+ * <p>For <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/DOM_event_reference/compositionstart">compositionstart</a></code>
+ 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>
+, 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>
+ events, this is the string as committed to the editor.</p> <p><strong>Read only</strong>.</p>
+ */
+ String getData();
+
+
+ /**
+ * <p>Initializes the attributes of a composition event.</p>
+
+<div id="section_5"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void initCompositionEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Window viewArg, String dataArg);
+}
diff --git a/elemental/src/elemental/events/CustomEvent.java b/elemental/src/elemental/events/CustomEvent.java
new file mode 100644
index 0000000..9f811d1
--- /dev/null
+++ b/elemental/src/elemental/events/CustomEvent.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ interface, which extends the <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMEvent">nsIDOMEvent</a></code>
+ interface.
+ */
+public interface CustomEvent extends Event {
+
+
+ /**
+ * The data passed when initializing the event.
+ */
+ Object getDetail();
+
+
+ /**
+ * <p>Initializes the event in a manner analogous to the similarly-named method in the DOM Events interfaces.</p>
+
+<div id="section_5"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void initCustomEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Object detailArg);
+}
diff --git a/elemental/src/elemental/events/ErrorEvent.java b/elemental/src/elemental/events/ErrorEvent.java
new file mode 100644
index 0000000..bff90fe
--- /dev/null
+++ b/elemental/src/elemental/events/ErrorEvent.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ErrorEvent extends Event {
+
+ String getFilename();
+
+ int getLineno();
+
+ String getMessage();
+}
diff --git a/elemental/src/elemental/events/Event.java b/elemental/src/elemental/events/Event.java
new file mode 100644
index 0000000..8d418b2
--- /dev/null
+++ b/elemental/src/elemental/events/Event.java
@@ -0,0 +1,177 @@
+/*
+ * 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 elemental.events;
+import elemental.dom.Clipboard;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface Event {
+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";
+
+
+ static final int AT_TARGET = 2;
+
+ static final int BUBBLING_PHASE = 3;
+
+ static final int CAPTURING_PHASE = 1;
+
+ static final int NONE = 0;
+
+
+ /**
+ * A boolean indicating whether the event bubbles up through the DOM or not.
+ */
+ boolean isBubbles();
+
+
+ /**
+ * A boolean indicating whether the bubbling of the event has been canceled or not.
+ */
+ boolean isCancelBubble();
+
+ void setCancelBubble(boolean arg);
+
+
+ /**
+ * A boolean indicating whether the event is cancelable.
+ */
+ boolean isCancelable();
+
+ Clipboard getClipboardData();
+
+
+ /**
+ * A reference to the currently registered target for the event.
+ */
+ EventTarget getCurrentTarget();
+
+
+ /**
+ * Indicates whether or not <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/event.preventDefault">event.preventDefault()</a></code>
+ has been called on the event.
+ */
+ boolean isDefaultPrevented();
+
+
+ /**
+ * Indicates which phase of the event flow is being processed.
+ */
+ int getEventPhase();
+
+ boolean isReturnValue();
+
+ void setReturnValue(boolean arg);
+
+ EventTarget getSrcElement();
+
+
+ /**
+ * A reference to the target to which the event was originally dispatched.
+ */
+ EventTarget getTarget();
+
+
+ /**
+ * The time that the event was created.
+ */
+ double getTimeStamp();
+
+
+ /**
+ * The name of the event (case-insensitive).
+ */
+ String getType();
+
+
+ /**
+ * Initializes the value of an Event created through the <code>DocumentEvent</code> interface.
+ */
+ void initEvent(String eventTypeArg, boolean canBubbleArg, boolean cancelableArg);
+
+
+ /**
+ * Cancels the event (if it is cancelable).
+ */
+ void preventDefault();
+
+
+ /**
+ * 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)
+ */
+ void stopImmediatePropagation();
+
+
+ /**
+ * Stops the propagation of events further along in the DOM.
+ */
+ void stopPropagation();
+}
diff --git a/elemental/src/elemental/events/EventException.java b/elemental/src/elemental/events/EventException.java
new file mode 100644
index 0000000..ab2ab7b
--- /dev/null
+++ b/elemental/src/elemental/events/EventException.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface EventException {
+
+ static final int DISPATCH_REQUEST_ERR = 1;
+
+ static final int UNSPECIFIED_EVENT_TYPE_ERR = 0;
+
+ int getCode();
+
+ String getMessage();
+
+ String getName();
+}
diff --git a/elemental/src/elemental/events/EventListener.java b/elemental/src/elemental/events/EventListener.java
new file mode 100644
index 0000000..abe150f
--- /dev/null
+++ b/elemental/src/elemental/events/EventListener.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface EventListener {
+
+ void handleEvent(Event evt);
+}
diff --git a/elemental/src/elemental/events/EventRemover.java b/elemental/src/elemental/events/EventRemover.java
new file mode 100644
index 0000000..8e32c33
--- /dev/null
+++ b/elemental/src/elemental/events/EventRemover.java
@@ -0,0 +1,20 @@
+/*
+ * 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 elemental.events;
+
+public interface EventRemover {
+ void remove();
+}
diff --git a/elemental/src/elemental/events/EventTarget.java b/elemental/src/elemental/events/EventTarget.java
new file mode 100644
index 0000000..25d4f9a
--- /dev/null
+++ b/elemental/src/elemental/events/EventTarget.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+
+ */
+public interface EventTarget {
+
+
+ /**
+ *
+Register an event handler of a specific event type on the <code>EventTarget</code>.
+ */
+ EventRemover addEventListener(String type, EventListener listener);
+
+
+ /**
+ *
+Register an event handler of a specific event type on the <code>EventTarget</code>.
+ */
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+
+ /**
+ *
+Dispatch an event to this <code>EventTarget</code>.
+ */
+ boolean dispatchEvent(Event event);
+
+
+ /**
+ *
+Removes an event listener from the <code>EventTarget</code>.
+ */
+ void removeEventListener(String type, EventListener listener);
+
+
+ /**
+ *
+Removes an event listener from the <code>EventTarget</code>.
+ */
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/events/HashChangeEvent.java b/elemental/src/elemental/events/HashChangeEvent.java
new file mode 100644
index 0000000..85a9db0
--- /dev/null
+++ b/elemental/src/elemental/events/HashChangeEvent.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface HashChangeEvent extends Event {
+
+ String getNewURL();
+
+ String getOldURL();
+
+ void initHashChangeEvent(String type, boolean canBubble, boolean cancelable, String oldURL, String newURL);
+}
diff --git a/elemental/src/elemental/events/KeyboardEvent.java b/elemental/src/elemental/events/KeyboardEvent.java
new file mode 100644
index 0000000..7c7afc1
--- /dev/null
+++ b/elemental/src/elemental/events/KeyboardEvent.java
@@ -0,0 +1,721 @@
+/*
+ * 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 elemental.events;
+import elemental.html.Window;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+
+import java.util.Date;
+
+/**
+ * <div class="deprecatedHeaderTemplate"><p>Deprecated</p></div>
+<p></p>
+<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>
+<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>
+ 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>
+ */
+public interface KeyboardEvent extends UIEvent {
+/**
+ * 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();
+
+
+ boolean isAltGraphKey();
+
+
+ /**
+ * <code>true</code> if the Alt (or Option, on Mac) key was active when the key event was generated. <strong>Read only.</strong>
+ */
+ boolean isAltKey();
+
+
+ /**
+ * <code>true</code> if the Control key was active when the key event was generated. <strong>Read only.</strong>
+ */
+ boolean isCtrlKey();
+
+ String getKeyIdentifier();
+
+ int getKeyLocation();
+
+
+ /**
+ * <code>true</code> if the Meta (or Command, on Mac) key was active when the key event was generated. <strong>Read only.</strong>
+ */
+ boolean isMetaKey();
+
+
+ /**
+ * <code>true</code> if the Shift key was active when the key event was generated. <strong>Read only.</strong>
+ */
+ boolean isShiftKey();
+
+
+ /**
+ * <p>Initializes the attributes of a keyboard event object.</p>
+
+<div id="section_11"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void initKeyboardEvent(String type, boolean canBubble, boolean cancelable, Window view, String keyIdentifier, int keyLocation, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, boolean altGraphKey);
+}
diff --git a/elemental/src/elemental/events/MediaStreamEvent.java b/elemental/src/elemental/events/MediaStreamEvent.java
new file mode 100644
index 0000000..94d0225
--- /dev/null
+++ b/elemental/src/elemental/events/MediaStreamEvent.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.events;
+import elemental.dom.MediaStream;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaStreamEvent extends Event {
+
+ MediaStream getStream();
+}
diff --git a/elemental/src/elemental/events/MessageChannel.java b/elemental/src/elemental/events/MessageChannel.java
new file mode 100644
index 0000000..69c4e4c
--- /dev/null
+++ b/elemental/src/elemental/events/MessageChannel.java
@@ -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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MessageChannel {
+
+ MessagePort getPort1();
+
+ MessagePort getPort2();
+}
diff --git a/elemental/src/elemental/events/MessageEvent.java b/elemental/src/elemental/events/MessageEvent.java
new file mode 100644
index 0000000..7896325
--- /dev/null
+++ b/elemental/src/elemental/events/MessageEvent.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.events;
+import elemental.html.Window;
+import elemental.util.Indexable;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong>
+<div>This page is not complete.</div>
+</div>
+
+<p></p>
+<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>
+ */
+public interface MessageEvent extends Event {
+
+
+ /**
+ * The data from the server.
+ */
+ Object getData();
+
+ String getLastEventId();
+
+ String getOrigin();
+
+ Indexable getPorts();
+
+ Window getSource();
+
+ void initMessageEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Object dataArg, String originArg, String lastEventIdArg, Window sourceArg, Indexable messagePorts);
+
+ void webkitInitMessageEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Object dataArg, String originArg, String lastEventIdArg, Window sourceArg, Indexable transferables);
+}
diff --git a/elemental/src/elemental/events/MessagePort.java b/elemental/src/elemental/events/MessagePort.java
new file mode 100644
index 0000000..af23364
--- /dev/null
+++ b/elemental/src/elemental/events/MessagePort.java
@@ -0,0 +1,83 @@
+/*
+ * 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 elemental.events;
+import elemental.util.Indexable;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div>
+
+<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)
+"></div><div title="Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)
+"></div></div>
+<div>Inherits from: <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISupports">nsISupports</a></code>
+<span>Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)
+</span></div>
+ */
+public interface MessagePort extends EventTarget {
+
+ EventListener getOnmessage();
+
+ void setOnmessage(EventListener arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ void close();
+
+ boolean dispatchEvent(Event evt);
+
+
+ /**
+ * <p>Posts a message into the event queue.</p>
+
+<div id="section_4"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>aMessage</code></dt> <dd>The message to post.</dd>
+</dl>
+</div>
+ */
+ void postMessage(String message);
+
+
+ /**
+ * <p>Posts a message into the event queue.</p>
+
+<div id="section_4"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>aMessage</code></dt> <dd>The message to post.</dd>
+</dl>
+</div>
+ */
+ void postMessage(String message, Indexable messagePorts);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ void start();
+
+ void webkitPostMessage(String message);
+
+ void webkitPostMessage(String message, Indexable transfer);
+}
diff --git a/elemental/src/elemental/events/MouseEvent.java b/elemental/src/elemental/events/MouseEvent.java
new file mode 100644
index 0000000..80fcb8e
--- /dev/null
+++ b/elemental/src/elemental/events/MouseEvent.java
@@ -0,0 +1,125 @@
+/*
+ * 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 elemental.events;
+import elemental.dom.Node;
+import elemental.dom.Clipboard;
+import elemental.html.Window;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+
+import java.util.Date;
+
+/**
+ * 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>
+ 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>
+ interface.
+ */
+public interface MouseEvent extends UIEvent {
+ /**
+ * 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;
+ }
+
+
+ /**
+ * <code>true</code> if the alt key was down when the mouse event was fired. <strong>Read only.</strong>
+ */
+ boolean isAltKey();
+
+
+ /**
+ * 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>
+ */
+ int getButton();
+
+
+ /**
+ * The X coordinate of the mouse pointer in local (DOM content) coordinates. <strong>Read only.</strong>
+ */
+ int getClientX();
+
+
+ /**
+ * The Y coordinate of the mouse pointer in local (DOM content) coordinates. <strong>Read only.</strong>
+ */
+ int getClientY();
+
+
+ /**
+ * <code>true</code> if the control key was down when the mouse event was fired. <strong>Read only.</strong>
+ */
+ boolean isCtrlKey();
+
+ Clipboard getDataTransfer();
+
+ Node getFromElement();
+
+
+ /**
+ * <code>true</code> if the meta key was down when the mouse event was fired. <strong>Read only.</strong>
+ */
+ boolean isMetaKey();
+
+ int getOffsetX();
+
+ int getOffsetY();
+
+
+ /**
+ * The target to which the event applies. <strong>Read only.</strong>
+ */
+ EventTarget getRelatedTarget();
+
+
+ /**
+ * The X coordinate of the mouse pointer in global (screen) coordinates. <strong>Read only.</strong>
+ */
+ int getScreenX();
+
+
+ /**
+ * The Y coordinate of the mouse pointer in global (screen) coordinates. <strong>Read only.</strong>
+ */
+ int getScreenY();
+
+
+ /**
+ * <code>true</code> if the shift key was down when the mouse event was fired. <strong>Read only.</strong>
+ */
+ boolean isShiftKey();
+
+ Node getToElement();
+
+ int getWebkitMovementX();
+
+ int getWebkitMovementY();
+
+ int getX();
+
+ int getY();
+
+ void initMouseEvent(String type, boolean canBubble, boolean cancelable, Window view, int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int button, EventTarget relatedTarget);
+}
diff --git a/elemental/src/elemental/events/MutationEvent.java b/elemental/src/elemental/events/MutationEvent.java
new file mode 100644
index 0000000..e98537a
--- /dev/null
+++ b/elemental/src/elemental/events/MutationEvent.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.events;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MutationEvent extends Event {
+
+ static final int ADDITION = 2;
+
+ static final int MODIFICATION = 1;
+
+ static final int REMOVAL = 3;
+
+ int getAttrChange();
+
+ String getAttrName();
+
+ String getNewValue();
+
+ String getPrevValue();
+
+ Node getRelatedNode();
+
+ void initMutationEvent(String type, boolean canBubble, boolean cancelable, Node relatedNode, String prevValue, String newValue, String attrName, int attrChange);
+}
diff --git a/elemental/src/elemental/events/OverflowEvent.java b/elemental/src/elemental/events/OverflowEvent.java
new file mode 100644
index 0000000..d2fd5c4
--- /dev/null
+++ b/elemental/src/elemental/events/OverflowEvent.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface OverflowEvent extends Event {
+
+ static final int BOTH = 2;
+
+ static final int HORIZONTAL = 0;
+
+ static final int VERTICAL = 1;
+
+ boolean isHorizontalOverflow();
+
+ int getOrient();
+
+ boolean isVerticalOverflow();
+}
diff --git a/elemental/src/elemental/events/PageTransitionEvent.java b/elemental/src/elemental/events/PageTransitionEvent.java
new file mode 100644
index 0000000..5f49b22
--- /dev/null
+++ b/elemental/src/elemental/events/PageTransitionEvent.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface PageTransitionEvent extends Event {
+
+ boolean isPersisted();
+}
diff --git a/elemental/src/elemental/events/PopStateEvent.java b/elemental/src/elemental/events/PopStateEvent.java
new file mode 100644
index 0000000..8e429b8
--- /dev/null
+++ b/elemental/src/elemental/events/PopStateEvent.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface PopStateEvent extends Event {
+
+ Object getState();
+}
diff --git a/elemental/src/elemental/events/ProgressEvent.java b/elemental/src/elemental/events/ProgressEvent.java
new file mode 100644
index 0000000..ebc52f6
--- /dev/null
+++ b/elemental/src/elemental/events/ProgressEvent.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><div>
+
+<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)
+"></div><div title="Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)
+"></div></div>
+<div>Inherits from: <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMEvent">nsIDOMEvent</a></code>
+<span>Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)
+</span></div></div>
+<p></p>
+<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>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/audio"><audio></a></code>
+) 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>
+ */
+public interface ProgressEvent extends Event {
+
+
+ /**
+ * Specifies whether or not the total size of the transfer is known. <strong>Read only.</strong>
+ */
+ boolean isLengthComputable();
+
+
+ /**
+ * 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>
+ */
+ double getLoaded();
+
+
+ /**
+ * 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>
+ */
+ double getTotal();
+}
diff --git a/elemental/src/elemental/events/SpeechRecognitionEvent.java b/elemental/src/elemental/events/SpeechRecognitionEvent.java
new file mode 100644
index 0000000..040001e
--- /dev/null
+++ b/elemental/src/elemental/events/SpeechRecognitionEvent.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.events;
+import elemental.dom.SpeechRecognitionResultList;
+import elemental.dom.SpeechRecognitionError;
+import elemental.dom.SpeechRecognitionResult;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SpeechRecognitionEvent extends Event {
+
+ SpeechRecognitionError getError();
+
+ SpeechRecognitionResult getResult();
+
+ SpeechRecognitionResultList getResultHistory();
+
+ short getResultIndex();
+}
diff --git a/elemental/src/elemental/events/TextEvent.java b/elemental/src/elemental/events/TextEvent.java
new file mode 100644
index 0000000..6bb365c
--- /dev/null
+++ b/elemental/src/elemental/events/TextEvent.java
@@ -0,0 +1,36 @@
+/*
+ * 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 elemental.events;
+import elemental.html.Window;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface TextEvent extends UIEvent {
+
+ String getData();
+
+ void initTextEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Window viewArg, String dataArg);
+}
diff --git a/elemental/src/elemental/events/Touch.java b/elemental/src/elemental/events/Touch.java
new file mode 100644
index 0000000..e81407a
--- /dev/null
+++ b/elemental/src/elemental/events/Touch.java
@@ -0,0 +1,83 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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).
+ */
+public interface Touch {
+
+
+ /**
+ * The X coordinate of the touch point relative to the viewport, not including any scroll offset. <strong>Read only.</strong>
+ */
+ int getClientX();
+
+
+ /**
+ * The Y coordinate of the touch point relative to the viewport, not including any scroll offset. <strong>Read only.</strong>
+ */
+ int getClientY();
+
+
+ /**
+ * 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>
+ */
+ int getIdentifier();
+
+
+ /**
+ * The X coordinate of the touch point relative to the viewport, including any scroll offset. <strong>Read only.</strong>
+ */
+ int getPageX();
+
+
+ /**
+ * The Y coordinate of the touch point relative to the viewport, including any scroll offset. <strong>Read only.</strong>
+ */
+ int getPageY();
+
+
+ /**
+ * The X coordinate of the touch point relative to the screen, not including any scroll offset. <strong>Read only.</strong>
+ */
+ int getScreenX();
+
+
+ /**
+ * The Y coordinate of the touch point relative to the screen, not including any scroll offset. <strong>Read only.</strong>
+ */
+ int getScreenY();
+
+ EventTarget getTarget();
+
+ float getWebkitForce();
+
+ int getWebkitRadiusX();
+
+ int getWebkitRadiusY();
+
+ float getWebkitRotationAngle();
+}
diff --git a/elemental/src/elemental/events/TouchEvent.java b/elemental/src/elemental/events/TouchEvent.java
new file mode 100644
index 0000000..df60175
--- /dev/null
+++ b/elemental/src/elemental/events/TouchEvent.java
@@ -0,0 +1,85 @@
+/*
+ * 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 elemental.events;
+import elemental.html.Window;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p>Touches are represented by the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Touch">Touch</a></code>
+ 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>
+ objects.</p>
+ */
+public interface TouchEvent extends UIEvent {
+
+
+ /**
+ * A Boolean value indicating whether or not the alt key was down when the touch event was fired. <strong>Read only.</strong>
+ */
+ boolean isAltKey();
+
+
+ /**
+ * A <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/TouchList">TouchList</a></code>
+ of all the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Touch">Touch</a></code>
+ objects representing individual points of contact whose states changed between the previous touch event and this one. <strong>Read only.</strong>
+ */
+ TouchList getChangedTouches();
+
+
+ /**
+ * A Boolean value indicating whether or not the control key was down when the touch event was fired. <strong>Read only.</strong>
+ */
+ boolean isCtrlKey();
+
+
+ /**
+ * A Boolean value indicating whether or not the meta key was down when the touch event was fired. <strong>Read only.</strong>
+ */
+ boolean isMetaKey();
+
+
+ /**
+ * A Boolean value indicating whether or not the shift key was down when the touch event was fired. <strong>Read only.</strong>
+ */
+ boolean isShiftKey();
+
+
+ /**
+ * A <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/TouchList">TouchList</a></code>
+ of all the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Touch">Touch</a></code>
+ 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>
+ */
+ TouchList getTargetTouches();
+
+
+ /**
+ * A <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/TouchList">TouchList</a></code>
+ of all the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Touch">Touch</a></code>
+ objects representing all current points of contact with the surface, regardless of target or changed status. <strong>Read only.</strong>
+ */
+ TouchList getTouches();
+
+ void initTouchEvent(TouchList touches, TouchList targetTouches, TouchList changedTouches, String type, Window view, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey);
+}
diff --git a/elemental/src/elemental/events/TouchList.java b/elemental/src/elemental/events/TouchList.java
new file mode 100644
index 0000000..d64b94f
--- /dev/null
+++ b/elemental/src/elemental/events/TouchList.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ object for each finger, for a total of three entries.
+ */
+public interface TouchList extends Indexable {
+
+
+ /**
+ * The number of <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Touch">Touch</a></code>
+ objects in the <code>TouchList</code>. <strong>Read only.</strong>
+ */
+ int getLength();
+
+
+ /**
+ * Returns the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Touch">Touch</a></code>
+ object at the specified index in the list. You can also simply reference the <code>TouchList</code> using array syntax (<code>touchList[x]</code>).
+ */
+ Touch item(int index);
+}
diff --git a/elemental/src/elemental/events/TransitionEvent.java b/elemental/src/elemental/events/TransitionEvent.java
new file mode 100644
index 0000000..8f74466
--- /dev/null
+++ b/elemental/src/elemental/events/TransitionEvent.java
@@ -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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface TransitionEvent extends Event {
+
+ double getElapsedTime();
+
+ String getPropertyName();
+}
diff --git a/elemental/src/elemental/events/UIEvent.java b/elemental/src/elemental/events/UIEvent.java
new file mode 100644
index 0000000..22bbd07
--- /dev/null
+++ b/elemental/src/elemental/events/UIEvent.java
@@ -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 elemental.events;
+import elemental.html.Window;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><div>
+
+<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
+"></div><div title="Last changed in Gecko 9.0
+"></div></div>
+<div>Inherits from: <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMEvent">nsIDOMEvent</a></code>
+<span>Last changed in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+</span></div></div>
+<p></p>
+<p>The DOM <code>UIEvent</code> represents simple user interface events.</p>
+ */
+public interface UIEvent extends Event {
+
+ int getCharCode();
+
+
+ /**
+ * Detail about the event, depending on the type of event. <strong>Read only.</strong>
+ */
+ int getDetail();
+
+ int getKeyCode();
+
+ int getLayerX();
+
+ int getLayerY();
+
+ int getPageX();
+
+ int getPageY();
+
+
+ /**
+ * A view which generated the event. <strong>Read only.</strong>
+ */
+ Window getView();
+
+ int getWhich();
+
+
+ /**
+ * <p>Initializes the UIEvent object.</p>
+
+<div id="section_5"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void initUIEvent(String type, boolean canBubble, boolean cancelable, Window view, int detail);
+}
diff --git a/elemental/src/elemental/events/WebKitAnimationEvent.java b/elemental/src/elemental/events/WebKitAnimationEvent.java
new file mode 100644
index 0000000..a826c14
--- /dev/null
+++ b/elemental/src/elemental/events/WebKitAnimationEvent.java
@@ -0,0 +1,22 @@
+
+package elemental.events;
+
+import elemental.events.*;
+
+/**
+ * <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>.
+ */
+public interface WebKitAnimationEvent extends Event {
+
+
+ /**
+ * The name of the animation on which the animation event occurred.
+ */
+ String getAnimationName();
+
+
+ /**
+ * The amount of time, in seconds, the animation had been running at the time the event occurred.
+ */
+ double getElapsedTime();
+}
diff --git a/elemental/src/elemental/events/WebKitTransitionEvent.java b/elemental/src/elemental/events/WebKitTransitionEvent.java
new file mode 100644
index 0000000..b997966
--- /dev/null
+++ b/elemental/src/elemental/events/WebKitTransitionEvent.java
@@ -0,0 +1,14 @@
+
+package elemental.events;
+
+import elemental.events.*;
+
+/**
+ *
+ */
+public interface WebKitTransitionEvent extends Event {
+
+ double getElapsedTime();
+
+ String getPropertyName();
+}
diff --git a/elemental/src/elemental/events/WheelEvent.java b/elemental/src/elemental/events/WheelEvent.java
new file mode 100644
index 0000000..473c9a1
--- /dev/null
+++ b/elemental/src/elemental/events/WheelEvent.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.events;
+import elemental.html.Window;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WheelEvent extends UIEvent {
+
+ boolean isAltKey();
+
+ int getClientX();
+
+ int getClientY();
+
+ boolean isCtrlKey();
+
+ boolean isMetaKey();
+
+ int getOffsetX();
+
+ int getOffsetY();
+
+ int getScreenX();
+
+ int getScreenY();
+
+ boolean isShiftKey();
+
+ boolean isWebkitDirectionInvertedFromDevice();
+
+ int getWheelDelta();
+
+ int getWheelDeltaX();
+
+ int getWheelDeltaY();
+
+ int getX();
+
+ int getY();
+
+ void initWebKitWheelEvent(int wheelDeltaX, int wheelDeltaY, Window view, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey);
+}
diff --git a/elemental/src/elemental/events/XMLHttpRequestProgressEvent.java b/elemental/src/elemental/events/XMLHttpRequestProgressEvent.java
new file mode 100644
index 0000000..7ea964c
--- /dev/null
+++ b/elemental/src/elemental/events/XMLHttpRequestProgressEvent.java
@@ -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 elemental.events;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface XMLHttpRequestProgressEvent extends ProgressEvent {
+
+ double getPosition();
+
+ double getTotalSize();
+}
diff --git a/elemental/src/elemental/html/AbstractWorker.java b/elemental/src/elemental/html/AbstractWorker.java
new file mode 100644
index 0000000..250a551
--- /dev/null
+++ b/elemental/src/elemental/html/AbstractWorker.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AbstractWorker extends EventTarget {
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/AnchorElement.java b/elemental/src/elemental/html/AnchorElement.java
new file mode 100644
index 0000000..4a90129
--- /dev/null
+++ b/elemental/src/elemental/html/AnchorElement.java
@@ -0,0 +1,214 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface AnchorElement extends Element {
+
+
+ /**
+ * The character encoding of the linked resource.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+ */
+ String getCharset();
+
+ void setCharset(String arg);
+
+
+ /**
+ * Comma-separated list of coordinates.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+ */
+ String getCoords();
+
+ void setCoords(String arg);
+
+ String getDownload();
+
+ void setDownload(String arg);
+
+
+ /**
+ * The fragment identifier (including the leading hash mark (#)), if any, in the referenced URL.
+ */
+ String getHash();
+
+ void setHash(String arg);
+
+
+ /**
+ * The hostname and port (if it's not the default port) in the referenced URL.
+ */
+ String getHost();
+
+ void setHost(String arg);
+
+
+ /**
+ * The hostname in the referenced URL.
+ */
+ String getHostname();
+
+ void setHostname(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/a#attr-href">href</a></code>
+ HTML attribute, containing a valid URL of a linked resource.
+ */
+ String getHref();
+
+ void setHref(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/a#attr-hreflang">hreflang</a></code>
+ HTML attribute, indicating the language of the linked resource.
+ */
+ String getHreflang();
+
+ void setHreflang(String arg);
+
+
+ /**
+ * Anchor name.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+ */
+ String getName();
+
+ void setName(String arg);
+
+ String getOrigin();
+
+
+ /**
+ * The path name component, if any, of the referenced URL.
+ */
+ String getPathname();
+
+ void setPathname(String arg);
+
+ String getPing();
+
+ void setPing(String arg);
+
+
+ /**
+ * The port component, if any, of the referenced URL.
+ */
+ String getPort();
+
+ void setPort(String arg);
+
+
+ /**
+ * The protocol component (including trailing colon (:)), of the referenced URL.
+ */
+ String getProtocol();
+
+ void setProtocol(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/a#attr-rel">rel</a></code>
+ HTML attribute, specifying the relationship of the target object to the link object.
+ */
+ String getRel();
+
+ void setRel(String arg);
+
+
+ /**
+ * Reverse link type.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+ */
+ String getRev();
+
+ void setRev(String arg);
+
+
+ /**
+ * The search element (including leading question mark (?)), if any, of the referenced URL
+ */
+ String getSearch();
+
+ void setSearch(String arg);
+
+
+ /**
+ * The shape of the active area.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+ */
+ String getShape();
+
+ void setShape(String arg);
+
+
+ /**
+ * Reflectst the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/a#attr-target">target</a></code>
+ HTML attribute, indicating where to display the linked resource.
+ */
+ String getTarget();
+
+ void setTarget(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getText();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/a#attr-type">type</a></code>
+ HTML attribute, indicating the MIME type of the linked resource.
+ */
+ String getType();
+
+ void setType(String arg);
+}
diff --git a/elemental/src/elemental/html/Animation.java b/elemental/src/elemental/html/Animation.java
new file mode 100644
index 0000000..ca0c45c
--- /dev/null
+++ b/elemental/src/elemental/html/Animation.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface Animation {
+
+ static final int DIRECTION_ALTERNATE = 1;
+
+ static final int DIRECTION_NORMAL = 0;
+
+ static final int FILL_BACKWARDS = 1;
+
+ static final int FILL_BOTH = 3;
+
+ static final int FILL_FORWARDS = 2;
+
+ static final int FILL_NONE = 0;
+
+ double getDelay();
+
+ int getDirection();
+
+ double getDuration();
+
+ double getElapsedTime();
+
+ void setElapsedTime(double arg);
+
+ boolean isEnded();
+
+ int getFillMode();
+
+ int getIterationCount();
+
+ String getName();
+
+ boolean isPaused();
+
+ void pause();
+
+ void play();
+}
diff --git a/elemental/src/elemental/html/AnimationList.java b/elemental/src/elemental/html/AnimationList.java
new file mode 100644
index 0000000..b747376
--- /dev/null
+++ b/elemental/src/elemental/html/AnimationList.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AnimationList {
+
+ int getLength();
+
+ Animation item(int index);
+}
diff --git a/elemental/src/elemental/html/AppletElement.java b/elemental/src/elemental/html/AppletElement.java
new file mode 100644
index 0000000..c315012
--- /dev/null
+++ b/elemental/src/elemental/html/AppletElement.java
@@ -0,0 +1,116 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Obsolete
+ */
+public interface AppletElement extends Element {
+
+
+ /**
+ * 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>.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getAlt();
+
+ void setAlt(String arg);
+
+
+ /**
+ * This attribute refers to an archived or compressed version of the applet and its associated class files, which might help reduce download time.
+ */
+ String getArchive();
+
+ void setArchive(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getCode();
+
+ void setCode(String arg);
+
+ String getCodeBase();
+
+ void setCodeBase(String arg);
+
+
+ /**
+ * This attribute specifies the height, in pixels, that the applet needs.
+ */
+ String getHeight();
+
+ void setHeight(String arg);
+
+
+ /**
+ * This attribute specifies additional horizontal space, in pixels, to be reserved on either side of the applet.
+ */
+ String getHspace();
+
+ void setHspace(String arg);
+
+
+ /**
+ * This attribute assigns a name to the applet so that it can be identified by other resources; particularly scripts.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * This attribute specifies the URL of a serialized representation of an applet.
+ */
+ String getObject();
+
+ void setObject(String arg);
+
+
+ /**
+ * This attribute specifies additional vertical space, in pixels, to be reserved above and below the applet.
+ */
+ String getVspace();
+
+ void setVspace(String arg);
+
+
+ /**
+ * This attribute specifies in pixels the width that the applet needs.
+ */
+ String getWidth();
+
+ void setWidth(String arg);
+}
diff --git a/elemental/src/elemental/html/ApplicationCache.java b/elemental/src/elemental/html/ApplicationCache.java
new file mode 100644
index 0000000..32435c9
--- /dev/null
+++ b/elemental/src/elemental/html/ApplicationCache.java
@@ -0,0 +1,96 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ApplicationCache extends EventTarget {
+
+ static final int CHECKING = 2;
+
+ static final int DOWNLOADING = 3;
+
+ static final int IDLE = 1;
+
+ static final int OBSOLETE = 5;
+
+ static final int UNCACHED = 0;
+
+ static final int UPDATEREADY = 4;
+
+ EventListener getOncached();
+
+ void setOncached(EventListener arg);
+
+ EventListener getOnchecking();
+
+ void setOnchecking(EventListener arg);
+
+ EventListener getOndownloading();
+
+ void setOndownloading(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnnoupdate();
+
+ void setOnnoupdate(EventListener arg);
+
+ EventListener getOnobsolete();
+
+ void setOnobsolete(EventListener arg);
+
+ EventListener getOnprogress();
+
+ void setOnprogress(EventListener arg);
+
+ EventListener getOnupdateready();
+
+ void setOnupdateready(EventListener arg);
+
+ int getStatus();
+
+ void abort();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ void swapCache();
+
+ void update();
+}
diff --git a/elemental/src/elemental/html/AreaElement.java b/elemental/src/elemental/html/AreaElement.java
new file mode 100644
index 0000000..c328697
--- /dev/null
+++ b/elemental/src/elemental/html/AreaElement.java
@@ -0,0 +1,145 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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.
+ */
+public interface AreaElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/area#attr-alt">alt</a></code>
+ HTML attribute, containing alternative text for the element.
+ */
+ String getAlt();
+
+ void setAlt(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/area#attr-coords">coords</a></code>
+ HTML attribute, containing coordinates to define the hot-spot region.
+ */
+ String getCoords();
+
+ void setCoords(String arg);
+
+
+ /**
+ * The fragment identifier (including the leading hash mark (#)), if any, in the referenced URL.
+ */
+ String getHash();
+
+
+ /**
+ * The hostname and port (if it's not the default port) in the referenced URL.
+ */
+ String getHost();
+
+
+ /**
+ * The hostname in the referenced URL.
+ */
+ String getHostname();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/area#attr-href">href</a></code>
+ HTML attribute, containing a valid URL of a linked resource.
+ */
+ String getHref();
+
+ void setHref(String arg);
+
+
+ /**
+ * Indicates that this area is inactive.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+ */
+ boolean isNoHref();
+
+ void setNoHref(boolean arg);
+
+
+ /**
+ * The path name component, if any, of the referenced URL.
+ */
+ String getPathname();
+
+ String getPing();
+
+ void setPing(String arg);
+
+
+ /**
+ * The port component, if any, of the referenced URL.
+ */
+ String getPort();
+
+
+ /**
+ * The protocol component (including trailing colon (:)), of the referenced URL.
+ */
+ String getProtocol();
+
+
+ /**
+ * The search element (including leading question mark (?)), if any, of the referenced URL
+ */
+ String getSearch();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/area#attr-shape">shape</a></code>
+ HTML attribute, indicating the shape of the hot-spot, limited to known values.
+ */
+ String getShape();
+
+ void setShape(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/area#attr-target">target</a></code>
+ HTML attribute, indicating the browsing context in which to open the linked resource.
+ */
+ String getTarget();
+
+ void setTarget(String arg);
+}
diff --git a/elemental/src/elemental/html/ArrayBuffer.java b/elemental/src/elemental/html/ArrayBuffer.java
new file mode 100644
index 0000000..b5dab92
--- /dev/null
+++ b/elemental/src/elemental/html/ArrayBuffer.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface ArrayBuffer {
+
+
+ /**
+ * The size, in bytes, of the array. This is established when the array is constructed and cannot be changed. <strong>Read only.</strong>
+ */
+ int getByteLength();
+
+ ArrayBuffer slice(int begin);
+
+ ArrayBuffer slice(int begin, int end);
+}
diff --git a/elemental/src/elemental/html/ArrayBufferView.java b/elemental/src/elemental/html/ArrayBufferView.java
new file mode 100644
index 0000000..03ba25a
--- /dev/null
+++ b/elemental/src/elemental/html/ArrayBufferView.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<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>
+ */
+public interface ArrayBufferView {
+
+
+ /**
+ * The buffer this view references. <strong>Read only.</strong>
+ */
+ ArrayBuffer getBuffer();
+
+
+ /**
+ * The length, in bytes, of the view. <strong>Read only.</strong>
+ */
+ int getByteLength();
+
+
+ /**
+ * 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>.
+ */
+ int getByteOffset();
+}
diff --git a/elemental/src/elemental/html/AudioBuffer.java b/elemental/src/elemental/html/AudioBuffer.java
new file mode 100644
index 0000000..fa86c70
--- /dev/null
+++ b/elemental/src/elemental/html/AudioBuffer.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioBuffer {
+
+ float getDuration();
+
+ float getGain();
+
+ void setGain(float arg);
+
+ int getLength();
+
+ int getNumberOfChannels();
+
+ float getSampleRate();
+
+ Float32Array getChannelData(int channelIndex);
+}
diff --git a/elemental/src/elemental/html/AudioBufferCallback.java b/elemental/src/elemental/html/AudioBufferCallback.java
new file mode 100644
index 0000000..199a496
--- /dev/null
+++ b/elemental/src/elemental/html/AudioBufferCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface AudioBufferCallback {
+ boolean onAudioBufferCallback(AudioBuffer audioBuffer);
+}
diff --git a/elemental/src/elemental/html/AudioBufferSourceNode.java b/elemental/src/elemental/html/AudioBufferSourceNode.java
new file mode 100644
index 0000000..9c1eb2c
--- /dev/null
+++ b/elemental/src/elemental/html/AudioBufferSourceNode.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioBufferSourceNode extends AudioSourceNode {
+
+ static final int FINISHED_STATE = 3;
+
+ static final int PLAYING_STATE = 2;
+
+ static final int SCHEDULED_STATE = 1;
+
+ static final int UNSCHEDULED_STATE = 0;
+
+ AudioBuffer getBuffer();
+
+ void setBuffer(AudioBuffer arg);
+
+ AudioGain getGain();
+
+ boolean isLoop();
+
+ void setLoop(boolean arg);
+
+ boolean isLooping();
+
+ void setLooping(boolean arg);
+
+ AudioParam getPlaybackRate();
+
+ int getPlaybackState();
+
+ void noteGrainOn(double when, double grainOffset, double grainDuration);
+
+ void noteOff(double when);
+
+ void noteOn(double when);
+}
diff --git a/elemental/src/elemental/html/AudioChannelMerger.java b/elemental/src/elemental/html/AudioChannelMerger.java
new file mode 100644
index 0000000..8456734
--- /dev/null
+++ b/elemental/src/elemental/html/AudioChannelMerger.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioChannelMerger extends AudioNode {
+}
diff --git a/elemental/src/elemental/html/AudioChannelSplitter.java b/elemental/src/elemental/html/AudioChannelSplitter.java
new file mode 100644
index 0000000..445e06e
--- /dev/null
+++ b/elemental/src/elemental/html/AudioChannelSplitter.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioChannelSplitter extends AudioNode {
+}
diff --git a/elemental/src/elemental/html/AudioContext.java b/elemental/src/elemental/html/AudioContext.java
new file mode 100644
index 0000000..bb10214
--- /dev/null
+++ b/elemental/src/elemental/html/AudioContext.java
@@ -0,0 +1,97 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioContext extends EventTarget {
+
+ int getActiveSourceCount();
+
+ float getCurrentTime();
+
+ AudioDestinationNode getDestination();
+
+ AudioListener getListener();
+
+ EventListener getOncomplete();
+
+ void setOncomplete(EventListener arg);
+
+ float getSampleRate();
+
+ RealtimeAnalyserNode createAnalyser();
+
+ BiquadFilterNode createBiquadFilter();
+
+ AudioBuffer createBuffer(int numberOfChannels, int numberOfFrames, float sampleRate);
+
+ AudioBuffer createBuffer(ArrayBuffer buffer, boolean mixToMono);
+
+ AudioBufferSourceNode createBufferSource();
+
+ AudioChannelMerger createChannelMerger();
+
+ AudioChannelMerger createChannelMerger(int numberOfInputs);
+
+ AudioChannelSplitter createChannelSplitter();
+
+ AudioChannelSplitter createChannelSplitter(int numberOfOutputs);
+
+ ConvolverNode createConvolver();
+
+ DelayNode createDelayNode();
+
+ DelayNode createDelayNode(double maxDelayTime);
+
+ DynamicsCompressorNode createDynamicsCompressor();
+
+ AudioGainNode createGainNode();
+
+ JavaScriptAudioNode createJavaScriptNode(int bufferSize);
+
+ JavaScriptAudioNode createJavaScriptNode(int bufferSize, int numberOfInputChannels);
+
+ JavaScriptAudioNode createJavaScriptNode(int bufferSize, int numberOfInputChannels, int numberOfOutputChannels);
+
+ MediaElementAudioSourceNode createMediaElementSource(MediaElement mediaElement);
+
+ Oscillator createOscillator();
+
+ AudioPannerNode createPanner();
+
+ WaveShaperNode createWaveShaper();
+
+ WaveTable createWaveTable(Float32Array real, Float32Array imag);
+
+ void decodeAudioData(ArrayBuffer audioData, AudioBufferCallback successCallback);
+
+ void decodeAudioData(ArrayBuffer audioData, AudioBufferCallback successCallback, AudioBufferCallback errorCallback);
+
+ void startRendering();
+}
diff --git a/elemental/src/elemental/html/AudioDestinationNode.java b/elemental/src/elemental/html/AudioDestinationNode.java
new file mode 100644
index 0000000..dbe2493
--- /dev/null
+++ b/elemental/src/elemental/html/AudioDestinationNode.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioDestinationNode extends AudioNode {
+
+ int getNumberOfChannels();
+}
diff --git a/elemental/src/elemental/html/AudioElement.java b/elemental/src/elemental/html/AudioElement.java
new file mode 100644
index 0000000..599d86a
--- /dev/null
+++ b/elemental/src/elemental/html/AudioElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ 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>
+.</p>
+<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>
+ */
+public interface AudioElement extends MediaElement {
+}
diff --git a/elemental/src/elemental/html/AudioGain.java b/elemental/src/elemental/html/AudioGain.java
new file mode 100644
index 0000000..d772957
--- /dev/null
+++ b/elemental/src/elemental/html/AudioGain.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioGain extends AudioParam {
+}
diff --git a/elemental/src/elemental/html/AudioGainNode.java b/elemental/src/elemental/html/AudioGainNode.java
new file mode 100644
index 0000000..1192424
--- /dev/null
+++ b/elemental/src/elemental/html/AudioGainNode.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioGainNode extends AudioNode {
+
+ AudioGain getGain();
+}
diff --git a/elemental/src/elemental/html/AudioListener.java b/elemental/src/elemental/html/AudioListener.java
new file mode 100644
index 0000000..e295cbf
--- /dev/null
+++ b/elemental/src/elemental/html/AudioListener.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioListener {
+
+ float getDopplerFactor();
+
+ void setDopplerFactor(float arg);
+
+ float getSpeedOfSound();
+
+ void setSpeedOfSound(float arg);
+
+ void setOrientation(float x, float y, float z, float xUp, float yUp, float zUp);
+
+ void setPosition(float x, float y, float z);
+
+ void setVelocity(float x, float y, float z);
+}
diff --git a/elemental/src/elemental/html/AudioNode.java b/elemental/src/elemental/html/AudioNode.java
new file mode 100644
index 0000000..ccdba76
--- /dev/null
+++ b/elemental/src/elemental/html/AudioNode.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioNode {
+
+ AudioContext getContext();
+
+ int getNumberOfInputs();
+
+ int getNumberOfOutputs();
+
+ void connect(AudioNode destination, int output, int input);
+
+ void connect(AudioParam destination, int output);
+
+ void disconnect(int output);
+}
diff --git a/elemental/src/elemental/html/AudioPannerNode.java b/elemental/src/elemental/html/AudioPannerNode.java
new file mode 100644
index 0000000..5d9aa14
--- /dev/null
+++ b/elemental/src/elemental/html/AudioPannerNode.java
@@ -0,0 +1,85 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioPannerNode extends AudioNode {
+
+ static final int EQUALPOWER = 0;
+
+ static final int EXPONENTIAL_DISTANCE = 2;
+
+ static final int HRTF = 1;
+
+ static final int INVERSE_DISTANCE = 1;
+
+ static final int LINEAR_DISTANCE = 0;
+
+ static final int SOUNDFIELD = 2;
+
+ AudioGain getConeGain();
+
+ float getConeInnerAngle();
+
+ void setConeInnerAngle(float arg);
+
+ float getConeOuterAngle();
+
+ void setConeOuterAngle(float arg);
+
+ float getConeOuterGain();
+
+ void setConeOuterGain(float arg);
+
+ AudioGain getDistanceGain();
+
+ int getDistanceModel();
+
+ void setDistanceModel(int arg);
+
+ float getMaxDistance();
+
+ void setMaxDistance(float arg);
+
+ int getPanningModel();
+
+ void setPanningModel(int arg);
+
+ float getRefDistance();
+
+ void setRefDistance(float arg);
+
+ float getRolloffFactor();
+
+ void setRolloffFactor(float arg);
+
+ void setOrientation(float x, float y, float z);
+
+ void setPosition(float x, float y, float z);
+
+ void setVelocity(float x, float y, float z);
+}
diff --git a/elemental/src/elemental/html/AudioParam.java b/elemental/src/elemental/html/AudioParam.java
new file mode 100644
index 0000000..8a5da74
--- /dev/null
+++ b/elemental/src/elemental/html/AudioParam.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioParam {
+
+ float getDefaultValue();
+
+ float getMaxValue();
+
+ float getMinValue();
+
+ String getName();
+
+ int getUnits();
+
+ float getValue();
+
+ void setValue(float arg);
+
+ void cancelScheduledValues(float startTime);
+
+ void exponentialRampToValueAtTime(float value, float time);
+
+ void linearRampToValueAtTime(float value, float time);
+
+ void setTargetValueAtTime(float targetValue, float time, float timeConstant);
+
+ void setValueAtTime(float value, float time);
+
+ void setValueCurveAtTime(Float32Array values, float time, float duration);
+}
diff --git a/elemental/src/elemental/html/AudioProcessingEvent.java b/elemental/src/elemental/html/AudioProcessingEvent.java
new file mode 100644
index 0000000..d5164e4
--- /dev/null
+++ b/elemental/src/elemental/html/AudioProcessingEvent.java
@@ -0,0 +1,36 @@
+/*
+ * 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 elemental.html;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioProcessingEvent extends Event {
+
+ AudioBuffer getInputBuffer();
+
+ AudioBuffer getOutputBuffer();
+}
diff --git a/elemental/src/elemental/html/AudioSourceNode.java b/elemental/src/elemental/html/AudioSourceNode.java
new file mode 100644
index 0000000..c11e8cf
--- /dev/null
+++ b/elemental/src/elemental/html/AudioSourceNode.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface AudioSourceNode extends AudioNode {
+}
diff --git a/elemental/src/elemental/html/BRElement.java b/elemental/src/elemental/html/BRElement.java
new file mode 100644
index 0000000..9f495fe
--- /dev/null
+++ b/elemental/src/elemental/html/BRElement.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>. The introduced additional property is also deprecated in
+<span>HTML 4.01</span>.
+ */
+public interface BRElement extends Element {
+
+
+ /**
+ * Indicates flow of text around floating objects.
+ */
+ String getClear();
+
+ void setClear(String arg);
+}
diff --git a/elemental/src/elemental/html/BarProp.java b/elemental/src/elemental/html/BarProp.java
new file mode 100644
index 0000000..04d0dd6
--- /dev/null
+++ b/elemental/src/elemental/html/BarProp.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface BarProp {
+
+ boolean isVisible();
+}
diff --git a/elemental/src/elemental/html/BaseElement.java b/elemental/src/elemental/html/BaseElement.java
new file mode 100644
index 0000000..d2c9083
--- /dev/null
+++ b/elemental/src/elemental/html/BaseElement.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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.
+ */
+public interface BaseElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/base#attr-href">href</a></code>
+ HTML attribute, containing a base URL for relative URLs in the document.
+ */
+ String getHref();
+
+ void setHref(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/base#attr-target">target</a></code>
+ HTML attribute, containing a default target browsing context or frame for elements that do not have a target reference specified.
+ */
+ String getTarget();
+
+ void setTarget(String arg);
+}
diff --git a/elemental/src/elemental/html/BaseFontElement.java b/elemental/src/elemental/html/BaseFontElement.java
new file mode 100644
index 0000000..05ce96d
--- /dev/null
+++ b/elemental/src/elemental/html/BaseFontElement.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Obsolete
+ */
+public interface BaseFontElement extends Element {
+
+
+ /**
+ * This attribute sets the text color using either a named color or a color specified in the hexadecimal #RRGGBB format.
+ */
+ String getColor();
+
+ void setColor(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getFace();
+
+ void setFace(String arg);
+
+
+ /**
+ * 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.
+ */
+ int getSize();
+
+ void setSize(int arg);
+}
diff --git a/elemental/src/elemental/html/BatteryManager.java b/elemental/src/elemental/html/BatteryManager.java
new file mode 100644
index 0000000..342e9df
--- /dev/null
+++ b/elemental/src/elemental/html/BatteryManager.java
@@ -0,0 +1,68 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface BatteryManager extends EventTarget {
+
+ boolean isCharging();
+
+ double getChargingTime();
+
+ double getDischargingTime();
+
+ double getLevel();
+
+ EventListener getOnchargingchange();
+
+ void setOnchargingchange(EventListener arg);
+
+ EventListener getOnchargingtimechange();
+
+ void setOnchargingtimechange(EventListener arg);
+
+ EventListener getOndischargingtimechange();
+
+ void setOndischargingtimechange(EventListener arg);
+
+ EventListener getOnlevelchange();
+
+ void setOnlevelchange(EventListener arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/BiquadFilterNode.java b/elemental/src/elemental/html/BiquadFilterNode.java
new file mode 100644
index 0000000..614c594
--- /dev/null
+++ b/elemental/src/elemental/html/BiquadFilterNode.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface BiquadFilterNode extends AudioNode {
+
+ static final int ALLPASS = 7;
+
+ static final int BANDPASS = 2;
+
+ static final int HIGHPASS = 1;
+
+ static final int HIGHSHELF = 4;
+
+ static final int LOWPASS = 0;
+
+ static final int LOWSHELF = 3;
+
+ static final int NOTCH = 6;
+
+ static final int PEAKING = 5;
+
+ AudioParam getQ();
+
+ AudioParam getFrequency();
+
+ AudioParam getGain();
+
+ int getType();
+
+ void setType(int arg);
+
+ void getFrequencyResponse(Float32Array frequencyHz, Float32Array magResponse, Float32Array phaseResponse);
+}
diff --git a/elemental/src/elemental/html/Blob.java b/elemental/src/elemental/html/Blob.java
new file mode 100644
index 0000000..5751c0e
--- /dev/null
+++ b/elemental/src/elemental/html/Blob.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p></p>
+<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>
+ interface is based on <code>Blob</code>, inheriting blob functionality and expanding it to support files on the user's system.</p>
+<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>
+ 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>
+<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>
+ */
+public interface Blob {
+
+
+ /**
+ * The size, in bytes, of the data contained in the <code>Blob</code> object. <strong>Read only.</strong>
+ */
+ double getSize();
+
+
+ /**
+ * 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>
+ */
+ String getType();
+
+ Blob webkitSlice();
+
+ Blob webkitSlice(double start);
+
+ Blob webkitSlice(double start, double end);
+
+ Blob webkitSlice(double start, double end, String contentType);
+}
diff --git a/elemental/src/elemental/html/BlobBuilder.java b/elemental/src/elemental/html/BlobBuilder.java
new file mode 100644
index 0000000..1d84014
--- /dev/null
+++ b/elemental/src/elemental/html/BlobBuilder.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface BlobBuilder {
+
+ void append(Blob blob);
+
+ void append(ArrayBuffer arrayBuffer);
+
+ void append(String value);
+
+ void append(String value, String endings);
+
+ Blob getBlob();
+
+ Blob getBlob(String contentType);
+}
diff --git a/elemental/src/elemental/html/BodyElement.java b/elemental/src/elemental/html/BodyElement.java
new file mode 100644
index 0000000..cc862be
--- /dev/null
+++ b/elemental/src/elemental/html/BodyElement.java
@@ -0,0 +1,223 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.events.EventListener;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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>
+ object interface they also have available to them by inheritance) for manipulating body elements.
+ */
+public interface BodyElement extends Element {
+
+
+ /**
+ * Color of active hyperlinks.
+ */
+ String getALink();
+
+ void setALink(String arg);
+
+
+ /**
+ * <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)
+, this value is no longer resolved as a URI; instead, it's treated as a simple string.</div>
+ */
+ String getBackground();
+
+ void setBackground(String arg);
+
+
+ /**
+ * Background color for the document.
+ */
+ String getBgColor();
+
+ void setBgColor(String arg);
+
+
+ /**
+ * Color of unvisited links.
+ */
+ String getLink();
+
+ void setLink(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/body#attr-onbeforeunload">onbeforeunload</a></code>
+ HTML attribute value for a function to call when the document is about to be unloaded.
+ */
+ EventListener getOnbeforeunload();
+
+ void setOnbeforeunload(EventListener arg);
+
+
+ /**
+ * <p>Exposes the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/window.onblur">window.onblur</a></code>
+ 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>
+ to attach an event listener to the body element.</div>
+ */
+ EventListener getOnblur();
+
+ void setOnblur(EventListener arg);
+
+
+ /**
+ * <p>Exposes the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/window.onerror">window.onerror</a></code>
+ 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>
+ to attach an event listener to the body element.</div>
+ */
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+
+ /**
+ * <p>Exposes the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/window.onfocus">window.onfocus</a></code>
+ 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>
+ to attach an event listener to the body element.</div>
+ */
+ EventListener getOnfocus();
+
+ void setOnfocus(EventListener arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/body#attr-onhashchange">onhashchange</a></code>
+ HTML attribute value for a function to call when the fragment identifier in the address of the document changes.
+ */
+ EventListener getOnhashchange();
+
+ void setOnhashchange(EventListener arg);
+
+
+ /**
+ * <p>Exposes the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/window.onload">window.onload</a></code>
+ 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>
+ to attach an event listener to the body element.</div>
+ */
+ EventListener getOnload();
+
+ void setOnload(EventListener arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/body#attr-onmessage">onmessage</a></code>
+ HTML attribute value for a function to call when the document receives a message.
+ */
+ EventListener getOnmessage();
+
+ void setOnmessage(EventListener arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/body#attr-onoffline">onoffline</a></code>
+ HTML attribute value for a function to call when network communication fails.
+ */
+ EventListener getOnoffline();
+
+ void setOnoffline(EventListener arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/body#attr-ononline">ononline</a></code>
+ HTML attribute value for a function to call when network communication is restored.
+ */
+ EventListener getOnonline();
+
+ void setOnonline(EventListener arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/body#attr-onpopstate">onpopstate</a></code>
+ HTML attribute value for a function to call when the user has navigated session history.
+ */
+ EventListener getOnpopstate();
+
+ void setOnpopstate(EventListener arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/body#attr-onresize">onresize</a></code>
+ HTML attribute value for a function to call when the document has been resized.
+ */
+ EventListener getOnresize();
+
+ void setOnresize(EventListener arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/body#attr-onpopstate">onpopstate</a></code>
+ HTML attribute value for a function to call when the storage area has changed.
+ */
+ EventListener getOnstorage();
+
+ void setOnstorage(EventListener arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/body#attr-onunload">onunload</a></code>
+ HTML attribute value for a function to call when when the document is going away.
+ */
+ EventListener getOnunload();
+
+ void setOnunload(EventListener arg);
+
+
+ /**
+ * Foreground color of text.
+ */
+ String getText();
+
+ void setText(String arg);
+
+
+ /**
+ * Color of visited links.
+ */
+ String getVLink();
+
+ void setVLink(String arg);
+}
diff --git a/elemental/src/elemental/html/ButtonElement.java b/elemental/src/elemental/html/ButtonElement.java
new file mode 100644
index 0000000..e2fb8b2
--- /dev/null
+++ b/elemental/src/elemental/html/ButtonElement.java
@@ -0,0 +1,172 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+<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>
+<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.
+ */
+public interface ButtonElement extends Element {
+
+
+ /**
+ * 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.
+ */
+ boolean isAutofocus();
+
+ void setAutofocus(boolean arg);
+
+
+ /**
+ * The control is disabled, meaning that it does not accept any clicks.
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * <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>
+<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>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML">HTML 4</a></span> The attribute is null.</li> </ul>
+ */
+ FormElement getForm();
+
+
+ /**
+ * The URI of a program that processes information submitted by the button. If specified, this attribute overrides the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-action">action</a></code>
+ attribute of the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ element that owns this element.
+ */
+ String getFormAction();
+
+ void setFormAction(String arg);
+
+ String getFormEnctype();
+
+ void setFormEnctype(String arg);
+
+
+ /**
+ * The HTTP method that the browser uses to submit the form. If specified, this attribute overrides the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-method">method</a></code>
+ attribute of the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ element that owns this element.
+ */
+ String getFormMethod();
+
+ void setFormMethod(String arg);
+
+
+ /**
+ * Indicates that the form is not to be validated when it is submitted. If specified, this attribute overrides the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-enctype">enctype</a></code>
+ attribute of the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ element that owns this element.
+ */
+ boolean isFormNoValidate();
+
+ void setFormNoValidate(boolean arg);
+
+
+ /**
+ * A name or keyword indicating where to display the response that is received after submitting the form. If specified, this attribute overrides the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-target">target</a></code>
+ attribute of the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ element that owns this element.
+ */
+ String getFormTarget();
+
+ void setFormTarget(String arg);
+
+
+ /**
+ * A list of <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/label"><label></a></code>
+ elements that are labels for this button.
+ */
+ NodeList getLabels();
+
+
+ /**
+ * The name of the object when submitted with a form.
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> If specified, it must not be the empty string.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * <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,
+<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>
+ */
+ String getType();
+
+
+ /**
+ * 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.
+ */
+ String getValidationMessage();
+
+
+ /**
+ * The validity states that this button is in.
+ */
+ ValidityState getValidity();
+
+
+ /**
+ * The current form control value of the button.
+ */
+ String getValue();
+
+ void setValue(String arg);
+
+
+ /**
+ * Indicates whether the button is a candidate for constraint validation. It is false if any conditions bar it from constraint validation.
+ */
+ boolean isWillValidate();
+
+
+ /**
+ * Not supported for button elements.
+ */
+ boolean checkValidity();
+
+
+ /**
+ * Not supported for button elements.
+ */
+ void setCustomValidity(String error);
+}
diff --git a/elemental/src/elemental/html/CanvasElement.java b/elemental/src/elemental/html/CanvasElement.java
new file mode 100644
index 0000000..3d22146
--- /dev/null
+++ b/elemental/src/elemental/html/CanvasElement.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ object interface.
+ */
+public interface CanvasElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas#attr-height">height</a></code>
+ HTML attribute, specifying the height of the coordinate space in CSS pixels.
+ */
+ int getHeight();
+
+ void setHeight(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas#attr-width">width</a></code>
+ HTML attribute, specifying the width of the coordinate space in CSS pixels.
+ */
+ int getWidth();
+
+ void setWidth(int arg);
+
+
+ /**
+ * 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.
+ */
+ CanvasRenderingContext getContext(String contextId);
+
+
+ /**
+ * <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>
+ */
+ String toDataURL(String type);
+}
diff --git a/elemental/src/elemental/html/CanvasGradient.java b/elemental/src/elemental/html/CanvasGradient.java
new file mode 100644
index 0000000..9fd22d2
--- /dev/null
+++ b/elemental/src/elemental/html/CanvasGradient.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface CanvasGradient {
+
+ void addColorStop(float offset, String color);
+}
diff --git a/elemental/src/elemental/html/CanvasPattern.java b/elemental/src/elemental/html/CanvasPattern.java
new file mode 100644
index 0000000..081e37f
--- /dev/null
+++ b/elemental/src/elemental/html/CanvasPattern.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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).
+ */
+public interface CanvasPattern {
+}
diff --git a/elemental/src/elemental/html/CanvasRenderingContext.java b/elemental/src/elemental/html/CanvasRenderingContext.java
new file mode 100644
index 0000000..171421e
--- /dev/null
+++ b/elemental/src/elemental/html/CanvasRenderingContext.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface CanvasRenderingContext {
+
+ CanvasElement getCanvas();
+}
diff --git a/elemental/src/elemental/html/CanvasRenderingContext2D.java b/elemental/src/elemental/html/CanvasRenderingContext2D.java
new file mode 100644
index 0000000..21ac250
--- /dev/null
+++ b/elemental/src/elemental/html/CanvasRenderingContext2D.java
@@ -0,0 +1,727 @@
+/*
+ * 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 elemental.html;
+import elemental.util.Indexable;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ 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>
+ element, with "2d" as its argument.
+ */
+public interface CanvasRenderingContext2D extends CanvasRenderingContext {
+
+
+ /**
+ * Color or style to use inside shapes. Default <code>#000</code> (black).
+ */
+ Object getFillStyle();
+
+ void setFillStyle(Object arg);
+
+
+ /**
+ * Default value <code>10px sans-serif</code>.
+ */
+ String getFont();
+
+ void setFont(String arg);
+
+
+ /**
+ * Alpha value that is applied to shapes and images before they are composited onto the canvas. Default <code>1.0</code> (opaque).
+ */
+ float getGlobalAlpha();
+
+ void setGlobalAlpha(float arg);
+
+
+ /**
+ * 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>
+ */
+ String getGlobalCompositeOperation();
+
+ void setGlobalCompositeOperation(String arg);
+
+
+ /**
+ * Type of endings on the end of lines. Possible values: <code>butt</code> (default), <code>round</code>, <code>square</code>
+ */
+ String getLineCap();
+
+ void setLineCap(String arg);
+
+
+ /**
+ * Defines the type of corners where two lines meet. Possible values: <code>round</code>, <code>bevel</code>, <code>miter</code> (default)
+ */
+ String getLineJoin();
+
+ void setLineJoin(String arg);
+
+
+ /**
+ * Width of lines. Default <code>1.0</code>
+ */
+ float getLineWidth();
+
+ void setLineWidth(float arg);
+
+
+ /**
+ * Default <code>10</code>.
+ */
+ float getMiterLimit();
+
+ void setMiterLimit(float arg);
+
+
+ /**
+ * Specifies the blurring effect. Default <code>0</code>
+ */
+ float getShadowBlur();
+
+ void setShadowBlur(float arg);
+
+
+ /**
+ * Color of the shadow. Default fully-transparent black.
+ */
+ String getShadowColor();
+
+ void setShadowColor(String arg);
+
+
+ /**
+ * Horizontal distance the shadow will be offset. Default 0.
+ */
+ float getShadowOffsetX();
+
+ void setShadowOffsetX(float arg);
+
+
+ /**
+ * Vertical distance the shadow will be offset. Default 0.
+ */
+ float getShadowOffsetY();
+
+ void setShadowOffsetY(float arg);
+
+
+ /**
+ * Color or style to use for the lines around shapes. Default <code>#000</code> (black).
+ */
+ Object getStrokeStyle();
+
+ void setStrokeStyle(Object arg);
+
+
+ /**
+ * Possible values: <code>start</code> (default), <code>end</code>, <code>left</code>, <code>right</code> or <code>center</code>.
+ */
+ String getTextAlign();
+
+ void setTextAlign(String arg);
+
+ String getTextBaseline();
+
+ void setTextBaseline(String arg);
+
+ float getWebkitBackingStorePixelRatio();
+
+
+ /**
+ * Image smoothing mode; if disabled, images will not be smoothed if scaled.
+<span title="(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)
+">Requires Gecko 1.9.2</span>
+ */
+ boolean isWebkitImageSmoothingEnabled();
+
+ void setWebkitImageSmoothingEnabled(boolean arg);
+
+
+ /**
+ * An array which specifies the lengths of alternating dashes and gaps.
+ */
+ Indexable getWebkitLineDash();
+
+ void setWebkitLineDash(Indexable arg);
+
+
+ /**
+ * Specifies where to start a dasharray on a line.
+ */
+ float getWebkitLineDashOffset();
+
+ void setWebkitLineDashOffset(float arg);
+
+
+ /**
+ * <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>
+
+<div id="section_11"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+">Optional from Gecko 2.0</span>
+</dt> <dd>When <code>true</code> draws the arc anticlockwise, otherwise in a clockwise direction.</dd>
+</dl>
+</div>
+ */
+ void arc(float x, float y, float radius, float startAngle, float endAngle, boolean anticlockwise);
+
+
+ /**
+ * <p>Adds an arc with the given control points and radius, connected to the previous point by a straight line.</p>
+
+<div id="section_13"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void arcTo(float x1, float y1, float x2, float y2, float radius);
+
+ void beginPath();
+
+ void bezierCurveTo(float cp1x, float cp1y, float cp2x, float cp2y, float x, float y);
+
+
+ /**
+ * <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>
+
+<div id="section_19"><span id="Parameters_5"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void clearRect(float x, float y, float width, float height);
+
+ void clearShadow();
+
+ void clip();
+
+ void closePath();
+
+ ImageData createImageData(ImageData imagedata);
+
+ ImageData createImageData(float sw, float sh);
+
+ CanvasGradient createLinearGradient(float x0, float y0, float x1, float y1);
+
+
+ /**
+ * <div id="section_31"><span id="Parameters_10"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>image</code></dt> <dd>A DOM <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/element">element</a></code>
+ 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>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+.</dd> <dt><code>repetition</code></dt> <dd>?</dd>
+</dl>
+</div><div id="section_32"><span id="Return_value_3"></span><h6 class="editable">Return value</h6>
+<p>A new DOM canvas pattern object for use in pattern-based operations.</p>
+</div><div id="section_33"><span id="Exceptions_thrown"></span><h6 class="editable">Exceptions thrown</h6>
+<dl> <dt><code>NS_ERROR_DOM_INVALID_STATE_ERR</code>
+<span title="(Firefox 10.0 / Thunderbird 10.0)
+">Requires Gecko 10.0</span>
+</dt> <dd>The specified <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+ element for the <code>image</code> parameter is zero-sized (that is, one or both of its dimensions are 0 pixels).</dd>
+</dl>
+</div>
+ */
+ CanvasPattern createPattern(CanvasElement canvas, String repetitionType);
+
+
+ /**
+ * <div id="section_31"><span id="Parameters_10"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>image</code></dt> <dd>A DOM <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/element">element</a></code>
+ 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>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+.</dd> <dt><code>repetition</code></dt> <dd>?</dd>
+</dl>
+</div><div id="section_32"><span id="Return_value_3"></span><h6 class="editable">Return value</h6>
+<p>A new DOM canvas pattern object for use in pattern-based operations.</p>
+</div><div id="section_33"><span id="Exceptions_thrown"></span><h6 class="editable">Exceptions thrown</h6>
+<dl> <dt><code>NS_ERROR_DOM_INVALID_STATE_ERR</code>
+<span title="(Firefox 10.0 / Thunderbird 10.0)
+">Requires Gecko 10.0</span>
+</dt> <dd>The specified <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+ element for the <code>image</code> parameter is zero-sized (that is, one or both of its dimensions are 0 pixels).</dd>
+</dl>
+</div>
+ */
+ CanvasPattern createPattern(ImageElement image, String repetitionType);
+
+ CanvasGradient createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1);
+
+
+ /**
+ * <p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>
+
+<div id="section_41"><span id="Parameters_13"></span><h6 class="editable">Parameters</h6>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+). 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>
+</dl>
+<p>The diagram below illustrates the meanings of the various parameters.</p>
+<p><img alt="drawImage.png" class="internal default" src="https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png"></p>
+</div><div id="section_42"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_43"><span id="Compatibility_notes"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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)
+.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+ 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>
+</ul>
+</div>
+ */
+ void drawImage(ImageElement image, float x, float y);
+
+
+ /**
+ * <p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>
+
+<div id="section_41"><span id="Parameters_13"></span><h6 class="editable">Parameters</h6>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+). 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>
+</dl>
+<p>The diagram below illustrates the meanings of the various parameters.</p>
+<p><img alt="drawImage.png" class="internal default" src="https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png"></p>
+</div><div id="section_42"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_43"><span id="Compatibility_notes"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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)
+.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+ 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>
+</ul>
+</div>
+ */
+ void drawImage(ImageElement image, float x, float y, float width, float height);
+
+
+ /**
+ * <p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>
+
+<div id="section_41"><span id="Parameters_13"></span><h6 class="editable">Parameters</h6>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+). 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>
+</dl>
+<p>The diagram below illustrates the meanings of the various parameters.</p>
+<p><img alt="drawImage.png" class="internal default" src="https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png"></p>
+</div><div id="section_42"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_43"><span id="Compatibility_notes"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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)
+.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+ 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>
+</ul>
+</div>
+ */
+ void drawImage(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh);
+
+
+ /**
+ * <p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>
+
+<div id="section_41"><span id="Parameters_13"></span><h6 class="editable">Parameters</h6>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+). 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>
+</dl>
+<p>The diagram below illustrates the meanings of the various parameters.</p>
+<p><img alt="drawImage.png" class="internal default" src="https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png"></p>
+</div><div id="section_42"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_43"><span id="Compatibility_notes"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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)
+.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+ 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>
+</ul>
+</div>
+ */
+ void drawImage(CanvasElement canvas, float x, float y);
+
+
+ /**
+ * <p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>
+
+<div id="section_41"><span id="Parameters_13"></span><h6 class="editable">Parameters</h6>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+). 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>
+</dl>
+<p>The diagram below illustrates the meanings of the various parameters.</p>
+<p><img alt="drawImage.png" class="internal default" src="https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png"></p>
+</div><div id="section_42"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_43"><span id="Compatibility_notes"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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)
+.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+ 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>
+</ul>
+</div>
+ */
+ void drawImage(CanvasElement canvas, float x, float y, float width, float height);
+
+
+ /**
+ * <p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>
+
+<div id="section_41"><span id="Parameters_13"></span><h6 class="editable">Parameters</h6>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+). 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>
+</dl>
+<p>The diagram below illustrates the meanings of the various parameters.</p>
+<p><img alt="drawImage.png" class="internal default" src="https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png"></p>
+</div><div id="section_42"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_43"><span id="Compatibility_notes"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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)
+.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+ 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>
+</ul>
+</div>
+ */
+ void drawImage(CanvasElement canvas, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh);
+
+
+ /**
+ * <p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>
+
+<div id="section_41"><span id="Parameters_13"></span><h6 class="editable">Parameters</h6>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+). 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>
+</dl>
+<p>The diagram below illustrates the meanings of the various parameters.</p>
+<p><img alt="drawImage.png" class="internal default" src="https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png"></p>
+</div><div id="section_42"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_43"><span id="Compatibility_notes"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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)
+.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+ 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>
+</ul>
+</div>
+ */
+ void drawImage(VideoElement video, float x, float y);
+
+
+ /**
+ * <p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>
+
+<div id="section_41"><span id="Parameters_13"></span><h6 class="editable">Parameters</h6>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+). 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>
+</dl>
+<p>The diagram below illustrates the meanings of the various parameters.</p>
+<p><img alt="drawImage.png" class="internal default" src="https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png"></p>
+</div><div id="section_42"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_43"><span id="Compatibility_notes"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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)
+.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+ 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>
+</ul>
+</div>
+ */
+ void drawImage(VideoElement video, float x, float y, float width, float height);
+
+
+ /**
+ * <p>Draws the specified image. This method is available in multiple formats, providing a great deal of flexibility in its use.</p>
+
+<div id="section_41"><span id="Parameters_13"></span><h6 class="editable">Parameters</h6>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+). 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>
+</dl>
+<p>The diagram below illustrates the meanings of the various parameters.</p>
+<p><img alt="drawImage.png" class="internal default" src="https://developer.mozilla.org/@api/deki/files/5494/=drawImage.png"></p>
+</div><div id="section_42"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_43"><span id="Compatibility_notes"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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)
+.</li> <li>Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+ 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>
+</ul>
+</div>
+ */
+ void drawImage(VideoElement video, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh);
+
+ void drawImageFromRect(ImageElement image);
+
+ void drawImageFromRect(ImageElement image, float sx);
+
+ void drawImageFromRect(ImageElement image, float sx, float sy);
+
+ void drawImageFromRect(ImageElement image, float sx, float sy, float sw);
+
+ void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh);
+
+ void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx);
+
+ void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy);
+
+ void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy, float dw);
+
+ void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh);
+
+ void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh, String compositeOperation);
+
+
+ /**
+ * Fills the subpaths with the current fill style.
+ */
+ void fill();
+
+
+ /**
+ * <p>Draws a filled rectangle at <em>(x, y) </em>position whose size is determined by <em>width</em> and <em>height</em>.</p>
+
+<div id="section_49"><span id="Parameters_16"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void fillRect(float x, float y, float width, float height);
+
+ void fillText(String text, float x, float y);
+
+ void fillText(String text, float x, float y, float maxWidth);
+
+
+ /**
+ * <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>
+
+<div id="section_53"><span id="Parameters_18"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div><div id="section_54"><span id="Return_value_6"></span><h6 class="editable">Return value</h6>
+<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>
+</div>
+ */
+ ImageData getImageData(float sx, float sy, float sw, float sh);
+
+
+ /**
+ * <p>Reports whether or not the specified point is contained in the current path.</p>
+
+<div id="section_56"><span id="Parameters_19"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div><div id="section_57"><span id="Return_value_7"></span><h6 class="editable">Return value</h6>
+<p><code>true</code> if the specified point is contained in the current path; otherwise <code>false</code>.</p>
+</div><div id="section_58"><span id="Compatibility_notes_2"></span><h6 class="editable">Compatibility notes</h6>
+<ul> <li>Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+, 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>
+</ul>
+</div>
+ */
+ boolean isPointInPath(float x, float y);
+
+
+ /**
+ * <p>Connects the last point in the subpath to the <code>x, y</code> coordinates with a straight line.</p>
+
+<div id="section_60"><span id="Parameters_20"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void lineTo(float x, float y);
+
+ TextMetrics measureText(String text);
+
+
+ /**
+ * <p>Moves the starting point of a new subpath to the <strong>(x, y)</strong> coordinates.</p>
+
+<div id="section_65"><span id="Parameters_22"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void moveTo(float x, float y);
+
+
+ /**
+ * <h6 class="editable">Compatibility notes</h6>
+<ul> <li>Starting in Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0)
+, non-finite values to any of these parameters causes the call to putImageData() to be silently ignored, rather than throwing an exception.</li>
+</ul>
+ */
+ void putImageData(ImageData imagedata, float dx, float dy);
+
+
+ /**
+ * <h6 class="editable">Compatibility notes</h6>
+<ul> <li>Starting in Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0)
+, non-finite values to any of these parameters causes the call to putImageData() to be silently ignored, rather than throwing an exception.</li>
+</ul>
+ */
+ void putImageData(ImageData imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight);
+
+ void quadraticCurveTo(float cpx, float cpy, float x, float y);
+
+ void rect(float x, float y, float width, float height);
+
+
+ /**
+ * Restores the drawing style state to the last element on the 'state stack' saved by save()
+ */
+ void restore();
+
+ void rotate(float angle);
+
+
+ /**
+ * Saves the current drawing style state using a stack so you can revert any change you make to it using restore().
+ */
+ void save();
+
+ void scale(float sx, float sy);
+
+ void setAlpha(float alpha);
+
+ void setCompositeOperation(String compositeOperation);
+
+ void setFillColor(String color);
+
+ void setFillColor(String color, float alpha);
+
+ void setFillColor(float grayLevel);
+
+ void setFillColor(float grayLevel, float alpha);
+
+ void setFillColor(float r, float g, float b, float a);
+
+ void setFillColor(float c, float m, float y, float k, float a);
+
+ void setShadow(float width, float height, float blur);
+
+ void setShadow(float width, float height, float blur, String color);
+
+ void setShadow(float width, float height, float blur, String color, float alpha);
+
+ void setShadow(float width, float height, float blur, float grayLevel);
+
+ void setShadow(float width, float height, float blur, float grayLevel, float alpha);
+
+ void setShadow(float width, float height, float blur, float r, float g, float b, float a);
+
+ void setShadow(float width, float height, float blur, float c, float m, float y, float k, float a);
+
+ void setStrokeColor(String color);
+
+ void setStrokeColor(String color, float alpha);
+
+ void setStrokeColor(float grayLevel);
+
+ void setStrokeColor(float grayLevel, float alpha);
+
+ void setStrokeColor(float r, float g, float b, float a);
+
+ void setStrokeColor(float c, float m, float y, float k, float a);
+
+ void setTransform(float m11, float m12, float m21, float m22, float dx, float dy);
+
+
+ /**
+ * Strokes the subpaths with the current stroke style.
+ */
+ void stroke();
+
+
+ /**
+ * <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>
+
+<div id="section_88"><span id="Parameters_33"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void strokeRect(float x, float y, float width, float height);
+
+
+ /**
+ * <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>
+
+<div id="section_88"><span id="Parameters_33"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void strokeRect(float x, float y, float width, float height, float lineWidth);
+
+ void strokeText(String text, float x, float y);
+
+ void strokeText(String text, float x, float y, float maxWidth);
+
+ void transform(float m11, float m12, float m21, float m22, float dx, float dy);
+
+
+ /**
+ * <p>Moves the origin point of the context to (x, y).</p>
+
+<div id="section_94"><span id="Parameters_36"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void translate(float tx, float ty);
+
+ ImageData webkitGetImageDataHD(float sx, float sy, float sw, float sh);
+
+ void webkitPutImageDataHD(ImageData imagedata, float dx, float dy);
+
+ void webkitPutImageDataHD(ImageData imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight);
+}
diff --git a/elemental/src/elemental/html/ClientRect.java b/elemental/src/elemental/html/ClientRect.java
new file mode 100644
index 0000000..7804270
--- /dev/null
+++ b/elemental/src/elemental/html/ClientRect.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div>
+
+<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>
+.</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)
+"></div><div title="Last changed in Gecko 1.9.1 (Firefox 3)
+"></div></div>
+<div>Inherits from: <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISupports">nsISupports</a></code>
+<span>Last changed in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)
+</span></div>
+ */
+public interface ClientRect {
+
+
+ /**
+ * Y-coordinate, relative to the viewport origin, of the bottom of the rectangle box. <strong>Read only.</strong>
+ */
+ float getBottom();
+
+
+ /**
+ * Height of the rectangle box (This is identical to <code>bottom</code> minus <code>top</code>). <strong>Read only.</strong>
+ */
+ float getHeight();
+
+
+ /**
+ * X-coordinate, relative to the viewport origin, of the left of the rectangle box. <strong>Read only.</strong>
+ */
+ float getLeft();
+
+
+ /**
+ * X-coordinate, relative to the viewport origin, of the right of the rectangle box. <strong>Read only.</strong>
+ */
+ float getRight();
+
+
+ /**
+ * Y-coordinate, relative to the viewport origin, of the top of the rectangle box. <strong>Read only.</strong>
+ */
+ float getTop();
+
+
+ /**
+ * Width of the rectangle box (This is identical to <code>right</code> minus <code>left</code>). <strong>Read only.</strong>
+<span title="(Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)
+">Requires Gecko 1.9.1</span>
+ */
+ float getWidth();
+}
diff --git a/elemental/src/elemental/html/ClientRectList.java b/elemental/src/elemental/html/ClientRectList.java
new file mode 100644
index 0000000..fcc6aaf
--- /dev/null
+++ b/elemental/src/elemental/html/ClientRectList.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ClientRectList {
+
+ int getLength();
+
+ ClientRect item(int index);
+}
diff --git a/elemental/src/elemental/html/Console.java b/elemental/src/elemental/html/Console.java
new file mode 100644
index 0000000..36eaea9
--- /dev/null
+++ b/elemental/src/elemental/html/Console.java
@@ -0,0 +1,76 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<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>
+<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>
+ */
+public interface Console {
+
+ MemoryInfo getMemory();
+
+ Indexable getProfiles();
+
+ void assertCondition(boolean condition, Object arg);
+
+ void count();
+
+ void debug(Object arg);
+
+ void dir();
+
+ void dirxml();
+
+ void error(Object arg);
+
+ void group(Object arg);
+
+ void groupCollapsed(Object arg);
+
+ void groupEnd();
+
+ void info(Object arg);
+
+ void log(Object arg);
+
+ void markTimeline();
+
+ void profile(String title);
+
+ void profileEnd(String title);
+
+ void time(String title);
+
+ void timeEnd(String title, Object arg);
+
+ void timeStamp(Object arg);
+
+ void trace(Object arg);
+
+ void warn(Object arg);
+}
diff --git a/elemental/src/elemental/html/ContentElement.java b/elemental/src/elemental/html/ContentElement.java
new file mode 100644
index 0000000..94852b1
--- /dev/null
+++ b/elemental/src/elemental/html/ContentElement.java
@@ -0,0 +1,36 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ContentElement extends Element {
+
+ String getSelect();
+
+ void setSelect(String arg);
+}
diff --git a/elemental/src/elemental/html/ConvolverNode.java b/elemental/src/elemental/html/ConvolverNode.java
new file mode 100644
index 0000000..e11ea5a
--- /dev/null
+++ b/elemental/src/elemental/html/ConvolverNode.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ConvolverNode extends AudioNode {
+
+ AudioBuffer getBuffer();
+
+ void setBuffer(AudioBuffer arg);
+
+ boolean isNormalize();
+
+ void setNormalize(boolean arg);
+}
diff --git a/elemental/src/elemental/html/Crypto.java b/elemental/src/elemental/html/Crypto.java
new file mode 100644
index 0000000..06f9bf3
--- /dev/null
+++ b/elemental/src/elemental/html/Crypto.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Non-standard
+ */
+public interface Crypto {
+
+ void getRandomValues(ArrayBufferView array);
+}
diff --git a/elemental/src/elemental/html/DListElement.java b/elemental/src/elemental/html/DListElement.java
new file mode 100644
index 0000000..27abeb7
--- /dev/null
+++ b/elemental/src/elemental/html/DListElement.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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.
+ */
+public interface DListElement extends Element {
+
+
+ /**
+ * Indicates that spacing between list items should be reduced.
+ */
+ boolean isCompact();
+
+ void setCompact(boolean arg);
+}
diff --git a/elemental/src/elemental/html/DOMFileSystem.java b/elemental/src/elemental/html/DOMFileSystem.java
new file mode 100644
index 0000000..05f772d
--- /dev/null
+++ b/elemental/src/elemental/html/DOMFileSystem.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMFileSystem {
+
+ String getName();
+
+ DirectoryEntry getRoot();
+}
diff --git a/elemental/src/elemental/html/DOMFileSystemSync.java b/elemental/src/elemental/html/DOMFileSystemSync.java
new file mode 100644
index 0000000..3621d92
--- /dev/null
+++ b/elemental/src/elemental/html/DOMFileSystemSync.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMFileSystemSync {
+
+ String getName();
+
+ DirectoryEntrySync getRoot();
+}
diff --git a/elemental/src/elemental/html/DOMMimeType.java b/elemental/src/elemental/html/DOMMimeType.java
new file mode 100644
index 0000000..36af19e
--- /dev/null
+++ b/elemental/src/elemental/html/DOMMimeType.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMMimeType {
+
+ String getDescription();
+
+ DOMPlugin getEnabledPlugin();
+
+ String getSuffixes();
+
+ String getType();
+}
diff --git a/elemental/src/elemental/html/DOMMimeTypeArray.java b/elemental/src/elemental/html/DOMMimeTypeArray.java
new file mode 100644
index 0000000..41863fe
--- /dev/null
+++ b/elemental/src/elemental/html/DOMMimeTypeArray.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMMimeTypeArray {
+
+ int getLength();
+
+ DOMMimeType item(int index);
+
+ DOMMimeType namedItem(String name);
+}
diff --git a/elemental/src/elemental/html/DOMPlugin.java b/elemental/src/elemental/html/DOMPlugin.java
new file mode 100644
index 0000000..de6e993
--- /dev/null
+++ b/elemental/src/elemental/html/DOMPlugin.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>Plugin</code> interface provides information about a browser plugin.
+ */
+public interface DOMPlugin {
+
+
+ /**
+ * A human readable description of the plugin. <strong>Read only.</strong>
+ */
+ String getDescription();
+
+
+ /**
+ * The filename of the plugin file. <strong>Read only.</strong>
+ */
+ String getFilename();
+
+ int getLength();
+
+
+ /**
+ * The name of the plugin. <strong>Read only.</strong>
+ */
+ String getName();
+
+
+ /**
+ * Returns the MIME type of a supported content type, given the index number into a list of supported types.
+ */
+ DOMMimeType item(int index);
+
+
+ /**
+ * Returns the MIME type of a supported item.
+ */
+ DOMMimeType namedItem(String name);
+}
diff --git a/elemental/src/elemental/html/DOMPluginArray.java b/elemental/src/elemental/html/DOMPluginArray.java
new file mode 100644
index 0000000..6b4c558
--- /dev/null
+++ b/elemental/src/elemental/html/DOMPluginArray.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMPluginArray {
+
+ int getLength();
+
+ DOMPlugin item(int index);
+
+ DOMPlugin namedItem(String name);
+
+ void refresh(boolean reload);
+}
diff --git a/elemental/src/elemental/html/DOMURL.java b/elemental/src/elemental/html/DOMURL.java
new file mode 100644
index 0000000..a9e0858
--- /dev/null
+++ b/elemental/src/elemental/html/DOMURL.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.MediaStream;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DOMURL {
+}
diff --git a/elemental/src/elemental/html/DataView.java b/elemental/src/elemental/html/DataView.java
new file mode 100644
index 0000000..46322b9
--- /dev/null
+++ b/elemental/src/elemental/html/DataView.java
@@ -0,0 +1,117 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong>
+<div>This page is not complete.</div>
+</div>
+
+<p></p>
+<div class="note"><strong>Note:</strong> <code>DataView</code> is not yet implemented in Gecko. It is implemented in Chrome 9.</div>
+<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>
+<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>
+ */
+public interface DataView extends ArrayBufferView {
+
+ float getFloat32(int byteOffset);
+
+ float getFloat32(int byteOffset, boolean littleEndian);
+
+ double getFloat64(int byteOffset);
+
+ double getFloat64(int byteOffset, boolean littleEndian);
+
+ short getInt16(int byteOffset);
+
+ short getInt16(int byteOffset, boolean littleEndian);
+
+ int getInt32(int byteOffset);
+
+ int getInt32(int byteOffset, boolean littleEndian);
+
+
+ /**
+ * <p>Gets a signed 8-bit integer at the specified byte offset from the start of the view.</p>
+
+<div id="section_11"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>offset</code></dt> <dd>The offset, in byte, from the start of the view where to read the data.</dd>
+</dl>
+</div><div id="section_12"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div>
+ */
+ Object getInt8();
+
+ int getUint16(int byteOffset);
+
+ int getUint16(int byteOffset, boolean littleEndian);
+
+ int getUint32(int byteOffset);
+
+ int getUint32(int byteOffset, boolean littleEndian);
+
+
+ /**
+ * <p>Gets an unsigned 8-bit integer at the specified byte offset from the start of the view.</p>
+
+<div id="section_14"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>offset</code></dt> <dd>The offset, in byte, from the start of the view where to read the data.</dd>
+</dl>
+<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>
+</dl>
+</div>
+ */
+ Object getUint8();
+
+ void setFloat32(int byteOffset, float value);
+
+ void setFloat32(int byteOffset, float value, boolean littleEndian);
+
+ void setFloat64(int byteOffset, double value);
+
+ void setFloat64(int byteOffset, double value, boolean littleEndian);
+
+ void setInt16(int byteOffset, short value);
+
+ void setInt16(int byteOffset, short value, boolean littleEndian);
+
+ void setInt32(int byteOffset, int value);
+
+ void setInt32(int byteOffset, int value, boolean littleEndian);
+
+ void setInt8();
+
+ void setUint16(int byteOffset, int value);
+
+ void setUint16(int byteOffset, int value, boolean littleEndian);
+
+ void setUint32(int byteOffset, int value);
+
+ void setUint32(int byteOffset, int value, boolean littleEndian);
+
+ void setUint8();
+}
diff --git a/elemental/src/elemental/html/Database.java b/elemental/src/elemental/html/Database.java
new file mode 100644
index 0000000..70077d7
--- /dev/null
+++ b/elemental/src/elemental/html/Database.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p></p>
+<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>
+<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>
+ */
+public interface Database {
+
+ String getVersion();
+
+ void changeVersion(String oldVersion, String newVersion);
+
+ void changeVersion(String oldVersion, String newVersion, SQLTransactionCallback callback);
+
+ void changeVersion(String oldVersion, String newVersion, SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback);
+
+ void changeVersion(String oldVersion, String newVersion, SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback, VoidCallback successCallback);
+
+ void readTransaction(SQLTransactionCallback callback);
+
+ void readTransaction(SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback);
+
+ void readTransaction(SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback, VoidCallback successCallback);
+
+ void transaction(SQLTransactionCallback callback);
+
+ void transaction(SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback);
+
+ void transaction(SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback, VoidCallback successCallback);
+}
diff --git a/elemental/src/elemental/html/DatabaseCallback.java b/elemental/src/elemental/html/DatabaseCallback.java
new file mode 100644
index 0000000..71debcb
--- /dev/null
+++ b/elemental/src/elemental/html/DatabaseCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface DatabaseCallback {
+ boolean onDatabaseCallback(Object database);
+}
diff --git a/elemental/src/elemental/html/DatabaseSync.java b/elemental/src/elemental/html/DatabaseSync.java
new file mode 100644
index 0000000..29c38ff
--- /dev/null
+++ b/elemental/src/elemental/html/DatabaseSync.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong>
+<div>This page is not complete.</div>
+</div>
+
+<p></p>
+<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>
+ */
+public interface DatabaseSync {
+
+ String getLastErrorMessage();
+
+
+ /**
+ * The version of the connected database. Has the null value when the database is first created.
+ */
+ String getVersion();
+
+ void changeVersion(String oldVersion, String newVersion);
+
+ void changeVersion(String oldVersion, String newVersion, SQLTransactionSyncCallback callback);
+
+ void readTransaction(SQLTransactionSyncCallback callback);
+
+
+ /**
+ * <p>Creates and returns a transaction, acquiring locks on the given database objects, within the specified timeout duration, if possible.</p>
+<pre>IDBTransactionSync transaction (
+ in optional DOMStringList storeNames,
+ in optional unsigned int timeout
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_20"><span id="Parameters_5"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_21"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_22"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<p>This method can raise an IDBDatabaseException with the following code:</p>
+<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>
+</dl></div>
+ */
+ void transaction(SQLTransactionSyncCallback callback);
+}
diff --git a/elemental/src/elemental/html/DedicatedWorkerGlobalScope.java b/elemental/src/elemental/html/DedicatedWorkerGlobalScope.java
new file mode 100644
index 0000000..c326d7c
--- /dev/null
+++ b/elemental/src/elemental/html/DedicatedWorkerGlobalScope.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.html;
+import elemental.util.Indexable;
+import elemental.events.EventListener;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DedicatedWorkerGlobalScope extends WorkerGlobalScope {
+
+ EventListener getOnmessage();
+
+ void setOnmessage(EventListener arg);
+
+ void postMessage(Object message);
+
+ void postMessage(Object message, Indexable messagePorts);
+
+ void webkitPostMessage(Object message);
+
+ void webkitPostMessage(Object message, Indexable transferList);
+}
diff --git a/elemental/src/elemental/html/DelayNode.java b/elemental/src/elemental/html/DelayNode.java
new file mode 100644
index 0000000..072e00f
--- /dev/null
+++ b/elemental/src/elemental/html/DelayNode.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DelayNode extends AudioNode {
+
+ AudioParam getDelayTime();
+}
diff --git a/elemental/src/elemental/html/DeprecatedPeerConnection.java b/elemental/src/elemental/html/DeprecatedPeerConnection.java
new file mode 100644
index 0000000..e0fac8c
--- /dev/null
+++ b/elemental/src/elemental/html/DeprecatedPeerConnection.java
@@ -0,0 +1,94 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.MediaStream;
+import elemental.events.EventListener;
+import elemental.dom.MediaStreamList;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DeprecatedPeerConnection extends EventTarget {
+
+ static final int ACTIVE = 2;
+
+ static final int CLOSED = 3;
+
+ static final int NEGOTIATING = 1;
+
+ static final int NEW = 0;
+
+ MediaStreamList getLocalStreams();
+
+ EventListener getOnaddstream();
+
+ void setOnaddstream(EventListener arg);
+
+ EventListener getOnconnecting();
+
+ void setOnconnecting(EventListener arg);
+
+ EventListener getOnmessage();
+
+ void setOnmessage(EventListener arg);
+
+ EventListener getOnopen();
+
+ void setOnopen(EventListener arg);
+
+ EventListener getOnremovestream();
+
+ void setOnremovestream(EventListener arg);
+
+ EventListener getOnstatechange();
+
+ void setOnstatechange(EventListener arg);
+
+ int getReadyState();
+
+ MediaStreamList getRemoteStreams();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ void addStream(MediaStream stream);
+
+ void close();
+
+ boolean dispatchEvent(Event event);
+
+ void processSignalingMessage(String message);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ void removeStream(MediaStream stream);
+
+ void send(String text);
+}
diff --git a/elemental/src/elemental/html/DetailsElement.java b/elemental/src/elemental/html/DetailsElement.java
new file mode 100644
index 0000000..59c0edf
--- /dev/null
+++ b/elemental/src/elemental/html/DetailsElement.java
@@ -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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The HTML <em>details</em> element (<code><details></code>) is used as a disclosure widget from which the user the retrieve additional information.
+ */
+public interface DetailsElement extends Element {
+
+
+ /**
+ * This Boolean attribute indicates whether the details will be shown to the user on page load. If omitted the details will be hidden.
+ */
+ boolean isOpen();
+
+ void setOpen(boolean arg);
+}
diff --git a/elemental/src/elemental/html/DirectoryElement.java b/elemental/src/elemental/html/DirectoryElement.java
new file mode 100644
index 0000000..8b685a6
--- /dev/null
+++ b/elemental/src/elemental/html/DirectoryElement.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Obsolete
+ */
+public interface DirectoryElement extends Element {
+
+
+ /**
+ * 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>
+ 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>
+ */
+ boolean isCompact();
+
+ void setCompact(boolean arg);
+}
diff --git a/elemental/src/elemental/html/DirectoryEntry.java b/elemental/src/elemental/html/DirectoryEntry.java
new file mode 100644
index 0000000..f41bb78
--- /dev/null
+++ b/elemental/src/elemental/html/DirectoryEntry.java
@@ -0,0 +1,210 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong> <div>This page is not complete.</div>
+</div>
+<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>
+ */
+public interface DirectoryEntry extends Entry {
+
+
+ /**
+ * <p>Creates a new DirectoryReader to read entries from this Directory.</p>
+<pre>void getMetada ();</pre> <div id="section_7"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>DirectoryReader</code></dt>
+</dl> </div>
+ */
+ DirectoryReader createReader();
+
+
+ /**
+ * <p>Creates or looks up a directory.</p>
+<pre>void vopyTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_12"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</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>
+ </div><div id="section_13"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void getDirectory(String path);
+
+
+ /**
+ * <p>Creates or looks up a directory.</p>
+<pre>void vopyTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_12"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</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>
+ </div><div id="section_13"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void getDirectory(String path, Object flags);
+
+
+ /**
+ * <p>Creates or looks up a directory.</p>
+<pre>void vopyTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_12"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</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>
+ </div><div id="section_13"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void getDirectory(String path, Object flags, EntryCallback successCallback);
+
+
+ /**
+ * <p>Creates or looks up a directory.</p>
+<pre>void vopyTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_12"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</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>
+ </div><div id="section_13"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void getDirectory(String path, Object flags, EntryCallback successCallback, ErrorCallback errorCallback);
+
+
+ /**
+ * <p>Creates or looks up a file.</p>
+<pre>void moveTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_9"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</ul>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void getFile(String path);
+
+
+ /**
+ * <p>Creates or looks up a file.</p>
+<pre>void moveTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_9"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</ul>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void getFile(String path, Object flags);
+
+
+ /**
+ * <p>Creates or looks up a file.</p>
+<pre>void moveTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_9"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</ul>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void getFile(String path, Object flags, EntryCallback successCallback);
+
+
+ /**
+ * <p>Creates or looks up a file.</p>
+<pre>void moveTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_9"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</ul>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void getFile(String path, Object flags, EntryCallback successCallback, ErrorCallback errorCallback);
+
+
+ /**
+ * <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>
+<pre>DOMString toURL (
+ <em>(in </em>VoidCallback successCallback, optional ErrorCallback errorCallback<em>);</em>
+);</pre>
+<div id="section_15"><span id="Parameter_3"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl> </div><div id="section_16"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void removeRecursively(VoidCallback successCallback);
+
+
+ /**
+ * <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>
+<pre>DOMString toURL (
+ <em>(in </em>VoidCallback successCallback, optional ErrorCallback errorCallback<em>);</em>
+);</pre>
+<div id="section_15"><span id="Parameter_3"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl> </div><div id="section_16"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void removeRecursively(VoidCallback successCallback, ErrorCallback errorCallback);
+}
diff --git a/elemental/src/elemental/html/DirectoryEntrySync.java b/elemental/src/elemental/html/DirectoryEntrySync.java
new file mode 100644
index 0000000..b9a8bf7
--- /dev/null
+++ b/elemental/src/elemental/html/DirectoryEntrySync.java
@@ -0,0 +1,102 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong> <div>This page is not complete.</div>
+</div>
+<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>
+ */
+public interface DirectoryEntrySync extends EntrySync {
+
+
+ /**
+ * <p>Creates a new DirectoryReader to read entries from this Directory.</p>
+<pre>void getMetada ();</pre>
+<div id="section_6"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>DirectoryReader</code></dt>
+</dl>
+</div>
+ */
+ DirectoryReaderSync createReader();
+
+
+ /**
+ * <p>Creates or looks up a directory.</p>
+<pre>void vopyTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_11"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</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>
+</div><div id="section_12"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ DirectoryEntrySync getDirectory(String path, Object flags);
+
+
+ /**
+ * <p>Creates or looks up a file.</p>
+<pre>void moveTo (
+ <em>(in DOMString path, optional Flags options, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_8"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+<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>
+</ul>
+<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_9"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ FileEntrySync getFile(String path, Object flags);
+
+
+ /**
+ * <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>
+<pre>DOMString toURL (
+ <em>(in </em>VoidCallback successCallback, optional ErrorCallback errorCallback<em>);</em>
+);</pre>
+<div id="section_14"><span id="Parameter_3"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_15"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void removeRecursively();
+}
diff --git a/elemental/src/elemental/html/DirectoryReader.java b/elemental/src/elemental/html/DirectoryReader.java
new file mode 100644
index 0000000..177214f
--- /dev/null
+++ b/elemental/src/elemental/html/DirectoryReader.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>`DRAFT</strong> <div>This page is not complete.</div>
+</div>
+<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>
+ */
+public interface DirectoryReader {
+
+ void readEntries(EntriesCallback successCallback);
+
+ void readEntries(EntriesCallback successCallback, ErrorCallback errorCallback);
+}
diff --git a/elemental/src/elemental/html/DirectoryReaderSync.java b/elemental/src/elemental/html/DirectoryReaderSync.java
new file mode 100644
index 0000000..a624e4a
--- /dev/null
+++ b/elemental/src/elemental/html/DirectoryReaderSync.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>`DRAFT</strong> <div>This page is not complete.</div>
+</div>
+<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>
+ */
+public interface DirectoryReaderSync {
+
+ EntryArraySync readEntries();
+}
diff --git a/elemental/src/elemental/html/DivElement.java b/elemental/src/elemental/html/DivElement.java
new file mode 100644
index 0000000..33beae6
--- /dev/null
+++ b/elemental/src/elemental/html/DivElement.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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
+<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.
+ */
+public interface DivElement extends Element {
+
+
+ /**
+ * Enumerated attribute indicating alignment of the element's contents with respect to the surrounding context.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+}
diff --git a/elemental/src/elemental/html/DynamicsCompressorNode.java b/elemental/src/elemental/html/DynamicsCompressorNode.java
new file mode 100644
index 0000000..c22d5e6
--- /dev/null
+++ b/elemental/src/elemental/html/DynamicsCompressorNode.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface DynamicsCompressorNode extends AudioNode {
+
+ AudioParam getAttack();
+
+ AudioParam getKnee();
+
+ AudioParam getRatio();
+
+ AudioParam getReduction();
+
+ AudioParam getRelease();
+
+ AudioParam getThreshold();
+}
diff --git a/elemental/src/elemental/html/EXTTextureFilterAnisotropic.java b/elemental/src/elemental/html/EXTTextureFilterAnisotropic.java
new file mode 100644
index 0000000..628abd8
--- /dev/null
+++ b/elemental/src/elemental/html/EXTTextureFilterAnisotropic.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface EXTTextureFilterAnisotropic {
+
+ static final int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
+
+ static final int TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
+}
diff --git a/elemental/src/elemental/html/EmbedElement.java b/elemental/src/elemental/html/EmbedElement.java
new file mode 100644
index 0000000..61efa18
--- /dev/null
+++ b/elemental/src/elemental/html/EmbedElement.java
@@ -0,0 +1,87 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.svg.SVGDocument;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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.
+ */
+public interface EmbedElement extends Element {
+
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/embed#attr-height">height</a></code>
+ HTML attribute, containing the displayed height of the resource.
+ */
+ String getHeight();
+
+ void setHeight(String arg);
+
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/embed#attr-src">src</a></code>
+ HTML attribute, containing the address of the resource.
+ */
+ String getSrc();
+
+ void setSrc(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/embed#attr-type">type</a></code>
+ HTML attribute, containing the type of the resource.
+ */
+ String getType();
+
+ void setType(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/embed#attr-width">width</a></code>
+ HTML attribute, containing the displayed width of the resource.
+ */
+ String getWidth();
+
+ void setWidth(String arg);
+
+ SVGDocument getSVGDocument();
+}
diff --git a/elemental/src/elemental/html/EntriesCallback.java b/elemental/src/elemental/html/EntriesCallback.java
new file mode 100644
index 0000000..c4ab044
--- /dev/null
+++ b/elemental/src/elemental/html/EntriesCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface EntriesCallback {
+ boolean onEntriesCallback(EntryArray entries);
+}
diff --git a/elemental/src/elemental/html/Entry.java b/elemental/src/elemental/html/Entry.java
new file mode 100644
index 0000000..a368f60
--- /dev/null
+++ b/elemental/src/elemental/html/Entry.java
@@ -0,0 +1,327 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong> <div>This page is not complete.</div>
+</div>
+<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>
+ */
+public interface Entry {
+
+
+ /**
+ * The file system on which the entry resides.
+ */
+ DOMFileSystem getFilesystem();
+
+ String getFullPath();
+
+
+ /**
+ * The entry is a directory.
+ */
+ boolean isDirectory();
+
+
+ /**
+ * The entry is a file.
+ */
+ boolean isFile();
+
+
+ /**
+ * The name of the entry, excluding the path leading to it.
+ */
+ String getName();
+
+
+ /**
+ * <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>
+<pre>void vopyTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_12"><span id="Parameter_3"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_13"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void copyTo(DirectoryEntry parent);
+
+
+ /**
+ * <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>
+<pre>void vopyTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_12"><span id="Parameter_3"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_13"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void copyTo(DirectoryEntry parent, String name);
+
+
+ /**
+ * <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>
+<pre>void vopyTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_12"><span id="Parameter_3"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_13"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void copyTo(DirectoryEntry parent, String name, EntryCallback successCallback);
+
+
+ /**
+ * <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>
+<pre>void vopyTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_12"><span id="Parameter_3"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_13"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void copyTo(DirectoryEntry parent, String name, EntryCallback successCallback, ErrorCallback errorCallback);
+
+
+ /**
+ * <p>Look up metadata about this entry.</p>
+<pre>void getMetada (
+ in MetadataCallback ErrorCallback
+);</pre>
+<div id="section_6"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_7"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void getMetadata(MetadataCallback successCallback);
+
+
+ /**
+ * <p>Look up metadata about this entry.</p>
+<pre>void getMetada (
+ in MetadataCallback ErrorCallback
+);</pre>
+<div id="section_6"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_7"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void getMetadata(MetadataCallback successCallback, ErrorCallback errorCallback);
+
+
+ /**
+ * <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>
+<pre>void getParent (
+ <em>(in EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_21"><span id="Parameter_6"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_22"><span id="Returns_6"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void getParent();
+
+
+ /**
+ * <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>
+<pre>void getParent (
+ <em>(in EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_21"><span id="Parameter_6"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_22"><span id="Returns_6"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void getParent(EntryCallback successCallback);
+
+
+ /**
+ * <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>
+<pre>void getParent (
+ <em>(in EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_21"><span id="Parameter_6"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_22"><span id="Returns_6"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void getParent(EntryCallback successCallback, ErrorCallback errorCallback);
+
+
+ /**
+ * <p>Move an entry to a different location on the file system. You cannot do the following:</p>
+<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>
+</ul>
+<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>
+<pre>void moveTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_9"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_10"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void moveTo(DirectoryEntry parent);
+
+
+ /**
+ * <p>Move an entry to a different location on the file system. You cannot do the following:</p>
+<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>
+</ul>
+<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>
+<pre>void moveTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_9"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_10"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void moveTo(DirectoryEntry parent, String name);
+
+
+ /**
+ * <p>Move an entry to a different location on the file system. You cannot do the following:</p>
+<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>
+</ul>
+<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>
+<pre>void moveTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_9"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_10"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void moveTo(DirectoryEntry parent, String name, EntryCallback successCallback);
+
+
+ /**
+ * <p>Move an entry to a different location on the file system. You cannot do the following:</p>
+<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>
+</ul>
+<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>
+<pre>void moveTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_9"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_10"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void moveTo(DirectoryEntry parent, String name, EntryCallback successCallback, ErrorCallback errorCallback);
+
+
+ /**
+ * <p>Deletes a file or directory. You cannot delete an empty directory or the root directory of a filesystem.</p>
+<pre>void remove (
+ <em>(in VoidCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_18"><span id="Parameter_5"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_19"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void remove(VoidCallback successCallback);
+
+
+ /**
+ * <p>Deletes a file or directory. You cannot delete an empty directory or the root directory of a filesystem.</p>
+<pre>void remove (
+ <em>(in VoidCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_18"><span id="Parameter_5"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_19"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void remove(VoidCallback successCallback, ErrorCallback errorCallback);
+
+
+ /**
+ * <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>
+<pre>DOMString toURL (
+ <em>(in </em>optional DOMString mimeType<em>);</em>
+);</pre>
+<div id="section_15"><span id="Parameter_4"></span><h5 class="editable">Parameter</h5>
+<dl> <dt>mimeType</dt> <dd>For a FileEntry, the mime type to be used to interpret the file, when loaded through this URL.</dd>
+</dl>
+</div><div id="section_16"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>DOMString</code></dt>
+</dl>
+</div>
+ */
+ String toURL();
+}
diff --git a/elemental/src/elemental/html/EntryArray.java b/elemental/src/elemental/html/EntryArray.java
new file mode 100644
index 0000000..18db383
--- /dev/null
+++ b/elemental/src/elemental/html/EntryArray.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface EntryArray {
+
+ int getLength();
+
+ Entry item(int index);
+}
diff --git a/elemental/src/elemental/html/EntryArraySync.java b/elemental/src/elemental/html/EntryArraySync.java
new file mode 100644
index 0000000..83dd62b
--- /dev/null
+++ b/elemental/src/elemental/html/EntryArraySync.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface EntryArraySync {
+
+ int getLength();
+
+ EntrySync item(int index);
+}
diff --git a/elemental/src/elemental/html/EntryCallback.java b/elemental/src/elemental/html/EntryCallback.java
new file mode 100644
index 0000000..4f8e6dd
--- /dev/null
+++ b/elemental/src/elemental/html/EntryCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface EntryCallback {
+ boolean onEntryCallback(Entry entry);
+}
diff --git a/elemental/src/elemental/html/EntrySync.java b/elemental/src/elemental/html/EntrySync.java
new file mode 100644
index 0000000..632c8b0
--- /dev/null
+++ b/elemental/src/elemental/html/EntrySync.java
@@ -0,0 +1,141 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong> <div>This page is not complete.</div>
+</div>
+<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>
+ */
+public interface EntrySync {
+
+ DOMFileSystemSync getFilesystem();
+
+ String getFullPath();
+
+ boolean isDirectory();
+
+ boolean isFile();
+
+ String getName();
+
+
+ /**
+ * <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>
+<pre>void vopyTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_10"><span id="Parameter_3"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_11"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ EntrySync copyTo(DirectoryEntrySync parent, String name);
+
+
+ /**
+ * <p>Look up metadata about this entry.</p>
+<pre>void getMetada (
+ in MetadataCallback ErrorCallback
+);</pre>
+<div id="section_4"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_5"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ Metadata getMetadata();
+
+
+ /**
+ * <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>
+<pre>void getParent (
+ <em>(in EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_19"><span id="Parameter_6"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_20"><span id="Returns_6"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ EntrySync getParent();
+
+
+ /**
+ * <p>Move an entry to a different location on the file system. You cannot do the following:</p>
+<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>
+</ul>
+<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>
+<pre>void moveTo (
+ <em>(in DirectoryEntry parent, optional DOMString newName, optional EntryCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_7"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_8"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ EntrySync moveTo(DirectoryEntrySync parent, String name);
+
+
+ /**
+ * <p>Deletes a file or directory. You cannot delete an empty directory or the root directory of a filesystem.</p>
+<pre>void remove (
+ <em>(in VoidCallback successCallback, optional ErrorCallback errorCallback);</em>
+);</pre>
+<div id="section_16"><span id="Parameter_5"></span><h5 class="editable">Parameter</h5>
+<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>
+</dl>
+</div><div id="section_17"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void remove();
+
+
+ /**
+ * <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>
+<pre>DOMString toURL (
+ <em>(in </em>optional DOMString mimeType<em>);</em>
+);</pre>
+<div id="section_13"><span id="Parameter_4"></span><h5 class="editable">Parameter</h5>
+<dl> <dt>mimeType</dt> <dd>For a FileEntry, the mime type to be used to interpret the file, when loaded through this URL.</dd>
+</dl>
+</div><div id="section_14"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>DOMString</code></dt>
+</dl>
+</div>
+ */
+ String toURL();
+}
diff --git a/elemental/src/elemental/html/ErrorCallback.java b/elemental/src/elemental/html/ErrorCallback.java
new file mode 100644
index 0000000..14caf5d
--- /dev/null
+++ b/elemental/src/elemental/html/ErrorCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface ErrorCallback {
+ boolean onErrorCallback(FileError error);
+}
diff --git a/elemental/src/elemental/html/EventSource.java b/elemental/src/elemental/html/EventSource.java
new file mode 100644
index 0000000..c73463d
--- /dev/null
+++ b/elemental/src/elemental/html/EventSource.java
@@ -0,0 +1,107 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface EventSource extends EventTarget {
+
+ /**
+ * The connection is not being established, has been closed or there was a fatal error.
+ */
+
+ static final int CLOSED = 2;
+
+ /**
+ * The connection is being established.
+ */
+
+ static final int CONNECTING = 0;
+
+ /**
+ * The connection is open and dispatching events.
+ */
+
+ static final int OPEN = 1;
+
+ String getURL();
+
+
+ /**
+ * A JavaScript function to call when an error occurs.
+ */
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+
+ /**
+ * A JavaScript function to call when an a message without an <code>event</code> field arrives.
+ */
+ EventListener getOnmessage();
+
+ void setOnmessage(EventListener arg);
+
+
+ /**
+ * A JavaScript function to call when the connection has opened.
+ */
+ EventListener getOnopen();
+
+ void setOnopen(EventListener arg);
+
+
+ /**
+ * The state of the connection, must be one of <code>CONNECTING</code>, <code>OPEN</code>, or <code>CLOSED</code>. <strong>Read only.</strong>
+ */
+ int getReadyState();
+
+
+ /**
+ * Read only.
+ */
+ String getUrl();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+
+ /**
+ * 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.
+ */
+ void close();
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/FieldSetElement.java b/elemental/src/elemental/html/FieldSetElement.java
new file mode 100644
index 0000000..103e57a
--- /dev/null
+++ b/elemental/src/elemental/html/FieldSetElement.java
@@ -0,0 +1,105 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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> (
+<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.
+ */
+public interface FieldSetElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/fieldset#attr-disabled">disabled</a></code>
+ HTML attribute, indicating whether the user can interact with the control.
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * The elements belonging to this field set.
+ */
+ HTMLCollection getElements();
+
+
+ /**
+ * 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
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>. (<code>null</code> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML">HTML 4</a></span>.)
+ */
+ FormElement getForm();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/fieldset#attr-name">name</a></code>
+ HTML attribute, containing the name of the field set, used for submitting the form.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Must be the string <code>fieldset</code>.
+ */
+ String getType();
+
+
+ /**
+ * 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.
+ */
+ String getValidationMessage();
+
+
+ /**
+ * The validity states that this element is in.
+ */
+ ValidityState getValidity();
+
+
+ /**
+ * Always false because <code>fieldset</code> objects are never candidates for constraint validation.
+ */
+ boolean isWillValidate();
+
+
+ /**
+ * Always returns true because <code>fieldset</code> objects are never candidates for constraint validation.
+ */
+ boolean checkValidity();
+
+
+ /**
+ * 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.
+ */
+ void setCustomValidity(String error);
+}
diff --git a/elemental/src/elemental/html/File.java b/elemental/src/elemental/html/File.java
new file mode 100644
index 0000000..1bab68c
--- /dev/null
+++ b/elemental/src/elemental/html/File.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ 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>
+<div class="geckoVersionNote">
+<p>
+</p><div class="geckoVersionHeading">Gecko 2.0 note<div>(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+</div></div>
+<p></p>
+<p>Starting in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+, the File object inherits from the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Blob">Blob</a></code>
+ interface, which provides methods and properties providing further information about the file.</p>
+</div>
+<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>
+<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>
+ */
+public interface File extends Blob {
+
+ Date getLastModifiedDate();
+
+
+ /**
+ * The name of the file referenced by the <code>File</code> object. <strong>Read only.</strong>
+<span title="(Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)
+">Requires Gecko 1.9.2</span>
+ */
+ String getName();
+
+ String getWebkitRelativePath();
+}
diff --git a/elemental/src/elemental/html/FileCallback.java b/elemental/src/elemental/html/FileCallback.java
new file mode 100644
index 0000000..f7f5982
--- /dev/null
+++ b/elemental/src/elemental/html/FileCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface FileCallback {
+ boolean onFileCallback(File file);
+}
diff --git a/elemental/src/elemental/html/FileEntry.java b/elemental/src/elemental/html/FileEntry.java
new file mode 100644
index 0000000..03b6852
--- /dev/null
+++ b/elemental/src/elemental/html/FileEntry.java
@@ -0,0 +1,85 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong> <div>This page is not complete.</div>
+</div>
+<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>
+ */
+public interface FileEntry extends Entry {
+
+
+ /**
+ * <p>Creates a new <code>FileWriter</code> associated with the file that the <code>FileEntry</code> represents.</p>
+<pre>void createWriter (
+ in FileWriterCallback successCallback, optional ErrorCallback errorCallback
+);</pre> <div id="section_4"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void createWriter(FileWriterCallback successCallback);
+
+
+ /**
+ * <p>Creates a new <code>FileWriter</code> associated with the file that the <code>FileEntry</code> represents.</p>
+<pre>void createWriter (
+ in FileWriterCallback successCallback, optional ErrorCallback errorCallback
+);</pre> <div id="section_4"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl> </div>
+ */
+ void createWriter(FileWriterCallback successCallback, ErrorCallback errorCallback);
+
+
+ /**
+ * <p>Returns a File that represents the current state of the file that this <code>FileEntry</code> represents.</p>
+<pre>void file (
+ <em>FileCallback successCallback, optional ErrorCallback errorCallback</em>
+);</pre>
+<div id="section_7"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void file(FileCallback successCallback);
+
+
+ /**
+ * <p>Returns a File that represents the current state of the file that this <code>FileEntry</code> represents.</p>
+<pre>void file (
+ <em>FileCallback successCallback, optional ErrorCallback errorCallback</em>
+);</pre>
+<div id="section_7"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ void file(FileCallback successCallback, ErrorCallback errorCallback);
+}
diff --git a/elemental/src/elemental/html/FileEntrySync.java b/elemental/src/elemental/html/FileEntrySync.java
new file mode 100644
index 0000000..1f12dee
--- /dev/null
+++ b/elemental/src/elemental/html/FileEntrySync.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong> <div>This page is not complete.</div>
+</div>
+<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>
+ */
+public interface FileEntrySync extends EntrySync {
+
+
+ /**
+ * <p>Creates a new <code>FileWriter</code> associated with the file that the <code>FileEntry</code> represents.</p>
+<pre>void createWriter (
+ in FileWriterCallback successCallback, optional ErrorCallback errorCallback
+);</pre>
+<div id="section_4"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ FileWriterSync createWriter();
+
+
+ /**
+ * <p>Returns a File that represents the current state of the file that this <code>FileEntry</code> represents.</p>
+<pre>void file (
+ <em>FileCallback successCallback, optional ErrorCallback errorCallback</em>
+);</pre>
+<div id="section_7"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<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>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div>
+ */
+ File file();
+}
diff --git a/elemental/src/elemental/html/FileError.java b/elemental/src/elemental/html/FileError.java
new file mode 100644
index 0000000..d0091e0
--- /dev/null
+++ b/elemental/src/elemental/html/FileError.java
@@ -0,0 +1,82 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Represents an error that occurs while using the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/FileReader">FileReader</a></code>
+ interface.
+ */
+public interface FileError {
+
+ /**
+ * The file operation was aborted, probably due to a call to the <code>FileReader</code> <code>abort()</code> method.
+ */
+
+ static final int ABORT_ERR = 3;
+
+ /**
+ * The file data cannot be accurately represented in a data URL.
+ */
+
+ static final int ENCODING_ERR = 5;
+
+ static final int INVALID_MODIFICATION_ERR = 9;
+
+ static final int INVALID_STATE_ERR = 7;
+
+ /**
+ * File not found.
+ */
+
+ static final int NOT_FOUND_ERR = 1;
+
+ /**
+ * File could not be read.
+ */
+
+ static final int NOT_READABLE_ERR = 4;
+
+ static final int NO_MODIFICATION_ALLOWED_ERR = 6;
+
+ static final int PATH_EXISTS_ERR = 12;
+
+ static final int QUOTA_EXCEEDED_ERR = 10;
+
+ /**
+ * The file could not be accessed for security reasons.
+ */
+
+ static final int SECURITY_ERR = 2;
+
+ static final int SYNTAX_ERR = 8;
+
+ static final int TYPE_MISMATCH_ERR = 11;
+
+
+ /**
+ * The <a title="en/nsIDOMFileError#Error codes" rel="internal" href="https://developer.mozilla.org/en/nsIDOMFileError#Error_codes">error code</a>.
+ */
+ int getCode();
+}
diff --git a/elemental/src/elemental/html/FileException.java b/elemental/src/elemental/html/FileException.java
new file mode 100644
index 0000000..fa60314
--- /dev/null
+++ b/elemental/src/elemental/html/FileException.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <strong>DRAFT</strong> <div>This page is not complete.</div>
+ */
+public interface FileException {
+
+ static final int ABORT_ERR = 3;
+
+ static final int ENCODING_ERR = 5;
+
+ static final int INVALID_MODIFICATION_ERR = 9;
+
+ static final int INVALID_STATE_ERR = 7;
+
+ static final int NOT_FOUND_ERR = 1;
+
+ static final int NOT_READABLE_ERR = 4;
+
+ static final int NO_MODIFICATION_ALLOWED_ERR = 6;
+
+ static final int PATH_EXISTS_ERR = 12;
+
+ static final int QUOTA_EXCEEDED_ERR = 10;
+
+ static final int SECURITY_ERR = 2;
+
+ static final int SYNTAX_ERR = 8;
+
+ static final int TYPE_MISMATCH_ERR = 11;
+
+ int getCode();
+
+ String getMessage();
+
+ String getName();
+}
diff --git a/elemental/src/elemental/html/FileList.java b/elemental/src/elemental/html/FileList.java
new file mode 100644
index 0000000..f2d481c
--- /dev/null
+++ b/elemental/src/elemental/html/FileList.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p>
+
+</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>
+ */
+public interface FileList extends Indexable {
+
+
+ /**
+ * A read-only value indicating the number of files in the list.
+ */
+ int getLength();
+
+
+ /**
+ * <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>
+
+<div id="section_6"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>index</code></dt> <dd>The zero-based index of the file to retrieve from the list.</dd>
+</dl>
+</div><div id="section_7"><span id="Return_value"></span><h6 class="editable">Return value</h6>
+<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>
+</div>
+ */
+ File item(int index);
+}
diff --git a/elemental/src/elemental/html/FileReader.java b/elemental/src/elemental/html/FileReader.java
new file mode 100644
index 0000000..50f8d76
--- /dev/null
+++ b/elemental/src/elemental/html/FileReader.java
@@ -0,0 +1,266 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Blob">Blob</a></code>
+ 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>
+ 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>
+ 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>
+<p>To create a <code>FileReader</code>, simply do the following:</p>
+<pre>var reader = new FileReader();
+</pre>
+<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>
+ */
+public interface FileReader extends EventTarget {
+
+ /**
+ * The entire read request has been completed.
+ */
+
+ static final int DONE = 2;
+
+ /**
+ * No data has been loaded yet.
+ */
+
+ static final int EMPTY = 0;
+
+ /**
+ * Data is currently being loaded.
+ */
+
+ static final int LOADING = 1;
+
+
+ /**
+ * The error that occurred while reading the file. <strong>Read only.</strong>
+ */
+ FileError getError();
+
+
+ /**
+ * Called when the read operation is aborted.
+ */
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+
+ /**
+ * Called when an error occurs.
+ */
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+
+ /**
+ * Called when the read operation is successfully completed.
+ */
+ EventListener getOnload();
+
+ void setOnload(EventListener arg);
+
+
+ /**
+ * Called when the read is completed, whether successful or not. This is called after either <code>onload</code> or <code>onerror</code>.
+ */
+ EventListener getOnloadend();
+
+ void setOnloadend(EventListener arg);
+
+
+ /**
+ * Called when reading the data is about to begin.
+ */
+ EventListener getOnloadstart();
+
+ void setOnloadstart(EventListener arg);
+
+
+ /**
+ * Called periodically while the data is being read.
+ */
+ EventListener getOnprogress();
+
+ void setOnprogress(EventListener arg);
+
+
+ /**
+ * 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>
+ */
+ int getReadyState();
+
+
+ /**
+ * 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>
+ */
+ Object getResult();
+
+
+ /**
+ * <p>Aborts the read operation. Upon return, the <code>readyState</code> will be <code>DONE</code>.</p>
+
+<div id="section_7"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<p>None.</p>
+</div><div id="section_8"><span id="Exceptions_thrown"></span><h6 class="editable">Exceptions thrown</h6>
+<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)
+.</div>
+</dd>
+</dl>
+<p>
+</p><div>
+<span id="readAsArrayBuffer()"></span></div></div>
+ */
+ void abort();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+
+ /**
+ * <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>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/File">File</a></code>
+. 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>
+
+</div><div id="section_9"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Blob">Blob</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/File">File</a></code>
+ 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>
+</dl>
+</div>
+ */
+ void readAsArrayBuffer(Blob blob);
+
+
+ /**
+ * <p>Starts reading the contents of the specified <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Blob">Blob</a></code>
+, which may be a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/File">File</a></code>
+. 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>
+
+<div id="section_11"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Blob">Blob</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/File">File</a></code>
+ from which to read.</dd>
+</dl>
+</div>
+ */
+ void readAsBinaryString(Blob blob);
+
+
+ /**
+ * <p>Starts reading the contents of the specified <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Blob">Blob</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/File">File</a></code>
+. 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>
+
+<p>This method is useful, for example, to get a preview of an image before uploading it:</p>
+
+ <pre name="code" class="xml"><!doctype html>
+<html>
+<head>
+<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+<title>Image preview example</title>
+<script type="text/javascript">
+oFReader = 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;
+
+oFReader.onload = function (oFREvent) {
+ document.getElementById("uploadPreview").src = oFREvent.target.result;
+};
+
+function loadImageFile() {
+ if (document.getElementById("uploadImage").files.length === 0) { return; }
+ var oFile = document.getElementById("uploadImage").files[0];
+ if (!rFilter.test(oFile.type)) { alert("You must select a valid image file!"); return; }
+ oFReader.readAsDataURL(oFile);
+}
+</script>
+</head>
+
+<body onload="loadImageFile();">
+<form name="uploadForm">
+<table>
+<tbody>
+<tr>
+<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>
+<td><input id="uploadImage" type="file" name="myPhoto" onchange="loadImageFile();" /></td>
+</tr>
+</tbody>
+</table>
+<p><input type="submit" value="Send" /></p>
+</form>
+</body>
+</html></pre>
+
+<div id="section_13"><span id="Parameters_4"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>file</code></dt> <dd>The DOM <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Blob">Blob</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/File">File</a></code>
+ from which to read.</dd>
+</dl>
+</div>
+ */
+ void readAsDataURL(Blob blob);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_5"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Blob">Blob</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/File">File</a></code>
+ from which to read.</dd> <dt><code>encoding</code>
+<span title="">Optional</span>
+</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>
+</dl>
+</div>
+ */
+ void readAsText(Blob blob);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_5"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>blob</code></dt> <dd>The DOM <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Blob">Blob</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/File">File</a></code>
+ from which to read.</dd> <dt><code>encoding</code>
+<span title="">Optional</span>
+</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>
+</dl>
+</div>
+ */
+ void readAsText(Blob blob, String encoding);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/FileReaderSync.java b/elemental/src/elemental/html/FileReaderSync.java
new file mode 100644
index 0000000..1e0f560
--- /dev/null
+++ b/elemental/src/elemental/html/FileReaderSync.java
@@ -0,0 +1,118 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>FileReaderSync</code> interface allows to read <code>File</code> or <code>Blob</code> objects in a synchronous way.</p>
+<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>
+ */
+public interface FileReaderSync {
+
+
+ /**
+ * <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>
+
+<div id="section_5"><span id="Parameters"></span><h4 class="editable">Parameters</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 into the <code><a href="../JavaScript_typed_arrays/ArrayBuffer" rel="internal" title="/en/JavaScript_typed_arrays/ArrayBuffer">ArrayBuffer</a></code>.</dd>
+</dl>
+</div><div id="section_6"><span id="Return_value"></span><h4 class="editable">Return value</h4>
+<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>
+</div><div id="section_7"><span id="Exceptions"></span><h4 class="editable">Exceptions</h4>
+<p>The following exceptions can be raised by this method:</p>
+<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>
+</dl>
+</div>
+ */
+ ArrayBuffer readAsArrayBuffer(Blob blob);
+
+
+ /**
+ * <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>
+<div class="note"><strong>Note</strong> <strong>: </strong>This method is deprecated and <code>readAsArrayBuffer()</code> should be used instead.</div>
+
+<div id="section_9"><span id="Parameters_2"></span><h4 class="editable">Parameters</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 into the <a title="DOMString" rel="internal" href="https://developer.mozilla.org/En/DOM/DOMString"><code>DOMString</code></a>.</dd>
+</dl>
+</div><div id="section_10"><span id="Return_value_2"></span><h4 class="editable">Return value</h4>
+<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>
+</div><div id="section_11"><span id="Exceptions_2"></span><h4 class="editable">Exceptions</h4>
+<p>The following exceptions can be raised by this method:</p>
+<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>
+</dl>
+</div>
+ */
+ String readAsBinaryString(Blob blob);
+
+
+ /**
+ * <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>
+
+<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>
+</div></div>
+<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>
+</div></div>
+<div id="section_19"><span id="Exceptions_4"></span><h4 class="editable"><span>Exceptions</span></h4>
+<p>The following exceptions can be raised by this method:</p>
+<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>
+</dl>
+<dl> <dt></dt>
+</dl></div>
+ */
+ String readAsDataURL(Blob blob);
+
+
+ /**
+ * <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>
+
+<div id="section_13"><span id="Parameters_3"></span><h4 class="editable">Parameters</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 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>
+</dl>
+</div><div id="section_14"><span id="Return_value_3"></span><h4 class="editable">Return value</h4>
+<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>
+</div><div id="section_15"><span id="Exceptions_3"></span><h4 class="editable">Exceptions</h4>
+<p>The following exceptions can be raised by this method:</p>
+<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>
+</dl>
+</div>
+ */
+ String readAsText(Blob blob);
+
+
+ /**
+ * <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>
+
+<div id="section_13"><span id="Parameters_3"></span><h4 class="editable">Parameters</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 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>
+</dl>
+</div><div id="section_14"><span id="Return_value_3"></span><h4 class="editable">Return value</h4>
+<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>
+</div><div id="section_15"><span id="Exceptions_3"></span><h4 class="editable">Exceptions</h4>
+<p>The following exceptions can be raised by this method:</p>
+<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>
+</dl>
+</div>
+ */
+ String readAsText(Blob blob, String encoding);
+}
diff --git a/elemental/src/elemental/html/FileSystemCallback.java b/elemental/src/elemental/html/FileSystemCallback.java
new file mode 100644
index 0000000..f53999f
--- /dev/null
+++ b/elemental/src/elemental/html/FileSystemCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface FileSystemCallback {
+ boolean onFileSystemCallback(DOMFileSystem fileSystem);
+}
diff --git a/elemental/src/elemental/html/FileWriter.java b/elemental/src/elemental/html/FileWriter.java
new file mode 100644
index 0000000..e31ed2a
--- /dev/null
+++ b/elemental/src/elemental/html/FileWriter.java
@@ -0,0 +1,90 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface FileWriter extends EventTarget {
+
+ static final int DONE = 2;
+
+ static final int INIT = 0;
+
+ static final int WRITING = 1;
+
+ FileError getError();
+
+ double getLength();
+
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnprogress();
+
+ void setOnprogress(EventListener arg);
+
+ EventListener getOnwrite();
+
+ void setOnwrite(EventListener arg);
+
+ EventListener getOnwriteend();
+
+ void setOnwriteend(EventListener arg);
+
+ EventListener getOnwritestart();
+
+ void setOnwritestart(EventListener arg);
+
+ double getPosition();
+
+ int getReadyState();
+
+ void abort();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ void seek(double position);
+
+ void truncate(double size);
+
+ void write(Blob data);
+}
diff --git a/elemental/src/elemental/html/FileWriterCallback.java b/elemental/src/elemental/html/FileWriterCallback.java
new file mode 100644
index 0000000..2c54a61
--- /dev/null
+++ b/elemental/src/elemental/html/FileWriterCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface FileWriterCallback {
+ boolean onFileWriterCallback(FileWriter fileWriter);
+}
diff --git a/elemental/src/elemental/html/FileWriterSync.java b/elemental/src/elemental/html/FileWriterSync.java
new file mode 100644
index 0000000..4bacfde
--- /dev/null
+++ b/elemental/src/elemental/html/FileWriterSync.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface FileWriterSync {
+
+ double getLength();
+
+ double getPosition();
+
+ void seek(double position);
+
+ void truncate(double size);
+
+ void write(Blob data);
+}
diff --git a/elemental/src/elemental/html/Float32Array.java b/elemental/src/elemental/html/Float32Array.java
new file mode 100644
index 0000000..00e4122
--- /dev/null
+++ b/elemental/src/elemental/html/Float32Array.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface Float32Array extends ArrayBufferView, IndexableNumber {
+
+ /**
+ * The size, in bytes, of each array element.
+ */
+
+ static final int BYTES_PER_ELEMENT = 4;
+
+
+ /**
+ * The number of entries in the array. <strong>Read only.</strong>
+ */
+ int getLength();
+
+ void setElements(Object array);
+
+ void setElements(Object array, int offset);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Float32Array subarray(int start);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Float32Array subarray(int start, int end);
+}
diff --git a/elemental/src/elemental/html/Float64Array.java b/elemental/src/elemental/html/Float64Array.java
new file mode 100644
index 0000000..7bbb366
--- /dev/null
+++ b/elemental/src/elemental/html/Float64Array.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface Float64Array extends ArrayBufferView, IndexableNumber {
+
+ /**
+ * The size, in bytes, of each array element.
+ */
+
+ static final int BYTES_PER_ELEMENT = 8;
+
+
+ /**
+ * The number of entries in the array. <strong>Read only.</strong>
+ */
+ int getLength();
+
+ void setElements(Object array);
+
+ void setElements(Object array, int offset);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Float64Array subarray(int start);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Float64Array subarray(int start, int end);
+}
diff --git a/elemental/src/elemental/html/FontElement.java b/elemental/src/elemental/html/FontElement.java
new file mode 100644
index 0000000..05ec786
--- /dev/null
+++ b/elemental/src/elemental/html/FontElement.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Obsolete
+ */
+public interface FontElement extends Element {
+
+
+ /**
+ * This attribute sets the text color using either a named color or a color specified in the hexadecimal #RRGGBB format.
+ */
+ String getColor();
+
+ void setColor(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getFace();
+
+ void setFace(String arg);
+
+
+ /**
+ * 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/basefont#attr-size">size</a></code>
+ attribute of the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/basefont"><basefont></a></code>
+ element, or relative to <span>3</span>, the default value, if none does exist.
+ */
+ String getSize();
+
+ void setSize(String arg);
+}
diff --git a/elemental/src/elemental/html/FormData.java b/elemental/src/elemental/html/FormData.java
new file mode 100644
index 0000000..eaa6e9c
--- /dev/null
+++ b/elemental/src/elemental/html/FormData.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface FormData {
+
+ void append(String name, String value, String filename);
+}
diff --git a/elemental/src/elemental/html/FormElement.java b/elemental/src/elemental/html/FormElement.java
new file mode 100644
index 0000000..38eb229
--- /dev/null
+++ b/elemental/src/elemental/html/FormElement.java
@@ -0,0 +1,155 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p>This interface provides methods to create and modify <code>FORM</code> elements using the DOM.</p>
+ */
+public interface FormElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-accept-charset">accept-charset</a></code>
+ HTML attribute, containing a list of character encodings that the server accepts.
+ */
+ String getAcceptCharset();
+
+ void setAcceptCharset(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-action">action</a></code>
+ HTML attribute, containing the URI of a program that processes the information submitted by the form.
+ */
+ String getAction();
+
+ void setAction(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-autocomplete">autocomplete</a></code>
+ HTML attribute, containing a string that indicates whether the controls in this form can have their values automatically populated by the browser.
+ */
+ String getAutocomplete();
+
+ void setAutocomplete(String arg);
+
+
+ /**
+ * All the form controls belonging to this form element.
+ */
+ HTMLCollection getElements();
+
+
+ /**
+ * Synonym for <strong>enctype</strong>.
+ */
+ String getEncoding();
+
+ void setEncoding(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-enctype">enctype</a></code>
+ HTML attribute, indicating the type of content that is used to transmit the form to the server. Only specified values can be set.
+ */
+ String getEnctype();
+
+ void setEnctype(String arg);
+
+
+ /**
+ * The number of controls in the form.
+ */
+ int getLength();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-method">method</a></code>
+ HTML attribute, indicating the HTTP method used to submit the form. Only specified values can be set.
+ */
+ String getMethod();
+
+ void setMethod(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-name">name</a></code>
+ HTML attribute, containing the name of the form.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-novalidate">novalidate</a></code>
+ HTML attribute, indicating that the form should not be validated.
+ */
+ boolean isNoValidate();
+
+ void setNoValidate(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-target">target</a></code>
+ HTML attribute, indicating where to display the results received from submitting the form.
+ */
+ String getTarget();
+
+ void setTarget(String arg);
+
+ boolean checkValidity();
+
+
+ /**
+ * Resets the forms to its initial state.
+ */
+ void reset();
+
+
+ /**
+ * Submits the form to the server.
+ */
+ void submit();
+}
diff --git a/elemental/src/elemental/html/FrameElement.java b/elemental/src/elemental/html/FrameElement.java
new file mode 100644
index 0000000..d9ef5ba
--- /dev/null
+++ b/elemental/src/elemental/html/FrameElement.java
@@ -0,0 +1,95 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.svg.SVGDocument;
+import elemental.dom.Document;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+.</p>
+<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>
+ may be preferred.</p>
+ */
+public interface FrameElement extends Element {
+
+ Document getContentDocument();
+
+ Window getContentWindow();
+
+ String getFrameBorder();
+
+ void setFrameBorder(String arg);
+
+ int getHeight();
+
+ String getLocation();
+
+ void setLocation(String arg);
+
+ String getLongDesc();
+
+ void setLongDesc(String arg);
+
+ String getMarginHeight();
+
+ void setMarginHeight(String arg);
+
+ String getMarginWidth();
+
+ void setMarginWidth(String arg);
+
+
+ /**
+ * This attribute is used to labeling frames. Without labeling all links will open in the frame that they are in.
+ */
+ String getName();
+
+ void setName(String arg);
+
+ boolean isNoResize();
+
+ void setNoResize(boolean arg);
+
+
+ /**
+ * 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.
+ */
+ String getScrolling();
+
+ void setScrolling(String arg);
+
+
+ /**
+ * This attribute is specify document which will be displayed by frame.
+ */
+ String getSrc();
+
+ void setSrc(String arg);
+
+ int getWidth();
+
+ SVGDocument getSVGDocument();
+}
diff --git a/elemental/src/elemental/html/FrameSetElement.java b/elemental/src/elemental/html/FrameSetElement.java
new file mode 100644
index 0000000..2b3fbea
--- /dev/null
+++ b/elemental/src/elemental/html/FrameSetElement.java
@@ -0,0 +1,94 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.events.EventListener;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.
+ */
+public interface FrameSetElement extends Element {
+
+ String getCols();
+
+ void setCols(String arg);
+
+ EventListener getOnbeforeunload();
+
+ void setOnbeforeunload(EventListener arg);
+
+ EventListener getOnblur();
+
+ void setOnblur(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnfocus();
+
+ void setOnfocus(EventListener arg);
+
+ EventListener getOnhashchange();
+
+ void setOnhashchange(EventListener arg);
+
+ EventListener getOnload();
+
+ void setOnload(EventListener arg);
+
+ EventListener getOnmessage();
+
+ void setOnmessage(EventListener arg);
+
+ EventListener getOnoffline();
+
+ void setOnoffline(EventListener arg);
+
+ EventListener getOnonline();
+
+ void setOnonline(EventListener arg);
+
+ EventListener getOnpopstate();
+
+ void setOnpopstate(EventListener arg);
+
+ EventListener getOnresize();
+
+ void setOnresize(EventListener arg);
+
+ EventListener getOnstorage();
+
+ void setOnstorage(EventListener arg);
+
+ EventListener getOnunload();
+
+ void setOnunload(EventListener arg);
+
+ String getRows();
+
+ void setRows(String arg);
+}
diff --git a/elemental/src/elemental/html/HRElement.java b/elemental/src/elemental/html/HRElement.java
new file mode 100644
index 0000000..9ad5115
--- /dev/null
+++ b/elemental/src/elemental/html/HRElement.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface HRElement extends Element {
+
+
+ /**
+ * Enumerated attribute indicating alignment of the rule with respect to the surrounding context.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+ boolean isNoShade();
+
+ void setNoShade(boolean arg);
+
+
+ /**
+ * The height of the rule.
+ */
+ String getSize();
+
+ void setSize(String arg);
+
+
+ /**
+ * The width of the rule on the page.
+ */
+ String getWidth();
+
+ void setWidth(String arg);
+}
diff --git a/elemental/src/elemental/html/HTMLAllCollection.java b/elemental/src/elemental/html/HTMLAllCollection.java
new file mode 100644
index 0000000..c57e347
--- /dev/null
+++ b/elemental/src/elemental/html/HTMLAllCollection.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Node;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface HTMLAllCollection {
+
+ int getLength();
+
+ Node item(int index);
+
+ Node namedItem(String name);
+
+ NodeList tags(String name);
+}
diff --git a/elemental/src/elemental/html/HTMLCollection.java b/elemental/src/elemental/html/HTMLCollection.java
new file mode 100644
index 0000000..f390f29
--- /dev/null
+++ b/elemental/src/elemental/html/HTMLCollection.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<p><code>HTMLCollection</code>s in the HTML DOM are live; they are automatically updated when the underlying document is changed.</p>
+ */
+public interface HTMLCollection extends Indexable {
+
+
+ /**
+ * The number of items in the collection. <strong>Read only</strong>.
+ */
+ int getLength();
+
+
+ /**
+ * 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.
+ */
+ Node item(int index);
+
+
+ /**
+ * 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.
+ */
+ Node namedItem(String name);
+}
diff --git a/elemental/src/elemental/html/HTMLOptionsCollection.java b/elemental/src/elemental/html/HTMLOptionsCollection.java
new file mode 100644
index 0000000..1715716
--- /dev/null
+++ b/elemental/src/elemental/html/HTMLOptionsCollection.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>.
+ */
+public interface HTMLOptionsCollection extends HTMLCollection {
+
+
+ /**
+ * 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>.
+ */
+ int getLength();
+
+ void setLength(int arg);
+
+ int getSelectedIndex();
+
+ void setSelectedIndex(int arg);
+
+ void remove(int index);
+}
diff --git a/elemental/src/elemental/html/HeadElement.java b/elemental/src/elemental/html/HeadElement.java
new file mode 100644
index 0000000..b1d4ad9
--- /dev/null
+++ b/elemental/src/elemental/html/HeadElement.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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>
+ section. In
+<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.
+ */
+public interface HeadElement extends Element {
+
+
+ /**
+ * The URIs of one or more metadata profiles (white space separated).
+
+<span class="deprecatedInlineTemplate" title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+">Deprecated since Gecko 2.0</span>
+
+
+
+<span title="(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+">Obsolete since Gecko 7.0</span>
+ */
+ String getProfile();
+
+ void setProfile(String arg);
+}
diff --git a/elemental/src/elemental/html/HeadingElement.java b/elemental/src/elemental/html/HeadingElement.java
new file mode 100644
index 0000000..e511fde
--- /dev/null
+++ b/elemental/src/elemental/html/HeadingElement.java
@@ -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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface HeadingElement extends Element {
+
+
+ /**
+ * Enumerated attribute indicating alignment of the heading with respect to the surrounding context.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+}
diff --git a/elemental/src/elemental/html/History.java b/elemental/src/elemental/html/History.java
new file mode 100644
index 0000000..5199080
--- /dev/null
+++ b/elemental/src/elemental/html/History.java
@@ -0,0 +1,97 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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).
+ */
+public interface History {
+
+
+ /**
+ * 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>.
+ */
+ int getLength();
+
+
+ /**
+ * 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>
+ */
+ Object getState();
+
+
+ /**
+ * <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>
+ */
+ void back();
+
+
+ /**
+ * <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>
+ */
+ void forward();
+
+
+ /**
+ * 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>).
+ */
+ void go(int distance);
+
+
+ /**
+ * <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)
+ through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)
+, 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>
+ */
+ void pushState(Object data, String title);
+
+
+ /**
+ * <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)
+ through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)
+, 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>
+ */
+ void pushState(Object data, String title, String url);
+
+
+ /**
+ * <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)
+ through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)
+, 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>
+ */
+ void replaceState(Object data, String title);
+
+
+ /**
+ * <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)
+ through Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+, the passed object is serialized using JSON. Starting in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)
+, 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>
+ */
+ void replaceState(Object data, String title, String url);
+}
diff --git a/elemental/src/elemental/html/HtmlElement.java b/elemental/src/elemental/html/HtmlElement.java
new file mode 100644
index 0000000..d760d95
--- /dev/null
+++ b/elemental/src/elemental/html/HtmlElement.java
@@ -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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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> (
+<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
+<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>
+<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>
+ */
+public interface HtmlElement extends Element {
+
+ String getManifest();
+
+ void setManifest(String arg);
+
+
+ /**
+ * Version of the HTML Document Type Definition that governs this document.
+ */
+ String getVersion();
+
+ void setVersion(String arg);
+}
diff --git a/elemental/src/elemental/html/IDBAny.java b/elemental/src/elemental/html/IDBAny.java
new file mode 100644
index 0000000..a5aea27
--- /dev/null
+++ b/elemental/src/elemental/html/IDBAny.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface IDBAny {
+}
diff --git a/elemental/src/elemental/html/IDBCursor.java b/elemental/src/elemental/html/IDBCursor.java
new file mode 100644
index 0000000..53caa01
--- /dev/null
+++ b/elemental/src/elemental/html/IDBCursor.java
@@ -0,0 +1,143 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface IDBCursor {
+
+ /**
+ * 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).
+ */
+
+ static final int NEXT = 0;
+
+ /**
+ * 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.
+ */
+
+ static final int NEXT_NO_DUPLICATE = 1;
+
+ /**
+ * 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).
+ */
+
+ static final int PREV = 2;
+
+ /**
+ * 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.
+ */
+
+ static final int PREV_NO_DUPLICATE = 3;
+
+
+ /**
+ * 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.
+ */
+ String getDirection();
+
+
+ /**
+ * Returns the key for the record at the cursor's position. If the cursor is outside its range, this is <code>undefined</code>.
+ */
+ Object getKey();
+
+
+ /**
+ * 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>.
+ */
+ Object getPrimaryKey();
+
+
+ /**
+ * 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.
+ */
+ Object getSource();
+
+
+ /**
+ * <p>Sets the number times a cursor should move its position forward.</p>
+<pre>IDBRequest advance (
+ in long <em>count</em>
+) raises (IDBDatabaseException);</pre>
+<div id="section_13"><span id="Parameter_2"></span><h5 class="editable">Parameter</h5>
+<dl> <dt>count</dt> <dd>The number of advances forward the cursor should make.</dd>
+</dl>
+</div><div id="section_14"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code>void</code></dt>
+</dl>
+</div><div id="section_15"><span id="Exceptions_2"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ void advance(int count);
+
+ void continueFunction();
+
+ void continueFunction(Object key);
+
+
+ /**
+ * <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>
+<pre>IDBRequest delete (
+) raises (IDBDatabaseException);</pre>
+<div id="section_21"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_22"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest _delete();
+
+
+ /**
+ * <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>
+<pre>IDBRequest update (
+ in any <em>value</em>
+) raises (IDBDatabaseException, DOMException);
+</pre>
+<div id="section_9"><span id="Parameter"></span><h5 class="editable">Parameter</h5>
+<dl> <dt>value</dt> <dd>The value to be stored.</dd>
+</dl>
+</div><div id="section_10"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_11"><span id="Exceptions"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest update(Object value);
+}
diff --git a/elemental/src/elemental/html/IDBCursorWithValue.java b/elemental/src/elemental/html/IDBCursorWithValue.java
new file mode 100644
index 0000000..ffac89e
--- /dev/null
+++ b/elemental/src/elemental/html/IDBCursorWithValue.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface IDBCursorWithValue extends IDBCursor {
+
+ Object getValue();
+}
diff --git a/elemental/src/elemental/html/IDBDatabase.java b/elemental/src/elemental/html/IDBDatabase.java
new file mode 100644
index 0000000..2417362
--- /dev/null
+++ b/elemental/src/elemental/html/IDBDatabase.java
@@ -0,0 +1,285 @@
+/*
+ * 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 elemental.html;
+import elemental.util.Mappable;
+import elemental.util.Indexable;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p>Inherits from: <a title="en/DOM/EventTarget" rel="internal" href="https://developer.mozilla.org/en/DOM/EventTarget">EventTarget</a></p>
+ */
+public interface IDBDatabase extends EventTarget {
+
+
+ /**
+ * Name of the connected database.
+ */
+ String getName();
+
+
+ /**
+ * 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.
+ */
+ Indexable getObjectStoreNames();
+
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnversionchange();
+
+ void setOnversionchange(EventListener arg);
+
+
+ /**
+ * The version of the connected database. When a database is first created, this attribute is the empty string.
+ */
+ String getVersion();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+
+ /**
+ * <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>
+<pre>void close();
+</pre>
+ */
+ void close();
+
+
+ /**
+ * <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>
+<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>
+
+<div id="section_11"><span id="Parameters"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_12"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_13"><span id="Exceptions"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBObjectStore createObjectStore(String name);
+
+
+ /**
+ * <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>
+<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>
+
+<div id="section_11"><span id="Parameters"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_12"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_13"><span id="Exceptions"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBObjectStore createObjectStore(String name, Mappable options);
+
+
+ /**
+ * <p>Destroys the object store with the given name in the connected database, along with any indexes that reference it. </p>
+<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>
+
+<div id="section_15"><span id="Parameters_2"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>name</dt> <dd>The name of the data store to delete.</dd>
+</dl>
+</div><div id="section_16"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<p><code>void</code></p>
+</div><div id="section_17"><span id="Exceptions_2"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ void deleteObjectStore(String name);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+
+ /**
+ * <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>
+
+<div id="section_22"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_23"><span id="Sample_code"></span><h5 class="editable">Sample code</h5>
+<p>To start a transaction with the following scope, you can use the code snippets in the table. As noted earlier:</p>
+<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>
+</ul>
+<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>
+</table>
+</div><div id="section_24"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_25"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBTransaction transaction(Indexable storeNames);
+
+
+ /**
+ * <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>
+
+<div id="section_22"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_23"><span id="Sample_code"></span><h5 class="editable">Sample code</h5>
+<p>To start a transaction with the following scope, you can use the code snippets in the table. As noted earlier:</p>
+<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>
+</ul>
+<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>
+</table>
+</div><div id="section_24"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_25"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBTransaction transaction(Indexable storeNames, String mode);
+
+
+ /**
+ * <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>
+
+<div id="section_22"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_23"><span id="Sample_code"></span><h5 class="editable">Sample code</h5>
+<p>To start a transaction with the following scope, you can use the code snippets in the table. As noted earlier:</p>
+<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>
+</ul>
+<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>
+</table>
+</div><div id="section_24"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_25"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBTransaction transaction(String storeName);
+
+
+ /**
+ * <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>
+
+<div id="section_22"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_23"><span id="Sample_code"></span><h5 class="editable">Sample code</h5>
+<p>To start a transaction with the following scope, you can use the code snippets in the table. As noted earlier:</p>
+<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>
+</ul>
+<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>
+</table>
+</div><div id="section_24"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_25"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBTransaction transaction(String storeName, String mode);
+
+
+ /**
+ * <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>
+
+<div id="section_22"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_23"><span id="Sample_code"></span><h5 class="editable">Sample code</h5>
+<p>To start a transaction with the following scope, you can use the code snippets in the table. As noted earlier:</p>
+<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>
+</ul>
+<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>
+</table>
+</div><div id="section_24"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_25"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBTransaction transaction(Indexable storeNames, int mode);
+
+
+ /**
+ * <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>
+
+<div id="section_22"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_23"><span id="Sample_code"></span><h5 class="editable">Sample code</h5>
+<p>To start a transaction with the following scope, you can use the code snippets in the table. As noted earlier:</p>
+<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>
+</ul>
+<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>
+</table>
+</div><div id="section_24"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_25"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBTransaction transaction(String storeName, int mode);
+}
diff --git a/elemental/src/elemental/html/IDBDatabaseException.java b/elemental/src/elemental/html/IDBDatabaseException.java
new file mode 100644
index 0000000..4d68f4c
--- /dev/null
+++ b/elemental/src/elemental/html/IDBDatabaseException.java
@@ -0,0 +1,119 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface IDBDatabaseException {
+
+ /**
+ * 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>.
+ */
+
+ static final int ABORT_ERR = 20;
+
+ /**
+ * 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.
+ */
+
+ static final int CONSTRAINT_ERR = 4;
+
+ /**
+ * Data provided to an operation does not meet requirements.
+ */
+
+ static final int DATA_ERR = 5;
+
+ /**
+ * An operation was not allowed on an object. Unless the cause of the error is corrected, retrying the same operation would result in failure.
+ */
+
+ static final int NON_TRANSIENT_ERR = 2;
+
+ /**
+ * <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>
+ */
+
+ static final int NOT_ALLOWED_ERR = 6;
+
+ /**
+ * The operation failed, because the requested database object could not be found; for example, an object store did not exist but was being opened.
+ */
+
+ static final int NOT_FOUND_ERR = 8;
+
+ static final int NO_ERR = 0;
+
+ /**
+ * 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.
+ */
+
+ static final int QUOTA_ERR = 22;
+
+ /**
+ * A mutation operation was attempted in a <code>READ_ONLY</code> transaction.
+ */
+
+ static final int READ_ONLY_ERR = 9;
+
+ /**
+ * A lock for the transaction could not be obtained in a reasonable time.
+ */
+
+ static final int TIMEOUT_ERR = 23;
+
+ /**
+ * A request was made against a transaction that is either not currently active or is already finished.
+ */
+
+ static final int TRANSACTION_INACTIVE_ERR = 7;
+
+ /**
+ * 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.
+ */
+
+ static final int UNKNOWN_ERR = 1;
+
+ /**
+ * 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>.
+ */
+
+ static final int VER_ERR = 12;
+
+
+ /**
+ * The most appropriate error code for the condition.
+ */
+ int getCode();
+
+
+ /**
+ * Error message describing the exception raised.
+ */
+ String getMessage();
+
+ String getName();
+}
diff --git a/elemental/src/elemental/html/IDBFactory.java b/elemental/src/elemental/html/IDBFactory.java
new file mode 100644
index 0000000..cad8417
--- /dev/null
+++ b/elemental/src/elemental/html/IDBFactory.java
@@ -0,0 +1,95 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface IDBFactory {
+
+
+ /**
+ * <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>
+<p>This throws an exception if either of the values is not a valid key. </p>
+
+<div id="section_11"><span id="Parameters_3"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>first</dt> <dd>The first key to compare.</dd> <dt>second</dt> <dd>The second key to compare.</dd>
+</dl>
+</div><div id="section_12"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_13"><span id="Exceptions"></span><h5 class="editable">Exceptions</h5>
+<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>
+<br>
+<br>
+<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>
+</table>
+</div>
+ */
+ short cmp(Object first, Object second);
+
+
+ /**
+ * <p>Request deleting a database. The method returns an IDBRequest object immediately, and performs the deletion operation asynchronously.</p>
+<p>The deletion operation (performed in a different thread) consists of the following steps:</p>
+<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>
+</ol>
+<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>
+<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>
+<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>
+
+<div id="section_8"><span id="Parameters_2"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>name</dt> <dd>The name of the database.</dd>
+</dl>
+</div><div id="section_9"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div>
+ */
+ IDBVersionChangeRequest deleteDatabase(String name);
+
+ IDBRequest getDatabaseNames();
+
+
+ /**
+ * <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>
+<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>
+<p>The opening operation—which is performed in a separate thread—consists of the following steps:</p>
+<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>
+</ol>
+<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>
+<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>
+
+<div id="section_5"><span id="Parameters"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>name</dt> <dd>The name of the database.</dd> <dt>version</dt> <dd>The version of the database.</dd>
+</dl>
+</div><div id="section_6"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div>
+ */
+ IDBRequest open(String name);
+}
diff --git a/elemental/src/elemental/html/IDBIndex.java b/elemental/src/elemental/html/IDBIndex.java
new file mode 100644
index 0000000..74eaf09
--- /dev/null
+++ b/elemental/src/elemental/html/IDBIndex.java
@@ -0,0 +1,558 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p>Inherits from: <a title="en/DOM/EventTarget" rel="internal" href="https://developer.mozilla.org/en/DOM/EventTarget">EventTarget</a></p>
+ */
+public interface IDBIndex {
+
+ Object getKeyPath();
+
+ boolean isMultiEntry();
+
+ String getName();
+
+ IDBObjectStore getObjectStore();
+
+ boolean isUnique();
+
+
+ /**
+ * <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>
+<pre>IDBRequest count (
+ in optional any key
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_15"><span id="Parameters_3"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key or key range that identifies the record to be counted.</dd>
+</dl></div><div id="section_16"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_17"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest count();
+
+
+ /**
+ * <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>
+<pre>IDBRequest count (
+ in optional any key
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_15"><span id="Parameters_3"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key or key range that identifies the record to be counted.</dd>
+</dl></div><div id="section_16"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_17"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest count(IDBKeyRange range);
+
+
+ /**
+ * <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>
+<pre>IDBRequest count (
+ in optional any key
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_15"><span id="Parameters_3"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key or key range that identifies the record to be counted.</dd>
+</dl></div><div id="section_16"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_17"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest count(Object key);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<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>
+<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>
+<p></p>
+<pre>IDBRequest get (
+ in any key
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_7"><span id="Parameters"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key or key range that identifies the record to be retrieved.</dd>
+</dl>
+</div><div id="section_8"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_9"><span id="Exceptions"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest get(IDBKeyRange key);
+
+ IDBRequest getObject(Object key);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<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>
+<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>
+<p></p>
+<pre>IDBRequest getKey (
+ in any key
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_11"><span id="Parameters_2"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key or key range that identifies the record to be retrieved.</dd>
+</dl>
+</div><div id="section_12"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_13"><span id="Exceptions_2"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest getKey(IDBKeyRange key);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<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>
+<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>
+<p></p>
+<pre>IDBRequest getKey (
+ in any key
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_11"><span id="Parameters_2"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key or key range that identifies the record to be retrieved.</dd>
+</dl>
+</div><div id="section_12"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_13"><span id="Exceptions_2"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest getKey(Object key);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_19"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_20"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_21"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openCursor();
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_19"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_20"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_21"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openCursor(IDBKeyRange range);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_19"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_20"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_21"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openCursor(IDBKeyRange range, String direction);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_19"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_20"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_21"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openCursor(Object key);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_19"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_20"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_21"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openCursor(Object key, String direction);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_19"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_20"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_21"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openCursor(IDBKeyRange range, int direction);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_19"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_20"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_21"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openCursor(Object key, int direction);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openKeyCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_23"><span id="Parameters_5"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_24"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_25"><span id="Exceptions_5"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openKeyCursor();
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openKeyCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_23"><span id="Parameters_5"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_24"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_25"><span id="Exceptions_5"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openKeyCursor(IDBKeyRange range);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openKeyCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_23"><span id="Parameters_5"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_24"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_25"><span id="Exceptions_5"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openKeyCursor(IDBKeyRange range, String direction);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openKeyCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_23"><span id="Parameters_5"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_24"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_25"><span id="Exceptions_5"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openKeyCursor(Object key);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openKeyCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_23"><span id="Parameters_5"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_24"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_25"><span id="Exceptions_5"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openKeyCursor(Object key, String direction);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openKeyCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_23"><span id="Parameters_5"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_24"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_25"><span id="Exceptions_5"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openKeyCursor(IDBKeyRange range, int direction);
+
+
+ /**
+ * <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>
+<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>
+</ul>
+<pre>IDBRequest openKeyCursor (
+ in optional any? range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_23"><span id="Parameters_5"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_24"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<dl> <dt><code><a href="https://developer.mozilla.org/en/IndexedDB/IDBRequest" rel="internal">IDBRequest</a></code></dt>
+</dl>
+<dl> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_25"><span id="Exceptions_5"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</table>
+</div>
+ */
+ IDBRequest openKeyCursor(Object key, int direction);
+}
diff --git a/elemental/src/elemental/html/IDBKey.java b/elemental/src/elemental/html/IDBKey.java
new file mode 100644
index 0000000..30262a4
--- /dev/null
+++ b/elemental/src/elemental/html/IDBKey.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface IDBKey {
+}
diff --git a/elemental/src/elemental/html/IDBKeyRange.java b/elemental/src/elemental/html/IDBKeyRange.java
new file mode 100644
index 0000000..c8b00fa
--- /dev/null
+++ b/elemental/src/elemental/html/IDBKeyRange.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface IDBKeyRange {
+
+ Object getLower();
+
+ boolean isLowerOpen();
+
+ Object getUpper();
+
+
+ /**
+ * Returns false if the upper-bound value is included in the key range.
+ */
+ boolean isUpperOpen();
+}
diff --git a/elemental/src/elemental/html/IDBObjectStore.java b/elemental/src/elemental/html/IDBObjectStore.java
new file mode 100644
index 0000000..62c303b
--- /dev/null
+++ b/elemental/src/elemental/html/IDBObjectStore.java
@@ -0,0 +1,463 @@
+/*
+ * 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 elemental.html;
+import elemental.util.Mappable;
+import elemental.util.Indexable;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface IDBObjectStore {
+
+ boolean isAutoIncrement();
+
+
+ /**
+ * 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.
+ */
+ Indexable getIndexNames();
+
+
+ /**
+ * 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.
+ */
+ Object getKeyPath();
+
+
+ /**
+ * The name of this object store.
+ */
+ String getName();
+
+ IDBTransaction getTransaction();
+
+
+ /**
+ * <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>
+
+<div id="section_5"><span id="Parameters"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_6"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_7"><span id="Exceptions"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl>
+<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>
+<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>
+</dl>
+<dl>
+</dl>
+</div>
+ */
+ IDBRequest add(Object value);
+
+
+ /**
+ * <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>
+
+<div id="section_5"><span id="Parameters"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_6"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_7"><span id="Exceptions"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl>
+<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>
+<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>
+</dl>
+<dl>
+</dl>
+</div>
+ */
+ IDBRequest add(Object value, Object key);
+
+
+ /**
+ * <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>
+
+<div id="section_9"><span id="Returns_2"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_10"><span id="Exceptions_2"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl></div>
+ */
+ IDBRequest clear();
+
+
+ /**
+ * <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>
+
+<div id="section_12"><span id="Parameters_2"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key or key range that identifies the records to be counted.</dd>
+</dl>
+</div><div id="section_13"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_14"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl></div>
+ */
+ IDBRequest count();
+
+
+ /**
+ * <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>
+
+<div id="section_12"><span id="Parameters_2"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key or key range that identifies the records to be counted.</dd>
+</dl>
+</div><div id="section_13"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_14"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl></div>
+ */
+ IDBRequest count(IDBKeyRange range);
+
+
+ /**
+ * <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>
+
+<div id="section_12"><span id="Parameters_2"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key or key range that identifies the records to be counted.</dd>
+</dl>
+</div><div id="section_13"><span id="Returns_3"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_14"><span id="Exceptions_3"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl></div>
+ */
+ IDBRequest count(Object key);
+
+
+ /**
+ * <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>
+<pre>IDBIndex createIndex (
+ in DOMString name,
+ in DOMString keyPath,
+ in Object optionalParameters
+) raises (IDBDatabaseException);
+
+</pre>
+<div id="section_16"><span id="Parameters_3"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_17"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_18"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl></div>
+ */
+ IDBIndex createIndex(String name, String keyPath);
+
+
+ /**
+ * <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>
+<pre>IDBIndex createIndex (
+ in DOMString name,
+ in DOMString keyPath,
+ in Object optionalParameters
+) raises (IDBDatabaseException);
+
+</pre>
+<div id="section_16"><span id="Parameters_3"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_17"><span id="Returns_4"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_18"><span id="Exceptions_4"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl></div>
+ */
+ IDBIndex createIndex(String name, String keyPath, Mappable options);
+
+
+ /**
+ * <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>
+<pre>IDBRequest delete (
+ in any key
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_20"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key to use to identify the record.</dd>
+</dl>
+</div><div id="section_21"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_22"><span id="Exceptions_5"></span><h5 class="editable">Exceptions</h5>
+<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>
+ */
+ IDBRequest _delete(IDBKeyRange keyRange);
+
+
+ /**
+ * <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>
+<pre>IDBRequest delete (
+ in any key
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_20"><span id="Parameters_4"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>key</dt> <dd>The key to use to identify the record.</dd>
+</dl>
+</div><div id="section_21"><span id="Returns_5"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_22"><span id="Exceptions_5"></span><h5 class="editable">Exceptions</h5>
+<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>
+ */
+ IDBRequest _delete(Object key);
+
+
+ /**
+ * <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>
+<pre>void removeIndex(
+ in DOMString indexName
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_24"><span id="Parameters_5"></span><h5 class="editable">Parameters</h5>
+<p> </p>
+<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>
+</dl>
+</div><div id="section_25"><span id="Exceptions_6"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl>
+</div>
+ */
+ void deleteIndex(String name);
+
+ IDBRequest getObject(IDBKeyRange key);
+
+ IDBRequest getObject(Object key);
+
+
+ /**
+ * <p>Opens the named index in this object store.</p>
+
+<div id="section_31"><span id="Parameters_7"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>name</dt> <dd>The name of the index to open.</dd>
+</dl>
+</div><div id="section_32"><span id="Returns_7"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_33"><span id="Exceptions_8"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl>
+</div>
+ */
+ IDBIndex index(String name);
+
+
+ /**
+ * <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>
+<pre>IDBRequest openCursor (
+ in optional IDBKeyRange range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_35"><span id="Parameters_8"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_36"><span id="Returns_8"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_37"><span id="Exceptions_9"></span><h5 class="editable">Exceptions</h5>
+<p>This method can raise an IDBDatabaseException with the following code:</p>
+<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>
+</dl>
+</div>
+ */
+ IDBRequest openCursor(IDBKeyRange range);
+
+
+ /**
+ * <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>
+<pre>IDBRequest openCursor (
+ in optional IDBKeyRange range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_35"><span id="Parameters_8"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_36"><span id="Returns_8"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_37"><span id="Exceptions_9"></span><h5 class="editable">Exceptions</h5>
+<p>This method can raise an IDBDatabaseException with the following code:</p>
+<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>
+</dl>
+</div>
+ */
+ IDBRequest openCursor(IDBKeyRange range, String direction);
+
+
+ /**
+ * <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>
+<pre>IDBRequest openCursor (
+ in optional IDBKeyRange range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_35"><span id="Parameters_8"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_36"><span id="Returns_8"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_37"><span id="Exceptions_9"></span><h5 class="editable">Exceptions</h5>
+<p>This method can raise an IDBDatabaseException with the following code:</p>
+<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>
+</dl>
+</div>
+ */
+ IDBRequest openCursor(Object key);
+
+
+ /**
+ * <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>
+<pre>IDBRequest openCursor (
+ in optional IDBKeyRange range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_35"><span id="Parameters_8"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_36"><span id="Returns_8"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_37"><span id="Exceptions_9"></span><h5 class="editable">Exceptions</h5>
+<p>This method can raise an IDBDatabaseException with the following code:</p>
+<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>
+</dl>
+</div>
+ */
+ IDBRequest openCursor(Object key, String direction);
+
+
+ /**
+ * <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>
+<pre>IDBRequest openCursor (
+ in optional IDBKeyRange range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_35"><span id="Parameters_8"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_36"><span id="Returns_8"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_37"><span id="Exceptions_9"></span><h5 class="editable">Exceptions</h5>
+<p>This method can raise an IDBDatabaseException with the following code:</p>
+<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>
+</dl>
+</div>
+ */
+ IDBRequest openCursor(IDBKeyRange range, int direction);
+
+
+ /**
+ * <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>
+<pre>IDBRequest openCursor (
+ in optional IDBKeyRange range,
+ in optional unsigned short direction
+) raises (IDBDatabaseException);
+</pre>
+<div id="section_35"><span id="Parameters_8"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_36"><span id="Returns_8"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_37"><span id="Exceptions_9"></span><h5 class="editable">Exceptions</h5>
+<p>This method can raise an IDBDatabaseException with the following code:</p>
+<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>
+</dl>
+</div>
+ */
+ IDBRequest openCursor(Object key, int direction);
+
+
+ /**
+ * <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>
+
+<div id="section_39"><span id="Parameters_9"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_40"><span id="Returns_9"></span><h5 class="editable">Returns</h5>
+<dl> <dt>IDBRequest</dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_41"><span id="Exceptions_10"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl>
+<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>
+<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>
+</dl>
+</div>
+ */
+ IDBRequest put(Object value);
+
+
+ /**
+ * <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>
+
+<div id="section_39"><span id="Parameters_9"></span><h5 class="editable">Parameters</h5>
+<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>
+</dl>
+</div><div id="section_40"><span id="Returns_9"></span><h5 class="editable">Returns</h5>
+<dl> <dt>IDBRequest</dt> <dd>A request object on which subsequent events related to this operation are fired.</dd>
+</dl>
+</div><div id="section_41"><span id="Exceptions_10"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl>
+<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>
+<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>
+</dl>
+</div>
+ */
+ IDBRequest put(Object value, Object key);
+}
diff --git a/elemental/src/elemental/html/IDBRequest.java b/elemental/src/elemental/html/IDBRequest.java
new file mode 100644
index 0000000..940f6aa
--- /dev/null
+++ b/elemental/src/elemental/html/IDBRequest.java
@@ -0,0 +1,69 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.DOMError;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<p>Inherits from: <a title="en/DOM/EventTarget" rel="internal" href="https://developer.mozilla.org/en/DOM/EventTarget">EventTarget</a></p>
+ */
+public interface IDBRequest extends EventTarget {
+
+ DOMError getError();
+
+ int getErrorCode();
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnsuccess();
+
+ void setOnsuccess(EventListener arg);
+
+ String getReadyState();
+
+ Object getResult();
+
+ Object getSource();
+
+ IDBTransaction getTransaction();
+
+ String getWebkitErrorMessage();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/IDBTransaction.java b/elemental/src/elemental/html/IDBTransaction.java
new file mode 100644
index 0000000..b67a94b
--- /dev/null
+++ b/elemental/src/elemental/html/IDBTransaction.java
@@ -0,0 +1,121 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.DOMError;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p>Inherits from: <a title="en/DOM/EventTarget" rel="internal" href="https://developer.mozilla.org/en/DOM/EventTarget">EventTarget</a></p>
+ */
+public interface IDBTransaction extends EventTarget {
+
+ /**
+ * Allows data to be read but not changed.
+ */
+
+ static final int READ_ONLY = 0;
+
+ /**
+ * Allows reading and writing of data in existing data stores to be changed.
+ */
+
+ static final int READ_WRITE = 1;
+
+ /**
+ * 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.
+ */
+
+ static final int VERSION_CHANGE = 2;
+
+
+ /**
+ * The database connection that this transaction is associated with.
+ */
+ IDBDatabase getDb();
+
+ DOMError getError();
+
+
+ /**
+ * 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>.
+ */
+ String getMode();
+
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+ EventListener getOncomplete();
+
+ void setOncomplete(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+
+ /**
+ * <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>
+
+<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>
+<div id="section_12"><span id="Exceptions"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl>
+</div>
+ */
+ void abort();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+
+ /**
+ * <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>
+
+<div id="section_14"><span id="Parameters"></span><h5 class="editable">Parameters</h5>
+<dl> <dt>name</dt> <dd>The name of the requested object store.</dd>
+</dl>
+</div><div id="section_15"><span id="Returns"></span><h5 class="editable">Returns</h5>
+<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>
+</dl>
+</div><div id="section_16"><span id="Exceptions_2"></span><h5 class="editable">Exceptions</h5>
+<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>
+<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>
+</dl>
+</div>
+ */
+ IDBObjectStore objectStore(String name);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/IDBVersionChangeEvent.java b/elemental/src/elemental/html/IDBVersionChangeEvent.java
new file mode 100644
index 0000000..bf9841b
--- /dev/null
+++ b/elemental/src/elemental/html/IDBVersionChangeEvent.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface IDBVersionChangeEvent extends Event {
+
+
+ /**
+ * <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.
+ */
+ String getVersion();
+}
diff --git a/elemental/src/elemental/html/IDBVersionChangeRequest.java b/elemental/src/elemental/html/IDBVersionChangeRequest.java
new file mode 100644
index 0000000..24f1181
--- /dev/null
+++ b/elemental/src/elemental/html/IDBVersionChangeRequest.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<p>Inherits from: <code><a title="en/IndexedDB/IDBRequest" rel="internal" href="https://developer.mozilla.org/en/IndexedDB/IDBRequest">IDBRequest</a></code></p>
+ */
+public interface IDBVersionChangeRequest extends IDBRequest {
+
+
+ /**
+ * The event handler for the blocked event.
+ */
+ EventListener getOnblocked();
+
+ void setOnblocked(EventListener arg);
+}
diff --git a/elemental/src/elemental/html/IFrameElement.java b/elemental/src/elemental/html/IFrameElement.java
new file mode 100644
index 0000000..4ab07d6
--- /dev/null
+++ b/elemental/src/elemental/html/IFrameElement.java
@@ -0,0 +1,155 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.svg.SVGDocument;
+import elemental.dom.Document;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface IFrameElement extends Element {
+
+
+ /**
+ * Specifies the alignment of the frame with respect to the surrounding context.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * The active document in the inline frame's nested browsing context.
+ */
+ Document getContentDocument();
+
+
+ /**
+ * The window proxy for the nested browsing context.
+ */
+ Window getContentWindow();
+
+ String getFrameBorder();
+
+ void setFrameBorder(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/iframe#attr-height">height</a></code>
+ HTML attribute, indicating the height of the frame.
+ */
+ String getHeight();
+
+ void setHeight(String arg);
+
+
+ /**
+ * URI of a long description of the frame.
+ */
+ String getLongDesc();
+
+ void setLongDesc(String arg);
+
+
+ /**
+ * Height of the frame margin.
+ */
+ String getMarginHeight();
+
+ void setMarginHeight(String arg);
+
+
+ /**
+ * Width of the frame margin.
+ */
+ String getMarginWidth();
+
+ void setMarginWidth(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/iframe#attr-name">name</a></code>
+ HTML attribute, containing a name by which to refer to the frame.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/iframe#attr-sandbox">sandbox</a></code>
+ HTML attribute, indicating extra restrictions on the behavior of the nested content.
+ */
+ String getSandbox();
+
+ void setSandbox(String arg);
+
+
+ /**
+ * Indicates whether the browser should provide scrollbars for the frame.
+ */
+ String getScrolling();
+
+ void setScrolling(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/iframe#attr-src">src</a></code>
+ HTML attribute, containing the address of the content to be embedded.
+ */
+ String getSrc();
+
+ void setSrc(String arg);
+
+
+ /**
+ * The content to display in the frame.
+ */
+ String getSrcdoc();
+
+ void setSrcdoc(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/iframe#attr-width">width</a></code>
+ HTML attribute, indicating the width of the frame.
+ */
+ String getWidth();
+
+ void setWidth(String arg);
+
+ SVGDocument getSVGDocument();
+}
diff --git a/elemental/src/elemental/html/IceCallback.java b/elemental/src/elemental/html/IceCallback.java
new file mode 100644
index 0000000..6698b15
--- /dev/null
+++ b/elemental/src/elemental/html/IceCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface IceCallback {
+ boolean onIceCallback(IceCandidate candidate, boolean moreToFollow, PeerConnection00 source);
+}
diff --git a/elemental/src/elemental/html/IceCandidate.java b/elemental/src/elemental/html/IceCandidate.java
new file mode 100644
index 0000000..3fe415b
--- /dev/null
+++ b/elemental/src/elemental/html/IceCandidate.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface IceCandidate {
+
+ String getLabel();
+
+ String toSdp();
+}
diff --git a/elemental/src/elemental/html/ImageData.java b/elemental/src/elemental/html/ImageData.java
new file mode 100644
index 0000000..840d372
--- /dev/null
+++ b/elemental/src/elemental/html/ImageData.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Used with the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/canvas"><canvas></a></code>
+ 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>)
+ */
+public interface ImageData {
+
+ Uint8ClampedArray getData();
+
+ int getHeight();
+
+ int getWidth();
+}
diff --git a/elemental/src/elemental/html/ImageElement.java b/elemental/src/elemental/html/ImageElement.java
new file mode 100644
index 0000000..ab7ad5b
--- /dev/null
+++ b/elemental/src/elemental/html/ImageElement.java
@@ -0,0 +1,182 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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>
+ object interface they also have available to them by inheritance) for manipulating the layout and presentation of input elements.
+ */
+public interface ImageElement extends Element {
+
+
+ /**
+ * Indicates the alignment of the image with respect to the surrounding context.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/img#attr-alt">alt</a></code>
+ HTML attribute, indicating fallback context for the image.
+ */
+ String getAlt();
+
+ void setAlt(String arg);
+
+
+ /**
+ * Width of the border around the image.
+ */
+ String getBorder();
+
+ void setBorder(String arg);
+
+
+ /**
+ * 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.
+ */
+ boolean isComplete();
+
+
+ /**
+ * 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.
+ */
+ String getCrossOrigin();
+
+ void setCrossOrigin(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/img#attr-height">height</a></code>
+ HTML attribute, indicating the rendered height of the image in CSS pixels.
+ */
+ int getHeight();
+
+ void setHeight(int arg);
+
+
+ /**
+ * Space to the left and right of the image.
+ */
+ int getHspace();
+
+ void setHspace(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/img#attr-ismap">ismap</a></code>
+ HTML attribute, indicating that the image is part of a server-side image map.
+ */
+ boolean isMap();
+
+ void setIsMap(boolean arg);
+
+
+ /**
+ * URI of a long description of the image.
+ */
+ String getLongDesc();
+
+ void setLongDesc(String arg);
+
+
+ /**
+ * A reference to a low-quality (but faster to load) copy of the image.
+ */
+ String getLowsrc();
+
+ void setLowsrc(String arg);
+
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Intrinsic height of the image in CSS pixels, if it is available; otherwise, 0.
+ */
+ int getNaturalHeight();
+
+
+ /**
+ * Intrinsic width of the image in CSS pixels, if it is available; otherwise, 0.
+ */
+ int getNaturalWidth();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element#attr-src">src</a></code>
+ HTML attribute, containing the URL of the image.
+ */
+ String getSrc();
+
+ void setSrc(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/img#attr-usemap">usemap</a></code>
+ HTML attribute, containing a partial URL of a map element.
+ */
+ String getUseMap();
+
+ void setUseMap(String arg);
+
+
+ /**
+ * Space above and below the image.
+ */
+ int getVspace();
+
+ void setVspace(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/img#attr-width">width</a></code>
+ HTML attribute, indicating the rendered width of the image in CSS pixels.
+ */
+ int getWidth();
+
+ void setWidth(int arg);
+
+ int getX();
+
+ int getY();
+}
diff --git a/elemental/src/elemental/html/InputElement.java b/elemental/src/elemental/html/InputElement.java
new file mode 100644
index 0000000..ef2f839
--- /dev/null
+++ b/elemental/src/elemental/html/InputElement.java
@@ -0,0 +1,548 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.events.EventListener;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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.
+ */
+public interface InputElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-accept">accept</a></code>
+ HTML attribute, containing comma-separated list of file types accepted by the server when <strong>type</strong> is <code>file</code>.
+ */
+ String getAccept();
+
+ void setAccept(String arg);
+
+
+ /**
+ * Alignment of the element.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-alt">alt</a></code>
+ HTML attribute, containing alternative text to use when <strong>type</strong> is <code>image.</code>
+ */
+ String getAlt();
+
+ void setAlt(String arg);
+
+
+ /**
+ * 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>
+ */
+ String getAutocomplete();
+
+ void setAutocomplete(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-autofocus">autofocus</a></code>
+ 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).
+ */
+ boolean isAutofocus();
+
+ void setAutofocus(boolean arg);
+
+
+ /**
+ * The current state of the element when <strong>type</strong> is <code>checkbox</code> or <code>radio</code>.
+ */
+ boolean isChecked();
+
+ void setChecked(boolean arg);
+
+
+ /**
+ * The default state of a radio button or checkbox as originally specified in HTML that created this object.
+ */
+ boolean isDefaultChecked();
+
+ void setDefaultChecked(boolean arg);
+
+
+ /**
+ * The default value as originally specified in HTML that created this object.
+ */
+ String getDefaultValue();
+
+ void setDefaultValue(String arg);
+
+ String getDirName();
+
+ void setDirName(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-disabled">disabled</a></code>
+ HTML attribute, indicating that the control is not available for interaction.
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * A list of selected files.
+ */
+ FileList getFiles();
+
+ void setFiles(FileList arg);
+
+
+ /**
+ * <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>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> this can be the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-id">id</a></code>
+ attribute of any <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ 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>
+, 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>
+ element.</li> <li>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML">HTML 4</a></span> this must be <code>null</code>.</li> </ul>
+ */
+ FormElement getForm();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-formaction">formaction</a></code>
+ HTML attribute, containing the URI of a program that processes information submitted by the element. If specified, this attribute overrides the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-action">action</a></code>
+ attribute of the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ element that owns this element.
+ */
+ String getFormAction();
+
+ void setFormAction(String arg);
+
+ String getFormEnctype();
+
+ void setFormEnctype(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-formmethod">formmethod</a></code>
+ HTML attribute, containing the HTTP method that the browser uses to submit the form. If specified, this attribute overrides the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-method">method</a></code>
+ attribute of the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ element that owns this element.
+ */
+ String getFormMethod();
+
+ void setFormMethod(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-formnovalidate">formnovalidate</a></code>
+ HTML attribute, indicating that the form is not to be validated when it is submitted. If specified, this attribute overrides the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-novalidate">novalidate</a></code>
+ attribute of the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ element that owns this element.
+ */
+ boolean isFormNoValidate();
+
+ void setFormNoValidate(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-formtarget">formtarget</a></code>
+ 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-target">target</a></code>
+ attribute of the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ element that owns this element.
+ */
+ String getFormTarget();
+
+ void setFormTarget(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-height">height</a></code>
+ HTML attribute, which defines the height of the image displayed for the button, if the value of <strong>type</strong> is <span>image</span>.
+ */
+ int getHeight();
+
+ void setHeight(int arg);
+
+ boolean isIncremental();
+
+ void setIncremental(boolean arg);
+
+
+ /**
+ * Indicates that a checkbox is neither on nor off.
+ */
+ boolean isIndeterminate();
+
+ void setIndeterminate(boolean arg);
+
+
+ /**
+ * A list of <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/label"><label></a></code>
+ elements that are labels for this element.
+ */
+ NodeList getLabels();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-max">max</a></code>
+ 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.
+ */
+ String getMax();
+
+ void setMax(String arg);
+
+
+ /**
+ * <p>Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-maxlength">maxlength</a></code>
+ 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>
+ */
+ int getMaxLength();
+
+ void setMaxLength(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-min">min</a></code>
+ 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.
+ */
+ String getMin();
+
+ void setMin(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-multiple">multiple</a></code>
+ HTML attribute, indicating whether more than one value is possible (e.g., multiple files).
+ */
+ boolean isMultiple();
+
+ void setMultiple(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-name">name</a></code>
+ HTML attribute, containing a name that identifies the element when submitting the form.
+ */
+ String getName();
+
+ void setName(String arg);
+
+ EventListener getOnwebkitspeechchange();
+
+ void setOnwebkitspeechchange(EventListener arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-pattern">pattern</a></code>
+ 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.
+ */
+ String getPattern();
+
+ void setPattern(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-placeholder">placeholder</a></code>
+ 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.
+ */
+ String getPlaceholder();
+
+ void setPlaceholder(String arg);
+
+
+ /**
+ * <p>Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-readonly">readonly</a></code>
+ 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>
+ */
+ boolean isReadOnly();
+
+ void setReadOnly(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-required">required</a></code>
+ HTML attribute, indicating that the user must fill in a value before submitting a form.
+ */
+ boolean isRequired();
+
+ void setRequired(boolean arg);
+
+
+ /**
+ * 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."
+ */
+ String getSelectionDirection();
+
+ void setSelectionDirection(String arg);
+
+
+ /**
+ * The index of the end of selected text.
+ */
+ int getSelectionEnd();
+
+ void setSelectionEnd(int arg);
+
+
+ /**
+ * The index of the beginning of selected text.
+ */
+ int getSelectionStart();
+
+ void setSelectionStart(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-size">size</a></code>
+ 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.
+<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.
+ */
+ int getSize();
+
+ void setSize(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-src">src</a></code>
+ 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.
+ */
+ String getSrc();
+
+ void setSrc(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-step">step</a></code>
+ 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.
+ */
+ String getStep();
+
+ void setStep(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-type">type</a></code>
+ HTML attribute, indicating the type of control to display. See
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-type">type</a></code>
+ attribute of <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input"><input></a></code>
+ for possible values.
+ */
+ String getType();
+
+ void setType(String arg);
+
+
+ /**
+ * A client-side image map.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+ */
+ String getUseMap();
+
+ void setUseMap(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getValidationMessage();
+
+
+ /**
+ * The validity states that this element is in.
+ */
+ ValidityState getValidity();
+
+
+ /**
+ * Current value in the control.
+ */
+ String getValue();
+
+ void setValue(String arg);
+
+
+ /**
+ * The value of the element, interpreted as a date, or <code>null</code> if conversion is not possible.
+ */
+ Date getValueAsDate();
+
+ void setValueAsDate(Date arg);
+
+
+ /**
+ * <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>
+ */
+ double getValueAsNumber();
+
+ void setValueAsNumber(double arg);
+
+ boolean isWebkitGrammar();
+
+ void setWebkitGrammar(boolean arg);
+
+ boolean isWebkitSpeech();
+
+ void setWebkitSpeech(boolean arg);
+
+ boolean isWebkitdirectory();
+
+ void setWebkitdirectory(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-width">width</a></code>
+ HTML attribute, which defines the width of the image displayed for the button, if the value of <strong>type</strong> is <span>image</span>.
+ */
+ int getWidth();
+
+ void setWidth(int arg);
+
+
+ /**
+ * Indicates whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation.
+ */
+ boolean isWillValidate();
+
+
+ /**
+ * 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.
+ */
+ boolean checkValidity();
+
+
+ /**
+ * Selects the input text in the element, and focuses it so the user can subsequently replace the whole entry.
+ */
+ void select();
+
+
+ /**
+ * 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.
+ */
+ void setCustomValidity(String error);
+
+
+ /**
+ * 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.
+ */
+ void setSelectionRange(int start, int end);
+
+
+ /**
+ * 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.
+ */
+ void setSelectionRange(int start, int end, String direction);
+
+
+ /**
+ * <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>
+ */
+ void stepDown();
+
+
+ /**
+ * <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>
+ */
+ void stepDown(int n);
+
+
+ /**
+ * <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>
+ */
+ void stepUp();
+
+
+ /**
+ * <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>
+ */
+ void stepUp(int n);
+}
diff --git a/elemental/src/elemental/html/Int16Array.java b/elemental/src/elemental/html/Int16Array.java
new file mode 100644
index 0000000..05588e5
--- /dev/null
+++ b/elemental/src/elemental/html/Int16Array.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>Int16Array</code> type represents an array of twos-complement 16-bit signed integers.</p>
+<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>
+ */
+public interface Int16Array extends ArrayBufferView, IndexableInt {
+
+ /**
+ * The size, in bytes, of each array element.
+ */
+
+ static final int BYTES_PER_ELEMENT = 2;
+
+
+ /**
+ * The number of entries in the array. <strong>Read only.</strong>
+ */
+ int getLength();
+
+ void setElements(Object array);
+
+ void setElements(Object array, int offset);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Int16Array subarray(int start);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Int16Array subarray(int start, int end);
+}
diff --git a/elemental/src/elemental/html/Int32Array.java b/elemental/src/elemental/html/Int32Array.java
new file mode 100644
index 0000000..c0db8fd
--- /dev/null
+++ b/elemental/src/elemental/html/Int32Array.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>Int32Array</code> type represents an array of twos-complement 32-bit signed integers.</p>
+<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>
+ */
+public interface Int32Array extends ArrayBufferView, IndexableInt {
+
+ /**
+ * The size, in bytes, of each array element.
+ */
+
+ static final int BYTES_PER_ELEMENT = 4;
+
+
+ /**
+ * The number of entries in the array. <strong>Read only.</strong>
+ */
+ int getLength();
+
+ void setElements(Object array);
+
+ void setElements(Object array, int offset);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Int32Array subarray(int start);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Int32Array subarray(int start, int end);
+}
diff --git a/elemental/src/elemental/html/Int8Array.java b/elemental/src/elemental/html/Int8Array.java
new file mode 100644
index 0000000..504749f
--- /dev/null
+++ b/elemental/src/elemental/html/Int8Array.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>Int8Array</code> type represents an array of twos-complement 8-bit signed integers.</p>
+<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>
+ */
+public interface Int8Array extends ArrayBufferView, IndexableInt {
+
+ /**
+ * The size, in bytes, of each array element.
+ */
+
+ static final int BYTES_PER_ELEMENT = 1;
+
+
+ /**
+ * 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>
+ */
+ int getLength();
+
+ void setElements(Object array);
+
+ void setElements(Object array, int offset);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Int8Array subarray(int start);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Int8Array subarray(int start, int end);
+}
diff --git a/elemental/src/elemental/html/JavaScriptAudioNode.java b/elemental/src/elemental/html/JavaScriptAudioNode.java
new file mode 100644
index 0000000..06b6c2a
--- /dev/null
+++ b/elemental/src/elemental/html/JavaScriptAudioNode.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface JavaScriptAudioNode extends AudioNode, EventTarget {
+
+ int getBufferSize();
+
+ EventListener getOnaudioprocess();
+
+ void setOnaudioprocess(EventListener arg);
+}
diff --git a/elemental/src/elemental/html/JavaScriptCallFrame.java b/elemental/src/elemental/html/JavaScriptCallFrame.java
new file mode 100644
index 0000000..18f6dbc
--- /dev/null
+++ b/elemental/src/elemental/html/JavaScriptCallFrame.java
@@ -0,0 +1,62 @@
+/*
+ * 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 elemental.html;
+import elemental.util.Indexable;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface JavaScriptCallFrame {
+
+ static final int CATCH_SCOPE = 4;
+
+ static final int CLOSURE_SCOPE = 3;
+
+ static final int GLOBAL_SCOPE = 0;
+
+ static final int LOCAL_SCOPE = 1;
+
+ static final int WITH_SCOPE = 2;
+
+ JavaScriptCallFrame getCaller();
+
+ int getColumn();
+
+ String getFunctionName();
+
+ int getLine();
+
+ Indexable getScopeChain();
+
+ int getSourceID();
+
+ Object getThisObject();
+
+ String getType();
+
+ void evaluate(String script);
+
+ int scopeType(int scopeIndex);
+}
diff --git a/elemental/src/elemental/html/KeygenElement.java b/elemental/src/elemental/html/KeygenElement.java
new file mode 100644
index 0000000..cbe15b0
--- /dev/null
+++ b/elemental/src/elemental/html/KeygenElement.java
@@ -0,0 +1,141 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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="">
+bug 101019</a>
+ for details and status.
+ */
+public interface KeygenElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/keygen#attr-autofocus">autofocus</a></code>
+ HTML attribute, indicating that the form control should have input focus when the page loads.
+ */
+ boolean isAutofocus();
+
+ void setAutofocus(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/keygen#attr-challenge">challenge</a></code>
+ HTML attribute, containing a challenge string that is packaged with the submitted key.
+ */
+ String getChallenge();
+
+ void setChallenge(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/keygen#attr-disabled">disabled</a></code>
+ HTML attribute, indicating that the control is not available for interaction.
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * Indicates the control's form owner, reflecting the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/keygen#attr-form">form</a></code>
+ HTML attribute if it is defined.
+ */
+ FormElement getForm();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/keygen#attr-keytype">keytype</a></code>
+ HTML attribute, containing the type of key used.
+ */
+ String getKeytype();
+
+ void setKeytype(String arg);
+
+
+ /**
+ * A list of label elements associated with this keygen element.
+ */
+ NodeList getLabels();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/keygen#attr-name">name</a></code>
+ HTML attribute, containing the name for the control that is submitted with form data.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Must be the value <code>keygen</code>.
+ */
+ String getType();
+
+
+ /**
+ * 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.
+ */
+ String getValidationMessage();
+
+
+ /**
+ * The validity states that this element is in.
+ */
+ ValidityState getValidity();
+
+
+ /**
+ * Always false because <code>keygen</code> objects are never candidates for constraint validation.
+ */
+ boolean isWillValidate();
+
+
+ /**
+ * Always returns true because <code>keygen</code> objects are never candidates for constraint validation.
+ */
+ boolean checkValidity();
+
+
+ /**
+ * 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.
+ */
+ void setCustomValidity(String error);
+}
diff --git a/elemental/src/elemental/html/LIElement.java b/elemental/src/elemental/html/LIElement.java
new file mode 100644
index 0000000..8625e67
--- /dev/null
+++ b/elemental/src/elemental/html/LIElement.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+), an unordered list (<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ul"><ul></a></code>
+) or a menu (<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/menu"><menu></a></code>
+), 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
+ */
+public interface LIElement extends Element {
+
+
+ /**
+ * 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>
+ 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>
+ property instead.</div>
+ */
+ String getType();
+
+ void setType(String arg);
+
+
+ /**
+ * 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>
+ 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>
+) or for menus (<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/menu"><menu></a></code>
+). <div class="note"><strong>Note</strong>: This attribute was deprecated in HTML4, but reintroduced in HTML5.</div> <div class="geckoVersionNote"> <p>
+</p><div class="geckoVersionHeading">Gecko 9.0 note<div>(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+</div></div>
+<p></p> <p>Prior to <span title="(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+">Gecko 9.0</span>, negative values were incorrectly converted to 0. Starting in <span title="(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+">Gecko 9.0</span> all integer values are correctly parsed.</p> </div>
+ */
+ int getValue();
+
+ void setValue(int arg);
+}
diff --git a/elemental/src/elemental/html/LabelElement.java b/elemental/src/elemental/html/LabelElement.java
new file mode 100644
index 0000000..3c5cea9
--- /dev/null
+++ b/elemental/src/elemental/html/LabelElement.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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.
+ */
+public interface LabelElement extends Element {
+
+
+ /**
+ * The labeled control.
+ */
+ Element getControl();
+
+
+ /**
+ * The form owner of this label.
+ */
+ FormElement getForm();
+
+
+ /**
+ * The ID of the labeled control. Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/label#attr-for">for</a></code>
+ attribute.
+ */
+ String getHtmlFor();
+
+ void setHtmlFor(String arg);
+}
diff --git a/elemental/src/elemental/html/LegendElement.java b/elemental/src/elemental/html/LegendElement.java
new file mode 100644
index 0000000..c6f6daa
--- /dev/null
+++ b/elemental/src/elemental/html/LegendElement.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+<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>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML">HTML 4</a></span>) interface.
+ */
+public interface LegendElement extends Element {
+
+
+ /**
+ * Alignment relative to the form set.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>,
+
+<span class="deprecatedInlineTemplate" title="">Deprecated</span>
+
+ in
+<span>HTML 4.01</span>
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * 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.
+ */
+ FormElement getForm();
+}
diff --git a/elemental/src/elemental/html/LinkElement.java b/elemental/src/elemental/html/LinkElement.java
new file mode 100644
index 0000000..b1b8366
--- /dev/null
+++ b/elemental/src/elemental/html/LinkElement.java
@@ -0,0 +1,135 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.dom.DOMSettableTokenList;
+import elemental.stylesheets.StyleSheet;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface LinkElement extends Element {
+
+
+ /**
+ * 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>
+ */
+ String getCharset();
+
+ void setCharset(String arg);
+
+
+ /**
+ * 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>
+ element instead;</li> <li>Set the <code>disabled</code> <strong>property</strong> of the DOM object via scripting.</li> </ul> </div>
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * 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.
+ */
+ String getHref();
+
+ void setHref(String arg);
+
+
+ /**
+ * 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/a#attr-href">href</a></code>
+ attribute is present.
+ */
+ String getHreflang();
+
+ void setHreflang(String arg);
+
+
+ /**
+ * 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>
+ */
+ String getMedia();
+
+ void setMedia(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getRel();
+
+ void setRel(String arg);
+
+
+ /**
+ * The value of this attribute shows the relationship of the current document to the linked document, as defined by the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/link#attr-href">href</a></code>
+ 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/link#attr-rel">rel</a></code>
+.<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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/link#attr-rel">rel</a></code>
+ 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>
+ */
+ String getRev();
+
+ void setRev(String arg);
+
+ StyleSheet getSheet();
+
+
+ /**
+ * This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/link#attr-rel">rel</a></code>
+ 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element#attr-sizes">sizes</a></code>
+ 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>
+ */
+ DOMSettableTokenList getSizes();
+
+ void setSizes(DOMSettableTokenList arg);
+
+
+ /**
+ * Defines the frame or window name that has the defined linking relationship or that will show the rendering of any linked resource.
+ */
+ String getTarget();
+
+ void setTarget(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getType();
+
+ void setType(String arg);
+}
diff --git a/elemental/src/elemental/html/Location.java b/elemental/src/elemental/html/Location.java
new file mode 100644
index 0000000..5b28571
--- /dev/null
+++ b/elemental/src/elemental/html/Location.java
@@ -0,0 +1,118 @@
+/*
+ * 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 elemental.html;
+import elemental.util.Indexable;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface Location {
+
+ Indexable getAncestorOrigins();
+
+
+ /**
+ * 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.
+ */
+ String getHash();
+
+ void setHash(String arg);
+
+
+ /**
+ * the host name and port number.
+ */
+ String getHost();
+
+ void setHost(String arg);
+
+
+ /**
+ * the host name (without the port number or square brackets).
+ */
+ String getHostname();
+
+ void setHostname(String arg);
+
+
+ /**
+ * the entire URL.
+ */
+ String getHref();
+
+ void setHref(String arg);
+
+ String getOrigin();
+
+
+ /**
+ * the path (relative to the host).
+ */
+ String getPathname();
+
+ void setPathname(String arg);
+
+
+ /**
+ * the port number of the URL.
+ */
+ String getPort();
+
+ void setPort(String arg);
+
+
+ /**
+ * the protocol of the URL.
+ */
+ String getProtocol();
+
+ void setProtocol(String arg);
+
+
+ /**
+ * the part of the URL that follows the ? symbol, including the ? symbol.
+ */
+ String getSearch();
+
+ void setSearch(String arg);
+
+
+ /**
+ * Load the document at the provided URL.
+ */
+ void assign(String url);
+
+
+ /**
+ * 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.
+ */
+ void reload();
+
+
+ /**
+ * 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.
+ */
+ void replace(String url);
+}
diff --git a/elemental/src/elemental/html/MapElement.java b/elemental/src/elemental/html/MapElement.java
new file mode 100644
index 0000000..3067518
--- /dev/null
+++ b/elemental/src/elemental/html/MapElement.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements to define a image map.
+ */
+public interface MapElement extends Element {
+
+ HTMLCollection getAreas();
+
+ String getName();
+
+ void setName(String arg);
+}
diff --git a/elemental/src/elemental/html/MarqueeElement.java b/elemental/src/elemental/html/MarqueeElement.java
new file mode 100644
index 0000000..7449eae
--- /dev/null
+++ b/elemental/src/elemental/html/MarqueeElement.java
@@ -0,0 +1,116 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Non-standard
+ */
+public interface MarqueeElement extends Element {
+
+
+ /**
+ * 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>.
+ */
+ String getBehavior();
+
+ void setBehavior(String arg);
+
+ String getBgColor();
+
+ void setBgColor(String arg);
+
+
+ /**
+ * 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>.
+ */
+ String getDirection();
+
+ void setDirection(String arg);
+
+
+ /**
+ * Sets the height in pixels or percentage value.
+ */
+ String getHeight();
+
+ void setHeight(String arg);
+
+
+ /**
+ * Sets the horizontal margin
+ */
+ int getHspace();
+
+ void setHspace(int arg);
+
+
+ /**
+ * 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.
+ */
+ int getLoop();
+
+ void setLoop(int arg);
+
+ int getScrollAmount();
+
+ void setScrollAmount(int arg);
+
+ int getScrollDelay();
+
+ void setScrollDelay(int arg);
+
+ boolean isTrueSpeed();
+
+ void setTrueSpeed(boolean arg);
+
+
+ /**
+ * Sets the vertical margin in pixels or percentage value.
+ */
+ int getVspace();
+
+ void setVspace(int arg);
+
+
+ /**
+ * Sets the width in pixels or percentage value.
+ */
+ String getWidth();
+
+ void setWidth(String arg);
+
+
+ /**
+ * Starts scrolling of the marquee.
+ */
+ void start();
+
+
+ /**
+ * Stops scrolling of the marquee.
+ */
+ void stop();
+}
diff --git a/elemental/src/elemental/html/MediaController.java b/elemental/src/elemental/html/MediaController.java
new file mode 100644
index 0000000..a447dbd
--- /dev/null
+++ b/elemental/src/elemental/html/MediaController.java
@@ -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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaController extends EventTarget {
+
+ TimeRanges getBuffered();
+
+ double getCurrentTime();
+
+ void setCurrentTime(double arg);
+
+ double getDefaultPlaybackRate();
+
+ void setDefaultPlaybackRate(double arg);
+
+ double getDuration();
+
+ boolean isMuted();
+
+ void setMuted(boolean arg);
+
+ boolean isPaused();
+
+ double getPlaybackRate();
+
+ void setPlaybackRate(double arg);
+
+ TimeRanges getPlayed();
+
+ TimeRanges getSeekable();
+
+ double getVolume();
+
+ void setVolume(double arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ void pause();
+
+ void play();
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/MediaElement.java b/elemental/src/elemental/html/MediaElement.java
new file mode 100644
index 0000000..9261b99
--- /dev/null
+++ b/elemental/src/elemental/html/MediaElement.java
@@ -0,0 +1,373 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.events.EventListener;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * HTML media elements (such as <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/audio"><audio></a></code>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+) 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.
+ */
+public interface MediaElement extends Element {
+
+ static final int EOS_DECODE_ERR = 2;
+
+ static final int EOS_NETWORK_ERR = 1;
+
+ static final int EOS_NO_ERROR = 0;
+
+ /**
+ * Data is available for the current playback position, but not enough to actually play more than one frame.
+ */
+
+ static final int HAVE_CURRENT_DATA = 2;
+
+ /**
+ * Enough data is available—and the download rate is high enough—that the media can be played through to the end without interruption.
+ */
+
+ static final int HAVE_ENOUGH_DATA = 4;
+
+ /**
+ * 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).
+ */
+
+ static final int HAVE_FUTURE_DATA = 3;
+
+ /**
+ * Enough of the media resource has been retrieved that the metadata attributes are initialized. Seeking will no longer raise an exception.
+ */
+
+ static final int HAVE_METADATA = 1;
+
+ /**
+ * No information is available about the media resource.
+ */
+
+ static final int HAVE_NOTHING = 0;
+
+ static final int NETWORK_EMPTY = 0;
+
+ static final int NETWORK_IDLE = 1;
+
+ static final int NETWORK_LOADING = 2;
+
+ static final int NETWORK_NO_SOURCE = 3;
+
+ static final int SOURCE_CLOSED = 0;
+
+ static final int SOURCE_ENDED = 2;
+
+ static final int SOURCE_OPEN = 1;
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video#attr-autoplay">autoplay</a></code>
+ HTML attribute, indicating whether to begin playing as soon as enough media is available.
+ */
+ boolean isAutoplay();
+
+ void setAutoplay(boolean arg);
+
+
+ /**
+ * The ranges of the media source that the browser has buffered, if any.
+ */
+ TimeRanges getBuffered();
+
+ MediaController getController();
+
+ void setController(MediaController arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video#attr-controls">controls</a></code>
+ HTML attribute, indicating whether user interface items for controlling the resource should be displayed.
+ */
+ boolean isControls();
+
+ void setControls(boolean arg);
+
+
+ /**
+ * 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>.
+ */
+ String getCurrentSrc();
+
+
+ /**
+ * The current playback time, in seconds. Setting this value seeks the media to the new time.
+ */
+ float getCurrentTime();
+
+ void setCurrentTime(float arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video#attr-muted">muted</a></code>
+ 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).
+ */
+ boolean isDefaultMuted();
+
+ void setDefaultMuted(boolean arg);
+
+
+ /**
+ * 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.
+ */
+ float getDefaultPlaybackRate();
+
+ void setDefaultPlaybackRate(float arg);
+
+
+ /**
+ * 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>.
+ */
+ float getDuration();
+
+
+ /**
+ * Indicates whether the media element has ended playback.
+ */
+ boolean isEnded();
+
+
+ /**
+ * The media error object for the most recent error, or null if there has not been an error.
+ */
+ MediaError getError();
+
+ double getInitialTime();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video#attr-loop">loop</a></code>
+ HTML attribute, indicating whether the media element should start over when it reaches the end.
+ */
+ boolean isLoop();
+
+ void setLoop(boolean arg);
+
+ String getMediaGroup();
+
+ void setMediaGroup(String arg);
+
+
+ /**
+ * <code>true</code> if the audio is muted, and <code>false</code> otherwise.
+ */
+ boolean isMuted();
+
+ void setMuted(boolean arg);
+
+
+ /**
+ * <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>
+ */
+ int getNetworkState();
+
+ EventListener getOnwebkitkeyadded();
+
+ void setOnwebkitkeyadded(EventListener arg);
+
+ EventListener getOnwebkitkeyerror();
+
+ void setOnwebkitkeyerror(EventListener arg);
+
+ EventListener getOnwebkitkeymessage();
+
+ void setOnwebkitkeymessage(EventListener arg);
+
+ EventListener getOnwebkitneedkey();
+
+ void setOnwebkitneedkey(EventListener arg);
+
+ EventListener getOnwebkitsourceclose();
+
+ void setOnwebkitsourceclose(EventListener arg);
+
+ EventListener getOnwebkitsourceended();
+
+ void setOnwebkitsourceended(EventListener arg);
+
+ EventListener getOnwebkitsourceopen();
+
+ void setOnwebkitsourceopen(EventListener arg);
+
+
+ /**
+ * Indicates whether the media element is paused.
+ */
+ boolean isPaused();
+
+
+ /**
+ * 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.
+ */
+ float getPlaybackRate();
+
+ void setPlaybackRate(float arg);
+
+
+ /**
+ * The ranges of the media source that the browser has played, if any.
+ */
+ TimeRanges getPlayed();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video#attr-preload">preload</a></code>
+ HTML attribute, indicating what data should be preloaded at page-load time, if any.
+ */
+ String getPreload();
+
+ void setPreload(String arg);
+
+
+ /**
+ * <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>
+ */
+ int getReadyState();
+
+
+ /**
+ * The time ranges that the user is able to seek to, if any.
+ */
+ TimeRanges getSeekable();
+
+
+ /**
+ * Indicates whether the media is in the process of seeking to a new position.
+ */
+ boolean isSeeking();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video#attr-src">src</a></code>
+ HTML attribute, containing the URL of a media resource to use.
+ */
+ String getSrc();
+
+ void setSrc(String arg);
+
+
+ /**
+ * The earliest possible position in the media, in seconds.
+ */
+ float getStartTime();
+
+ TextTrackList getTextTracks();
+
+
+ /**
+ * The audio volume, from 0.0 (silent) to 1.0 (loudest).
+ */
+ float getVolume();
+
+ void setVolume(float arg);
+
+ int getWebkitAudioDecodedByteCount();
+
+ boolean isWebkitClosedCaptionsVisible();
+
+ void setWebkitClosedCaptionsVisible(boolean arg);
+
+ boolean isWebkitHasClosedCaptions();
+
+ String getWebkitMediaSourceURL();
+
+ boolean isWebkitPreservesPitch();
+
+ void setWebkitPreservesPitch(boolean arg);
+
+ int getWebkitSourceState();
+
+ int getWebkitVideoDecodedByteCount();
+
+ TextTrack addTextTrack(String kind);
+
+ TextTrack addTextTrack(String kind, String label);
+
+ TextTrack addTextTrack(String kind, String label, String language);
+
+
+ /**
+ * Determines whether the specified media type can be played back.
+ */
+ String canPlayType(String type, String keySystem);
+
+
+ /**
+ * Begins loading the media content from the server.
+ */
+ void load();
+
+
+ /**
+ * Pauses the media playback.
+ */
+ void pause();
+
+
+ /**
+ * 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.
+ */
+ void play();
+
+ void webkitAddKey(String keySystem, Uint8Array key);
+
+ void webkitAddKey(String keySystem, Uint8Array key, Uint8Array initData, String sessionId);
+
+ void webkitCancelKeyRequest(String keySystem, String sessionId);
+
+ void webkitGenerateKeyRequest(String keySystem);
+
+ void webkitGenerateKeyRequest(String keySystem, Uint8Array initData);
+
+ void webkitSourceAbort(String id);
+
+ void webkitSourceAddId(String id, String type);
+
+ void webkitSourceAppend(String id, Uint8Array data);
+
+ TimeRanges webkitSourceBuffered(String id);
+
+ void webkitSourceEndOfStream(int status);
+
+ void webkitSourceRemoveId(String id);
+}
diff --git a/elemental/src/elemental/html/MediaElementAudioSourceNode.java b/elemental/src/elemental/html/MediaElementAudioSourceNode.java
new file mode 100644
index 0000000..6ad23c8
--- /dev/null
+++ b/elemental/src/elemental/html/MediaElementAudioSourceNode.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaElementAudioSourceNode extends AudioSourceNode {
+
+ MediaElement getMediaElement();
+}
diff --git a/elemental/src/elemental/html/MediaError.java b/elemental/src/elemental/html/MediaError.java
new file mode 100644
index 0000000..6ef9f09
--- /dev/null
+++ b/elemental/src/elemental/html/MediaError.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaError {
+
+ static final int MEDIA_ERR_ABORTED = 1;
+
+ static final int MEDIA_ERR_DECODE = 3;
+
+ static final int MEDIA_ERR_ENCRYPTED = 5;
+
+ static final int MEDIA_ERR_NETWORK = 2;
+
+ static final int MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
+
+ int getCode();
+}
diff --git a/elemental/src/elemental/html/MediaKeyError.java b/elemental/src/elemental/html/MediaKeyError.java
new file mode 100644
index 0000000..bf82721
--- /dev/null
+++ b/elemental/src/elemental/html/MediaKeyError.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaKeyError {
+
+ static final int MEDIA_KEYERR_CLIENT = 2;
+
+ static final int MEDIA_KEYERR_DOMAIN = 6;
+
+ static final int MEDIA_KEYERR_HARDWARECHANGE = 5;
+
+ static final int MEDIA_KEYERR_OUTPUT = 4;
+
+ static final int MEDIA_KEYERR_SERVICE = 3;
+
+ static final int MEDIA_KEYERR_UNKNOWN = 1;
+
+ int getCode();
+}
diff --git a/elemental/src/elemental/html/MediaKeyEvent.java b/elemental/src/elemental/html/MediaKeyEvent.java
new file mode 100644
index 0000000..0b72164
--- /dev/null
+++ b/elemental/src/elemental/html/MediaKeyEvent.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.html;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaKeyEvent extends Event {
+
+ String getDefaultURL();
+
+ MediaKeyError getErrorCode();
+
+ Uint8Array getInitData();
+
+ String getKeySystem();
+
+ Uint8Array getMessage();
+
+ String getSessionId();
+
+ int getSystemCode();
+}
diff --git a/elemental/src/elemental/html/MediaQueryList.java b/elemental/src/elemental/html/MediaQueryList.java
new file mode 100644
index 0000000..eabc763
--- /dev/null
+++ b/elemental/src/elemental/html/MediaQueryList.java
@@ -0,0 +1,73 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong>
+<div>This page is not complete.</div>
+</div>
+
+<p></p>
+<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>
+, and handles sending notifications to listeners when the media queries on the document change.</p>
+<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>
+ */
+public interface MediaQueryList {
+
+
+ /**
+ * <code>true</code> if the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/document">document</a></code>
+ currently matches the media query list; otherwise <code>false</code>. <strong>Read only.</strong>
+ */
+ boolean isMatches();
+
+
+ /**
+ * The serialized media query list.
+ */
+ String getMedia();
+
+
+ /**
+ * <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>
+
+<div id="section_5"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>listener</code></dt> <dd>The <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/MediaQueryListListener">MediaQueryListListener</a></code>
+ to invoke when the media query's evaluated result changes.</dd> <div id="section_6"><span id="removeListener()"></span></div></dl></div>
+ */
+ void addListener(MediaQueryListListener listener);
+
+
+ /**
+ * <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>
+</div></dl>
+</div><div id="section_7"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>listener</code></dt> <dd>The <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/MediaQueryListListener">MediaQueryListListener</a></code>
+ to stop calling on changes to the media query's evaluated result.</dd>
+</dl>
+</div>
+ */
+ void removeListener(MediaQueryListListener listener);
+}
diff --git a/elemental/src/elemental/html/MediaQueryListListener.java b/elemental/src/elemental/html/MediaQueryListListener.java
new file mode 100644
index 0000000..5f8773a
--- /dev/null
+++ b/elemental/src/elemental/html/MediaQueryListListener.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><strong>DRAFT</strong>
+<div>This page is not complete.</div>
+</div>
+
+<p></p>
+<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>
+, and handles sending notifications to listeners when the media queries on the document change.</p>
+<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>
+ */
+public interface MediaQueryListListener {
+
+ void queryChanged(MediaQueryList list);
+}
diff --git a/elemental/src/elemental/html/MemoryInfo.java b/elemental/src/elemental/html/MemoryInfo.java
new file mode 100644
index 0000000..15590aa
--- /dev/null
+++ b/elemental/src/elemental/html/MemoryInfo.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MemoryInfo {
+
+ int getJsHeapSizeLimit();
+
+ int getTotalJSHeapSize();
+
+ int getUsedJSHeapSize();
+}
diff --git a/elemental/src/elemental/html/MenuElement.java b/elemental/src/elemental/html/MenuElement.java
new file mode 100644
index 0000000..621688c
--- /dev/null
+++ b/elemental/src/elemental/html/MenuElement.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The HTML <em>menu</em> element (<code><menu></code>) represents an unordered list of menu choices, or commands.</p>
+<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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ol"><ol></a></code>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ul"><ul></a></code>
+ elements.</p>
+<div class="note"><strong>Usage note: </strong> The <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/menu"><menu></a></code>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ul"><ul></a></code>
+ 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>
+ element only contains items to display while the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/menu"><menu></a></code>
+ element contains interactive items, to act on.</div>
+<div class="note"><strong>Note</strong>: This element was deprecated in HTML4, but reintroduced in HTML5.</div>
+ */
+public interface MenuElement extends Element {
+
+ boolean isCompact();
+
+ void setCompact(boolean arg);
+}
diff --git a/elemental/src/elemental/html/MetaElement.java b/elemental/src/elemental/html/MetaElement.java
new file mode 100644
index 0000000..14f11cc
--- /dev/null
+++ b/elemental/src/elemental/html/MetaElement.java
@@ -0,0 +1,64 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface MetaElement extends Element {
+
+
+ /**
+ * Gets or sets the value of meta-data property.
+ */
+ String getContent();
+
+ void setContent(String arg);
+
+
+ /**
+ * Gets or sets the name of an HTTP response header to define for a document.
+ */
+ String getHttpEquiv();
+
+ void setHttpEquiv(String arg);
+
+
+ /**
+ * Gets or sets the name of a meta-data property to define for a document.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Gets or sets the name of a scheme used to interpret the value of a meta-data property.
+ */
+ String getScheme();
+
+ void setScheme(String arg);
+}
diff --git a/elemental/src/elemental/html/Metadata.java b/elemental/src/elemental/html/Metadata.java
new file mode 100644
index 0000000..59029ae
--- /dev/null
+++ b/elemental/src/elemental/html/Metadata.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface Metadata {
+
+ Date getModificationTime();
+
+ double getSize();
+}
diff --git a/elemental/src/elemental/html/MetadataCallback.java b/elemental/src/elemental/html/MetadataCallback.java
new file mode 100644
index 0000000..5ae3f50
--- /dev/null
+++ b/elemental/src/elemental/html/MetadataCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface MetadataCallback {
+ boolean onMetadataCallback(Metadata metadata);
+}
diff --git a/elemental/src/elemental/html/MeterElement.java b/elemental/src/elemental/html/MeterElement.java
new file mode 100644
index 0000000..afa7dc1
--- /dev/null
+++ b/elemental/src/elemental/html/MeterElement.java
@@ -0,0 +1,84 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The HTML <em>meter</em> element (<code><meter></code>) represents either a scalar value within a known range or a fractional value.</p>
+<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>
+ */
+public interface MeterElement extends Element {
+
+
+ /**
+ * 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.
+ */
+ double getHigh();
+
+ void setHigh(double arg);
+
+ NodeList getLabels();
+
+
+ /**
+ * 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.
+ */
+ double getLow();
+
+ void setLow(double arg);
+
+
+ /**
+ * 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.
+ */
+ double getMax();
+
+ void setMax(double arg);
+
+
+ /**
+ * 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.
+ */
+ double getMin();
+
+ void setMin(double arg);
+
+
+ /**
+ * 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.
+ */
+ double getOptimum();
+
+ void setOptimum(double arg);
+
+
+ /**
+ * 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.
+ */
+ double getValue();
+
+ void setValue(double arg);
+}
diff --git a/elemental/src/elemental/html/ModElement.java b/elemental/src/elemental/html/ModElement.java
new file mode 100644
index 0000000..684b83f
--- /dev/null
+++ b/elemental/src/elemental/html/ModElement.java
@@ -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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface ModElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/del#attr-cite">cite</a></code>
+ HTML attribute, containing a URI of a resource explaining the change.
+ */
+ String getCite();
+
+ void setCite(String arg);
+
+ String getDateTime();
+
+ void setDateTime(String arg);
+}
diff --git a/elemental/src/elemental/html/Navigator.java b/elemental/src/elemental/html/Navigator.java
new file mode 100644
index 0000000..a6d3a7f
--- /dev/null
+++ b/elemental/src/elemental/html/Navigator.java
@@ -0,0 +1,151 @@
+/*
+ * 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 elemental.html;
+import elemental.util.Mappable;
+import elemental.dom.Geolocation;
+import elemental.dom.PointerLock;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Returns a reference to the navigator object, which can be queried for information about the application running the script.
+ */
+public interface Navigator {
+
+
+ /**
+ * Returns the internal "code" name of the current browser. Do not rely on this property to return the correct value.
+ */
+ String getAppCodeName();
+
+
+ /**
+ * Returns the official name of the browser. Do not rely on this property to return the correct value.
+ */
+ String getAppName();
+
+
+ /**
+ * Returns the version of the browser as a string. Do not rely on this property to return the correct value.
+ */
+ String getAppVersion();
+
+
+ /**
+ * Returns a boolean indicating whether cookies are enabled in the browser or not.
+ */
+ boolean isCookieEnabled();
+
+ Geolocation getGeolocation();
+
+
+ /**
+ * Returns a string representing the language version of the browser.
+ */
+ String getLanguage();
+
+
+ /**
+ * Returns a list of the MIME types supported by the browser.
+ */
+ DOMMimeTypeArray getMimeTypes();
+
+
+ /**
+ * Returns a boolean indicating whether the browser is working online.
+ */
+ boolean isOnLine();
+
+
+ /**
+ * Returns a string representing the platform of the browser.
+ */
+ String getPlatform();
+
+
+ /**
+ * Returns an array of the plugins installed in the browser.
+ */
+ DOMPluginArray getPlugins();
+
+
+ /**
+ * Returns the product name of the current browser. (e.g. "Gecko")
+ */
+ String getProduct();
+
+
+ /**
+ * Returns the build number of the current browser (e.g. "20060909")
+ */
+ String getProductSub();
+
+
+ /**
+ * Returns the user agent string for the current browser.
+ */
+ String getUserAgent();
+
+
+ /**
+ * Returns the vendor name of the current browser (e.g. "Netscape6")
+ */
+ String getVendor();
+
+
+ /**
+ * Returns the vendor version number (e.g. "6.1")
+ */
+ String getVendorSub();
+
+
+ /**
+ * Returns a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/window.navigator.mozBattery">battery</a></code>
+ object you can use to get information about the battery charging status.
+ */
+ BatteryManager getWebkitBattery();
+
+
+ /**
+ * 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>.
+ */
+ PointerLock getWebkitPointer();
+
+ void getStorageUpdates();
+
+
+ /**
+ * Indicates whether the host browser is Java-enabled or not.
+ */
+ boolean javaEnabled();
+
+
+ /**
+ * Allows web sites to register themselves as a possible handler for a given protocol.
+ */
+ void registerProtocolHandler(String scheme, String url, String title);
+
+ void webkitGetUserMedia(Mappable options, NavigatorUserMediaSuccessCallback successCallback, NavigatorUserMediaErrorCallback errorCallback);
+
+ void webkitGetUserMedia(Mappable options, NavigatorUserMediaSuccessCallback successCallback);
+}
diff --git a/elemental/src/elemental/html/NavigatorUserMediaError.java b/elemental/src/elemental/html/NavigatorUserMediaError.java
new file mode 100644
index 0000000..de95c03
--- /dev/null
+++ b/elemental/src/elemental/html/NavigatorUserMediaError.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface NavigatorUserMediaError {
+
+ static final int PERMISSION_DENIED = 1;
+
+ int getCode();
+}
diff --git a/elemental/src/elemental/html/NavigatorUserMediaErrorCallback.java b/elemental/src/elemental/html/NavigatorUserMediaErrorCallback.java
new file mode 100644
index 0000000..00ba550
--- /dev/null
+++ b/elemental/src/elemental/html/NavigatorUserMediaErrorCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface NavigatorUserMediaErrorCallback {
+ boolean onNavigatorUserMediaErrorCallback(NavigatorUserMediaError error);
+}
diff --git a/elemental/src/elemental/html/NavigatorUserMediaSuccessCallback.java b/elemental/src/elemental/html/NavigatorUserMediaSuccessCallback.java
new file mode 100644
index 0000000..6a41001
--- /dev/null
+++ b/elemental/src/elemental/html/NavigatorUserMediaSuccessCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface NavigatorUserMediaSuccessCallback {
+ boolean onNavigatorUserMediaSuccessCallback(LocalMediaStream stream);
+}
diff --git a/elemental/src/elemental/html/Notification.java b/elemental/src/elemental/html/Notification.java
new file mode 100644
index 0000000..c6c79b8
--- /dev/null
+++ b/elemental/src/elemental/html/Notification.java
@@ -0,0 +1,99 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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)
+</p></div>
+
+<div><p>Non-standard</p></div><p></p>
+<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>
+ object's <code>createNotification()</code> method, is used to configure and display desktop notifications to the user.</p>
+ */
+public interface Notification extends EventTarget {
+
+ String getDir();
+
+ void setDir(String arg);
+
+
+ /**
+ * A function to call when the notification is clicked.
+ */
+ EventListener getOnclick();
+
+ void setOnclick(EventListener arg);
+
+
+ /**
+ * A function to call when the notification is dismissed.
+ */
+ EventListener getOnclose();
+
+ void setOnclose(EventListener arg);
+
+ EventListener getOndisplay();
+
+ void setOndisplay(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnshow();
+
+ void setOnshow(EventListener arg);
+
+ String getReplaceId();
+
+ void setReplaceId(String arg);
+
+ String getTag();
+
+ void setTag(String arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ void cancel();
+
+ void close();
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+
+ /**
+ * Displays the notification.
+ */
+ void show();
+}
diff --git a/elemental/src/elemental/html/NotificationCenter.java b/elemental/src/elemental/html/NotificationCenter.java
new file mode 100644
index 0000000..02d924a
--- /dev/null
+++ b/elemental/src/elemental/html/NotificationCenter.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface NotificationCenter {
+
+ int checkPermission();
+
+ Notification createHTMLNotification(String url);
+
+ Notification createNotification(String iconUrl, String title, String body);
+
+ void requestPermission(VoidCallback callback);
+}
diff --git a/elemental/src/elemental/html/NotificationPermissionCallback.java b/elemental/src/elemental/html/NotificationPermissionCallback.java
new file mode 100644
index 0000000..00dd0f2
--- /dev/null
+++ b/elemental/src/elemental/html/NotificationPermissionCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface NotificationPermissionCallback {
+ boolean onNotificationPermissionCallback(String permission);
+}
diff --git a/elemental/src/elemental/html/OESStandardDerivatives.java b/elemental/src/elemental/html/OESStandardDerivatives.java
new file mode 100644
index 0000000..2202f6c
--- /dev/null
+++ b/elemental/src/elemental/html/OESStandardDerivatives.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface OESStandardDerivatives {
+
+ static final int FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
+}
diff --git a/elemental/src/elemental/html/OESTextureFloat.java b/elemental/src/elemental/html/OESTextureFloat.java
new file mode 100644
index 0000000..e4e439a
--- /dev/null
+++ b/elemental/src/elemental/html/OESTextureFloat.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface OESTextureFloat {
+}
diff --git a/elemental/src/elemental/html/OESVertexArrayObject.java b/elemental/src/elemental/html/OESVertexArrayObject.java
new file mode 100644
index 0000000..16a2fd1
--- /dev/null
+++ b/elemental/src/elemental/html/OESVertexArrayObject.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface OESVertexArrayObject {
+
+ static final int VERTEX_ARRAY_BINDING_OES = 0x85B5;
+
+ void bindVertexArrayOES(WebGLVertexArrayObjectOES arrayObject);
+
+ WebGLVertexArrayObjectOES createVertexArrayOES();
+
+ void deleteVertexArrayOES(WebGLVertexArrayObjectOES arrayObject);
+
+ boolean isVertexArrayOES(WebGLVertexArrayObjectOES arrayObject);
+}
diff --git a/elemental/src/elemental/html/OListElement.java b/elemental/src/elemental/html/OListElement.java
new file mode 100644
index 0000000..e47463b
--- /dev/null
+++ b/elemental/src/elemental/html/OListElement.java
@@ -0,0 +1,81 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ property.</p>
+<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>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ul"><ul></a></code>
+ elements.</p>
+<div class="note"><strong>Usage note: </strong> The <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ol"><ol></a></code>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ul"><ul></a></code>
+ 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>
+ 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>
+ element should be used, else the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ul"><ul></a></code>
+ is adequate.</div>
+ */
+public interface OListElement extends Element {
+
+
+ /**
+ * 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>
+ 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>
+ can be used with a value of <span>80%</span>.</div>
+ */
+ boolean isCompact();
+
+ void setCompact(boolean arg);
+
+
+ /**
+ * 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.
+ */
+ boolean isReversed();
+
+ void setReversed(boolean arg);
+
+
+ /**
+ * 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>
+ */
+ int getStart();
+
+ void setStart(int arg);
+
+
+ /**
+ * 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/li#attr-type">type</a></code>
+ attribute is used within an enclosed <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/li"><li></a></code>
+ 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>
+ property instead.</div>
+ */
+ String getType();
+
+ void setType(String arg);
+}
diff --git a/elemental/src/elemental/html/ObjectElement.java b/elemental/src/elemental/html/ObjectElement.java
new file mode 100644
index 0000000..65d3678
--- /dev/null
+++ b/elemental/src/elemental/html/ObjectElement.java
@@ -0,0 +1,265 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.svg.SVGDocument;
+import elemental.dom.Document;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface ObjectElement extends Element {
+
+
+ /**
+ * Alignment of the object relative to its context.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object#attr-archive">archive</a></code>
+ HTML attribute, containing a list of archives for resources for this object.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ String getArchive();
+
+ void setArchive(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object#attr-border">border</a></code>
+ HTML attribute, specifying the width of a border around the object.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ String getBorder();
+
+ void setBorder(String arg);
+
+
+ /**
+ * 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.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ String getCode();
+
+ void setCode(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object#attr-codebase">codebase</a></code>
+ HTML attribute, specifying the base path to use to resolve relative URIs.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ String getCodeBase();
+
+ void setCodeBase(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object#attr-codetype">codetype</a></code>
+ HTML attribute, specifying the content type of the data.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ String getCodeType();
+
+ void setCodeType(String arg);
+
+
+ /**
+ * The active document of the object element's nested browsing context, if any; otherwise null.
+ */
+ Document getContentDocument();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object#attr-data">data</a></code>
+ HTML attribute, specifying the address of a resource's data.
+ */
+ String getData();
+
+ void setData(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object#attr-declare">declare</a></code>
+ HTML attribute, indicating that this is a declaration, not an instantiation, of the object.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ boolean isDeclare();
+
+ void setDeclare(boolean arg);
+
+
+ /**
+ * The object element's form owner, or null if there isn't one.
+ */
+ FormElement getForm();
+
+
+ /**
+ * Reflects the {{htmlattrxref("height", "object)}} HTML attribute, specifying the displayed height of the resource in CSS pixels.
+ */
+ String getHeight();
+
+ void setHeight(String arg);
+
+
+ /**
+ * Horizontal space in pixels around the control.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ int getHspace();
+
+ void setHspace(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object#attr-name">name</a></code>
+ HTML attribute, specifying the name of the object (
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML">HTML 4</a></span>, or of a browsing context (
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object#attr-standby">standby</a></code>
+ HTML attribute, specifying a message to display while the object loads.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ String getStandby();
+
+ void setStandby(String arg);
+
+
+ /**
+ * Reflects the {{htmlattrxref("type", "object)}} HTML attribute, specifying the MIME type of the resource.
+ */
+ String getType();
+
+ void setType(String arg);
+
+
+ /**
+ * Reflects the {{htmlattrxref("usemap", "object)}} HTML attribute, specifying a {{HTMLElement("map")}} element to use.
+ */
+ String getUseMap();
+
+ void setUseMap(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getValidationMessage();
+
+
+ /**
+ * The validity states that this element is in.
+ */
+ ValidityState getValidity();
+
+
+ /**
+ * Horizontal space in pixels around the control.
+
+<span title="">Obsolete</span> in
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>.
+ */
+ int getVspace();
+
+ void setVspace(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object#attr-width">width</a></code>
+ HTML attribute, specifying the displayed width of the resource in CSS pixels.
+ */
+ String getWidth();
+
+ void setWidth(String arg);
+
+
+ /**
+ * Indicates whether the element is a candidate for constraint validation. Always false for <code>object</code> objects.
+ */
+ boolean isWillValidate();
+
+
+ /**
+ * Always returns true, because <code>object</code> objects are never candidates for constraint validation.
+ */
+ boolean checkValidity();
+
+ SVGDocument getSVGDocument();
+
+
+ /**
+ * 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.
+ */
+ void setCustomValidity(String error);
+}
diff --git a/elemental/src/elemental/html/OfflineAudioCompletionEvent.java b/elemental/src/elemental/html/OfflineAudioCompletionEvent.java
new file mode 100644
index 0000000..5272d6a
--- /dev/null
+++ b/elemental/src/elemental/html/OfflineAudioCompletionEvent.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.html;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface OfflineAudioCompletionEvent extends Event {
+
+ AudioBuffer getRenderedBuffer();
+}
diff --git a/elemental/src/elemental/html/OperationNotAllowedException.java b/elemental/src/elemental/html/OperationNotAllowedException.java
new file mode 100644
index 0000000..2db64a5
--- /dev/null
+++ b/elemental/src/elemental/html/OperationNotAllowedException.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface OperationNotAllowedException {
+
+ static final int NOT_ALLOWED_ERR = 1;
+
+ int getCode();
+
+ String getMessage();
+
+ String getName();
+}
diff --git a/elemental/src/elemental/html/OptGroupElement.java b/elemental/src/elemental/html/OptGroupElement.java
new file mode 100644
index 0000000..695f378
--- /dev/null
+++ b/elemental/src/elemental/html/OptGroupElement.java
@@ -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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ element.
+ */
+public interface OptGroupElement extends Element {
+
+
+ /**
+ * 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.
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * 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.
+ */
+ String getLabel();
+
+ void setLabel(String arg);
+}
diff --git a/elemental/src/elemental/html/OptionElement.java b/elemental/src/elemental/html/OptionElement.java
new file mode 100644
index 0000000..914f590
--- /dev/null
+++ b/elemental/src/elemental/html/OptionElement.java
@@ -0,0 +1,109 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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
+<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>
+<p>No methods are defined on this interface.</p>
+ */
+public interface OptionElement extends Element {
+
+
+ /**
+ * Reflects the value of the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/option#attr-selected">selected</a></code>
+ HTML attribute. which indicates whether the option is selected by default.
+ */
+ boolean isDefaultSelected();
+
+ void setDefaultSelected(boolean arg);
+
+
+ /**
+ * Reflects the value of the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/option#attr-disabled">disabled</a></code>
+ 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>
+ element that is disabled.
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * If the option is a descendent of a <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select"><select></a></code>
+ element, then this property has the same value as the <code>form</code> property of the corresponding {{DomXref("HTMLSelectElement") object; otherwise, it is null.
+ */
+ FormElement getForm();
+
+
+ /**
+ * 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.
+ */
+ int getIndex();
+
+
+ /**
+ * Reflects the value of the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/option#attr-label">label</a></code>
+ HTML attribute, which provides a label for the option. If this attribute isn't specifically set, reading it returns the element's text content.
+ */
+ String getLabel();
+
+ void setLabel(String arg);
+
+
+ /**
+ * Indicates whether the option is selected.
+ */
+ boolean isSelected();
+
+ void setSelected(boolean arg);
+
+
+ /**
+ * Contains the text content of the element.
+ */
+ String getText();
+
+ void setText(String arg);
+
+
+ /**
+ * Reflects the value of the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/option#attr-value">value</a></code>
+ 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>
+ IDL attribute.
+ */
+ String getValue();
+
+ void setValue(String arg);
+}
diff --git a/elemental/src/elemental/html/Oscillator.java b/elemental/src/elemental/html/Oscillator.java
new file mode 100644
index 0000000..f7d8030
--- /dev/null
+++ b/elemental/src/elemental/html/Oscillator.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface Oscillator extends AudioSourceNode {
+
+ static final int CUSTOM = 4;
+
+ static final int FINISHED_STATE = 3;
+
+ static final int PLAYING_STATE = 2;
+
+ static final int SAWTOOTH = 2;
+
+ static final int SCHEDULED_STATE = 1;
+
+ static final int SINE = 0;
+
+ static final int SQUARE = 1;
+
+ static final int TRIANGLE = 3;
+
+ static final int UNSCHEDULED_STATE = 0;
+
+ AudioParam getDetune();
+
+ AudioParam getFrequency();
+
+ int getPlaybackState();
+
+ int getType();
+
+ void setType(int arg);
+
+ void noteOff(double when);
+
+ void noteOn(double when);
+
+ void setWaveTable(WaveTable waveTable);
+}
diff --git a/elemental/src/elemental/html/OutputElement.java b/elemental/src/elemental/html/OutputElement.java
new file mode 100644
index 0000000..fc212dc
--- /dev/null
+++ b/elemental/src/elemental/html/OutputElement.java
@@ -0,0 +1,125 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.dom.DOMSettableTokenList;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface OutputElement extends Element {
+
+
+ /**
+ * The default value of the element, initially the empty string.
+ */
+ String getDefaultValue();
+
+ void setDefaultValue(String arg);
+
+
+ /**
+ * Indicates the control's form owner, reflecting the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/output#attr-form">form</a></code>
+ HTML attribute if it is defined.
+ */
+ FormElement getForm();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/output#attr-for">for</a></code>
+ 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>.
+ */
+ DOMSettableTokenList getHtmlFor();
+
+ void setHtmlFor(DOMSettableTokenList arg);
+
+
+ /**
+ * A list of label elements associated with this output element.
+ */
+ NodeList getLabels();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/output#attr-name">name</a></code>
+ HTML attribute, containing the name for the control that is submitted with form data.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Must be the string <code>output</code>.
+ */
+ String getType();
+
+
+ /**
+ * 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.
+ */
+ String getValidationMessage();
+
+
+ /**
+ * The validity states that this element is in.
+ */
+ ValidityState getValidity();
+
+
+ /**
+ * 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.
+ */
+ String getValue();
+
+ void setValue(String arg);
+
+
+ /**
+ * <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="">
+bug 604673</a>
+.)</p> <p>The standard behavior is to always return false because <code>output</code> objects are never candidates for constraint validation.</p>
+ */
+ boolean isWillValidate();
+
+
+ /**
+ * <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>
+ */
+ boolean checkValidity();
+
+
+ /**
+ * 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.
+ */
+ void setCustomValidity(String error);
+}
diff --git a/elemental/src/elemental/html/PagePopupController.java b/elemental/src/elemental/html/PagePopupController.java
new file mode 100644
index 0000000..2bdee8a
--- /dev/null
+++ b/elemental/src/elemental/html/PagePopupController.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface PagePopupController {
+
+ void setValueAndClosePopup(int numberValue, String stringValue);
+}
diff --git a/elemental/src/elemental/html/ParagraphElement.java b/elemental/src/elemental/html/ParagraphElement.java
new file mode 100644
index 0000000..c5e5f25
--- /dev/null
+++ b/elemental/src/elemental/html/ParagraphElement.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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
+<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.
+ */
+public interface ParagraphElement extends Element {
+
+
+ /**
+ * Enumerated attribute indicating alignment of the element's contents with respect to the surrounding context.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+}
diff --git a/elemental/src/elemental/html/ParamElement.java b/elemental/src/elemental/html/ParamElement.java
new file mode 100644
index 0000000..22e20ad
--- /dev/null
+++ b/elemental/src/elemental/html/ParamElement.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <strong>Parameter </strong>element which defines parameters for <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/object"><object></a></code>
+.
+ */
+public interface ParamElement extends Element {
+
+
+ /**
+ * Name of the parameter.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Only used if the <code>valuetype</code> is set to "ref". Specifies the type of values found at the URI specified by value.
+ */
+ String getType();
+
+ void setType(String arg);
+
+
+ /**
+ * Value of the parameter.
+ */
+ String getValue();
+
+ void setValue(String arg);
+
+ String getValueType();
+
+ void setValueType(String arg);
+}
diff --git a/elemental/src/elemental/html/PeerConnection00.java b/elemental/src/elemental/html/PeerConnection00.java
new file mode 100644
index 0000000..4ab5cb9
--- /dev/null
+++ b/elemental/src/elemental/html/PeerConnection00.java
@@ -0,0 +1,129 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.MediaStream;
+import elemental.events.EventTarget;
+import elemental.dom.MediaStreamList;
+import elemental.util.Mappable;
+import elemental.events.EventListener;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface PeerConnection00 extends EventTarget {
+
+ static final int ACTIVE = 2;
+
+ static final int CLOSED = 3;
+
+ static final int ICE_CHECKING = 0x300;
+
+ static final int ICE_CLOSED = 0x700;
+
+ static final int ICE_COMPLETED = 0x500;
+
+ static final int ICE_CONNECTED = 0x400;
+
+ static final int ICE_FAILED = 0x600;
+
+ static final int ICE_GATHERING = 0x100;
+
+ static final int ICE_WAITING = 0x200;
+
+ static final int NEW = 0;
+
+ static final int OPENING = 1;
+
+ static final int SDP_ANSWER = 0x300;
+
+ static final int SDP_OFFER = 0x100;
+
+ static final int SDP_PRANSWER = 0x200;
+
+ int getIceState();
+
+ SessionDescription getLocalDescription();
+
+ MediaStreamList getLocalStreams();
+
+ EventListener getOnaddstream();
+
+ void setOnaddstream(EventListener arg);
+
+ EventListener getOnconnecting();
+
+ void setOnconnecting(EventListener arg);
+
+ EventListener getOnopen();
+
+ void setOnopen(EventListener arg);
+
+ EventListener getOnremovestream();
+
+ void setOnremovestream(EventListener arg);
+
+ EventListener getOnstatechange();
+
+ void setOnstatechange(EventListener arg);
+
+ int getReadyState();
+
+ SessionDescription getRemoteDescription();
+
+ MediaStreamList getRemoteStreams();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ void addStream(MediaStream stream);
+
+ void addStream(MediaStream stream, Mappable mediaStreamHints);
+
+ void close();
+
+ SessionDescription createAnswer(String offer);
+
+ SessionDescription createAnswer(String offer, Mappable mediaHints);
+
+ SessionDescription createOffer();
+
+ SessionDescription createOffer(Mappable mediaHints);
+
+ boolean dispatchEvent(Event event);
+
+ void processIceMessage(IceCandidate candidate);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ void removeStream(MediaStream stream);
+
+ void startIce();
+
+ void startIce(Mappable iceOptions);
+}
diff --git a/elemental/src/elemental/html/Performance.java b/elemental/src/elemental/html/Performance.java
new file mode 100644
index 0000000..5a236ec
--- /dev/null
+++ b/elemental/src/elemental/html/Performance.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The articles linked to from here will help you improve performance, whether you're developing core Mozilla code or an add-on.
+ */
+public interface Performance {
+
+ MemoryInfo getMemory();
+
+ PerformanceNavigation getNavigation();
+
+ PerformanceTiming getTiming();
+
+ double webkitNow();
+}
diff --git a/elemental/src/elemental/html/PerformanceNavigation.java b/elemental/src/elemental/html/PerformanceNavigation.java
new file mode 100644
index 0000000..aa95b66
--- /dev/null
+++ b/elemental/src/elemental/html/PerformanceNavigation.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface PerformanceNavigation {
+
+ static final int TYPE_BACK_FORWARD = 2;
+
+ static final int TYPE_NAVIGATE = 0;
+
+ static final int TYPE_RELOAD = 1;
+
+ static final int TYPE_RESERVED = 255;
+
+ int getRedirectCount();
+
+ int getType();
+}
diff --git a/elemental/src/elemental/html/PerformanceTiming.java b/elemental/src/elemental/html/PerformanceTiming.java
new file mode 100644
index 0000000..b578955
--- /dev/null
+++ b/elemental/src/elemental/html/PerformanceTiming.java
@@ -0,0 +1,73 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface PerformanceTiming {
+
+ double getConnectEnd();
+
+ double getConnectStart();
+
+ double getDomComplete();
+
+ double getDomContentLoadedEventEnd();
+
+ double getDomContentLoadedEventStart();
+
+ double getDomInteractive();
+
+ double getDomLoading();
+
+ double getDomainLookupEnd();
+
+ double getDomainLookupStart();
+
+ double getFetchStart();
+
+ double getLoadEventEnd();
+
+ double getLoadEventStart();
+
+ double getNavigationStart();
+
+ double getRedirectEnd();
+
+ double getRedirectStart();
+
+ double getRequestStart();
+
+ double getResponseEnd();
+
+ double getResponseStart();
+
+ double getSecureConnectionStart();
+
+ double getUnloadEventEnd();
+
+ double getUnloadEventStart();
+}
diff --git a/elemental/src/elemental/html/Point.java b/elemental/src/elemental/html/Point.java
new file mode 100644
index 0000000..14fcb14
--- /dev/null
+++ b/elemental/src/elemental/html/Point.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface Point {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/html/PreElement.java b/elemental/src/elemental/html/PreElement.java
new file mode 100644
index 0000000..496447a
--- /dev/null
+++ b/elemental/src/elemental/html/PreElement.java
@@ -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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface PreElement extends Element {
+
+ int getWidth();
+
+ void setWidth(int arg);
+
+ boolean isWrap();
+
+ void setWrap(boolean arg);
+}
diff --git a/elemental/src/elemental/html/ProgressElement.java b/elemental/src/elemental/html/ProgressElement.java
new file mode 100644
index 0000000..2ff8f9b
--- /dev/null
+++ b/elemental/src/elemental/html/ProgressElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface ProgressElement extends Element {
+
+ NodeList getLabels();
+
+
+ /**
+ * This attribute describes how much work the task indicated by the <code>progress</code> element requires.
+ */
+ double getMax();
+
+ void setMax(double arg);
+
+ double getPosition();
+
+
+ /**
+ * <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>
+</dl>
+<p>You can use the <code><a rel="custom" href="https://developer.mozilla.org/en/CSS/orient">orient</a></code>
+ 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>
+ pseudo-class can be used to match against indeterminate progress bars.</p>
+ */
+ double getValue();
+
+ void setValue(double arg);
+}
diff --git a/elemental/src/elemental/html/QuoteElement.java b/elemental/src/elemental/html/QuoteElement.java
new file mode 100644
index 0000000..91268aa
--- /dev/null
+++ b/elemental/src/elemental/html/QuoteElement.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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.
+ */
+public interface QuoteElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/blockquote#attr-cite">cite</a></code>
+ HTML attribute, containing a URL for the source of the quotation.
+ */
+ String getCite();
+
+ void setCite(String arg);
+}
diff --git a/elemental/src/elemental/html/RadioNodeList.java b/elemental/src/elemental/html/RadioNodeList.java
new file mode 100644
index 0000000..ac5b433
--- /dev/null
+++ b/elemental/src/elemental/html/RadioNodeList.java
@@ -0,0 +1,36 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface RadioNodeList extends NodeList {
+
+ String getValue();
+
+ void setValue(String arg);
+}
diff --git a/elemental/src/elemental/html/RealtimeAnalyserNode.java b/elemental/src/elemental/html/RealtimeAnalyserNode.java
new file mode 100644
index 0000000..3514a37
--- /dev/null
+++ b/elemental/src/elemental/html/RealtimeAnalyserNode.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface RealtimeAnalyserNode extends AudioNode {
+
+ int getFftSize();
+
+ void setFftSize(int arg);
+
+ int getFrequencyBinCount();
+
+ float getMaxDecibels();
+
+ void setMaxDecibels(float arg);
+
+ float getMinDecibels();
+
+ void setMinDecibels(float arg);
+
+ float getSmoothingTimeConstant();
+
+ void setSmoothingTimeConstant(float arg);
+
+ void getByteFrequencyData(Uint8Array array);
+
+ void getByteTimeDomainData(Uint8Array array);
+
+ void getFloatFrequencyData(Float32Array array);
+}
diff --git a/elemental/src/elemental/html/SQLError.java b/elemental/src/elemental/html/SQLError.java
new file mode 100644
index 0000000..c4b45a3
--- /dev/null
+++ b/elemental/src/elemental/html/SQLError.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SQLError {
+
+ static final int CONSTRAINT_ERR = 6;
+
+ static final int DATABASE_ERR = 1;
+
+ static final int QUOTA_ERR = 4;
+
+ static final int SYNTAX_ERR = 5;
+
+ static final int TIMEOUT_ERR = 7;
+
+ static final int TOO_LARGE_ERR = 3;
+
+ static final int UNKNOWN_ERR = 0;
+
+ static final int VERSION_ERR = 2;
+
+ int getCode();
+
+ String getMessage();
+}
diff --git a/elemental/src/elemental/html/SQLException.java b/elemental/src/elemental/html/SQLException.java
new file mode 100644
index 0000000..d5e5729
--- /dev/null
+++ b/elemental/src/elemental/html/SQLException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SQLException {
+
+ static final int CONSTRAINT_ERR = 6;
+
+ static final int DATABASE_ERR = 1;
+
+ static final int QUOTA_ERR = 4;
+
+ static final int SYNTAX_ERR = 5;
+
+ static final int TIMEOUT_ERR = 7;
+
+ static final int TOO_LARGE_ERR = 3;
+
+ static final int UNKNOWN_ERR = 0;
+
+ static final int VERSION_ERR = 2;
+
+ int getCode();
+
+ String getMessage();
+}
diff --git a/elemental/src/elemental/html/SQLResultSet.java b/elemental/src/elemental/html/SQLResultSet.java
new file mode 100644
index 0000000..5c2f6f0
--- /dev/null
+++ b/elemental/src/elemental/html/SQLResultSet.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SQLResultSet {
+
+ int getInsertId();
+
+ SQLResultSetRowList getRows();
+
+ int getRowsAffected();
+}
diff --git a/elemental/src/elemental/html/SQLResultSetRowList.java b/elemental/src/elemental/html/SQLResultSetRowList.java
new file mode 100644
index 0000000..db29a2a
--- /dev/null
+++ b/elemental/src/elemental/html/SQLResultSetRowList.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SQLResultSetRowList {
+
+ int getLength();
+
+ Object item(int index);
+}
diff --git a/elemental/src/elemental/html/SQLStatementCallback.java b/elemental/src/elemental/html/SQLStatementCallback.java
new file mode 100644
index 0000000..89d947a
--- /dev/null
+++ b/elemental/src/elemental/html/SQLStatementCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface SQLStatementCallback {
+ boolean onSQLStatementCallback(SQLTransaction transaction, SQLResultSet resultSet);
+}
diff --git a/elemental/src/elemental/html/SQLStatementErrorCallback.java b/elemental/src/elemental/html/SQLStatementErrorCallback.java
new file mode 100644
index 0000000..a6c26d2
--- /dev/null
+++ b/elemental/src/elemental/html/SQLStatementErrorCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface SQLStatementErrorCallback {
+ boolean onSQLStatementErrorCallback(SQLTransaction transaction, SQLError error);
+}
diff --git a/elemental/src/elemental/html/SQLTransaction.java b/elemental/src/elemental/html/SQLTransaction.java
new file mode 100644
index 0000000..5dee666
--- /dev/null
+++ b/elemental/src/elemental/html/SQLTransaction.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SQLTransaction {
+}
diff --git a/elemental/src/elemental/html/SQLTransactionCallback.java b/elemental/src/elemental/html/SQLTransactionCallback.java
new file mode 100644
index 0000000..34209cd
--- /dev/null
+++ b/elemental/src/elemental/html/SQLTransactionCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface SQLTransactionCallback {
+ boolean onSQLTransactionCallback(SQLTransaction transaction);
+}
diff --git a/elemental/src/elemental/html/SQLTransactionErrorCallback.java b/elemental/src/elemental/html/SQLTransactionErrorCallback.java
new file mode 100644
index 0000000..7d88575
--- /dev/null
+++ b/elemental/src/elemental/html/SQLTransactionErrorCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface SQLTransactionErrorCallback {
+ boolean onSQLTransactionErrorCallback(SQLError error);
+}
diff --git a/elemental/src/elemental/html/SQLTransactionSync.java b/elemental/src/elemental/html/SQLTransactionSync.java
new file mode 100644
index 0000000..fdc394f
--- /dev/null
+++ b/elemental/src/elemental/html/SQLTransactionSync.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SQLTransactionSync {
+}
diff --git a/elemental/src/elemental/html/SQLTransactionSyncCallback.java b/elemental/src/elemental/html/SQLTransactionSyncCallback.java
new file mode 100644
index 0000000..50000a1
--- /dev/null
+++ b/elemental/src/elemental/html/SQLTransactionSyncCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface SQLTransactionSyncCallback {
+ boolean onSQLTransactionSyncCallback(SQLTransactionSync transaction);
+}
diff --git a/elemental/src/elemental/html/Screen.java b/elemental/src/elemental/html/Screen.java
new file mode 100644
index 0000000..f8a10f9
--- /dev/null
+++ b/elemental/src/elemental/html/Screen.java
@@ -0,0 +1,79 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Returns a reference to the screen object associated with the window.
+ */
+public interface Screen {
+
+
+ /**
+ * 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.
+ */
+ int getAvailHeight();
+
+
+ /**
+ * Returns the first available pixel available from the left side of the screen.
+ */
+ int getAvailLeft();
+
+
+ /**
+ * Specifies the y-coordinate of the first pixel that is not allocated to permanent or semipermanent user interface features.
+ */
+ int getAvailTop();
+
+
+ /**
+ * Returns the amount of horizontal space in pixels available to the window.
+ */
+ int getAvailWidth();
+
+
+ /**
+ * Returns the color depth of the screen.
+ */
+ int getColorDepth();
+
+
+ /**
+ * Returns the height of the screen in pixels.
+ */
+ int getHeight();
+
+
+ /**
+ * Gets the bit depth of the screen.
+ */
+ int getPixelDepth();
+
+
+ /**
+ * Returns the width of the screen.
+ */
+ int getWidth();
+}
diff --git a/elemental/src/elemental/html/ScriptElement.java b/elemental/src/elemental/html/ScriptElement.java
new file mode 100644
index 0000000..90b576c
--- /dev/null
+++ b/elemental/src/elemental/html/ScriptElement.java
@@ -0,0 +1,85 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface ScriptElement extends Element {
+
+
+ /**
+ * 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).
+ */
+ boolean isAsync();
+
+ void setAsync(boolean arg);
+
+ String getCharset();
+
+ void setCharset(String arg);
+
+ String getCrossOrigin();
+
+ void setCrossOrigin(String arg);
+
+
+ /**
+ * 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.
+ */
+ boolean isDefer();
+
+ void setDefer(boolean arg);
+
+ String getEvent();
+
+ void setEvent(String arg);
+
+ String getHtmlFor();
+
+ void setHtmlFor(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getSrc();
+
+ void setSrc(String arg);
+
+ String getText();
+
+ void setText(String arg);
+
+
+ /**
+ * 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.
+ */
+ String getType();
+
+ void setType(String arg);
+}
diff --git a/elemental/src/elemental/html/SelectElement.java b/elemental/src/elemental/html/SelectElement.java
new file mode 100644
index 0000000..ebc416d
--- /dev/null
+++ b/elemental/src/elemental/html/SelectElement.java
@@ -0,0 +1,435 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Node;
+import elemental.dom.Element;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ 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
+<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>).
+ */
+public interface SelectElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-autofocus">autofocus</a></code>
+ 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.
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+<span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+">Requires Gecko 2.0</span>
+ */
+ boolean isAutofocus();
+
+ void setAutofocus(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-disabled">disabled</a></code>
+ HTML attribute, which indicates whether the control is disabled. If it is disabled, it does not accept clicks.
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * 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>
+<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>
+<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>
+ */
+ FormElement getForm();
+
+
+ /**
+ * A list of label elements associated with this select element.
+ */
+ NodeList getLabels();
+
+
+ /**
+ * The number of <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/option"><option></a></code>
+ elements in this <code>select</code> element.
+ */
+ int getLength();
+
+ void setLength(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-multiple">multiple</a></code>
+ HTML attribute, whichindicates whether multiple items can be selected.
+ */
+ boolean isMultiple();
+
+ void setMultiple(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-name">name</a></code>
+ HTML attribute, containing the name of this control used by servers and DOM search functions.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * The set of <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/option"><option></a></code>
+ elements contained by this element. <strong>Read only.</strong>
+ */
+ HTMLOptionsCollection getOptions();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-required">required</a></code>
+ HTML attribute, which indicates whether the user is required to select a value before submitting the form.
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+<span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+">Requires Gecko 2.0</span>
+ */
+ boolean isRequired();
+
+ void setRequired(boolean arg);
+
+
+ /**
+ * The index of the first selected <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/option"><option></a></code>
+ element.
+ */
+ int getSelectedIndex();
+
+ void setSelectedIndex(int arg);
+
+
+ /**
+ * The set of options that are selected.
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+ */
+ HTMLCollection getSelectedOptions();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/select#attr-size">size</a></code>
+ HTML attribute, which contains the number of visible items in the control. The default is 1,
+<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.
+ */
+ int getSize();
+
+ void setSize(int arg);
+
+
+ /**
+ * 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>
+ */
+ String getType();
+
+
+ /**
+ * 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>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+<span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+">Requires Gecko 2.0</span>
+ */
+ String getValidationMessage();
+
+
+ /**
+ * The validity states that this control is in. <strong>Read only.</strong>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+<span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+">Requires Gecko 2.0</span>
+ */
+ ValidityState getValidity();
+
+
+ /**
+ * The value of this form control, that is, of the first selected option.
+ */
+ String getValue();
+
+ void setValue(String arg);
+
+
+ /**
+ * 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>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span>
+<span title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+">Requires Gecko 2.0</span>
+ */
+ boolean isWillValidate();
+
+
+ /**
+ * <p>Adds an element to the collection of <code>option</code> elements for this <code>select</code> element.</p>
+
+<div id="section_6"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>element</code></dt> <dd>An item to add to the collection of options.</dd> <dt><code>before</code>
+<span title="(Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)
+">Optional from Gecko 7.0</span>
+</dt> <dd>An item (or
+<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>
+</dl>
+<div id="section_7"><span id="Examples"></span><h5 class="editable">Examples</h5>
+<div id="section_8"><span id="Creating_Elements_from_Scratch"></span><h6 class="editable">Creating Elements from Scratch</h6>
+
+ <pre name="code" class="js">var sel = document.createElement("select");
+var opt1 = document.createElement("option");
+var opt2 = document.createElement("option");
+
+opt1.value = "1";
+opt1.text = "Option: Value 1";
+
+opt2.value = "2";
+opt2.text = "Option: Value 2";
+
+sel.add(opt1, null);
+sel.add(opt2, null);
+
+/*
+ Produces the following, conceptually:
+
+ <select>
+ <option value="1">Option: Value 1</option>
+ <option value="2">Option: Value 2</option>
+ </select>
+*/</pre>
+
+<p>From
+<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)
+">Gecko 7.0</span> the before parameter is optional. So the following is accepted.</p>
+<pre class="deki-transform">...
+sel.add(opt1);
+sel.add(opt2);
+...
+</pre>
+</div><div id="section_9"><span id="Append_to_an_Existing_Collection"></span><h6 class="editable">Append to an Existing Collection</h6>
+
+ <pre name="code" class="js">var sel = document.getElementById("existingList");
+
+var opt = document.createElement("option");
+opt.value = "3";
+opt.text = "Option: Value 3";
+
+sel.add(opt, null);
+
+/*
+ Takes the existing following select object:
+
+ <select id="existingList" name="existingList">
+ <option value="1">Option: Value 1</option>
+ <option value="2">Option: Value 2</option>
+ </select>
+
+ And changes it to:
+
+ <select id="existingList" name="existingList">
+ <option value="1">Option: Value 1</option>
+ <option value="2">Option: Value 2</option>
+ <option value="3">Option: Value 3</option>
+ </select>
+*/</pre>
+
+<p>From
+<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)
+">Gecko 7.0</span> the before parameter is optional. So the following is accepted.</p>
+<pre class="deki-transform">...
+sel.add(opt);
+...
+</pre>
+</div><div id="section_10"><span id="Inserting_to_an_Existing_Collection"></span><h6 class="editable">Inserting to an Existing Collection</h6>
+
+ <pre name="code" class="js">var sel = document.getElementById("existingList");
+
+var opt = document.createElement("option");
+opt.value = "3";
+opt.text = "Option: Value 3";
+
+sel.add(opt, sel.options[1]);
+
+/*
+ Takes the existing following select object:
+
+ <select id="existingList" name="existingList">
+ <option value="1">Option: Value 1</option>
+ <option value="2">Option: Value 2</option>
+ </select>
+
+ And changes it to:
+
+ <select id="existingList" name="existingList">
+ <option value="1">Option: Value 1</option>
+ <option value="3">Option: Value 3</option>
+ <option value="2">Option: Value 2</option>
+ </select>
+*/</pre>
+
+<dl> <dt></dt>
+</dl>
+<p>
+
+</p><div><span>Obsolete since Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+</span><span id="blur()"></span></div></div></div></div>
+ */
+ void add(Element element, Element before);
+
+
+ /**
+ * <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>
+
+</div><div id="section_12"><span id="Parameters_3"></span>
+
+</div><div id="section_13"><span id="Return_value"></span><h6 class="editable">Return value</h6>
+<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>
+<p>
+
+</p><div><span>Obsolete since Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+</span><span id="focus()"></span></div></div>
+ */
+ boolean checkValidity();
+
+
+ /**
+ * <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>
+
+</div><div id="section_15"><span id="Parameters_5"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>index</code></dt> <dd>The zero-based index into the collection of the option to get.</dd>
+</dl>
+</div><div id="section_16"><span id="Return_value_2"></span><h6 class="editable">Return value</h6>
+<p>The node at the specified index, or <code>null</code> if such a node does not exist in the collection.</p>
+<p>
+</p><div>
+<span id="namedItem()"></span></div></div>
+ */
+ Node item(int index);
+
+
+ /**
+ * <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>
+
+</div><div id="section_17"><span id="Parameters_6"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>name</code></dt> <dd>The name of the option to get.</dd>
+</dl>
+</div><div id="section_18"><span id="Return_value_3"></span><h6 class="editable">Return value</h6>
+<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>
+ in tree order of nodes whose <strong>name</strong> or <strong>id</strong> attributes match the specified name.</li>
+</ul>
+</div>
+ */
+ Node namedItem(String name);
+
+
+ /**
+ * <p>Removes the element at the specified index from the options collection for this select element.</p>
+
+<div id="section_20"><span id="Parameters_7"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>index</code></dt> <dd>The zero-based index of the option element to remove from the collection.</dd>
+</dl>
+<div id="section_21"><span id="Example"></span><h5 class="editable">Example</h5>
+
+ <pre name="code" class="js">var sel = document.getElementById("existingList");
+sel.remove(1);
+
+/*
+ Takes the existing following select object:
+
+ <select id="existingList" name="existingList">
+ <option value="1">Option: Value 1</option>
+ <option value="2">Option: Value 2</option>
+ <option value="3">Option: Value 3</option>
+ </select>
+
+ And changes it to:
+
+ <select id="existingList" name="existingList">
+ <option value="1">Option: Value 1</option>
+ <option value="3">Option: Value 3</option>
+ </select>
+*/</pre>
+
+<p>
+</p><div>
+<span id="setCustomValidity()"></span></div></div></div>
+ */
+ void remove(int index);
+
+
+ /**
+ * <p>Removes the element at the specified index from the options collection for this select element.</p>
+
+<div id="section_20"><span id="Parameters_7"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>index</code></dt> <dd>The zero-based index of the option element to remove from the collection.</dd>
+</dl>
+<div id="section_21"><span id="Example"></span><h5 class="editable">Example</h5>
+
+ <pre name="code" class="js">var sel = document.getElementById("existingList");
+sel.remove(1);
+
+/*
+ Takes the existing following select object:
+
+ <select id="existingList" name="existingList">
+ <option value="1">Option: Value 1</option>
+ <option value="2">Option: Value 2</option>
+ <option value="3">Option: Value 3</option>
+ </select>
+
+ And changes it to:
+
+ <select id="existingList" name="existingList">
+ <option value="1">Option: Value 1</option>
+ <option value="3">Option: Value 3</option>
+ </select>
+*/</pre>
+
+<p>
+</p><div>
+<span id="setCustomValidity()"></span></div></div></div>
+ */
+ void remove(OptionElement option);
+
+
+ /**
+ * <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>
+
+<div id="section_22"><span id="Parameters_8"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>error</code></dt> <dd>The string to use for the custom validity message.</dd>
+</dl></div>
+ */
+ void setCustomValidity(String error);
+}
diff --git a/elemental/src/elemental/html/Selection.java b/elemental/src/elemental/html/Selection.java
new file mode 100644
index 0000000..dabb669
--- /dev/null
+++ b/elemental/src/elemental/html/Selection.java
@@ -0,0 +1,83 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Node;
+import elemental.ranges.Range;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface Selection {
+
+ Node getAnchorNode();
+
+ int getAnchorOffset();
+
+ Node getBaseNode();
+
+ int getBaseOffset();
+
+ Node getExtentNode();
+
+ int getExtentOffset();
+
+ Node getFocusNode();
+
+ int getFocusOffset();
+
+ boolean isCollapsed();
+
+ int getRangeCount();
+
+ String getType();
+
+ void addRange(Range range);
+
+ void collapse(Node node, int index);
+
+ void collapseToEnd();
+
+ void collapseToStart();
+
+ boolean containsNode(Node node, boolean allowPartial);
+
+ void deleteFromDocument();
+
+ void empty();
+
+ void extend(Node node, int offset);
+
+ Range getRangeAt(int index);
+
+ void modify(String alter, String direction, String granularity);
+
+ void removeAllRanges();
+
+ void selectAllChildren(Node node);
+
+ void setBaseAndExtent(Node baseNode, int baseOffset, Node extentNode, int extentOffset);
+
+ void setPosition(Node node, int offset);
+}
diff --git a/elemental/src/elemental/html/SessionDescription.java b/elemental/src/elemental/html/SessionDescription.java
new file mode 100644
index 0000000..e488691
--- /dev/null
+++ b/elemental/src/elemental/html/SessionDescription.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SessionDescription {
+
+ void addCandidate(IceCandidate candidate);
+
+ String toSdp();
+}
diff --git a/elemental/src/elemental/html/ShadowElement.java b/elemental/src/elemental/html/ShadowElement.java
new file mode 100644
index 0000000..c285e76
--- /dev/null
+++ b/elemental/src/elemental/html/ShadowElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ShadowElement extends Element {
+}
diff --git a/elemental/src/elemental/html/SharedWorker.java b/elemental/src/elemental/html/SharedWorker.java
new file mode 100644
index 0000000..247ea1f
--- /dev/null
+++ b/elemental/src/elemental/html/SharedWorker.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.html;
+import elemental.events.MessagePort;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Not yet implemented by Firefox.
+ */
+public interface SharedWorker extends AbstractWorker {
+
+ MessagePort getPort();
+}
diff --git a/elemental/src/elemental/html/SharedWorkerGlobalScope.java b/elemental/src/elemental/html/SharedWorkerGlobalScope.java
new file mode 100644
index 0000000..371f151
--- /dev/null
+++ b/elemental/src/elemental/html/SharedWorkerGlobalScope.java
@@ -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 elemental.html;
+import elemental.events.EventListener;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SharedWorkerGlobalScope extends WorkerGlobalScope {
+
+ String getName();
+
+ EventListener getOnconnect();
+
+ void setOnconnect(EventListener arg);
+}
diff --git a/elemental/src/elemental/html/SignalingCallback.java b/elemental/src/elemental/html/SignalingCallback.java
new file mode 100644
index 0000000..d0b0927
--- /dev/null
+++ b/elemental/src/elemental/html/SignalingCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface SignalingCallback {
+ boolean onSignalingCallback(String message, DeprecatedPeerConnection source);
+}
diff --git a/elemental/src/elemental/html/SourceElement.java b/elemental/src/elemental/html/SourceElement.java
new file mode 100644
index 0000000..eeeb761
--- /dev/null
+++ b/elemental/src/elemental/html/SourceElement.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SourceElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/source#attr-media">media</a></code>
+ HTML attribute, containing the intended type of the media resource.
+ */
+ String getMedia();
+
+ void setMedia(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/source#attr-src">src</a></code>
+ HTML attribute, containing the URL for the media resource.
+ */
+ String getSrc();
+
+ void setSrc(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/source#attr-type">type</a></code>
+ HTML attribute, containing the type of the media resource.
+ */
+ String getType();
+
+ void setType(String arg);
+}
diff --git a/elemental/src/elemental/html/SpanElement.java b/elemental/src/elemental/html/SpanElement.java
new file mode 100644
index 0000000..964db8d
--- /dev/null
+++ b/elemental/src/elemental/html/SpanElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ element, but <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/div"><div></a></code>
+ is a block-level element whereas a <span> is an inline element.
+ */
+public interface SpanElement extends Element {
+}
diff --git a/elemental/src/elemental/html/Storage.java b/elemental/src/elemental/html/Storage.java
new file mode 100644
index 0000000..c0295c1
--- /dev/null
+++ b/elemental/src/elemental/html/Storage.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<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>
+ */
+public interface Storage {
+
+ int getLength();
+
+ void clear();
+
+ String getItem(String key);
+
+ String key(int index);
+
+ void removeItem(String key);
+
+ void setItem(String key, String data);
+}
diff --git a/elemental/src/elemental/html/StorageEvent.java b/elemental/src/elemental/html/StorageEvent.java
new file mode 100644
index 0000000..e4c8fd6
--- /dev/null
+++ b/elemental/src/elemental/html/StorageEvent.java
@@ -0,0 +1,91 @@
+/*
+ * 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 elemental.html;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><div>
+
+<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)
+"></div><div title="Last changed in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+"></div></div>
+<div>Inherits from: <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMEvent">nsIDOMEvent</a></code>
+<span>Last changed in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+</span></div></div>
+<p></p>
+<p>A <code>StorageEvent</code> is sent to a window when a storage area changes.</p>
+<div class="geckoVersionNote">
+<p>
+</p><div class="geckoVersionHeading">Gecko 2.0 note<div>(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+</div></div>
+<p></p>
+<p>Although this event existed prior to Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+, 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>
+ interface.</p>
+</div>
+ */
+public interface StorageEvent extends Event {
+
+
+ /**
+ * 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>
+ */
+ String getKey();
+
+
+ /**
+ * 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>
+ */
+ String getNewValue();
+
+
+ /**
+ * 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>
+ */
+ String getOldValue();
+
+
+ /**
+ * Represents the Storage object that was affected. <strong>Read only.</strong>
+ */
+ Storage getStorageArea();
+
+
+ /**
+ * The URL of the document whose <code>key</code> changed. <strong>Read only.</strong>
+ */
+ String getUrl();
+
+
+ /**
+ * <p>Initializes the event in a manner analogous to the similarly-named method in the DOM Events interfaces.</p>
+
+<div id="section_5"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<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>
+ object representing the storage area on which this event occurred.</dd>
+</dl></div>
+ */
+ void initStorageEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, String keyArg, String oldValueArg, String newValueArg, String urlArg, Storage storageAreaArg);
+}
diff --git a/elemental/src/elemental/html/StorageInfo.java b/elemental/src/elemental/html/StorageInfo.java
new file mode 100644
index 0000000..a0735b1
--- /dev/null
+++ b/elemental/src/elemental/html/StorageInfo.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface StorageInfo {
+
+ static final int PERSISTENT = 1;
+
+ static final int TEMPORARY = 0;
+
+ void queryUsageAndQuota(int storageType);
+
+ void queryUsageAndQuota(int storageType, StorageInfoUsageCallback usageCallback);
+
+ void queryUsageAndQuota(int storageType, StorageInfoUsageCallback usageCallback, StorageInfoErrorCallback errorCallback);
+
+ void requestQuota(int storageType, double newQuotaInBytes);
+
+ void requestQuota(int storageType, double newQuotaInBytes, StorageInfoQuotaCallback quotaCallback);
+
+ void requestQuota(int storageType, double newQuotaInBytes, StorageInfoQuotaCallback quotaCallback, StorageInfoErrorCallback errorCallback);
+}
diff --git a/elemental/src/elemental/html/StorageInfoErrorCallback.java b/elemental/src/elemental/html/StorageInfoErrorCallback.java
new file mode 100644
index 0000000..785cf52
--- /dev/null
+++ b/elemental/src/elemental/html/StorageInfoErrorCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface StorageInfoErrorCallback {
+ boolean onStorageInfoErrorCallback(DOMException error);
+}
diff --git a/elemental/src/elemental/html/StorageInfoQuotaCallback.java b/elemental/src/elemental/html/StorageInfoQuotaCallback.java
new file mode 100644
index 0000000..b50d112
--- /dev/null
+++ b/elemental/src/elemental/html/StorageInfoQuotaCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface StorageInfoQuotaCallback {
+ boolean onStorageInfoQuotaCallback(double grantedQuotaInBytes);
+}
diff --git a/elemental/src/elemental/html/StorageInfoUsageCallback.java b/elemental/src/elemental/html/StorageInfoUsageCallback.java
new file mode 100644
index 0000000..b34cc96
--- /dev/null
+++ b/elemental/src/elemental/html/StorageInfoUsageCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface StorageInfoUsageCallback {
+ boolean onStorageInfoUsageCallback(double currentUsageInBytes, double currentQuotaInBytes);
+}
diff --git a/elemental/src/elemental/html/StyleElement.java b/elemental/src/elemental/html/StyleElement.java
new file mode 100644
index 0000000..2380f9f
--- /dev/null
+++ b/elemental/src/elemental/html/StyleElement.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.stylesheets.StyleSheet;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface StyleElement extends Element {
+
+
+ /**
+ * Returns true if the stylesheet is disabled, and false if not
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * Specifies the intended destination medium for style information.
+ */
+ String getMedia();
+
+ void setMedia(String arg);
+
+ boolean isScoped();
+
+ void setScoped(boolean arg);
+
+ StyleSheet getSheet();
+
+
+ /**
+ * Returns the type of style being applied by this statement.
+ */
+ String getType();
+
+ void setType(String arg);
+}
diff --git a/elemental/src/elemental/html/StyleMedia.java b/elemental/src/elemental/html/StyleMedia.java
new file mode 100644
index 0000000..deea813
--- /dev/null
+++ b/elemental/src/elemental/html/StyleMedia.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface StyleMedia {
+
+ String getType();
+
+ boolean matchMedium(String mediaquery);
+}
diff --git a/elemental/src/elemental/html/TableCaptionElement.java b/elemental/src/elemental/html/TableCaptionElement.java
new file mode 100644
index 0000000..efb8f9d
--- /dev/null
+++ b/elemental/src/elemental/html/TableCaptionElement.java
@@ -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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface TableCaptionElement extends Element {
+
+
+ /**
+ * Enumerated attribute indicating alignment of the caption with respect to the table.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+}
diff --git a/elemental/src/elemental/html/TableCellElement.java b/elemental/src/elemental/html/TableCellElement.java
new file mode 100644
index 0000000..b8c07c5
--- /dev/null
+++ b/elemental/src/elemental/html/TableCellElement.java
@@ -0,0 +1,127 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <em>HTML Table Cell Element</em> (<code><td></code>) defines a cell that content data.
+ */
+public interface TableCellElement extends Element {
+
+
+ /**
+ * 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>
+ */
+ String getAbbr();
+
+ void setAbbr(String arg);
+
+
+ /**
+ * 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/td#attr-char">char</a></code>
+ and
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/td#attr-charoff">charoff</a></code>
+ attributes
+<span class="unimplementedInlineTemplate">Unimplemented (see<a rel="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=2212" class="external" title="">
+bug 2212</a>
+)</span>
+.</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>
+ 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/td#attr-char">char</a></code>
+ as the value of the <code><a rel="custom" href="https://developer.mozilla.org/en/CSS/text-align">text-align</a></code>
+ property
+<span class="unimplementedInlineTemplate">Unimplemented</span>
+.</li> </ul> </div>
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/td#attr-scope">scope</a></code>
+ attribute.</div>
+ */
+ String getAxis();
+
+ void setAxis(String arg);
+
+ String getBgColor();
+
+ void setBgColor(String arg);
+
+ int getCellIndex();
+
+ String getCh();
+
+ void setCh(String arg);
+
+ String getChOff();
+
+ void setChOff(String arg);
+
+ int getColSpan();
+
+ void setColSpan(int arg);
+
+
+ /**
+ * 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>
+ elements that applies to this element.
+ */
+ String getHeaders();
+
+ void setHeaders(String arg);
+
+ String getHeight();
+
+ void setHeight(String arg);
+
+ boolean isNoWrap();
+
+ void setNoWrap(boolean arg);
+
+ int getRowSpan();
+
+ void setRowSpan(int arg);
+
+ String getScope();
+
+ void setScope(String arg);
+
+ String getVAlign();
+
+ void setVAlign(String arg);
+
+ String getWidth();
+
+ void setWidth(String arg);
+}
diff --git a/elemental/src/elemental/html/TableColElement.java b/elemental/src/elemental/html/TableColElement.java
new file mode 100644
index 0000000..1df5f08
--- /dev/null
+++ b/elemental/src/elemental/html/TableColElement.java
@@ -0,0 +1,85 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * DOM table column objects (which may correspond to <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/col"><col></a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/colgroup"><colgroup></a></code>
+ 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.
+ */
+public interface TableColElement extends Element {
+
+
+ /**
+ * Indicates the horizontal alignment of the cell data in the column.
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * Alignment character for cell data.
+ */
+ String getCh();
+
+ void setCh(String arg);
+
+
+ /**
+ * Offset for the alignment character.
+ */
+ String getChOff();
+
+ void setChOff(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/col#attr-span">span</a></code>
+ HTML attribute, indicating the number of columns to apply this object's attributes to. Must be a positive integer.
+ */
+ int getSpan();
+
+ void setSpan(int arg);
+
+
+ /**
+ * Indicates the vertical alignment of the cell data in the column.
+ */
+ String getVAlign();
+
+ void setVAlign(String arg);
+
+
+ /**
+ * Default column width.
+ */
+ String getWidth();
+
+ void setWidth(String arg);
+}
diff --git a/elemental/src/elemental/html/TableElement.java b/elemental/src/elemental/html/TableElement.java
new file mode 100644
index 0000000..52c33d2
--- /dev/null
+++ b/elemental/src/elemental/html/TableElement.java
@@ -0,0 +1,213 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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.
+
+ */
+public interface TableElement extends Element {
+
+
+ /**
+ * <b>align</b> gets/sets the alignment of the table.
+
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * <b>bgColor</b> gets/sets the background color of the table.
+
+ */
+ String getBgColor();
+
+ void setBgColor(String arg);
+
+
+ /**
+ * <b>border</b> gets/sets the table border.
+
+ */
+ String getBorder();
+
+ void setBorder(String arg);
+
+
+ /**
+ * <b>caption</b> returns the table caption.
+
+ */
+ TableCaptionElement getCaption();
+
+ void setCaption(TableCaptionElement arg);
+
+
+ /**
+ * <b>cellPadding</b> gets/sets the cell padding.
+
+ */
+ String getCellPadding();
+
+ void setCellPadding(String arg);
+
+
+ /**
+ * <b>cellSpacing</b> gets/sets the spacing around the table.
+
+ */
+ String getCellSpacing();
+
+ void setCellSpacing(String arg);
+
+
+ /**
+ * <b>frame</b> specifies which sides of the table have borders.
+
+ */
+ String getFrame();
+
+ void setFrame(String arg);
+
+
+ /**
+ * <b>rows</b> returns the rows in the table.
+
+ */
+ HTMLCollection getRows();
+
+
+ /**
+ * <b>rules</b> specifies which interior borders are visible.
+
+ */
+ String getRules();
+
+ void setRules(String arg);
+
+
+ /**
+ * <b>summary</b> gets/sets the table summary.
+
+ */
+ String getSummary();
+
+ void setSummary(String arg);
+
+
+ /**
+ * <b>tBodies</b> returns the table bodies.
+
+ */
+ HTMLCollection getTBodies();
+
+
+ /**
+ * <b>tFoot</b> returns the table footer.
+
+ */
+ TableSectionElement getTFoot();
+
+ void setTFoot(TableSectionElement arg);
+
+
+ /**
+ * <b>tHead</b> returns the table head.
+
+ */
+ TableSectionElement getTHead();
+
+ void setTHead(TableSectionElement arg);
+
+
+ /**
+ * <b>width</b> gets/sets the width of the table.
+
+ */
+ String getWidth();
+
+ void setWidth(String arg);
+
+
+ /**
+ * <b>createCaption</b> creates a new caption for the table.
+
+ */
+ Element createCaption();
+
+ Element createTBody();
+
+
+ /**
+ * <b>createTFoot</b> creates a table footer.
+
+ */
+ Element createTFoot();
+
+
+ /**
+ * <b>createTHead</b> creates a table header.
+
+ */
+ Element createTHead();
+
+
+ /**
+ * <b>deleteCaption</b> removes the table caption.
+
+ */
+ void deleteCaption();
+
+
+ /**
+ * <b>deleteRow</b> removes a row.
+
+ */
+ void deleteRow(int index);
+
+
+ /**
+ * <b>deleteTFoot</b> removes a table footer.
+
+ */
+ void deleteTFoot();
+
+
+ /**
+ * <b>deleteTHead</b> removes the table header.
+
+ */
+ void deleteTHead();
+
+
+ /**
+ * <b>insertRow</b> inserts a new row.
+
+ */
+ Element insertRow(int index);
+}
diff --git a/elemental/src/elemental/html/TableRowElement.java b/elemental/src/elemental/html/TableRowElement.java
new file mode 100644
index 0000000..1fb41ff
--- /dev/null
+++ b/elemental/src/elemental/html/TableRowElement.java
@@ -0,0 +1,96 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface TableRowElement extends Element {
+
+
+ /**
+ * <a title="en/DOM/tableRow.bgColor" rel="internal" href="https://developer.mozilla.org/en/DOM/tableRow.bgColor" class="new ">row.bgColor</a>
+
+<span class="deprecatedInlineTemplate" title="">Deprecated</span>
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+
+ /**
+ * row.cells
+ */
+ String getBgColor();
+
+ void setBgColor(String arg);
+
+
+ /**
+ * row.ch
+ */
+ HTMLCollection getCells();
+
+
+ /**
+ * row.chOff
+ */
+ String getCh();
+
+ void setCh(String arg);
+
+
+ /**
+ * row.rowIndex
+ */
+ String getChOff();
+
+ void setChOff(String arg);
+
+
+ /**
+ * row.sectionRowIndex
+ */
+ int getRowIndex();
+
+
+ /**
+ * row.vAlign
+ */
+ int getSectionRowIndex();
+
+ String getVAlign();
+
+ void setVAlign(String arg);
+
+
+ /**
+ * row.insertCell
+ */
+ void deleteCell(int index);
+
+ Element insertCell(int index);
+}
diff --git a/elemental/src/elemental/html/TableSectionElement.java b/elemental/src/elemental/html/TableSectionElement.java
new file mode 100644
index 0000000..b45139f
--- /dev/null
+++ b/elemental/src/elemental/html/TableSectionElement.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <em>HTML Table Head Element</em> (<code><thead></code>) defines a set of rows defining the head of the columns of the table.
+ */
+public interface TableSectionElement extends Element {
+
+
+ /**
+ * 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/thead#attr-char">char</a></code>
+ and
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/thead#attr-charoff">charoff</a></code>
+ attributes
+<span class="unimplementedInlineTemplate">Unimplemented (see<a rel="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=2212" class="external" title="">
+bug 2212</a>
+)</span>
+.</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>
+ 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
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/thead#attr-char">char</a></code>
+ as the value of the <code><a rel="custom" href="https://developer.mozilla.org/en/CSS/text-align">text-align</a></code>
+ property
+<span class="unimplementedInlineTemplate">Unimplemented</span>
+.</li> </ul> </div>
+ */
+ String getAlign();
+
+ void setAlign(String arg);
+
+ String getCh();
+
+ void setCh(String arg);
+
+ String getChOff();
+
+ void setChOff(String arg);
+
+ HTMLCollection getRows();
+
+ String getVAlign();
+
+ void setVAlign(String arg);
+
+ void deleteRow(int index);
+
+ Element insertRow(int index);
+}
diff --git a/elemental/src/elemental/html/TextAreaElement.java b/elemental/src/elemental/html/TextAreaElement.java
new file mode 100644
index 0000000..cf44508
--- /dev/null
+++ b/elemental/src/elemental/html/TextAreaElement.java
@@ -0,0 +1,270 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<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>
+ elements.
+ */
+public interface TextAreaElement extends Element {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-autofocus">autofocus</a></code>
+ HTML attribute, indicating that the control should have input focus when the page loads
+ */
+ boolean isAutofocus();
+
+ void setAutofocus(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-cols">cols</a></code>
+ HTML attribute, indicating the visible width of the text area.
+ */
+ int getCols();
+
+ void setCols(int arg);
+
+
+ /**
+ * 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.
+ */
+ String getDefaultValue();
+
+ void setDefaultValue(String arg);
+
+ String getDirName();
+
+ void setDirName(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-disabled">disabled</a></code>
+ HTML attribute, indicating that the control is not available for interaction.
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * <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>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML/HTML5">HTML5</a></span> this can be the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form#attr-id">id</a></code>
+ attribute of any <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/form"><form></a></code>
+ element in the same document.</li> <li>
+<span><a rel="custom" href="https://developer.mozilla.org/en/HTML">HTML 4</a></span> this must be <code>null</code>.</li> </ul>
+ */
+ FormElement getForm();
+
+
+ /**
+ * A list of <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/label"><label></a></code>
+ elements that are labels for this element.
+ */
+ NodeList getLabels();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-maxlength">maxlength</a></code>
+ HTML attribute, indicating the maximum number of characters the user can enter. This constraint is evaluated only when the value changes.
+ */
+ int getMaxLength();
+
+ void setMaxLength(int arg);
+
+
+ /**
+ * Reflects
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-name">name</a></code>
+ HTML attribute, containing the name of the control.
+ */
+ String getName();
+
+ void setName(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-placeholder">placeholder</a></code>
+ HTML attribute, containing a hint to the user about what to enter in the control.
+ */
+ String getPlaceholder();
+
+ void setPlaceholder(String arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-readonly">readonly</a></code>
+ HTML attribute, indicating that the user cannot modify the value of the control.
+ */
+ boolean isReadOnly();
+
+ void setReadOnly(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-required">required</a></code>
+ HTML attribute, indicating that the user must specify a value before submitting the form.
+ */
+ boolean isRequired();
+
+ void setRequired(boolean arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-rows">rows</a></code>
+ HTML attribute, indicating the number of visible text lines for the control.
+ */
+ int getRows();
+
+ void setRows(int arg);
+
+
+ /**
+ * 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."
+ */
+ String getSelectionDirection();
+
+ void setSelectionDirection(String arg);
+
+
+ /**
+ * The index of the end of selected text.
+<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.
+ */
+ int getSelectionEnd();
+
+ void setSelectionEnd(int arg);
+
+
+ /**
+ * The index of the beginning of selected text.
+<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.
+ */
+ int getSelectionStart();
+
+ void setSelectionStart(int arg);
+
+
+ /**
+ * The codepoint length of the control's value.
+ */
+ int getTextLength();
+
+
+ /**
+ * The string <code>textarea</code>.
+ */
+ String getType();
+
+
+ /**
+ * 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.
+ */
+ String getValidationMessage();
+
+
+ /**
+ * The validity states that this element is in.
+ */
+ ValidityState getValidity();
+
+
+ /**
+ * The raw value contained in the control.
+ */
+ String getValue();
+
+ void setValue(String arg);
+
+
+ /**
+ * Indicates whether the element is a candidate for constraint validation. It is false if any conditions bar it from constraint validation.
+ */
+ boolean isWillValidate();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/textarea#attr-wrap">wrap</a></code>
+ HTML attribute, indicating how the control wraps text.
+ */
+ String getWrap();
+
+ void setWrap(String arg);
+
+
+ /**
+ * 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.
+ */
+ boolean checkValidity();
+
+
+ /**
+ * Selects the contents of the control.
+ */
+ void select();
+
+
+ /**
+ * 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.
+ */
+ void setCustomValidity(String error);
+
+
+ /**
+ * 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>.
+ */
+ void setSelectionRange(int start, int end);
+
+
+ /**
+ * 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>.
+ */
+ void setSelectionRange(int start, int end, String direction);
+}
diff --git a/elemental/src/elemental/html/TextMetrics.java b/elemental/src/elemental/html/TextMetrics.java
new file mode 100644
index 0000000..f826930
--- /dev/null
+++ b/elemental/src/elemental/html/TextMetrics.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface TextMetrics {
+
+ float getWidth();
+}
diff --git a/elemental/src/elemental/html/TextTrack.java b/elemental/src/elemental/html/TextTrack.java
new file mode 100644
index 0000000..dfed586
--- /dev/null
+++ b/elemental/src/elemental/html/TextTrack.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface TextTrack extends EventTarget {
+
+ static final int DISABLED = 0;
+
+ static final int HIDDEN = 1;
+
+ static final int SHOWING = 2;
+
+ TextTrackCueList getActiveCues();
+
+ TextTrackCueList getCues();
+
+ String getKind();
+
+ String getLabel();
+
+ String getLanguage();
+
+ int getMode();
+
+ void setMode(int arg);
+
+ EventListener getOncuechange();
+
+ void setOncuechange(EventListener arg);
+
+ void addCue(TextTrackCue cue);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeCue(TextTrackCue cue);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/TextTrackCue.java b/elemental/src/elemental/html/TextTrackCue.java
new file mode 100644
index 0000000..96f8cea
--- /dev/null
+++ b/elemental/src/elemental/html/TextTrackCue.java
@@ -0,0 +1,101 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.dom.DocumentFragment;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface TextTrackCue extends EventTarget {
+
+ String getAlign();
+
+ void setAlign(String arg);
+
+ double getEndTime();
+
+ void setEndTime(double arg);
+
+ String getId();
+
+ void setId(String arg);
+
+ int getLine();
+
+ void setLine(int arg);
+
+ EventListener getOnenter();
+
+ void setOnenter(EventListener arg);
+
+ EventListener getOnexit();
+
+ void setOnexit(EventListener arg);
+
+ boolean isPauseOnExit();
+
+ void setPauseOnExit(boolean arg);
+
+ int getPosition();
+
+ void setPosition(int arg);
+
+ int getSize();
+
+ void setSize(int arg);
+
+ boolean isSnapToLines();
+
+ void setSnapToLines(boolean arg);
+
+ double getStartTime();
+
+ void setStartTime(double arg);
+
+ String getText();
+
+ void setText(String arg);
+
+ TextTrack getTrack();
+
+ String getVertical();
+
+ void setVertical(String arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ DocumentFragment getCueAsHTML();
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/TextTrackCueList.java b/elemental/src/elemental/html/TextTrackCueList.java
new file mode 100644
index 0000000..21d2a98
--- /dev/null
+++ b/elemental/src/elemental/html/TextTrackCueList.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface TextTrackCueList {
+
+ int getLength();
+
+ TextTrackCue getCueById(String id);
+
+ TextTrackCue item(int index);
+}
diff --git a/elemental/src/elemental/html/TextTrackList.java b/elemental/src/elemental/html/TextTrackList.java
new file mode 100644
index 0000000..6271d9c
--- /dev/null
+++ b/elemental/src/elemental/html/TextTrackList.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface TextTrackList extends EventTarget {
+
+ int getLength();
+
+ EventListener getOnaddtrack();
+
+ void setOnaddtrack(EventListener arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ TextTrack item(int index);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/html/TimeRanges.java b/elemental/src/elemental/html/TimeRanges.java
new file mode 100644
index 0000000..d738b33
--- /dev/null
+++ b/elemental/src/elemental/html/TimeRanges.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+ elements.</p>
+<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>
+ */
+public interface TimeRanges {
+
+
+ /**
+ * The number of time ranges represented by the time range object. <strong>Read only.</strong>
+ */
+ int getLength();
+
+
+ /**
+ * Returns the time for the end of the specified range.
+ */
+ float end(int index);
+
+
+ /**
+ * Returns the time for the start of the range with the specified index.
+ */
+ float start(int index);
+}
diff --git a/elemental/src/elemental/html/TitleElement.java b/elemental/src/elemental/html/TitleElement.java
new file mode 100644
index 0000000..1831a9f
--- /dev/null
+++ b/elemental/src/elemental/html/TitleElement.java
@@ -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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface TitleElement extends Element {
+
+
+ /**
+ * Gets or sets the text content of the document's title.
+ */
+ String getText();
+
+ void setText(String arg);
+}
diff --git a/elemental/src/elemental/html/TrackElement.java b/elemental/src/elemental/html/TrackElement.java
new file mode 100644
index 0000000..1515917
--- /dev/null
+++ b/elemental/src/elemental/html/TrackElement.java
@@ -0,0 +1,87 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video"><video></a></code>
+—and does not represent anything on its own. It lets you specify timed text tracks (or time-based data).</p>
+<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>
+ */
+public interface TrackElement extends Element {
+
+ static final int ERROR = 3;
+
+ static final int LOADED = 2;
+
+ static final int LOADING = 1;
+
+ static final int NONE = 0;
+
+
+ /**
+ * 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.
+ */
+ boolean isDefaultValue();
+
+ void setDefaultValue(boolean arg);
+
+
+ /**
+ * 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>
+ */
+ String getKind();
+
+ void setKind(String arg);
+
+
+ /**
+ * A user-readable title of the text track Used by the browser when listing available text tracks.
+ */
+ String getLabel();
+
+ void setLabel(String arg);
+
+ int getReadyState();
+
+
+ /**
+ * Address of the track. Must be a valid URL. This attribute must be defined.
+ */
+ String getSrc();
+
+ void setSrc(String arg);
+
+
+ /**
+ * Language of the track text data.
+ */
+ String getSrclang();
+
+ void setSrclang(String arg);
+
+ TextTrack getTrack();
+}
diff --git a/elemental/src/elemental/html/TrackEvent.java b/elemental/src/elemental/html/TrackEvent.java
new file mode 100644
index 0000000..eb80986
--- /dev/null
+++ b/elemental/src/elemental/html/TrackEvent.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.html;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface TrackEvent extends Event {
+
+ Object getTrack();
+}
diff --git a/elemental/src/elemental/html/UListElement.java b/elemental/src/elemental/html/UListElement.java
new file mode 100644
index 0000000..84231a2
--- /dev/null
+++ b/elemental/src/elemental/html/UListElement.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ property.</p>
+<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>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ul"><ul></a></code>
+ elements.</p>
+<div class="note"><strong>Usage note: </strong> The <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ol"><ol></a></code>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ul"><ul></a></code>
+ 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>
+ 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>
+ element should be used, else the <code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/ul"><ul></a></code>
+ is adequate.</div>
+ */
+public interface UListElement extends Element {
+
+
+ /**
+ * 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>
+ 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>
+ */
+ boolean isCompact();
+
+ void setCompact(boolean arg);
+
+
+ /**
+ * 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>
+ 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>
+ property instead.</div>
+ */
+ String getType();
+
+ void setType(String arg);
+}
diff --git a/elemental/src/elemental/html/Uint16Array.java b/elemental/src/elemental/html/Uint16Array.java
new file mode 100644
index 0000000..a200d8e
--- /dev/null
+++ b/elemental/src/elemental/html/Uint16Array.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>Uint16Array</code> type represents an array of unsigned 16-bit integers..</p>
+<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>
+ */
+public interface Uint16Array extends ArrayBufferView, IndexableInt {
+
+ /**
+ * The size, in bytes, of each array element.
+ */
+
+ static final int BYTES_PER_ELEMENT = 2;
+
+
+ /**
+ * The number of entries in the array. <strong>Read only.</strong>
+ */
+ int getLength();
+
+ void setElements(Object array);
+
+ void setElements(Object array, int offset);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Uint16Array subarray(int start);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Uint16Array subarray(int start, int end);
+}
diff --git a/elemental/src/elemental/html/Uint32Array.java b/elemental/src/elemental/html/Uint32Array.java
new file mode 100644
index 0000000..1110451
--- /dev/null
+++ b/elemental/src/elemental/html/Uint32Array.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>Uint32Array</code> type represents an array of 32-bit unsigned integers.</p>
+<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>
+ */
+public interface Uint32Array extends ArrayBufferView, IndexableInt {
+
+ /**
+ * The size, in bytes, of each array element.
+ */
+
+ static final int BYTES_PER_ELEMENT = 4;
+
+
+ /**
+ * The number of entries in the array. <strong>Read only.</strong>
+ */
+ int getLength();
+
+ void setElements(Object array);
+
+ void setElements(Object array, int offset);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Uint32Array subarray(int start);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Uint32Array subarray(int start, int end);
+}
diff --git a/elemental/src/elemental/html/Uint8Array.java b/elemental/src/elemental/html/Uint8Array.java
new file mode 100644
index 0000000..6cc8d17
--- /dev/null
+++ b/elemental/src/elemental/html/Uint8Array.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>UInt8Array</code> type represents an array of 8-bit unsigned integers.</p>
+<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>
+ */
+public interface Uint8Array extends ArrayBufferView, IndexableInt {
+
+ /**
+ * The size, in bytes, of each array element.
+ */
+
+ static final int BYTES_PER_ELEMENT = 1;
+
+
+ /**
+ * 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>
+ */
+ int getLength();
+
+ void setElements(Object array);
+
+ void setElements(Object array, int offset);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Uint8Array subarray(int start);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+<span title="">Optional</span>
+</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>
+</dl>
+</div><div id="section_16"><span id="Notes_2"></span><h6 class="editable">Notes</h6>
+<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>
+<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>
+ */
+ Uint8Array subarray(int start, int end);
+}
diff --git a/elemental/src/elemental/html/Uint8ClampedArray.java b/elemental/src/elemental/html/Uint8ClampedArray.java
new file mode 100644
index 0000000..20e84e4
--- /dev/null
+++ b/elemental/src/elemental/html/Uint8ClampedArray.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface Uint8ClampedArray extends Uint8Array, IndexableInt {
+
+ int getLength();
+
+ void setElements(Object array);
+
+ void setElements(Object array, int offset);
+}
diff --git a/elemental/src/elemental/html/UnknownElement.java b/elemental/src/elemental/html/UnknownElement.java
new file mode 100644
index 0000000..b7b19e5
--- /dev/null
+++ b/elemental/src/elemental/html/UnknownElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>Dies ist die Übersichtsseite der Gecko DOM Referenz.</p>
+<div class="warning">Diese Referenz ist im Moment noch sehr unvollständig. Hilf mit: registriere dich und schreib mit!</div>
+<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>
+ */
+public interface UnknownElement extends Element {
+}
diff --git a/elemental/src/elemental/html/ValidityState.java b/elemental/src/elemental/html/ValidityState.java
new file mode 100644
index 0000000..f2362a1
--- /dev/null
+++ b/elemental/src/elemental/html/ValidityState.java
@@ -0,0 +1,103 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The DOM <code>ValidityState</code> interface represents the <em>validity states</em> that an element can be in, with respect to constraint validation.
+ */
+public interface ValidityState {
+
+
+ /**
+ * The element's custom validity message has been set to a non-empty string by calling the element's setCustomValidity() method.
+ */
+ boolean isCustomError();
+
+
+ /**
+ * The value does not match the specified
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-pattern">pattern</a></code>
+.
+ */
+ boolean isPatternMismatch();
+
+
+ /**
+ * The value is greater than the specified
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-max">max</a></code>
+.
+ */
+ boolean isRangeOverflow();
+
+
+ /**
+ * The value is less than the specified
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-min">min</a></code>
+.
+ */
+ boolean isRangeUnderflow();
+
+
+ /**
+ * The value does not fit the rules determined by
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-step">step</a></code>
+.
+ */
+ boolean isStepMismatch();
+
+
+ /**
+ * <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>
+ */
+ boolean isTooLong();
+
+
+ /**
+ * The value is not in the required syntax (when
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-type">type</a></code>
+ is <code>email</code> or <code>url</code>).
+ */
+ boolean isTypeMismatch();
+
+
+ /**
+ * No other constraint validation conditions are true.
+ */
+ boolean isValid();
+
+
+ /**
+ * The element has a
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/input#attr-required">required</a></code>
+ attribute, but no value.
+ */
+ boolean isValueMissing();
+}
diff --git a/elemental/src/elemental/html/VideoElement.java b/elemental/src/elemental/html/VideoElement.java
new file mode 100644
index 0000000..744d238
--- /dev/null
+++ b/elemental/src/elemental/html/VideoElement.java
@@ -0,0 +1,92 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface VideoElement extends MediaElement {
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video#attr-height">height</a></code>
+ HTML attribute, which specifies the height of the display area, in CSS pixels.
+ */
+ int getHeight();
+
+ void setHeight(int arg);
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video#attr-poster">poster</a></code>
+ HTML attribute, which specifies an image to show while no video data is available.
+ */
+ String getPoster();
+
+ void setPoster(String arg);
+
+
+ /**
+ * 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.
+ */
+ int getVideoHeight();
+
+
+ /**
+ * 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.
+ */
+ int getVideoWidth();
+
+ int getWebkitDecodedFrameCount();
+
+ boolean isWebkitDisplayingFullscreen();
+
+ int getWebkitDroppedFrameCount();
+
+ boolean isWebkitSupportsFullscreen();
+
+
+ /**
+ * Reflects the
+
+<code><a rel="custom" href="https://developer.mozilla.org/en/HTML/Element/video#attr-width">width</a></code>
+ HTML attribute, which specifies the width of the display area, in CSS pixels.
+ */
+ int getWidth();
+
+ void setWidth(int arg);
+
+ void webkitEnterFullScreen();
+
+ void webkitEnterFullscreen();
+
+ void webkitExitFullScreen();
+
+ void webkitExitFullscreen();
+}
diff --git a/elemental/src/elemental/html/VoidCallback.java b/elemental/src/elemental/html/VoidCallback.java
new file mode 100644
index 0000000..954323b
--- /dev/null
+++ b/elemental/src/elemental/html/VoidCallback.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+
+/**
+ *
+ */
+public interface VoidCallback {
+ void onVoidCallback();
+}
diff --git a/elemental/src/elemental/html/WaveShaperNode.java b/elemental/src/elemental/html/WaveShaperNode.java
new file mode 100644
index 0000000..170e6fa
--- /dev/null
+++ b/elemental/src/elemental/html/WaveShaperNode.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WaveShaperNode extends AudioNode {
+
+ Float32Array getCurve();
+
+ void setCurve(Float32Array arg);
+}
diff --git a/elemental/src/elemental/html/WaveTable.java b/elemental/src/elemental/html/WaveTable.java
new file mode 100644
index 0000000..e6087f8
--- /dev/null
+++ b/elemental/src/elemental/html/WaveTable.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WaveTable {
+}
diff --git a/elemental/src/elemental/html/WebGLActiveInfo.java b/elemental/src/elemental/html/WebGLActiveInfo.java
new file mode 100644
index 0000000..537dc0e
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLActiveInfo.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLActiveInfo {
+
+ String getName();
+
+ int getSize();
+
+ int getType();
+}
diff --git a/elemental/src/elemental/html/WebGLBuffer.java b/elemental/src/elemental/html/WebGLBuffer.java
new file mode 100644
index 0000000..22d0b83
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLBuffer.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLBuffer {
+}
diff --git a/elemental/src/elemental/html/WebGLCompressedTextureS3TC.java b/elemental/src/elemental/html/WebGLCompressedTextureS3TC.java
new file mode 100644
index 0000000..11f8f0a
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLCompressedTextureS3TC.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLCompressedTextureS3TC {
+
+ static final int COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1;
+
+ static final int COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2;
+
+ static final int COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3;
+
+ static final int COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
+}
diff --git a/elemental/src/elemental/html/WebGLContextAttributes.java b/elemental/src/elemental/html/WebGLContextAttributes.java
new file mode 100644
index 0000000..ccdca68
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLContextAttributes.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLContextAttributes {
+
+ boolean isAlpha();
+
+ void setAlpha(boolean arg);
+
+ boolean isAntialias();
+
+ void setAntialias(boolean arg);
+
+ boolean isDepth();
+
+ void setDepth(boolean arg);
+
+ boolean isPremultipliedAlpha();
+
+ void setPremultipliedAlpha(boolean arg);
+
+ boolean isPreserveDrawingBuffer();
+
+ void setPreserveDrawingBuffer(boolean arg);
+
+ boolean isStencil();
+
+ void setStencil(boolean arg);
+}
diff --git a/elemental/src/elemental/html/WebGLContextEvent.java b/elemental/src/elemental/html/WebGLContextEvent.java
new file mode 100644
index 0000000..37b11e0
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLContextEvent.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.html;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLContextEvent extends Event {
+
+ String getStatusMessage();
+}
diff --git a/elemental/src/elemental/html/WebGLDebugRendererInfo.java b/elemental/src/elemental/html/WebGLDebugRendererInfo.java
new file mode 100644
index 0000000..947bdfe
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLDebugRendererInfo.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLDebugRendererInfo {
+
+ static final int UNMASKED_RENDERER_WEBGL = 0x9246;
+
+ static final int UNMASKED_VENDOR_WEBGL = 0x9245;
+}
diff --git a/elemental/src/elemental/html/WebGLDebugShaders.java b/elemental/src/elemental/html/WebGLDebugShaders.java
new file mode 100644
index 0000000..15932c9
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLDebugShaders.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLDebugShaders {
+
+ String getTranslatedShaderSource(WebGLShader shader);
+}
diff --git a/elemental/src/elemental/html/WebGLFramebuffer.java b/elemental/src/elemental/html/WebGLFramebuffer.java
new file mode 100644
index 0000000..b3f4f54
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLFramebuffer.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLFramebuffer {
+}
diff --git a/elemental/src/elemental/html/WebGLLoseContext.java b/elemental/src/elemental/html/WebGLLoseContext.java
new file mode 100644
index 0000000..f663148
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLLoseContext.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLLoseContext {
+
+ void loseContext();
+
+ void restoreContext();
+}
diff --git a/elemental/src/elemental/html/WebGLProgram.java b/elemental/src/elemental/html/WebGLProgram.java
new file mode 100644
index 0000000..e5a41b4
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLProgram.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLProgram {
+}
diff --git a/elemental/src/elemental/html/WebGLRenderbuffer.java b/elemental/src/elemental/html/WebGLRenderbuffer.java
new file mode 100644
index 0000000..d27a35b
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLRenderbuffer.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLRenderbuffer {
+}
diff --git a/elemental/src/elemental/html/WebGLRenderingContext.java b/elemental/src/elemental/html/WebGLRenderingContext.java
new file mode 100644
index 0000000..661c51a
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLRenderingContext.java
@@ -0,0 +1,920 @@
+/*
+ * 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 elemental.html;
+import elemental.util.Indexable;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLRenderingContext extends CanvasRenderingContext {
+
+ static final int ACTIVE_ATTRIBUTES = 0x8B89;
+
+ static final int ACTIVE_TEXTURE = 0x84E0;
+
+ static final int ACTIVE_UNIFORMS = 0x8B86;
+
+ static final int ALIASED_LINE_WIDTH_RANGE = 0x846E;
+
+ static final int ALIASED_POINT_SIZE_RANGE = 0x846D;
+
+ static final int ALPHA = 0x1906;
+
+ static final int ALPHA_BITS = 0x0D55;
+
+ static final int ALWAYS = 0x0207;
+
+ static final int ARRAY_BUFFER = 0x8892;
+
+ static final int ARRAY_BUFFER_BINDING = 0x8894;
+
+ static final int ATTACHED_SHADERS = 0x8B85;
+
+ static final int BACK = 0x0405;
+
+ static final int BLEND = 0x0BE2;
+
+ static final int BLEND_COLOR = 0x8005;
+
+ static final int BLEND_DST_ALPHA = 0x80CA;
+
+ static final int BLEND_DST_RGB = 0x80C8;
+
+ static final int BLEND_EQUATION = 0x8009;
+
+ static final int BLEND_EQUATION_ALPHA = 0x883D;
+
+ static final int BLEND_EQUATION_RGB = 0x8009;
+
+ static final int BLEND_SRC_ALPHA = 0x80CB;
+
+ static final int BLEND_SRC_RGB = 0x80C9;
+
+ static final int BLUE_BITS = 0x0D54;
+
+ static final int BOOL = 0x8B56;
+
+ static final int BOOL_VEC2 = 0x8B57;
+
+ static final int BOOL_VEC3 = 0x8B58;
+
+ static final int BOOL_VEC4 = 0x8B59;
+
+ static final int BROWSER_DEFAULT_WEBGL = 0x9244;
+
+ static final int BUFFER_SIZE = 0x8764;
+
+ static final int BUFFER_USAGE = 0x8765;
+
+ static final int BYTE = 0x1400;
+
+ static final int CCW = 0x0901;
+
+ static final int CLAMP_TO_EDGE = 0x812F;
+
+ static final int COLOR_ATTACHMENT0 = 0x8CE0;
+
+ static final int COLOR_BUFFER_BIT = 0x00004000;
+
+ static final int COLOR_CLEAR_VALUE = 0x0C22;
+
+ static final int COLOR_WRITEMASK = 0x0C23;
+
+ static final int COMPILE_STATUS = 0x8B81;
+
+ static final int COMPRESSED_TEXTURE_FORMATS = 0x86A3;
+
+ static final int CONSTANT_ALPHA = 0x8003;
+
+ static final int CONSTANT_COLOR = 0x8001;
+
+ static final int CONTEXT_LOST_WEBGL = 0x9242;
+
+ static final int CULL_FACE = 0x0B44;
+
+ static final int CULL_FACE_MODE = 0x0B45;
+
+ static final int CURRENT_PROGRAM = 0x8B8D;
+
+ static final int CURRENT_VERTEX_ATTRIB = 0x8626;
+
+ static final int CW = 0x0900;
+
+ static final int DECR = 0x1E03;
+
+ static final int DECR_WRAP = 0x8508;
+
+ static final int DELETE_STATUS = 0x8B80;
+
+ static final int DEPTH_ATTACHMENT = 0x8D00;
+
+ static final int DEPTH_BITS = 0x0D56;
+
+ static final int DEPTH_BUFFER_BIT = 0x00000100;
+
+ static final int DEPTH_CLEAR_VALUE = 0x0B73;
+
+ static final int DEPTH_COMPONENT = 0x1902;
+
+ static final int DEPTH_COMPONENT16 = 0x81A5;
+
+ static final int DEPTH_FUNC = 0x0B74;
+
+ static final int DEPTH_RANGE = 0x0B70;
+
+ static final int DEPTH_STENCIL = 0x84F9;
+
+ static final int DEPTH_STENCIL_ATTACHMENT = 0x821A;
+
+ static final int DEPTH_TEST = 0x0B71;
+
+ static final int DEPTH_WRITEMASK = 0x0B72;
+
+ static final int DITHER = 0x0BD0;
+
+ static final int DONT_CARE = 0x1100;
+
+ static final int DST_ALPHA = 0x0304;
+
+ static final int DST_COLOR = 0x0306;
+
+ static final int DYNAMIC_DRAW = 0x88E8;
+
+ static final int ELEMENT_ARRAY_BUFFER = 0x8893;
+
+ static final int ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
+
+ static final int EQUAL = 0x0202;
+
+ static final int FASTEST = 0x1101;
+
+ static final int FLOAT = 0x1406;
+
+ static final int FLOAT_MAT2 = 0x8B5A;
+
+ static final int FLOAT_MAT3 = 0x8B5B;
+
+ static final int FLOAT_MAT4 = 0x8B5C;
+
+ static final int FLOAT_VEC2 = 0x8B50;
+
+ static final int FLOAT_VEC3 = 0x8B51;
+
+ static final int FLOAT_VEC4 = 0x8B52;
+
+ static final int FRAGMENT_SHADER = 0x8B30;
+
+ static final int FRAMEBUFFER = 0x8D40;
+
+ static final int FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
+
+ static final int FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
+
+ static final int FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
+
+ static final int FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
+
+ static final int FRAMEBUFFER_BINDING = 0x8CA6;
+
+ static final int FRAMEBUFFER_COMPLETE = 0x8CD5;
+
+ static final int FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
+
+ static final int FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
+
+ static final int FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
+
+ static final int FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
+
+ static final int FRONT = 0x0404;
+
+ static final int FRONT_AND_BACK = 0x0408;
+
+ static final int FRONT_FACE = 0x0B46;
+
+ static final int FUNC_ADD = 0x8006;
+
+ static final int FUNC_REVERSE_SUBTRACT = 0x800B;
+
+ static final int FUNC_SUBTRACT = 0x800A;
+
+ static final int GENERATE_MIPMAP_HINT = 0x8192;
+
+ static final int GEQUAL = 0x0206;
+
+ static final int GREATER = 0x0204;
+
+ static final int GREEN_BITS = 0x0D53;
+
+ static final int HIGH_FLOAT = 0x8DF2;
+
+ static final int HIGH_INT = 0x8DF5;
+
+ static final int INCR = 0x1E02;
+
+ static final int INCR_WRAP = 0x8507;
+
+ static final int INT = 0x1404;
+
+ static final int INT_VEC2 = 0x8B53;
+
+ static final int INT_VEC3 = 0x8B54;
+
+ static final int INT_VEC4 = 0x8B55;
+
+ static final int INVALID_ENUM = 0x0500;
+
+ static final int INVALID_FRAMEBUFFER_OPERATION = 0x0506;
+
+ static final int INVALID_OPERATION = 0x0502;
+
+ static final int INVALID_VALUE = 0x0501;
+
+ static final int INVERT = 0x150A;
+
+ static final int KEEP = 0x1E00;
+
+ static final int LEQUAL = 0x0203;
+
+ static final int LESS = 0x0201;
+
+ static final int LINEAR = 0x2601;
+
+ static final int LINEAR_MIPMAP_LINEAR = 0x2703;
+
+ static final int LINEAR_MIPMAP_NEAREST = 0x2701;
+
+ static final int LINES = 0x0001;
+
+ static final int LINE_LOOP = 0x0002;
+
+ static final int LINE_STRIP = 0x0003;
+
+ static final int LINE_WIDTH = 0x0B21;
+
+ static final int LINK_STATUS = 0x8B82;
+
+ static final int LOW_FLOAT = 0x8DF0;
+
+ static final int LOW_INT = 0x8DF3;
+
+ static final int LUMINANCE = 0x1909;
+
+ static final int LUMINANCE_ALPHA = 0x190A;
+
+ static final int MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
+
+ static final int MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
+
+ static final int MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
+
+ static final int MAX_RENDERBUFFER_SIZE = 0x84E8;
+
+ static final int MAX_TEXTURE_IMAGE_UNITS = 0x8872;
+
+ static final int MAX_TEXTURE_SIZE = 0x0D33;
+
+ static final int MAX_VARYING_VECTORS = 0x8DFC;
+
+ static final int MAX_VERTEX_ATTRIBS = 0x8869;
+
+ static final int MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
+
+ static final int MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
+
+ static final int MAX_VIEWPORT_DIMS = 0x0D3A;
+
+ static final int MEDIUM_FLOAT = 0x8DF1;
+
+ static final int MEDIUM_INT = 0x8DF4;
+
+ static final int MIRRORED_REPEAT = 0x8370;
+
+ static final int NEAREST = 0x2600;
+
+ static final int NEAREST_MIPMAP_LINEAR = 0x2702;
+
+ static final int NEAREST_MIPMAP_NEAREST = 0x2700;
+
+ static final int NEVER = 0x0200;
+
+ static final int NICEST = 0x1102;
+
+ static final int NONE = 0;
+
+ static final int NOTEQUAL = 0x0205;
+
+ static final int NO_ERROR = 0;
+
+ static final int ONE = 1;
+
+ static final int ONE_MINUS_CONSTANT_ALPHA = 0x8004;
+
+ static final int ONE_MINUS_CONSTANT_COLOR = 0x8002;
+
+ static final int ONE_MINUS_DST_ALPHA = 0x0305;
+
+ static final int ONE_MINUS_DST_COLOR = 0x0307;
+
+ static final int ONE_MINUS_SRC_ALPHA = 0x0303;
+
+ static final int ONE_MINUS_SRC_COLOR = 0x0301;
+
+ static final int OUT_OF_MEMORY = 0x0505;
+
+ static final int PACK_ALIGNMENT = 0x0D05;
+
+ static final int POINTS = 0x0000;
+
+ static final int POLYGON_OFFSET_FACTOR = 0x8038;
+
+ static final int POLYGON_OFFSET_FILL = 0x8037;
+
+ static final int POLYGON_OFFSET_UNITS = 0x2A00;
+
+ static final int RED_BITS = 0x0D52;
+
+ static final int RENDERBUFFER = 0x8D41;
+
+ static final int RENDERBUFFER_ALPHA_SIZE = 0x8D53;
+
+ static final int RENDERBUFFER_BINDING = 0x8CA7;
+
+ static final int RENDERBUFFER_BLUE_SIZE = 0x8D52;
+
+ static final int RENDERBUFFER_DEPTH_SIZE = 0x8D54;
+
+ static final int RENDERBUFFER_GREEN_SIZE = 0x8D51;
+
+ static final int RENDERBUFFER_HEIGHT = 0x8D43;
+
+ static final int RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
+
+ static final int RENDERBUFFER_RED_SIZE = 0x8D50;
+
+ static final int RENDERBUFFER_STENCIL_SIZE = 0x8D55;
+
+ static final int RENDERBUFFER_WIDTH = 0x8D42;
+
+ static final int RENDERER = 0x1F01;
+
+ static final int REPEAT = 0x2901;
+
+ static final int REPLACE = 0x1E01;
+
+ static final int RGB = 0x1907;
+
+ static final int RGB565 = 0x8D62;
+
+ static final int RGB5_A1 = 0x8057;
+
+ static final int RGBA = 0x1908;
+
+ static final int RGBA4 = 0x8056;
+
+ static final int SAMPLER_2D = 0x8B5E;
+
+ static final int SAMPLER_CUBE = 0x8B60;
+
+ static final int SAMPLES = 0x80A9;
+
+ static final int SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
+
+ static final int SAMPLE_BUFFERS = 0x80A8;
+
+ static final int SAMPLE_COVERAGE = 0x80A0;
+
+ static final int SAMPLE_COVERAGE_INVERT = 0x80AB;
+
+ static final int SAMPLE_COVERAGE_VALUE = 0x80AA;
+
+ static final int SCISSOR_BOX = 0x0C10;
+
+ static final int SCISSOR_TEST = 0x0C11;
+
+ static final int SHADER_TYPE = 0x8B4F;
+
+ static final int SHADING_LANGUAGE_VERSION = 0x8B8C;
+
+ static final int SHORT = 0x1402;
+
+ static final int SRC_ALPHA = 0x0302;
+
+ static final int SRC_ALPHA_SATURATE = 0x0308;
+
+ static final int SRC_COLOR = 0x0300;
+
+ static final int STATIC_DRAW = 0x88E4;
+
+ static final int STENCIL_ATTACHMENT = 0x8D20;
+
+ static final int STENCIL_BACK_FAIL = 0x8801;
+
+ static final int STENCIL_BACK_FUNC = 0x8800;
+
+ static final int STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
+
+ static final int STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
+
+ static final int STENCIL_BACK_REF = 0x8CA3;
+
+ static final int STENCIL_BACK_VALUE_MASK = 0x8CA4;
+
+ static final int STENCIL_BACK_WRITEMASK = 0x8CA5;
+
+ static final int STENCIL_BITS = 0x0D57;
+
+ static final int STENCIL_BUFFER_BIT = 0x00000400;
+
+ static final int STENCIL_CLEAR_VALUE = 0x0B91;
+
+ static final int STENCIL_FAIL = 0x0B94;
+
+ static final int STENCIL_FUNC = 0x0B92;
+
+ static final int STENCIL_INDEX = 0x1901;
+
+ static final int STENCIL_INDEX8 = 0x8D48;
+
+ static final int STENCIL_PASS_DEPTH_FAIL = 0x0B95;
+
+ static final int STENCIL_PASS_DEPTH_PASS = 0x0B96;
+
+ static final int STENCIL_REF = 0x0B97;
+
+ static final int STENCIL_TEST = 0x0B90;
+
+ static final int STENCIL_VALUE_MASK = 0x0B93;
+
+ static final int STENCIL_WRITEMASK = 0x0B98;
+
+ static final int STREAM_DRAW = 0x88E0;
+
+ static final int SUBPIXEL_BITS = 0x0D50;
+
+ static final int TEXTURE = 0x1702;
+
+ static final int TEXTURE0 = 0x84C0;
+
+ static final int TEXTURE1 = 0x84C1;
+
+ static final int TEXTURE10 = 0x84CA;
+
+ static final int TEXTURE11 = 0x84CB;
+
+ static final int TEXTURE12 = 0x84CC;
+
+ static final int TEXTURE13 = 0x84CD;
+
+ static final int TEXTURE14 = 0x84CE;
+
+ static final int TEXTURE15 = 0x84CF;
+
+ static final int TEXTURE16 = 0x84D0;
+
+ static final int TEXTURE17 = 0x84D1;
+
+ static final int TEXTURE18 = 0x84D2;
+
+ static final int TEXTURE19 = 0x84D3;
+
+ static final int TEXTURE2 = 0x84C2;
+
+ static final int TEXTURE20 = 0x84D4;
+
+ static final int TEXTURE21 = 0x84D5;
+
+ static final int TEXTURE22 = 0x84D6;
+
+ static final int TEXTURE23 = 0x84D7;
+
+ static final int TEXTURE24 = 0x84D8;
+
+ static final int TEXTURE25 = 0x84D9;
+
+ static final int TEXTURE26 = 0x84DA;
+
+ static final int TEXTURE27 = 0x84DB;
+
+ static final int TEXTURE28 = 0x84DC;
+
+ static final int TEXTURE29 = 0x84DD;
+
+ static final int TEXTURE3 = 0x84C3;
+
+ static final int TEXTURE30 = 0x84DE;
+
+ static final int TEXTURE31 = 0x84DF;
+
+ static final int TEXTURE4 = 0x84C4;
+
+ static final int TEXTURE5 = 0x84C5;
+
+ static final int TEXTURE6 = 0x84C6;
+
+ static final int TEXTURE7 = 0x84C7;
+
+ static final int TEXTURE8 = 0x84C8;
+
+ static final int TEXTURE9 = 0x84C9;
+
+ static final int TEXTURE_2D = 0x0DE1;
+
+ static final int TEXTURE_BINDING_2D = 0x8069;
+
+ static final int TEXTURE_BINDING_CUBE_MAP = 0x8514;
+
+ static final int TEXTURE_CUBE_MAP = 0x8513;
+
+ static final int TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
+
+ static final int TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
+
+ static final int TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
+
+ static final int TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
+
+ static final int TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
+
+ static final int TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
+
+ static final int TEXTURE_MAG_FILTER = 0x2800;
+
+ static final int TEXTURE_MIN_FILTER = 0x2801;
+
+ static final int TEXTURE_WRAP_S = 0x2802;
+
+ static final int TEXTURE_WRAP_T = 0x2803;
+
+ static final int TRIANGLES = 0x0004;
+
+ static final int TRIANGLE_FAN = 0x0006;
+
+ static final int TRIANGLE_STRIP = 0x0005;
+
+ static final int UNPACK_ALIGNMENT = 0x0CF5;
+
+ static final int UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
+
+ static final int UNPACK_FLIP_Y_WEBGL = 0x9240;
+
+ static final int UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
+
+ static final int UNSIGNED_BYTE = 0x1401;
+
+ static final int UNSIGNED_INT = 0x1405;
+
+ static final int UNSIGNED_SHORT = 0x1403;
+
+ static final int UNSIGNED_SHORT_4_4_4_4 = 0x8033;
+
+ static final int UNSIGNED_SHORT_5_5_5_1 = 0x8034;
+
+ static final int UNSIGNED_SHORT_5_6_5 = 0x8363;
+
+ static final int VALIDATE_STATUS = 0x8B83;
+
+ static final int VENDOR = 0x1F00;
+
+ static final int VERSION = 0x1F02;
+
+ static final int VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
+
+ static final int VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
+
+ static final int VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
+
+ static final int VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
+
+ static final int VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
+
+ static final int VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
+
+ static final int VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
+
+ static final int VERTEX_SHADER = 0x8B31;
+
+ static final int VIEWPORT = 0x0BA2;
+
+ static final int ZERO = 0;
+
+ int getDrawingBufferHeight();
+
+ int getDrawingBufferWidth();
+
+ void activeTexture(int texture);
+
+ void attachShader(WebGLProgram program, WebGLShader shader);
+
+ void bindAttribLocation(WebGLProgram program, int index, String name);
+
+ void bindBuffer(int target, WebGLBuffer buffer);
+
+ void bindFramebuffer(int target, WebGLFramebuffer framebuffer);
+
+ void bindRenderbuffer(int target, WebGLRenderbuffer renderbuffer);
+
+ void bindTexture(int target, WebGLTexture texture);
+
+ void blendColor(float red, float green, float blue, float alpha);
+
+ void blendEquation(int mode);
+
+ void blendEquationSeparate(int modeRGB, int modeAlpha);
+
+ void blendFunc(int sfactor, int dfactor);
+
+ void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha);
+
+ void bufferData(int target, ArrayBuffer data, int usage);
+
+ void bufferData(int target, ArrayBufferView data, int usage);
+
+ void bufferData(int target, double size, int usage);
+
+ void bufferSubData(int target, double offset, ArrayBuffer data);
+
+ void bufferSubData(int target, double offset, ArrayBufferView data);
+
+ int checkFramebufferStatus(int target);
+
+ void clear(int mask);
+
+ void clearColor(float red, float green, float blue, float alpha);
+
+ void clearDepth(float depth);
+
+ void clearStencil(int s);
+
+ void colorMask(boolean red, boolean green, boolean blue, boolean alpha);
+
+ void compileShader(WebGLShader shader);
+
+ void compressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, ArrayBufferView data);
+
+ void compressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, ArrayBufferView data);
+
+ void copyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border);
+
+ void copyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height);
+
+ WebGLBuffer createBuffer();
+
+ WebGLFramebuffer createFramebuffer();
+
+ WebGLProgram createProgram();
+
+ WebGLRenderbuffer createRenderbuffer();
+
+ WebGLShader createShader(int type);
+
+ WebGLTexture createTexture();
+
+ void cullFace(int mode);
+
+ void deleteBuffer(WebGLBuffer buffer);
+
+ void deleteFramebuffer(WebGLFramebuffer framebuffer);
+
+ void deleteProgram(WebGLProgram program);
+
+ void deleteRenderbuffer(WebGLRenderbuffer renderbuffer);
+
+ void deleteShader(WebGLShader shader);
+
+ void deleteTexture(WebGLTexture texture);
+
+ void depthFunc(int func);
+
+ void depthMask(boolean flag);
+
+ void depthRange(float zNear, float zFar);
+
+ void detachShader(WebGLProgram program, WebGLShader shader);
+
+ void disable(int cap);
+
+ void disableVertexAttribArray(int index);
+
+ void drawArrays(int mode, int first, int count);
+
+ void drawElements(int mode, int count, int type, double offset);
+
+ void enable(int cap);
+
+ void enableVertexAttribArray(int index);
+
+ void finish();
+
+ void flush();
+
+ void framebufferRenderbuffer(int target, int attachment, int renderbuffertarget, WebGLRenderbuffer renderbuffer);
+
+ void framebufferTexture2D(int target, int attachment, int textarget, WebGLTexture texture, int level);
+
+ void frontFace(int mode);
+
+ void generateMipmap(int target);
+
+ WebGLActiveInfo getActiveAttrib(WebGLProgram program, int index);
+
+ WebGLActiveInfo getActiveUniform(WebGLProgram program, int index);
+
+ Indexable getAttachedShaders(WebGLProgram program);
+
+ int getAttribLocation(WebGLProgram program, String name);
+
+ Object getBufferParameter(int target, int pname);
+
+ WebGLContextAttributes getContextAttributes();
+
+ int getError();
+
+ Object getExtension(String name);
+
+ Object getFramebufferAttachmentParameter(int target, int attachment, int pname);
+
+ Object getParameter(int pname);
+
+ String getProgramInfoLog(WebGLProgram program);
+
+ Object getProgramParameter(WebGLProgram program, int pname);
+
+ Object getRenderbufferParameter(int target, int pname);
+
+ String getShaderInfoLog(WebGLShader shader);
+
+ Object getShaderParameter(WebGLShader shader, int pname);
+
+ WebGLShaderPrecisionFormat getShaderPrecisionFormat(int shadertype, int precisiontype);
+
+ String getShaderSource(WebGLShader shader);
+
+ Object getTexParameter(int target, int pname);
+
+ Object getUniform(WebGLProgram program, WebGLUniformLocation location);
+
+ WebGLUniformLocation getUniformLocation(WebGLProgram program, String name);
+
+ Object getVertexAttrib(int index, int pname);
+
+ double getVertexAttribOffset(int index, int pname);
+
+ void hint(int target, int mode);
+
+ boolean isBuffer(WebGLBuffer buffer);
+
+ boolean isContextLost();
+
+ boolean isEnabled(int cap);
+
+ boolean isFramebuffer(WebGLFramebuffer framebuffer);
+
+ boolean isProgram(WebGLProgram program);
+
+ boolean isRenderbuffer(WebGLRenderbuffer renderbuffer);
+
+ boolean isShader(WebGLShader shader);
+
+ boolean isTexture(WebGLTexture texture);
+
+ void lineWidth(float width);
+
+ void linkProgram(WebGLProgram program);
+
+ void pixelStorei(int pname, int param);
+
+ void polygonOffset(float factor, float units);
+
+ void readPixels(int x, int y, int width, int height, int format, int type, ArrayBufferView pixels);
+
+ void releaseShaderCompiler();
+
+ void renderbufferStorage(int target, int internalformat, int width, int height);
+
+ void sampleCoverage(float value, boolean invert);
+
+ void scissor(int x, int y, int width, int height);
+
+ void shaderSource(WebGLShader shader, String string);
+
+ void stencilFunc(int func, int ref, int mask);
+
+ void stencilFuncSeparate(int face, int func, int ref, int mask);
+
+ void stencilMask(int mask);
+
+ void stencilMaskSeparate(int face, int mask);
+
+ void stencilOp(int fail, int zfail, int zpass);
+
+ void stencilOpSeparate(int face, int fail, int zfail, int zpass);
+
+ void texImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, ArrayBufferView pixels);
+
+ void texImage2D(int target, int level, int internalformat, int format, int type, ImageData pixels);
+
+ void texImage2D(int target, int level, int internalformat, int format, int type, ImageElement image);
+
+ void texImage2D(int target, int level, int internalformat, int format, int type, CanvasElement canvas);
+
+ void texImage2D(int target, int level, int internalformat, int format, int type, VideoElement video);
+
+ void texParameterf(int target, int pname, float param);
+
+ void texParameteri(int target, int pname, int param);
+
+ void texSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, ArrayBufferView pixels);
+
+ void texSubImage2D(int target, int level, int xoffset, int yoffset, int format, int type, ImageData pixels);
+
+ void texSubImage2D(int target, int level, int xoffset, int yoffset, int format, int type, ImageElement image);
+
+ void texSubImage2D(int target, int level, int xoffset, int yoffset, int format, int type, CanvasElement canvas);
+
+ void texSubImage2D(int target, int level, int xoffset, int yoffset, int format, int type, VideoElement video);
+
+ void uniform1f(WebGLUniformLocation location, float x);
+
+ void uniform1fv(WebGLUniformLocation location, Float32Array v);
+
+ void uniform1i(WebGLUniformLocation location, int x);
+
+ void uniform1iv(WebGLUniformLocation location, Int32Array v);
+
+ void uniform2f(WebGLUniformLocation location, float x, float y);
+
+ void uniform2fv(WebGLUniformLocation location, Float32Array v);
+
+ void uniform2i(WebGLUniformLocation location, int x, int y);
+
+ void uniform2iv(WebGLUniformLocation location, Int32Array v);
+
+ void uniform3f(WebGLUniformLocation location, float x, float y, float z);
+
+ void uniform3fv(WebGLUniformLocation location, Float32Array v);
+
+ void uniform3i(WebGLUniformLocation location, int x, int y, int z);
+
+ void uniform3iv(WebGLUniformLocation location, Int32Array v);
+
+ void uniform4f(WebGLUniformLocation location, float x, float y, float z, float w);
+
+ void uniform4fv(WebGLUniformLocation location, Float32Array v);
+
+ void uniform4i(WebGLUniformLocation location, int x, int y, int z, int w);
+
+ void uniform4iv(WebGLUniformLocation location, Int32Array v);
+
+ void uniformMatrix2fv(WebGLUniformLocation location, boolean transpose, Float32Array array);
+
+ void uniformMatrix3fv(WebGLUniformLocation location, boolean transpose, Float32Array array);
+
+ void uniformMatrix4fv(WebGLUniformLocation location, boolean transpose, Float32Array array);
+
+ void useProgram(WebGLProgram program);
+
+ void validateProgram(WebGLProgram program);
+
+ void vertexAttrib1f(int indx, float x);
+
+ void vertexAttrib1fv(int indx, Float32Array values);
+
+ void vertexAttrib2f(int indx, float x, float y);
+
+ void vertexAttrib2fv(int indx, Float32Array values);
+
+ void vertexAttrib3f(int indx, float x, float y, float z);
+
+ void vertexAttrib3fv(int indx, Float32Array values);
+
+ void vertexAttrib4f(int indx, float x, float y, float z, float w);
+
+ void vertexAttrib4fv(int indx, Float32Array values);
+
+ void vertexAttribPointer(int indx, int size, int type, boolean normalized, int stride, double offset);
+
+ void viewport(int x, int y, int width, int height);
+}
diff --git a/elemental/src/elemental/html/WebGLShader.java b/elemental/src/elemental/html/WebGLShader.java
new file mode 100644
index 0000000..ecd0d82
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLShader.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLShader {
+}
diff --git a/elemental/src/elemental/html/WebGLShaderPrecisionFormat.java b/elemental/src/elemental/html/WebGLShaderPrecisionFormat.java
new file mode 100644
index 0000000..afac55c
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLShaderPrecisionFormat.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLShaderPrecisionFormat {
+
+ int getPrecision();
+
+ int getRangeMax();
+
+ int getRangeMin();
+}
diff --git a/elemental/src/elemental/html/WebGLTexture.java b/elemental/src/elemental/html/WebGLTexture.java
new file mode 100644
index 0000000..71b3c1d
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLTexture.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLTexture {
+}
diff --git a/elemental/src/elemental/html/WebGLUniformLocation.java b/elemental/src/elemental/html/WebGLUniformLocation.java
new file mode 100644
index 0000000..41f26bd
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLUniformLocation.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLUniformLocation {
+}
diff --git a/elemental/src/elemental/html/WebGLVertexArrayObjectOES.java b/elemental/src/elemental/html/WebGLVertexArrayObjectOES.java
new file mode 100644
index 0000000..7d17331
--- /dev/null
+++ b/elemental/src/elemental/html/WebGLVertexArrayObjectOES.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WebGLVertexArrayObjectOES {
+}
diff --git a/elemental/src/elemental/html/WebSocket.java b/elemental/src/elemental/html/WebSocket.java
new file mode 100644
index 0000000..a911aa5
--- /dev/null
+++ b/elemental/src/elemental/html/WebSocket.java
@@ -0,0 +1,219 @@
+/*
+ * 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 elemental.html;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p></p>
+<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>
+ */
+public interface WebSocket extends EventTarget {
+
+ /**
+ * The connection is closed or couldn't be opened.
+ */
+
+ static final int CLOSED = 3;
+
+ /**
+ * The connection is in the process of closing.
+ */
+
+ static final int CLOSING = 2;
+
+ /**
+ * The connection is not yet open.
+ */
+
+ static final int CONNECTING = 0;
+
+ /**
+ * The connection is open and ready to communicate.
+ */
+
+ static final int OPEN = 1;
+
+ String getURL();
+
+
+ /**
+ * 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>
+ 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.
+ */
+ String getBinaryType();
+
+ void setBinaryType(String arg);
+
+
+ /**
+ * 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>
+ */
+ int getBufferedAmount();
+
+
+ /**
+ * The extensions selected by the server. This is currently only the empty string or a list of extensions as negotiated by the connection.
+ */
+ String getExtensions();
+
+
+ /**
+ * 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".
+ */
+ EventListener getOnclose();
+
+ void setOnclose(EventListener arg);
+
+
+ /**
+ * An event listener to be called when an error occurs. This is a simple event named "error".
+ */
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+
+ /**
+ * 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".
+ */
+ EventListener getOnmessage();
+
+ void setOnmessage(EventListener arg);
+
+
+ /**
+ * 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".
+ */
+ EventListener getOnopen();
+
+ void setOnopen(EventListener arg);
+
+
+ /**
+ * 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.
+ */
+ String getProtocol();
+
+
+ /**
+ * 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>
+ */
+ int getReadyState();
+
+
+ /**
+ * The URL as resolved by the constructor. This is always an absolute URL. <strong>Read only.</strong>
+ */
+ String getUrl();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+
+ /**
+ * <p>Closes the WebSocket connection or connection attempt, if any. If the connection is already <code>CLOSED</code>, this method does nothing.</p>
+
+<div id="section_7"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>code</code>
+<span title="">Optional</span>
+</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>
+<span title="">Optional</span>
+</dt> <dd>A human-readable string explaining why the connection is closing. This string must be no longer than 123 UTF-8 characters.</dd>
+</dl>
+</div><div id="section_8"><span id="Exceptions_thrown"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div>
+ */
+ void close();
+
+
+ /**
+ * <p>Closes the WebSocket connection or connection attempt, if any. If the connection is already <code>CLOSED</code>, this method does nothing.</p>
+
+<div id="section_7"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>code</code>
+<span title="">Optional</span>
+</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>
+<span title="">Optional</span>
+</dt> <dd>A human-readable string explaining why the connection is closing. This string must be no longer than 123 UTF-8 characters.</dd>
+</dl>
+</div><div id="section_8"><span id="Exceptions_thrown"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div>
+ */
+ void close(int code);
+
+
+ /**
+ * <p>Closes the WebSocket connection or connection attempt, if any. If the connection is already <code>CLOSED</code>, this method does nothing.</p>
+
+<div id="section_7"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>code</code>
+<span title="">Optional</span>
+</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>
+<span title="">Optional</span>
+</dt> <dd>A human-readable string explaining why the connection is closing. This string must be no longer than 123 UTF-8 characters.</dd>
+</dl>
+</div><div id="section_8"><span id="Exceptions_thrown"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div>
+ */
+ void close(int code, String reason);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+
+ /**
+ * <p>Transmits data to the server over the WebSocket connection.</p>
+
+<div id="section_11"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>data</code></dt> <dd>A text string to send to the server.</dd>
+</dl>
+</div><div id="section_12"><span id="Exceptions_thrown_2"></span><h6 class="editable">Exceptions thrown</h6>
+<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>
+</dl>
+</div><div id="section_13"><span id="Remarks"></span><h6 class="editable">Remarks</h6>
+<div class="geckoVersionNote"> <p>
+</p><div class="geckoVersionHeading">Gecko 6.0 note<div>(Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)
+</div></div>
+<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)
+. 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>
+ data types.</p>
+</div>
+</div>
+ */
+ boolean send(String data);
+}
diff --git a/elemental/src/elemental/html/Window.java b/elemental/src/elemental/html/Window.java
new file mode 100644
index 0000000..075377e
--- /dev/null
+++ b/elemental/src/elemental/html/Window.java
@@ -0,0 +1,670 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.Node;
+import elemental.dom.Element;
+import elemental.util.Indexable;
+import elemental.events.EventTarget;
+import elemental.dom.RequestAnimationFrameCallback;
+import elemental.css.CSSRuleList;
+import elemental.events.EventListener;
+import elemental.dom.TimeoutHandler;
+import elemental.dom.Document;
+import elemental.css.CSSStyleDeclaration;
+import elemental.events.Event;
+
+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;
+
+/**
+ *
+ */
+public interface Window extends EventTarget {
+ void clearOpener();
+
+ static final int PERSISTENT = 1;
+
+ static final int TEMPORARY = 0;
+
+ ApplicationCache getApplicationCache();
+
+ Navigator getClientInformation();
+
+ boolean isClosed();
+
+ Console getConsole();
+
+ Crypto getCrypto();
+
+ String getDefaultStatus();
+
+ void setDefaultStatus(String arg);
+
+ String getDefaultstatus();
+
+ void setDefaultstatus(String arg);
+
+ double getDevicePixelRatio();
+
+ Document getDocument();
+
+ Event getEvent();
+
+ Element getFrameElement();
+
+ Window getFrames();
+
+ History getHistory();
+
+ int getInnerHeight();
+
+ int getInnerWidth();
+
+ int getLength();
+
+ Storage getLocalStorage();
+
+ Location getLocation();
+
+ void setLocation(Location arg);
+
+ BarProp getLocationbar();
+
+ BarProp getMenubar();
+
+ String getName();
+
+ void setName(String arg);
+
+ Navigator getNavigator();
+
+ boolean isOffscreenBuffering();
+
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+ EventListener getOnbeforeunload();
+
+ void setOnbeforeunload(EventListener arg);
+
+ EventListener getOnblur();
+
+ void setOnblur(EventListener arg);
+
+ EventListener getOncanplay();
+
+ void setOncanplay(EventListener arg);
+
+ EventListener getOncanplaythrough();
+
+ void setOncanplaythrough(EventListener arg);
+
+ EventListener getOnchange();
+
+ void setOnchange(EventListener arg);
+
+ EventListener getOnclick();
+
+ void setOnclick(EventListener arg);
+
+ EventListener getOncontextmenu();
+
+ void setOncontextmenu(EventListener arg);
+
+ EventListener getOndblclick();
+
+ void setOndblclick(EventListener arg);
+
+ EventListener getOndevicemotion();
+
+ void setOndevicemotion(EventListener arg);
+
+ EventListener getOndeviceorientation();
+
+ void setOndeviceorientation(EventListener arg);
+
+ EventListener getOndrag();
+
+ void setOndrag(EventListener arg);
+
+ EventListener getOndragend();
+
+ void setOndragend(EventListener arg);
+
+ EventListener getOndragenter();
+
+ void setOndragenter(EventListener arg);
+
+ EventListener getOndragleave();
+
+ void setOndragleave(EventListener arg);
+
+ EventListener getOndragover();
+
+ void setOndragover(EventListener arg);
+
+ EventListener getOndragstart();
+
+ void setOndragstart(EventListener arg);
+
+ EventListener getOndrop();
+
+ void setOndrop(EventListener arg);
+
+ EventListener getOndurationchange();
+
+ void setOndurationchange(EventListener arg);
+
+ EventListener getOnemptied();
+
+ void setOnemptied(EventListener arg);
+
+ EventListener getOnended();
+
+ void setOnended(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnfocus();
+
+ void setOnfocus(EventListener arg);
+
+ EventListener getOnhashchange();
+
+ void setOnhashchange(EventListener arg);
+
+ EventListener getOninput();
+
+ void setOninput(EventListener arg);
+
+ EventListener getOninvalid();
+
+ void setOninvalid(EventListener arg);
+
+ EventListener getOnkeydown();
+
+ void setOnkeydown(EventListener arg);
+
+ EventListener getOnkeypress();
+
+ void setOnkeypress(EventListener arg);
+
+ EventListener getOnkeyup();
+
+ void setOnkeyup(EventListener arg);
+
+ EventListener getOnload();
+
+ void setOnload(EventListener arg);
+
+ EventListener getOnloadeddata();
+
+ void setOnloadeddata(EventListener arg);
+
+ EventListener getOnloadedmetadata();
+
+ void setOnloadedmetadata(EventListener arg);
+
+ EventListener getOnloadstart();
+
+ void setOnloadstart(EventListener arg);
+
+ EventListener getOnmessage();
+
+ void setOnmessage(EventListener arg);
+
+ EventListener getOnmousedown();
+
+ void setOnmousedown(EventListener arg);
+
+ EventListener getOnmousemove();
+
+ void setOnmousemove(EventListener arg);
+
+ EventListener getOnmouseout();
+
+ void setOnmouseout(EventListener arg);
+
+ EventListener getOnmouseover();
+
+ void setOnmouseover(EventListener arg);
+
+ EventListener getOnmouseup();
+
+ void setOnmouseup(EventListener arg);
+
+ EventListener getOnmousewheel();
+
+ void setOnmousewheel(EventListener arg);
+
+ EventListener getOnoffline();
+
+ void setOnoffline(EventListener arg);
+
+ EventListener getOnonline();
+
+ void setOnonline(EventListener arg);
+
+ EventListener getOnpagehide();
+
+ void setOnpagehide(EventListener arg);
+
+ EventListener getOnpageshow();
+
+ void setOnpageshow(EventListener arg);
+
+ EventListener getOnpause();
+
+ void setOnpause(EventListener arg);
+
+ EventListener getOnplay();
+
+ void setOnplay(EventListener arg);
+
+ EventListener getOnplaying();
+
+ void setOnplaying(EventListener arg);
+
+ EventListener getOnpopstate();
+
+ void setOnpopstate(EventListener arg);
+
+ EventListener getOnprogress();
+
+ void setOnprogress(EventListener arg);
+
+ EventListener getOnratechange();
+
+ void setOnratechange(EventListener arg);
+
+ EventListener getOnreset();
+
+ void setOnreset(EventListener arg);
+
+ EventListener getOnresize();
+
+ void setOnresize(EventListener arg);
+
+ EventListener getOnscroll();
+
+ void setOnscroll(EventListener arg);
+
+ EventListener getOnsearch();
+
+ void setOnsearch(EventListener arg);
+
+ EventListener getOnseeked();
+
+ void setOnseeked(EventListener arg);
+
+ EventListener getOnseeking();
+
+ void setOnseeking(EventListener arg);
+
+ EventListener getOnselect();
+
+ void setOnselect(EventListener arg);
+
+ EventListener getOnstalled();
+
+ void setOnstalled(EventListener arg);
+
+ EventListener getOnstorage();
+
+ void setOnstorage(EventListener arg);
+
+ EventListener getOnsubmit();
+
+ void setOnsubmit(EventListener arg);
+
+ EventListener getOnsuspend();
+
+ void setOnsuspend(EventListener arg);
+
+ EventListener getOntimeupdate();
+
+ void setOntimeupdate(EventListener arg);
+
+ EventListener getOntouchcancel();
+
+ void setOntouchcancel(EventListener arg);
+
+ EventListener getOntouchend();
+
+ void setOntouchend(EventListener arg);
+
+ EventListener getOntouchmove();
+
+ void setOntouchmove(EventListener arg);
+
+ EventListener getOntouchstart();
+
+ void setOntouchstart(EventListener arg);
+
+ EventListener getOnunload();
+
+ void setOnunload(EventListener arg);
+
+ EventListener getOnvolumechange();
+
+ void setOnvolumechange(EventListener arg);
+
+ EventListener getOnwaiting();
+
+ void setOnwaiting(EventListener arg);
+
+ EventListener getOnwebkitanimationend();
+
+ void setOnwebkitanimationend(EventListener arg);
+
+ EventListener getOnwebkitanimationiteration();
+
+ void setOnwebkitanimationiteration(EventListener arg);
+
+ EventListener getOnwebkitanimationstart();
+
+ void setOnwebkitanimationstart(EventListener arg);
+
+ EventListener getOnwebkittransitionend();
+
+ void setOnwebkittransitionend(EventListener arg);
+
+ Window getOpener();
+
+ int getOuterHeight();
+
+ int getOuterWidth();
+
+ PagePopupController getPagePopupController();
+
+ int getPageXOffset();
+
+ int getPageYOffset();
+
+ Window getParent();
+
+ Performance getPerformance();
+
+ BarProp getPersonalbar();
+
+ Screen getScreen();
+
+ int getScreenLeft();
+
+ int getScreenTop();
+
+ int getScreenX();
+
+ int getScreenY();
+
+ int getScrollX();
+
+ int getScrollY();
+
+ BarProp getScrollbars();
+
+ Window getSelf();
+
+ Storage getSessionStorage();
+
+ String getStatus();
+
+ void setStatus(String arg);
+
+ BarProp getStatusbar();
+
+ StyleMedia getStyleMedia();
+
+ BarProp getToolbar();
+
+ Window getTop();
+
+ IDBFactory getWebkitIndexedDB();
+
+ NotificationCenter getWebkitNotifications();
+
+ StorageInfo getWebkitStorageInfo();
+
+ Window getWindow();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ void alert(String message);
+
+ String atob(String string);
+
+ void blur();
+
+ String btoa(String string);
+
+ void captureEvents();
+
+ void clearInterval(int handle);
+
+ void clearTimeout(int handle);
+
+ void close();
+
+ boolean confirm(String message);
+
+ boolean dispatchEvent(Event evt);
+
+ boolean find(String string, boolean caseSensitive, boolean backwards, boolean wrap, boolean wholeWord, boolean searchInFrames, boolean showDialog);
+
+ void focus();
+
+ CSSStyleDeclaration getComputedStyle(Element element, String pseudoElement);
+
+ CSSRuleList getMatchedCSSRules(Element element, String pseudoElement);
+
+ Selection getSelection();
+
+ MediaQueryList matchMedia(String query);
+
+ void moveBy(float x, float y);
+
+ void moveTo(float x, float y);
+
+ Window open(String url, String name);
+
+ Window open(String url, String name, String options);
+
+ Database openDatabase(String name, String version, String displayName, int estimatedSize, DatabaseCallback creationCallback);
+
+ Database openDatabase(String name, String version, String displayName, int estimatedSize);
+
+ void postMessage(Object message, String targetOrigin);
+
+ void postMessage(Object message, String targetOrigin, Indexable messagePorts);
+
+ void print();
+
+ String prompt(String message, String defaultValue);
+
+ void releaseEvents();
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ void resizeBy(float x, float y);
+
+ void resizeTo(float width, float height);
+
+ void scroll(int x, int y);
+
+ void scrollBy(int x, int y);
+
+ void scrollTo(int x, int y);
+
+ int setInterval(TimeoutHandler handler, int timeout);
+
+ int setTimeout(TimeoutHandler handler, int timeout);
+
+ Object showModalDialog(String url);
+
+ Object showModalDialog(String url, Object dialogArgs);
+
+ Object showModalDialog(String url, Object dialogArgs, String featureArgs);
+
+ void stop();
+
+ void webkitCancelAnimationFrame(int id);
+
+ void webkitCancelRequestAnimationFrame(int id);
+
+ Point webkitConvertPointFromNodeToPage(Node node, Point p);
+
+ Point webkitConvertPointFromPageToNode(Node node, Point p);
+
+ void webkitPostMessage(Object message, String targetOrigin);
+
+ void webkitPostMessage(Object message, String targetOrigin, Indexable transferList);
+
+ int webkitRequestAnimationFrame(RequestAnimationFrameCallback callback);
+
+ void webkitRequestFileSystem(int type, double size, FileSystemCallback successCallback, ErrorCallback errorCallback);
+
+ void webkitRequestFileSystem(int type, double size, FileSystemCallback successCallback);
+
+ void webkitResolveLocalFileSystemURL(String url, EntryCallback successCallback);
+
+ void webkitResolveLocalFileSystemURL(String url);
+
+ void webkitResolveLocalFileSystemURL(String url, EntryCallback successCallback, ErrorCallback errorCallback);
+
+ AudioElement newAudioElement(String src);
+
+ CSSMatrix newCSSMatrix(String cssValue);
+
+ DOMParser newDOMParser();
+
+ DOMURL newDOMURL();
+
+ DeprecatedPeerConnection newDeprecatedPeerConnection(String serverConfiguration, SignalingCallback signalingCallback);
+
+ EventSource newEventSource(String scriptUrl);
+
+ FileReader newFileReader();
+
+ FileReaderSync newFileReaderSync();
+
+ Float32Array newFloat32Array(int length);
+
+ Float32Array newFloat32Array(IndexableNumber list);
+
+ Float32Array newFloat32Array(ArrayBuffer buffer, int byteOffset, int length);
+
+ Float64Array newFloat64Array(int length);
+
+ Float64Array newFloat64Array(IndexableNumber list);
+
+ Float64Array newFloat64Array(ArrayBuffer buffer, int byteOffset, int length);
+
+ IceCandidate newIceCandidate(String label, String candidateLine);
+
+ Int16Array newInt16Array(int length);
+
+ Int16Array newInt16Array(IndexableNumber list);
+
+ Int16Array newInt16Array(ArrayBuffer buffer, int byteOffset, int length);
+
+ Int32Array newInt32Array(int length);
+
+ Int32Array newInt32Array(IndexableNumber list);
+
+ Int32Array newInt32Array(ArrayBuffer buffer, int byteOffset, int length);
+
+ Int8Array newInt8Array(int length);
+
+ Int8Array newInt8Array(IndexableNumber list);
+
+ Int8Array newInt8Array(ArrayBuffer buffer, int byteOffset, int length);
+
+ MediaController newMediaController();
+
+ MediaStream newMediaStream(MediaStreamTrackList audioTracks, MediaStreamTrackList videoTracks);
+
+ MessageChannel newMessageChannel();
+
+ Notification newNotification(String title, Mappable options);
+
+ OptionElement newOptionElement(String data, String value, boolean defaultSelected, boolean selected);
+
+ PeerConnection00 newPeerConnection00(String serverConfiguration, IceCallback iceCallback);
+
+ SessionDescription newSessionDescription(String sdp);
+
+ ShadowRoot newShadowRoot(Element host);
+
+ SharedWorker newSharedWorker(String scriptURL, String name);
+
+ SpeechGrammar newSpeechGrammar();
+
+ SpeechGrammarList newSpeechGrammarList();
+
+ SpeechRecognition newSpeechRecognition();
+
+ TextTrackCue newTextTrackCue(String id, double startTime, double endTime, String text, String settings, boolean pauseOnExit);
+
+ Uint16Array newUint16Array(int length);
+
+ Uint16Array newUint16Array(IndexableNumber list);
+
+ Uint16Array newUint16Array(ArrayBuffer buffer, int byteOffset, int length);
+
+ Uint32Array newUint32Array(int length);
+
+ Uint32Array newUint32Array(IndexableNumber list);
+
+ Uint32Array newUint32Array(ArrayBuffer buffer, int byteOffset, int length);
+
+ Uint8Array newUint8Array(int length);
+
+ Uint8Array newUint8Array(IndexableNumber list);
+
+ Uint8Array newUint8Array(ArrayBuffer buffer, int byteOffset, int length);
+
+ Uint8ClampedArray newUint8ClampedArray(int length);
+
+ Uint8ClampedArray newUint8ClampedArray(IndexableNumber list);
+
+ Uint8ClampedArray newUint8ClampedArray(ArrayBuffer buffer, int byteOffset, int length);
+
+ Worker newWorker(String scriptUrl);
+
+ XMLHttpRequest newXMLHttpRequest();
+
+ XMLSerializer newXMLSerializer();
+
+ XPathEvaluator newXPathEvaluator();
+
+ XSLTProcessor newXSLTProcessor();
+}
diff --git a/elemental/src/elemental/html/Worker.java b/elemental/src/elemental/html/Worker.java
new file mode 100644
index 0000000..79eff0c
--- /dev/null
+++ b/elemental/src/elemental/html/Worker.java
@@ -0,0 +1,86 @@
+/*
+ * 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 elemental.html;
+import elemental.util.Indexable;
+import elemental.events.EventListener;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+<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>
+<div class="geckoVersionNote">
+<p>
+</p><div class="geckoVersionHeading">Gecko 2.0 note<div>(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+</div></div>
+<p></p>
+<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>
+ object instead.</p>
+</div>
+<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>
+ */
+public interface Worker extends AbstractWorker {
+
+
+ /**
+ * 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.
+ */
+ EventListener getOnmessage();
+
+ void setOnmessage(EventListener arg);
+
+
+ /**
+ * <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>
+
+<div id="section_10"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void postMessage(Object message);
+
+
+ /**
+ * <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>
+
+<div id="section_10"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void postMessage(Object message, Indexable messagePorts);
+
+
+ /**
+ * <p>Immediately terminates the worker. This does not offer the worker an opportunity to finish its operations; it is simply stopped at once.</p>
+<pre>void terminate();
+</pre>
+ */
+ void terminate();
+
+ void webkitPostMessage(Object message);
+
+ void webkitPostMessage(Object message, Indexable messagePorts);
+}
diff --git a/elemental/src/elemental/html/WorkerGlobalScope.java b/elemental/src/elemental/html/WorkerGlobalScope.java
new file mode 100644
index 0000000..9982cbf
--- /dev/null
+++ b/elemental/src/elemental/html/WorkerGlobalScope.java
@@ -0,0 +1,99 @@
+/*
+ * 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 elemental.html;
+import elemental.dom.TimeoutHandler;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WorkerGlobalScope extends EventTarget {
+
+ static final int PERSISTENT = 1;
+
+ static final int TEMPORARY = 0;
+
+ WorkerLocation getLocation();
+
+ WorkerNavigator getNavigator();
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ WorkerGlobalScope getSelf();
+
+ IDBFactory getWebkitIndexedDB();
+
+ NotificationCenter getWebkitNotifications();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ void clearInterval(int handle);
+
+ void clearTimeout(int handle);
+
+ void close();
+
+ boolean dispatchEvent(Event evt);
+
+ void importScripts();
+
+ Database openDatabase(String name, String version, String displayName, int estimatedSize, DatabaseCallback creationCallback);
+
+ Database openDatabase(String name, String version, String displayName, int estimatedSize);
+
+ DatabaseSync openDatabaseSync(String name, String version, String displayName, int estimatedSize, DatabaseCallback creationCallback);
+
+ DatabaseSync openDatabaseSync(String name, String version, String displayName, int estimatedSize);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+ int setInterval(TimeoutHandler handler, int timeout);
+
+ int setTimeout(TimeoutHandler handler, int timeout);
+
+ void webkitRequestFileSystem(int type, double size, FileSystemCallback successCallback, ErrorCallback errorCallback);
+
+ void webkitRequestFileSystem(int type, double size, FileSystemCallback successCallback);
+
+ void webkitRequestFileSystem(int type, double size);
+
+ DOMFileSystemSync webkitRequestFileSystemSync(int type, double size);
+
+ EntrySync webkitResolveLocalFileSystemSyncURL(String url);
+
+ void webkitResolveLocalFileSystemURL(String url, EntryCallback successCallback);
+
+ void webkitResolveLocalFileSystemURL(String url);
+
+ void webkitResolveLocalFileSystemURL(String url, EntryCallback successCallback, ErrorCallback errorCallback);
+}
diff --git a/elemental/src/elemental/html/WorkerLocation.java b/elemental/src/elemental/html/WorkerLocation.java
new file mode 100644
index 0000000..d2d97c1
--- /dev/null
+++ b/elemental/src/elemental/html/WorkerLocation.java
@@ -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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WorkerLocation {
+
+ String getHash();
+
+ String getHost();
+
+ String getHostname();
+
+ String getHref();
+
+ String getPathname();
+
+ String getPort();
+
+ String getProtocol();
+
+ String getSearch();
+}
diff --git a/elemental/src/elemental/html/WorkerNavigator.java b/elemental/src/elemental/html/WorkerNavigator.java
new file mode 100644
index 0000000..a0b57a8
--- /dev/null
+++ b/elemental/src/elemental/html/WorkerNavigator.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.html;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface WorkerNavigator {
+
+ String getAppName();
+
+ String getAppVersion();
+
+ boolean isOnLine();
+
+ String getPlatform();
+
+ String getUserAgent();
+}
diff --git a/elemental/src/elemental/js/JsBrowser.java b/elemental/src/elemental/js/JsBrowser.java
new file mode 100755
index 0000000..553b10c
--- /dev/null
+++ b/elemental/src/elemental/js/JsBrowser.java
@@ -0,0 +1,240 @@
+/*
+ * Copyright 2010 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 elemental.js;
+
+import com.google.gwt.core.client.GWT;
+
+import elemental.client.Browser;
+import elemental.html.Navigator;
+import elemental.js.dom.JsDocument;
+import elemental.js.html.JsWindow;
+
+/**
+ * JavaScript native implementation of {@link elemental.client.Browser}.
+ */
+public class JsBrowser {
+ /**
+ * A {@link Browser.Info} implementation for when the browser is known to be
+ * Gecko at compile time.
+ */
+ @SuppressWarnings("unused")
+ private static class InfoWhenKnownGecko extends InfoWhenUnknown {
+ @Override
+ public boolean isGecko() {
+ return true;
+ }
+
+ @Override
+ public boolean isSupported() {
+ return true;
+ }
+
+ @Override
+ public boolean isWebKit() {
+ return false;
+ }
+ }
+
+ /**
+ * A {@link Browser.Info} implementation for when the browser is known to be
+ * Unsupported at compile time.
+ */
+ @SuppressWarnings("unused")
+ private static class InfoWhenKnownUnsupported extends InfoWhenUnknown {
+ @Override
+ public boolean isGecko() {
+ return false;
+ }
+
+ @Override
+ public boolean isSupported() {
+ return false;
+ }
+
+ @Override
+ public boolean isWebKit() {
+ return false;
+ }
+ }
+
+ /**
+ * A {@link Browser.Info} implementation for when the browser is known to be
+ * WebKit at compile time.
+ */
+ @SuppressWarnings("unused")
+ private static class InfoWhenKnownWebKit extends InfoWhenUnknown {
+ @Override
+ public boolean isGecko() {
+ return false;
+ }
+
+ @Override
+ public boolean isSupported() {
+ return true;
+ }
+
+ @Override
+ public boolean isWebKit() {
+ return true;
+ }
+ }
+
+ /**
+ * A {@link Browser.Info} implementation for when the browser is not known
+ * until runtime.
+ *
+ * <p>
+ * Careful Captain! All those static fields are intentional. In order to
+ * ensure good dead stripping of the entire InfoWhen class hierarchy, the
+ * instance returned by {@link JsBrowser#getInfo()} must not be aliased, so it
+ * instead returns a fly-weight instance referencing static fields.
+ * </p>
+ */
+ private static class InfoWhenUnknown implements Browser.Info {
+ private native static double getGeckoVersion(String userAgent) /*-{
+ var r = / rv\:(\d+\.\d+)/.exec(userAgent);
+ return r ? parseFloat(r[1]) : 0.0;
+ }-*/;
+
+ private native static String getProduct(Navigator nav) /*-{
+ return nav.product;
+ }-*/;
+
+ private native static double getWebKitVersion(String userAgent) /*-{
+ var r = /WebKit\/(\d+\.\d+)/.exec(userAgent);
+ return r ? parseFloat(r[1]) : 0.0;
+ }-*/;
+
+ private static boolean browserDetected;
+
+ private static boolean platformDetected;
+
+ private static boolean isWebKit;
+
+ private static boolean isGecko;
+
+ private static boolean isMac;
+
+ private static boolean isWindows;
+
+ private static boolean isLinux;
+
+ private void ensurePlatformDetected() {
+ if (!platformDetected) {
+ platformDetected = true;
+ final String userAgent = getWindow().getNavigator().getUserAgent();
+ isWindows = userAgent.indexOf("Win") >= 0;
+ if (isWindows) {
+ return;
+ }
+
+ isMac = userAgent.indexOf("Mac") >= 0;
+ if (isMac) {
+ return;
+ }
+
+ isLinux = userAgent.indexOf("Linux") >= 0;
+ }
+ }
+
+ private void ensureBrowserDetected() {
+ if (!browserDetected) {
+ browserDetected = true;
+ final Navigator nav = getWindow().getNavigator();
+ final String ua = nav.getUserAgent();
+ boolean isWebKitBased = ua.indexOf("WebKit") >= 0;
+ if (isWebKitBased) {
+ isWebKit = getWebKitVersion(ua) >= SUPPORTED_WEBKIT_VERSION;
+ return;
+ }
+
+ assert !isWebKitBased;
+ isGecko = getProduct(nav).equals("Gecko") && getGeckoVersion(ua) >= SUPPORTED_GECKO_VERSION;
+ }
+ }
+
+ @Override
+ public boolean isGecko() {
+ ensureBrowserDetected();
+ return isGecko;
+ }
+
+ @Override
+ public boolean isSupported() {
+ ensureBrowserDetected();
+ return isGecko || isWebKit;
+ }
+
+ @Override
+ public boolean isWebKit() {
+ ensureBrowserDetected();
+ return isWebKit;
+ }
+
+ @Override
+ public boolean isLinux() {
+ ensurePlatformDetected();
+ return isLinux;
+ }
+
+ @Override
+ public boolean isMac() {
+ ensurePlatformDetected();
+ return isMac;
+ }
+
+ public boolean isWindows() {
+ ensurePlatformDetected();
+ return isWindows;
+ }
+ }
+
+ /**
+ * The minimum version of WebKit that is supported.
+ *
+ * This equates to >= Safari 5.0.2
+ */
+ private static final double SUPPORTED_WEBKIT_VERSION = 533.18;
+
+ /**
+ * The minimum version of Gecko that is supported.
+ *
+ * This equates to >= Firefox 4.0
+ */
+ private static final double SUPPORTED_GECKO_VERSION = 2.0;
+
+ /**
+ * Gets the document within which this script is running.
+ */
+ public static native JsDocument getDocument() /*-{
+ return $doc;
+ }-*/;
+
+ public static Browser.Info getInfo() {
+ return GWT.create(InfoWhenUnknown.class);
+ }
+
+ /**
+ * Gets the window within which this script is running.
+ */
+ public static native JsWindow getWindow() /*-{
+ return $wnd;
+ }-*/;
+
+ // Non-instantiable.
+ private JsBrowser() {
+ }
+}
diff --git a/elemental/src/elemental/js/css/JsCSSCharsetRule.java b/elemental/src/elemental/js/css/JsCSSCharsetRule.java
new file mode 100644
index 0000000..bd0280f
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSCharsetRule.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSCharsetRule;
+import elemental.css.CSSRule;
+
+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 JsCSSCharsetRule extends JsCSSRule implements CSSCharsetRule {
+ protected JsCSSCharsetRule() {}
+
+ public final native String getEncoding() /*-{
+ return this.encoding;
+ }-*/;
+
+ public final native void setEncoding(String param_encoding) /*-{
+ this.encoding = param_encoding;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSFontFaceRule.java b/elemental/src/elemental/js/css/JsCSSFontFaceRule.java
new file mode 100644
index 0000000..3225e5a
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSFontFaceRule.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSFontFaceRule;
+import elemental.css.CSSStyleDeclaration;
+import elemental.css.CSSRule;
+
+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 JsCSSFontFaceRule extends JsCSSRule implements CSSFontFaceRule {
+ protected JsCSSFontFaceRule() {}
+
+ public final native JsCSSStyleDeclaration getStyle() /*-{
+ return this.style;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSImportRule.java b/elemental/src/elemental/js/css/JsCSSImportRule.java
new file mode 100644
index 0000000..b89920e
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSImportRule.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.js.css;
+import elemental.js.stylesheets.JsMediaList;
+import elemental.css.CSSImportRule;
+import elemental.css.CSSStyleSheet;
+import elemental.stylesheets.MediaList;
+import elemental.css.CSSRule;
+
+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 JsCSSImportRule extends JsCSSRule implements CSSImportRule {
+ protected JsCSSImportRule() {}
+
+ public final native String getHref() /*-{
+ return this.href;
+ }-*/;
+
+ public final native JsMediaList getMedia() /*-{
+ return this.media;
+ }-*/;
+
+ public final native JsCSSStyleSheet getStyleSheet() /*-{
+ return this.styleSheet;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSKeyframeRule.java b/elemental/src/elemental/js/css/JsCSSKeyframeRule.java
new file mode 100644
index 0000000..cdf32b6
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSKeyframeRule.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSKeyframeRule;
+import elemental.css.CSSStyleDeclaration;
+import elemental.css.CSSRule;
+
+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 JsCSSKeyframeRule extends JsCSSRule implements CSSKeyframeRule {
+ protected JsCSSKeyframeRule() {}
+
+ public final native String getKeyText() /*-{
+ return this.keyText;
+ }-*/;
+
+ public final native void setKeyText(String param_keyText) /*-{
+ this.keyText = param_keyText;
+ }-*/;
+
+ public final native JsCSSStyleDeclaration getStyle() /*-{
+ return this.style;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSKeyframesRule.java b/elemental/src/elemental/js/css/JsCSSKeyframesRule.java
new file mode 100644
index 0000000..33f18e9
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSKeyframesRule.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSKeyframesRule;
+import elemental.css.CSSRule;
+import elemental.css.CSSKeyframeRule;
+import elemental.css.CSSRuleList;
+
+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 JsCSSKeyframesRule extends JsCSSRule implements CSSKeyframesRule {
+ protected JsCSSKeyframesRule() {}
+
+ public final native JsCSSRuleList getCssRules() /*-{
+ return this.cssRules;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native void deleteRule(String key) /*-{
+ this.deleteRule(key);
+ }-*/;
+
+ public final native JsCSSKeyframeRule findRule(String key) /*-{
+ return this.findRule(key);
+ }-*/;
+
+ public final native void insertRule(String rule) /*-{
+ this.insertRule(rule);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSMatrix.java b/elemental/src/elemental/js/css/JsCSSMatrix.java
new file mode 100644
index 0000000..1546715
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSMatrix.java
@@ -0,0 +1,251 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSMatrix;
+
+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 JsCSSMatrix extends JsElementalMixinBase implements CSSMatrix {
+ protected JsCSSMatrix() {}
+
+ public final native double getA() /*-{
+ return this.a;
+ }-*/;
+
+ public final native void setA(double param_a) /*-{
+ this.a = param_a;
+ }-*/;
+
+ public final native double getB() /*-{
+ return this.b;
+ }-*/;
+
+ public final native void setB(double param_b) /*-{
+ this.b = param_b;
+ }-*/;
+
+ public final native double getC() /*-{
+ return this.c;
+ }-*/;
+
+ public final native void setC(double param_c) /*-{
+ this.c = param_c;
+ }-*/;
+
+ public final native double getD() /*-{
+ return this.d;
+ }-*/;
+
+ public final native void setD(double param_d) /*-{
+ this.d = param_d;
+ }-*/;
+
+ public final native double getE() /*-{
+ return this.e;
+ }-*/;
+
+ public final native void setE(double param_e) /*-{
+ this.e = param_e;
+ }-*/;
+
+ public final native double getF() /*-{
+ return this.f;
+ }-*/;
+
+ public final native void setF(double param_f) /*-{
+ this.f = param_f;
+ }-*/;
+
+ public final native double getM11() /*-{
+ return this.m11;
+ }-*/;
+
+ public final native void setM11(double param_m11) /*-{
+ this.m11 = param_m11;
+ }-*/;
+
+ public final native double getM12() /*-{
+ return this.m12;
+ }-*/;
+
+ public final native void setM12(double param_m12) /*-{
+ this.m12 = param_m12;
+ }-*/;
+
+ public final native double getM13() /*-{
+ return this.m13;
+ }-*/;
+
+ public final native void setM13(double param_m13) /*-{
+ this.m13 = param_m13;
+ }-*/;
+
+ public final native double getM14() /*-{
+ return this.m14;
+ }-*/;
+
+ public final native void setM14(double param_m14) /*-{
+ this.m14 = param_m14;
+ }-*/;
+
+ public final native double getM21() /*-{
+ return this.m21;
+ }-*/;
+
+ public final native void setM21(double param_m21) /*-{
+ this.m21 = param_m21;
+ }-*/;
+
+ public final native double getM22() /*-{
+ return this.m22;
+ }-*/;
+
+ public final native void setM22(double param_m22) /*-{
+ this.m22 = param_m22;
+ }-*/;
+
+ public final native double getM23() /*-{
+ return this.m23;
+ }-*/;
+
+ public final native void setM23(double param_m23) /*-{
+ this.m23 = param_m23;
+ }-*/;
+
+ public final native double getM24() /*-{
+ return this.m24;
+ }-*/;
+
+ public final native void setM24(double param_m24) /*-{
+ this.m24 = param_m24;
+ }-*/;
+
+ public final native double getM31() /*-{
+ return this.m31;
+ }-*/;
+
+ public final native void setM31(double param_m31) /*-{
+ this.m31 = param_m31;
+ }-*/;
+
+ public final native double getM32() /*-{
+ return this.m32;
+ }-*/;
+
+ public final native void setM32(double param_m32) /*-{
+ this.m32 = param_m32;
+ }-*/;
+
+ public final native double getM33() /*-{
+ return this.m33;
+ }-*/;
+
+ public final native void setM33(double param_m33) /*-{
+ this.m33 = param_m33;
+ }-*/;
+
+ public final native double getM34() /*-{
+ return this.m34;
+ }-*/;
+
+ public final native void setM34(double param_m34) /*-{
+ this.m34 = param_m34;
+ }-*/;
+
+ public final native double getM41() /*-{
+ return this.m41;
+ }-*/;
+
+ public final native void setM41(double param_m41) /*-{
+ this.m41 = param_m41;
+ }-*/;
+
+ public final native double getM42() /*-{
+ return this.m42;
+ }-*/;
+
+ public final native void setM42(double param_m42) /*-{
+ this.m42 = param_m42;
+ }-*/;
+
+ public final native double getM43() /*-{
+ return this.m43;
+ }-*/;
+
+ public final native void setM43(double param_m43) /*-{
+ this.m43 = param_m43;
+ }-*/;
+
+ public final native double getM44() /*-{
+ return this.m44;
+ }-*/;
+
+ public final native void setM44(double param_m44) /*-{
+ this.m44 = param_m44;
+ }-*/;
+
+ public final native JsCSSMatrix inverse() /*-{
+ return this.inverse();
+ }-*/;
+
+ public final native JsCSSMatrix multiply(CSSMatrix secondMatrix) /*-{
+ return this.multiply(secondMatrix);
+ }-*/;
+
+ public final native JsCSSMatrix rotate(double rotX, double rotY, double rotZ) /*-{
+ return this.rotate(rotX, rotY, rotZ);
+ }-*/;
+
+ public final native JsCSSMatrix rotateAxisAngle(double x, double y, double z, double angle) /*-{
+ return this.rotateAxisAngle(x, y, z, angle);
+ }-*/;
+
+ public final native JsCSSMatrix scale(double scaleX, double scaleY, double scaleZ) /*-{
+ return this.scale(scaleX, scaleY, scaleZ);
+ }-*/;
+
+ public final native void setMatrixValue(String string) /*-{
+ this.setMatrixValue(string);
+ }-*/;
+
+ public final native JsCSSMatrix skewX(double angle) /*-{
+ return this.skewX(angle);
+ }-*/;
+
+ public final native JsCSSMatrix skewY(double angle) /*-{
+ return this.skewY(angle);
+ }-*/;
+
+ public final native JsCSSMatrix translate(double x, double y, double z) /*-{
+ return this.translate(x, y, z);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSMediaRule.java b/elemental/src/elemental/js/css/JsCSSMediaRule.java
new file mode 100644
index 0000000..81dd1d6
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSMediaRule.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.js.css;
+import elemental.js.stylesheets.JsMediaList;
+import elemental.css.CSSRule;
+import elemental.stylesheets.MediaList;
+import elemental.css.CSSMediaRule;
+import elemental.css.CSSRuleList;
+
+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 JsCSSMediaRule extends JsCSSRule implements CSSMediaRule {
+ protected JsCSSMediaRule() {}
+
+ public final native JsCSSRuleList getCssRules() /*-{
+ return this.cssRules;
+ }-*/;
+
+ public final native JsMediaList getMedia() /*-{
+ return this.media;
+ }-*/;
+
+ public final native void deleteRule(int index) /*-{
+ this.deleteRule(index);
+ }-*/;
+
+ public final native int insertRule(String rule, int index) /*-{
+ return this.insertRule(rule, index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSPageRule.java b/elemental/src/elemental/js/css/JsCSSPageRule.java
new file mode 100644
index 0000000..687ed81
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSPageRule.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSStyleDeclaration;
+import elemental.css.CSSPageRule;
+import elemental.css.CSSRule;
+
+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 JsCSSPageRule extends JsCSSRule implements CSSPageRule {
+ protected JsCSSPageRule() {}
+
+ public final native String getSelectorText() /*-{
+ return this.selectorText;
+ }-*/;
+
+ public final native void setSelectorText(String param_selectorText) /*-{
+ this.selectorText = param_selectorText;
+ }-*/;
+
+ public final native JsCSSStyleDeclaration getStyle() /*-{
+ return this.style;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSPrimitiveValue.java b/elemental/src/elemental/js/css/JsCSSPrimitiveValue.java
new file mode 100644
index 0000000..7c35766
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSPrimitiveValue.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.Counter;
+import elemental.css.RGBColor;
+import elemental.css.CSSValue;
+import elemental.css.CSSPrimitiveValue;
+import elemental.css.Rect;
+
+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 JsCSSPrimitiveValue extends JsCSSValue implements CSSPrimitiveValue {
+ protected JsCSSPrimitiveValue() {}
+
+ public final native int getPrimitiveType() /*-{
+ return this.primitiveType;
+ }-*/;
+
+ public final native JsCounter getCounterValue() /*-{
+ return this.getCounterValue();
+ }-*/;
+
+ public final native float getFloatValue(int unitType) /*-{
+ return this.getFloatValue(unitType);
+ }-*/;
+
+ public final native JsRGBColor getRGBColorValue() /*-{
+ return this.getRGBColorValue();
+ }-*/;
+
+ public final native JsRect getRectValue() /*-{
+ return this.getRectValue();
+ }-*/;
+
+ public final native String getStringValue() /*-{
+ return this.getStringValue();
+ }-*/;
+
+ public final native void setFloatValue(int unitType, float floatValue) /*-{
+ this.setFloatValue(unitType, floatValue);
+ }-*/;
+
+ public final native void setStringValue(int stringType, String stringValue) /*-{
+ this.setStringValue(stringType, stringValue);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSRule.java b/elemental/src/elemental/js/css/JsCSSRule.java
new file mode 100644
index 0000000..a17f2e6
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSRule.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSStyleSheet;
+import elemental.css.CSSRule;
+
+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 JsCSSRule extends JsElementalMixinBase implements CSSRule {
+ protected JsCSSRule() {}
+
+ public final native String getCssText() /*-{
+ return this.cssText;
+ }-*/;
+
+ public final native void setCssText(String param_cssText) /*-{
+ this.cssText = param_cssText;
+ }-*/;
+
+ public final native JsCSSRule getParentRule() /*-{
+ return this.parentRule;
+ }-*/;
+
+ public final native JsCSSStyleSheet getParentStyleSheet() /*-{
+ return this.parentStyleSheet;
+ }-*/;
+
+ public final native int getType() /*-{
+ return this.type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSRuleList.java b/elemental/src/elemental/js/css/JsCSSRuleList.java
new file mode 100644
index 0000000..b7baee9
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSRuleList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSRuleList;
+import elemental.css.CSSRule;
+
+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 JsCSSRuleList extends JsElementalMixinBase implements CSSRuleList {
+ protected JsCSSRuleList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsCSSRule item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSStyleDeclaration.java b/elemental/src/elemental/js/css/JsCSSStyleDeclaration.java
new file mode 100644
index 0000000..772ca07
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSStyleDeclaration.java
@@ -0,0 +1,1129 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSValue;
+import elemental.css.CSSStyleDeclaration;
+import elemental.css.CSSRule;
+
+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 JsCSSStyleDeclaration extends JsElementalMixinBase implements CSSStyleDeclaration {
+ protected JsCSSStyleDeclaration() {}
+
+ public final native String getCssText() /*-{
+ return this.cssText;
+ }-*/;
+
+ public final native void setCssText(String param_cssText) /*-{
+ this.cssText = param_cssText;
+ }-*/;
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsCSSRule getParentRule() /*-{
+ return this.parentRule;
+ }-*/;
+
+ public final native JsCSSValue getPropertyCSSValue(String propertyName) /*-{
+ return this.getPropertyCSSValue(propertyName);
+ }-*/;
+
+ public final native String getPropertyPriority(String propertyName) /*-{
+ return this.getPropertyPriority(propertyName);
+ }-*/;
+
+ public final native String getPropertyShorthand(String propertyName) /*-{
+ return this.getPropertyShorthand(propertyName);
+ }-*/;
+
+ public final native String getPropertyValue(String propertyName) /*-{
+ return this.getPropertyValue(propertyName);
+ }-*/;
+
+ public final native boolean isPropertyImplicit(String propertyName) /*-{
+ return this.isPropertyImplicit(propertyName);
+ }-*/;
+
+ public final native String item(int index) /*-{
+ return this.item(index);
+ }-*/;
+
+ public final native String removeProperty(String propertyName) /*-{
+ return this.removeProperty(propertyName);
+ }-*/;
+
+ public final native void setProperty(String propertyName, String value) /*-{
+ this.setProperty(propertyName, value);
+ }-*/;
+
+ public final native void setProperty(String propertyName, String value, String priority) /*-{
+ this.setProperty(propertyName, value, priority);
+ }-*/;
+
+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/src/elemental/js/css/JsCSSStyleRule.java b/elemental/src/elemental/js/css/JsCSSStyleRule.java
new file mode 100644
index 0000000..66ba8b3
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSStyleRule.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSStyleDeclaration;
+import elemental.css.CSSStyleRule;
+import elemental.css.CSSRule;
+
+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 JsCSSStyleRule extends JsCSSRule implements CSSStyleRule {
+ protected JsCSSStyleRule() {}
+
+ public final native String getSelectorText() /*-{
+ return this.selectorText;
+ }-*/;
+
+ public final native void setSelectorText(String param_selectorText) /*-{
+ this.selectorText = param_selectorText;
+ }-*/;
+
+ public final native JsCSSStyleDeclaration getStyle() /*-{
+ return this.style;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSStyleSheet.java b/elemental/src/elemental/js/css/JsCSSStyleSheet.java
new file mode 100644
index 0000000..b0b0a46
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSStyleSheet.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.js.css;
+import elemental.js.stylesheets.JsStyleSheet;
+import elemental.stylesheets.StyleSheet;
+import elemental.css.CSSRule;
+import elemental.css.CSSStyleSheet;
+import elemental.css.CSSRuleList;
+
+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 JsCSSStyleSheet extends JsStyleSheet implements CSSStyleSheet {
+ protected JsCSSStyleSheet() {}
+
+ public final native JsCSSRuleList getCssRules() /*-{
+ return this.cssRules;
+ }-*/;
+
+ public final native JsCSSRule getOwnerRule() /*-{
+ return this.ownerRule;
+ }-*/;
+
+ public final native JsCSSRuleList getRules() /*-{
+ return this.rules;
+ }-*/;
+
+ public final native int addRule(String selector, String style) /*-{
+ return this.addRule(selector, style);
+ }-*/;
+
+ public final native int addRule(String selector, String style, int index) /*-{
+ return this.addRule(selector, style, index);
+ }-*/;
+
+ public final native void deleteRule(int index) /*-{
+ this.deleteRule(index);
+ }-*/;
+
+ public final native int insertRule(String rule, int index) /*-{
+ return this.insertRule(rule, index);
+ }-*/;
+
+ public final native void removeRule(int index) /*-{
+ this.removeRule(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSTransformValue.java b/elemental/src/elemental/js/css/JsCSSTransformValue.java
new file mode 100644
index 0000000..35b7929
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSTransformValue.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSTransformValue;
+import elemental.css.CSSValueList;
+
+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 JsCSSTransformValue extends JsCSSValueList implements CSSTransformValue {
+ protected JsCSSTransformValue() {}
+
+ public final native int getOperationType() /*-{
+ return this.operationType;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSUnknownRule.java b/elemental/src/elemental/js/css/JsCSSUnknownRule.java
new file mode 100644
index 0000000..0679e3f
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSUnknownRule.java
@@ -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 elemental.js.css;
+import elemental.css.CSSUnknownRule;
+import elemental.css.CSSRule;
+
+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 JsCSSUnknownRule extends JsCSSRule implements CSSUnknownRule {
+ protected JsCSSUnknownRule() {}
+}
diff --git a/elemental/src/elemental/js/css/JsCSSValue.java b/elemental/src/elemental/js/css/JsCSSValue.java
new file mode 100644
index 0000000..149ea86
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSValue.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSValue;
+
+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 JsCSSValue extends JsElementalMixinBase implements CSSValue {
+ protected JsCSSValue() {}
+
+ public final native String getCssText() /*-{
+ return this.cssText;
+ }-*/;
+
+ public final native void setCssText(String param_cssText) /*-{
+ this.cssText = param_cssText;
+ }-*/;
+
+ public final native int getCssValueType() /*-{
+ return this.cssValueType;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCSSValueList.java b/elemental/src/elemental/js/css/JsCSSValueList.java
new file mode 100644
index 0000000..8b9fbec
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCSSValueList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSValueList;
+import elemental.css.CSSValue;
+
+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 JsCSSValueList extends JsCSSValue implements CSSValueList {
+ protected JsCSSValueList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsCSSValue item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsCounter.java b/elemental/src/elemental/js/css/JsCounter.java
new file mode 100644
index 0000000..d39a583
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsCounter.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.Counter;
+
+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 JsCounter extends JsElementalMixinBase implements Counter {
+ protected JsCounter() {}
+
+ public final native String getIdentifier() /*-{
+ return this.identifier;
+ }-*/;
+
+ public final native String getListStyle() /*-{
+ return this.listStyle;
+ }-*/;
+
+ public final native String getSeparator() /*-{
+ return this.separator;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsRGBColor.java b/elemental/src/elemental/js/css/JsRGBColor.java
new file mode 100644
index 0000000..a972271
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsRGBColor.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSPrimitiveValue;
+import elemental.css.RGBColor;
+
+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 JsRGBColor extends JsElementalMixinBase implements RGBColor {
+ protected JsRGBColor() {}
+
+ public final native JsCSSPrimitiveValue getBlue() /*-{
+ return this.blue;
+ }-*/;
+
+ public final native JsCSSPrimitiveValue getGreen() /*-{
+ return this.green;
+ }-*/;
+
+ public final native JsCSSPrimitiveValue getRed() /*-{
+ return this.red;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsRect.java b/elemental/src/elemental/js/css/JsRect.java
new file mode 100644
index 0000000..cb2e305
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsRect.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.CSSPrimitiveValue;
+import elemental.css.Rect;
+
+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 JsRect extends JsElementalMixinBase implements Rect {
+ protected JsRect() {}
+
+ public final native JsCSSPrimitiveValue getBottom() /*-{
+ return this.bottom;
+ }-*/;
+
+ public final native JsCSSPrimitiveValue getLeft() /*-{
+ return this.left;
+ }-*/;
+
+ public final native JsCSSPrimitiveValue getRight() /*-{
+ return this.right;
+ }-*/;
+
+ public final native JsCSSPrimitiveValue getTop() /*-{
+ return this.top;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsWebKitCSSFilterValue.java b/elemental/src/elemental/js/css/JsWebKitCSSFilterValue.java
new file mode 100644
index 0000000..df8d05a
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsWebKitCSSFilterValue.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.WebKitCSSFilterValue;
+import elemental.css.CSSValueList;
+
+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 JsWebKitCSSFilterValue extends JsCSSValueList implements WebKitCSSFilterValue {
+ protected JsWebKitCSSFilterValue() {}
+
+ public final native int getOperationType() /*-{
+ return this.operationType;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/css/JsWebKitCSSRegionRule.java b/elemental/src/elemental/js/css/JsWebKitCSSRegionRule.java
new file mode 100644
index 0000000..3347023
--- /dev/null
+++ b/elemental/src/elemental/js/css/JsWebKitCSSRegionRule.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.css;
+import elemental.css.WebKitCSSRegionRule;
+import elemental.css.CSSRule;
+import elemental.css.CSSRuleList;
+
+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 JsWebKitCSSRegionRule extends JsCSSRule implements WebKitCSSRegionRule {
+ protected JsWebKitCSSRegionRule() {}
+
+ public final native JsCSSRuleList getCssRules() /*-{
+ return this.cssRules;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsAttr.java b/elemental/src/elemental/js/dom/JsAttr.java
new file mode 100644
index 0000000..e51be97
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsAttr.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.Element;
+import elemental.dom.Attr;
+
+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 JsAttr extends JsNode implements Attr {
+ protected JsAttr() {}
+
+ public final native boolean isId() /*-{
+ return this.isId;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native JsElement getOwnerElement() /*-{
+ return this.ownerElement;
+ }-*/;
+
+ public final native boolean isSpecified() /*-{
+ return this.specified;
+ }-*/;
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsCDATASection.java b/elemental/src/elemental/js/dom/JsCDATASection.java
new file mode 100644
index 0000000..8f148cf
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsCDATASection.java
@@ -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 elemental.js.dom;
+import elemental.dom.Text;
+import elemental.dom.CDATASection;
+
+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 JsCDATASection extends JsText implements CDATASection {
+ protected JsCDATASection() {}
+}
diff --git a/elemental/src/elemental/js/dom/JsCharacterData.java b/elemental/src/elemental/js/dom/JsCharacterData.java
new file mode 100644
index 0000000..927c9d9
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsCharacterData.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.CharacterData;
+
+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 JsCharacterData extends JsNode implements CharacterData {
+ protected JsCharacterData() {}
+
+ public final native String getData() /*-{
+ return this.data;
+ }-*/;
+
+ public final native void setData(String param_data) /*-{
+ this.data = param_data;
+ }-*/;
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void appendData(String data) /*-{
+ this.appendData(data);
+ }-*/;
+
+ public final native void deleteData(int offset, int length) /*-{
+ this.deleteData(offset, length);
+ }-*/;
+
+ public final native void insertData(int offset, String data) /*-{
+ this.insertData(offset, data);
+ }-*/;
+
+ public final native void replaceData(int offset, int length, String data) /*-{
+ this.replaceData(offset, length, data);
+ }-*/;
+
+ public final native String substringData(int offset, int length) /*-{
+ return this.substringData(offset, length);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsClipboard.java b/elemental/src/elemental/js/dom/JsClipboard.java
new file mode 100644
index 0000000..593229c
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsClipboard.java
@@ -0,0 +1,94 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.DataTransferItemList;
+import elemental.js.html.JsImageElement;
+import elemental.util.Indexable;
+import elemental.js.html.JsFileList;
+import elemental.html.FileList;
+import elemental.js.util.JsIndexable;
+import elemental.dom.Clipboard;
+import elemental.html.ImageElement;
+
+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 JsClipboard extends JsElementalMixinBase implements Clipboard {
+ protected JsClipboard() {}
+
+ public final native String getDropEffect() /*-{
+ return this.dropEffect;
+ }-*/;
+
+ public final native void setDropEffect(String param_dropEffect) /*-{
+ this.dropEffect = param_dropEffect;
+ }-*/;
+
+ public final native String getEffectAllowed() /*-{
+ return this.effectAllowed;
+ }-*/;
+
+ public final native void setEffectAllowed(String param_effectAllowed) /*-{
+ this.effectAllowed = param_effectAllowed;
+ }-*/;
+
+ public final native JsFileList getFiles() /*-{
+ return this.files;
+ }-*/;
+
+ public final native JsDataTransferItemList getItems() /*-{
+ return this.items;
+ }-*/;
+
+ public final native JsIndexable getTypes() /*-{
+ return this.types;
+ }-*/;
+
+ public final native void clearData() /*-{
+ this.clearData();
+ }-*/;
+
+ public final native void clearData(String type) /*-{
+ this.clearData(type);
+ }-*/;
+
+ public final native String getData(String type) /*-{
+ return this.getData(type);
+ }-*/;
+
+ public final native boolean setData(String type, String data) /*-{
+ return this.setData(type, data);
+ }-*/;
+
+ public final native void setDragImage(ImageElement image, int x, int y) /*-{
+ this.setDragImage(image, x, y);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsComment.java b/elemental/src/elemental/js/dom/JsComment.java
new file mode 100644
index 0000000..5f114ee
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsComment.java
@@ -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 elemental.js.dom;
+import elemental.dom.Comment;
+import elemental.dom.CharacterData;
+
+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 JsComment extends JsCharacterData implements Comment {
+ protected JsComment() {}
+}
diff --git a/elemental/src/elemental/js/dom/JsCoordinates.java b/elemental/src/elemental/js/dom/JsCoordinates.java
new file mode 100644
index 0000000..760c0c8
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsCoordinates.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Coordinates;
+
+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 JsCoordinates extends JsElementalMixinBase implements Coordinates {
+ protected JsCoordinates() {}
+
+ public final native double getAccuracy() /*-{
+ return this.accuracy;
+ }-*/;
+
+ public final native double getAltitude() /*-{
+ return this.altitude;
+ }-*/;
+
+ public final native double getAltitudeAccuracy() /*-{
+ return this.altitudeAccuracy;
+ }-*/;
+
+ public final native double getHeading() /*-{
+ return this.heading;
+ }-*/;
+
+ public final native double getLatitude() /*-{
+ return this.latitude;
+ }-*/;
+
+ public final native double getLongitude() /*-{
+ return this.longitude;
+ }-*/;
+
+ public final native double getSpeed() /*-{
+ return this.speed;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDOMError.java b/elemental/src/elemental/js/dom/JsDOMError.java
new file mode 100644
index 0000000..04366d0
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDOMError.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.DOMError;
+
+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 JsDOMError extends JsElementalMixinBase implements DOMError {
+ protected JsDOMError() {}
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDOMException.java b/elemental/src/elemental/js/dom/JsDOMException.java
new file mode 100644
index 0000000..42cb65f
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDOMException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.DOMException;
+
+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 JsDOMException extends JsElementalMixinBase implements DOMException {
+ protected JsDOMException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDOMImplementation.java b/elemental/src/elemental/js/dom/JsDOMImplementation.java
new file mode 100644
index 0000000..bce8a68
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDOMImplementation.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.DocumentType;
+import elemental.js.css.JsCSSStyleSheet;
+import elemental.css.CSSStyleSheet;
+import elemental.dom.DOMImplementation;
+import elemental.dom.Document;
+
+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 JsDOMImplementation extends JsElementalMixinBase implements DOMImplementation {
+ protected JsDOMImplementation() {}
+
+ public final native JsCSSStyleSheet createCSSStyleSheet(String title, String media) /*-{
+ return this.createCSSStyleSheet(title, media);
+ }-*/;
+
+ public final native JsDocument createDocument(String namespaceURI, String qualifiedName, DocumentType doctype) /*-{
+ return this.createDocument(namespaceURI, qualifiedName, doctype);
+ }-*/;
+
+ public final native JsDocumentType createDocumentType(String qualifiedName, String publicId, String systemId) /*-{
+ return this.createDocumentType(qualifiedName, publicId, systemId);
+ }-*/;
+
+ public final native JsDocument createHTMLDocument(String title) /*-{
+ return this.createHTMLDocument(title);
+ }-*/;
+
+ public final native boolean hasFeature(String feature, String version) /*-{
+ return this.hasFeature(feature, version);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDOMSettableTokenList.java b/elemental/src/elemental/js/dom/JsDOMSettableTokenList.java
new file mode 100644
index 0000000..2ea4c97
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDOMSettableTokenList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.DOMSettableTokenList;
+import elemental.dom.DOMTokenList;
+
+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 JsDOMSettableTokenList extends JsDOMTokenList implements DOMSettableTokenList {
+ protected JsDOMSettableTokenList() {}
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDOMStringList.java b/elemental/src/elemental/js/dom/JsDOMStringList.java
new file mode 100644
index 0000000..5d43435
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDOMStringList.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.util.Indexable;
+import elemental.js.util.JsIndexable;
+
+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 JsDOMStringList extends JsIndexable implements Indexable {
+ protected JsDOMStringList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native boolean contains(String string) /*-{
+ return this.contains(string);
+ }-*/;
+
+ public final native String item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDOMStringMap.java b/elemental/src/elemental/js/dom/JsDOMStringMap.java
new file mode 100644
index 0000000..bdd7f65
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDOMStringMap.java
@@ -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 elemental.js.dom;
+import elemental.util.Mappable;
+import elemental.js.util.JsMappable;
+
+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 JsDOMStringMap extends JsElementalMixinBase implements Mappable {
+ protected JsDOMStringMap() {}
+}
diff --git a/elemental/src/elemental/js/dom/JsDOMTokenList.java b/elemental/src/elemental/js/dom/JsDOMTokenList.java
new file mode 100644
index 0000000..a768135
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDOMTokenList.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.DOMTokenList;
+
+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 JsDOMTokenList extends JsElementalMixinBase implements DOMTokenList {
+ protected JsDOMTokenList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void add(String token) /*-{
+ this.add(token);
+ }-*/;
+
+ public final native boolean contains(String token) /*-{
+ return this.contains(token);
+ }-*/;
+
+ public final native String item(int index) /*-{
+ return this.item(index);
+ }-*/;
+
+ public final native void remove(String token) /*-{
+ this.remove(token);
+ }-*/;
+
+ public final native boolean toggle(String token) /*-{
+ return this.toggle(token);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDataTransferItem.java b/elemental/src/elemental/js/dom/JsDataTransferItem.java
new file mode 100644
index 0000000..bdc5d9e
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDataTransferItem.java
@@ -0,0 +1,62 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.js.html.JsBlob;
+import elemental.dom.StringCallback;
+import elemental.dom.DataTransferItem;
+import elemental.html.Blob;
+
+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 JsDataTransferItem extends JsElementalMixinBase implements DataTransferItem {
+ protected JsDataTransferItem() {}
+
+ public final native String getKind() /*-{
+ return this.kind;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native JsBlob getAsFile() /*-{
+ return this.getAsFile();
+ }-*/;
+
+ public final native void getAsString() /*-{
+ this.getAsString();
+ }-*/;
+
+ public final native void getAsString(StringCallback callback) /*-{
+ this.getAsString($entry(callback.@elemental.dom.StringCallback::onStringCallback(Ljava/lang/String;)).bind(callback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDataTransferItemList.java b/elemental/src/elemental/js/dom/JsDataTransferItemList.java
new file mode 100644
index 0000000..06ee28f
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDataTransferItemList.java
@@ -0,0 +1,62 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.html.File;
+import elemental.dom.DataTransferItemList;
+import elemental.js.html.JsFile;
+import elemental.dom.DataTransferItem;
+
+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 JsDataTransferItemList extends JsElementalMixinBase implements DataTransferItemList {
+ protected JsDataTransferItemList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void add(File file) /*-{
+ this.add(file);
+ }-*/;
+
+ public final native void add(String data, String type) /*-{
+ this.add(data, type);
+ }-*/;
+
+ public final native void clear() /*-{
+ this.clear();
+ }-*/;
+
+ public final native JsDataTransferItem item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDeviceMotionEvent.java b/elemental/src/elemental/js/dom/JsDeviceMotionEvent.java
new file mode 100644
index 0000000..31149f2
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDeviceMotionEvent.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.events.Event;
+import elemental.js.events.JsEvent;
+import elemental.dom.DeviceMotionEvent;
+
+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 JsDeviceMotionEvent extends JsEvent implements DeviceMotionEvent {
+ protected JsDeviceMotionEvent() {}
+
+ public final native double getInterval() /*-{
+ return this.interval;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDeviceOrientationEvent.java b/elemental/src/elemental/js/dom/JsDeviceOrientationEvent.java
new file mode 100644
index 0000000..505b7a5
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDeviceOrientationEvent.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.js.events.JsEvent;
+import elemental.dom.DeviceOrientationEvent;
+import elemental.events.Event;
+
+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 JsDeviceOrientationEvent extends JsEvent implements DeviceOrientationEvent {
+ protected JsDeviceOrientationEvent() {}
+
+ public final native boolean isAbsolute() /*-{
+ return this.absolute;
+ }-*/;
+
+ public final native double getAlpha() /*-{
+ return this.alpha;
+ }-*/;
+
+ public final native double getBeta() /*-{
+ return this.beta;
+ }-*/;
+
+ public final native double getGamma() /*-{
+ return this.gamma;
+ }-*/;
+
+ public final native void initDeviceOrientationEvent(String type, boolean bubbles, boolean cancelable, double alpha, double beta, double gamma, boolean absolute) /*-{
+ this.initDeviceOrientationEvent(type, bubbles, cancelable, alpha, beta, gamma, absolute);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsDocument.java b/elemental/src/elemental/js/dom/JsDocument.java
new file mode 100644
index 0000000..c2eccd4
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDocument.java
@@ -0,0 +1,1516 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.js.css.JsCSSStyleDeclaration;
+import elemental.js.ranges.JsRange;
+import elemental.js.traversal.JsTreeWalker;
+import elemental.js.html.JsHTMLCollection;
+import elemental.js.traversal.JsNodeIterator;
+import elemental.js.html.JsSelection;
+import elemental.css.CSSStyleDeclaration;
+import elemental.stylesheets.StyleSheetList;
+import elemental.js.stylesheets.JsStyleSheetList;
+import elemental.dom.Text;
+import elemental.xpath.XPathNSResolver;
+import elemental.xpath.XPathExpression;
+import elemental.traversal.NodeIterator;
+import elemental.traversal.TreeWalker;
+import elemental.events.TouchList;
+import elemental.js.events.JsEventListener;
+import elemental.dom.Document;
+import elemental.dom.Node;
+import elemental.html.HTMLAllCollection;
+import elemental.js.events.JsTouchList;
+import elemental.dom.ProcessingInstruction;
+import elemental.js.html.JsCanvasRenderingContext;
+import elemental.dom.DocumentFragment;
+import elemental.ranges.Range;
+import elemental.html.Location;
+import elemental.xpath.XPathResult;
+import elemental.dom.DOMImplementation;
+import elemental.dom.Comment;
+import elemental.html.Selection;
+import elemental.js.xpath.JsXPathExpression;
+import elemental.html.HeadElement;
+import elemental.dom.Element;
+import elemental.js.html.JsWindow;
+import elemental.html.HTMLCollection;
+import elemental.dom.EntityReference;
+import elemental.events.Touch;
+import elemental.js.html.JsHeadElement;
+import elemental.js.traversal.JsNodeFilter;
+import elemental.js.xpath.JsXPathResult;
+import elemental.js.events.JsTouch;
+import elemental.events.Event;
+import elemental.html.CanvasRenderingContext;
+import elemental.events.EventTarget;
+import elemental.traversal.NodeFilter;
+import elemental.dom.NodeList;
+import elemental.js.html.JsHTMLAllCollection;
+import elemental.js.events.JsEvent;
+import elemental.js.xpath.JsXPathNSResolver;
+import elemental.js.html.JsLocation;
+import elemental.events.EventListener;
+import elemental.dom.Attr;
+import elemental.html.Window;
+import elemental.dom.DocumentType;
+import elemental.dom.CDATASection;
+
+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 JsDocument extends JsNode implements Document {
+ protected JsDocument() {}
+
+ public final native void clearOpener() /*-{
+ this.opener = null;
+ }-*/;
+
+ public final JsElement createSvgElement(String tag) {
+ return createElementNS("http://www.w3.org/2000/svg", tag).cast();
+ }
+
+
+ public final native String getURL() /*-{
+ return this.URL;
+ }-*/;
+
+ public final native JsElement getActiveElement() /*-{
+ return this.activeElement;
+ }-*/;
+
+ public final native String getAlinkColor() /*-{
+ return this.alinkColor;
+ }-*/;
+
+ public final native void setAlinkColor(String param_alinkColor) /*-{
+ this.alinkColor = param_alinkColor;
+ }-*/;
+
+ public final native JsHTMLAllCollection getAll() /*-{
+ return this.all;
+ }-*/;
+
+ public final native void setAll(HTMLAllCollection param_all) /*-{
+ this.all = param_all;
+ }-*/;
+
+ public final native JsHTMLCollection getAnchors() /*-{
+ return this.anchors;
+ }-*/;
+
+ public final native JsHTMLCollection getApplets() /*-{
+ return this.applets;
+ }-*/;
+
+ public final native String getBgColor() /*-{
+ return this.bgColor;
+ }-*/;
+
+ public final native void setBgColor(String param_bgColor) /*-{
+ this.bgColor = param_bgColor;
+ }-*/;
+
+ public final native JsElement getBody() /*-{
+ return this.body;
+ }-*/;
+
+ public final native void setBody(Element param_body) /*-{
+ this.body = param_body;
+ }-*/;
+
+ public final native String getCharacterSet() /*-{
+ return this.characterSet;
+ }-*/;
+
+ public final native String getCharset() /*-{
+ return this.charset;
+ }-*/;
+
+ public final native void setCharset(String param_charset) /*-{
+ this.charset = param_charset;
+ }-*/;
+
+ public final native String getCompatMode() /*-{
+ return this.compatMode;
+ }-*/;
+
+ public final native String getCookie() /*-{
+ return this.cookie;
+ }-*/;
+
+ public final native void setCookie(String param_cookie) /*-{
+ this.cookie = param_cookie;
+ }-*/;
+
+ public final native String getDefaultCharset() /*-{
+ return this.defaultCharset;
+ }-*/;
+
+ public final native JsWindow getDefaultView() /*-{
+ return this.defaultView;
+ }-*/;
+
+ public final native String getDesignMode() /*-{
+ return this.designMode;
+ }-*/;
+
+ public final native void setDesignMode(String param_designMode) /*-{
+ this.designMode = param_designMode;
+ }-*/;
+
+ public final native String getDir() /*-{
+ return this.dir;
+ }-*/;
+
+ public final native void setDir(String param_dir) /*-{
+ this.dir = param_dir;
+ }-*/;
+
+ public final native JsDocumentType getDoctype() /*-{
+ return this.doctype;
+ }-*/;
+
+ public final native JsElement getDocumentElement() /*-{
+ return this.documentElement;
+ }-*/;
+
+ public final native String getDocumentURI() /*-{
+ return this.documentURI;
+ }-*/;
+
+ public final native void setDocumentURI(String param_documentURI) /*-{
+ this.documentURI = param_documentURI;
+ }-*/;
+
+ public final native String getDomain() /*-{
+ return this.domain;
+ }-*/;
+
+ public final native void setDomain(String param_domain) /*-{
+ this.domain = param_domain;
+ }-*/;
+
+ public final native JsHTMLCollection getEmbeds() /*-{
+ return this.embeds;
+ }-*/;
+
+ public final native String getFgColor() /*-{
+ return this.fgColor;
+ }-*/;
+
+ public final native void setFgColor(String param_fgColor) /*-{
+ this.fgColor = param_fgColor;
+ }-*/;
+
+ public final native JsHTMLCollection getForms() /*-{
+ return this.forms;
+ }-*/;
+
+ public final native JsHeadElement getHead() /*-{
+ return this.head;
+ }-*/;
+
+ public final native int getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native JsHTMLCollection getImages() /*-{
+ return this.images;
+ }-*/;
+
+ public final native JsDOMImplementation getImplementation() /*-{
+ return this.implementation;
+ }-*/;
+
+ public final native String getInputEncoding() /*-{
+ return this.inputEncoding;
+ }-*/;
+
+ public final native String getLastModified() /*-{
+ return this.lastModified;
+ }-*/;
+
+ public final native String getLinkColor() /*-{
+ return this.linkColor;
+ }-*/;
+
+ public final native void setLinkColor(String param_linkColor) /*-{
+ this.linkColor = param_linkColor;
+ }-*/;
+
+ public final native JsHTMLCollection getLinks() /*-{
+ return this.links;
+ }-*/;
+
+ public final native JsLocation getLocation() /*-{
+ return this.location;
+ }-*/;
+
+ public final native void setLocation(Location param_location) /*-{
+ this.location = param_location;
+ }-*/;
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforecopy() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforecopy);
+ }-*/;
+
+ public final native void setOnbeforecopy(EventListener listener) /*-{
+ this.onbeforecopy = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforecut() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforecut);
+ }-*/;
+
+ public final native void setOnbeforecut(EventListener listener) /*-{
+ this.onbeforecut = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforepaste() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforepaste);
+ }-*/;
+
+ public final native void setOnbeforepaste(EventListener listener) /*-{
+ this.onbeforepaste = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnblur() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onblur);
+ }-*/;
+
+ public final native void setOnblur(EventListener listener) /*-{
+ this.onblur = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onchange);
+ }-*/;
+
+ public final native void setOnchange(EventListener listener) /*-{
+ this.onchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnclick() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onclick);
+ }-*/;
+
+ public final native void setOnclick(EventListener listener) /*-{
+ this.onclick = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncontextmenu() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncontextmenu);
+ }-*/;
+
+ public final native void setOncontextmenu(EventListener listener) /*-{
+ this.oncontextmenu = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncopy() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncopy);
+ }-*/;
+
+ public final native void setOncopy(EventListener listener) /*-{
+ this.oncopy = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncut() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncut);
+ }-*/;
+
+ public final native void setOncut(EventListener listener) /*-{
+ this.oncut = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndblclick() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondblclick);
+ }-*/;
+
+ public final native void setOndblclick(EventListener listener) /*-{
+ this.ondblclick = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndrag() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondrag);
+ }-*/;
+
+ public final native void setOndrag(EventListener listener) /*-{
+ this.ondrag = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragend);
+ }-*/;
+
+ public final native void setOndragend(EventListener listener) /*-{
+ this.ondragend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragenter() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragenter);
+ }-*/;
+
+ public final native void setOndragenter(EventListener listener) /*-{
+ this.ondragenter = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragleave() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragleave);
+ }-*/;
+
+ public final native void setOndragleave(EventListener listener) /*-{
+ this.ondragleave = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragover() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragover);
+ }-*/;
+
+ public final native void setOndragover(EventListener listener) /*-{
+ this.ondragover = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragstart);
+ }-*/;
+
+ public final native void setOndragstart(EventListener listener) /*-{
+ this.ondragstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndrop() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondrop);
+ }-*/;
+
+ public final native void setOndrop(EventListener listener) /*-{
+ this.ondrop = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnfocus() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onfocus);
+ }-*/;
+
+ public final native void setOnfocus(EventListener listener) /*-{
+ this.onfocus = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOninput() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oninput);
+ }-*/;
+
+ public final native void setOninput(EventListener listener) /*-{
+ this.oninput = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOninvalid() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oninvalid);
+ }-*/;
+
+ public final native void setOninvalid(EventListener listener) /*-{
+ this.oninvalid = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeydown() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeydown);
+ }-*/;
+
+ public final native void setOnkeydown(EventListener listener) /*-{
+ this.onkeydown = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeypress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeypress);
+ }-*/;
+
+ public final native void setOnkeypress(EventListener listener) /*-{
+ this.onkeypress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeyup() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeyup);
+ }-*/;
+
+ public final native void setOnkeyup(EventListener listener) /*-{
+ this.onkeyup = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onload);
+ }-*/;
+
+ public final native void setOnload(EventListener listener) /*-{
+ this.onload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousedown() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousedown);
+ }-*/;
+
+ public final native void setOnmousedown(EventListener listener) /*-{
+ this.onmousedown = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousemove() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousemove);
+ }-*/;
+
+ public final native void setOnmousemove(EventListener listener) /*-{
+ this.onmousemove = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseout() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseout);
+ }-*/;
+
+ public final native void setOnmouseout(EventListener listener) /*-{
+ this.onmouseout = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseover() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseover);
+ }-*/;
+
+ public final native void setOnmouseover(EventListener listener) /*-{
+ this.onmouseover = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseup() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseup);
+ }-*/;
+
+ public final native void setOnmouseup(EventListener listener) /*-{
+ this.onmouseup = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousewheel() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousewheel);
+ }-*/;
+
+ public final native void setOnmousewheel(EventListener listener) /*-{
+ this.onmousewheel = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnpaste() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onpaste);
+ }-*/;
+
+ public final native void setOnpaste(EventListener listener) /*-{
+ this.onpaste = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnreadystatechange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onreadystatechange);
+ }-*/;
+
+ public final native void setOnreadystatechange(EventListener listener) /*-{
+ this.onreadystatechange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnreset() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onreset);
+ }-*/;
+
+ public final native void setOnreset(EventListener listener) /*-{
+ this.onreset = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnscroll() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onscroll);
+ }-*/;
+
+ public final native void setOnscroll(EventListener listener) /*-{
+ this.onscroll = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsearch() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsearch);
+ }-*/;
+
+ public final native void setOnsearch(EventListener listener) /*-{
+ this.onsearch = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnselect() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onselect);
+ }-*/;
+
+ public final native void setOnselect(EventListener listener) /*-{
+ this.onselect = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnselectionchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onselectionchange);
+ }-*/;
+
+ public final native void setOnselectionchange(EventListener listener) /*-{
+ this.onselectionchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnselectstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onselectstart);
+ }-*/;
+
+ public final native void setOnselectstart(EventListener listener) /*-{
+ this.onselectstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsubmit() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsubmit);
+ }-*/;
+
+ public final native void setOnsubmit(EventListener listener) /*-{
+ this.onsubmit = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchcancel() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchcancel);
+ }-*/;
+
+ public final native void setOntouchcancel(EventListener listener) /*-{
+ this.ontouchcancel = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchend);
+ }-*/;
+
+ public final native void setOntouchend(EventListener listener) /*-{
+ this.ontouchend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchmove() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchmove);
+ }-*/;
+
+ public final native void setOntouchmove(EventListener listener) /*-{
+ this.ontouchmove = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchstart);
+ }-*/;
+
+ public final native void setOntouchstart(EventListener listener) /*-{
+ this.ontouchstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitfullscreenchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitfullscreenchange);
+ }-*/;
+
+ public final native void setOnwebkitfullscreenchange(EventListener listener) /*-{
+ this.onwebkitfullscreenchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitfullscreenerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitfullscreenerror);
+ }-*/;
+
+ public final native void setOnwebkitfullscreenerror(EventListener listener) /*-{
+ this.onwebkitfullscreenerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native JsHTMLCollection getPlugins() /*-{
+ return this.plugins;
+ }-*/;
+
+ public final native String getPreferredStylesheetSet() /*-{
+ return this.preferredStylesheetSet;
+ }-*/;
+
+ public final native String getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native String getReferrer() /*-{
+ return this.referrer;
+ }-*/;
+
+ public final native JsHTMLCollection getScripts() /*-{
+ return this.scripts;
+ }-*/;
+
+ public final native String getSelectedStylesheetSet() /*-{
+ return this.selectedStylesheetSet;
+ }-*/;
+
+ public final native void setSelectedStylesheetSet(String param_selectedStylesheetSet) /*-{
+ this.selectedStylesheetSet = param_selectedStylesheetSet;
+ }-*/;
+
+ public final native JsStyleSheetList getStyleSheets() /*-{
+ return this.styleSheets;
+ }-*/;
+
+ public final native String getTitle() /*-{
+ return this.title;
+ }-*/;
+
+ public final native void setTitle(String param_title) /*-{
+ this.title = param_title;
+ }-*/;
+
+ public final native String getVlinkColor() /*-{
+ return this.vlinkColor;
+ }-*/;
+
+ public final native void setVlinkColor(String param_vlinkColor) /*-{
+ this.vlinkColor = param_vlinkColor;
+ }-*/;
+
+ public final native JsElement getWebkitCurrentFullScreenElement() /*-{
+ return this.webkitCurrentFullScreenElement;
+ }-*/;
+
+ public final native boolean isWebkitFullScreenKeyboardInputAllowed() /*-{
+ return this.webkitFullScreenKeyboardInputAllowed;
+ }-*/;
+
+ public final native JsElement getWebkitFullscreenElement() /*-{
+ return this.webkitFullscreenElement;
+ }-*/;
+
+ public final native boolean isWebkitFullscreenEnabled() /*-{
+ return this.webkitFullscreenEnabled;
+ }-*/;
+
+ public final native boolean isWebkitHidden() /*-{
+ return this.webkitHidden;
+ }-*/;
+
+ public final native boolean isWebkitIsFullScreen() /*-{
+ return this.webkitIsFullScreen;
+ }-*/;
+
+ public final native String getWebkitVisibilityState() /*-{
+ return this.webkitVisibilityState;
+ }-*/;
+
+ public final native int getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native String getXmlEncoding() /*-{
+ return this.xmlEncoding;
+ }-*/;
+
+ public final native boolean isXmlStandalone() /*-{
+ return this.xmlStandalone;
+ }-*/;
+
+ public final native void setXmlStandalone(boolean param_xmlStandalone) /*-{
+ this.xmlStandalone = param_xmlStandalone;
+ }-*/;
+
+ public final native String getXmlVersion() /*-{
+ return this.xmlVersion;
+ }-*/;
+
+ public final native void setXmlVersion(String param_xmlVersion) /*-{
+ this.xmlVersion = param_xmlVersion;
+ }-*/;
+
+ public final native JsNode adoptNode(Node source) /*-{
+ return this.adoptNode(source);
+ }-*/;
+
+ public final native JsRange caretRangeFromPoint(int x, int y) /*-{
+ return this.caretRangeFromPoint(x, y);
+ }-*/;
+
+ public final native JsAttr createAttribute(String name) /*-{
+ return this.createAttribute(name);
+ }-*/;
+
+ public final native JsAttr createAttributeNS(String namespaceURI, String qualifiedName) /*-{
+ return this.createAttributeNS(namespaceURI, qualifiedName);
+ }-*/;
+
+ public final native JsCDATASection createCDATASection(String data) /*-{
+ return this.createCDATASection(data);
+ }-*/;
+
+ public final native JsComment createComment(String data) /*-{
+ return this.createComment(data);
+ }-*/;
+
+ public final native JsDocumentFragment createDocumentFragment() /*-{
+ return this.createDocumentFragment();
+ }-*/;
+
+ public final native JsElement createElement(String tagName) /*-{
+ return this.createElement(tagName);
+ }-*/;
+
+ public final native JsElement createElementNS(String namespaceURI, String qualifiedName) /*-{
+ return this.createElementNS(namespaceURI, qualifiedName);
+ }-*/;
+
+ public final native JsEntityReference createEntityReference(String name) /*-{
+ return this.createEntityReference(name);
+ }-*/;
+
+ public final native JsEvent createEvent(String eventType) /*-{
+ return this.createEvent(eventType);
+ }-*/;
+
+ public final native JsXPathExpression createExpression(String expression, XPathNSResolver resolver) /*-{
+ return this.createExpression(expression, resolver);
+ }-*/;
+
+ public final native JsXPathNSResolver createNSResolver(Node nodeResolver) /*-{
+ return this.createNSResolver(nodeResolver);
+ }-*/;
+
+ public final native JsNodeIterator createNodeIterator(Node root, int whatToShow, NodeFilter filter, boolean expandEntityReferences) /*-{
+ return this.createNodeIterator(root, whatToShow, filter, expandEntityReferences);
+ }-*/;
+
+ public final native JsProcessingInstruction createProcessingInstruction(String target, String data) /*-{
+ return this.createProcessingInstruction(target, data);
+ }-*/;
+
+ public final native JsRange createRange() /*-{
+ return this.createRange();
+ }-*/;
+
+ public final native JsText createTextNode(String data) /*-{
+ return this.createTextNode(data);
+ }-*/;
+
+ public final native JsTouch createTouch(Window window, EventTarget target, int identifier, int pageX, int pageY, int screenX, int screenY, int webkitRadiusX, int webkitRadiusY, float webkitRotationAngle, float webkitForce) /*-{
+ return this.createTouch(window, target, identifier, pageX, pageY, screenX, screenY, webkitRadiusX, webkitRadiusY, webkitRotationAngle, webkitForce);
+ }-*/;
+
+ public final native JsTouchList createTouchList() /*-{
+ return this.createTouchList();
+ }-*/;
+
+ public final native JsTreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean expandEntityReferences) /*-{
+ return this.createTreeWalker(root, whatToShow, filter, expandEntityReferences);
+ }-*/;
+
+ public final native JsElement elementFromPoint(int x, int y) /*-{
+ return this.elementFromPoint(x, y);
+ }-*/;
+
+ public final native JsXPathResult evaluate(String expression, Node contextNode, XPathNSResolver resolver, int type, XPathResult inResult) /*-{
+ return this.evaluate(expression, contextNode, resolver, type, inResult);
+ }-*/;
+
+ public final native boolean execCommand(String command, boolean userInterface, String value) /*-{
+ return this.execCommand(command, userInterface, value);
+ }-*/;
+
+ public final native JsCanvasRenderingContext getCSSCanvasContext(String contextId, String name, int width, int height) /*-{
+ return this.getCSSCanvasContext(contextId, name, width, height);
+ }-*/;
+
+ public final native JsElement getElementById(String elementId) /*-{
+ return this.getElementById(elementId);
+ }-*/;
+
+ public final native JsNodeList getElementsByClassName(String tagname) /*-{
+ return this.getElementsByClassName(tagname);
+ }-*/;
+
+ public final native JsNodeList getElementsByName(String elementName) /*-{
+ return this.getElementsByName(elementName);
+ }-*/;
+
+ public final native JsNodeList getElementsByTagName(String tagname) /*-{
+ return this.getElementsByTagName(tagname);
+ }-*/;
+
+ public final native JsNodeList getElementsByTagNameNS(String namespaceURI, String localName) /*-{
+ return this.getElementsByTagNameNS(namespaceURI, localName);
+ }-*/;
+
+ public final native JsCSSStyleDeclaration getOverrideStyle(Element element, String pseudoElement) /*-{
+ return this.getOverrideStyle(element, pseudoElement);
+ }-*/;
+
+ public final native JsSelection getSelection() /*-{
+ return this.getSelection();
+ }-*/;
+
+ public final native JsNode importNode(Node importedNode) /*-{
+ return this.importNode(importedNode);
+ }-*/;
+
+ public final native JsNode importNode(Node importedNode, boolean deep) /*-{
+ return this.importNode(importedNode, deep);
+ }-*/;
+
+ public final native boolean queryCommandEnabled(String command) /*-{
+ return this.queryCommandEnabled(command);
+ }-*/;
+
+ public final native boolean queryCommandIndeterm(String command) /*-{
+ return this.queryCommandIndeterm(command);
+ }-*/;
+
+ public final native boolean queryCommandState(String command) /*-{
+ return this.queryCommandState(command);
+ }-*/;
+
+ public final native boolean queryCommandSupported(String command) /*-{
+ return this.queryCommandSupported(command);
+ }-*/;
+
+ public final native String queryCommandValue(String command) /*-{
+ return this.queryCommandValue(command);
+ }-*/;
+
+ public final native void webkitCancelFullScreen() /*-{
+ this.webkitCancelFullScreen();
+ }-*/;
+
+ public final native void webkitExitFullscreen() /*-{
+ this.webkitExitFullscreen();
+ }-*/;
+
+ public final native void captureEvents() /*-{
+ this.captureEvents();
+ }-*/;
+
+ public final native void clear() /*-{
+ this.clear();
+ }-*/;
+
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+
+ public final native boolean hasFocus() /*-{
+ return this.hasFocus();
+ }-*/;
+
+ public final native void open() /*-{
+ this.open();
+ }-*/;
+
+ public final native void releaseEvents() /*-{
+ this.releaseEvents();
+ }-*/;
+
+ public final native void write(String text) /*-{
+ this.write(text);
+ }-*/;
+
+ public final native void writeln(String text) /*-{
+ this.writeln(text);
+ }-*/;
+
+ public final JsAnchorElement createAnchorElement() {
+ return createElement("anchor").cast();
+ }
+
+ public final JsAppletElement createAppletElement() {
+ return createElement("applet").cast();
+ }
+
+ public final JsAreaElement createAreaElement() {
+ return createElement("area").cast();
+ }
+
+ public final JsAudioElement createAudioElement() {
+ return createElement("audio").cast();
+ }
+
+ public final JsBRElement createBRElement() {
+ return createElement("br").cast();
+ }
+
+ public final JsBaseElement createBaseElement() {
+ return createElement("base").cast();
+ }
+
+ public final JsBaseFontElement createBaseFontElement() {
+ return createElement("basefont").cast();
+ }
+
+ public final JsBodyElement createBodyElement() {
+ return createElement("body").cast();
+ }
+
+ public final JsButtonElement createButtonElement() {
+ return createElement("button").cast();
+ }
+
+ public final JsCanvasElement createCanvasElement() {
+ return createElement("canvas").cast();
+ }
+
+ public final JsContentElement createContentElement() {
+ return createElement("content").cast();
+ }
+
+ public final JsDListElement createDListElement() {
+ return createElement("dlist").cast();
+ }
+
+ public final JsDetailsElement createDetailsElement() {
+ return createElement("details").cast();
+ }
+
+ public final JsDirectoryElement createDirectoryElement() {
+ return createElement("directory").cast();
+ }
+
+ public final JsDivElement createDivElement() {
+ return createElement("div").cast();
+ }
+
+ public final JsEmbedElement createEmbedElement() {
+ return createElement("embed").cast();
+ }
+
+ public final JsFieldSetElement createFieldSetElement() {
+ return createElement("fieldset").cast();
+ }
+
+ public final JsFontElement createFontElement() {
+ return createElement("font").cast();
+ }
+
+ public final JsFormElement createFormElement() {
+ return createElement("form").cast();
+ }
+
+ public final JsFrameElement createFrameElement() {
+ return createElement("frame").cast();
+ }
+
+ public final JsFrameSetElement createFrameSetElement() {
+ return createElement("frameset").cast();
+ }
+
+ public final JsHRElement createHRElement() {
+ return createElement("hr").cast();
+ }
+
+ public final JsHeadElement createHeadElement() {
+ return createElement("head").cast();
+ }
+
+ public final JsHeadingElement createHeadingElement() {
+ return createElement("heading").cast();
+ }
+
+ public final JsHtmlElement createHtmlElement() {
+ return createElement("html").cast();
+ }
+
+ public final JsIFrameElement createIFrameElement() {
+ return createElement("iframe").cast();
+ }
+
+ public final JsImageElement createImageElement() {
+ return createElement("image").cast();
+ }
+
+ public final JsInputElement createInputElement() {
+ return createElement("input").cast();
+ }
+
+ public final JsKeygenElement createKeygenElement() {
+ return createElement("keygen").cast();
+ }
+
+ public final JsLIElement createLIElement() {
+ return createElement("li").cast();
+ }
+
+ public final JsLabelElement createLabelElement() {
+ return createElement("label").cast();
+ }
+
+ public final JsLegendElement createLegendElement() {
+ return createElement("legend").cast();
+ }
+
+ public final JsLinkElement createLinkElement() {
+ return createElement("link").cast();
+ }
+
+ public final JsMapElement createMapElement() {
+ return createElement("map").cast();
+ }
+
+ public final JsMarqueeElement createMarqueeElement() {
+ return createElement("marquee").cast();
+ }
+
+ public final JsMediaElement createMediaElement() {
+ return createElement("media").cast();
+ }
+
+ public final JsMenuElement createMenuElement() {
+ return createElement("menu").cast();
+ }
+
+ public final JsMetaElement createMetaElement() {
+ return createElement("meta").cast();
+ }
+
+ public final JsMeterElement createMeterElement() {
+ return createElement("meter").cast();
+ }
+
+ public final JsModElement createModElement() {
+ return createElement("mod").cast();
+ }
+
+ public final JsOListElement createOListElement() {
+ return createElement("olist").cast();
+ }
+
+ public final JsObjectElement createObjectElement() {
+ return createElement("object").cast();
+ }
+
+ public final JsOptGroupElement createOptGroupElement() {
+ return createElement("optgroup").cast();
+ }
+
+ public final JsOptionElement createOptionElement() {
+ return createElement("option").cast();
+ }
+
+ public final JsOutputElement createOutputElement() {
+ return createElement("output").cast();
+ }
+
+ public final JsParagraphElement createParagraphElement() {
+ return createElement("paragraph").cast();
+ }
+
+ public final JsParamElement createParamElement() {
+ return createElement("param").cast();
+ }
+
+ public final JsPreElement createPreElement() {
+ return createElement("pre").cast();
+ }
+
+ public final JsProgressElement createProgressElement() {
+ return createElement("progress").cast();
+ }
+
+ public final JsQuoteElement createQuoteElement() {
+ return createElement("quote").cast();
+ }
+
+ public final JsSVGAElement createSVGAElement() {
+ return createSvgElement("a").cast();
+ }
+
+ public final JsSVGAltGlyphDefElement createSVGAltGlyphDefElement() {
+ return createSvgElement("altglyphdef").cast();
+ }
+
+ public final JsSVGAltGlyphElement createSVGAltGlyphElement() {
+ return createSvgElement("altglyph").cast();
+ }
+
+ public final JsSVGAltGlyphItemElement createSVGAltGlyphItemElement() {
+ return createSvgElement("altglyphitem").cast();
+ }
+
+ public final JsSVGAnimateColorElement createSVGAnimateColorElement() {
+ return createSvgElement("animatecolor").cast();
+ }
+
+ public final JsSVGAnimateElement createSVGAnimateElement() {
+ return createSvgElement("animate").cast();
+ }
+
+ public final JsSVGAnimateMotionElement createSVGAnimateMotionElement() {
+ return createSvgElement("animatemotion").cast();
+ }
+
+ public final JsSVGAnimateTransformElement createSVGAnimateTransformElement() {
+ return createSvgElement("animatetransform").cast();
+ }
+
+ public final JsSVGAnimationElement createSVGAnimationElement() {
+ return createSvgElement("animation").cast();
+ }
+
+ public final JsSVGCircleElement createSVGCircleElement() {
+ return createSvgElement("circle").cast();
+ }
+
+ public final JsSVGClipPathElement createSVGClipPathElement() {
+ return createSvgElement("clippath").cast();
+ }
+
+ public final JsSVGComponentTransferFunctionElement createSVGComponentTransferFunctionElement() {
+ return createSvgElement("componenttransferfunction").cast();
+ }
+
+ public final JsSVGCursorElement createSVGCursorElement() {
+ return createSvgElement("cursor").cast();
+ }
+
+ public final JsSVGDefsElement createSVGDefsElement() {
+ return createSvgElement("defs").cast();
+ }
+
+ public final JsSVGDescElement createSVGDescElement() {
+ return createSvgElement("desc").cast();
+ }
+
+ public final JsSVGEllipseElement createSVGEllipseElement() {
+ return createSvgElement("ellipse").cast();
+ }
+
+ public final JsSVGFEBlendElement createSVGFEBlendElement() {
+ return createSvgElement("feblend").cast();
+ }
+
+ public final JsSVGFEColorMatrixElement createSVGFEColorMatrixElement() {
+ return createSvgElement("fecolormatrix").cast();
+ }
+
+ public final JsSVGFEComponentTransferElement createSVGFEComponentTransferElement() {
+ return createSvgElement("fecomponenttransfer").cast();
+ }
+
+ public final JsSVGFECompositeElement createSVGFECompositeElement() {
+ return createSvgElement("fecomposite").cast();
+ }
+
+ public final JsSVGFEConvolveMatrixElement createSVGFEConvolveMatrixElement() {
+ return createSvgElement("feconvolvematrix").cast();
+ }
+
+ public final JsSVGFEDiffuseLightingElement createSVGFEDiffuseLightingElement() {
+ return createSvgElement("fediffuselighting").cast();
+ }
+
+ public final JsSVGFEDisplacementMapElement createSVGFEDisplacementMapElement() {
+ return createSvgElement("fedisplacementmap").cast();
+ }
+
+ public final JsSVGFEDistantLightElement createSVGFEDistantLightElement() {
+ return createSvgElement("fedistantlight").cast();
+ }
+
+ public final JsSVGFEDropShadowElement createSVGFEDropShadowElement() {
+ return createSvgElement("fedropshadow").cast();
+ }
+
+ public final JsSVGFEFloodElement createSVGFEFloodElement() {
+ return createSvgElement("feflood").cast();
+ }
+
+ public final JsSVGFEFuncAElement createSVGFEFuncAElement() {
+ return createSvgElement("fefunca").cast();
+ }
+
+ public final JsSVGFEFuncBElement createSVGFEFuncBElement() {
+ return createSvgElement("fefuncb").cast();
+ }
+
+ public final JsSVGFEFuncGElement createSVGFEFuncGElement() {
+ return createSvgElement("fefuncg").cast();
+ }
+
+ public final JsSVGFEFuncRElement createSVGFEFuncRElement() {
+ return createSvgElement("fefuncr").cast();
+ }
+
+ public final JsSVGFEGaussianBlurElement createSVGFEGaussianBlurElement() {
+ return createSvgElement("fegaussianblur").cast();
+ }
+
+ public final JsSVGFEImageElement createSVGFEImageElement() {
+ return createSvgElement("feimage").cast();
+ }
+
+ public final JsSVGFEMergeElement createSVGFEMergeElement() {
+ return createSvgElement("femerge").cast();
+ }
+
+ public final JsSVGFEMergeNodeElement createSVGFEMergeNodeElement() {
+ return createSvgElement("femergenode").cast();
+ }
+
+ public final JsSVGFEMorphologyElement createSVGFEMorphologyElement() {
+ return createSvgElement("femorphology").cast();
+ }
+
+ public final JsSVGFEOffsetElement createSVGFEOffsetElement() {
+ return createSvgElement("feoffset").cast();
+ }
+
+ public final JsSVGFEPointLightElement createSVGFEPointLightElement() {
+ return createSvgElement("fepointlight").cast();
+ }
+
+ public final JsSVGFESpecularLightingElement createSVGFESpecularLightingElement() {
+ return createSvgElement("fespecularlighting").cast();
+ }
+
+ public final JsSVGFESpotLightElement createSVGFESpotLightElement() {
+ return createSvgElement("fespotlight").cast();
+ }
+
+ public final JsSVGFETileElement createSVGFETileElement() {
+ return createSvgElement("fetile").cast();
+ }
+
+ public final JsSVGFETurbulenceElement createSVGFETurbulenceElement() {
+ return createSvgElement("feturbulence").cast();
+ }
+
+ public final JsSVGFilterElement createSVGFilterElement() {
+ return createSvgElement("filter").cast();
+ }
+
+ public final JsSVGFontElement createSVGFontElement() {
+ return createSvgElement("font").cast();
+ }
+
+ public final JsSVGFontFaceElement createSVGFontFaceElement() {
+ return createSvgElement("fontface").cast();
+ }
+
+ public final JsSVGFontFaceFormatElement createSVGFontFaceFormatElement() {
+ return createSvgElement("fontfaceformat").cast();
+ }
+
+ public final JsSVGFontFaceNameElement createSVGFontFaceNameElement() {
+ return createSvgElement("fontfacename").cast();
+ }
+
+ public final JsSVGFontFaceSrcElement createSVGFontFaceSrcElement() {
+ return createSvgElement("fontfacesrc").cast();
+ }
+
+ public final JsSVGFontFaceUriElement createSVGFontFaceUriElement() {
+ return createSvgElement("fontfaceuri").cast();
+ }
+
+ public final JsSVGForeignObjectElement createSVGForeignObjectElement() {
+ return createSvgElement("foreignobject").cast();
+ }
+
+ public final JsSVGGElement createSVGGElement() {
+ return createSvgElement("g").cast();
+ }
+
+ public final JsSVGGlyphElement createSVGGlyphElement() {
+ return createSvgElement("glyph").cast();
+ }
+
+ public final JsSVGGlyphRefElement createSVGGlyphRefElement() {
+ return createSvgElement("glyphref").cast();
+ }
+
+ public final JsSVGGradientElement createSVGGradientElement() {
+ return createSvgElement("gradient").cast();
+ }
+
+ public final JsSVGHKernElement createSVGHKernElement() {
+ return createSvgElement("hkern").cast();
+ }
+
+ public final JsSVGImageElement createSVGImageElement() {
+ return createSvgElement("image").cast();
+ }
+
+ public final JsSVGLineElement createSVGLineElement() {
+ return createSvgElement("line").cast();
+ }
+
+ public final JsSVGLinearGradientElement createSVGLinearGradientElement() {
+ return createSvgElement("lineargradient").cast();
+ }
+
+ public final JsSVGMPathElement createSVGMPathElement() {
+ return createSvgElement("mpath").cast();
+ }
+
+ public final JsSVGMarkerElement createSVGMarkerElement() {
+ return createSvgElement("marker").cast();
+ }
+
+ public final JsSVGMaskElement createSVGMaskElement() {
+ return createSvgElement("mask").cast();
+ }
+
+ public final JsSVGMetadataElement createSVGMetadataElement() {
+ return createSvgElement("metadata").cast();
+ }
+
+ public final JsSVGMissingGlyphElement createSVGMissingGlyphElement() {
+ return createSvgElement("missingglyph").cast();
+ }
+
+ public final JsSVGPathElement createSVGPathElement() {
+ return createSvgElement("path").cast();
+ }
+
+ public final JsSVGPatternElement createSVGPatternElement() {
+ return createSvgElement("pattern").cast();
+ }
+
+ public final JsSVGPolygonElement createSVGPolygonElement() {
+ return createSvgElement("polygon").cast();
+ }
+
+ public final JsSVGPolylineElement createSVGPolylineElement() {
+ return createSvgElement("polyline").cast();
+ }
+
+ public final JsSVGRadialGradientElement createSVGRadialGradientElement() {
+ return createSvgElement("radialgradient").cast();
+ }
+
+ public final JsSVGRectElement createSVGRectElement() {
+ return createSvgElement("rect").cast();
+ }
+
+ public final JsSVGSVGElement createSVGElement() {
+ return createSvgElement("svg").cast();
+ }
+
+ public final JsSVGScriptElement createSVGScriptElement() {
+ return createSvgElement("script").cast();
+ }
+
+ public final JsSVGSetElement createSVGSetElement() {
+ return createSvgElement("set").cast();
+ }
+
+ public final JsSVGStopElement createSVGStopElement() {
+ return createSvgElement("stop").cast();
+ }
+
+ public final JsSVGStyleElement createSVGStyleElement() {
+ return createSvgElement("style").cast();
+ }
+
+ public final JsSVGSwitchElement createSVGSwitchElement() {
+ return createSvgElement("switch").cast();
+ }
+
+ public final JsSVGSymbolElement createSVGSymbolElement() {
+ return createSvgElement("symbol").cast();
+ }
+
+ public final JsSVGTRefElement createSVGTRefElement() {
+ return createSvgElement("tref").cast();
+ }
+
+ public final JsSVGTSpanElement createSVGTSpanElement() {
+ return createSvgElement("tspan").cast();
+ }
+
+ public final JsSVGTextContentElement createSVGTextContentElement() {
+ return createSvgElement("textcontent").cast();
+ }
+
+ public final JsSVGTextElement createSVGTextElement() {
+ return createSvgElement("text").cast();
+ }
+
+ public final JsSVGTextPathElement createSVGTextPathElement() {
+ return createSvgElement("textpath").cast();
+ }
+
+ public final JsSVGTextPositioningElement createSVGTextPositioningElement() {
+ return createSvgElement("textpositioning").cast();
+ }
+
+ public final JsSVGTitleElement createSVGTitleElement() {
+ return createSvgElement("title").cast();
+ }
+
+ public final JsSVGUseElement createSVGUseElement() {
+ return createSvgElement("use").cast();
+ }
+
+ public final JsSVGVKernElement createSVGVKernElement() {
+ return createSvgElement("vkern").cast();
+ }
+
+ public final JsSVGViewElement createSVGViewElement() {
+ return createSvgElement("view").cast();
+ }
+
+ public final JsScriptElement createScriptElement() {
+ return createElement("script").cast();
+ }
+
+ public final JsSelectElement createSelectElement() {
+ return createElement("select").cast();
+ }
+
+ public final JsShadowElement createShadowElement() {
+ return createElement("shadow").cast();
+ }
+
+ public final JsSourceElement createSourceElement() {
+ return createElement("source").cast();
+ }
+
+ public final JsSpanElement createSpanElement() {
+ return createElement("span").cast();
+ }
+
+ public final JsStyleElement createStyleElement() {
+ return createElement("style").cast();
+ }
+
+ public final JsTableCaptionElement createTableCaptionElement() {
+ return createElement("caption").cast();
+ }
+
+ public final JsTableCellElement createTableCellElement() {
+ return createElement("tablecell").cast();
+ }
+
+ public final JsTableColElement createTableColElement() {
+ return createElement("tablecol").cast();
+ }
+
+ public final JsTableElement createTableElement() {
+ return createElement("table").cast();
+ }
+
+ public final JsTableRowElement createTableRowElement() {
+ return createElement("tablerow").cast();
+ }
+
+ public final JsTableSectionElement createTableSectionElement() {
+ return createElement("tablesection").cast();
+ }
+
+ public final JsTextAreaElement createTextAreaElement() {
+ return createElement("textarea").cast();
+ }
+
+ public final JsTitleElement createTitleElement() {
+ return createElement("title").cast();
+ }
+
+ public final JsTrackElement createTrackElement() {
+ return createElement("track").cast();
+ }
+
+ public final JsUListElement createUListElement() {
+ return createElement("ulist").cast();
+ }
+
+ public final JsUnknownElement createUnknownElement() {
+ return createElement("unknown").cast();
+ }
+
+ public final JsVideoElement createVideoElement() {
+ return createElement("video").cast();
+ }
+}
diff --git a/elemental/src/elemental/js/dom/JsDocumentFragment.java b/elemental/src/elemental/js/dom/JsDocumentFragment.java
new file mode 100644
index 0000000..aaeba85
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDocumentFragment.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.Element;
+import elemental.dom.NodeList;
+import elemental.dom.DocumentFragment;
+
+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 JsDocumentFragment extends JsNode implements DocumentFragment {
+ protected JsDocumentFragment() {}
+}
diff --git a/elemental/src/elemental/js/dom/JsDocumentType.java b/elemental/src/elemental/js/dom/JsDocumentType.java
new file mode 100644
index 0000000..c61d6e4
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsDocumentType.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.NamedNodeMap;
+import elemental.dom.DocumentType;
+
+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 JsDocumentType extends JsNode implements DocumentType {
+ protected JsDocumentType() {}
+
+ public final native JsNamedNodeMap getEntities() /*-{
+ return this.entities;
+ }-*/;
+
+ public final native String getInternalSubset() /*-{
+ return this.internalSubset;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native JsNamedNodeMap getNotations() /*-{
+ return this.notations;
+ }-*/;
+
+ public final native String getPublicId() /*-{
+ return this.publicId;
+ }-*/;
+
+ public final native String getSystemId() /*-{
+ return this.systemId;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsElement.java b/elemental/src/elemental/js/dom/JsElement.java
new file mode 100644
index 0000000..13583e2
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsElement.java
@@ -0,0 +1,726 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.Element;
+import elemental.js.css.JsCSSStyleDeclaration;
+import elemental.html.HTMLCollection;
+import elemental.dom.NodeList;
+import elemental.html.ClientRect;
+import elemental.js.html.JsHTMLCollection;
+import elemental.js.util.JsMappable;
+import elemental.js.html.JsClientRect;
+import elemental.util.Mappable;
+import elemental.events.EventListener;
+import elemental.js.html.JsClientRectList;
+import elemental.dom.Attr;
+import elemental.dom.DOMTokenList;
+import elemental.css.CSSStyleDeclaration;
+import elemental.js.events.JsEventListener;
+import elemental.html.ClientRectList;
+
+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 JsElement extends JsNode implements Element {
+ protected JsElement() {}
+
+ public final native String getAccessKey() /*-{
+ return this.accessKey;
+ }-*/;
+
+ public final native void setAccessKey(String param_accessKey) /*-{
+ this.accessKey = param_accessKey;
+ }-*/;
+
+ public final native JsHTMLCollection getChildren() /*-{
+ return this.children;
+ }-*/;
+
+ public final native JsDOMTokenList getClassList() /*-{
+ return this.classList;
+ }-*/;
+
+ public final native String getClassName() /*-{
+ return this.className;
+ }-*/;
+
+ public final native void setClassName(String param_className) /*-{
+ this.className = param_className;
+ }-*/;
+
+ public final native int getClientHeight() /*-{
+ return this.clientHeight;
+ }-*/;
+
+ public final native int getClientLeft() /*-{
+ return this.clientLeft;
+ }-*/;
+
+ public final native int getClientTop() /*-{
+ return this.clientTop;
+ }-*/;
+
+ public final native int getClientWidth() /*-{
+ return this.clientWidth;
+ }-*/;
+
+ public final native String getContentEditable() /*-{
+ return this.contentEditable;
+ }-*/;
+
+ public final native void setContentEditable(String param_contentEditable) /*-{
+ this.contentEditable = param_contentEditable;
+ }-*/;
+
+ public final native JsMappable getDataset() /*-{
+ return this.dataset;
+ }-*/;
+
+ public final native String getDir() /*-{
+ return this.dir;
+ }-*/;
+
+ public final native void setDir(String param_dir) /*-{
+ this.dir = param_dir;
+ }-*/;
+
+ public final native boolean isDraggable() /*-{
+ return this.draggable;
+ }-*/;
+
+ public final native void setDraggable(boolean param_draggable) /*-{
+ this.draggable = param_draggable;
+ }-*/;
+
+ public final native boolean isHidden() /*-{
+ return this.hidden;
+ }-*/;
+
+ public final native void setHidden(boolean param_hidden) /*-{
+ this.hidden = param_hidden;
+ }-*/;
+
+ public final native String getId() /*-{
+ return this.id;
+ }-*/;
+
+ public final native void setId(String param_id) /*-{
+ this.id = param_id;
+ }-*/;
+
+ public final native String getInnerHTML() /*-{
+ return this.innerHTML;
+ }-*/;
+
+ public final native void setInnerHTML(String param_innerHTML) /*-{
+ this.innerHTML = param_innerHTML;
+ }-*/;
+
+ public final native String getInnerText() /*-{
+ return this.innerText;
+ }-*/;
+
+ public final native void setInnerText(String param_innerText) /*-{
+ this.innerText = param_innerText;
+ }-*/;
+
+ public final native boolean isContentEditable() /*-{
+ return this.isContentEditable;
+ }-*/;
+
+ public final native String getLang() /*-{
+ return this.lang;
+ }-*/;
+
+ public final native void setLang(String param_lang) /*-{
+ this.lang = param_lang;
+ }-*/;
+
+ public final native int getOffsetHeight() /*-{
+ return this.offsetHeight;
+ }-*/;
+
+ public final native int getOffsetLeft() /*-{
+ return this.offsetLeft;
+ }-*/;
+
+ public final native JsElement getOffsetParent() /*-{
+ return this.offsetParent;
+ }-*/;
+
+ public final native int getOffsetTop() /*-{
+ return this.offsetTop;
+ }-*/;
+
+ public final native int getOffsetWidth() /*-{
+ return this.offsetWidth;
+ }-*/;
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforecopy() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforecopy);
+ }-*/;
+
+ public final native void setOnbeforecopy(EventListener listener) /*-{
+ this.onbeforecopy = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforecut() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforecut);
+ }-*/;
+
+ public final native void setOnbeforecut(EventListener listener) /*-{
+ this.onbeforecut = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforepaste() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforepaste);
+ }-*/;
+
+ public final native void setOnbeforepaste(EventListener listener) /*-{
+ this.onbeforepaste = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnblur() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onblur);
+ }-*/;
+
+ public final native void setOnblur(EventListener listener) /*-{
+ this.onblur = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onchange);
+ }-*/;
+
+ public final native void setOnchange(EventListener listener) /*-{
+ this.onchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnclick() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onclick);
+ }-*/;
+
+ public final native void setOnclick(EventListener listener) /*-{
+ this.onclick = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncontextmenu() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncontextmenu);
+ }-*/;
+
+ public final native void setOncontextmenu(EventListener listener) /*-{
+ this.oncontextmenu = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncopy() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncopy);
+ }-*/;
+
+ public final native void setOncopy(EventListener listener) /*-{
+ this.oncopy = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncut() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncut);
+ }-*/;
+
+ public final native void setOncut(EventListener listener) /*-{
+ this.oncut = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndblclick() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondblclick);
+ }-*/;
+
+ public final native void setOndblclick(EventListener listener) /*-{
+ this.ondblclick = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndrag() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondrag);
+ }-*/;
+
+ public final native void setOndrag(EventListener listener) /*-{
+ this.ondrag = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragend);
+ }-*/;
+
+ public final native void setOndragend(EventListener listener) /*-{
+ this.ondragend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragenter() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragenter);
+ }-*/;
+
+ public final native void setOndragenter(EventListener listener) /*-{
+ this.ondragenter = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragleave() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragleave);
+ }-*/;
+
+ public final native void setOndragleave(EventListener listener) /*-{
+ this.ondragleave = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragover() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragover);
+ }-*/;
+
+ public final native void setOndragover(EventListener listener) /*-{
+ this.ondragover = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragstart);
+ }-*/;
+
+ public final native void setOndragstart(EventListener listener) /*-{
+ this.ondragstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndrop() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondrop);
+ }-*/;
+
+ public final native void setOndrop(EventListener listener) /*-{
+ this.ondrop = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnfocus() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onfocus);
+ }-*/;
+
+ public final native void setOnfocus(EventListener listener) /*-{
+ this.onfocus = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOninput() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oninput);
+ }-*/;
+
+ public final native void setOninput(EventListener listener) /*-{
+ this.oninput = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOninvalid() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oninvalid);
+ }-*/;
+
+ public final native void setOninvalid(EventListener listener) /*-{
+ this.oninvalid = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeydown() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeydown);
+ }-*/;
+
+ public final native void setOnkeydown(EventListener listener) /*-{
+ this.onkeydown = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeypress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeypress);
+ }-*/;
+
+ public final native void setOnkeypress(EventListener listener) /*-{
+ this.onkeypress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeyup() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeyup);
+ }-*/;
+
+ public final native void setOnkeyup(EventListener listener) /*-{
+ this.onkeyup = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onload);
+ }-*/;
+
+ public final native void setOnload(EventListener listener) /*-{
+ this.onload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousedown() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousedown);
+ }-*/;
+
+ public final native void setOnmousedown(EventListener listener) /*-{
+ this.onmousedown = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousemove() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousemove);
+ }-*/;
+
+ public final native void setOnmousemove(EventListener listener) /*-{
+ this.onmousemove = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseout() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseout);
+ }-*/;
+
+ public final native void setOnmouseout(EventListener listener) /*-{
+ this.onmouseout = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseover() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseover);
+ }-*/;
+
+ public final native void setOnmouseover(EventListener listener) /*-{
+ this.onmouseover = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseup() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseup);
+ }-*/;
+
+ public final native void setOnmouseup(EventListener listener) /*-{
+ this.onmouseup = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousewheel() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousewheel);
+ }-*/;
+
+ public final native void setOnmousewheel(EventListener listener) /*-{
+ this.onmousewheel = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnpaste() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onpaste);
+ }-*/;
+
+ public final native void setOnpaste(EventListener listener) /*-{
+ this.onpaste = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnreset() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onreset);
+ }-*/;
+
+ public final native void setOnreset(EventListener listener) /*-{
+ this.onreset = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnscroll() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onscroll);
+ }-*/;
+
+ public final native void setOnscroll(EventListener listener) /*-{
+ this.onscroll = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsearch() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsearch);
+ }-*/;
+
+ public final native void setOnsearch(EventListener listener) /*-{
+ this.onsearch = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnselect() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onselect);
+ }-*/;
+
+ public final native void setOnselect(EventListener listener) /*-{
+ this.onselect = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnselectstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onselectstart);
+ }-*/;
+
+ public final native void setOnselectstart(EventListener listener) /*-{
+ this.onselectstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsubmit() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsubmit);
+ }-*/;
+
+ public final native void setOnsubmit(EventListener listener) /*-{
+ this.onsubmit = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchcancel() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchcancel);
+ }-*/;
+
+ public final native void setOntouchcancel(EventListener listener) /*-{
+ this.ontouchcancel = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchend);
+ }-*/;
+
+ public final native void setOntouchend(EventListener listener) /*-{
+ this.ontouchend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchmove() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchmove);
+ }-*/;
+
+ public final native void setOntouchmove(EventListener listener) /*-{
+ this.ontouchmove = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchstart);
+ }-*/;
+
+ public final native void setOntouchstart(EventListener listener) /*-{
+ this.ontouchstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitfullscreenchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitfullscreenchange);
+ }-*/;
+
+ public final native void setOnwebkitfullscreenchange(EventListener listener) /*-{
+ this.onwebkitfullscreenchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitfullscreenerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitfullscreenerror);
+ }-*/;
+
+ public final native void setOnwebkitfullscreenerror(EventListener listener) /*-{
+ this.onwebkitfullscreenerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native String getOuterHTML() /*-{
+ return this.outerHTML;
+ }-*/;
+
+ public final native void setOuterHTML(String param_outerHTML) /*-{
+ this.outerHTML = param_outerHTML;
+ }-*/;
+
+ public final native String getOuterText() /*-{
+ return this.outerText;
+ }-*/;
+
+ public final native void setOuterText(String param_outerText) /*-{
+ this.outerText = param_outerText;
+ }-*/;
+
+ public final native int getScrollHeight() /*-{
+ return this.scrollHeight;
+ }-*/;
+
+ public final native int getScrollLeft() /*-{
+ return this.scrollLeft;
+ }-*/;
+
+ public final native void setScrollLeft(int param_scrollLeft) /*-{
+ this.scrollLeft = param_scrollLeft;
+ }-*/;
+
+ public final native int getScrollTop() /*-{
+ return this.scrollTop;
+ }-*/;
+
+ public final native void setScrollTop(int param_scrollTop) /*-{
+ this.scrollTop = param_scrollTop;
+ }-*/;
+
+ public final native int getScrollWidth() /*-{
+ return this.scrollWidth;
+ }-*/;
+
+ public final native boolean isSpellcheck() /*-{
+ return this.spellcheck;
+ }-*/;
+
+ public final native void setSpellcheck(boolean param_spellcheck) /*-{
+ this.spellcheck = param_spellcheck;
+ }-*/;
+
+ public final native JsCSSStyleDeclaration getStyle() /*-{
+ return this.style;
+ }-*/;
+
+ public final native int getTabIndex() /*-{
+ return this.tabIndex;
+ }-*/;
+
+ public final native void setTabIndex(int param_tabIndex) /*-{
+ this.tabIndex = param_tabIndex;
+ }-*/;
+
+ public final native String getTagName() /*-{
+ return this.tagName;
+ }-*/;
+
+ public final native String getTitle() /*-{
+ return this.title;
+ }-*/;
+
+ public final native void setTitle(String param_title) /*-{
+ this.title = param_title;
+ }-*/;
+
+ public final native boolean isTranslate() /*-{
+ return this.translate;
+ }-*/;
+
+ public final native void setTranslate(boolean param_translate) /*-{
+ this.translate = param_translate;
+ }-*/;
+
+ public final native String getWebkitRegionOverflow() /*-{
+ return this.webkitRegionOverflow;
+ }-*/;
+
+ public final native String getWebkitdropzone() /*-{
+ return this.webkitdropzone;
+ }-*/;
+
+ public final native void setWebkitdropzone(String param_webkitdropzone) /*-{
+ this.webkitdropzone = param_webkitdropzone;
+ }-*/;
+
+ public final native void blur() /*-{
+ this.blur();
+ }-*/;
+
+ public final native void focus() /*-{
+ this.focus();
+ }-*/;
+
+ public final native String getAttribute(String name) /*-{
+ return this.getAttribute(name);
+ }-*/;
+
+ public final native String getAttributeNS(String namespaceURI, String localName) /*-{
+ return this.getAttributeNS(namespaceURI, localName);
+ }-*/;
+
+ public final native JsAttr getAttributeNode(String name) /*-{
+ return this.getAttributeNode(name);
+ }-*/;
+
+ public final native JsAttr getAttributeNodeNS(String namespaceURI, String localName) /*-{
+ return this.getAttributeNodeNS(namespaceURI, localName);
+ }-*/;
+
+ public final native JsClientRect getBoundingClientRect() /*-{
+ return this.getBoundingClientRect();
+ }-*/;
+
+ public final native JsClientRectList getClientRects() /*-{
+ return this.getClientRects();
+ }-*/;
+
+ public final native JsNodeList getElementsByClassName(String name) /*-{
+ return this.getElementsByClassName(name);
+ }-*/;
+
+ public final native JsNodeList getElementsByTagName(String name) /*-{
+ return this.getElementsByTagName(name);
+ }-*/;
+
+ public final native JsNodeList getElementsByTagNameNS(String namespaceURI, String localName) /*-{
+ return this.getElementsByTagNameNS(namespaceURI, localName);
+ }-*/;
+
+ public final native boolean hasAttribute(String name) /*-{
+ return this.hasAttribute(name);
+ }-*/;
+
+ public final native boolean hasAttributeNS(String namespaceURI, String localName) /*-{
+ return this.hasAttributeNS(namespaceURI, localName);
+ }-*/;
+
+ public final native void removeAttribute(String name) /*-{
+ this.removeAttribute(name);
+ }-*/;
+
+ public final native void removeAttributeNS(String namespaceURI, String localName) /*-{
+ this.removeAttributeNS(namespaceURI, localName);
+ }-*/;
+
+ public final native JsAttr removeAttributeNode(Attr oldAttr) /*-{
+ return this.removeAttributeNode(oldAttr);
+ }-*/;
+
+ public final native void scrollByLines(int lines) /*-{
+ this.scrollByLines(lines);
+ }-*/;
+
+ public final native void scrollByPages(int pages) /*-{
+ this.scrollByPages(pages);
+ }-*/;
+
+ public final native void scrollIntoView() /*-{
+ this.scrollIntoView();
+ }-*/;
+
+ public final native void scrollIntoView(boolean alignWithTop) /*-{
+ this.scrollIntoView(alignWithTop);
+ }-*/;
+
+ public final native void scrollIntoViewIfNeeded() /*-{
+ this.scrollIntoViewIfNeeded();
+ }-*/;
+
+ public final native void scrollIntoViewIfNeeded(boolean centerIfNeeded) /*-{
+ this.scrollIntoViewIfNeeded(centerIfNeeded);
+ }-*/;
+
+ public final native void setAttribute(String name, String value) /*-{
+ this.setAttribute(name, value);
+ }-*/;
+
+ public final native void setAttributeNS(String namespaceURI, String qualifiedName, String value) /*-{
+ this.setAttributeNS(namespaceURI, qualifiedName, value);
+ }-*/;
+
+ public final native JsAttr setAttributeNode(Attr newAttr) /*-{
+ return this.setAttributeNode(newAttr);
+ }-*/;
+
+ public final native JsAttr setAttributeNodeNS(Attr newAttr) /*-{
+ return this.setAttributeNodeNS(newAttr);
+ }-*/;
+
+ public final native boolean webkitMatchesSelector(String selectors) /*-{
+ return this.webkitMatchesSelector(selectors);
+ }-*/;
+
+ public final native void webkitRequestFullScreen(int flags) /*-{
+ this.webkitRequestFullScreen(flags);
+ }-*/;
+
+ public final native void webkitRequestFullscreen() /*-{
+ this.webkitRequestFullscreen();
+ }-*/;
+
+ public final native void click() /*-{
+ this.click();
+ }-*/;
+
+ public final native JsElement insertAdjacentElement(String where, Element element) /*-{
+ return this.insertAdjacentElement(where, element);
+ }-*/;
+
+ public final native void insertAdjacentHTML(String where, String html) /*-{
+ this.insertAdjacentHTML(where, html);
+ }-*/;
+
+ public final native void insertAdjacentText(String where, String text) /*-{
+ this.insertAdjacentText(where, text);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsElementalMixinBase.java b/elemental/src/elemental/js/dom/JsElementalMixinBase.java
new file mode 100644
index 0000000..e65658c
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsElementalMixinBase.java
@@ -0,0 +1,381 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.svg.SVGStringList;
+import elemental.js.svg.JsSVGStringList;
+import elemental.dom.ElementalMixinBase;
+import elemental.js.events.JsEventListener;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGAnimatedString;
+import elemental.js.svg.JsSVGAnimatedTransformList;
+import elemental.css.CSSValue;
+import elemental.js.svg.JsSVGAnimatedBoolean;
+import elemental.js.svg.JsSVGElement;
+import elemental.svg.SVGRect;
+import elemental.dom.NodeList;
+import elemental.dom.Element;
+import elemental.svg.SVGAnimatedTransformList;
+import elemental.svg.SVGAnimatedBoolean;
+import elemental.svg.SVGMatrix;
+import elemental.js.svg.JsSVGRect;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedPreserveAspectRatio;
+import elemental.js.svg.JsSVGMatrix;
+import elemental.js.svg.JsSVGAnimatedString;
+import elemental.events.Event;
+import elemental.js.css.JsCSSStyleDeclaration;
+import elemental.js.events.JsEvent;
+import elemental.js.svg.JsSVGAnimatedLength;
+import elemental.svg.SVGAnimatedRect;
+import elemental.events.EventListener;
+import elemental.js.svg.JsSVGAnimatedRect;
+import elemental.js.css.JsCSSValue;
+import elemental.css.CSSStyleDeclaration;
+import elemental.js.svg.JsSVGAnimatedPreserveAspectRatio;
+
+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 JsElementalBase implements ElementalMixinBase, EventTarget, SVGZoomAndPan, SVGLocatable, SVGLangSpace, SVGFilterPrimitiveStandardAttributes, ElementTimeControl, SVGTests, SVGURIReference, IndexableInt, IndexableNumber, SVGFitToViewBox, SVGTransformable, NodeSelector, SVGExternalResourcesRequired, SVGStylable, ElementTraversal {
+ protected JsElementalMixinBase() {}
+
+ public final native int getChildElementCount() /*-{
+ return this.childElementCount;
+ }-*/;
+
+ public final native JsSVGAnimatedString getAnimatedClassName() /*-{
+ return this.className;
+ }-*/;
+
+ public final native JsSVGAnimatedBoolean getExternalResourcesRequired() /*-{
+ return this.externalResourcesRequired;
+ }-*/;
+
+ public final native JsSVGElement getFarthestViewportElement() /*-{
+ return this.farthestViewportElement;
+ }-*/;
+
+ public final native JsElement getFirstElementChild() /*-{
+ return this.firstElementChild;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getAnimatedHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native JsSVGAnimatedString getAnimatedHref() /*-{
+ return this.href;
+ }-*/;
+
+ public final native JsElement getLastElementChild() /*-{
+ return this.lastElementChild;
+ }-*/;
+
+ public final native JsSVGElement getNearestViewportElement() /*-{
+ return this.nearestViewportElement;
+ }-*/;
+
+ public final native JsElement getNextElementSibling() /*-{
+ return this.nextElementSibling;
+ }-*/;
+
+ public final native JsSVGAnimatedPreserveAspectRatio getPreserveAspectRatio() /*-{
+ return this.preserveAspectRatio;
+ }-*/;
+
+ public final native JsElement getPreviousElementSibling() /*-{
+ return this.previousElementSibling;
+ }-*/;
+
+ public final native JsSVGStringList getRequiredExtensions() /*-{
+ return this.requiredExtensions;
+ }-*/;
+
+ public final native JsSVGStringList getRequiredFeatures() /*-{
+ return this.requiredFeatures;
+ }-*/;
+
+ public final native JsSVGAnimatedString getAnimatedResult() /*-{
+ return this.result;
+ }-*/;
+
+ public final native JsCSSStyleDeclaration getSvgStyle() /*-{
+ return this.style;
+ }-*/;
+
+ public final native JsSVGStringList getSystemLanguage() /*-{
+ return this.systemLanguage;
+ }-*/;
+
+ public final native JsSVGAnimatedTransformList getAnimatedTransform() /*-{
+ return this.transform;
+ }-*/;
+
+ public final native JsSVGAnimatedRect getViewBox() /*-{
+ return this.viewBox;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getAnimatedWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getAnimatedX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native String getXmllang() /*-{
+ return this.xmllang;
+ }-*/;
+
+ public final native void setXmllang(String param_xmllang) /*-{
+ this.xmllang = param_xmllang;
+ }-*/;
+
+ public final native String getXmlspace() /*-{
+ return this.xmlspace;
+ }-*/;
+
+ public final native void setXmlspace(String param_xmlspace) /*-{
+ this.xmlspace = param_xmlspace;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getAnimatedY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native int getZoomAndPan() /*-{
+ return this.zoomAndPan;
+ }-*/;
+
+ public final native void setZoomAndPan(int param_zoomAndPan) /*-{
+ this.zoomAndPan = param_zoomAndPan;
+ }-*/;
+
+ public final native boolean dispatchEvent(Event event) /*-{
+ return this.dispatchEvent(event);
+ }-*/;
+
+ public final native JsSVGRect getBBox() /*-{
+ return this.getBBox();
+ }-*/;
+
+ public final native JsSVGMatrix getCTM() /*-{
+ return this.getCTM();
+ }-*/;
+
+ public final native JsSVGMatrix getScreenCTM() /*-{
+ return this.getScreenCTM();
+ }-*/;
+
+ public final native JsSVGMatrix getTransformToElement(SVGElement element) /*-{
+ return this.getTransformToElement(element);
+ }-*/;
+
+ public final native void beginElement() /*-{
+ this.beginElement();
+ }-*/;
+
+ public final native void beginElementAt(float offset) /*-{
+ this.beginElementAt(offset);
+ }-*/;
+
+ public final native void endElement() /*-{
+ this.endElement();
+ }-*/;
+
+ public final native void endElementAt(float offset) /*-{
+ this.endElementAt(offset);
+ }-*/;
+
+ public final native boolean hasExtension(String extension) /*-{
+ return this.hasExtension(extension);
+ }-*/;
+
+ public final native JsElement querySelector(String selectors) /*-{
+ return this.querySelector(selectors);
+ }-*/;
+
+ public final native JsNodeList querySelectorAll(String selectors) /*-{
+ return this.querySelectorAll(selectors);
+ }-*/;
+
+ public final native JsCSSValue getPresentationAttribute(String name) /*-{
+ return this.getPresentationAttribute(name);
+ }-*/;
+
+
+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/src/elemental/js/dom/JsEntity.java b/elemental/src/elemental/js/dom/JsEntity.java
new file mode 100644
index 0000000..760c064
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsEntity.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.Entity;
+
+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 JsEntity extends JsNode implements Entity {
+ protected JsEntity() {}
+
+ public final native String getNotationName() /*-{
+ return this.notationName;
+ }-*/;
+
+ public final native String getPublicId() /*-{
+ return this.publicId;
+ }-*/;
+
+ public final native String getSystemId() /*-{
+ return this.systemId;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsEntityReference.java b/elemental/src/elemental/js/dom/JsEntityReference.java
new file mode 100644
index 0000000..c58afc7
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsEntityReference.java
@@ -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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.EntityReference;
+
+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 JsEntityReference extends JsNode implements EntityReference {
+ protected JsEntityReference() {}
+}
diff --git a/elemental/src/elemental/js/dom/JsGeolocation.java b/elemental/src/elemental/js/dom/JsGeolocation.java
new file mode 100644
index 0000000..1e1474d
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsGeolocation.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Geolocation;
+import elemental.dom.PositionCallback;
+import elemental.dom.PositionErrorCallback;
+
+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 JsGeolocation extends JsElementalMixinBase implements Geolocation {
+ protected JsGeolocation() {}
+
+ public final native void clearWatch(int watchId) /*-{
+ this.clearWatch(watchId);
+ }-*/;
+
+ public final native void getCurrentPosition(PositionCallback successCallback) /*-{
+ this.getCurrentPosition($entry(successCallback.@elemental.dom.PositionCallback::onPositionCallback(Lelemental/dom/Geoposition;)).bind(successCallback));
+ }-*/;
+
+ public final native void getCurrentPosition(PositionCallback successCallback, PositionErrorCallback errorCallback) /*-{
+ this.getCurrentPosition($entry(successCallback.@elemental.dom.PositionCallback::onPositionCallback(Lelemental/dom/Geoposition;)).bind(successCallback), $entry(errorCallback.@elemental.dom.PositionErrorCallback::onPositionErrorCallback(Lelemental/dom/PositionError;)).bind(errorCallback));
+ }-*/;
+
+ public final native int watchPosition(PositionCallback successCallback) /*-{
+ return this.watchPosition($entry(successCallback.@elemental.dom.PositionCallback::onPositionCallback(Lelemental/dom/Geoposition;)).bind(successCallback));
+ }-*/;
+
+ public final native int watchPosition(PositionCallback successCallback, PositionErrorCallback errorCallback) /*-{
+ return this.watchPosition($entry(successCallback.@elemental.dom.PositionCallback::onPositionCallback(Lelemental/dom/Geoposition;)).bind(successCallback), $entry(errorCallback.@elemental.dom.PositionErrorCallback::onPositionErrorCallback(Lelemental/dom/PositionError;)).bind(errorCallback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsGeoposition.java b/elemental/src/elemental/js/dom/JsGeoposition.java
new file mode 100644
index 0000000..e9d5422
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsGeoposition.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Coordinates;
+import elemental.dom.Geoposition;
+
+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 JsGeoposition extends JsElementalMixinBase implements Geoposition {
+ protected JsGeoposition() {}
+
+ public final native JsCoordinates getCoords() /*-{
+ return this.coords;
+ }-*/;
+
+ public final native double getTimestamp() /*-{
+ return this.timestamp;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsLocalMediaStream.java b/elemental/src/elemental/js/dom/JsLocalMediaStream.java
new file mode 100644
index 0000000..b6ca8db
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsLocalMediaStream.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.MediaStream;
+import elemental.dom.LocalMediaStream;
+
+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 JsLocalMediaStream extends JsMediaStream implements LocalMediaStream {
+ protected JsLocalMediaStream() {}
+
+ public final native void stop() /*-{
+ this.stop();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsMediaStream.java b/elemental/src/elemental/js/dom/JsMediaStream.java
new file mode 100644
index 0000000..cbf0926
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsMediaStream.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.MediaStream;
+import elemental.dom.MediaStreamTrackList;
+import elemental.js.events.JsEvent;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsMediaStream extends JsElementalMixinBase implements MediaStream {
+ protected JsMediaStream() {}
+
+ public final native JsMediaStreamTrackList getAudioTracks() /*-{
+ return this.audioTracks;
+ }-*/;
+
+ public final native String getLabel() /*-{
+ return this.label;
+ }-*/;
+
+ public final native EventListener getOnended() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onended);
+ }-*/;
+
+ public final native void setOnended(EventListener listener) /*-{
+ this.onended = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native JsMediaStreamTrackList getVideoTracks() /*-{
+ return this.videoTracks;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsMediaStreamList.java b/elemental/src/elemental/js/dom/JsMediaStreamList.java
new file mode 100644
index 0000000..aba65fb
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsMediaStreamList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.MediaStream;
+import elemental.dom.MediaStreamList;
+
+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 JsMediaStreamList extends JsElementalMixinBase implements MediaStreamList {
+ protected JsMediaStreamList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsMediaStream item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsMediaStreamTrack.java b/elemental/src/elemental/js/dom/JsMediaStreamTrack.java
new file mode 100644
index 0000000..eda6b20
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsMediaStreamTrack.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.MediaStreamTrack;
+
+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 JsMediaStreamTrack extends JsElementalMixinBase implements MediaStreamTrack {
+ protected JsMediaStreamTrack() {}
+
+ public final native boolean isEnabled() /*-{
+ return this.enabled;
+ }-*/;
+
+ public final native void setEnabled(boolean param_enabled) /*-{
+ this.enabled = param_enabled;
+ }-*/;
+
+ public final native String getKind() /*-{
+ return this.kind;
+ }-*/;
+
+ public final native String getLabel() /*-{
+ return this.label;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsMediaStreamTrackList.java b/elemental/src/elemental/js/dom/JsMediaStreamTrackList.java
new file mode 100644
index 0000000..c7a6e9f
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsMediaStreamTrackList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.MediaStreamTrack;
+import elemental.dom.MediaStreamTrackList;
+
+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 JsMediaStreamTrackList extends JsElementalMixinBase implements MediaStreamTrackList {
+ protected JsMediaStreamTrackList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsMediaStreamTrack item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsMutationRecord.java b/elemental/src/elemental/js/dom/JsMutationRecord.java
new file mode 100644
index 0000000..32adb1b
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsMutationRecord.java
@@ -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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.MutationRecord;
+import elemental.dom.NodeList;
+
+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 JsMutationRecord extends JsElementalMixinBase implements MutationRecord {
+ protected JsMutationRecord() {}
+
+ public final native JsNodeList getAddedNodes() /*-{
+ return this.addedNodes;
+ }-*/;
+
+ public final native String getAttributeName() /*-{
+ return this.attributeName;
+ }-*/;
+
+ public final native String getAttributeNamespace() /*-{
+ return this.attributeNamespace;
+ }-*/;
+
+ public final native JsNode getNextSibling() /*-{
+ return this.nextSibling;
+ }-*/;
+
+ public final native String getOldValue() /*-{
+ return this.oldValue;
+ }-*/;
+
+ public final native JsNode getPreviousSibling() /*-{
+ return this.previousSibling;
+ }-*/;
+
+ public final native JsNodeList getRemovedNodes() /*-{
+ return this.removedNodes;
+ }-*/;
+
+ public final native JsNode getTarget() /*-{
+ return this.target;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsNamedNodeMap.java b/elemental/src/elemental/js/dom/JsNamedNodeMap.java
new file mode 100644
index 0000000..e4a5062
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsNamedNodeMap.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.NamedNodeMap;
+
+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 JsNamedNodeMap extends JsIndexable implements NamedNodeMap, Indexable {
+ protected JsNamedNodeMap() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsNode getNamedItem(String name) /*-{
+ return this.getNamedItem(name);
+ }-*/;
+
+ public final native JsNode getNamedItemNS(String namespaceURI, String localName) /*-{
+ return this.getNamedItemNS(namespaceURI, localName);
+ }-*/;
+
+ public final native JsNode item(int index) /*-{
+ return this.item(index);
+ }-*/;
+
+ public final native JsNode removeNamedItem(String name) /*-{
+ return this.removeNamedItem(name);
+ }-*/;
+
+ public final native JsNode removeNamedItemNS(String namespaceURI, String localName) /*-{
+ return this.removeNamedItemNS(namespaceURI, localName);
+ }-*/;
+
+ public final native JsNode setNamedItem(Node node) /*-{
+ return this.setNamedItem(node);
+ }-*/;
+
+ public final native JsNode setNamedItemNS(Node node) /*-{
+ return this.setNamedItemNS(node);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsNode.java b/elemental/src/elemental/js/dom/JsNode.java
new file mode 100644
index 0000000..14cb352
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsNode.java
@@ -0,0 +1,191 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.Element;
+import elemental.dom.NamedNodeMap;
+import elemental.js.events.JsEvent;
+import elemental.events.EventListener;
+import elemental.events.Event;
+import elemental.dom.NodeList;
+import elemental.js.events.JsEventListener;
+import elemental.dom.Document;
+
+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 JsNode extends JsElementalMixinBase implements Node {
+ protected JsNode() {}
+
+ public final native JsNamedNodeMap getAttributes() /*-{
+ return this.attributes;
+ }-*/;
+
+ public final native String getBaseURI() /*-{
+ return this.baseURI;
+ }-*/;
+
+ public final native JsNodeList getChildNodes() /*-{
+ return this.childNodes;
+ }-*/;
+
+ public final native JsNode getFirstChild() /*-{
+ return this.firstChild;
+ }-*/;
+
+ public final native JsNode getLastChild() /*-{
+ return this.lastChild;
+ }-*/;
+
+ public final native String getLocalName() /*-{
+ return this.localName;
+ }-*/;
+
+ public final native String getNamespaceURI() /*-{
+ return this.namespaceURI;
+ }-*/;
+
+ public final native JsNode getNextSibling() /*-{
+ return this.nextSibling;
+ }-*/;
+
+ public final native String getNodeName() /*-{
+ return this.nodeName;
+ }-*/;
+
+ public final native int getNodeType() /*-{
+ return this.nodeType;
+ }-*/;
+
+ public final native String getNodeValue() /*-{
+ return this.nodeValue;
+ }-*/;
+
+ public final native void setNodeValue(String param_nodeValue) /*-{
+ this.nodeValue = param_nodeValue;
+ }-*/;
+
+ public final native JsDocument getOwnerDocument() /*-{
+ return this.ownerDocument;
+ }-*/;
+
+ public final native JsElement getParentElement() /*-{
+ return this.parentElement;
+ }-*/;
+
+ public final native JsNode getParentNode() /*-{
+ return this.parentNode;
+ }-*/;
+
+ public final native String getPrefix() /*-{
+ return this.prefix;
+ }-*/;
+
+ public final native void setPrefix(String param_prefix) /*-{
+ this.prefix = param_prefix;
+ }-*/;
+
+ public final native JsNode getPreviousSibling() /*-{
+ return this.previousSibling;
+ }-*/;
+
+ public final native String getTextContent() /*-{
+ return this.textContent;
+ }-*/;
+
+ public final native void setTextContent(String param_textContent) /*-{
+ this.textContent = param_textContent;
+ }-*/;
+
+ public final native JsNode appendChild(Node newChild) /*-{
+ return this.appendChild(newChild);
+ }-*/;
+
+ public final native JsNode cloneNode(boolean deep) /*-{
+ return this.cloneNode(deep);
+ }-*/;
+
+ public final native int compareDocumentPosition(Node other) /*-{
+ return this.compareDocumentPosition(other);
+ }-*/;
+
+ public final native boolean contains(Node other) /*-{
+ return this.contains(other);
+ }-*/;
+
+ public final native boolean hasAttributes() /*-{
+ return this.hasAttributes();
+ }-*/;
+
+ public final native boolean hasChildNodes() /*-{
+ return this.hasChildNodes();
+ }-*/;
+
+ public final native JsNode insertBefore(Node newChild, Node refChild) /*-{
+ return this.insertBefore(newChild, refChild);
+ }-*/;
+
+ public final native boolean isDefaultNamespace(String namespaceURI) /*-{
+ return this.isDefaultNamespace(namespaceURI);
+ }-*/;
+
+ public final native boolean isEqualNode(Node other) /*-{
+ return this.isEqualNode(other);
+ }-*/;
+
+ public final native boolean isSameNode(Node other) /*-{
+ return this.isSameNode(other);
+ }-*/;
+
+ public final native boolean isSupported(String feature, String version) /*-{
+ return this.isSupported(feature, version);
+ }-*/;
+
+ public final native String lookupNamespaceURI(String prefix) /*-{
+ return this.lookupNamespaceURI(prefix);
+ }-*/;
+
+ public final native String lookupPrefix(String namespaceURI) /*-{
+ return this.lookupPrefix(namespaceURI);
+ }-*/;
+
+ public final native void normalize() /*-{
+ this.normalize();
+ }-*/;
+
+ public final native JsNode removeChild(Node oldChild) /*-{
+ return this.removeChild(oldChild);
+ }-*/;
+
+ public final native JsNode replaceChild(Node newChild, Node oldChild) /*-{
+ return this.replaceChild(newChild, oldChild);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsNodeList.java b/elemental/src/elemental/js/dom/JsNodeList.java
new file mode 100644
index 0000000..4a0bfb7
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsNodeList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.NodeList;
+
+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 JsNodeList extends JsIndexable implements NodeList, Indexable {
+ protected JsNodeList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsNode item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsNotation.java b/elemental/src/elemental/js/dom/JsNotation.java
new file mode 100644
index 0000000..0ad86dc
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsNotation.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.Notation;
+
+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 JsNotation extends JsNode implements Notation {
+ protected JsNotation() {}
+
+ public final native String getPublicId() /*-{
+ return this.publicId;
+ }-*/;
+
+ public final native String getSystemId() /*-{
+ return this.systemId;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsPointerLock.java b/elemental/src/elemental/js/dom/JsPointerLock.java
new file mode 100644
index 0000000..cbb29ce
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsPointerLock.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Element;
+import elemental.dom.PointerLock;
+import elemental.html.VoidCallback;
+
+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 JsPointerLock extends JsElementalMixinBase implements PointerLock {
+ protected JsPointerLock() {}
+
+ public final native boolean isLocked() /*-{
+ return this.isLocked;
+ }-*/;
+
+ public final native void lock(Element target) /*-{
+ this.lock(target);
+ }-*/;
+
+ public final native void lock(Element target, VoidCallback successCallback) /*-{
+ this.lock(target, $entry(successCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(successCallback));
+ }-*/;
+
+ public final native void lock(Element target, VoidCallback successCallback, VoidCallback failureCallback) /*-{
+ this.lock(target, $entry(successCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(successCallback), $entry(failureCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(failureCallback));
+ }-*/;
+
+ public final native void unlock() /*-{
+ this.unlock();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsPositionError.java b/elemental/src/elemental/js/dom/JsPositionError.java
new file mode 100644
index 0000000..e05c941
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsPositionError.java
@@ -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 elemental.js.dom;
+import elemental.dom.PositionError;
+
+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 JsPositionError extends JsElementalMixinBase implements PositionError {
+ protected JsPositionError() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsProcessingInstruction.java b/elemental/src/elemental/js/dom/JsProcessingInstruction.java
new file mode 100644
index 0000000..2cffb85
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsProcessingInstruction.java
@@ -0,0 +1,58 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.js.stylesheets.JsStyleSheet;
+import elemental.dom.Node;
+import elemental.dom.ProcessingInstruction;
+import elemental.stylesheets.StyleSheet;
+
+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 JsProcessingInstruction extends JsNode implements ProcessingInstruction {
+ protected JsProcessingInstruction() {}
+
+ public final native String getData() /*-{
+ return this.data;
+ }-*/;
+
+ public final native void setData(String param_data) /*-{
+ this.data = param_data;
+ }-*/;
+
+ public final native JsStyleSheet getSheet() /*-{
+ return this.sheet;
+ }-*/;
+
+ public final native String getTarget() /*-{
+ return this.target;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsScriptProfile.java b/elemental/src/elemental/js/dom/JsScriptProfile.java
new file mode 100644
index 0000000..900c509
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsScriptProfile.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.ScriptProfile;
+import elemental.dom.ScriptProfileNode;
+
+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 JsScriptProfile extends JsElementalMixinBase implements ScriptProfile {
+ protected JsScriptProfile() {}
+
+ public final native JsScriptProfileNode getHead() /*-{
+ return this.head;
+ }-*/;
+
+ public final native String getTitle() /*-{
+ return this.title;
+ }-*/;
+
+ public final native int getUid() /*-{
+ return this.uid;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsScriptProfileNode.java b/elemental/src/elemental/js/dom/JsScriptProfileNode.java
new file mode 100644
index 0000000..e9a5063
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsScriptProfileNode.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.ScriptProfileNode;
+
+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 JsScriptProfileNode extends JsElementalMixinBase implements ScriptProfileNode {
+ protected JsScriptProfileNode() {}
+
+ public final native int getCallUID() /*-{
+ return this.callUID;
+ }-*/;
+
+ public final native JsIndexable getChildren() /*-{
+ return this.children;
+ }-*/;
+
+ public final native String getFunctionName() /*-{
+ return this.functionName;
+ }-*/;
+
+ public final native int getLineNumber() /*-{
+ return this.lineNumber;
+ }-*/;
+
+ public final native int getNumberOfCalls() /*-{
+ return this.numberOfCalls;
+ }-*/;
+
+ public final native double getSelfTime() /*-{
+ return this.selfTime;
+ }-*/;
+
+ public final native double getTotalTime() /*-{
+ return this.totalTime;
+ }-*/;
+
+ public final native String getUrl() /*-{
+ return this.url;
+ }-*/;
+
+ public final native boolean isVisible() /*-{
+ return this.visible;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsShadowRoot.java b/elemental/src/elemental/js/dom/JsShadowRoot.java
new file mode 100644
index 0000000..13c6969
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsShadowRoot.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Element;
+import elemental.dom.ShadowRoot;
+import elemental.js.html.JsSelection;
+import elemental.dom.DocumentFragment;
+import elemental.html.Selection;
+import elemental.dom.NodeList;
+
+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 JsShadowRoot extends JsDocumentFragment implements ShadowRoot {
+ protected JsShadowRoot() {}
+
+ public final native JsElement getActiveElement() /*-{
+ return this.activeElement;
+ }-*/;
+
+ public final native boolean isApplyAuthorStyles() /*-{
+ return this.applyAuthorStyles;
+ }-*/;
+
+ public final native void setApplyAuthorStyles(boolean param_applyAuthorStyles) /*-{
+ this.applyAuthorStyles = param_applyAuthorStyles;
+ }-*/;
+
+ public final native JsElement getHost() /*-{
+ return this.host;
+ }-*/;
+
+ public final native String getInnerHTML() /*-{
+ return this.innerHTML;
+ }-*/;
+
+ public final native void setInnerHTML(String param_innerHTML) /*-{
+ this.innerHTML = param_innerHTML;
+ }-*/;
+
+ public final native JsElement getElementById(String elementId) /*-{
+ return this.getElementById(elementId);
+ }-*/;
+
+ public final native JsNodeList getElementsByClassName(String className) /*-{
+ return this.getElementsByClassName(className);
+ }-*/;
+
+ public final native JsNodeList getElementsByTagName(String tagName) /*-{
+ return this.getElementsByTagName(tagName);
+ }-*/;
+
+ public final native JsNodeList getElementsByTagNameNS(String namespaceURI, String localName) /*-{
+ return this.getElementsByTagNameNS(namespaceURI, localName);
+ }-*/;
+
+ public final native JsSelection getSelection() /*-{
+ return this.getSelection();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechGrammar.java b/elemental/src/elemental/js/dom/JsSpeechGrammar.java
new file mode 100644
index 0000000..ee651ff
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechGrammar.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.SpeechGrammar;
+
+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 JsSpeechGrammar extends JsElementalMixinBase implements SpeechGrammar {
+ protected JsSpeechGrammar() {}
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native float getWeight() /*-{
+ return this.weight;
+ }-*/;
+
+ public final native void setWeight(float param_weight) /*-{
+ this.weight = param_weight;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechGrammarList.java b/elemental/src/elemental/js/dom/JsSpeechGrammarList.java
new file mode 100644
index 0000000..296f11d
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechGrammarList.java
@@ -0,0 +1,64 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.SpeechGrammarList;
+import elemental.dom.SpeechGrammar;
+
+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 JsSpeechGrammarList extends JsElementalMixinBase implements SpeechGrammarList {
+ protected JsSpeechGrammarList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void addFromString(String string) /*-{
+ this.addFromString(string);
+ }-*/;
+
+ public final native void addFromString(String string, float weight) /*-{
+ this.addFromString(string, weight);
+ }-*/;
+
+ public final native void addFromUri(String src) /*-{
+ this.addFromUri(src);
+ }-*/;
+
+ public final native void addFromUri(String src, float weight) /*-{
+ this.addFromUri(src, weight);
+ }-*/;
+
+ public final native JsSpeechGrammar item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechInputEvent.java b/elemental/src/elemental/js/dom/JsSpeechInputEvent.java
new file mode 100644
index 0000000..4a2e8ab
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechInputEvent.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.SpeechInputResultList;
+import elemental.js.events.JsEvent;
+import elemental.dom.SpeechInputEvent;
+import elemental.events.Event;
+
+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 JsSpeechInputEvent extends JsEvent implements SpeechInputEvent {
+ protected JsSpeechInputEvent() {}
+
+ public final native JsSpeechInputResultList getResults() /*-{
+ return this.results;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechInputResult.java b/elemental/src/elemental/js/dom/JsSpeechInputResult.java
new file mode 100644
index 0000000..59223f0
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechInputResult.java
@@ -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 elemental.js.dom;
+import elemental.dom.SpeechInputResult;
+
+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 JsSpeechInputResult extends JsElementalMixinBase implements SpeechInputResult {
+ protected JsSpeechInputResult() {}
+
+ public final native float getConfidence() /*-{
+ return this.confidence;
+ }-*/;
+
+ public final native String getUtterance() /*-{
+ return this.utterance;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechInputResultList.java b/elemental/src/elemental/js/dom/JsSpeechInputResultList.java
new file mode 100644
index 0000000..c22d0ba
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechInputResultList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.SpeechInputResultList;
+import elemental.dom.SpeechInputResult;
+
+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 JsSpeechInputResultList extends JsElementalMixinBase implements SpeechInputResultList {
+ protected JsSpeechInputResultList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsSpeechInputResult item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechRecognition.java b/elemental/src/elemental/js/dom/JsSpeechRecognition.java
new file mode 100644
index 0000000..b69b8c2
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechRecognition.java
@@ -0,0 +1,164 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.SpeechGrammarList;
+import elemental.js.events.JsEvent;
+import elemental.events.EventListener;
+import elemental.dom.SpeechRecognition;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsSpeechRecognition extends JsElementalMixinBase implements SpeechRecognition {
+ protected JsSpeechRecognition() {}
+
+ public final native boolean isContinuous() /*-{
+ return this.continuous;
+ }-*/;
+
+ public final native void setContinuous(boolean param_continuous) /*-{
+ this.continuous = param_continuous;
+ }-*/;
+
+ public final native JsSpeechGrammarList getGrammars() /*-{
+ return this.grammars;
+ }-*/;
+
+ public final native void setGrammars(SpeechGrammarList param_grammars) /*-{
+ this.grammars = param_grammars;
+ }-*/;
+
+ public final native String getLang() /*-{
+ return this.lang;
+ }-*/;
+
+ public final native void setLang(String param_lang) /*-{
+ this.lang = param_lang;
+ }-*/;
+
+ public final native EventListener getOnaudioend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onaudioend);
+ }-*/;
+
+ public final native void setOnaudioend(EventListener listener) /*-{
+ this.onaudioend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnaudiostart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onaudiostart);
+ }-*/;
+
+ public final native void setOnaudiostart(EventListener listener) /*-{
+ this.onaudiostart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onend);
+ }-*/;
+
+ public final native void setOnend(EventListener listener) /*-{
+ this.onend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnnomatch() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onnomatch);
+ }-*/;
+
+ public final native void setOnnomatch(EventListener listener) /*-{
+ this.onnomatch = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnresult() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onresult);
+ }-*/;
+
+ public final native void setOnresult(EventListener listener) /*-{
+ this.onresult = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnresultdeleted() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onresultdeleted);
+ }-*/;
+
+ public final native void setOnresultdeleted(EventListener listener) /*-{
+ this.onresultdeleted = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsoundend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsoundend);
+ }-*/;
+
+ public final native void setOnsoundend(EventListener listener) /*-{
+ this.onsoundend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsoundstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsoundstart);
+ }-*/;
+
+ public final native void setOnsoundstart(EventListener listener) /*-{
+ this.onsoundstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnspeechend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onspeechend);
+ }-*/;
+
+ public final native void setOnspeechend(EventListener listener) /*-{
+ this.onspeechend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnspeechstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onspeechstart);
+ }-*/;
+
+ public final native void setOnspeechstart(EventListener listener) /*-{
+ this.onspeechstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onstart);
+ }-*/;
+
+ public final native void setOnstart(EventListener listener) /*-{
+ this.onstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native void abort() /*-{
+ this.abort();
+ }-*/;
+
+ public final native void start() /*-{
+ this.start();
+ }-*/;
+
+ public final native void stop() /*-{
+ this.stop();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechRecognitionAlternative.java b/elemental/src/elemental/js/dom/JsSpeechRecognitionAlternative.java
new file mode 100644
index 0000000..302ab71
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechRecognitionAlternative.java
@@ -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 elemental.js.dom;
+import elemental.dom.SpeechRecognitionAlternative;
+
+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 JsSpeechRecognitionAlternative extends JsElementalMixinBase implements SpeechRecognitionAlternative {
+ protected JsSpeechRecognitionAlternative() {}
+
+ public final native float getConfidence() /*-{
+ return this.confidence;
+ }-*/;
+
+ public final native String getTranscript() /*-{
+ return this.transcript;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechRecognitionError.java b/elemental/src/elemental/js/dom/JsSpeechRecognitionError.java
new file mode 100644
index 0000000..3753d48
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechRecognitionError.java
@@ -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 elemental.js.dom;
+import elemental.dom.SpeechRecognitionError;
+
+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 JsSpeechRecognitionError extends JsElementalMixinBase implements SpeechRecognitionError {
+ protected JsSpeechRecognitionError() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechRecognitionResult.java b/elemental/src/elemental/js/dom/JsSpeechRecognitionResult.java
new file mode 100644
index 0000000..073517b
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechRecognitionResult.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.SpeechRecognitionAlternative;
+import elemental.dom.SpeechRecognitionResult;
+
+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 JsSpeechRecognitionResult extends JsElementalMixinBase implements SpeechRecognitionResult {
+ protected JsSpeechRecognitionResult() {}
+
+ public final native boolean isFinalValue() /*-{
+ return this['final'];
+ }-*/;
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsSpeechRecognitionAlternative item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsSpeechRecognitionResultList.java b/elemental/src/elemental/js/dom/JsSpeechRecognitionResultList.java
new file mode 100644
index 0000000..be9f8fe
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsSpeechRecognitionResultList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.SpeechRecognitionResultList;
+import elemental.dom.SpeechRecognitionResult;
+
+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 JsSpeechRecognitionResultList extends JsElementalMixinBase implements SpeechRecognitionResultList {
+ protected JsSpeechRecognitionResultList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsSpeechRecognitionResult item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsText.java b/elemental/src/elemental/js/dom/JsText.java
new file mode 100644
index 0000000..5081fde
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsText.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Text;
+import elemental.dom.CharacterData;
+
+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 JsText extends JsCharacterData implements Text {
+ protected JsText() {}
+
+ public final native String getWholeText() /*-{
+ return this.wholeText;
+ }-*/;
+
+ public final native JsText replaceWholeText(String content) /*-{
+ return this.replaceWholeText(content);
+ }-*/;
+
+ public final native JsText splitText(int offset) /*-{
+ return this.splitText(offset);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsWebKitMutationObserver.java b/elemental/src/elemental/js/dom/JsWebKitMutationObserver.java
new file mode 100644
index 0000000..d0a39bf
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsWebKitMutationObserver.java
@@ -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 elemental.js.dom;
+import elemental.dom.WebKitMutationObserver;
+
+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 JsWebKitMutationObserver extends JsElementalMixinBase implements WebKitMutationObserver {
+ protected JsWebKitMutationObserver() {}
+
+ public final native void disconnect() /*-{
+ this.disconnect();
+ }-*/;
+
+ public final native JsIndexable takeRecords() /*-{
+ return this.takeRecords();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/dom/JsWebKitNamedFlow.java b/elemental/src/elemental/js/dom/JsWebKitNamedFlow.java
new file mode 100644
index 0000000..8e37f91
--- /dev/null
+++ b/elemental/src/elemental/js/dom/JsWebKitNamedFlow.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.dom;
+import elemental.dom.Node;
+import elemental.dom.WebKitNamedFlow;
+import elemental.dom.NodeList;
+
+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 JsWebKitNamedFlow extends JsElementalMixinBase implements WebKitNamedFlow {
+ protected JsWebKitNamedFlow() {}
+
+ public final native JsNodeList getContentNodes() /*-{
+ return this.contentNodes;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native boolean isOverset() /*-{
+ return this.overset;
+ }-*/;
+
+ public final native JsNodeList getRegionsByContentNode(Node contentNode) /*-{
+ return this.getRegionsByContentNode(contentNode);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsAnimationEvent.java b/elemental/src/elemental/js/events/JsAnimationEvent.java
new file mode 100644
index 0000000..96aa483
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsAnimationEvent.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.AnimationEvent;
+import elemental.events.Event;
+
+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 JsAnimationEvent extends JsEvent implements AnimationEvent {
+ protected JsAnimationEvent() {}
+
+ public final native String getAnimationName() /*-{
+ return this.animationName;
+ }-*/;
+
+ public final native double getElapsedTime() /*-{
+ return this.elapsedTime;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsBeforeLoadEvent.java b/elemental/src/elemental/js/events/JsBeforeLoadEvent.java
new file mode 100644
index 0000000..57ead1b
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsBeforeLoadEvent.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.BeforeLoadEvent;
+import elemental.events.Event;
+
+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 JsBeforeLoadEvent extends JsEvent implements BeforeLoadEvent {
+ protected JsBeforeLoadEvent() {}
+
+ public final native String getUrl() /*-{
+ return this.url;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsCloseEvent.java b/elemental/src/elemental/js/events/JsCloseEvent.java
new file mode 100644
index 0000000..988d0f3
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsCloseEvent.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.CloseEvent;
+import elemental.events.Event;
+
+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 JsCloseEvent extends JsEvent implements CloseEvent {
+ protected JsCloseEvent() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getReason() /*-{
+ return this.reason;
+ }-*/;
+
+ public final native boolean isWasClean() /*-{
+ return this.wasClean;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsCompositionEvent.java b/elemental/src/elemental/js/events/JsCompositionEvent.java
new file mode 100644
index 0000000..36549fb
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsCompositionEvent.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.js.events;
+import elemental.html.Window;
+import elemental.events.CompositionEvent;
+import elemental.js.html.JsWindow;
+import elemental.events.UIEvent;
+
+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 JsCompositionEvent extends JsUIEvent implements CompositionEvent {
+ protected JsCompositionEvent() {}
+
+ public final native String getData() /*-{
+ return this.data;
+ }-*/;
+
+ public final native void initCompositionEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Window viewArg, String dataArg) /*-{
+ this.initCompositionEvent(typeArg, canBubbleArg, cancelableArg, viewArg, dataArg);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsCustomEvent.java b/elemental/src/elemental/js/events/JsCustomEvent.java
new file mode 100644
index 0000000..1d744e5
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsCustomEvent.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.CustomEvent;
+import elemental.events.Event;
+
+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 JsCustomEvent extends JsEvent implements CustomEvent {
+ protected JsCustomEvent() {}
+
+ public final native Object getDetail() /*-{
+ return this.detail;
+ }-*/;
+
+ public final native void initCustomEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Object detailArg) /*-{
+ this.initCustomEvent(typeArg, canBubbleArg, cancelableArg, detailArg);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsErrorEvent.java b/elemental/src/elemental/js/events/JsErrorEvent.java
new file mode 100644
index 0000000..99183bb
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsErrorEvent.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.ErrorEvent;
+import elemental.events.Event;
+
+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 JsErrorEvent extends JsEvent implements ErrorEvent {
+ protected JsErrorEvent() {}
+
+ public final native String getFilename() /*-{
+ return this.filename;
+ }-*/;
+
+ public final native int getLineno() /*-{
+ return this.lineno;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsEvent.java b/elemental/src/elemental/js/events/JsEvent.java
new file mode 100644
index 0000000..087ab52
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsEvent.java
@@ -0,0 +1,114 @@
+/*
+ * 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 elemental.js.events;
+import elemental.js.dom.JsClipboard;
+import elemental.dom.Clipboard;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+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 JsEvent extends JsElementalMixinBase implements Event {
+ protected JsEvent() {}
+
+ public final native boolean isBubbles() /*-{
+ return this.bubbles;
+ }-*/;
+
+ public final native boolean isCancelBubble() /*-{
+ return this.cancelBubble;
+ }-*/;
+
+ public final native void setCancelBubble(boolean param_cancelBubble) /*-{
+ this.cancelBubble = param_cancelBubble;
+ }-*/;
+
+ public final native boolean isCancelable() /*-{
+ return this.cancelable;
+ }-*/;
+
+ public final native JsClipboard getClipboardData() /*-{
+ return this.clipboardData;
+ }-*/;
+
+ public final native EventTarget getCurrentTarget() /*-{
+ return this.currentTarget;
+ }-*/;
+
+ public final native boolean isDefaultPrevented() /*-{
+ return this.defaultPrevented;
+ }-*/;
+
+ public final native int getEventPhase() /*-{
+ return this.eventPhase;
+ }-*/;
+
+ public final native boolean isReturnValue() /*-{
+ return this.returnValue;
+ }-*/;
+
+ public final native void setReturnValue(boolean param_returnValue) /*-{
+ this.returnValue = param_returnValue;
+ }-*/;
+
+ public final native EventTarget getSrcElement() /*-{
+ return this.srcElement;
+ }-*/;
+
+ public final native EventTarget getTarget() /*-{
+ return this.target;
+ }-*/;
+
+ public final native double getTimeStamp() /*-{
+ return this.timeStamp;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void initEvent(String eventTypeArg, boolean canBubbleArg, boolean cancelableArg) /*-{
+ this.initEvent(eventTypeArg, canBubbleArg, cancelableArg);
+ }-*/;
+
+ public final native void preventDefault() /*-{
+ this.preventDefault();
+ }-*/;
+
+ public final native void stopImmediatePropagation() /*-{
+ this.stopImmediatePropagation();
+ }-*/;
+
+ public final native void stopPropagation() /*-{
+ this.stopPropagation();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsEventException.java b/elemental/src/elemental/js/events/JsEventException.java
new file mode 100644
index 0000000..b58dda8
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsEventException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.EventException;
+
+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 JsEventException extends JsElementalMixinBase implements EventException {
+ protected JsEventException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsEventListener.java b/elemental/src/elemental/js/events/JsEventListener.java
new file mode 100644
index 0000000..b7a5884
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsEventListener.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.EventListener;
+import elemental.events.Event;
+
+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 JsEventListener extends JsElementalMixinBase implements EventListener {
+ protected JsEventListener() {}
+
+ public final native void handleEvent(Event evt) /*-{
+ this.handleEvent(evt);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsHashChangeEvent.java b/elemental/src/elemental/js/events/JsHashChangeEvent.java
new file mode 100644
index 0000000..b6d3ca8
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsHashChangeEvent.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.HashChangeEvent;
+import elemental.events.Event;
+
+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 JsHashChangeEvent extends JsEvent implements HashChangeEvent {
+ protected JsHashChangeEvent() {}
+
+ public final native String getNewURL() /*-{
+ return this.newURL;
+ }-*/;
+
+ public final native String getOldURL() /*-{
+ return this.oldURL;
+ }-*/;
+
+ public final native void initHashChangeEvent(String type, boolean canBubble, boolean cancelable, String oldURL, String newURL) /*-{
+ this.initHashChangeEvent(type, canBubble, cancelable, oldURL, newURL);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsKeyboardEvent.java b/elemental/src/elemental/js/events/JsKeyboardEvent.java
new file mode 100644
index 0000000..e5e0a48
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsKeyboardEvent.java
@@ -0,0 +1,74 @@
+/*
+ * 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 elemental.js.events;
+import elemental.html.Window;
+import elemental.js.html.JsWindow;
+import elemental.events.KeyboardEvent;
+import elemental.events.UIEvent;
+
+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 JsKeyboardEvent extends JsUIEvent implements KeyboardEvent {
+ protected JsKeyboardEvent() {}
+
+ public final native boolean isAltGraphKey() /*-{
+ return this.altGraphKey;
+ }-*/;
+
+ public final native boolean isAltKey() /*-{
+ return this.altKey;
+ }-*/;
+
+ public final native boolean isCtrlKey() /*-{
+ return this.ctrlKey;
+ }-*/;
+
+ public final native String getKeyIdentifier() /*-{
+ return this.keyIdentifier;
+ }-*/;
+
+ public final native int getKeyLocation() /*-{
+ return this.keyLocation;
+ }-*/;
+
+ public final native boolean isMetaKey() /*-{
+ return this.metaKey;
+ }-*/;
+
+ public final native boolean isShiftKey() /*-{
+ return this.shiftKey;
+ }-*/;
+
+ public final native void initKeyboardEvent(String type, boolean canBubble, boolean cancelable, Window view, String keyIdentifier, int keyLocation, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, boolean altGraphKey) /*-{
+ this.initKeyboardEvent(type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey, altGraphKey);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsMediaStreamEvent.java b/elemental/src/elemental/js/events/JsMediaStreamEvent.java
new file mode 100644
index 0000000..cd2c2bd
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsMediaStreamEvent.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.js.events;
+import elemental.js.dom.JsMediaStream;
+import elemental.dom.MediaStream;
+import elemental.events.MediaStreamEvent;
+import elemental.events.Event;
+
+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 JsMediaStreamEvent extends JsEvent implements MediaStreamEvent {
+ protected JsMediaStreamEvent() {}
+
+ public final native JsMediaStream getStream() /*-{
+ return this.stream;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsMessageChannel.java b/elemental/src/elemental/js/events/JsMessageChannel.java
new file mode 100644
index 0000000..9862339
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsMessageChannel.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.MessagePort;
+import elemental.events.MessageChannel;
+
+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 JsMessageChannel extends JsElementalMixinBase implements MessageChannel {
+ protected JsMessageChannel() {}
+
+ public final native JsMessagePort getPort1() /*-{
+ return this.port1;
+ }-*/;
+
+ public final native JsMessagePort getPort2() /*-{
+ return this.port2;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsMessageEvent.java b/elemental/src/elemental/js/events/JsMessageEvent.java
new file mode 100644
index 0000000..fe38a65
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsMessageEvent.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.events;
+import elemental.util.Indexable;
+import elemental.js.html.JsWindow;
+import elemental.events.MessageEvent;
+import elemental.js.util.JsIndexable;
+import elemental.html.Window;
+import elemental.events.Event;
+
+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 JsMessageEvent extends JsEvent implements MessageEvent {
+ protected JsMessageEvent() {}
+
+ public final native Object getData() /*-{
+ return this.data;
+ }-*/;
+
+ public final native String getLastEventId() /*-{
+ return this.lastEventId;
+ }-*/;
+
+ public final native String getOrigin() /*-{
+ return this.origin;
+ }-*/;
+
+ public final native JsIndexable getPorts() /*-{
+ return this.ports;
+ }-*/;
+
+ public final native JsWindow getSource() /*-{
+ return this.source;
+ }-*/;
+
+ public final native void initMessageEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Object dataArg, String originArg, String lastEventIdArg, Window sourceArg, Indexable messagePorts) /*-{
+ this.initMessageEvent(typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, messagePorts);
+ }-*/;
+
+ public final native void webkitInitMessageEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Object dataArg, String originArg, String lastEventIdArg, Window sourceArg, Indexable transferables) /*-{
+ this.webkitInitMessageEvent(typeArg, canBubbleArg, cancelableArg, dataArg, originArg, lastEventIdArg, sourceArg, transferables);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsMessagePort.java b/elemental/src/elemental/js/events/JsMessagePort.java
new file mode 100644
index 0000000..6e62f89
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsMessagePort.java
@@ -0,0 +1,74 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.MessagePort;
+import elemental.util.Indexable;
+import elemental.events.EventListener;
+import elemental.js.util.JsIndexable;
+import elemental.events.Event;
+
+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 JsMessagePort extends JsElementalMixinBase implements MessagePort {
+ protected JsMessagePort() {}
+
+ public final native EventListener getOnmessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmessage);
+ }-*/;
+
+ public final native void setOnmessage(EventListener listener) /*-{
+ this.onmessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+
+ public final native void postMessage(String message) /*-{
+ this.postMessage(message);
+ }-*/;
+
+ public final native void postMessage(String message, Indexable messagePorts) /*-{
+ this.postMessage(message, messagePorts);
+ }-*/;
+
+ public final native void start() /*-{
+ this.start();
+ }-*/;
+
+ public final native void webkitPostMessage(String message) /*-{
+ this.webkitPostMessage(message);
+ }-*/;
+
+ public final native void webkitPostMessage(String message, Indexable transfer) /*-{
+ this.webkitPostMessage(message, transfer);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsMouseEvent.java b/elemental/src/elemental/js/events/JsMouseEvent.java
new file mode 100644
index 0000000..3aacd7b
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsMouseEvent.java
@@ -0,0 +1,127 @@
+/*
+ * 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 elemental.js.events;
+import elemental.dom.Node;
+import elemental.js.html.JsWindow;
+import elemental.events.EventTarget;
+import elemental.events.MouseEvent;
+import elemental.js.dom.JsNode;
+import elemental.js.dom.JsClipboard;
+import elemental.dom.Clipboard;
+import elemental.html.Window;
+import elemental.events.UIEvent;
+
+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 JsMouseEvent extends JsUIEvent implements MouseEvent {
+ protected JsMouseEvent() {}
+
+ public final native boolean isAltKey() /*-{
+ return this.altKey;
+ }-*/;
+
+ public final native int getButton() /*-{
+ return this.button;
+ }-*/;
+
+ public final native int getClientX() /*-{
+ return this.clientX;
+ }-*/;
+
+ public final native int getClientY() /*-{
+ return this.clientY;
+ }-*/;
+
+ public final native boolean isCtrlKey() /*-{
+ return this.ctrlKey;
+ }-*/;
+
+ public final native JsClipboard getDataTransfer() /*-{
+ return this.dataTransfer;
+ }-*/;
+
+ public final native JsNode getFromElement() /*-{
+ return this.fromElement;
+ }-*/;
+
+ public final native boolean isMetaKey() /*-{
+ return this.metaKey;
+ }-*/;
+
+ public final native int getOffsetX() /*-{
+ return this.offsetX;
+ }-*/;
+
+ public final native int getOffsetY() /*-{
+ return this.offsetY;
+ }-*/;
+
+ public final native EventTarget getRelatedTarget() /*-{
+ return this.relatedTarget;
+ }-*/;
+
+ public final native int getScreenX() /*-{
+ return this.screenX;
+ }-*/;
+
+ public final native int getScreenY() /*-{
+ return this.screenY;
+ }-*/;
+
+ public final native boolean isShiftKey() /*-{
+ return this.shiftKey;
+ }-*/;
+
+ public final native JsNode getToElement() /*-{
+ return this.toElement;
+ }-*/;
+
+ public final native int getWebkitMovementX() /*-{
+ return this.webkitMovementX;
+ }-*/;
+
+ public final native int getWebkitMovementY() /*-{
+ return this.webkitMovementY;
+ }-*/;
+
+ public final native int getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native int getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void initMouseEvent(String type, boolean canBubble, boolean cancelable, Window view, int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int button, EventTarget relatedTarget) /*-{
+ this.initMouseEvent(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsMutationEvent.java b/elemental/src/elemental/js/events/JsMutationEvent.java
new file mode 100644
index 0000000..0902609
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsMutationEvent.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.js.events;
+import elemental.dom.Node;
+import elemental.events.MutationEvent;
+import elemental.events.Event;
+import elemental.js.dom.JsNode;
+
+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 JsMutationEvent extends JsEvent implements MutationEvent {
+ protected JsMutationEvent() {}
+
+ public final native int getAttrChange() /*-{
+ return this.attrChange;
+ }-*/;
+
+ public final native String getAttrName() /*-{
+ return this.attrName;
+ }-*/;
+
+ public final native String getNewValue() /*-{
+ return this.newValue;
+ }-*/;
+
+ public final native String getPrevValue() /*-{
+ return this.prevValue;
+ }-*/;
+
+ public final native JsNode getRelatedNode() /*-{
+ return this.relatedNode;
+ }-*/;
+
+ public final native void initMutationEvent(String type, boolean canBubble, boolean cancelable, Node relatedNode, String prevValue, String newValue, String attrName, int attrChange) /*-{
+ this.initMutationEvent(type, canBubble, cancelable, relatedNode, prevValue, newValue, attrName, attrChange);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsOverflowEvent.java b/elemental/src/elemental/js/events/JsOverflowEvent.java
new file mode 100644
index 0000000..e76faaf
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsOverflowEvent.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.OverflowEvent;
+import elemental.events.Event;
+
+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 JsOverflowEvent extends JsEvent implements OverflowEvent {
+ protected JsOverflowEvent() {}
+
+ public final native boolean isHorizontalOverflow() /*-{
+ return this.horizontalOverflow;
+ }-*/;
+
+ public final native int getOrient() /*-{
+ return this.orient;
+ }-*/;
+
+ public final native boolean isVerticalOverflow() /*-{
+ return this.verticalOverflow;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsPageTransitionEvent.java b/elemental/src/elemental/js/events/JsPageTransitionEvent.java
new file mode 100644
index 0000000..438f4c2
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsPageTransitionEvent.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.PageTransitionEvent;
+import elemental.events.Event;
+
+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 JsPageTransitionEvent extends JsEvent implements PageTransitionEvent {
+ protected JsPageTransitionEvent() {}
+
+ public final native boolean isPersisted() /*-{
+ return this.persisted;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsPopStateEvent.java b/elemental/src/elemental/js/events/JsPopStateEvent.java
new file mode 100644
index 0000000..1847ca4
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsPopStateEvent.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.Event;
+import elemental.events.PopStateEvent;
+
+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 JsPopStateEvent extends JsEvent implements PopStateEvent {
+ protected JsPopStateEvent() {}
+
+ public final native Object getState() /*-{
+ return this.state;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsProgressEvent.java b/elemental/src/elemental/js/events/JsProgressEvent.java
new file mode 100644
index 0000000..d62348b
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsProgressEvent.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.ProgressEvent;
+import elemental.events.Event;
+
+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 JsProgressEvent extends JsEvent implements ProgressEvent {
+ protected JsProgressEvent() {}
+
+ public final native boolean isLengthComputable() /*-{
+ return this.lengthComputable;
+ }-*/;
+
+ public final native double getLoaded() /*-{
+ return this.loaded;
+ }-*/;
+
+ public final native double getTotal() /*-{
+ return this.total;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsSpeechRecognitionEvent.java b/elemental/src/elemental/js/events/JsSpeechRecognitionEvent.java
new file mode 100644
index 0000000..91244ba
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsSpeechRecognitionEvent.java
@@ -0,0 +1,62 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.SpeechRecognitionEvent;
+import elemental.js.dom.JsSpeechRecognitionResult;
+import elemental.dom.SpeechRecognitionError;
+import elemental.js.dom.JsSpeechRecognitionResultList;
+import elemental.dom.SpeechRecognitionResultList;
+import elemental.dom.SpeechRecognitionResult;
+import elemental.js.dom.JsSpeechRecognitionError;
+import elemental.events.Event;
+
+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 JsSpeechRecognitionEvent extends JsEvent implements SpeechRecognitionEvent {
+ protected JsSpeechRecognitionEvent() {}
+
+ public final native JsSpeechRecognitionError getError() /*-{
+ return this.error;
+ }-*/;
+
+ public final native JsSpeechRecognitionResult getResult() /*-{
+ return this.result;
+ }-*/;
+
+ public final native JsSpeechRecognitionResultList getResultHistory() /*-{
+ return this.resultHistory;
+ }-*/;
+
+ public final native short getResultIndex() /*-{
+ return this.resultIndex;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsTextEvent.java b/elemental/src/elemental/js/events/JsTextEvent.java
new file mode 100644
index 0000000..c421a62
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsTextEvent.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.js.events;
+import elemental.html.Window;
+import elemental.events.TextEvent;
+import elemental.js.html.JsWindow;
+import elemental.events.UIEvent;
+
+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 JsTextEvent extends JsUIEvent implements TextEvent {
+ protected JsTextEvent() {}
+
+ public final native String getData() /*-{
+ return this.data;
+ }-*/;
+
+ public final native void initTextEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, Window viewArg, String dataArg) /*-{
+ this.initTextEvent(typeArg, canBubbleArg, cancelableArg, viewArg, dataArg);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsTouch.java b/elemental/src/elemental/js/events/JsTouch.java
new file mode 100644
index 0000000..8cabd3b
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsTouch.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.Touch;
+import elemental.events.EventTarget;
+
+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 JsTouch extends JsElementalMixinBase implements Touch {
+ protected JsTouch() {}
+
+ public final native int getClientX() /*-{
+ return this.clientX;
+ }-*/;
+
+ public final native int getClientY() /*-{
+ return this.clientY;
+ }-*/;
+
+ public final native int getIdentifier() /*-{
+ return this.identifier;
+ }-*/;
+
+ public final native int getPageX() /*-{
+ return this.pageX;
+ }-*/;
+
+ public final native int getPageY() /*-{
+ return this.pageY;
+ }-*/;
+
+ public final native int getScreenX() /*-{
+ return this.screenX;
+ }-*/;
+
+ public final native int getScreenY() /*-{
+ return this.screenY;
+ }-*/;
+
+ public final native EventTarget getTarget() /*-{
+ return this.target;
+ }-*/;
+
+ public final native float getWebkitForce() /*-{
+ return this.webkitForce;
+ }-*/;
+
+ public final native int getWebkitRadiusX() /*-{
+ return this.webkitRadiusX;
+ }-*/;
+
+ public final native int getWebkitRadiusY() /*-{
+ return this.webkitRadiusY;
+ }-*/;
+
+ public final native float getWebkitRotationAngle() /*-{
+ return this.webkitRotationAngle;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsTouchEvent.java b/elemental/src/elemental/js/events/JsTouchEvent.java
new file mode 100644
index 0000000..3437e42
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsTouchEvent.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.js.events;
+import elemental.html.Window;
+import elemental.events.TouchList;
+import elemental.js.html.JsWindow;
+import elemental.events.TouchEvent;
+import elemental.events.UIEvent;
+
+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 JsTouchEvent extends JsUIEvent implements TouchEvent {
+ protected JsTouchEvent() {}
+
+ public final native boolean isAltKey() /*-{
+ return this.altKey;
+ }-*/;
+
+ public final native JsTouchList getChangedTouches() /*-{
+ return this.changedTouches;
+ }-*/;
+
+ public final native boolean isCtrlKey() /*-{
+ return this.ctrlKey;
+ }-*/;
+
+ public final native boolean isMetaKey() /*-{
+ return this.metaKey;
+ }-*/;
+
+ public final native boolean isShiftKey() /*-{
+ return this.shiftKey;
+ }-*/;
+
+ public final native JsTouchList getTargetTouches() /*-{
+ return this.targetTouches;
+ }-*/;
+
+ public final native JsTouchList getTouches() /*-{
+ return this.touches;
+ }-*/;
+
+ public final native void initTouchEvent(TouchList touches, TouchList targetTouches, TouchList changedTouches, String type, Window view, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey) /*-{
+ this.initTouchEvent(touches, targetTouches, changedTouches, type, view, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsTouchList.java b/elemental/src/elemental/js/events/JsTouchList.java
new file mode 100644
index 0000000..232236e
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsTouchList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.Touch;
+import elemental.events.TouchList;
+
+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 JsTouchList extends JsIndexable implements TouchList, Indexable {
+ protected JsTouchList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsTouch item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsTransitionEvent.java b/elemental/src/elemental/js/events/JsTransitionEvent.java
new file mode 100644
index 0000000..fbdc016
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsTransitionEvent.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.TransitionEvent;
+import elemental.events.Event;
+
+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 JsTransitionEvent extends JsEvent implements TransitionEvent {
+ protected JsTransitionEvent() {}
+
+ public final native double getElapsedTime() /*-{
+ return this.elapsedTime;
+ }-*/;
+
+ public final native String getPropertyName() /*-{
+ return this.propertyName;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsUIEvent.java b/elemental/src/elemental/js/events/JsUIEvent.java
new file mode 100644
index 0000000..37a3474
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsUIEvent.java
@@ -0,0 +1,82 @@
+/*
+ * 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 elemental.js.events;
+import elemental.html.Window;
+import elemental.events.Event;
+import elemental.js.html.JsWindow;
+import elemental.events.UIEvent;
+
+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 JsUIEvent extends JsEvent implements UIEvent {
+ protected JsUIEvent() {}
+
+ public final native int getCharCode() /*-{
+ return this.charCode;
+ }-*/;
+
+ public final native int getDetail() /*-{
+ return this.detail;
+ }-*/;
+
+ public final native int getKeyCode() /*-{
+ return this.keyCode;
+ }-*/;
+
+ public final native int getLayerX() /*-{
+ return this.layerX;
+ }-*/;
+
+ public final native int getLayerY() /*-{
+ return this.layerY;
+ }-*/;
+
+ public final native int getPageX() /*-{
+ return this.pageX;
+ }-*/;
+
+ public final native int getPageY() /*-{
+ return this.pageY;
+ }-*/;
+
+ public final native JsWindow getView() /*-{
+ return this.view;
+ }-*/;
+
+ public final native int getWhich() /*-{
+ return this.which;
+ }-*/;
+
+ public final native void initUIEvent(String type, boolean canBubble, boolean cancelable, Window view, int detail) /*-{
+ this.initUIEvent(type, canBubble, cancelable, view, detail);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsWheelEvent.java b/elemental/src/elemental/js/events/JsWheelEvent.java
new file mode 100644
index 0000000..fc5cc6b
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsWheelEvent.java
@@ -0,0 +1,110 @@
+/*
+ * 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 elemental.js.events;
+import elemental.html.Window;
+import elemental.js.html.JsWindow;
+import elemental.events.WheelEvent;
+import elemental.events.UIEvent;
+
+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 JsWheelEvent extends JsUIEvent implements WheelEvent {
+ protected JsWheelEvent() {}
+
+ public final native boolean isAltKey() /*-{
+ return this.altKey;
+ }-*/;
+
+ public final native int getClientX() /*-{
+ return this.clientX;
+ }-*/;
+
+ public final native int getClientY() /*-{
+ return this.clientY;
+ }-*/;
+
+ public final native boolean isCtrlKey() /*-{
+ return this.ctrlKey;
+ }-*/;
+
+ public final native boolean isMetaKey() /*-{
+ return this.metaKey;
+ }-*/;
+
+ public final native int getOffsetX() /*-{
+ return this.offsetX;
+ }-*/;
+
+ public final native int getOffsetY() /*-{
+ return this.offsetY;
+ }-*/;
+
+ public final native int getScreenX() /*-{
+ return this.screenX;
+ }-*/;
+
+ public final native int getScreenY() /*-{
+ return this.screenY;
+ }-*/;
+
+ public final native boolean isShiftKey() /*-{
+ return this.shiftKey;
+ }-*/;
+
+ public final native boolean isWebkitDirectionInvertedFromDevice() /*-{
+ return this.webkitDirectionInvertedFromDevice;
+ }-*/;
+
+ public final native int getWheelDelta() /*-{
+ return this.wheelDelta;
+ }-*/;
+
+ public final native int getWheelDeltaX() /*-{
+ return this.wheelDeltaX;
+ }-*/;
+
+ public final native int getWheelDeltaY() /*-{
+ return this.wheelDeltaY;
+ }-*/;
+
+ public final native int getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native int getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void initWebKitWheelEvent(int wheelDeltaX, int wheelDeltaY, Window view, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey) /*-{
+ this.initWebKitWheelEvent(wheelDeltaX, wheelDeltaY, view, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/events/JsXMLHttpRequestProgressEvent.java b/elemental/src/elemental/js/events/JsXMLHttpRequestProgressEvent.java
new file mode 100644
index 0000000..ec3c723
--- /dev/null
+++ b/elemental/src/elemental/js/events/JsXMLHttpRequestProgressEvent.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.events;
+import elemental.events.ProgressEvent;
+import elemental.events.XMLHttpRequestProgressEvent;
+
+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 JsXMLHttpRequestProgressEvent extends JsProgressEvent implements XMLHttpRequestProgressEvent {
+ protected JsXMLHttpRequestProgressEvent() {}
+
+ public final native double getPosition() /*-{
+ return this.position;
+ }-*/;
+
+ public final native double getTotalSize() /*-{
+ return this.totalSize;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAbstractWorker.java b/elemental/src/elemental/js/html/JsAbstractWorker.java
new file mode 100644
index 0000000..bd9081a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAbstractWorker.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AbstractWorker;
+import elemental.events.EventListener;
+import elemental.js.events.JsEvent;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsAbstractWorker extends JsElementalMixinBase implements AbstractWorker {
+ protected JsAbstractWorker() {}
+
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;}
diff --git a/elemental/src/elemental/js/html/JsAnchorElement.java b/elemental/src/elemental/js/html/JsAnchorElement.java
new file mode 100644
index 0000000..3c2aa67
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAnchorElement.java
@@ -0,0 +1,201 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AnchorElement;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+
+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 JsAnchorElement extends JsElement implements AnchorElement {
+ protected JsAnchorElement() {}
+
+ public final native String getCharset() /*-{
+ return this.charset;
+ }-*/;
+
+ public final native void setCharset(String param_charset) /*-{
+ this.charset = param_charset;
+ }-*/;
+
+ public final native String getCoords() /*-{
+ return this.coords;
+ }-*/;
+
+ public final native void setCoords(String param_coords) /*-{
+ this.coords = param_coords;
+ }-*/;
+
+ public final native String getDownload() /*-{
+ return this.download;
+ }-*/;
+
+ public final native void setDownload(String param_download) /*-{
+ this.download = param_download;
+ }-*/;
+
+ public final native String getHash() /*-{
+ return this.hash;
+ }-*/;
+
+ public final native void setHash(String param_hash) /*-{
+ this.hash = param_hash;
+ }-*/;
+
+ public final native String getHost() /*-{
+ return this.host;
+ }-*/;
+
+ public final native void setHost(String param_host) /*-{
+ this.host = param_host;
+ }-*/;
+
+ public final native String getHostname() /*-{
+ return this.hostname;
+ }-*/;
+
+ public final native void setHostname(String param_hostname) /*-{
+ this.hostname = param_hostname;
+ }-*/;
+
+ public final native String getHref() /*-{
+ return this.href;
+ }-*/;
+
+ public final native void setHref(String param_href) /*-{
+ this.href = param_href;
+ }-*/;
+
+ public final native String getHreflang() /*-{
+ return this.hreflang;
+ }-*/;
+
+ public final native void setHreflang(String param_hreflang) /*-{
+ this.hreflang = param_hreflang;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getOrigin() /*-{
+ return this.origin;
+ }-*/;
+
+ public final native String getPathname() /*-{
+ return this.pathname;
+ }-*/;
+
+ public final native void setPathname(String param_pathname) /*-{
+ this.pathname = param_pathname;
+ }-*/;
+
+ public final native String getPing() /*-{
+ return this.ping;
+ }-*/;
+
+ public final native void setPing(String param_ping) /*-{
+ this.ping = param_ping;
+ }-*/;
+
+ public final native String getPort() /*-{
+ return this.port;
+ }-*/;
+
+ public final native void setPort(String param_port) /*-{
+ this.port = param_port;
+ }-*/;
+
+ public final native String getProtocol() /*-{
+ return this.protocol;
+ }-*/;
+
+ public final native void setProtocol(String param_protocol) /*-{
+ this.protocol = param_protocol;
+ }-*/;
+
+ public final native String getRel() /*-{
+ return this.rel;
+ }-*/;
+
+ public final native void setRel(String param_rel) /*-{
+ this.rel = param_rel;
+ }-*/;
+
+ public final native String getRev() /*-{
+ return this.rev;
+ }-*/;
+
+ public final native void setRev(String param_rev) /*-{
+ this.rev = param_rev;
+ }-*/;
+
+ public final native String getSearch() /*-{
+ return this.search;
+ }-*/;
+
+ public final native void setSearch(String param_search) /*-{
+ this.search = param_search;
+ }-*/;
+
+ public final native String getShape() /*-{
+ return this.shape;
+ }-*/;
+
+ public final native void setShape(String param_shape) /*-{
+ this.shape = param_shape;
+ }-*/;
+
+ public final native String getTarget() /*-{
+ return this.target;
+ }-*/;
+
+ public final native void setTarget(String param_target) /*-{
+ this.target = param_target;
+ }-*/;
+
+ public final native String getText() /*-{
+ return this.text;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAnimation.java b/elemental/src/elemental/js/html/JsAnimation.java
new file mode 100644
index 0000000..d38b5fa
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAnimation.java
@@ -0,0 +1,87 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Animation;
+
+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 JsAnimation extends JsElementalMixinBase implements Animation {
+ protected JsAnimation() {}
+
+ public final native double getDelay() /*-{
+ return this.delay;
+ }-*/;
+
+ public final native int getDirection() /*-{
+ return this.direction;
+ }-*/;
+
+ public final native double getDuration() /*-{
+ return this.duration;
+ }-*/;
+
+ public final native double getElapsedTime() /*-{
+ return this.elapsedTime;
+ }-*/;
+
+ public final native void setElapsedTime(double param_elapsedTime) /*-{
+ this.elapsedTime = param_elapsedTime;
+ }-*/;
+
+ public final native boolean isEnded() /*-{
+ return this.ended;
+ }-*/;
+
+ public final native int getFillMode() /*-{
+ return this.fillMode;
+ }-*/;
+
+ public final native int getIterationCount() /*-{
+ return this.iterationCount;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native boolean isPaused() /*-{
+ return this.paused;
+ }-*/;
+
+ public final native void pause() /*-{
+ this.pause();
+ }-*/;
+
+ public final native void play() /*-{
+ this.play();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAnimationList.java b/elemental/src/elemental/js/html/JsAnimationList.java
new file mode 100644
index 0000000..1a6e93f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAnimationList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AnimationList;
+import elemental.html.Animation;
+
+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 JsAnimationList extends JsElementalMixinBase implements AnimationList {
+ protected JsAnimationList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsAnimation item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAppletElement.java b/elemental/src/elemental/js/html/JsAppletElement.java
new file mode 100644
index 0000000..276c24d
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAppletElement.java
@@ -0,0 +1,129 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.AppletElement;
+
+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 JsAppletElement extends JsElement implements AppletElement {
+ protected JsAppletElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getAlt() /*-{
+ return this.alt;
+ }-*/;
+
+ public final native void setAlt(String param_alt) /*-{
+ this.alt = param_alt;
+ }-*/;
+
+ public final native String getArchive() /*-{
+ return this.archive;
+ }-*/;
+
+ public final native void setArchive(String param_archive) /*-{
+ this.archive = param_archive;
+ }-*/;
+
+ public final native String getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native void setCode(String param_code) /*-{
+ this.code = param_code;
+ }-*/;
+
+ public final native String getCodeBase() /*-{
+ return this.codeBase;
+ }-*/;
+
+ public final native void setCodeBase(String param_codeBase) /*-{
+ this.codeBase = param_codeBase;
+ }-*/;
+
+ public final native String getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(String param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native String getHspace() /*-{
+ return this.hspace;
+ }-*/;
+
+ public final native void setHspace(String param_hspace) /*-{
+ this.hspace = param_hspace;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getObject() /*-{
+ return this.object;
+ }-*/;
+
+ public final native void setObject(String param_object) /*-{
+ this.object = param_object;
+ }-*/;
+
+ public final native String getVspace() /*-{
+ return this.vspace;
+ }-*/;
+
+ public final native void setVspace(String param_vspace) /*-{
+ this.vspace = param_vspace;
+ }-*/;
+
+ public final native String getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(String param_width) /*-{
+ this.width = param_width;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsApplicationCache.java b/elemental/src/elemental/js/html/JsApplicationCache.java
new file mode 100644
index 0000000..d08103f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsApplicationCache.java
@@ -0,0 +1,115 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ApplicationCache;
+import elemental.events.EventListener;
+import elemental.js.events.JsEvent;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsApplicationCache extends JsElementalMixinBase implements ApplicationCache {
+ protected JsApplicationCache() {}
+
+ public final native EventListener getOncached() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncached);
+ }-*/;
+
+ public final native void setOncached(EventListener listener) /*-{
+ this.oncached = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnchecking() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onchecking);
+ }-*/;
+
+ public final native void setOnchecking(EventListener listener) /*-{
+ this.onchecking = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndownloading() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondownloading);
+ }-*/;
+
+ public final native void setOndownloading(EventListener listener) /*-{
+ this.ondownloading = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnnoupdate() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onnoupdate);
+ }-*/;
+
+ public final native void setOnnoupdate(EventListener listener) /*-{
+ this.onnoupdate = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnobsolete() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onobsolete);
+ }-*/;
+
+ public final native void setOnobsolete(EventListener listener) /*-{
+ this.onobsolete = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnprogress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onprogress);
+ }-*/;
+
+ public final native void setOnprogress(EventListener listener) /*-{
+ this.onprogress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnupdateready() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onupdateready);
+ }-*/;
+
+ public final native void setOnupdateready(EventListener listener) /*-{
+ this.onupdateready = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native int getStatus() /*-{
+ return this.status;
+ }-*/;
+
+ public final native void abort() /*-{
+ this.abort();
+ }-*/;
+
+ public final native void swapCache() /*-{
+ this.swapCache();
+ }-*/;
+
+ public final native void update() /*-{
+ this.update();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAreaElement.java b/elemental/src/elemental/js/html/JsAreaElement.java
new file mode 100644
index 0000000..82a8efe
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAreaElement.java
@@ -0,0 +1,125 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.AreaElement;
+
+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 JsAreaElement extends JsElement implements AreaElement {
+ protected JsAreaElement() {}
+
+ public final native String getAlt() /*-{
+ return this.alt;
+ }-*/;
+
+ public final native void setAlt(String param_alt) /*-{
+ this.alt = param_alt;
+ }-*/;
+
+ public final native String getCoords() /*-{
+ return this.coords;
+ }-*/;
+
+ public final native void setCoords(String param_coords) /*-{
+ this.coords = param_coords;
+ }-*/;
+
+ public final native String getHash() /*-{
+ return this.hash;
+ }-*/;
+
+ public final native String getHost() /*-{
+ return this.host;
+ }-*/;
+
+ public final native String getHostname() /*-{
+ return this.hostname;
+ }-*/;
+
+ public final native String getHref() /*-{
+ return this.href;
+ }-*/;
+
+ public final native void setHref(String param_href) /*-{
+ this.href = param_href;
+ }-*/;
+
+ public final native boolean isNoHref() /*-{
+ return this.noHref;
+ }-*/;
+
+ public final native void setNoHref(boolean param_noHref) /*-{
+ this.noHref = param_noHref;
+ }-*/;
+
+ public final native String getPathname() /*-{
+ return this.pathname;
+ }-*/;
+
+ public final native String getPing() /*-{
+ return this.ping;
+ }-*/;
+
+ public final native void setPing(String param_ping) /*-{
+ this.ping = param_ping;
+ }-*/;
+
+ public final native String getPort() /*-{
+ return this.port;
+ }-*/;
+
+ public final native String getProtocol() /*-{
+ return this.protocol;
+ }-*/;
+
+ public final native String getSearch() /*-{
+ return this.search;
+ }-*/;
+
+ public final native String getShape() /*-{
+ return this.shape;
+ }-*/;
+
+ public final native void setShape(String param_shape) /*-{
+ this.shape = param_shape;
+ }-*/;
+
+ public final native String getTarget() /*-{
+ return this.target;
+ }-*/;
+
+ public final native void setTarget(String param_target) /*-{
+ this.target = param_target;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsArrayBuffer.java b/elemental/src/elemental/js/html/JsArrayBuffer.java
new file mode 100644
index 0000000..b22c245
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsArrayBuffer.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ArrayBuffer;
+
+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 JsArrayBuffer extends JsElementalMixinBase implements ArrayBuffer {
+ protected JsArrayBuffer() {}
+
+ public final native int getByteLength() /*-{
+ return this.byteLength;
+ }-*/;
+
+ public final native JsArrayBuffer slice(int begin) /*-{
+ return this.slice(begin);
+ }-*/;
+
+ public final native JsArrayBuffer slice(int begin, int end) /*-{
+ return this.slice(begin, end);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsArrayBufferView.java b/elemental/src/elemental/js/html/JsArrayBufferView.java
new file mode 100644
index 0000000..ca9829b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsArrayBufferView.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ArrayBufferView;
+import elemental.html.ArrayBuffer;
+
+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 JsArrayBufferView extends JsElementalMixinBase implements ArrayBufferView {
+ protected JsArrayBufferView() {}
+
+ public final native JsArrayBuffer getBuffer() /*-{
+ return this.buffer;
+ }-*/;
+
+ public final native int getByteLength() /*-{
+ return this.byteLength;
+ }-*/;
+
+ public final native int getByteOffset() /*-{
+ return this.byteOffset;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioBuffer.java b/elemental/src/elemental/js/html/JsAudioBuffer.java
new file mode 100644
index 0000000..8ba1362
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioBuffer.java
@@ -0,0 +1,68 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Float32Array;
+import elemental.html.AudioBuffer;
+
+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 JsAudioBuffer extends JsElementalMixinBase implements AudioBuffer {
+ protected JsAudioBuffer() {}
+
+ public final native float getDuration() /*-{
+ return this.duration;
+ }-*/;
+
+ public final native float getGain() /*-{
+ return this.gain;
+ }-*/;
+
+ public final native void setGain(float param_gain) /*-{
+ this.gain = param_gain;
+ }-*/;
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native int getNumberOfChannels() /*-{
+ return this.numberOfChannels;
+ }-*/;
+
+ public final native float getSampleRate() /*-{
+ return this.sampleRate;
+ }-*/;
+
+ public final native JsFloat32Array getChannelData(int channelIndex) /*-{
+ return this.getChannelData(channelIndex);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioBufferSourceNode.java b/elemental/src/elemental/js/html/JsAudioBufferSourceNode.java
new file mode 100644
index 0000000..eaa4e10
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioBufferSourceNode.java
@@ -0,0 +1,91 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioParam;
+import elemental.html.AudioSourceNode;
+import elemental.html.AudioBufferSourceNode;
+import elemental.html.AudioGain;
+import elemental.html.AudioBuffer;
+
+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 JsAudioBufferSourceNode extends JsAudioSourceNode implements AudioBufferSourceNode {
+ protected JsAudioBufferSourceNode() {}
+
+ public final native JsAudioBuffer getBuffer() /*-{
+ return this.buffer;
+ }-*/;
+
+ public final native void setBuffer(AudioBuffer param_buffer) /*-{
+ this.buffer = param_buffer;
+ }-*/;
+
+ public final native JsAudioGain getGain() /*-{
+ return this.gain;
+ }-*/;
+
+ public final native boolean isLoop() /*-{
+ return this.loop;
+ }-*/;
+
+ public final native void setLoop(boolean param_loop) /*-{
+ this.loop = param_loop;
+ }-*/;
+
+ public final native boolean isLooping() /*-{
+ return this.looping;
+ }-*/;
+
+ public final native void setLooping(boolean param_looping) /*-{
+ this.looping = param_looping;
+ }-*/;
+
+ public final native JsAudioParam getPlaybackRate() /*-{
+ return this.playbackRate;
+ }-*/;
+
+ public final native int getPlaybackState() /*-{
+ return this.playbackState;
+ }-*/;
+
+ public final native void noteGrainOn(double when, double grainOffset, double grainDuration) /*-{
+ this.noteGrainOn(when, grainOffset, grainDuration);
+ }-*/;
+
+ public final native void noteOff(double when) /*-{
+ this.noteOff(when);
+ }-*/;
+
+ public final native void noteOn(double when) /*-{
+ this.noteOn(when);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioChannelMerger.java b/elemental/src/elemental/js/html/JsAudioChannelMerger.java
new file mode 100644
index 0000000..86315ce
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioChannelMerger.java
@@ -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 elemental.js.html;
+import elemental.html.AudioChannelMerger;
+import elemental.html.AudioNode;
+
+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 JsAudioChannelMerger extends JsAudioNode implements AudioChannelMerger {
+ protected JsAudioChannelMerger() {}
+}
diff --git a/elemental/src/elemental/js/html/JsAudioChannelSplitter.java b/elemental/src/elemental/js/html/JsAudioChannelSplitter.java
new file mode 100644
index 0000000..e047710
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioChannelSplitter.java
@@ -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 elemental.js.html;
+import elemental.html.AudioNode;
+import elemental.html.AudioChannelSplitter;
+
+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 JsAudioChannelSplitter extends JsAudioNode implements AudioChannelSplitter {
+ protected JsAudioChannelSplitter() {}
+}
diff --git a/elemental/src/elemental/js/html/JsAudioContext.java b/elemental/src/elemental/js/html/JsAudioContext.java
new file mode 100644
index 0000000..e33e4c9
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioContext.java
@@ -0,0 +1,190 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WaveShaperNode;
+import elemental.html.AudioListener;
+import elemental.html.WaveTable;
+import elemental.html.AudioPannerNode;
+import elemental.html.ArrayBuffer;
+import elemental.html.MediaElement;
+import elemental.html.RealtimeAnalyserNode;
+import elemental.html.DynamicsCompressorNode;
+import elemental.html.AudioBufferSourceNode;
+import elemental.html.Oscillator;
+import elemental.html.Float32Array;
+import elemental.html.AudioGainNode;
+import elemental.js.events.JsEventListener;
+import elemental.html.AudioBuffer;
+import elemental.html.DelayNode;
+import elemental.html.ConvolverNode;
+import elemental.html.AudioDestinationNode;
+import elemental.html.AudioContext;
+import elemental.html.AudioChannelMerger;
+import elemental.html.AudioBufferCallback;
+import elemental.html.BiquadFilterNode;
+import elemental.html.JavaScriptAudioNode;
+import elemental.html.AudioChannelSplitter;
+import elemental.html.MediaElementAudioSourceNode;
+import elemental.events.EventListener;
+
+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 JsAudioContext extends JsElementalMixinBase implements AudioContext {
+ protected JsAudioContext() {}
+
+ public final native int getActiveSourceCount() /*-{
+ return this.activeSourceCount;
+ }-*/;
+
+ public final native float getCurrentTime() /*-{
+ return this.currentTime;
+ }-*/;
+
+ public final native JsAudioDestinationNode getDestination() /*-{
+ return this.destination;
+ }-*/;
+
+ public final native JsAudioListener getListener() /*-{
+ return this.listener;
+ }-*/;
+
+ public final native EventListener getOncomplete() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncomplete);
+ }-*/;
+
+ public final native void setOncomplete(EventListener listener) /*-{
+ this.oncomplete = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native float getSampleRate() /*-{
+ return this.sampleRate;
+ }-*/;
+
+ public final native JsRealtimeAnalyserNode createAnalyser() /*-{
+ return this.createAnalyser();
+ }-*/;
+
+ public final native JsBiquadFilterNode createBiquadFilter() /*-{
+ return this.createBiquadFilter();
+ }-*/;
+
+ public final native JsAudioBuffer createBuffer(int numberOfChannels, int numberOfFrames, float sampleRate) /*-{
+ return this.createBuffer(numberOfChannels, numberOfFrames, sampleRate);
+ }-*/;
+
+ public final native JsAudioBuffer createBuffer(ArrayBuffer buffer, boolean mixToMono) /*-{
+ return this.createBuffer(buffer, mixToMono);
+ }-*/;
+
+ public final native JsAudioBufferSourceNode createBufferSource() /*-{
+ return this.createBufferSource();
+ }-*/;
+
+ public final native JsAudioChannelMerger createChannelMerger() /*-{
+ return this.createChannelMerger();
+ }-*/;
+
+ public final native JsAudioChannelMerger createChannelMerger(int numberOfInputs) /*-{
+ return this.createChannelMerger(numberOfInputs);
+ }-*/;
+
+ public final native JsAudioChannelSplitter createChannelSplitter() /*-{
+ return this.createChannelSplitter();
+ }-*/;
+
+ public final native JsAudioChannelSplitter createChannelSplitter(int numberOfOutputs) /*-{
+ return this.createChannelSplitter(numberOfOutputs);
+ }-*/;
+
+ public final native JsConvolverNode createConvolver() /*-{
+ return this.createConvolver();
+ }-*/;
+
+ public final native JsDelayNode createDelayNode() /*-{
+ return this.createDelayNode();
+ }-*/;
+
+ public final native JsDelayNode createDelayNode(double maxDelayTime) /*-{
+ return this.createDelayNode(maxDelayTime);
+ }-*/;
+
+ public final native JsDynamicsCompressorNode createDynamicsCompressor() /*-{
+ return this.createDynamicsCompressor();
+ }-*/;
+
+ public final native JsAudioGainNode createGainNode() /*-{
+ return this.createGainNode();
+ }-*/;
+
+ public final native JsJavaScriptAudioNode createJavaScriptNode(int bufferSize) /*-{
+ return this.createJavaScriptNode(bufferSize);
+ }-*/;
+
+ public final native JsJavaScriptAudioNode createJavaScriptNode(int bufferSize, int numberOfInputChannels) /*-{
+ return this.createJavaScriptNode(bufferSize, numberOfInputChannels);
+ }-*/;
+
+ public final native JsJavaScriptAudioNode createJavaScriptNode(int bufferSize, int numberOfInputChannels, int numberOfOutputChannels) /*-{
+ return this.createJavaScriptNode(bufferSize, numberOfInputChannels, numberOfOutputChannels);
+ }-*/;
+
+ public final native JsMediaElementAudioSourceNode createMediaElementSource(MediaElement mediaElement) /*-{
+ return this.createMediaElementSource(mediaElement);
+ }-*/;
+
+ public final native JsOscillator createOscillator() /*-{
+ return this.createOscillator();
+ }-*/;
+
+ public final native JsAudioPannerNode createPanner() /*-{
+ return this.createPanner();
+ }-*/;
+
+ public final native JsWaveShaperNode createWaveShaper() /*-{
+ return this.createWaveShaper();
+ }-*/;
+
+ public final native JsWaveTable createWaveTable(Float32Array real, Float32Array imag) /*-{
+ return this.createWaveTable(real, imag);
+ }-*/;
+
+ public final native void decodeAudioData(ArrayBuffer audioData, AudioBufferCallback successCallback) /*-{
+ this.decodeAudioData(audioData, $entry(successCallback.@elemental.html.AudioBufferCallback::onAudioBufferCallback(Lelemental/html/AudioBuffer;)).bind(successCallback));
+ }-*/;
+
+ public final native void decodeAudioData(ArrayBuffer audioData, AudioBufferCallback successCallback, AudioBufferCallback errorCallback) /*-{
+ this.decodeAudioData(audioData, $entry(successCallback.@elemental.html.AudioBufferCallback::onAudioBufferCallback(Lelemental/html/AudioBuffer;)).bind(successCallback), $entry(errorCallback.@elemental.html.AudioBufferCallback::onAudioBufferCallback(Lelemental/html/AudioBuffer;)).bind(errorCallback));
+ }-*/;
+
+ public final native void startRendering() /*-{
+ this.startRendering();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioDestinationNode.java b/elemental/src/elemental/js/html/JsAudioDestinationNode.java
new file mode 100644
index 0000000..4a27c66
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioDestinationNode.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioDestinationNode;
+import elemental.html.AudioNode;
+
+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 JsAudioDestinationNode extends JsAudioNode implements AudioDestinationNode {
+ protected JsAudioDestinationNode() {}
+
+ public final native int getNumberOfChannels() /*-{
+ return this.numberOfChannels;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioElement.java b/elemental/src/elemental/js/html/JsAudioElement.java
new file mode 100644
index 0000000..1cd8f83
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioElement.java
@@ -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 elemental.js.html;
+import elemental.html.AudioElement;
+import elemental.html.MediaElement;
+
+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 JsAudioElement extends JsMediaElement implements AudioElement {
+ protected JsAudioElement() {}
+}
diff --git a/elemental/src/elemental/js/html/JsAudioGain.java b/elemental/src/elemental/js/html/JsAudioGain.java
new file mode 100644
index 0000000..12a8d6b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioGain.java
@@ -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 elemental.js.html;
+import elemental.html.AudioParam;
+import elemental.html.AudioGain;
+
+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 JsAudioGain extends JsAudioParam implements AudioGain {
+ protected JsAudioGain() {}
+}
diff --git a/elemental/src/elemental/js/html/JsAudioGainNode.java b/elemental/src/elemental/js/html/JsAudioGainNode.java
new file mode 100644
index 0000000..64c43b7
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioGainNode.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioNode;
+import elemental.html.AudioGainNode;
+import elemental.html.AudioGain;
+
+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 JsAudioGainNode extends JsAudioNode implements AudioGainNode {
+ protected JsAudioGainNode() {}
+
+ public final native JsAudioGain getGain() /*-{
+ return this.gain;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioListener.java b/elemental/src/elemental/js/html/JsAudioListener.java
new file mode 100644
index 0000000..2db7aa2
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioListener.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioListener;
+
+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 JsAudioListener extends JsElementalMixinBase implements AudioListener {
+ protected JsAudioListener() {}
+
+ public final native float getDopplerFactor() /*-{
+ return this.dopplerFactor;
+ }-*/;
+
+ public final native void setDopplerFactor(float param_dopplerFactor) /*-{
+ this.dopplerFactor = param_dopplerFactor;
+ }-*/;
+
+ public final native float getSpeedOfSound() /*-{
+ return this.speedOfSound;
+ }-*/;
+
+ public final native void setSpeedOfSound(float param_speedOfSound) /*-{
+ this.speedOfSound = param_speedOfSound;
+ }-*/;
+
+ public final native void setOrientation(float x, float y, float z, float xUp, float yUp, float zUp) /*-{
+ this.setOrientation(x, y, z, xUp, yUp, zUp);
+ }-*/;
+
+ public final native void setPosition(float x, float y, float z) /*-{
+ this.setPosition(x, y, z);
+ }-*/;
+
+ public final native void setVelocity(float x, float y, float z) /*-{
+ this.setVelocity(x, y, z);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioNode.java b/elemental/src/elemental/js/html/JsAudioNode.java
new file mode 100644
index 0000000..90b5b13
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioNode.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioParam;
+import elemental.html.AudioNode;
+import elemental.html.AudioContext;
+
+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 JsAudioNode extends JsElementalMixinBase implements AudioNode {
+ protected JsAudioNode() {}
+
+ public final native JsAudioContext getContext() /*-{
+ return this.context;
+ }-*/;
+
+ public final native int getNumberOfInputs() /*-{
+ return this.numberOfInputs;
+ }-*/;
+
+ public final native int getNumberOfOutputs() /*-{
+ return this.numberOfOutputs;
+ }-*/;
+
+ public final native void connect(AudioNode destination, int output, int input) /*-{
+ this.connect(destination, output, input);
+ }-*/;
+
+ public final native void connect(AudioParam destination, int output) /*-{
+ this.connect(destination, output);
+ }-*/;
+
+ public final native void disconnect(int output) /*-{
+ this.disconnect(output);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioPannerNode.java b/elemental/src/elemental/js/html/JsAudioPannerNode.java
new file mode 100644
index 0000000..3ec77bb
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioPannerNode.java
@@ -0,0 +1,125 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioNode;
+import elemental.html.AudioPannerNode;
+import elemental.html.AudioGain;
+
+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 JsAudioPannerNode extends JsAudioNode implements AudioPannerNode {
+ protected JsAudioPannerNode() {}
+
+ public final native JsAudioGain getConeGain() /*-{
+ return this.coneGain;
+ }-*/;
+
+ public final native float getConeInnerAngle() /*-{
+ return this.coneInnerAngle;
+ }-*/;
+
+ public final native void setConeInnerAngle(float param_coneInnerAngle) /*-{
+ this.coneInnerAngle = param_coneInnerAngle;
+ }-*/;
+
+ public final native float getConeOuterAngle() /*-{
+ return this.coneOuterAngle;
+ }-*/;
+
+ public final native void setConeOuterAngle(float param_coneOuterAngle) /*-{
+ this.coneOuterAngle = param_coneOuterAngle;
+ }-*/;
+
+ public final native float getConeOuterGain() /*-{
+ return this.coneOuterGain;
+ }-*/;
+
+ public final native void setConeOuterGain(float param_coneOuterGain) /*-{
+ this.coneOuterGain = param_coneOuterGain;
+ }-*/;
+
+ public final native JsAudioGain getDistanceGain() /*-{
+ return this.distanceGain;
+ }-*/;
+
+ public final native int getDistanceModel() /*-{
+ return this.distanceModel;
+ }-*/;
+
+ public final native void setDistanceModel(int param_distanceModel) /*-{
+ this.distanceModel = param_distanceModel;
+ }-*/;
+
+ public final native float getMaxDistance() /*-{
+ return this.maxDistance;
+ }-*/;
+
+ public final native void setMaxDistance(float param_maxDistance) /*-{
+ this.maxDistance = param_maxDistance;
+ }-*/;
+
+ public final native int getPanningModel() /*-{
+ return this.panningModel;
+ }-*/;
+
+ public final native void setPanningModel(int param_panningModel) /*-{
+ this.panningModel = param_panningModel;
+ }-*/;
+
+ public final native float getRefDistance() /*-{
+ return this.refDistance;
+ }-*/;
+
+ public final native void setRefDistance(float param_refDistance) /*-{
+ this.refDistance = param_refDistance;
+ }-*/;
+
+ public final native float getRolloffFactor() /*-{
+ return this.rolloffFactor;
+ }-*/;
+
+ public final native void setRolloffFactor(float param_rolloffFactor) /*-{
+ this.rolloffFactor = param_rolloffFactor;
+ }-*/;
+
+ public final native void setOrientation(float x, float y, float z) /*-{
+ this.setOrientation(x, y, z);
+ }-*/;
+
+ public final native void setPosition(float x, float y, float z) /*-{
+ this.setPosition(x, y, z);
+ }-*/;
+
+ public final native void setVelocity(float x, float y, float z) /*-{
+ this.setVelocity(x, y, z);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioParam.java b/elemental/src/elemental/js/html/JsAudioParam.java
new file mode 100644
index 0000000..b67a926
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioParam.java
@@ -0,0 +1,92 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioParam;
+import elemental.html.Float32Array;
+
+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 JsAudioParam extends JsElementalMixinBase implements AudioParam {
+ protected JsAudioParam() {}
+
+ public final native float getDefaultValue() /*-{
+ return this.defaultValue;
+ }-*/;
+
+ public final native float getMaxValue() /*-{
+ return this.maxValue;
+ }-*/;
+
+ public final native float getMinValue() /*-{
+ return this.minValue;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native int getUnits() /*-{
+ return this.units;
+ }-*/;
+
+ public final native float getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(float param_value) /*-{
+ this.value = param_value;
+ }-*/;
+
+ public final native void cancelScheduledValues(float startTime) /*-{
+ this.cancelScheduledValues(startTime);
+ }-*/;
+
+ public final native void exponentialRampToValueAtTime(float value, float time) /*-{
+ this.exponentialRampToValueAtTime(value, time);
+ }-*/;
+
+ public final native void linearRampToValueAtTime(float value, float time) /*-{
+ this.linearRampToValueAtTime(value, time);
+ }-*/;
+
+ public final native void setTargetValueAtTime(float targetValue, float time, float timeConstant) /*-{
+ this.setTargetValueAtTime(targetValue, time, timeConstant);
+ }-*/;
+
+ public final native void setValueAtTime(float value, float time) /*-{
+ this.setValueAtTime(value, time);
+ }-*/;
+
+ public final native void setValueCurveAtTime(Float32Array values, float time, float duration) /*-{
+ this.setValueCurveAtTime(values, time, duration);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioProcessingEvent.java b/elemental/src/elemental/js/html/JsAudioProcessingEvent.java
new file mode 100644
index 0000000..1f469d7
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioProcessingEvent.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.js.html;
+import elemental.events.Event;
+import elemental.html.AudioProcessingEvent;
+import elemental.js.events.JsEvent;
+import elemental.html.AudioBuffer;
+
+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 JsAudioProcessingEvent extends JsEvent implements AudioProcessingEvent {
+ protected JsAudioProcessingEvent() {}
+
+ public final native JsAudioBuffer getInputBuffer() /*-{
+ return this.inputBuffer;
+ }-*/;
+
+ public final native JsAudioBuffer getOutputBuffer() /*-{
+ return this.outputBuffer;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsAudioSourceNode.java b/elemental/src/elemental/js/html/JsAudioSourceNode.java
new file mode 100644
index 0000000..58df201
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsAudioSourceNode.java
@@ -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 elemental.js.html;
+import elemental.html.AudioNode;
+import elemental.html.AudioSourceNode;
+
+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 JsAudioSourceNode extends JsAudioNode implements AudioSourceNode {
+ protected JsAudioSourceNode() {}
+}
diff --git a/elemental/src/elemental/js/html/JsBRElement.java b/elemental/src/elemental/js/html/JsBRElement.java
new file mode 100644
index 0000000..c6dc7ba
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsBRElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.BRElement;
+
+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 JsBRElement extends JsElement implements BRElement {
+ protected JsBRElement() {}
+
+ public final native String getClear() /*-{
+ return this.clear;
+ }-*/;
+
+ public final native void setClear(String param_clear) /*-{
+ this.clear = param_clear;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsBarProp.java b/elemental/src/elemental/js/html/JsBarProp.java
new file mode 100644
index 0000000..32b086f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsBarProp.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.BarProp;
+
+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 JsBarProp extends JsElementalMixinBase implements BarProp {
+ protected JsBarProp() {}
+
+ public final native boolean isVisible() /*-{
+ return this.visible;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsBaseElement.java b/elemental/src/elemental/js/html/JsBaseElement.java
new file mode 100644
index 0000000..9de8d97
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsBaseElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.BaseElement;
+
+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 JsBaseElement extends JsElement implements BaseElement {
+ protected JsBaseElement() {}
+
+ public final native String getHref() /*-{
+ return this.href;
+ }-*/;
+
+ public final native void setHref(String param_href) /*-{
+ this.href = param_href;
+ }-*/;
+
+ public final native String getTarget() /*-{
+ return this.target;
+ }-*/;
+
+ public final native void setTarget(String param_target) /*-{
+ this.target = param_target;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsBaseFontElement.java b/elemental/src/elemental/js/html/JsBaseFontElement.java
new file mode 100644
index 0000000..b28b193
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsBaseFontElement.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.BaseFontElement;
+
+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 JsBaseFontElement extends JsElement implements BaseFontElement {
+ protected JsBaseFontElement() {}
+
+ public final native String getColor() /*-{
+ return this.color;
+ }-*/;
+
+ public final native void setColor(String param_color) /*-{
+ this.color = param_color;
+ }-*/;
+
+ public final native String getFace() /*-{
+ return this.face;
+ }-*/;
+
+ public final native void setFace(String param_face) /*-{
+ this.face = param_face;
+ }-*/;
+
+ public final native int getSize() /*-{
+ return this.size;
+ }-*/;
+
+ public final native void setSize(int param_size) /*-{
+ this.size = param_size;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsBatteryManager.java b/elemental/src/elemental/js/html/JsBatteryManager.java
new file mode 100644
index 0000000..85248dd
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsBatteryManager.java
@@ -0,0 +1,87 @@
+/*
+ * 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 elemental.js.html;
+import elemental.events.EventListener;
+import elemental.html.BatteryManager;
+import elemental.js.events.JsEvent;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsBatteryManager extends JsElementalMixinBase implements BatteryManager {
+ protected JsBatteryManager() {}
+
+ public final native boolean isCharging() /*-{
+ return this.charging;
+ }-*/;
+
+ public final native double getChargingTime() /*-{
+ return this.chargingTime;
+ }-*/;
+
+ public final native double getDischargingTime() /*-{
+ return this.dischargingTime;
+ }-*/;
+
+ public final native double getLevel() /*-{
+ return this.level;
+ }-*/;
+
+ public final native EventListener getOnchargingchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onchargingchange);
+ }-*/;
+
+ public final native void setOnchargingchange(EventListener listener) /*-{
+ this.onchargingchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnchargingtimechange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onchargingtimechange);
+ }-*/;
+
+ public final native void setOnchargingtimechange(EventListener listener) /*-{
+ this.onchargingtimechange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndischargingtimechange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondischargingtimechange);
+ }-*/;
+
+ public final native void setOndischargingtimechange(EventListener listener) /*-{
+ this.ondischargingtimechange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnlevelchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onlevelchange);
+ }-*/;
+
+ public final native void setOnlevelchange(EventListener listener) /*-{
+ this.onlevelchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;}
diff --git a/elemental/src/elemental/js/html/JsBiquadFilterNode.java b/elemental/src/elemental/js/html/JsBiquadFilterNode.java
new file mode 100644
index 0000000..cf8dea0
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsBiquadFilterNode.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioParam;
+import elemental.html.Float32Array;
+import elemental.html.AudioNode;
+import elemental.html.BiquadFilterNode;
+
+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 JsBiquadFilterNode extends JsAudioNode implements BiquadFilterNode {
+ protected JsBiquadFilterNode() {}
+
+ public final native JsAudioParam getQ() /*-{
+ return this.Q;
+ }-*/;
+
+ public final native JsAudioParam getFrequency() /*-{
+ return this.frequency;
+ }-*/;
+
+ public final native JsAudioParam getGain() /*-{
+ return this.gain;
+ }-*/;
+
+ public final native int getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(int param_type) /*-{
+ this.type = param_type;
+ }-*/;
+
+ public final native void getFrequencyResponse(Float32Array frequencyHz, Float32Array magResponse, Float32Array phaseResponse) /*-{
+ this.getFrequencyResponse(frequencyHz, magResponse, phaseResponse);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsBlob.java b/elemental/src/elemental/js/html/JsBlob.java
new file mode 100644
index 0000000..8016860
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsBlob.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Blob;
+
+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 JsBlob extends JsElementalMixinBase implements Blob {
+ protected JsBlob() {}
+
+ public final native double getSize() /*-{
+ return this.size;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native JsBlob webkitSlice() /*-{
+ return this.webkitSlice();
+ }-*/;
+
+ public final native JsBlob webkitSlice(double start) /*-{
+ return this.webkitSlice(start);
+ }-*/;
+
+ public final native JsBlob webkitSlice(double start, double end) /*-{
+ return this.webkitSlice(start, end);
+ }-*/;
+
+ public final native JsBlob webkitSlice(double start, double end, String contentType) /*-{
+ return this.webkitSlice(start, end, contentType);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsBlobBuilder.java b/elemental/src/elemental/js/html/JsBlobBuilder.java
new file mode 100644
index 0000000..577f6df
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsBlobBuilder.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.BlobBuilder;
+import elemental.html.ArrayBuffer;
+import elemental.html.Blob;
+
+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 JsBlobBuilder extends JsElementalMixinBase implements BlobBuilder {
+ protected JsBlobBuilder() {}
+
+ public final native void append(Blob blob) /*-{
+ this.append(blob);
+ }-*/;
+
+ public final native void append(ArrayBuffer arrayBuffer) /*-{
+ this.append(arrayBuffer);
+ }-*/;
+
+ public final native void append(String value) /*-{
+ this.append(value);
+ }-*/;
+
+ public final native void append(String value, String endings) /*-{
+ this.append(value, endings);
+ }-*/;
+
+ public final native JsBlob getBlob() /*-{
+ return this.getBlob();
+ }-*/;
+
+ public final native JsBlob getBlob(String contentType) /*-{
+ return this.getBlob(contentType);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsBodyElement.java b/elemental/src/elemental/js/html/JsBodyElement.java
new file mode 100644
index 0000000..2defa4f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsBodyElement.java
@@ -0,0 +1,154 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+import elemental.html.BodyElement;
+
+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 JsBodyElement extends JsElement implements BodyElement {
+ protected JsBodyElement() {}
+
+ public final native String getALink() /*-{
+ return this.aLink;
+ }-*/;
+
+ public final native void setALink(String param_aLink) /*-{
+ this.aLink = param_aLink;
+ }-*/;
+
+ public final native String getBackground() /*-{
+ return this.background;
+ }-*/;
+
+ public final native void setBackground(String param_background) /*-{
+ this.background = param_background;
+ }-*/;
+
+ public final native String getBgColor() /*-{
+ return this.bgColor;
+ }-*/;
+
+ public final native void setBgColor(String param_bgColor) /*-{
+ this.bgColor = param_bgColor;
+ }-*/;
+
+ public final native String getLink() /*-{
+ return this.link;
+ }-*/;
+
+ public final native void setLink(String param_link) /*-{
+ this.link = param_link;
+ }-*/;
+
+ public final native EventListener getOnbeforeunload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforeunload);
+ }-*/;
+
+ public final native void setOnbeforeunload(EventListener listener) /*-{
+ this.onbeforeunload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnhashchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onhashchange);
+ }-*/;
+
+ public final native void setOnhashchange(EventListener listener) /*-{
+ this.onhashchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmessage);
+ }-*/;
+
+ public final native void setOnmessage(EventListener listener) /*-{
+ this.onmessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnoffline() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onoffline);
+ }-*/;
+
+ public final native void setOnoffline(EventListener listener) /*-{
+ this.onoffline = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnonline() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ononline);
+ }-*/;
+
+ public final native void setOnonline(EventListener listener) /*-{
+ this.ononline = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnpopstate() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onpopstate);
+ }-*/;
+
+ public final native void setOnpopstate(EventListener listener) /*-{
+ this.onpopstate = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnresize() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onresize);
+ }-*/;
+
+ public final native void setOnresize(EventListener listener) /*-{
+ this.onresize = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnstorage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onstorage);
+ }-*/;
+
+ public final native void setOnstorage(EventListener listener) /*-{
+ this.onstorage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnunload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onunload);
+ }-*/;
+
+ public final native void setOnunload(EventListener listener) /*-{
+ this.onunload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native String getText() /*-{
+ return this.text;
+ }-*/;
+
+ public final native void setText(String param_text) /*-{
+ this.text = param_text;
+ }-*/;
+
+ public final native String getVLink() /*-{
+ return this.vLink;
+ }-*/;
+
+ public final native void setVLink(String param_vLink) /*-{
+ this.vLink = param_vLink;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsButtonElement.java b/elemental/src/elemental/js/html/JsButtonElement.java
new file mode 100644
index 0000000..7bef4a8
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsButtonElement.java
@@ -0,0 +1,149 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ValidityState;
+import elemental.html.ButtonElement;
+import elemental.dom.Element;
+import elemental.js.dom.JsElement;
+import elemental.html.FormElement;
+import elemental.js.dom.JsNodeList;
+import elemental.dom.NodeList;
+
+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 JsButtonElement extends JsElement implements ButtonElement {
+ protected JsButtonElement() {}
+
+ public final native boolean isAutofocus() /*-{
+ return this.autofocus;
+ }-*/;
+
+ public final native void setAutofocus(boolean param_autofocus) /*-{
+ this.autofocus = param_autofocus;
+ }-*/;
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native String getFormAction() /*-{
+ return this.formAction;
+ }-*/;
+
+ public final native void setFormAction(String param_formAction) /*-{
+ this.formAction = param_formAction;
+ }-*/;
+
+ public final native String getFormEnctype() /*-{
+ return this.formEnctype;
+ }-*/;
+
+ public final native void setFormEnctype(String param_formEnctype) /*-{
+ this.formEnctype = param_formEnctype;
+ }-*/;
+
+ public final native String getFormMethod() /*-{
+ return this.formMethod;
+ }-*/;
+
+ public final native void setFormMethod(String param_formMethod) /*-{
+ this.formMethod = param_formMethod;
+ }-*/;
+
+ public final native boolean isFormNoValidate() /*-{
+ return this.formNoValidate;
+ }-*/;
+
+ public final native void setFormNoValidate(boolean param_formNoValidate) /*-{
+ this.formNoValidate = param_formNoValidate;
+ }-*/;
+
+ public final native String getFormTarget() /*-{
+ return this.formTarget;
+ }-*/;
+
+ public final native void setFormTarget(String param_formTarget) /*-{
+ this.formTarget = param_formTarget;
+ }-*/;
+
+ public final native JsNodeList getLabels() /*-{
+ return this.labels;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native String getValidationMessage() /*-{
+ return this.validationMessage;
+ }-*/;
+
+ public final native JsValidityState getValidity() /*-{
+ return this.validity;
+ }-*/;
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+
+ public final native boolean isWillValidate() /*-{
+ return this.willValidate;
+ }-*/;
+
+ public final native boolean checkValidity() /*-{
+ return this.checkValidity();
+ }-*/;
+
+ public final native void setCustomValidity(String error) /*-{
+ this.setCustomValidity(error);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsCanvasElement.java b/elemental/src/elemental/js/html/JsCanvasElement.java
new file mode 100644
index 0000000..60d5bbe
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsCanvasElement.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.CanvasRenderingContext;
+import elemental.html.CanvasElement;
+
+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 JsCanvasElement extends JsElement implements CanvasElement {
+ protected JsCanvasElement() {}
+
+ public final native int getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(int param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native int getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(int param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native JsCanvasRenderingContext getContext(String contextId) /*-{
+ return this.getContext(contextId);
+ }-*/;
+
+ public final native String toDataURL(String type) /*-{
+ return this.toDataURL(type);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsCanvasGradient.java b/elemental/src/elemental/js/html/JsCanvasGradient.java
new file mode 100644
index 0000000..c4c09d7
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsCanvasGradient.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.CanvasGradient;
+
+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 JsCanvasGradient extends JsElementalMixinBase implements CanvasGradient {
+ protected JsCanvasGradient() {}
+
+ public final native void addColorStop(float offset, String color) /*-{
+ this.addColorStop(offset, color);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsCanvasPattern.java b/elemental/src/elemental/js/html/JsCanvasPattern.java
new file mode 100644
index 0000000..e72dc9b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsCanvasPattern.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.CanvasPattern;
+
+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 JsCanvasPattern extends JsElementalMixinBase implements CanvasPattern {
+ protected JsCanvasPattern() {}
+}
diff --git a/elemental/src/elemental/js/html/JsCanvasRenderingContext.java b/elemental/src/elemental/js/html/JsCanvasRenderingContext.java
new file mode 100644
index 0000000..f34e630
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsCanvasRenderingContext.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.CanvasElement;
+import elemental.html.CanvasRenderingContext;
+
+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 JsCanvasRenderingContext extends JsElementalMixinBase implements CanvasRenderingContext {
+ protected JsCanvasRenderingContext() {}
+
+ public final native JsCanvasElement getCanvas() /*-{
+ return this.canvas;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsCanvasRenderingContext2D.java b/elemental/src/elemental/js/html/JsCanvasRenderingContext2D.java
new file mode 100644
index 0000000..d6a8735
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsCanvasRenderingContext2D.java
@@ -0,0 +1,525 @@
+/*
+ * 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 elemental.js.html;
+import elemental.util.Indexable;
+import elemental.html.TextMetrics;
+import elemental.html.CanvasRenderingContext;
+import elemental.html.CanvasGradient;
+import elemental.js.util.JsIndexable;
+import elemental.html.CanvasRenderingContext2D;
+import elemental.html.ImageData;
+import elemental.html.VideoElement;
+import elemental.html.CanvasPattern;
+import elemental.html.ImageElement;
+import elemental.html.CanvasElement;
+
+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 JsCanvasRenderingContext2D extends JsCanvasRenderingContext implements CanvasRenderingContext2D {
+ protected JsCanvasRenderingContext2D() {}
+
+ public final native Object getFillStyle() /*-{
+ return this.fillStyle;
+ }-*/;
+
+ public final native void setFillStyle(Object param_fillStyle) /*-{
+ this.fillStyle = param_fillStyle;
+ }-*/;
+
+ public final native String getFont() /*-{
+ return this.font;
+ }-*/;
+
+ public final native void setFont(String param_font) /*-{
+ this.font = param_font;
+ }-*/;
+
+ public final native float getGlobalAlpha() /*-{
+ return this.globalAlpha;
+ }-*/;
+
+ public final native void setGlobalAlpha(float param_globalAlpha) /*-{
+ this.globalAlpha = param_globalAlpha;
+ }-*/;
+
+ public final native String getGlobalCompositeOperation() /*-{
+ return this.globalCompositeOperation;
+ }-*/;
+
+ public final native void setGlobalCompositeOperation(String param_globalCompositeOperation) /*-{
+ this.globalCompositeOperation = param_globalCompositeOperation;
+ }-*/;
+
+ public final native String getLineCap() /*-{
+ return this.lineCap;
+ }-*/;
+
+ public final native void setLineCap(String param_lineCap) /*-{
+ this.lineCap = param_lineCap;
+ }-*/;
+
+ public final native String getLineJoin() /*-{
+ return this.lineJoin;
+ }-*/;
+
+ public final native void setLineJoin(String param_lineJoin) /*-{
+ this.lineJoin = param_lineJoin;
+ }-*/;
+
+ public final native float getLineWidth() /*-{
+ return this.lineWidth;
+ }-*/;
+
+ public final native void setLineWidth(float param_lineWidth) /*-{
+ this.lineWidth = param_lineWidth;
+ }-*/;
+
+ public final native float getMiterLimit() /*-{
+ return this.miterLimit;
+ }-*/;
+
+ public final native void setMiterLimit(float param_miterLimit) /*-{
+ this.miterLimit = param_miterLimit;
+ }-*/;
+
+ public final native float getShadowBlur() /*-{
+ return this.shadowBlur;
+ }-*/;
+
+ public final native void setShadowBlur(float param_shadowBlur) /*-{
+ this.shadowBlur = param_shadowBlur;
+ }-*/;
+
+ public final native String getShadowColor() /*-{
+ return this.shadowColor;
+ }-*/;
+
+ public final native void setShadowColor(String param_shadowColor) /*-{
+ this.shadowColor = param_shadowColor;
+ }-*/;
+
+ public final native float getShadowOffsetX() /*-{
+ return this.shadowOffsetX;
+ }-*/;
+
+ public final native void setShadowOffsetX(float param_shadowOffsetX) /*-{
+ this.shadowOffsetX = param_shadowOffsetX;
+ }-*/;
+
+ public final native float getShadowOffsetY() /*-{
+ return this.shadowOffsetY;
+ }-*/;
+
+ public final native void setShadowOffsetY(float param_shadowOffsetY) /*-{
+ this.shadowOffsetY = param_shadowOffsetY;
+ }-*/;
+
+ public final native Object getStrokeStyle() /*-{
+ return this.strokeStyle;
+ }-*/;
+
+ public final native void setStrokeStyle(Object param_strokeStyle) /*-{
+ this.strokeStyle = param_strokeStyle;
+ }-*/;
+
+ public final native String getTextAlign() /*-{
+ return this.textAlign;
+ }-*/;
+
+ public final native void setTextAlign(String param_textAlign) /*-{
+ this.textAlign = param_textAlign;
+ }-*/;
+
+ public final native String getTextBaseline() /*-{
+ return this.textBaseline;
+ }-*/;
+
+ public final native void setTextBaseline(String param_textBaseline) /*-{
+ this.textBaseline = param_textBaseline;
+ }-*/;
+
+ public final native float getWebkitBackingStorePixelRatio() /*-{
+ return this.webkitBackingStorePixelRatio;
+ }-*/;
+
+ public final native boolean isWebkitImageSmoothingEnabled() /*-{
+ return this.webkitImageSmoothingEnabled;
+ }-*/;
+
+ public final native void setWebkitImageSmoothingEnabled(boolean param_webkitImageSmoothingEnabled) /*-{
+ this.webkitImageSmoothingEnabled = param_webkitImageSmoothingEnabled;
+ }-*/;
+
+ public final native JsIndexable getWebkitLineDash() /*-{
+ return this.webkitLineDash;
+ }-*/;
+
+ public final native void setWebkitLineDash(Indexable param_webkitLineDash) /*-{
+ this.webkitLineDash = param_webkitLineDash;
+ }-*/;
+
+ public final native float getWebkitLineDashOffset() /*-{
+ return this.webkitLineDashOffset;
+ }-*/;
+
+ public final native void setWebkitLineDashOffset(float param_webkitLineDashOffset) /*-{
+ this.webkitLineDashOffset = param_webkitLineDashOffset;
+ }-*/;
+
+ public final native void arc(float x, float y, float radius, float startAngle, float endAngle, boolean anticlockwise) /*-{
+ this.arc(x, y, radius, startAngle, endAngle, anticlockwise);
+ }-*/;
+
+ public final native void arcTo(float x1, float y1, float x2, float y2, float radius) /*-{
+ this.arcTo(x1, y1, x2, y2, radius);
+ }-*/;
+
+ public final native void beginPath() /*-{
+ this.beginPath();
+ }-*/;
+
+ public final native void bezierCurveTo(float cp1x, float cp1y, float cp2x, float cp2y, float x, float y) /*-{
+ this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
+ }-*/;
+
+ public final native void clearRect(float x, float y, float width, float height) /*-{
+ this.clearRect(x, y, width, height);
+ }-*/;
+
+ public final native void clearShadow() /*-{
+ this.clearShadow();
+ }-*/;
+
+ public final native void clip() /*-{
+ this.clip();
+ }-*/;
+
+ public final native void closePath() /*-{
+ this.closePath();
+ }-*/;
+
+ public final native JsImageData createImageData(ImageData imagedata) /*-{
+ return this.createImageData(imagedata);
+ }-*/;
+
+ public final native JsImageData createImageData(float sw, float sh) /*-{
+ return this.createImageData(sw, sh);
+ }-*/;
+
+ public final native JsCanvasGradient createLinearGradient(float x0, float y0, float x1, float y1) /*-{
+ return this.createLinearGradient(x0, y0, x1, y1);
+ }-*/;
+
+ public final native JsCanvasPattern createPattern(CanvasElement canvas, String repetitionType) /*-{
+ return this.createPattern(canvas, repetitionType);
+ }-*/;
+
+ public final native JsCanvasPattern createPattern(ImageElement image, String repetitionType) /*-{
+ return this.createPattern(image, repetitionType);
+ }-*/;
+
+ public final native JsCanvasGradient createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1) /*-{
+ return this.createRadialGradient(x0, y0, r0, x1, y1, r1);
+ }-*/;
+
+ public final native void drawImage(ImageElement image, float x, float y) /*-{
+ this.drawImage(image, x, y);
+ }-*/;
+
+ public final native void drawImage(ImageElement image, float x, float y, float width, float height) /*-{
+ this.drawImage(image, x, y, width, height);
+ }-*/;
+
+ public final native void drawImage(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh) /*-{
+ this.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh);
+ }-*/;
+
+ public final native void drawImage(CanvasElement canvas, float x, float y) /*-{
+ this.drawImage(canvas, x, y);
+ }-*/;
+
+ public final native void drawImage(CanvasElement canvas, float x, float y, float width, float height) /*-{
+ this.drawImage(canvas, x, y, width, height);
+ }-*/;
+
+ public final native void drawImage(CanvasElement canvas, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh) /*-{
+ this.drawImage(canvas, sx, sy, sw, sh, dx, dy, dw, dh);
+ }-*/;
+
+ public final native void drawImage(VideoElement video, float x, float y) /*-{
+ this.drawImage(video, x, y);
+ }-*/;
+
+ public final native void drawImage(VideoElement video, float x, float y, float width, float height) /*-{
+ this.drawImage(video, x, y, width, height);
+ }-*/;
+
+ public final native void drawImage(VideoElement video, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh) /*-{
+ this.drawImage(video, sx, sy, sw, sh, dx, dy, dw, dh);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image) /*-{
+ this.drawImageFromRect(image);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image, float sx) /*-{
+ this.drawImageFromRect(image, sx);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image, float sx, float sy) /*-{
+ this.drawImageFromRect(image, sx, sy);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image, float sx, float sy, float sw) /*-{
+ this.drawImageFromRect(image, sx, sy, sw);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh) /*-{
+ this.drawImageFromRect(image, sx, sy, sw, sh);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx) /*-{
+ this.drawImageFromRect(image, sx, sy, sw, sh, dx);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy) /*-{
+ this.drawImageFromRect(image, sx, sy, sw, sh, dx, dy);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy, float dw) /*-{
+ this.drawImageFromRect(image, sx, sy, sw, sh, dx, dy, dw);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh) /*-{
+ this.drawImageFromRect(image, sx, sy, sw, sh, dx, dy, dw, dh);
+ }-*/;
+
+ public final native void drawImageFromRect(ImageElement image, float sx, float sy, float sw, float sh, float dx, float dy, float dw, float dh, String compositeOperation) /*-{
+ this.drawImageFromRect(image, sx, sy, sw, sh, dx, dy, dw, dh, compositeOperation);
+ }-*/;
+
+ public final native void fill() /*-{
+ this.fill();
+ }-*/;
+
+ public final native void fillRect(float x, float y, float width, float height) /*-{
+ this.fillRect(x, y, width, height);
+ }-*/;
+
+ public final native void fillText(String text, float x, float y) /*-{
+ this.fillText(text, x, y);
+ }-*/;
+
+ public final native void fillText(String text, float x, float y, float maxWidth) /*-{
+ this.fillText(text, x, y, maxWidth);
+ }-*/;
+
+ public final native JsImageData getImageData(float sx, float sy, float sw, float sh) /*-{
+ return this.getImageData(sx, sy, sw, sh);
+ }-*/;
+
+ public final native boolean isPointInPath(float x, float y) /*-{
+ return this.isPointInPath(x, y);
+ }-*/;
+
+ public final native void lineTo(float x, float y) /*-{
+ this.lineTo(x, y);
+ }-*/;
+
+ public final native JsTextMetrics measureText(String text) /*-{
+ return this.measureText(text);
+ }-*/;
+
+ public final native void moveTo(float x, float y) /*-{
+ this.moveTo(x, y);
+ }-*/;
+
+ public final native void putImageData(ImageData imagedata, float dx, float dy) /*-{
+ this.putImageData(imagedata, dx, dy);
+ }-*/;
+
+ public final native void putImageData(ImageData imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight) /*-{
+ this.putImageData(imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
+ }-*/;
+
+ public final native void quadraticCurveTo(float cpx, float cpy, float x, float y) /*-{
+ this.quadraticCurveTo(cpx, cpy, x, y);
+ }-*/;
+
+ public final native void rect(float x, float y, float width, float height) /*-{
+ this.rect(x, y, width, height);
+ }-*/;
+
+ public final native void restore() /*-{
+ this.restore();
+ }-*/;
+
+ public final native void rotate(float angle) /*-{
+ this.rotate(angle);
+ }-*/;
+
+ public final native void save() /*-{
+ this.save();
+ }-*/;
+
+ public final native void scale(float sx, float sy) /*-{
+ this.scale(sx, sy);
+ }-*/;
+
+ public final native void setAlpha(float alpha) /*-{
+ this.setAlpha(alpha);
+ }-*/;
+
+ public final native void setCompositeOperation(String compositeOperation) /*-{
+ this.setCompositeOperation(compositeOperation);
+ }-*/;
+
+ public final native void setFillColor(String color) /*-{
+ this.setFillColor(color);
+ }-*/;
+
+ public final native void setFillColor(String color, float alpha) /*-{
+ this.setFillColor(color, alpha);
+ }-*/;
+
+ public final native void setFillColor(float grayLevel) /*-{
+ this.setFillColor(grayLevel);
+ }-*/;
+
+ public final native void setFillColor(float grayLevel, float alpha) /*-{
+ this.setFillColor(grayLevel, alpha);
+ }-*/;
+
+ public final native void setFillColor(float r, float g, float b, float a) /*-{
+ this.setFillColor(r, g, b, a);
+ }-*/;
+
+ public final native void setFillColor(float c, float m, float y, float k, float a) /*-{
+ this.setFillColor(c, m, y, k, a);
+ }-*/;
+
+ public final native void setShadow(float width, float height, float blur) /*-{
+ this.setShadow(width, height, blur);
+ }-*/;
+
+ public final native void setShadow(float width, float height, float blur, String color) /*-{
+ this.setShadow(width, height, blur, color);
+ }-*/;
+
+ public final native void setShadow(float width, float height, float blur, String color, float alpha) /*-{
+ this.setShadow(width, height, blur, color, alpha);
+ }-*/;
+
+ public final native void setShadow(float width, float height, float blur, float grayLevel) /*-{
+ this.setShadow(width, height, blur, grayLevel);
+ }-*/;
+
+ public final native void setShadow(float width, float height, float blur, float grayLevel, float alpha) /*-{
+ this.setShadow(width, height, blur, grayLevel, alpha);
+ }-*/;
+
+ public final native void setShadow(float width, float height, float blur, float r, float g, float b, float a) /*-{
+ this.setShadow(width, height, blur, r, g, b, a);
+ }-*/;
+
+ public final native void setShadow(float width, float height, float blur, float c, float m, float y, float k, float a) /*-{
+ this.setShadow(width, height, blur, c, m, y, k, a);
+ }-*/;
+
+ public final native void setStrokeColor(String color) /*-{
+ this.setStrokeColor(color);
+ }-*/;
+
+ public final native void setStrokeColor(String color, float alpha) /*-{
+ this.setStrokeColor(color, alpha);
+ }-*/;
+
+ public final native void setStrokeColor(float grayLevel) /*-{
+ this.setStrokeColor(grayLevel);
+ }-*/;
+
+ public final native void setStrokeColor(float grayLevel, float alpha) /*-{
+ this.setStrokeColor(grayLevel, alpha);
+ }-*/;
+
+ public final native void setStrokeColor(float r, float g, float b, float a) /*-{
+ this.setStrokeColor(r, g, b, a);
+ }-*/;
+
+ public final native void setStrokeColor(float c, float m, float y, float k, float a) /*-{
+ this.setStrokeColor(c, m, y, k, a);
+ }-*/;
+
+ public final native void setTransform(float m11, float m12, float m21, float m22, float dx, float dy) /*-{
+ this.setTransform(m11, m12, m21, m22, dx, dy);
+ }-*/;
+
+ public final native void stroke() /*-{
+ this.stroke();
+ }-*/;
+
+ public final native void strokeRect(float x, float y, float width, float height) /*-{
+ this.strokeRect(x, y, width, height);
+ }-*/;
+
+ public final native void strokeRect(float x, float y, float width, float height, float lineWidth) /*-{
+ this.strokeRect(x, y, width, height, lineWidth);
+ }-*/;
+
+ public final native void strokeText(String text, float x, float y) /*-{
+ this.strokeText(text, x, y);
+ }-*/;
+
+ public final native void strokeText(String text, float x, float y, float maxWidth) /*-{
+ this.strokeText(text, x, y, maxWidth);
+ }-*/;
+
+ public final native void transform(float m11, float m12, float m21, float m22, float dx, float dy) /*-{
+ this.transform(m11, m12, m21, m22, dx, dy);
+ }-*/;
+
+ public final native void translate(float tx, float ty) /*-{
+ this.translate(tx, ty);
+ }-*/;
+
+ public final native JsImageData webkitGetImageDataHD(float sx, float sy, float sw, float sh) /*-{
+ return this.webkitGetImageDataHD(sx, sy, sw, sh);
+ }-*/;
+
+ public final native void webkitPutImageDataHD(ImageData imagedata, float dx, float dy) /*-{
+ this.webkitPutImageDataHD(imagedata, dx, dy);
+ }-*/;
+
+ public final native void webkitPutImageDataHD(ImageData imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight) /*-{
+ this.webkitPutImageDataHD(imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsClientRect.java b/elemental/src/elemental/js/html/JsClientRect.java
new file mode 100644
index 0000000..e5e328b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsClientRect.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ClientRect;
+
+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 JsClientRect extends JsElementalMixinBase implements ClientRect {
+ protected JsClientRect() {}
+
+ public final native float getBottom() /*-{
+ return this.bottom;
+ }-*/;
+
+ public final native float getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native float getLeft() /*-{
+ return this.left;
+ }-*/;
+
+ public final native float getRight() /*-{
+ return this.right;
+ }-*/;
+
+ public final native float getTop() /*-{
+ return this.top;
+ }-*/;
+
+ public final native float getWidth() /*-{
+ return this.width;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsClientRectList.java b/elemental/src/elemental/js/html/JsClientRectList.java
new file mode 100644
index 0000000..f15f1ea
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsClientRectList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ClientRectList;
+import elemental.html.ClientRect;
+
+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 JsClientRectList extends JsElementalMixinBase implements ClientRectList {
+ protected JsClientRectList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsClientRect item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsConsole.java b/elemental/src/elemental/js/html/JsConsole.java
new file mode 100644
index 0000000..4d5b0ea
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsConsole.java
@@ -0,0 +1,124 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Console;
+import elemental.html.MemoryInfo;
+
+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 JsConsole extends JsElementalMixinBase implements Console {
+ protected JsConsole() {}
+
+ public final native JsMemoryInfo getMemory() /*-{
+ return this.memory;
+ }-*/;
+
+ public final native JsIndexable getProfiles() /*-{
+ return this.profiles;
+ }-*/;
+
+ public final native void assertCondition(boolean condition, Object arg) /*-{
+ this.assertCondition(condition, arg);
+ }-*/;
+
+ public final native void count() /*-{
+ this.count();
+ }-*/;
+
+ public final native void debug(Object arg) /*-{
+ this.debug(arg);
+ }-*/;
+
+ public final native void dir() /*-{
+ this.dir();
+ }-*/;
+
+ public final native void dirxml() /*-{
+ this.dirxml();
+ }-*/;
+
+ public final native void error(Object arg) /*-{
+ this.error(arg);
+ }-*/;
+
+ public final native void group(Object arg) /*-{
+ this.group(arg);
+ }-*/;
+
+ public final native void groupCollapsed(Object arg) /*-{
+ this.groupCollapsed(arg);
+ }-*/;
+
+ public final native void groupEnd() /*-{
+ this.groupEnd();
+ }-*/;
+
+ public final native void info(Object arg) /*-{
+ this.info(arg);
+ }-*/;
+
+ public final native void log(Object arg) /*-{
+ this.log(arg);
+ }-*/;
+
+ public final native void markTimeline() /*-{
+ this.markTimeline();
+ }-*/;
+
+ public final native void profile(String title) /*-{
+ this.profile(title);
+ }-*/;
+
+ public final native void profileEnd(String title) /*-{
+ this.profileEnd(title);
+ }-*/;
+
+ public final native void time(String title) /*-{
+ this.time(title);
+ }-*/;
+
+ public final native void timeEnd(String title, Object arg) /*-{
+ this.timeEnd(title, arg);
+ }-*/;
+
+ public final native void timeStamp(Object arg) /*-{
+ this.timeStamp(arg);
+ }-*/;
+
+ public final native void trace(Object arg) /*-{
+ this.trace(arg);
+ }-*/;
+
+ public final native void warn(Object arg) /*-{
+ this.warn(arg);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsContentElement.java b/elemental/src/elemental/js/html/JsContentElement.java
new file mode 100644
index 0000000..9ea41db
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsContentElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.ContentElement;
+
+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 JsContentElement extends JsElement implements ContentElement {
+ protected JsContentElement() {}
+
+ public final native String getSelect() /*-{
+ return this.select;
+ }-*/;
+
+ public final native void setSelect(String param_select) /*-{
+ this.select = param_select;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsConvolverNode.java b/elemental/src/elemental/js/html/JsConvolverNode.java
new file mode 100644
index 0000000..35ee355
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsConvolverNode.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ConvolverNode;
+import elemental.html.AudioNode;
+import elemental.html.AudioBuffer;
+
+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 JsConvolverNode extends JsAudioNode implements ConvolverNode {
+ protected JsConvolverNode() {}
+
+ public final native JsAudioBuffer getBuffer() /*-{
+ return this.buffer;
+ }-*/;
+
+ public final native void setBuffer(AudioBuffer param_buffer) /*-{
+ this.buffer = param_buffer;
+ }-*/;
+
+ public final native boolean isNormalize() /*-{
+ return this.normalize;
+ }-*/;
+
+ public final native void setNormalize(boolean param_normalize) /*-{
+ this.normalize = param_normalize;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsCrypto.java b/elemental/src/elemental/js/html/JsCrypto.java
new file mode 100644
index 0000000..e069ca2
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsCrypto.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ArrayBufferView;
+import elemental.html.Crypto;
+
+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 JsCrypto extends JsElementalMixinBase implements Crypto {
+ protected JsCrypto() {}
+
+ public final native void getRandomValues(ArrayBufferView array) /*-{
+ this.getRandomValues(array);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDListElement.java b/elemental/src/elemental/js/html/JsDListElement.java
new file mode 100644
index 0000000..354f117
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDListElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.DListElement;
+
+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 JsDListElement extends JsElement implements DListElement {
+ protected JsDListElement() {}
+
+ public final native boolean isCompact() /*-{
+ return this.compact;
+ }-*/;
+
+ public final native void setCompact(boolean param_compact) /*-{
+ this.compact = param_compact;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDOMFileSystem.java b/elemental/src/elemental/js/html/JsDOMFileSystem.java
new file mode 100644
index 0000000..aeda6dd
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDOMFileSystem.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DirectoryEntry;
+import elemental.html.DOMFileSystem;
+
+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 JsDOMFileSystem extends JsElementalMixinBase implements DOMFileSystem {
+ protected JsDOMFileSystem() {}
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native JsDirectoryEntry getRoot() /*-{
+ return this.root;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDOMFileSystemSync.java b/elemental/src/elemental/js/html/JsDOMFileSystemSync.java
new file mode 100644
index 0000000..1843123
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDOMFileSystemSync.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DirectoryEntrySync;
+import elemental.html.DOMFileSystemSync;
+
+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 JsDOMFileSystemSync extends JsElementalMixinBase implements DOMFileSystemSync {
+ protected JsDOMFileSystemSync() {}
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native JsDirectoryEntrySync getRoot() /*-{
+ return this.root;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDOMMimeType.java b/elemental/src/elemental/js/html/JsDOMMimeType.java
new file mode 100644
index 0000000..1dd4fcc
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDOMMimeType.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DOMPlugin;
+import elemental.html.DOMMimeType;
+
+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 JsDOMMimeType extends JsElementalMixinBase implements DOMMimeType {
+ protected JsDOMMimeType() {}
+
+ public final native String getDescription() /*-{
+ return this.description;
+ }-*/;
+
+ public final native JsDOMPlugin getEnabledPlugin() /*-{
+ return this.enabledPlugin;
+ }-*/;
+
+ public final native String getSuffixes() /*-{
+ return this.suffixes;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDOMMimeTypeArray.java b/elemental/src/elemental/js/html/JsDOMMimeTypeArray.java
new file mode 100644
index 0000000..d96dd23
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDOMMimeTypeArray.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DOMMimeType;
+import elemental.html.DOMMimeTypeArray;
+
+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 JsDOMMimeTypeArray extends JsElementalMixinBase implements DOMMimeTypeArray {
+ protected JsDOMMimeTypeArray() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsDOMMimeType item(int index) /*-{
+ return this.item(index);
+ }-*/;
+
+ public final native JsDOMMimeType namedItem(String name) /*-{
+ return this.namedItem(name);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDOMPlugin.java b/elemental/src/elemental/js/html/JsDOMPlugin.java
new file mode 100644
index 0000000..2ff0229
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDOMPlugin.java
@@ -0,0 +1,64 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DOMPlugin;
+import elemental.html.DOMMimeType;
+
+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 JsDOMPlugin extends JsElementalMixinBase implements DOMPlugin {
+ protected JsDOMPlugin() {}
+
+ public final native String getDescription() /*-{
+ return this.description;
+ }-*/;
+
+ public final native String getFilename() /*-{
+ return this.filename;
+ }-*/;
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native JsDOMMimeType item(int index) /*-{
+ return this.item(index);
+ }-*/;
+
+ public final native JsDOMMimeType namedItem(String name) /*-{
+ return this.namedItem(name);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDOMPluginArray.java b/elemental/src/elemental/js/html/JsDOMPluginArray.java
new file mode 100644
index 0000000..5e7735b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDOMPluginArray.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DOMPlugin;
+import elemental.html.DOMPluginArray;
+
+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 JsDOMPluginArray extends JsElementalMixinBase implements DOMPluginArray {
+ protected JsDOMPluginArray() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsDOMPlugin item(int index) /*-{
+ return this.item(index);
+ }-*/;
+
+ public final native JsDOMPlugin namedItem(String name) /*-{
+ return this.namedItem(name);
+ }-*/;
+
+ public final native void refresh(boolean reload) /*-{
+ this.refresh(reload);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDOMURL.java b/elemental/src/elemental/js/html/JsDOMURL.java
new file mode 100644
index 0000000..c6e1998
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDOMURL.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsMediaStream;
+import elemental.dom.MediaStream;
+import elemental.html.DOMURL;
+import elemental.html.Blob;
+
+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 JsDOMURL extends JsElementalMixinBase implements DOMURL {
+ protected JsDOMURL() {}
+}
diff --git a/elemental/src/elemental/js/html/JsDataView.java b/elemental/src/elemental/js/html/JsDataView.java
new file mode 100644
index 0000000..0401fca
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDataView.java
@@ -0,0 +1,152 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DataView;
+import elemental.html.ArrayBufferView;
+
+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 JsDataView extends JsArrayBufferView implements DataView {
+ protected JsDataView() {}
+
+ public final native float getFloat32(int byteOffset) /*-{
+ return this.getFloat32(byteOffset);
+ }-*/;
+
+ public final native float getFloat32(int byteOffset, boolean littleEndian) /*-{
+ return this.getFloat32(byteOffset, littleEndian);
+ }-*/;
+
+ public final native double getFloat64(int byteOffset) /*-{
+ return this.getFloat64(byteOffset);
+ }-*/;
+
+ public final native double getFloat64(int byteOffset, boolean littleEndian) /*-{
+ return this.getFloat64(byteOffset, littleEndian);
+ }-*/;
+
+ public final native short getInt16(int byteOffset) /*-{
+ return this.getInt16(byteOffset);
+ }-*/;
+
+ public final native short getInt16(int byteOffset, boolean littleEndian) /*-{
+ return this.getInt16(byteOffset, littleEndian);
+ }-*/;
+
+ public final native int getInt32(int byteOffset) /*-{
+ return this.getInt32(byteOffset);
+ }-*/;
+
+ public final native int getInt32(int byteOffset, boolean littleEndian) /*-{
+ return this.getInt32(byteOffset, littleEndian);
+ }-*/;
+
+ public final native Object getInt8() /*-{
+ return this.getInt8();
+ }-*/;
+
+ public final native int getUint16(int byteOffset) /*-{
+ return this.getUint16(byteOffset);
+ }-*/;
+
+ public final native int getUint16(int byteOffset, boolean littleEndian) /*-{
+ return this.getUint16(byteOffset, littleEndian);
+ }-*/;
+
+ public final native int getUint32(int byteOffset) /*-{
+ return this.getUint32(byteOffset);
+ }-*/;
+
+ public final native int getUint32(int byteOffset, boolean littleEndian) /*-{
+ return this.getUint32(byteOffset, littleEndian);
+ }-*/;
+
+ public final native Object getUint8() /*-{
+ return this.getUint8();
+ }-*/;
+
+ public final native void setFloat32(int byteOffset, float value) /*-{
+ this.setFloat32(byteOffset, value);
+ }-*/;
+
+ public final native void setFloat32(int byteOffset, float value, boolean littleEndian) /*-{
+ this.setFloat32(byteOffset, value, littleEndian);
+ }-*/;
+
+ public final native void setFloat64(int byteOffset, double value) /*-{
+ this.setFloat64(byteOffset, value);
+ }-*/;
+
+ public final native void setFloat64(int byteOffset, double value, boolean littleEndian) /*-{
+ this.setFloat64(byteOffset, value, littleEndian);
+ }-*/;
+
+ public final native void setInt16(int byteOffset, short value) /*-{
+ this.setInt16(byteOffset, value);
+ }-*/;
+
+ public final native void setInt16(int byteOffset, short value, boolean littleEndian) /*-{
+ this.setInt16(byteOffset, value, littleEndian);
+ }-*/;
+
+ public final native void setInt32(int byteOffset, int value) /*-{
+ this.setInt32(byteOffset, value);
+ }-*/;
+
+ public final native void setInt32(int byteOffset, int value, boolean littleEndian) /*-{
+ this.setInt32(byteOffset, value, littleEndian);
+ }-*/;
+
+ public final native void setInt8() /*-{
+ this.setInt8();
+ }-*/;
+
+ public final native void setUint16(int byteOffset, int value) /*-{
+ this.setUint16(byteOffset, value);
+ }-*/;
+
+ public final native void setUint16(int byteOffset, int value, boolean littleEndian) /*-{
+ this.setUint16(byteOffset, value, littleEndian);
+ }-*/;
+
+ public final native void setUint32(int byteOffset, int value) /*-{
+ this.setUint32(byteOffset, value);
+ }-*/;
+
+ public final native void setUint32(int byteOffset, int value, boolean littleEndian) /*-{
+ this.setUint32(byteOffset, value, littleEndian);
+ }-*/;
+
+ public final native void setUint8() /*-{
+ this.setUint8();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDatabase.java b/elemental/src/elemental/js/html/JsDatabase.java
new file mode 100644
index 0000000..80f8743
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDatabase.java
@@ -0,0 +1,86 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.SQLTransactionErrorCallback;
+import elemental.html.Database;
+import elemental.html.SQLTransactionCallback;
+import elemental.html.VoidCallback;
+
+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 JsDatabase extends JsElementalMixinBase implements Database {
+ protected JsDatabase() {}
+
+ public final native String getVersion() /*-{
+ return this.version;
+ }-*/;
+
+ public final native void changeVersion(String oldVersion, String newVersion) /*-{
+ this.changeVersion(oldVersion, newVersion);
+ }-*/;
+
+ public final native void changeVersion(String oldVersion, String newVersion, SQLTransactionCallback callback) /*-{
+ this.changeVersion(oldVersion, newVersion, $entry(callback.@elemental.html.SQLTransactionCallback::onSQLTransactionCallback(Lelemental/html/SQLTransaction;)).bind(callback));
+ }-*/;
+
+ public final native void changeVersion(String oldVersion, String newVersion, SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback) /*-{
+ this.changeVersion(oldVersion, newVersion, $entry(callback.@elemental.html.SQLTransactionCallback::onSQLTransactionCallback(Lelemental/html/SQLTransaction;)).bind(callback), $entry(errorCallback.@elemental.html.SQLTransactionErrorCallback::onSQLTransactionErrorCallback(Lelemental/html/SQLError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void changeVersion(String oldVersion, String newVersion, SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback, VoidCallback successCallback) /*-{
+ this.changeVersion(oldVersion, newVersion, $entry(callback.@elemental.html.SQLTransactionCallback::onSQLTransactionCallback(Lelemental/html/SQLTransaction;)).bind(callback), $entry(errorCallback.@elemental.html.SQLTransactionErrorCallback::onSQLTransactionErrorCallback(Lelemental/html/SQLError;)).bind(errorCallback), $entry(successCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(successCallback));
+ }-*/;
+
+ public final native void readTransaction(SQLTransactionCallback callback) /*-{
+ this.readTransaction($entry(callback.@elemental.html.SQLTransactionCallback::onSQLTransactionCallback(Lelemental/html/SQLTransaction;)).bind(callback));
+ }-*/;
+
+ public final native void readTransaction(SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback) /*-{
+ this.readTransaction($entry(callback.@elemental.html.SQLTransactionCallback::onSQLTransactionCallback(Lelemental/html/SQLTransaction;)).bind(callback), $entry(errorCallback.@elemental.html.SQLTransactionErrorCallback::onSQLTransactionErrorCallback(Lelemental/html/SQLError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void readTransaction(SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback, VoidCallback successCallback) /*-{
+ this.readTransaction($entry(callback.@elemental.html.SQLTransactionCallback::onSQLTransactionCallback(Lelemental/html/SQLTransaction;)).bind(callback), $entry(errorCallback.@elemental.html.SQLTransactionErrorCallback::onSQLTransactionErrorCallback(Lelemental/html/SQLError;)).bind(errorCallback), $entry(successCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(successCallback));
+ }-*/;
+
+ public final native void transaction(SQLTransactionCallback callback) /*-{
+ this.transaction($entry(callback.@elemental.html.SQLTransactionCallback::onSQLTransactionCallback(Lelemental/html/SQLTransaction;)).bind(callback));
+ }-*/;
+
+ public final native void transaction(SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback) /*-{
+ this.transaction($entry(callback.@elemental.html.SQLTransactionCallback::onSQLTransactionCallback(Lelemental/html/SQLTransaction;)).bind(callback), $entry(errorCallback.@elemental.html.SQLTransactionErrorCallback::onSQLTransactionErrorCallback(Lelemental/html/SQLError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void transaction(SQLTransactionCallback callback, SQLTransactionErrorCallback errorCallback, VoidCallback successCallback) /*-{
+ this.transaction($entry(callback.@elemental.html.SQLTransactionCallback::onSQLTransactionCallback(Lelemental/html/SQLTransaction;)).bind(callback), $entry(errorCallback.@elemental.html.SQLTransactionErrorCallback::onSQLTransactionErrorCallback(Lelemental/html/SQLError;)).bind(errorCallback), $entry(successCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(successCallback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDatabaseSync.java b/elemental/src/elemental/js/html/JsDatabaseSync.java
new file mode 100644
index 0000000..2182701
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDatabaseSync.java
@@ -0,0 +1,64 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.SQLTransactionSyncCallback;
+import elemental.html.DatabaseSync;
+
+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 JsDatabaseSync extends JsElementalMixinBase implements DatabaseSync {
+ protected JsDatabaseSync() {}
+
+ public final native String getLastErrorMessage() /*-{
+ return this.lastErrorMessage;
+ }-*/;
+
+ public final native String getVersion() /*-{
+ return this.version;
+ }-*/;
+
+ public final native void changeVersion(String oldVersion, String newVersion) /*-{
+ this.changeVersion(oldVersion, newVersion);
+ }-*/;
+
+ public final native void changeVersion(String oldVersion, String newVersion, SQLTransactionSyncCallback callback) /*-{
+ this.changeVersion(oldVersion, newVersion, $entry(callback.@elemental.html.SQLTransactionSyncCallback::onSQLTransactionSyncCallback(Lelemental/html/SQLTransactionSync;)).bind(callback));
+ }-*/;
+
+ public final native void readTransaction(SQLTransactionSyncCallback callback) /*-{
+ this.readTransaction($entry(callback.@elemental.html.SQLTransactionSyncCallback::onSQLTransactionSyncCallback(Lelemental/html/SQLTransactionSync;)).bind(callback));
+ }-*/;
+
+ public final native void transaction(SQLTransactionSyncCallback callback) /*-{
+ this.transaction($entry(callback.@elemental.html.SQLTransactionSyncCallback::onSQLTransactionSyncCallback(Lelemental/html/SQLTransactionSync;)).bind(callback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDedicatedWorkerGlobalScope.java b/elemental/src/elemental/js/html/JsDedicatedWorkerGlobalScope.java
new file mode 100644
index 0000000..beb3e0a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDedicatedWorkerGlobalScope.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DedicatedWorkerGlobalScope;
+import elemental.util.Indexable;
+import elemental.html.WorkerGlobalScope;
+import elemental.js.util.JsIndexable;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+
+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 JsDedicatedWorkerGlobalScope extends JsWorkerGlobalScope implements DedicatedWorkerGlobalScope {
+ protected JsDedicatedWorkerGlobalScope() {}
+
+ public final native EventListener getOnmessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmessage);
+ }-*/;
+
+ public final native void setOnmessage(EventListener listener) /*-{
+ this.onmessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native void postMessage(Object message) /*-{
+ this.postMessage(message);
+ }-*/;
+
+ public final native void postMessage(Object message, Indexable messagePorts) /*-{
+ this.postMessage(message, messagePorts);
+ }-*/;
+
+ public final native void webkitPostMessage(Object message) /*-{
+ this.webkitPostMessage(message);
+ }-*/;
+
+ public final native void webkitPostMessage(Object message, Indexable transferList) /*-{
+ this.webkitPostMessage(message, transferList);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDelayNode.java b/elemental/src/elemental/js/html/JsDelayNode.java
new file mode 100644
index 0000000..45af4e0
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDelayNode.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DelayNode;
+import elemental.html.AudioParam;
+import elemental.html.AudioNode;
+
+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 JsDelayNode extends JsAudioNode implements DelayNode {
+ protected JsDelayNode() {}
+
+ public final native JsAudioParam getDelayTime() /*-{
+ return this.delayTime;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDeprecatedPeerConnection.java b/elemental/src/elemental/js/html/JsDeprecatedPeerConnection.java
new file mode 100644
index 0000000..40f62bf
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDeprecatedPeerConnection.java
@@ -0,0 +1,121 @@
+/*
+ * 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 elemental.js.html;
+import elemental.dom.MediaStream;
+import elemental.js.dom.JsMediaStreamList;
+import elemental.dom.MediaStreamList;
+import elemental.js.events.JsEvent;
+import elemental.html.DeprecatedPeerConnection;
+import elemental.events.EventListener;
+import elemental.js.dom.JsMediaStream;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsDeprecatedPeerConnection extends JsElementalMixinBase implements DeprecatedPeerConnection {
+ protected JsDeprecatedPeerConnection() {}
+
+ public final native JsMediaStreamList getLocalStreams() /*-{
+ return this.localStreams;
+ }-*/;
+
+ public final native EventListener getOnaddstream() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onaddstream);
+ }-*/;
+
+ public final native void setOnaddstream(EventListener listener) /*-{
+ this.onaddstream = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnconnecting() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onconnecting);
+ }-*/;
+
+ public final native void setOnconnecting(EventListener listener) /*-{
+ this.onconnecting = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmessage);
+ }-*/;
+
+ public final native void setOnmessage(EventListener listener) /*-{
+ this.onmessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnopen() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onopen);
+ }-*/;
+
+ public final native void setOnopen(EventListener listener) /*-{
+ this.onopen = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnremovestream() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onremovestream);
+ }-*/;
+
+ public final native void setOnremovestream(EventListener listener) /*-{
+ this.onremovestream = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnstatechange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onstatechange);
+ }-*/;
+
+ public final native void setOnstatechange(EventListener listener) /*-{
+ this.onstatechange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native JsMediaStreamList getRemoteStreams() /*-{
+ return this.remoteStreams;
+ }-*/;
+
+ public final native void addStream(MediaStream stream) /*-{
+ this.addStream(stream);
+ }-*/;
+
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+
+ public final native void processSignalingMessage(String message) /*-{
+ this.processSignalingMessage(message);
+ }-*/;
+
+ public final native void removeStream(MediaStream stream) /*-{
+ this.removeStream(stream);
+ }-*/;
+
+ public final native void send(String text) /*-{
+ this.send(text);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDetailsElement.java b/elemental/src/elemental/js/html/JsDetailsElement.java
new file mode 100644
index 0000000..98f5807
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDetailsElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.DetailsElement;
+
+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 JsDetailsElement extends JsElement implements DetailsElement {
+ protected JsDetailsElement() {}
+
+ public final native boolean isOpen() /*-{
+ return this.open;
+ }-*/;
+
+ public final native void setOpen(boolean param_open) /*-{
+ this.open = param_open;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDirectoryElement.java b/elemental/src/elemental/js/html/JsDirectoryElement.java
new file mode 100644
index 0000000..46e78aa
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDirectoryElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.DirectoryElement;
+
+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 JsDirectoryElement extends JsElement implements DirectoryElement {
+ protected JsDirectoryElement() {}
+
+ public final native boolean isCompact() /*-{
+ return this.compact;
+ }-*/;
+
+ public final native void setCompact(boolean param_compact) /*-{
+ this.compact = param_compact;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDirectoryEntry.java b/elemental/src/elemental/js/html/JsDirectoryEntry.java
new file mode 100644
index 0000000..b5a89fa
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDirectoryEntry.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.VoidCallback;
+import elemental.html.EntryCallback;
+import elemental.html.Entry;
+import elemental.html.DirectoryEntry;
+import elemental.html.ErrorCallback;
+import elemental.html.DirectoryReader;
+
+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 JsDirectoryEntry extends JsEntry implements DirectoryEntry {
+ protected JsDirectoryEntry() {}
+
+ public final native JsDirectoryReader createReader() /*-{
+ return this.createReader();
+ }-*/;
+
+ public final native void getDirectory(String path) /*-{
+ this.getDirectory(path);
+ }-*/;
+
+ public final native void getDirectory(String path, Object flags) /*-{
+ this.getDirectory(path, flags);
+ }-*/;
+
+ public final native void getDirectory(String path, Object flags, EntryCallback successCallback) /*-{
+ this.getDirectory(path, flags, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback));
+ }-*/;
+
+ public final native void getDirectory(String path, Object flags, EntryCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.getDirectory(path, flags, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void getFile(String path) /*-{
+ this.getFile(path);
+ }-*/;
+
+ public final native void getFile(String path, Object flags) /*-{
+ this.getFile(path, flags);
+ }-*/;
+
+ public final native void getFile(String path, Object flags, EntryCallback successCallback) /*-{
+ this.getFile(path, flags, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback));
+ }-*/;
+
+ public final native void getFile(String path, Object flags, EntryCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.getFile(path, flags, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void removeRecursively(VoidCallback successCallback) /*-{
+ this.removeRecursively($entry(successCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(successCallback));
+ }-*/;
+
+ public final native void removeRecursively(VoidCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.removeRecursively($entry(successCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDirectoryEntrySync.java b/elemental/src/elemental/js/html/JsDirectoryEntrySync.java
new file mode 100644
index 0000000..6dfa534
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDirectoryEntrySync.java
@@ -0,0 +1,58 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DirectoryEntrySync;
+import elemental.html.EntrySync;
+import elemental.html.FileEntrySync;
+import elemental.html.DirectoryReaderSync;
+
+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 JsDirectoryEntrySync extends JsEntrySync implements DirectoryEntrySync {
+ protected JsDirectoryEntrySync() {}
+
+ public final native JsDirectoryReaderSync createReader() /*-{
+ return this.createReader();
+ }-*/;
+
+ public final native JsDirectoryEntrySync getDirectory(String path, Object flags) /*-{
+ return this.getDirectory(path, flags);
+ }-*/;
+
+ public final native JsFileEntrySync getFile(String path, Object flags) /*-{
+ return this.getFile(path, flags);
+ }-*/;
+
+ public final native void removeRecursively() /*-{
+ this.removeRecursively();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDirectoryReader.java b/elemental/src/elemental/js/html/JsDirectoryReader.java
new file mode 100644
index 0000000..ed1d213
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDirectoryReader.java
@@ -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 elemental.js.html;
+import elemental.html.EntriesCallback;
+import elemental.html.DirectoryReader;
+import elemental.html.ErrorCallback;
+
+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 JsDirectoryReader extends JsElementalMixinBase implements DirectoryReader {
+ protected JsDirectoryReader() {}
+
+ public final native void readEntries(EntriesCallback successCallback) /*-{
+ this.readEntries($entry(successCallback.@elemental.html.EntriesCallback::onEntriesCallback(Lelemental/html/EntryArray;)).bind(successCallback));
+ }-*/;
+
+ public final native void readEntries(EntriesCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.readEntries($entry(successCallback.@elemental.html.EntriesCallback::onEntriesCallback(Lelemental/html/EntryArray;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDirectoryReaderSync.java b/elemental/src/elemental/js/html/JsDirectoryReaderSync.java
new file mode 100644
index 0000000..32252fe
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDirectoryReaderSync.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.EntryArraySync;
+import elemental.html.DirectoryReaderSync;
+
+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 JsDirectoryReaderSync extends JsElementalMixinBase implements DirectoryReaderSync {
+ protected JsDirectoryReaderSync() {}
+
+ public final native JsEntryArraySync readEntries() /*-{
+ return this.readEntries();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDivElement.java b/elemental/src/elemental/js/html/JsDivElement.java
new file mode 100644
index 0000000..f0ac184
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDivElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.DivElement;
+
+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 JsDivElement extends JsElement implements DivElement {
+ protected JsDivElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsDynamicsCompressorNode.java b/elemental/src/elemental/js/html/JsDynamicsCompressorNode.java
new file mode 100644
index 0000000..89762e5
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsDynamicsCompressorNode.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioParam;
+import elemental.html.AudioNode;
+import elemental.html.DynamicsCompressorNode;
+
+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 JsDynamicsCompressorNode extends JsAudioNode implements DynamicsCompressorNode {
+ protected JsDynamicsCompressorNode() {}
+
+ public final native JsAudioParam getAttack() /*-{
+ return this.attack;
+ }-*/;
+
+ public final native JsAudioParam getKnee() /*-{
+ return this.knee;
+ }-*/;
+
+ public final native JsAudioParam getRatio() /*-{
+ return this.ratio;
+ }-*/;
+
+ public final native JsAudioParam getReduction() /*-{
+ return this.reduction;
+ }-*/;
+
+ public final native JsAudioParam getRelease() /*-{
+ return this.release;
+ }-*/;
+
+ public final native JsAudioParam getThreshold() /*-{
+ return this.threshold;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsEXTTextureFilterAnisotropic.java b/elemental/src/elemental/js/html/JsEXTTextureFilterAnisotropic.java
new file mode 100644
index 0000000..c6789d0
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsEXTTextureFilterAnisotropic.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.EXTTextureFilterAnisotropic;
+
+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 JsEXTTextureFilterAnisotropic extends JsElementalMixinBase implements EXTTextureFilterAnisotropic {
+ protected JsEXTTextureFilterAnisotropic() {}
+}
diff --git a/elemental/src/elemental/js/html/JsEmbedElement.java b/elemental/src/elemental/js/html/JsEmbedElement.java
new file mode 100644
index 0000000..ed198bf
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsEmbedElement.java
@@ -0,0 +1,95 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.svg.SVGDocument;
+import elemental.html.EmbedElement;
+import elemental.js.svg.JsSVGDocument;
+
+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 JsEmbedElement extends JsElement implements EmbedElement {
+ protected JsEmbedElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(String param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+
+ public final native String getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(String param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native JsSVGDocument getSVGDocument() /*-{
+ return this.getSVGDocument();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsEntry.java b/elemental/src/elemental/js/html/JsEntry.java
new file mode 100644
index 0000000..f15b836
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsEntry.java
@@ -0,0 +1,129 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.VoidCallback;
+import elemental.html.EntryCallback;
+import elemental.html.Entry;
+import elemental.html.DirectoryEntry;
+import elemental.html.ErrorCallback;
+import elemental.html.MetadataCallback;
+import elemental.html.DOMFileSystem;
+
+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 JsEntry extends JsElementalMixinBase implements Entry {
+ protected JsEntry() {}
+
+ public final native JsDOMFileSystem getFilesystem() /*-{
+ return this.filesystem;
+ }-*/;
+
+ public final native String getFullPath() /*-{
+ return this.fullPath;
+ }-*/;
+
+ public final native boolean isDirectory() /*-{
+ return this.isDirectory;
+ }-*/;
+
+ public final native boolean isFile() /*-{
+ return this.isFile;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void copyTo(DirectoryEntry parent) /*-{
+ this.copyTo(parent);
+ }-*/;
+
+ public final native void copyTo(DirectoryEntry parent, String name) /*-{
+ this.copyTo(parent, name);
+ }-*/;
+
+ public final native void copyTo(DirectoryEntry parent, String name, EntryCallback successCallback) /*-{
+ this.copyTo(parent, name, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback));
+ }-*/;
+
+ public final native void copyTo(DirectoryEntry parent, String name, EntryCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.copyTo(parent, name, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void getMetadata(MetadataCallback successCallback) /*-{
+ this.getMetadata($entry(successCallback.@elemental.html.MetadataCallback::onMetadataCallback(Lelemental/html/Metadata;)).bind(successCallback));
+ }-*/;
+
+ public final native void getMetadata(MetadataCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.getMetadata($entry(successCallback.@elemental.html.MetadataCallback::onMetadataCallback(Lelemental/html/Metadata;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void getParent() /*-{
+ this.getParent();
+ }-*/;
+
+ public final native void getParent(EntryCallback successCallback) /*-{
+ this.getParent($entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback));
+ }-*/;
+
+ public final native void getParent(EntryCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.getParent($entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void moveTo(DirectoryEntry parent) /*-{
+ this.moveTo(parent);
+ }-*/;
+
+ public final native void moveTo(DirectoryEntry parent, String name) /*-{
+ this.moveTo(parent, name);
+ }-*/;
+
+ public final native void moveTo(DirectoryEntry parent, String name, EntryCallback successCallback) /*-{
+ this.moveTo(parent, name, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback));
+ }-*/;
+
+ public final native void moveTo(DirectoryEntry parent, String name, EntryCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.moveTo(parent, name, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void remove(VoidCallback successCallback) /*-{
+ this.remove($entry(successCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(successCallback));
+ }-*/;
+
+ public final native void remove(VoidCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.remove($entry(successCallback.@elemental.html.VoidCallback::onVoidCallback()).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native String toURL() /*-{
+ return this.toURL();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsEntryArray.java b/elemental/src/elemental/js/html/JsEntryArray.java
new file mode 100644
index 0000000..7b562d6
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsEntryArray.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Entry;
+import elemental.html.EntryArray;
+
+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 JsEntryArray extends JsElementalMixinBase implements EntryArray {
+ protected JsEntryArray() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsEntry item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsEntryArraySync.java b/elemental/src/elemental/js/html/JsEntryArraySync.java
new file mode 100644
index 0000000..6999e88
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsEntryArraySync.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.EntryArraySync;
+import elemental.html.EntrySync;
+
+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 JsEntryArraySync extends JsElementalMixinBase implements EntryArraySync {
+ protected JsEntryArraySync() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsEntrySync item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsEntrySync.java b/elemental/src/elemental/js/html/JsEntrySync.java
new file mode 100644
index 0000000..362947f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsEntrySync.java
@@ -0,0 +1,86 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Metadata;
+import elemental.html.DirectoryEntrySync;
+import elemental.html.EntrySync;
+import elemental.html.DOMFileSystemSync;
+
+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 JsEntrySync extends JsElementalMixinBase implements EntrySync {
+ protected JsEntrySync() {}
+
+ public final native JsDOMFileSystemSync getFilesystem() /*-{
+ return this.filesystem;
+ }-*/;
+
+ public final native String getFullPath() /*-{
+ return this.fullPath;
+ }-*/;
+
+ public final native boolean isDirectory() /*-{
+ return this.isDirectory;
+ }-*/;
+
+ public final native boolean isFile() /*-{
+ return this.isFile;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native JsEntrySync copyTo(DirectoryEntrySync parent, String name) /*-{
+ return this.copyTo(parent, name);
+ }-*/;
+
+ public final native JsMetadata getMetadata() /*-{
+ return this.getMetadata();
+ }-*/;
+
+ public final native JsEntrySync getParent() /*-{
+ return this.getParent();
+ }-*/;
+
+ public final native JsEntrySync moveTo(DirectoryEntrySync parent, String name) /*-{
+ return this.moveTo(parent, name);
+ }-*/;
+
+ public final native void remove() /*-{
+ this.remove();
+ }-*/;
+
+ public final native String toURL() /*-{
+ return this.toURL();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsEventSource.java b/elemental/src/elemental/js/html/JsEventSource.java
new file mode 100644
index 0000000..8e2eb88
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsEventSource.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.EventSource;
+import elemental.events.EventListener;
+import elemental.js.events.JsEvent;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsEventSource extends JsElementalMixinBase implements EventSource {
+ protected JsEventSource() {}
+
+ public final native String getURL() /*-{
+ return this.URL;
+ }-*/;
+
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmessage);
+ }-*/;
+
+ public final native void setOnmessage(EventListener listener) /*-{
+ this.onmessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnopen() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onopen);
+ }-*/;
+
+ public final native void setOnopen(EventListener listener) /*-{
+ this.onopen = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native String getUrl() /*-{
+ return this.url;
+ }-*/;
+
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFieldSetElement.java b/elemental/src/elemental/js/html/JsFieldSetElement.java
new file mode 100644
index 0000000..f28fe9b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFieldSetElement.java
@@ -0,0 +1,92 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ValidityState;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.HTMLCollection;
+import elemental.html.FormElement;
+import elemental.html.FieldSetElement;
+
+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 JsFieldSetElement extends JsElement implements FieldSetElement {
+ protected JsFieldSetElement() {}
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native JsHTMLCollection getElements() /*-{
+ return this.elements;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native String getValidationMessage() /*-{
+ return this.validationMessage;
+ }-*/;
+
+ public final native JsValidityState getValidity() /*-{
+ return this.validity;
+ }-*/;
+
+ public final native boolean isWillValidate() /*-{
+ return this.willValidate;
+ }-*/;
+
+ public final native boolean checkValidity() /*-{
+ return this.checkValidity();
+ }-*/;
+
+ public final native void setCustomValidity(String error) /*-{
+ this.setCustomValidity(error);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFile.java b/elemental/src/elemental/js/html/JsFile.java
new file mode 100644
index 0000000..26c8a25
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFile.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.File;
+import elemental.html.Blob;
+
+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 JsFile extends JsBlob implements File {
+ protected JsFile() {}
+
+ public final native Date getLastModifiedDate() /*-{
+ return this.lastModifiedDate;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native String getWebkitRelativePath() /*-{
+ return this.webkitRelativePath;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFileEntry.java b/elemental/src/elemental/js/html/JsFileEntry.java
new file mode 100644
index 0000000..c9813ee
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFileEntry.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Entry;
+import elemental.html.FileEntry;
+import elemental.html.ErrorCallback;
+import elemental.html.FileWriterCallback;
+import elemental.html.FileCallback;
+
+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 JsFileEntry extends JsEntry implements FileEntry {
+ protected JsFileEntry() {}
+
+ public final native void createWriter(FileWriterCallback successCallback) /*-{
+ this.createWriter($entry(successCallback.@elemental.html.FileWriterCallback::onFileWriterCallback(Lelemental/html/FileWriter;)).bind(successCallback));
+ }-*/;
+
+ public final native void createWriter(FileWriterCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.createWriter($entry(successCallback.@elemental.html.FileWriterCallback::onFileWriterCallback(Lelemental/html/FileWriter;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void file(FileCallback successCallback) /*-{
+ this.file($entry(successCallback.@elemental.html.FileCallback::onFileCallback(Lelemental/html/File;)).bind(successCallback));
+ }-*/;
+
+ public final native void file(FileCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.file($entry(successCallback.@elemental.html.FileCallback::onFileCallback(Lelemental/html/File;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFileEntrySync.java b/elemental/src/elemental/js/html/JsFileEntrySync.java
new file mode 100644
index 0000000..3e6b4e3
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFileEntrySync.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.File;
+import elemental.html.EntrySync;
+import elemental.html.FileEntrySync;
+import elemental.html.FileWriterSync;
+
+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 JsFileEntrySync extends JsEntrySync implements FileEntrySync {
+ protected JsFileEntrySync() {}
+
+ public final native JsFileWriterSync createWriter() /*-{
+ return this.createWriter();
+ }-*/;
+
+ public final native JsFile file() /*-{
+ return this.file();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFileError.java b/elemental/src/elemental/js/html/JsFileError.java
new file mode 100644
index 0000000..9a1df80
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFileError.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.FileError;
+
+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 JsFileError extends JsElementalMixinBase implements FileError {
+ protected JsFileError() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFileException.java b/elemental/src/elemental/js/html/JsFileException.java
new file mode 100644
index 0000000..d49cbb7
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFileException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.FileException;
+
+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 JsFileException extends JsElementalMixinBase implements FileException {
+ protected JsFileException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFileList.java b/elemental/src/elemental/js/html/JsFileList.java
new file mode 100644
index 0000000..a505bbc
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFileList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.File;
+import elemental.html.FileList;
+
+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 JsFileList extends JsIndexable implements FileList, Indexable {
+ protected JsFileList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsFile item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFileReader.java b/elemental/src/elemental/js/html/JsFileReader.java
new file mode 100644
index 0000000..9b151ee
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFileReader.java
@@ -0,0 +1,123 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.FileError;
+import elemental.html.FileReader;
+import elemental.js.events.JsEvent;
+import elemental.html.Blob;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsFileReader extends JsElementalMixinBase implements FileReader {
+ protected JsFileReader() {}
+
+ public final native JsFileError getError() /*-{
+ return this.error;
+ }-*/;
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onload);
+ }-*/;
+
+ public final native void setOnload(EventListener listener) /*-{
+ this.onload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnloadend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onloadend);
+ }-*/;
+
+ public final native void setOnloadend(EventListener listener) /*-{
+ this.onloadend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnloadstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onloadstart);
+ }-*/;
+
+ public final native void setOnloadstart(EventListener listener) /*-{
+ this.onloadstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnprogress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onprogress);
+ }-*/;
+
+ public final native void setOnprogress(EventListener listener) /*-{
+ this.onprogress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native Object getResult() /*-{
+ return this.result;
+ }-*/;
+
+ public final native void abort() /*-{
+ this.abort();
+ }-*/;
+
+ public final native void readAsArrayBuffer(Blob blob) /*-{
+ this.readAsArrayBuffer(blob);
+ }-*/;
+
+ public final native void readAsBinaryString(Blob blob) /*-{
+ this.readAsBinaryString(blob);
+ }-*/;
+
+ public final native void readAsDataURL(Blob blob) /*-{
+ this.readAsDataURL(blob);
+ }-*/;
+
+ public final native void readAsText(Blob blob) /*-{
+ this.readAsText(blob);
+ }-*/;
+
+ public final native void readAsText(Blob blob, String encoding) /*-{
+ this.readAsText(blob, encoding);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFileReaderSync.java b/elemental/src/elemental/js/html/JsFileReaderSync.java
new file mode 100644
index 0000000..8362856
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFileReaderSync.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.FileReaderSync;
+import elemental.html.ArrayBuffer;
+import elemental.html.Blob;
+
+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 JsFileReaderSync extends JsElementalMixinBase implements FileReaderSync {
+ protected JsFileReaderSync() {}
+
+ public final native JsArrayBuffer readAsArrayBuffer(Blob blob) /*-{
+ return this.readAsArrayBuffer(blob);
+ }-*/;
+
+ public final native String readAsBinaryString(Blob blob) /*-{
+ return this.readAsBinaryString(blob);
+ }-*/;
+
+ public final native String readAsDataURL(Blob blob) /*-{
+ return this.readAsDataURL(blob);
+ }-*/;
+
+ public final native String readAsText(Blob blob) /*-{
+ return this.readAsText(blob);
+ }-*/;
+
+ public final native String readAsText(Blob blob, String encoding) /*-{
+ return this.readAsText(blob, encoding);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFileWriter.java b/elemental/src/elemental/js/html/JsFileWriter.java
new file mode 100644
index 0000000..ffd84da
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFileWriter.java
@@ -0,0 +1,119 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.FileError;
+import elemental.html.FileWriter;
+import elemental.js.events.JsEvent;
+import elemental.html.Blob;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsFileWriter extends JsElementalMixinBase implements FileWriter {
+ protected JsFileWriter() {}
+
+ public final native JsFileError getError() /*-{
+ return this.error;
+ }-*/;
+
+ public final native double getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnprogress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onprogress);
+ }-*/;
+
+ public final native void setOnprogress(EventListener listener) /*-{
+ this.onprogress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwrite() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwrite);
+ }-*/;
+
+ public final native void setOnwrite(EventListener listener) /*-{
+ this.onwrite = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwriteend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwriteend);
+ }-*/;
+
+ public final native void setOnwriteend(EventListener listener) /*-{
+ this.onwriteend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwritestart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwritestart);
+ }-*/;
+
+ public final native void setOnwritestart(EventListener listener) /*-{
+ this.onwritestart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native double getPosition() /*-{
+ return this.position;
+ }-*/;
+
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native void abort() /*-{
+ this.abort();
+ }-*/;
+
+ public final native void seek(double position) /*-{
+ this.seek(position);
+ }-*/;
+
+ public final native void truncate(double size) /*-{
+ this.truncate(size);
+ }-*/;
+
+ public final native void write(Blob data) /*-{
+ this.write(data);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFileWriterSync.java b/elemental/src/elemental/js/html/JsFileWriterSync.java
new file mode 100644
index 0000000..f83cdbd
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFileWriterSync.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.FileWriterSync;
+import elemental.html.Blob;
+
+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 JsFileWriterSync extends JsElementalMixinBase implements FileWriterSync {
+ protected JsFileWriterSync() {}
+
+ public final native double getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native double getPosition() /*-{
+ return this.position;
+ }-*/;
+
+ public final native void seek(double position) /*-{
+ this.seek(position);
+ }-*/;
+
+ public final native void truncate(double size) /*-{
+ this.truncate(size);
+ }-*/;
+
+ public final native void write(Blob data) /*-{
+ this.write(data);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFloat32Array.java b/elemental/src/elemental/js/html/JsFloat32Array.java
new file mode 100644
index 0000000..88a3442
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFloat32Array.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ArrayBufferView;
+import elemental.html.Float32Array;
+
+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 JsFloat32Array extends JsArrayBufferView implements Float32Array, IndexableNumber {
+ protected JsFloat32Array() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setElements(Object array) /*-{
+ this.setElements(array);
+ }-*/;
+
+ public final native void setElements(Object array, int offset) /*-{
+ this.setElements(array, offset);
+ }-*/;
+
+ public final native JsFloat32Array subarray(int start) /*-{
+ return this.subarray(start);
+ }-*/;
+
+ public final native JsFloat32Array subarray(int start, int end) /*-{
+ return this.subarray(start, end);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFloat64Array.java b/elemental/src/elemental/js/html/JsFloat64Array.java
new file mode 100644
index 0000000..55a1110
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFloat64Array.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ArrayBufferView;
+import elemental.html.Float64Array;
+
+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 JsFloat64Array extends JsArrayBufferView implements Float64Array, IndexableNumber {
+ protected JsFloat64Array() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setElements(Object array) /*-{
+ this.setElements(array);
+ }-*/;
+
+ public final native void setElements(Object array, int offset) /*-{
+ this.setElements(array, offset);
+ }-*/;
+
+ public final native JsFloat64Array subarray(int start) /*-{
+ return this.subarray(start);
+ }-*/;
+
+ public final native JsFloat64Array subarray(int start, int end) /*-{
+ return this.subarray(start, end);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFontElement.java b/elemental/src/elemental/js/html/JsFontElement.java
new file mode 100644
index 0000000..36bb80d
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFontElement.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.FontElement;
+
+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 JsFontElement extends JsElement implements FontElement {
+ protected JsFontElement() {}
+
+ public final native String getColor() /*-{
+ return this.color;
+ }-*/;
+
+ public final native void setColor(String param_color) /*-{
+ this.color = param_color;
+ }-*/;
+
+ public final native String getFace() /*-{
+ return this.face;
+ }-*/;
+
+ public final native void setFace(String param_face) /*-{
+ this.face = param_face;
+ }-*/;
+
+ public final native String getSize() /*-{
+ return this.size;
+ }-*/;
+
+ public final native void setSize(String param_size) /*-{
+ this.size = param_size;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFormData.java b/elemental/src/elemental/js/html/JsFormData.java
new file mode 100644
index 0000000..db22ef6
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFormData.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.FormData;
+
+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 JsFormData extends JsElementalMixinBase implements FormData {
+ protected JsFormData() {}
+
+ public final native void append(String name, String value, String filename) /*-{
+ this.append(name, value, filename);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFormElement.java b/elemental/src/elemental/js/html/JsFormElement.java
new file mode 100644
index 0000000..839fefe
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFormElement.java
@@ -0,0 +1,134 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.FormElement;
+import elemental.html.HTMLCollection;
+
+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 JsFormElement extends JsElement implements FormElement {
+ protected JsFormElement() {}
+
+ public final native String getAcceptCharset() /*-{
+ return this.acceptCharset;
+ }-*/;
+
+ public final native void setAcceptCharset(String param_acceptCharset) /*-{
+ this.acceptCharset = param_acceptCharset;
+ }-*/;
+
+ public final native String getAction() /*-{
+ return this.action;
+ }-*/;
+
+ public final native void setAction(String param_action) /*-{
+ this.action = param_action;
+ }-*/;
+
+ public final native String getAutocomplete() /*-{
+ return this.autocomplete;
+ }-*/;
+
+ public final native void setAutocomplete(String param_autocomplete) /*-{
+ this.autocomplete = param_autocomplete;
+ }-*/;
+
+ public final native JsHTMLCollection getElements() /*-{
+ return this.elements;
+ }-*/;
+
+ public final native String getEncoding() /*-{
+ return this.encoding;
+ }-*/;
+
+ public final native void setEncoding(String param_encoding) /*-{
+ this.encoding = param_encoding;
+ }-*/;
+
+ public final native String getEnctype() /*-{
+ return this.enctype;
+ }-*/;
+
+ public final native void setEnctype(String param_enctype) /*-{
+ this.enctype = param_enctype;
+ }-*/;
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native String getMethod() /*-{
+ return this.method;
+ }-*/;
+
+ public final native void setMethod(String param_method) /*-{
+ this.method = param_method;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native boolean isNoValidate() /*-{
+ return this.noValidate;
+ }-*/;
+
+ public final native void setNoValidate(boolean param_noValidate) /*-{
+ this.noValidate = param_noValidate;
+ }-*/;
+
+ public final native String getTarget() /*-{
+ return this.target;
+ }-*/;
+
+ public final native void setTarget(String param_target) /*-{
+ this.target = param_target;
+ }-*/;
+
+ public final native boolean checkValidity() /*-{
+ return this.checkValidity();
+ }-*/;
+
+ public final native void reset() /*-{
+ this.reset();
+ }-*/;
+
+ public final native void submit() /*-{
+ this.submit();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFrameElement.java b/elemental/src/elemental/js/html/JsFrameElement.java
new file mode 100644
index 0000000..9a7fa3a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFrameElement.java
@@ -0,0 +1,138 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.js.dom.JsDocument;
+import elemental.svg.SVGDocument;
+import elemental.html.FrameElement;
+import elemental.js.svg.JsSVGDocument;
+import elemental.html.Window;
+import elemental.dom.Document;
+
+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 JsFrameElement extends JsElement implements FrameElement {
+ protected JsFrameElement() {}
+
+ public final native JsDocument getContentDocument() /*-{
+ return this.contentDocument;
+ }-*/;
+
+ public final native JsWindow getContentWindow() /*-{
+ return this.contentWindow;
+ }-*/;
+
+ public final native String getFrameBorder() /*-{
+ return this.frameBorder;
+ }-*/;
+
+ public final native void setFrameBorder(String param_frameBorder) /*-{
+ this.frameBorder = param_frameBorder;
+ }-*/;
+
+ public final native int getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native String getLocation() /*-{
+ return this.location;
+ }-*/;
+
+ public final native void setLocation(String param_location) /*-{
+ this.location = param_location;
+ }-*/;
+
+ public final native String getLongDesc() /*-{
+ return this.longDesc;
+ }-*/;
+
+ public final native void setLongDesc(String param_longDesc) /*-{
+ this.longDesc = param_longDesc;
+ }-*/;
+
+ public final native String getMarginHeight() /*-{
+ return this.marginHeight;
+ }-*/;
+
+ public final native void setMarginHeight(String param_marginHeight) /*-{
+ this.marginHeight = param_marginHeight;
+ }-*/;
+
+ public final native String getMarginWidth() /*-{
+ return this.marginWidth;
+ }-*/;
+
+ public final native void setMarginWidth(String param_marginWidth) /*-{
+ this.marginWidth = param_marginWidth;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native boolean isNoResize() /*-{
+ return this.noResize;
+ }-*/;
+
+ public final native void setNoResize(boolean param_noResize) /*-{
+ this.noResize = param_noResize;
+ }-*/;
+
+ public final native String getScrolling() /*-{
+ return this.scrolling;
+ }-*/;
+
+ public final native void setScrolling(String param_scrolling) /*-{
+ this.scrolling = param_scrolling;
+ }-*/;
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native int getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native JsSVGDocument getSVGDocument() /*-{
+ return this.getSVGDocument();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsFrameSetElement.java b/elemental/src/elemental/js/html/JsFrameSetElement.java
new file mode 100644
index 0000000..222a044
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsFrameSetElement.java
@@ -0,0 +1,122 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.FrameSetElement;
+import elemental.js.dom.JsElement;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+import elemental.dom.Element;
+
+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 JsFrameSetElement extends JsElement implements FrameSetElement {
+ protected JsFrameSetElement() {}
+
+ public final native String getCols() /*-{
+ return this.cols;
+ }-*/;
+
+ public final native void setCols(String param_cols) /*-{
+ this.cols = param_cols;
+ }-*/;
+
+ public final native EventListener getOnbeforeunload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforeunload);
+ }-*/;
+
+ public final native void setOnbeforeunload(EventListener listener) /*-{
+ this.onbeforeunload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnhashchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onhashchange);
+ }-*/;
+
+ public final native void setOnhashchange(EventListener listener) /*-{
+ this.onhashchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmessage);
+ }-*/;
+
+ public final native void setOnmessage(EventListener listener) /*-{
+ this.onmessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnoffline() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onoffline);
+ }-*/;
+
+ public final native void setOnoffline(EventListener listener) /*-{
+ this.onoffline = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnonline() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ononline);
+ }-*/;
+
+ public final native void setOnonline(EventListener listener) /*-{
+ this.ononline = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnpopstate() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onpopstate);
+ }-*/;
+
+ public final native void setOnpopstate(EventListener listener) /*-{
+ this.onpopstate = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnresize() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onresize);
+ }-*/;
+
+ public final native void setOnresize(EventListener listener) /*-{
+ this.onresize = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnstorage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onstorage);
+ }-*/;
+
+ public final native void setOnstorage(EventListener listener) /*-{
+ this.onstorage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnunload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onunload);
+ }-*/;
+
+ public final native void setOnunload(EventListener listener) /*-{
+ this.onunload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native String getRows() /*-{
+ return this.rows;
+ }-*/;
+
+ public final native void setRows(String param_rows) /*-{
+ this.rows = param_rows;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsHRElement.java b/elemental/src/elemental/js/html/JsHRElement.java
new file mode 100644
index 0000000..546efb3
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsHRElement.java
@@ -0,0 +1,73 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.HRElement;
+
+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 JsHRElement extends JsElement implements HRElement {
+ protected JsHRElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native boolean isNoShade() /*-{
+ return this.noShade;
+ }-*/;
+
+ public final native void setNoShade(boolean param_noShade) /*-{
+ this.noShade = param_noShade;
+ }-*/;
+
+ public final native String getSize() /*-{
+ return this.size;
+ }-*/;
+
+ public final native void setSize(String param_size) /*-{
+ this.size = param_size;
+ }-*/;
+
+ public final native String getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(String param_width) /*-{
+ this.width = param_width;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsHTMLAllCollection.java b/elemental/src/elemental/js/html/JsHTMLAllCollection.java
new file mode 100644
index 0000000..3ba5080
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsHTMLAllCollection.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.js.html;
+import elemental.dom.Node;
+import elemental.html.HTMLAllCollection;
+import elemental.js.dom.JsNodeList;
+import elemental.dom.NodeList;
+import elemental.js.dom.JsNode;
+
+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 JsHTMLAllCollection extends JsElementalMixinBase implements HTMLAllCollection {
+ protected JsHTMLAllCollection() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsNode item(int index) /*-{
+ return this.item(index);
+ }-*/;
+
+ public final native JsNode namedItem(String name) /*-{
+ return this.namedItem(name);
+ }-*/;
+
+ public final native JsNodeList tags(String name) /*-{
+ return this.tags(name);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsHTMLCollection.java b/elemental/src/elemental/js/html/JsHTMLCollection.java
new file mode 100644
index 0000000..3a499cc
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsHTMLCollection.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.js.html;
+import elemental.dom.Node;
+import elemental.html.HTMLCollection;
+import elemental.js.dom.JsNode;
+
+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 JsHTMLCollection extends JsIndexable implements HTMLCollection, Indexable {
+ protected JsHTMLCollection() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsNode item(int index) /*-{
+ return this.item(index);
+ }-*/;
+
+ public final native JsNode namedItem(String name) /*-{
+ return this.namedItem(name);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsHTMLOptionsCollection.java b/elemental/src/elemental/js/html/JsHTMLOptionsCollection.java
new file mode 100644
index 0000000..91dcabb
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsHTMLOptionsCollection.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.HTMLOptionsCollection;
+import elemental.html.HTMLCollection;
+
+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 JsHTMLOptionsCollection extends JsHTMLCollection implements HTMLOptionsCollection {
+ protected JsHTMLOptionsCollection() {}
+
+ public final native void setLength(int param_length) /*-{
+ this.length = param_length;
+ }-*/;
+
+ public final native int getSelectedIndex() /*-{
+ return this.selectedIndex;
+ }-*/;
+
+ public final native void setSelectedIndex(int param_selectedIndex) /*-{
+ this.selectedIndex = param_selectedIndex;
+ }-*/;
+
+ public final native void remove(int index) /*-{
+ this.remove(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsHeadElement.java b/elemental/src/elemental/js/html/JsHeadElement.java
new file mode 100644
index 0000000..a357342
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsHeadElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.HeadElement;
+
+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 JsHeadElement extends JsElement implements HeadElement {
+ protected JsHeadElement() {}
+
+ public final native String getProfile() /*-{
+ return this.profile;
+ }-*/;
+
+ public final native void setProfile(String param_profile) /*-{
+ this.profile = param_profile;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsHeadingElement.java b/elemental/src/elemental/js/html/JsHeadingElement.java
new file mode 100644
index 0000000..5bb5a2e
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsHeadingElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.HeadingElement;
+
+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 JsHeadingElement extends JsElement implements HeadingElement {
+ protected JsHeadingElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsHistory.java b/elemental/src/elemental/js/html/JsHistory.java
new file mode 100644
index 0000000..92fd3ba
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsHistory.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.History;
+
+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 JsHistory extends JsElementalMixinBase implements History {
+ protected JsHistory() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native Object getState() /*-{
+ return this.state;
+ }-*/;
+
+ public final native void back() /*-{
+ this.back();
+ }-*/;
+
+ public final native void forward() /*-{
+ this.forward();
+ }-*/;
+
+ public final native void go(int distance) /*-{
+ this.go(distance);
+ }-*/;
+
+ public final native void pushState(Object data, String title) /*-{
+ this.pushState(data, title);
+ }-*/;
+
+ public final native void pushState(Object data, String title, String url) /*-{
+ this.pushState(data, title, url);
+ }-*/;
+
+ public final native void replaceState(Object data, String title) /*-{
+ this.replaceState(data, title);
+ }-*/;
+
+ public final native void replaceState(Object data, String title, String url) /*-{
+ this.replaceState(data, title, url);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsHtmlElement.java b/elemental/src/elemental/js/html/JsHtmlElement.java
new file mode 100644
index 0000000..dd13a93
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsHtmlElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.HtmlElement;
+
+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 JsHtmlElement extends JsElement implements HtmlElement {
+ protected JsHtmlElement() {}
+
+ public final native String getManifest() /*-{
+ return this.manifest;
+ }-*/;
+
+ public final native void setManifest(String param_manifest) /*-{
+ this.manifest = param_manifest;
+ }-*/;
+
+ public final native String getVersion() /*-{
+ return this.version;
+ }-*/;
+
+ public final native void setVersion(String param_version) /*-{
+ this.version = param_version;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBAny.java b/elemental/src/elemental/js/html/JsIDBAny.java
new file mode 100644
index 0000000..0aabade
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBAny.java
@@ -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 elemental.js.html;
+
+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 JsIDBAny extends JsElementalMixinBase {
+ protected JsIDBAny() {}
+}
diff --git a/elemental/src/elemental/js/html/JsIDBCursor.java b/elemental/src/elemental/js/html/JsIDBCursor.java
new file mode 100644
index 0000000..019520b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBCursor.java
@@ -0,0 +1,76 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.IDBCursor;
+import elemental.html.IDBRequest;
+
+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 JsIDBCursor extends JsElementalMixinBase implements IDBCursor {
+ protected JsIDBCursor() {}
+
+ public final native String getDirection() /*-{
+ return this.direction;
+ }-*/;
+
+ public final native Object getKey() /*-{
+ return this.key;
+ }-*/;
+
+ public final native Object getPrimaryKey() /*-{
+ return this.primaryKey;
+ }-*/;
+
+ public final native Object getSource() /*-{
+ return this.source;
+ }-*/;
+
+ public final native void advance(int count) /*-{
+ this.advance(count);
+ }-*/;
+
+ public final native void continueFunction() /*-{
+ this.continueFunction();
+ }-*/;
+
+ public final native void continueFunction(Object key) /*-{
+ this.continueFunction(key);
+ }-*/;
+
+ public final native JsIDBRequest _delete() /*-{
+ return this['delete']();
+ }-*/;
+
+ public final native JsIDBRequest update(Object value) /*-{
+ return this.update(value);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBCursorWithValue.java b/elemental/src/elemental/js/html/JsIDBCursorWithValue.java
new file mode 100644
index 0000000..2abff6b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBCursorWithValue.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.IDBCursor;
+import elemental.html.IDBCursorWithValue;
+
+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 JsIDBCursorWithValue extends JsIDBCursor implements IDBCursorWithValue {
+ protected JsIDBCursorWithValue() {}
+
+ public final native Object getValue() /*-{
+ return this.value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBDatabase.java b/elemental/src/elemental/js/html/JsIDBDatabase.java
new file mode 100644
index 0000000..a3f1f05
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBDatabase.java
@@ -0,0 +1,123 @@
+/*
+ * 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 elemental.js.html;
+import elemental.util.Indexable;
+import elemental.js.util.JsIndexable;
+import elemental.html.IDBObjectStore;
+import elemental.js.util.JsMappable;
+import elemental.html.IDBVersionChangeRequest;
+import elemental.html.IDBTransaction;
+import elemental.util.Mappable;
+import elemental.events.EventListener;
+import elemental.js.events.JsEvent;
+import elemental.html.IDBDatabase;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsIDBDatabase extends JsElementalMixinBase implements IDBDatabase {
+ protected JsIDBDatabase() {}
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native JsIndexable getObjectStoreNames() /*-{
+ return this.objectStoreNames;
+ }-*/;
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnversionchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onversionchange);
+ }-*/;
+
+ public final native void setOnversionchange(EventListener listener) /*-{
+ this.onversionchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native String getVersion() /*-{
+ return this.version;
+ }-*/;
+
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+
+ public final native JsIDBObjectStore createObjectStore(String name) /*-{
+ return this.createObjectStore(name);
+ }-*/;
+
+ public final native JsIDBObjectStore createObjectStore(String name, Mappable options) /*-{
+ return this.createObjectStore(name, options);
+ }-*/;
+
+ public final native void deleteObjectStore(String name) /*-{
+ this.deleteObjectStore(name);
+ }-*/;
+
+ public final native JsIDBTransaction transaction(Indexable storeNames) /*-{
+ return this.transaction(storeNames);
+ }-*/;
+
+ public final native JsIDBTransaction transaction(Indexable storeNames, String mode) /*-{
+ return this.transaction(storeNames, mode);
+ }-*/;
+
+ public final native JsIDBTransaction transaction(String storeName) /*-{
+ return this.transaction(storeName);
+ }-*/;
+
+ public final native JsIDBTransaction transaction(String storeName, String mode) /*-{
+ return this.transaction(storeName, mode);
+ }-*/;
+
+ public final native JsIDBTransaction transaction(Indexable storeNames, int mode) /*-{
+ return this.transaction(storeNames, mode);
+ }-*/;
+
+ public final native JsIDBTransaction transaction(String storeName, int mode) /*-{
+ return this.transaction(storeName, mode);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBDatabaseException.java b/elemental/src/elemental/js/html/JsIDBDatabaseException.java
new file mode 100644
index 0000000..f20cb06
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBDatabaseException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.IDBDatabaseException;
+
+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 JsIDBDatabaseException extends JsElementalMixinBase implements IDBDatabaseException {
+ protected JsIDBDatabaseException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBFactory.java b/elemental/src/elemental/js/html/JsIDBFactory.java
new file mode 100644
index 0000000..35a9995
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBFactory.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.IDBFactory;
+import elemental.html.IDBRequest;
+import elemental.html.IDBVersionChangeRequest;
+
+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 JsIDBFactory extends JsElementalMixinBase implements IDBFactory {
+ protected JsIDBFactory() {}
+
+ public final native short cmp(Object first, Object second) /*-{
+ return this.cmp(first, second);
+ }-*/;
+
+ public final native JsIDBVersionChangeRequest deleteDatabase(String name) /*-{
+ return this.deleteDatabase(name);
+ }-*/;
+
+ public final native JsIDBRequest getDatabaseNames() /*-{
+ return this.getDatabaseNames();
+ }-*/;
+
+ public final native JsIDBRequest open(String name) /*-{
+ return this.open(name);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBIndex.java b/elemental/src/elemental/js/html/JsIDBIndex.java
new file mode 100644
index 0000000..0fd892a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBIndex.java
@@ -0,0 +1,146 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.IDBKeyRange;
+import elemental.html.IDBObjectStore;
+import elemental.html.IDBRequest;
+import elemental.html.IDBIndex;
+
+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 JsIDBIndex extends JsElementalMixinBase implements IDBIndex {
+ protected JsIDBIndex() {}
+
+ public final native Object getKeyPath() /*-{
+ return this.keyPath;
+ }-*/;
+
+ public final native boolean isMultiEntry() /*-{
+ return this.multiEntry;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native JsIDBObjectStore getObjectStore() /*-{
+ return this.objectStore;
+ }-*/;
+
+ public final native boolean isUnique() /*-{
+ return this.unique;
+ }-*/;
+
+ public final native JsIDBRequest count() /*-{
+ return this.count();
+ }-*/;
+
+ public final native JsIDBRequest count(IDBKeyRange range) /*-{
+ return this.count(range);
+ }-*/;
+
+ public final native JsIDBRequest count(Object key) /*-{
+ return this.count(key);
+ }-*/;
+
+ public final native JsIDBRequest get(IDBKeyRange key) /*-{
+ return this.get(key);
+ }-*/;
+
+ public final native JsIDBRequest getObject(Object key) /*-{
+ return this.getObject(key);
+ }-*/;
+
+ public final native JsIDBRequest getKey(IDBKeyRange key) /*-{
+ return this.getKey(key);
+ }-*/;
+
+ public final native JsIDBRequest getKey(Object key) /*-{
+ return this.getKey(key);
+ }-*/;
+
+ public final native JsIDBRequest openCursor() /*-{
+ return this.openCursor();
+ }-*/;
+
+ public final native JsIDBRequest openCursor(IDBKeyRange range) /*-{
+ return this.openCursor(range);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(IDBKeyRange range, String direction) /*-{
+ return this.openCursor(range, direction);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(Object key) /*-{
+ return this.openCursor(key);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(Object key, String direction) /*-{
+ return this.openCursor(key, direction);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(IDBKeyRange range, int direction) /*-{
+ return this.openCursor(range, direction);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(Object key, int direction) /*-{
+ return this.openCursor(key, direction);
+ }-*/;
+
+ public final native JsIDBRequest openKeyCursor() /*-{
+ return this.openKeyCursor();
+ }-*/;
+
+ public final native JsIDBRequest openKeyCursor(IDBKeyRange range) /*-{
+ return this.openKeyCursor(range);
+ }-*/;
+
+ public final native JsIDBRequest openKeyCursor(IDBKeyRange range, String direction) /*-{
+ return this.openKeyCursor(range, direction);
+ }-*/;
+
+ public final native JsIDBRequest openKeyCursor(Object key) /*-{
+ return this.openKeyCursor(key);
+ }-*/;
+
+ public final native JsIDBRequest openKeyCursor(Object key, String direction) /*-{
+ return this.openKeyCursor(key, direction);
+ }-*/;
+
+ public final native JsIDBRequest openKeyCursor(IDBKeyRange range, int direction) /*-{
+ return this.openKeyCursor(range, direction);
+ }-*/;
+
+ public final native JsIDBRequest openKeyCursor(Object key, int direction) /*-{
+ return this.openKeyCursor(key, direction);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBKey.java b/elemental/src/elemental/js/html/JsIDBKey.java
new file mode 100644
index 0000000..5dffeda
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBKey.java
@@ -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 elemental.js.html;
+
+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 JsIDBKey extends JsElementalMixinBase {
+ protected JsIDBKey() {}
+}
diff --git a/elemental/src/elemental/js/html/JsIDBKeyRange.java b/elemental/src/elemental/js/html/JsIDBKeyRange.java
new file mode 100644
index 0000000..ab183e4
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBKeyRange.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.IDBKeyRange;
+
+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 JsIDBKeyRange extends JsElementalMixinBase implements IDBKeyRange {
+ protected JsIDBKeyRange() {}
+
+ public final native Object getLower() /*-{
+ return this.lower;
+ }-*/;
+
+ public final native boolean isLowerOpen() /*-{
+ return this.lowerOpen;
+ }-*/;
+
+ public final native Object getUpper() /*-{
+ return this.upper;
+ }-*/;
+
+ public final native boolean isUpperOpen() /*-{
+ return this.upperOpen;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBObjectStore.java b/elemental/src/elemental/js/html/JsIDBObjectStore.java
new file mode 100644
index 0000000..48b22c8
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBObjectStore.java
@@ -0,0 +1,155 @@
+/*
+ * 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 elemental.js.html;
+import elemental.util.Indexable;
+import elemental.js.util.JsIndexable;
+import elemental.html.IDBObjectStore;
+import elemental.js.util.JsMappable;
+import elemental.util.Mappable;
+import elemental.html.IDBKeyRange;
+import elemental.html.IDBTransaction;
+import elemental.html.IDBRequest;
+import elemental.html.IDBIndex;
+
+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 JsIDBObjectStore extends JsElementalMixinBase implements IDBObjectStore {
+ protected JsIDBObjectStore() {}
+
+ public final native boolean isAutoIncrement() /*-{
+ return this.autoIncrement;
+ }-*/;
+
+ public final native JsIndexable getIndexNames() /*-{
+ return this.indexNames;
+ }-*/;
+
+ public final native Object getKeyPath() /*-{
+ return this.keyPath;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native JsIDBTransaction getTransaction() /*-{
+ return this.transaction;
+ }-*/;
+
+ public final native JsIDBRequest add(Object value) /*-{
+ return this.add(value);
+ }-*/;
+
+ public final native JsIDBRequest add(Object value, Object key) /*-{
+ return this.add(value, key);
+ }-*/;
+
+ public final native JsIDBRequest clear() /*-{
+ return this.clear();
+ }-*/;
+
+ public final native JsIDBRequest count() /*-{
+ return this.count();
+ }-*/;
+
+ public final native JsIDBRequest count(IDBKeyRange range) /*-{
+ return this.count(range);
+ }-*/;
+
+ public final native JsIDBRequest count(Object key) /*-{
+ return this.count(key);
+ }-*/;
+
+ public final native JsIDBIndex createIndex(String name, String keyPath) /*-{
+ return this.createIndex(name, keyPath);
+ }-*/;
+
+ public final native JsIDBIndex createIndex(String name, String keyPath, Mappable options) /*-{
+ return this.createIndex(name, keyPath, options);
+ }-*/;
+
+ public final native JsIDBRequest _delete(IDBKeyRange keyRange) /*-{
+ return this['delete'](keyRange);
+ }-*/;
+
+ public final native JsIDBRequest _delete(Object key) /*-{
+ return this['delete'](key);
+ }-*/;
+
+ public final native void deleteIndex(String name) /*-{
+ this.deleteIndex(name);
+ }-*/;
+
+ public final native JsIDBRequest getObject(IDBKeyRange key) /*-{
+ return this.getObject(key);
+ }-*/;
+
+ public final native JsIDBRequest getObject(Object key) /*-{
+ return this.getObject(key);
+ }-*/;
+
+ public final native JsIDBIndex index(String name) /*-{
+ return this.index(name);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(IDBKeyRange range) /*-{
+ return this.openCursor(range);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(IDBKeyRange range, String direction) /*-{
+ return this.openCursor(range, direction);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(Object key) /*-{
+ return this.openCursor(key);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(Object key, String direction) /*-{
+ return this.openCursor(key, direction);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(IDBKeyRange range, int direction) /*-{
+ return this.openCursor(range, direction);
+ }-*/;
+
+ public final native JsIDBRequest openCursor(Object key, int direction) /*-{
+ return this.openCursor(key, direction);
+ }-*/;
+
+ public final native JsIDBRequest put(Object value) /*-{
+ return this.put(value);
+ }-*/;
+
+ public final native JsIDBRequest put(Object value, Object key) /*-{
+ return this.put(value, key);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBRequest.java b/elemental/src/elemental/js/html/JsIDBRequest.java
new file mode 100644
index 0000000..0ef45d8
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBRequest.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.events.JsEvent;
+import elemental.dom.DOMError;
+import elemental.events.EventListener;
+import elemental.html.IDBTransaction;
+import elemental.html.IDBRequest;
+import elemental.js.dom.JsDOMError;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsIDBRequest extends JsElementalMixinBase implements IDBRequest {
+ protected JsIDBRequest() {}
+
+ public final native JsDOMError getError() /*-{
+ return this.error;
+ }-*/;
+
+ public final native int getErrorCode() /*-{
+ return this.errorCode;
+ }-*/;
+
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsuccess() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsuccess);
+ }-*/;
+
+ public final native void setOnsuccess(EventListener listener) /*-{
+ this.onsuccess = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native String getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native Object getResult() /*-{
+ return this.result;
+ }-*/;
+
+ public final native Object getSource() /*-{
+ return this.source;
+ }-*/;
+
+ public final native JsIDBTransaction getTransaction() /*-{
+ return this.transaction;
+ }-*/;
+
+ public final native String getWebkitErrorMessage() /*-{
+ return this.webkitErrorMessage;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBTransaction.java b/elemental/src/elemental/js/html/JsIDBTransaction.java
new file mode 100644
index 0000000..83cf52f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBTransaction.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.IDBObjectStore;
+import elemental.js.events.JsEvent;
+import elemental.dom.DOMError;
+import elemental.events.EventListener;
+import elemental.html.IDBTransaction;
+import elemental.html.IDBDatabase;
+import elemental.js.dom.JsDOMError;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsIDBTransaction extends JsElementalMixinBase implements IDBTransaction {
+ protected JsIDBTransaction() {}
+
+ public final native JsIDBDatabase getDb() /*-{
+ return this.db;
+ }-*/;
+
+ public final native JsDOMError getError() /*-{
+ return this.error;
+ }-*/;
+
+ public final native String getMode() /*-{
+ return this.mode;
+ }-*/;
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncomplete() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncomplete);
+ }-*/;
+
+ public final native void setOncomplete(EventListener listener) /*-{
+ this.oncomplete = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native void abort() /*-{
+ this.abort();
+ }-*/;
+
+ public final native JsIDBObjectStore objectStore(String name) /*-{
+ return this.objectStore(name);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBVersionChangeEvent.java b/elemental/src/elemental/js/html/JsIDBVersionChangeEvent.java
new file mode 100644
index 0000000..4af7439
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBVersionChangeEvent.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.IDBVersionChangeEvent;
+import elemental.js.events.JsEvent;
+import elemental.events.Event;
+
+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 JsIDBVersionChangeEvent extends JsEvent implements IDBVersionChangeEvent {
+ protected JsIDBVersionChangeEvent() {}
+
+ public final native String getVersion() /*-{
+ return this.version;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIDBVersionChangeRequest.java b/elemental/src/elemental/js/html/JsIDBVersionChangeRequest.java
new file mode 100644
index 0000000..599e42f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIDBVersionChangeRequest.java
@@ -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 elemental.js.html;
+import elemental.events.EventListener;
+import elemental.html.IDBRequest;
+import elemental.js.events.JsEventListener;
+import elemental.html.IDBVersionChangeRequest;
+
+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 JsIDBVersionChangeRequest extends JsIDBRequest implements IDBVersionChangeRequest {
+ protected JsIDBVersionChangeRequest() {}
+
+ public final native EventListener getOnblocked() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onblocked);
+ }-*/;
+
+ public final native void setOnblocked(EventListener listener) /*-{
+ this.onblocked = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;}
diff --git a/elemental/src/elemental/js/html/JsIFrameElement.java b/elemental/src/elemental/js/html/JsIFrameElement.java
new file mode 100644
index 0000000..849eb9d
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIFrameElement.java
@@ -0,0 +1,154 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.js.dom.JsDocument;
+import elemental.svg.SVGDocument;
+import elemental.html.IFrameElement;
+import elemental.js.svg.JsSVGDocument;
+import elemental.html.Window;
+import elemental.dom.Document;
+
+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 JsIFrameElement extends JsElement implements IFrameElement {
+ protected JsIFrameElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native JsDocument getContentDocument() /*-{
+ return this.contentDocument;
+ }-*/;
+
+ public final native JsWindow getContentWindow() /*-{
+ return this.contentWindow;
+ }-*/;
+
+ public final native String getFrameBorder() /*-{
+ return this.frameBorder;
+ }-*/;
+
+ public final native void setFrameBorder(String param_frameBorder) /*-{
+ this.frameBorder = param_frameBorder;
+ }-*/;
+
+ public final native String getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(String param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native String getLongDesc() /*-{
+ return this.longDesc;
+ }-*/;
+
+ public final native void setLongDesc(String param_longDesc) /*-{
+ this.longDesc = param_longDesc;
+ }-*/;
+
+ public final native String getMarginHeight() /*-{
+ return this.marginHeight;
+ }-*/;
+
+ public final native void setMarginHeight(String param_marginHeight) /*-{
+ this.marginHeight = param_marginHeight;
+ }-*/;
+
+ public final native String getMarginWidth() /*-{
+ return this.marginWidth;
+ }-*/;
+
+ public final native void setMarginWidth(String param_marginWidth) /*-{
+ this.marginWidth = param_marginWidth;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getSandbox() /*-{
+ return this.sandbox;
+ }-*/;
+
+ public final native void setSandbox(String param_sandbox) /*-{
+ this.sandbox = param_sandbox;
+ }-*/;
+
+ public final native String getScrolling() /*-{
+ return this.scrolling;
+ }-*/;
+
+ public final native void setScrolling(String param_scrolling) /*-{
+ this.scrolling = param_scrolling;
+ }-*/;
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native String getSrcdoc() /*-{
+ return this.srcdoc;
+ }-*/;
+
+ public final native void setSrcdoc(String param_srcdoc) /*-{
+ this.srcdoc = param_srcdoc;
+ }-*/;
+
+ public final native String getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(String param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native JsSVGDocument getSVGDocument() /*-{
+ return this.getSVGDocument();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsIceCandidate.java b/elemental/src/elemental/js/html/JsIceCandidate.java
new file mode 100644
index 0000000..916d714
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsIceCandidate.java
@@ -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 elemental.js.html;
+import elemental.html.IceCandidate;
+
+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 JsIceCandidate extends JsElementalMixinBase implements IceCandidate {
+ protected JsIceCandidate() {}
+
+ public final native String getLabel() /*-{
+ return this.label;
+ }-*/;
+
+ public final native String toSdp() /*-{
+ return this.toSdp();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsImageData.java b/elemental/src/elemental/js/html/JsImageData.java
new file mode 100644
index 0000000..e86fac6
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsImageData.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Uint8ClampedArray;
+import elemental.html.ImageData;
+
+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 JsImageData extends JsElementalMixinBase implements ImageData {
+ protected JsImageData() {}
+
+ public final native JsUint8ClampedArray getData() /*-{
+ return this.data;
+ }-*/;
+
+ public final native int getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native int getWidth() /*-{
+ return this.width;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsImageElement.java b/elemental/src/elemental/js/html/JsImageElement.java
new file mode 100644
index 0000000..c9bf69a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsImageElement.java
@@ -0,0 +1,173 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.ImageElement;
+
+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 JsImageElement extends JsElement implements ImageElement {
+ protected JsImageElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getAlt() /*-{
+ return this.alt;
+ }-*/;
+
+ public final native void setAlt(String param_alt) /*-{
+ this.alt = param_alt;
+ }-*/;
+
+ public final native String getBorder() /*-{
+ return this.border;
+ }-*/;
+
+ public final native void setBorder(String param_border) /*-{
+ this.border = param_border;
+ }-*/;
+
+ public final native boolean isComplete() /*-{
+ return this.complete;
+ }-*/;
+
+ public final native String getCrossOrigin() /*-{
+ return this.crossOrigin;
+ }-*/;
+
+ public final native void setCrossOrigin(String param_crossOrigin) /*-{
+ this.crossOrigin = param_crossOrigin;
+ }-*/;
+
+ public final native int getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(int param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native int getHspace() /*-{
+ return this.hspace;
+ }-*/;
+
+ public final native void setHspace(int param_hspace) /*-{
+ this.hspace = param_hspace;
+ }-*/;
+
+ public final native boolean isMap() /*-{
+ return this.isMap;
+ }-*/;
+
+ public final native void setIsMap(boolean param_isMap) /*-{
+ this.isMap = param_isMap;
+ }-*/;
+
+ public final native String getLongDesc() /*-{
+ return this.longDesc;
+ }-*/;
+
+ public final native void setLongDesc(String param_longDesc) /*-{
+ this.longDesc = param_longDesc;
+ }-*/;
+
+ public final native String getLowsrc() /*-{
+ return this.lowsrc;
+ }-*/;
+
+ public final native void setLowsrc(String param_lowsrc) /*-{
+ this.lowsrc = param_lowsrc;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native int getNaturalHeight() /*-{
+ return this.naturalHeight;
+ }-*/;
+
+ public final native int getNaturalWidth() /*-{
+ return this.naturalWidth;
+ }-*/;
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native String getUseMap() /*-{
+ return this.useMap;
+ }-*/;
+
+ public final native void setUseMap(String param_useMap) /*-{
+ this.useMap = param_useMap;
+ }-*/;
+
+ public final native int getVspace() /*-{
+ return this.vspace;
+ }-*/;
+
+ public final native void setVspace(int param_vspace) /*-{
+ this.vspace = param_vspace;
+ }-*/;
+
+ public final native int getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(int param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native int getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native int getY() /*-{
+ return this.y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsInputElement.java b/elemental/src/elemental/js/html/JsInputElement.java
new file mode 100644
index 0000000..b0a8d6d
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsInputElement.java
@@ -0,0 +1,455 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ValidityState;
+import elemental.js.dom.JsElement;
+import elemental.html.InputElement;
+import elemental.dom.Element;
+import elemental.html.FileList;
+import elemental.html.FormElement;
+import elemental.js.dom.JsNodeList;
+import elemental.dom.NodeList;
+import elemental.js.events.JsEventListener;
+import elemental.events.EventListener;
+
+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 JsInputElement extends JsElement implements InputElement {
+ protected JsInputElement() {}
+
+ public final native String getAccept() /*-{
+ return this.accept;
+ }-*/;
+
+ public final native void setAccept(String param_accept) /*-{
+ this.accept = param_accept;
+ }-*/;
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getAlt() /*-{
+ return this.alt;
+ }-*/;
+
+ public final native void setAlt(String param_alt) /*-{
+ this.alt = param_alt;
+ }-*/;
+
+ public final native String getAutocomplete() /*-{
+ return this.autocomplete;
+ }-*/;
+
+ public final native void setAutocomplete(String param_autocomplete) /*-{
+ this.autocomplete = param_autocomplete;
+ }-*/;
+
+ public final native boolean isAutofocus() /*-{
+ return this.autofocus;
+ }-*/;
+
+ public final native void setAutofocus(boolean param_autofocus) /*-{
+ this.autofocus = param_autofocus;
+ }-*/;
+
+ public final native boolean isChecked() /*-{
+ return this.checked;
+ }-*/;
+
+ public final native void setChecked(boolean param_checked) /*-{
+ this.checked = param_checked;
+ }-*/;
+
+ public final native boolean isDefaultChecked() /*-{
+ return this.defaultChecked;
+ }-*/;
+
+ public final native void setDefaultChecked(boolean param_defaultChecked) /*-{
+ this.defaultChecked = param_defaultChecked;
+ }-*/;
+
+ public final native String getDefaultValue() /*-{
+ return this.defaultValue;
+ }-*/;
+
+ public final native void setDefaultValue(String param_defaultValue) /*-{
+ this.defaultValue = param_defaultValue;
+ }-*/;
+
+ public final native String getDirName() /*-{
+ return this.dirName;
+ }-*/;
+
+ public final native void setDirName(String param_dirName) /*-{
+ this.dirName = param_dirName;
+ }-*/;
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native JsFileList getFiles() /*-{
+ return this.files;
+ }-*/;
+
+ public final native void setFiles(FileList param_files) /*-{
+ this.files = param_files;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native String getFormAction() /*-{
+ return this.formAction;
+ }-*/;
+
+ public final native void setFormAction(String param_formAction) /*-{
+ this.formAction = param_formAction;
+ }-*/;
+
+ public final native String getFormEnctype() /*-{
+ return this.formEnctype;
+ }-*/;
+
+ public final native void setFormEnctype(String param_formEnctype) /*-{
+ this.formEnctype = param_formEnctype;
+ }-*/;
+
+ public final native String getFormMethod() /*-{
+ return this.formMethod;
+ }-*/;
+
+ public final native void setFormMethod(String param_formMethod) /*-{
+ this.formMethod = param_formMethod;
+ }-*/;
+
+ public final native boolean isFormNoValidate() /*-{
+ return this.formNoValidate;
+ }-*/;
+
+ public final native void setFormNoValidate(boolean param_formNoValidate) /*-{
+ this.formNoValidate = param_formNoValidate;
+ }-*/;
+
+ public final native String getFormTarget() /*-{
+ return this.formTarget;
+ }-*/;
+
+ public final native void setFormTarget(String param_formTarget) /*-{
+ this.formTarget = param_formTarget;
+ }-*/;
+
+ public final native int getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(int param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native boolean isIncremental() /*-{
+ return this.incremental;
+ }-*/;
+
+ public final native void setIncremental(boolean param_incremental) /*-{
+ this.incremental = param_incremental;
+ }-*/;
+
+ public final native boolean isIndeterminate() /*-{
+ return this.indeterminate;
+ }-*/;
+
+ public final native void setIndeterminate(boolean param_indeterminate) /*-{
+ this.indeterminate = param_indeterminate;
+ }-*/;
+
+ public final native JsNodeList getLabels() /*-{
+ return this.labels;
+ }-*/;
+
+ public final native String getMax() /*-{
+ return this.max;
+ }-*/;
+
+ public final native void setMax(String param_max) /*-{
+ this.max = param_max;
+ }-*/;
+
+ public final native int getMaxLength() /*-{
+ return this.maxLength;
+ }-*/;
+
+ public final native void setMaxLength(int param_maxLength) /*-{
+ this.maxLength = param_maxLength;
+ }-*/;
+
+ public final native String getMin() /*-{
+ return this.min;
+ }-*/;
+
+ public final native void setMin(String param_min) /*-{
+ this.min = param_min;
+ }-*/;
+
+ public final native boolean isMultiple() /*-{
+ return this.multiple;
+ }-*/;
+
+ public final native void setMultiple(boolean param_multiple) /*-{
+ this.multiple = param_multiple;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native EventListener getOnwebkitspeechchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitspeechchange);
+ }-*/;
+
+ public final native void setOnwebkitspeechchange(EventListener listener) /*-{
+ this.onwebkitspeechchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native String getPattern() /*-{
+ return this.pattern;
+ }-*/;
+
+ public final native void setPattern(String param_pattern) /*-{
+ this.pattern = param_pattern;
+ }-*/;
+
+ public final native String getPlaceholder() /*-{
+ return this.placeholder;
+ }-*/;
+
+ public final native void setPlaceholder(String param_placeholder) /*-{
+ this.placeholder = param_placeholder;
+ }-*/;
+
+ public final native boolean isReadOnly() /*-{
+ return this.readOnly;
+ }-*/;
+
+ public final native void setReadOnly(boolean param_readOnly) /*-{
+ this.readOnly = param_readOnly;
+ }-*/;
+
+ public final native boolean isRequired() /*-{
+ return this.required;
+ }-*/;
+
+ public final native void setRequired(boolean param_required) /*-{
+ this.required = param_required;
+ }-*/;
+
+ public final native String getSelectionDirection() /*-{
+ return this.selectionDirection;
+ }-*/;
+
+ public final native void setSelectionDirection(String param_selectionDirection) /*-{
+ this.selectionDirection = param_selectionDirection;
+ }-*/;
+
+ public final native int getSelectionEnd() /*-{
+ return this.selectionEnd;
+ }-*/;
+
+ public final native void setSelectionEnd(int param_selectionEnd) /*-{
+ this.selectionEnd = param_selectionEnd;
+ }-*/;
+
+ public final native int getSelectionStart() /*-{
+ return this.selectionStart;
+ }-*/;
+
+ public final native void setSelectionStart(int param_selectionStart) /*-{
+ this.selectionStart = param_selectionStart;
+ }-*/;
+
+ public final native int getSize() /*-{
+ return this.size;
+ }-*/;
+
+ public final native void setSize(int param_size) /*-{
+ this.size = param_size;
+ }-*/;
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native String getStep() /*-{
+ return this.step;
+ }-*/;
+
+ public final native void setStep(String param_step) /*-{
+ this.step = param_step;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+
+ public final native String getUseMap() /*-{
+ return this.useMap;
+ }-*/;
+
+ public final native void setUseMap(String param_useMap) /*-{
+ this.useMap = param_useMap;
+ }-*/;
+
+ public final native String getValidationMessage() /*-{
+ return this.validationMessage;
+ }-*/;
+
+ public final native JsValidityState getValidity() /*-{
+ return this.validity;
+ }-*/;
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+
+ public final native Date getValueAsDate() /*-{
+ return this.valueAsDate;
+ }-*/;
+
+ public final native void setValueAsDate(Date param_valueAsDate) /*-{
+ this.valueAsDate = param_valueAsDate;
+ }-*/;
+
+ public final native double getValueAsNumber() /*-{
+ return this.valueAsNumber;
+ }-*/;
+
+ public final native void setValueAsNumber(double param_valueAsNumber) /*-{
+ this.valueAsNumber = param_valueAsNumber;
+ }-*/;
+
+ public final native boolean isWebkitGrammar() /*-{
+ return this.webkitGrammar;
+ }-*/;
+
+ public final native void setWebkitGrammar(boolean param_webkitGrammar) /*-{
+ this.webkitGrammar = param_webkitGrammar;
+ }-*/;
+
+ public final native boolean isWebkitSpeech() /*-{
+ return this.webkitSpeech;
+ }-*/;
+
+ public final native void setWebkitSpeech(boolean param_webkitSpeech) /*-{
+ this.webkitSpeech = param_webkitSpeech;
+ }-*/;
+
+ public final native boolean isWebkitdirectory() /*-{
+ return this.webkitdirectory;
+ }-*/;
+
+ public final native void setWebkitdirectory(boolean param_webkitdirectory) /*-{
+ this.webkitdirectory = param_webkitdirectory;
+ }-*/;
+
+ public final native int getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(int param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native boolean isWillValidate() /*-{
+ return this.willValidate;
+ }-*/;
+
+ public final native boolean checkValidity() /*-{
+ return this.checkValidity();
+ }-*/;
+
+ public final native void select() /*-{
+ this.select();
+ }-*/;
+
+ public final native void setCustomValidity(String error) /*-{
+ this.setCustomValidity(error);
+ }-*/;
+
+ public final native void setSelectionRange(int start, int end) /*-{
+ this.setSelectionRange(start, end);
+ }-*/;
+
+ public final native void setSelectionRange(int start, int end, String direction) /*-{
+ this.setSelectionRange(start, end, direction);
+ }-*/;
+
+ public final native void stepDown() /*-{
+ this.stepDown();
+ }-*/;
+
+ public final native void stepDown(int n) /*-{
+ this.stepDown(n);
+ }-*/;
+
+ public final native void stepUp() /*-{
+ this.stepUp();
+ }-*/;
+
+ public final native void stepUp(int n) /*-{
+ this.stepUp(n);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsInt16Array.java b/elemental/src/elemental/js/html/JsInt16Array.java
new file mode 100644
index 0000000..210cda6
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsInt16Array.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ArrayBufferView;
+import elemental.html.Int16Array;
+
+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 JsInt16Array extends JsArrayBufferView implements Int16Array, IndexableInt {
+ protected JsInt16Array() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setElements(Object array) /*-{
+ this.setElements(array);
+ }-*/;
+
+ public final native void setElements(Object array, int offset) /*-{
+ this.setElements(array, offset);
+ }-*/;
+
+ public final native JsInt16Array subarray(int start) /*-{
+ return this.subarray(start);
+ }-*/;
+
+ public final native JsInt16Array subarray(int start, int end) /*-{
+ return this.subarray(start, end);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsInt32Array.java b/elemental/src/elemental/js/html/JsInt32Array.java
new file mode 100644
index 0000000..5cb8681
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsInt32Array.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ArrayBufferView;
+import elemental.html.Int32Array;
+
+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 JsInt32Array extends JsArrayBufferView implements Int32Array, IndexableInt {
+ protected JsInt32Array() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setElements(Object array) /*-{
+ this.setElements(array);
+ }-*/;
+
+ public final native void setElements(Object array, int offset) /*-{
+ this.setElements(array, offset);
+ }-*/;
+
+ public final native JsInt32Array subarray(int start) /*-{
+ return this.subarray(start);
+ }-*/;
+
+ public final native JsInt32Array subarray(int start, int end) /*-{
+ return this.subarray(start, end);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsInt8Array.java b/elemental/src/elemental/js/html/JsInt8Array.java
new file mode 100644
index 0000000..d6544a3
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsInt8Array.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Int8Array;
+import elemental.html.ArrayBufferView;
+
+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 JsInt8Array extends JsArrayBufferView implements Int8Array, IndexableInt {
+ protected JsInt8Array() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setElements(Object array) /*-{
+ this.setElements(array);
+ }-*/;
+
+ public final native void setElements(Object array, int offset) /*-{
+ this.setElements(array, offset);
+ }-*/;
+
+ public final native JsInt8Array subarray(int start) /*-{
+ return this.subarray(start);
+ }-*/;
+
+ public final native JsInt8Array subarray(int start, int end) /*-{
+ return this.subarray(start, end);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsJavaScriptAudioNode.java b/elemental/src/elemental/js/html/JsJavaScriptAudioNode.java
new file mode 100644
index 0000000..11b0b1a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsJavaScriptAudioNode.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioNode;
+import elemental.events.EventListener;
+import elemental.html.JavaScriptAudioNode;
+import elemental.js.events.JsEventListener;
+
+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 JsJavaScriptAudioNode extends JsAudioNode implements JavaScriptAudioNode {
+ protected JsJavaScriptAudioNode() {}
+
+ public final native int getBufferSize() /*-{
+ return this.bufferSize;
+ }-*/;
+
+ public final native EventListener getOnaudioprocess() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onaudioprocess);
+ }-*/;
+
+ public final native void setOnaudioprocess(EventListener listener) /*-{
+ this.onaudioprocess = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;}
diff --git a/elemental/src/elemental/js/html/JsJavaScriptCallFrame.java b/elemental/src/elemental/js/html/JsJavaScriptCallFrame.java
new file mode 100644
index 0000000..631c9d1
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsJavaScriptCallFrame.java
@@ -0,0 +1,81 @@
+/*
+ * 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 elemental.js.html;
+import elemental.util.Indexable;
+import elemental.html.JavaScriptCallFrame;
+import elemental.js.util.JsIndexable;
+
+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 JsJavaScriptCallFrame extends JsElementalMixinBase implements JavaScriptCallFrame {
+ protected JsJavaScriptCallFrame() {}
+
+ public final native JsJavaScriptCallFrame getCaller() /*-{
+ return this.caller;
+ }-*/;
+
+ public final native int getColumn() /*-{
+ return this.column;
+ }-*/;
+
+ public final native String getFunctionName() /*-{
+ return this.functionName;
+ }-*/;
+
+ public final native int getLine() /*-{
+ return this.line;
+ }-*/;
+
+ public final native JsIndexable getScopeChain() /*-{
+ return this.scopeChain;
+ }-*/;
+
+ public final native int getSourceID() /*-{
+ return this.sourceID;
+ }-*/;
+
+ public final native Object getThisObject() /*-{
+ return this.thisObject;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void evaluate(String script) /*-{
+ this.evaluate(script);
+ }-*/;
+
+ public final native int scopeType(int scopeIndex) /*-{
+ return this.scopeType(scopeIndex);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsKeygenElement.java b/elemental/src/elemental/js/html/JsKeygenElement.java
new file mode 100644
index 0000000..609ad85
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsKeygenElement.java
@@ -0,0 +1,117 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ValidityState;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.FormElement;
+import elemental.js.dom.JsNodeList;
+import elemental.html.KeygenElement;
+import elemental.dom.NodeList;
+
+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 JsKeygenElement extends JsElement implements KeygenElement {
+ protected JsKeygenElement() {}
+
+ public final native boolean isAutofocus() /*-{
+ return this.autofocus;
+ }-*/;
+
+ public final native void setAutofocus(boolean param_autofocus) /*-{
+ this.autofocus = param_autofocus;
+ }-*/;
+
+ public final native String getChallenge() /*-{
+ return this.challenge;
+ }-*/;
+
+ public final native void setChallenge(String param_challenge) /*-{
+ this.challenge = param_challenge;
+ }-*/;
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native String getKeytype() /*-{
+ return this.keytype;
+ }-*/;
+
+ public final native void setKeytype(String param_keytype) /*-{
+ this.keytype = param_keytype;
+ }-*/;
+
+ public final native JsNodeList getLabels() /*-{
+ return this.labels;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native String getValidationMessage() /*-{
+ return this.validationMessage;
+ }-*/;
+
+ public final native JsValidityState getValidity() /*-{
+ return this.validity;
+ }-*/;
+
+ public final native boolean isWillValidate() /*-{
+ return this.willValidate;
+ }-*/;
+
+ public final native boolean checkValidity() /*-{
+ return this.checkValidity();
+ }-*/;
+
+ public final native void setCustomValidity(String error) /*-{
+ this.setCustomValidity(error);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsLIElement.java b/elemental/src/elemental/js/html/JsLIElement.java
new file mode 100644
index 0000000..71e6a7a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsLIElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.LIElement;
+
+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 JsLIElement extends JsElement implements LIElement {
+ protected JsLIElement() {}
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+
+ public final native int getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(int param_value) /*-{
+ this.value = param_value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsLabelElement.java b/elemental/src/elemental/js/html/JsLabelElement.java
new file mode 100644
index 0000000..8804cc5
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsLabelElement.java
@@ -0,0 +1,58 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.FormElement;
+import elemental.html.LabelElement;
+
+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 JsLabelElement extends JsElement implements LabelElement {
+ protected JsLabelElement() {}
+
+ public final native JsElement getControl() /*-{
+ return this.control;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native String getHtmlFor() /*-{
+ return this.htmlFor;
+ }-*/;
+
+ public final native void setHtmlFor(String param_htmlFor) /*-{
+ this.htmlFor = param_htmlFor;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsLegendElement.java b/elemental/src/elemental/js/html/JsLegendElement.java
new file mode 100644
index 0000000..f08334a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsLegendElement.java
@@ -0,0 +1,54 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.LegendElement;
+import elemental.js.dom.JsElement;
+import elemental.html.FormElement;
+import elemental.dom.Element;
+
+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 JsLegendElement extends JsElement implements LegendElement {
+ protected JsLegendElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsLinkElement.java b/elemental/src/elemental/js/html/JsLinkElement.java
new file mode 100644
index 0000000..7ce78e8
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsLinkElement.java
@@ -0,0 +1,129 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.dom.DOMSettableTokenList;
+import elemental.js.dom.JsDOMSettableTokenList;
+import elemental.stylesheets.StyleSheet;
+import elemental.js.stylesheets.JsStyleSheet;
+import elemental.html.LinkElement;
+
+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 JsLinkElement extends JsElement implements LinkElement {
+ protected JsLinkElement() {}
+
+ public final native String getCharset() /*-{
+ return this.charset;
+ }-*/;
+
+ public final native void setCharset(String param_charset) /*-{
+ this.charset = param_charset;
+ }-*/;
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native String getHref() /*-{
+ return this.href;
+ }-*/;
+
+ public final native void setHref(String param_href) /*-{
+ this.href = param_href;
+ }-*/;
+
+ public final native String getHreflang() /*-{
+ return this.hreflang;
+ }-*/;
+
+ public final native void setHreflang(String param_hreflang) /*-{
+ this.hreflang = param_hreflang;
+ }-*/;
+
+ public final native String getMedia() /*-{
+ return this.media;
+ }-*/;
+
+ public final native void setMedia(String param_media) /*-{
+ this.media = param_media;
+ }-*/;
+
+ public final native String getRel() /*-{
+ return this.rel;
+ }-*/;
+
+ public final native void setRel(String param_rel) /*-{
+ this.rel = param_rel;
+ }-*/;
+
+ public final native String getRev() /*-{
+ return this.rev;
+ }-*/;
+
+ public final native void setRev(String param_rev) /*-{
+ this.rev = param_rev;
+ }-*/;
+
+ public final native JsStyleSheet getSheet() /*-{
+ return this.sheet;
+ }-*/;
+
+ public final native JsDOMSettableTokenList getSizes() /*-{
+ return this.sizes;
+ }-*/;
+
+ public final native void setSizes(DOMSettableTokenList param_sizes) /*-{
+ this.sizes = param_sizes;
+ }-*/;
+
+ public final native String getTarget() /*-{
+ return this.target;
+ }-*/;
+
+ public final native void setTarget(String param_target) /*-{
+ this.target = param_target;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsLocation.java b/elemental/src/elemental/js/html/JsLocation.java
new file mode 100644
index 0000000..1d7771a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsLocation.java
@@ -0,0 +1,125 @@
+/*
+ * 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 elemental.js.html;
+import elemental.util.Indexable;
+import elemental.js.util.JsIndexable;
+import elemental.html.Location;
+
+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 JsLocation extends JsElementalMixinBase implements Location {
+ protected JsLocation() {}
+
+ public final native JsIndexable getAncestorOrigins() /*-{
+ return this.ancestorOrigins;
+ }-*/;
+
+ public final native String getHash() /*-{
+ return this.hash;
+ }-*/;
+
+ public final native void setHash(String param_hash) /*-{
+ this.hash = param_hash;
+ }-*/;
+
+ public final native String getHost() /*-{
+ return this.host;
+ }-*/;
+
+ public final native void setHost(String param_host) /*-{
+ this.host = param_host;
+ }-*/;
+
+ public final native String getHostname() /*-{
+ return this.hostname;
+ }-*/;
+
+ public final native void setHostname(String param_hostname) /*-{
+ this.hostname = param_hostname;
+ }-*/;
+
+ public final native String getHref() /*-{
+ return this.href;
+ }-*/;
+
+ public final native void setHref(String param_href) /*-{
+ this.href = param_href;
+ }-*/;
+
+ public final native String getOrigin() /*-{
+ return this.origin;
+ }-*/;
+
+ public final native String getPathname() /*-{
+ return this.pathname;
+ }-*/;
+
+ public final native void setPathname(String param_pathname) /*-{
+ this.pathname = param_pathname;
+ }-*/;
+
+ public final native String getPort() /*-{
+ return this.port;
+ }-*/;
+
+ public final native void setPort(String param_port) /*-{
+ this.port = param_port;
+ }-*/;
+
+ public final native String getProtocol() /*-{
+ return this.protocol;
+ }-*/;
+
+ public final native void setProtocol(String param_protocol) /*-{
+ this.protocol = param_protocol;
+ }-*/;
+
+ public final native String getSearch() /*-{
+ return this.search;
+ }-*/;
+
+ public final native void setSearch(String param_search) /*-{
+ this.search = param_search;
+ }-*/;
+
+ public final native void assign(String url) /*-{
+ this.assign(url);
+ }-*/;
+
+ public final native void reload() /*-{
+ this.reload();
+ }-*/;
+
+ public final native void replace(String url) /*-{
+ this.replace(url);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMapElement.java b/elemental/src/elemental/js/html/JsMapElement.java
new file mode 100644
index 0000000..9a5313d
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMapElement.java
@@ -0,0 +1,54 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.MapElement;
+import elemental.html.HTMLCollection;
+
+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 JsMapElement extends JsElement implements MapElement {
+ protected JsMapElement() {}
+
+ public final native JsHTMLCollection getAreas() /*-{
+ return this.areas;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMarqueeElement.java b/elemental/src/elemental/js/html/JsMarqueeElement.java
new file mode 100644
index 0000000..4b09fd7
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMarqueeElement.java
@@ -0,0 +1,137 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.MarqueeElement;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+
+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 JsMarqueeElement extends JsElement implements MarqueeElement {
+ protected JsMarqueeElement() {}
+
+ public final native String getBehavior() /*-{
+ return this.behavior;
+ }-*/;
+
+ public final native void setBehavior(String param_behavior) /*-{
+ this.behavior = param_behavior;
+ }-*/;
+
+ public final native String getBgColor() /*-{
+ return this.bgColor;
+ }-*/;
+
+ public final native void setBgColor(String param_bgColor) /*-{
+ this.bgColor = param_bgColor;
+ }-*/;
+
+ public final native String getDirection() /*-{
+ return this.direction;
+ }-*/;
+
+ public final native void setDirection(String param_direction) /*-{
+ this.direction = param_direction;
+ }-*/;
+
+ public final native String getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(String param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native int getHspace() /*-{
+ return this.hspace;
+ }-*/;
+
+ public final native void setHspace(int param_hspace) /*-{
+ this.hspace = param_hspace;
+ }-*/;
+
+ public final native int getLoop() /*-{
+ return this.loop;
+ }-*/;
+
+ public final native void setLoop(int param_loop) /*-{
+ this.loop = param_loop;
+ }-*/;
+
+ public final native int getScrollAmount() /*-{
+ return this.scrollAmount;
+ }-*/;
+
+ public final native void setScrollAmount(int param_scrollAmount) /*-{
+ this.scrollAmount = param_scrollAmount;
+ }-*/;
+
+ public final native int getScrollDelay() /*-{
+ return this.scrollDelay;
+ }-*/;
+
+ public final native void setScrollDelay(int param_scrollDelay) /*-{
+ this.scrollDelay = param_scrollDelay;
+ }-*/;
+
+ public final native boolean isTrueSpeed() /*-{
+ return this.trueSpeed;
+ }-*/;
+
+ public final native void setTrueSpeed(boolean param_trueSpeed) /*-{
+ this.trueSpeed = param_trueSpeed;
+ }-*/;
+
+ public final native int getVspace() /*-{
+ return this.vspace;
+ }-*/;
+
+ public final native void setVspace(int param_vspace) /*-{
+ this.vspace = param_vspace;
+ }-*/;
+
+ public final native String getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(String param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native void start() /*-{
+ this.start();
+ }-*/;
+
+ public final native void stop() /*-{
+ this.stop();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMediaController.java b/elemental/src/elemental/js/html/JsMediaController.java
new file mode 100644
index 0000000..92a344f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMediaController.java
@@ -0,0 +1,112 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.MediaController;
+import elemental.js.events.JsEvent;
+import elemental.html.TimeRanges;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsMediaController extends JsElementalMixinBase implements MediaController {
+ protected JsMediaController() {}
+
+ public final native JsTimeRanges getBuffered() /*-{
+ return this.buffered;
+ }-*/;
+
+ public final native double getCurrentTime() /*-{
+ return this.currentTime;
+ }-*/;
+
+ public final native void setCurrentTime(double param_currentTime) /*-{
+ this.currentTime = param_currentTime;
+ }-*/;
+
+ public final native double getDefaultPlaybackRate() /*-{
+ return this.defaultPlaybackRate;
+ }-*/;
+
+ public final native void setDefaultPlaybackRate(double param_defaultPlaybackRate) /*-{
+ this.defaultPlaybackRate = param_defaultPlaybackRate;
+ }-*/;
+
+ public final native double getDuration() /*-{
+ return this.duration;
+ }-*/;
+
+ public final native boolean isMuted() /*-{
+ return this.muted;
+ }-*/;
+
+ public final native void setMuted(boolean param_muted) /*-{
+ this.muted = param_muted;
+ }-*/;
+
+ public final native boolean isPaused() /*-{
+ return this.paused;
+ }-*/;
+
+ public final native double getPlaybackRate() /*-{
+ return this.playbackRate;
+ }-*/;
+
+ public final native void setPlaybackRate(double param_playbackRate) /*-{
+ this.playbackRate = param_playbackRate;
+ }-*/;
+
+ public final native JsTimeRanges getPlayed() /*-{
+ return this.played;
+ }-*/;
+
+ public final native JsTimeRanges getSeekable() /*-{
+ return this.seekable;
+ }-*/;
+
+ public final native double getVolume() /*-{
+ return this.volume;
+ }-*/;
+
+ public final native void setVolume(double param_volume) /*-{
+ this.volume = param_volume;
+ }-*/;
+
+ public final native void pause() /*-{
+ this.pause();
+ }-*/;
+
+ public final native void play() /*-{
+ this.play();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMediaElement.java b/elemental/src/elemental/js/html/JsMediaElement.java
new file mode 100644
index 0000000..aa9a3e2
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMediaElement.java
@@ -0,0 +1,366 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.MediaError;
+import elemental.html.TextTrack;
+import elemental.html.MediaController;
+import elemental.html.TextTrackList;
+import elemental.html.TimeRanges;
+import elemental.events.EventListener;
+import elemental.html.MediaElement;
+import elemental.js.events.JsEventListener;
+import elemental.html.Uint8Array;
+
+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 JsMediaElement extends JsElement implements MediaElement {
+ protected JsMediaElement() {}
+
+ public final native boolean isAutoplay() /*-{
+ return this.autoplay;
+ }-*/;
+
+ public final native void setAutoplay(boolean param_autoplay) /*-{
+ this.autoplay = param_autoplay;
+ }-*/;
+
+ public final native JsTimeRanges getBuffered() /*-{
+ return this.buffered;
+ }-*/;
+
+ public final native JsMediaController getController() /*-{
+ return this.controller;
+ }-*/;
+
+ public final native void setController(MediaController param_controller) /*-{
+ this.controller = param_controller;
+ }-*/;
+
+ public final native boolean isControls() /*-{
+ return this.controls;
+ }-*/;
+
+ public final native void setControls(boolean param_controls) /*-{
+ this.controls = param_controls;
+ }-*/;
+
+ public final native String getCurrentSrc() /*-{
+ return this.currentSrc;
+ }-*/;
+
+ public final native float getCurrentTime() /*-{
+ return this.currentTime;
+ }-*/;
+
+ public final native void setCurrentTime(float param_currentTime) /*-{
+ this.currentTime = param_currentTime;
+ }-*/;
+
+ public final native boolean isDefaultMuted() /*-{
+ return this.defaultMuted;
+ }-*/;
+
+ public final native void setDefaultMuted(boolean param_defaultMuted) /*-{
+ this.defaultMuted = param_defaultMuted;
+ }-*/;
+
+ public final native float getDefaultPlaybackRate() /*-{
+ return this.defaultPlaybackRate;
+ }-*/;
+
+ public final native void setDefaultPlaybackRate(float param_defaultPlaybackRate) /*-{
+ this.defaultPlaybackRate = param_defaultPlaybackRate;
+ }-*/;
+
+ public final native float getDuration() /*-{
+ return this.duration;
+ }-*/;
+
+ public final native boolean isEnded() /*-{
+ return this.ended;
+ }-*/;
+
+ public final native JsMediaError getError() /*-{
+ return this.error;
+ }-*/;
+
+ public final native double getInitialTime() /*-{
+ return this.initialTime;
+ }-*/;
+
+ public final native boolean isLoop() /*-{
+ return this.loop;
+ }-*/;
+
+ public final native void setLoop(boolean param_loop) /*-{
+ this.loop = param_loop;
+ }-*/;
+
+ public final native String getMediaGroup() /*-{
+ return this.mediaGroup;
+ }-*/;
+
+ public final native void setMediaGroup(String param_mediaGroup) /*-{
+ this.mediaGroup = param_mediaGroup;
+ }-*/;
+
+ public final native boolean isMuted() /*-{
+ return this.muted;
+ }-*/;
+
+ public final native void setMuted(boolean param_muted) /*-{
+ this.muted = param_muted;
+ }-*/;
+
+ public final native int getNetworkState() /*-{
+ return this.networkState;
+ }-*/;
+
+ public final native EventListener getOnwebkitkeyadded() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitkeyadded);
+ }-*/;
+
+ public final native void setOnwebkitkeyadded(EventListener listener) /*-{
+ this.onwebkitkeyadded = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitkeyerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitkeyerror);
+ }-*/;
+
+ public final native void setOnwebkitkeyerror(EventListener listener) /*-{
+ this.onwebkitkeyerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitkeymessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitkeymessage);
+ }-*/;
+
+ public final native void setOnwebkitkeymessage(EventListener listener) /*-{
+ this.onwebkitkeymessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitneedkey() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitneedkey);
+ }-*/;
+
+ public final native void setOnwebkitneedkey(EventListener listener) /*-{
+ this.onwebkitneedkey = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitsourceclose() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitsourceclose);
+ }-*/;
+
+ public final native void setOnwebkitsourceclose(EventListener listener) /*-{
+ this.onwebkitsourceclose = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitsourceended() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitsourceended);
+ }-*/;
+
+ public final native void setOnwebkitsourceended(EventListener listener) /*-{
+ this.onwebkitsourceended = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitsourceopen() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitsourceopen);
+ }-*/;
+
+ public final native void setOnwebkitsourceopen(EventListener listener) /*-{
+ this.onwebkitsourceopen = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native boolean isPaused() /*-{
+ return this.paused;
+ }-*/;
+
+ public final native float getPlaybackRate() /*-{
+ return this.playbackRate;
+ }-*/;
+
+ public final native void setPlaybackRate(float param_playbackRate) /*-{
+ this.playbackRate = param_playbackRate;
+ }-*/;
+
+ public final native JsTimeRanges getPlayed() /*-{
+ return this.played;
+ }-*/;
+
+ public final native String getPreload() /*-{
+ return this.preload;
+ }-*/;
+
+ public final native void setPreload(String param_preload) /*-{
+ this.preload = param_preload;
+ }-*/;
+
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native JsTimeRanges getSeekable() /*-{
+ return this.seekable;
+ }-*/;
+
+ public final native boolean isSeeking() /*-{
+ return this.seeking;
+ }-*/;
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native float getStartTime() /*-{
+ return this.startTime;
+ }-*/;
+
+ public final native JsTextTrackList getTextTracks() /*-{
+ return this.textTracks;
+ }-*/;
+
+ public final native float getVolume() /*-{
+ return this.volume;
+ }-*/;
+
+ public final native void setVolume(float param_volume) /*-{
+ this.volume = param_volume;
+ }-*/;
+
+ public final native int getWebkitAudioDecodedByteCount() /*-{
+ return this.webkitAudioDecodedByteCount;
+ }-*/;
+
+ public final native boolean isWebkitClosedCaptionsVisible() /*-{
+ return this.webkitClosedCaptionsVisible;
+ }-*/;
+
+ public final native void setWebkitClosedCaptionsVisible(boolean param_webkitClosedCaptionsVisible) /*-{
+ this.webkitClosedCaptionsVisible = param_webkitClosedCaptionsVisible;
+ }-*/;
+
+ public final native boolean isWebkitHasClosedCaptions() /*-{
+ return this.webkitHasClosedCaptions;
+ }-*/;
+
+ public final native String getWebkitMediaSourceURL() /*-{
+ return this.webkitMediaSourceURL;
+ }-*/;
+
+ public final native boolean isWebkitPreservesPitch() /*-{
+ return this.webkitPreservesPitch;
+ }-*/;
+
+ public final native void setWebkitPreservesPitch(boolean param_webkitPreservesPitch) /*-{
+ this.webkitPreservesPitch = param_webkitPreservesPitch;
+ }-*/;
+
+ public final native int getWebkitSourceState() /*-{
+ return this.webkitSourceState;
+ }-*/;
+
+ public final native int getWebkitVideoDecodedByteCount() /*-{
+ return this.webkitVideoDecodedByteCount;
+ }-*/;
+
+ public final native JsTextTrack addTextTrack(String kind) /*-{
+ return this.addTextTrack(kind);
+ }-*/;
+
+ public final native JsTextTrack addTextTrack(String kind, String label) /*-{
+ return this.addTextTrack(kind, label);
+ }-*/;
+
+ public final native JsTextTrack addTextTrack(String kind, String label, String language) /*-{
+ return this.addTextTrack(kind, label, language);
+ }-*/;
+
+ public final native String canPlayType(String type, String keySystem) /*-{
+ return this.canPlayType(type, keySystem);
+ }-*/;
+
+ public final native void load() /*-{
+ this.load();
+ }-*/;
+
+ public final native void pause() /*-{
+ this.pause();
+ }-*/;
+
+ public final native void play() /*-{
+ this.play();
+ }-*/;
+
+ public final native void webkitAddKey(String keySystem, Uint8Array key) /*-{
+ this.webkitAddKey(keySystem, key);
+ }-*/;
+
+ public final native void webkitAddKey(String keySystem, Uint8Array key, Uint8Array initData, String sessionId) /*-{
+ this.webkitAddKey(keySystem, key, initData, sessionId);
+ }-*/;
+
+ public final native void webkitCancelKeyRequest(String keySystem, String sessionId) /*-{
+ this.webkitCancelKeyRequest(keySystem, sessionId);
+ }-*/;
+
+ public final native void webkitGenerateKeyRequest(String keySystem) /*-{
+ this.webkitGenerateKeyRequest(keySystem);
+ }-*/;
+
+ public final native void webkitGenerateKeyRequest(String keySystem, Uint8Array initData) /*-{
+ this.webkitGenerateKeyRequest(keySystem, initData);
+ }-*/;
+
+ public final native void webkitSourceAbort(String id) /*-{
+ this.webkitSourceAbort(id);
+ }-*/;
+
+ public final native void webkitSourceAddId(String id, String type) /*-{
+ this.webkitSourceAddId(id, type);
+ }-*/;
+
+ public final native void webkitSourceAppend(String id, Uint8Array data) /*-{
+ this.webkitSourceAppend(id, data);
+ }-*/;
+
+ public final native JsTimeRanges webkitSourceBuffered(String id) /*-{
+ return this.webkitSourceBuffered(id);
+ }-*/;
+
+ public final native void webkitSourceEndOfStream(int status) /*-{
+ this.webkitSourceEndOfStream(status);
+ }-*/;
+
+ public final native void webkitSourceRemoveId(String id) /*-{
+ this.webkitSourceRemoveId(id);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMediaElementAudioSourceNode.java b/elemental/src/elemental/js/html/JsMediaElementAudioSourceNode.java
new file mode 100644
index 0000000..3c7ba09
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMediaElementAudioSourceNode.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.AudioSourceNode;
+import elemental.html.MediaElementAudioSourceNode;
+import elemental.html.MediaElement;
+
+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 JsMediaElementAudioSourceNode extends JsAudioSourceNode implements MediaElementAudioSourceNode {
+ protected JsMediaElementAudioSourceNode() {}
+
+ public final native JsMediaElement getMediaElement() /*-{
+ return this.mediaElement;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMediaError.java b/elemental/src/elemental/js/html/JsMediaError.java
new file mode 100644
index 0000000..b3c2a2f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMediaError.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.MediaError;
+
+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 JsMediaError extends JsElementalMixinBase implements MediaError {
+ protected JsMediaError() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMediaKeyError.java b/elemental/src/elemental/js/html/JsMediaKeyError.java
new file mode 100644
index 0000000..c830bb6
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMediaKeyError.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.MediaKeyError;
+
+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 JsMediaKeyError extends JsElementalMixinBase implements MediaKeyError {
+ protected JsMediaKeyError() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMediaKeyEvent.java b/elemental/src/elemental/js/html/JsMediaKeyEvent.java
new file mode 100644
index 0000000..64082eb
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMediaKeyEvent.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.MediaKeyError;
+import elemental.events.Event;
+import elemental.js.events.JsEvent;
+import elemental.html.MediaKeyEvent;
+import elemental.html.Uint8Array;
+
+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 JsMediaKeyEvent extends JsEvent implements MediaKeyEvent {
+ protected JsMediaKeyEvent() {}
+
+ public final native String getDefaultURL() /*-{
+ return this.defaultURL;
+ }-*/;
+
+ public final native JsMediaKeyError getErrorCode() /*-{
+ return this.errorCode;
+ }-*/;
+
+ public final native JsUint8Array getInitData() /*-{
+ return this.initData;
+ }-*/;
+
+ public final native String getKeySystem() /*-{
+ return this.keySystem;
+ }-*/;
+
+ public final native JsUint8Array getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getSessionId() /*-{
+ return this.sessionId;
+ }-*/;
+
+ public final native int getSystemCode() /*-{
+ return this.systemCode;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMediaQueryList.java b/elemental/src/elemental/js/html/JsMediaQueryList.java
new file mode 100644
index 0000000..cbc7bbd
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMediaQueryList.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.MediaQueryListListener;
+import elemental.html.MediaQueryList;
+
+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 JsMediaQueryList extends JsElementalMixinBase implements MediaQueryList {
+ protected JsMediaQueryList() {}
+
+ public final native boolean isMatches() /*-{
+ return this.matches;
+ }-*/;
+
+ public final native String getMedia() /*-{
+ return this.media;
+ }-*/;
+
+ public final native void addListener(MediaQueryListListener listener) /*-{
+ this.addListener(listener);
+ }-*/;
+
+ public final native void removeListener(MediaQueryListListener listener) /*-{
+ this.removeListener(listener);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMediaQueryListListener.java b/elemental/src/elemental/js/html/JsMediaQueryListListener.java
new file mode 100644
index 0000000..c379fd8
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMediaQueryListListener.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.MediaQueryList;
+import elemental.html.MediaQueryListListener;
+
+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 JsMediaQueryListListener extends JsElementalMixinBase implements MediaQueryListListener {
+ protected JsMediaQueryListListener() {}
+
+ public final native void queryChanged(MediaQueryList list) /*-{
+ this.queryChanged(list);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMemoryInfo.java b/elemental/src/elemental/js/html/JsMemoryInfo.java
new file mode 100644
index 0000000..2e0c0c4
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMemoryInfo.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.MemoryInfo;
+
+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 JsMemoryInfo extends JsElementalMixinBase implements MemoryInfo {
+ protected JsMemoryInfo() {}
+
+ public final native int getJsHeapSizeLimit() /*-{
+ return this.jsHeapSizeLimit;
+ }-*/;
+
+ public final native int getTotalJSHeapSize() /*-{
+ return this.totalJSHeapSize;
+ }-*/;
+
+ public final native int getUsedJSHeapSize() /*-{
+ return this.usedJSHeapSize;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMenuElement.java b/elemental/src/elemental/js/html/JsMenuElement.java
new file mode 100644
index 0000000..d2a6557
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMenuElement.java
@@ -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 elemental.js.html;
+import elemental.html.MenuElement;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+
+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 JsMenuElement extends JsElement implements MenuElement {
+ protected JsMenuElement() {}
+
+ public final native boolean isCompact() /*-{
+ return this.compact;
+ }-*/;
+
+ public final native void setCompact(boolean param_compact) /*-{
+ this.compact = param_compact;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMetaElement.java b/elemental/src/elemental/js/html/JsMetaElement.java
new file mode 100644
index 0000000..eee7d5e
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMetaElement.java
@@ -0,0 +1,73 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.MetaElement;
+
+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 JsMetaElement extends JsElement implements MetaElement {
+ protected JsMetaElement() {}
+
+ public final native String getContent() /*-{
+ return this.content;
+ }-*/;
+
+ public final native void setContent(String param_content) /*-{
+ this.content = param_content;
+ }-*/;
+
+ public final native String getHttpEquiv() /*-{
+ return this.httpEquiv;
+ }-*/;
+
+ public final native void setHttpEquiv(String param_httpEquiv) /*-{
+ this.httpEquiv = param_httpEquiv;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getScheme() /*-{
+ return this.scheme;
+ }-*/;
+
+ public final native void setScheme(String param_scheme) /*-{
+ this.scheme = param_scheme;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMetadata.java b/elemental/src/elemental/js/html/JsMetadata.java
new file mode 100644
index 0000000..ec76614
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMetadata.java
@@ -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 elemental.js.html;
+import elemental.html.Metadata;
+
+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 JsMetadata extends JsElementalMixinBase implements Metadata {
+ protected JsMetadata() {}
+
+ public final native Date getModificationTime() /*-{
+ return this.modificationTime;
+ }-*/;
+
+ public final native double getSize() /*-{
+ return this.size;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsMeterElement.java b/elemental/src/elemental/js/html/JsMeterElement.java
new file mode 100644
index 0000000..e525b38
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsMeterElement.java
@@ -0,0 +1,95 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.js.dom.JsNodeList;
+import elemental.dom.NodeList;
+import elemental.html.MeterElement;
+
+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 JsMeterElement extends JsElement implements MeterElement {
+ protected JsMeterElement() {}
+
+ public final native double getHigh() /*-{
+ return this.high;
+ }-*/;
+
+ public final native void setHigh(double param_high) /*-{
+ this.high = param_high;
+ }-*/;
+
+ public final native JsNodeList getLabels() /*-{
+ return this.labels;
+ }-*/;
+
+ public final native double getLow() /*-{
+ return this.low;
+ }-*/;
+
+ public final native void setLow(double param_low) /*-{
+ this.low = param_low;
+ }-*/;
+
+ public final native double getMax() /*-{
+ return this.max;
+ }-*/;
+
+ public final native void setMax(double param_max) /*-{
+ this.max = param_max;
+ }-*/;
+
+ public final native double getMin() /*-{
+ return this.min;
+ }-*/;
+
+ public final native void setMin(double param_min) /*-{
+ this.min = param_min;
+ }-*/;
+
+ public final native double getOptimum() /*-{
+ return this.optimum;
+ }-*/;
+
+ public final native void setOptimum(double param_optimum) /*-{
+ this.optimum = param_optimum;
+ }-*/;
+
+ public final native double getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(double param_value) /*-{
+ this.value = param_value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsModElement.java b/elemental/src/elemental/js/html/JsModElement.java
new file mode 100644
index 0000000..ddea9ca
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsModElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.ModElement;
+
+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 JsModElement extends JsElement implements ModElement {
+ protected JsModElement() {}
+
+ public final native String getCite() /*-{
+ return this.cite;
+ }-*/;
+
+ public final native void setCite(String param_cite) /*-{
+ this.cite = param_cite;
+ }-*/;
+
+ public final native String getDateTime() /*-{
+ return this.dateTime;
+ }-*/;
+
+ public final native void setDateTime(String param_dateTime) /*-{
+ this.dateTime = param_dateTime;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsNavigator.java b/elemental/src/elemental/js/html/JsNavigator.java
new file mode 100644
index 0000000..7afb956
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsNavigator.java
@@ -0,0 +1,138 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsPointerLock;
+import elemental.dom.PointerLock;
+import elemental.html.NavigatorUserMediaSuccessCallback;
+import elemental.html.BatteryManager;
+import elemental.js.dom.JsGeolocation;
+import elemental.js.util.JsMappable;
+import elemental.util.Mappable;
+import elemental.html.Navigator;
+import elemental.html.DOMMimeTypeArray;
+import elemental.dom.Geolocation;
+import elemental.html.DOMPluginArray;
+import elemental.html.NavigatorUserMediaErrorCallback;
+
+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 JsNavigator extends JsElementalMixinBase implements Navigator {
+ protected JsNavigator() {}
+
+ public final native String getAppCodeName() /*-{
+ return this.appCodeName;
+ }-*/;
+
+ public final native String getAppName() /*-{
+ return this.appName;
+ }-*/;
+
+ public final native String getAppVersion() /*-{
+ return this.appVersion;
+ }-*/;
+
+ public final native boolean isCookieEnabled() /*-{
+ return this.cookieEnabled;
+ }-*/;
+
+ public final native JsGeolocation getGeolocation() /*-{
+ return this.geolocation;
+ }-*/;
+
+ public final native String getLanguage() /*-{
+ return this.language;
+ }-*/;
+
+ public final native JsDOMMimeTypeArray getMimeTypes() /*-{
+ return this.mimeTypes;
+ }-*/;
+
+ public final native boolean isOnLine() /*-{
+ return this.onLine;
+ }-*/;
+
+ public final native String getPlatform() /*-{
+ return this.platform;
+ }-*/;
+
+ public final native JsDOMPluginArray getPlugins() /*-{
+ return this.plugins;
+ }-*/;
+
+ public final native String getProduct() /*-{
+ return this.product;
+ }-*/;
+
+ public final native String getProductSub() /*-{
+ return this.productSub;
+ }-*/;
+
+ public final native String getUserAgent() /*-{
+ return this.userAgent;
+ }-*/;
+
+ public final native String getVendor() /*-{
+ return this.vendor;
+ }-*/;
+
+ public final native String getVendorSub() /*-{
+ return this.vendorSub;
+ }-*/;
+
+ public final native JsBatteryManager getWebkitBattery() /*-{
+ return this.webkitBattery;
+ }-*/;
+
+ public final native JsPointerLock getWebkitPointer() /*-{
+ return this.webkitPointer;
+ }-*/;
+
+ public final native void getStorageUpdates() /*-{
+ this.getStorageUpdates();
+ }-*/;
+
+ public final native boolean javaEnabled() /*-{
+ return this.javaEnabled();
+ }-*/;
+
+ public final native void registerProtocolHandler(String scheme, String url, String title) /*-{
+ this.registerProtocolHandler(scheme, url, title);
+ }-*/;
+
+ public final native void webkitGetUserMedia(Mappable options, NavigatorUserMediaSuccessCallback successCallback, NavigatorUserMediaErrorCallback errorCallback) /*-{
+ this.webkitGetUserMedia(options, $entry(successCallback.@elemental.html.NavigatorUserMediaSuccessCallback::onNavigatorUserMediaSuccessCallback(Lelemental/dom/LocalMediaStream;)).bind(successCallback), $entry(errorCallback.@elemental.html.NavigatorUserMediaErrorCallback::onNavigatorUserMediaErrorCallback(Lelemental/html/NavigatorUserMediaError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void webkitGetUserMedia(Mappable options, NavigatorUserMediaSuccessCallback successCallback) /*-{
+ this.webkitGetUserMedia(options, $entry(successCallback.@elemental.html.NavigatorUserMediaSuccessCallback::onNavigatorUserMediaSuccessCallback(Lelemental/dom/LocalMediaStream;)).bind(successCallback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsNavigatorUserMediaError.java b/elemental/src/elemental/js/html/JsNavigatorUserMediaError.java
new file mode 100644
index 0000000..dcc2d26
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsNavigatorUserMediaError.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.NavigatorUserMediaError;
+
+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 JsNavigatorUserMediaError extends JsElementalMixinBase implements NavigatorUserMediaError {
+ protected JsNavigatorUserMediaError() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsNotification.java b/elemental/src/elemental/js/html/JsNotification.java
new file mode 100644
index 0000000..5638d12
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsNotification.java
@@ -0,0 +1,115 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.NotificationPermissionCallback;
+import elemental.js.events.JsEvent;
+import elemental.html.Notification;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsNotification extends JsElementalMixinBase implements Notification {
+ protected JsNotification() {}
+
+ public final native String getDir() /*-{
+ return this.dir;
+ }-*/;
+
+ public final native void setDir(String param_dir) /*-{
+ this.dir = param_dir;
+ }-*/;
+
+ public final native EventListener getOnclick() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onclick);
+ }-*/;
+
+ public final native void setOnclick(EventListener listener) /*-{
+ this.onclick = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnclose() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onclose);
+ }-*/;
+
+ public final native void setOnclose(EventListener listener) /*-{
+ this.onclose = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndisplay() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondisplay);
+ }-*/;
+
+ public final native void setOndisplay(EventListener listener) /*-{
+ this.ondisplay = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnshow() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onshow);
+ }-*/;
+
+ public final native void setOnshow(EventListener listener) /*-{
+ this.onshow = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native String getReplaceId() /*-{
+ return this.replaceId;
+ }-*/;
+
+ public final native void setReplaceId(String param_replaceId) /*-{
+ this.replaceId = param_replaceId;
+ }-*/;
+
+ public final native String getTag() /*-{
+ return this.tag;
+ }-*/;
+
+ public final native void setTag(String param_tag) /*-{
+ this.tag = param_tag;
+ }-*/;
+
+ public final native void cancel() /*-{
+ this.cancel();
+ }-*/;
+
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+
+ public final native void show() /*-{
+ this.show();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsNotificationCenter.java b/elemental/src/elemental/js/html/JsNotificationCenter.java
new file mode 100644
index 0000000..bc3aba3
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsNotificationCenter.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.VoidCallback;
+import elemental.html.NotificationCenter;
+import elemental.html.Notification;
+
+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 JsNotificationCenter extends JsElementalMixinBase implements NotificationCenter {
+ protected JsNotificationCenter() {}
+
+ public final native int checkPermission() /*-{
+ return this.checkPermission();
+ }-*/;
+
+ public final native JsNotification createHTMLNotification(String url) /*-{
+ return this.createHTMLNotification(url);
+ }-*/;
+
+ public final native JsNotification createNotification(String iconUrl, String title, String body) /*-{
+ return this.createNotification(iconUrl, title, body);
+ }-*/;
+
+ public final native void requestPermission(VoidCallback callback) /*-{
+ this.requestPermission($entry(callback.@elemental.html.VoidCallback::onVoidCallback()).bind(callback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsOESStandardDerivatives.java b/elemental/src/elemental/js/html/JsOESStandardDerivatives.java
new file mode 100644
index 0000000..d1e237c
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOESStandardDerivatives.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.OESStandardDerivatives;
+
+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 JsOESStandardDerivatives extends JsElementalMixinBase implements OESStandardDerivatives {
+ protected JsOESStandardDerivatives() {}
+}
diff --git a/elemental/src/elemental/js/html/JsOESTextureFloat.java b/elemental/src/elemental/js/html/JsOESTextureFloat.java
new file mode 100644
index 0000000..31765e3
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOESTextureFloat.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.OESTextureFloat;
+
+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 JsOESTextureFloat extends JsElementalMixinBase implements OESTextureFloat {
+ protected JsOESTextureFloat() {}
+}
diff --git a/elemental/src/elemental/js/html/JsOESVertexArrayObject.java b/elemental/src/elemental/js/html/JsOESVertexArrayObject.java
new file mode 100644
index 0000000..3335cd9
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOESVertexArrayObject.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLVertexArrayObjectOES;
+import elemental.html.OESVertexArrayObject;
+
+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 JsOESVertexArrayObject extends JsElementalMixinBase implements OESVertexArrayObject {
+ protected JsOESVertexArrayObject() {}
+
+ public final native void bindVertexArrayOES(WebGLVertexArrayObjectOES arrayObject) /*-{
+ this.bindVertexArrayOES(arrayObject);
+ }-*/;
+
+ public final native JsWebGLVertexArrayObjectOES createVertexArrayOES() /*-{
+ return this.createVertexArrayOES();
+ }-*/;
+
+ public final native void deleteVertexArrayOES(WebGLVertexArrayObjectOES arrayObject) /*-{
+ this.deleteVertexArrayOES(arrayObject);
+ }-*/;
+
+ public final native boolean isVertexArrayOES(WebGLVertexArrayObjectOES arrayObject) /*-{
+ return this.isVertexArrayOES(arrayObject);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsOListElement.java b/elemental/src/elemental/js/html/JsOListElement.java
new file mode 100644
index 0000000..8390d52
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOListElement.java
@@ -0,0 +1,73 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.OListElement;
+
+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 JsOListElement extends JsElement implements OListElement {
+ protected JsOListElement() {}
+
+ public final native boolean isCompact() /*-{
+ return this.compact;
+ }-*/;
+
+ public final native void setCompact(boolean param_compact) /*-{
+ this.compact = param_compact;
+ }-*/;
+
+ public final native boolean isReversed() /*-{
+ return this.reversed;
+ }-*/;
+
+ public final native void setReversed(boolean param_reversed) /*-{
+ this.reversed = param_reversed;
+ }-*/;
+
+ public final native int getStart() /*-{
+ return this.start;
+ }-*/;
+
+ public final native void setStart(int param_start) /*-{
+ this.start = param_start;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsObjectElement.java b/elemental/src/elemental/js/html/JsObjectElement.java
new file mode 100644
index 0000000..f18257e
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsObjectElement.java
@@ -0,0 +1,207 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ValidityState;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.js.dom.JsDocument;
+import elemental.svg.SVGDocument;
+import elemental.html.FormElement;
+import elemental.html.ObjectElement;
+import elemental.js.svg.JsSVGDocument;
+import elemental.dom.Document;
+
+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 JsObjectElement extends JsElement implements ObjectElement {
+ protected JsObjectElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getArchive() /*-{
+ return this.archive;
+ }-*/;
+
+ public final native void setArchive(String param_archive) /*-{
+ this.archive = param_archive;
+ }-*/;
+
+ public final native String getBorder() /*-{
+ return this.border;
+ }-*/;
+
+ public final native void setBorder(String param_border) /*-{
+ this.border = param_border;
+ }-*/;
+
+ public final native String getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native void setCode(String param_code) /*-{
+ this.code = param_code;
+ }-*/;
+
+ public final native String getCodeBase() /*-{
+ return this.codeBase;
+ }-*/;
+
+ public final native void setCodeBase(String param_codeBase) /*-{
+ this.codeBase = param_codeBase;
+ }-*/;
+
+ public final native String getCodeType() /*-{
+ return this.codeType;
+ }-*/;
+
+ public final native void setCodeType(String param_codeType) /*-{
+ this.codeType = param_codeType;
+ }-*/;
+
+ public final native JsDocument getContentDocument() /*-{
+ return this.contentDocument;
+ }-*/;
+
+ public final native String getData() /*-{
+ return this.data;
+ }-*/;
+
+ public final native void setData(String param_data) /*-{
+ this.data = param_data;
+ }-*/;
+
+ public final native boolean isDeclare() /*-{
+ return this.declare;
+ }-*/;
+
+ public final native void setDeclare(boolean param_declare) /*-{
+ this.declare = param_declare;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native String getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(String param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native int getHspace() /*-{
+ return this.hspace;
+ }-*/;
+
+ public final native void setHspace(int param_hspace) /*-{
+ this.hspace = param_hspace;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getStandby() /*-{
+ return this.standby;
+ }-*/;
+
+ public final native void setStandby(String param_standby) /*-{
+ this.standby = param_standby;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+
+ public final native String getUseMap() /*-{
+ return this.useMap;
+ }-*/;
+
+ public final native void setUseMap(String param_useMap) /*-{
+ this.useMap = param_useMap;
+ }-*/;
+
+ public final native String getValidationMessage() /*-{
+ return this.validationMessage;
+ }-*/;
+
+ public final native JsValidityState getValidity() /*-{
+ return this.validity;
+ }-*/;
+
+ public final native int getVspace() /*-{
+ return this.vspace;
+ }-*/;
+
+ public final native void setVspace(int param_vspace) /*-{
+ this.vspace = param_vspace;
+ }-*/;
+
+ public final native String getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(String param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native boolean isWillValidate() /*-{
+ return this.willValidate;
+ }-*/;
+
+ public final native boolean checkValidity() /*-{
+ return this.checkValidity();
+ }-*/;
+
+ public final native JsSVGDocument getSVGDocument() /*-{
+ return this.getSVGDocument();
+ }-*/;
+
+ public final native void setCustomValidity(String error) /*-{
+ this.setCustomValidity(error);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsOfflineAudioCompletionEvent.java b/elemental/src/elemental/js/html/JsOfflineAudioCompletionEvent.java
new file mode 100644
index 0000000..9f95a8e
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOfflineAudioCompletionEvent.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.OfflineAudioCompletionEvent;
+import elemental.events.Event;
+import elemental.js.events.JsEvent;
+import elemental.html.AudioBuffer;
+
+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 JsOfflineAudioCompletionEvent extends JsEvent implements OfflineAudioCompletionEvent {
+ protected JsOfflineAudioCompletionEvent() {}
+
+ public final native JsAudioBuffer getRenderedBuffer() /*-{
+ return this.renderedBuffer;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsOperationNotAllowedException.java b/elemental/src/elemental/js/html/JsOperationNotAllowedException.java
new file mode 100644
index 0000000..cb098d8
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOperationNotAllowedException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.OperationNotAllowedException;
+
+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 JsOperationNotAllowedException extends JsElementalMixinBase implements OperationNotAllowedException {
+ protected JsOperationNotAllowedException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsOptGroupElement.java b/elemental/src/elemental/js/html/JsOptGroupElement.java
new file mode 100644
index 0000000..db30e67
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOptGroupElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.OptGroupElement;
+
+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 JsOptGroupElement extends JsElement implements OptGroupElement {
+ protected JsOptGroupElement() {}
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native String getLabel() /*-{
+ return this.label;
+ }-*/;
+
+ public final native void setLabel(String param_label) /*-{
+ this.label = param_label;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsOptionElement.java b/elemental/src/elemental/js/html/JsOptionElement.java
new file mode 100644
index 0000000..7747c91
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOptionElement.java
@@ -0,0 +1,98 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.OptionElement;
+import elemental.html.FormElement;
+
+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 JsOptionElement extends JsElement implements OptionElement {
+ protected JsOptionElement() {}
+
+ public final native boolean isDefaultSelected() /*-{
+ return this.defaultSelected;
+ }-*/;
+
+ public final native void setDefaultSelected(boolean param_defaultSelected) /*-{
+ this.defaultSelected = param_defaultSelected;
+ }-*/;
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native int getIndex() /*-{
+ return this.index;
+ }-*/;
+
+ public final native String getLabel() /*-{
+ return this.label;
+ }-*/;
+
+ public final native void setLabel(String param_label) /*-{
+ this.label = param_label;
+ }-*/;
+
+ public final native boolean isSelected() /*-{
+ return this.selected;
+ }-*/;
+
+ public final native void setSelected(boolean param_selected) /*-{
+ this.selected = param_selected;
+ }-*/;
+
+ public final native String getText() /*-{
+ return this.text;
+ }-*/;
+
+ public final native void setText(String param_text) /*-{
+ this.text = param_text;
+ }-*/;
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsOscillator.java b/elemental/src/elemental/js/html/JsOscillator.java
new file mode 100644
index 0000000..1c379c7
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOscillator.java
@@ -0,0 +1,74 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WaveTable;
+import elemental.html.AudioParam;
+import elemental.html.Oscillator;
+import elemental.html.AudioSourceNode;
+
+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 JsOscillator extends JsAudioSourceNode implements Oscillator {
+ protected JsOscillator() {}
+
+ public final native JsAudioParam getDetune() /*-{
+ return this.detune;
+ }-*/;
+
+ public final native JsAudioParam getFrequency() /*-{
+ return this.frequency;
+ }-*/;
+
+ public final native int getPlaybackState() /*-{
+ return this.playbackState;
+ }-*/;
+
+ public final native int getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(int param_type) /*-{
+ this.type = param_type;
+ }-*/;
+
+ public final native void noteOff(double when) /*-{
+ this.noteOff(when);
+ }-*/;
+
+ public final native void noteOn(double when) /*-{
+ this.noteOn(when);
+ }-*/;
+
+ public final native void setWaveTable(WaveTable waveTable) /*-{
+ this.setWaveTable(waveTable);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsOutputElement.java b/elemental/src/elemental/js/html/JsOutputElement.java
new file mode 100644
index 0000000..1b1cd93
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsOutputElement.java
@@ -0,0 +1,111 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ValidityState;
+import elemental.js.dom.JsElement;
+import elemental.js.dom.JsNodeList;
+import elemental.dom.Element;
+import elemental.html.OutputElement;
+import elemental.js.dom.JsDOMSettableTokenList;
+import elemental.html.FormElement;
+import elemental.dom.DOMSettableTokenList;
+import elemental.dom.NodeList;
+
+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 JsOutputElement extends JsElement implements OutputElement {
+ protected JsOutputElement() {}
+
+ public final native String getDefaultValue() /*-{
+ return this.defaultValue;
+ }-*/;
+
+ public final native void setDefaultValue(String param_defaultValue) /*-{
+ this.defaultValue = param_defaultValue;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native JsDOMSettableTokenList getHtmlFor() /*-{
+ return this.htmlFor;
+ }-*/;
+
+ public final native void setHtmlFor(DOMSettableTokenList param_htmlFor) /*-{
+ this.htmlFor = param_htmlFor;
+ }-*/;
+
+ public final native JsNodeList getLabels() /*-{
+ return this.labels;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native String getValidationMessage() /*-{
+ return this.validationMessage;
+ }-*/;
+
+ public final native JsValidityState getValidity() /*-{
+ return this.validity;
+ }-*/;
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+
+ public final native boolean isWillValidate() /*-{
+ return this.willValidate;
+ }-*/;
+
+ public final native boolean checkValidity() /*-{
+ return this.checkValidity();
+ }-*/;
+
+ public final native void setCustomValidity(String error) /*-{
+ this.setCustomValidity(error);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsPagePopupController.java b/elemental/src/elemental/js/html/JsPagePopupController.java
new file mode 100644
index 0000000..bde6421
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsPagePopupController.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.PagePopupController;
+
+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 JsPagePopupController extends JsElementalMixinBase implements PagePopupController {
+ protected JsPagePopupController() {}
+
+ public final native void setValueAndClosePopup(int numberValue, String stringValue) /*-{
+ this.setValueAndClosePopup(numberValue, stringValue);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsParagraphElement.java b/elemental/src/elemental/js/html/JsParagraphElement.java
new file mode 100644
index 0000000..f6b4fa7
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsParagraphElement.java
@@ -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 elemental.js.html;
+import elemental.html.ParagraphElement;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+
+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 JsParagraphElement extends JsElement implements ParagraphElement {
+ protected JsParagraphElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsParamElement.java b/elemental/src/elemental/js/html/JsParamElement.java
new file mode 100644
index 0000000..d24e203
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsParamElement.java
@@ -0,0 +1,73 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.ParamElement;
+
+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 JsParamElement extends JsElement implements ParamElement {
+ protected JsParamElement() {}
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+
+ public final native String getValueType() /*-{
+ return this.valueType;
+ }-*/;
+
+ public final native void setValueType(String param_valueType) /*-{
+ this.valueType = param_valueType;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsPeerConnection00.java b/elemental/src/elemental/js/html/JsPeerConnection00.java
new file mode 100644
index 0000000..e808a0b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsPeerConnection00.java
@@ -0,0 +1,154 @@
+/*
+ * 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 elemental.js.html;
+import elemental.dom.MediaStream;
+import elemental.html.SessionDescription;
+import elemental.html.PeerConnection00;
+import elemental.html.IceCandidate;
+import elemental.js.dom.JsMediaStreamList;
+import elemental.dom.MediaStreamList;
+import elemental.js.util.JsMappable;
+import elemental.util.Mappable;
+import elemental.events.EventListener;
+import elemental.js.events.JsEvent;
+import elemental.js.dom.JsMediaStream;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsPeerConnection00 extends JsElementalMixinBase implements PeerConnection00 {
+ protected JsPeerConnection00() {}
+
+ public final native int getIceState() /*-{
+ return this.iceState;
+ }-*/;
+
+ public final native JsSessionDescription getLocalDescription() /*-{
+ return this.localDescription;
+ }-*/;
+
+ public final native JsMediaStreamList getLocalStreams() /*-{
+ return this.localStreams;
+ }-*/;
+
+ public final native EventListener getOnaddstream() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onaddstream);
+ }-*/;
+
+ public final native void setOnaddstream(EventListener listener) /*-{
+ this.onaddstream = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnconnecting() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onconnecting);
+ }-*/;
+
+ public final native void setOnconnecting(EventListener listener) /*-{
+ this.onconnecting = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnopen() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onopen);
+ }-*/;
+
+ public final native void setOnopen(EventListener listener) /*-{
+ this.onopen = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnremovestream() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onremovestream);
+ }-*/;
+
+ public final native void setOnremovestream(EventListener listener) /*-{
+ this.onremovestream = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnstatechange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onstatechange);
+ }-*/;
+
+ public final native void setOnstatechange(EventListener listener) /*-{
+ this.onstatechange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native JsSessionDescription getRemoteDescription() /*-{
+ return this.remoteDescription;
+ }-*/;
+
+ public final native JsMediaStreamList getRemoteStreams() /*-{
+ return this.remoteStreams;
+ }-*/;
+
+ public final native void addStream(MediaStream stream) /*-{
+ this.addStream(stream);
+ }-*/;
+
+ public final native void addStream(MediaStream stream, Mappable mediaStreamHints) /*-{
+ this.addStream(stream, mediaStreamHints);
+ }-*/;
+
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+
+ public final native JsSessionDescription createAnswer(String offer) /*-{
+ return this.createAnswer(offer);
+ }-*/;
+
+ public final native JsSessionDescription createAnswer(String offer, Mappable mediaHints) /*-{
+ return this.createAnswer(offer, mediaHints);
+ }-*/;
+
+ public final native JsSessionDescription createOffer() /*-{
+ return this.createOffer();
+ }-*/;
+
+ public final native JsSessionDescription createOffer(Mappable mediaHints) /*-{
+ return this.createOffer(mediaHints);
+ }-*/;
+
+ public final native void processIceMessage(IceCandidate candidate) /*-{
+ this.processIceMessage(candidate);
+ }-*/;
+
+ public final native void removeStream(MediaStream stream) /*-{
+ this.removeStream(stream);
+ }-*/;
+
+ public final native void startIce() /*-{
+ this.startIce();
+ }-*/;
+
+ public final native void startIce(Mappable iceOptions) /*-{
+ this.startIce(iceOptions);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsPerformance.java b/elemental/src/elemental/js/html/JsPerformance.java
new file mode 100644
index 0000000..0e1e4c9
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsPerformance.java
@@ -0,0 +1,58 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.PerformanceTiming;
+import elemental.html.Performance;
+import elemental.html.MemoryInfo;
+import elemental.html.PerformanceNavigation;
+
+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 JsPerformance extends JsElementalMixinBase implements Performance {
+ protected JsPerformance() {}
+
+ public final native JsMemoryInfo getMemory() /*-{
+ return this.memory;
+ }-*/;
+
+ public final native JsPerformanceNavigation getNavigation() /*-{
+ return this.navigation;
+ }-*/;
+
+ public final native JsPerformanceTiming getTiming() /*-{
+ return this.timing;
+ }-*/;
+
+ public final native double webkitNow() /*-{
+ return this.webkitNow();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsPerformanceNavigation.java b/elemental/src/elemental/js/html/JsPerformanceNavigation.java
new file mode 100644
index 0000000..346684b
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsPerformanceNavigation.java
@@ -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 elemental.js.html;
+import elemental.html.PerformanceNavigation;
+
+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 JsPerformanceNavigation extends JsElementalMixinBase implements PerformanceNavigation {
+ protected JsPerformanceNavigation() {}
+
+ public final native int getRedirectCount() /*-{
+ return this.redirectCount;
+ }-*/;
+
+ public final native int getType() /*-{
+ return this.type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsPerformanceTiming.java b/elemental/src/elemental/js/html/JsPerformanceTiming.java
new file mode 100644
index 0000000..fa5f2a2
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsPerformanceTiming.java
@@ -0,0 +1,123 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.PerformanceTiming;
+
+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 JsPerformanceTiming extends JsElementalMixinBase implements PerformanceTiming {
+ protected JsPerformanceTiming() {}
+
+ public final native double getConnectEnd() /*-{
+ return this.connectEnd;
+ }-*/;
+
+ public final native double getConnectStart() /*-{
+ return this.connectStart;
+ }-*/;
+
+ public final native double getDomComplete() /*-{
+ return this.domComplete;
+ }-*/;
+
+ public final native double getDomContentLoadedEventEnd() /*-{
+ return this.domContentLoadedEventEnd;
+ }-*/;
+
+ public final native double getDomContentLoadedEventStart() /*-{
+ return this.domContentLoadedEventStart;
+ }-*/;
+
+ public final native double getDomInteractive() /*-{
+ return this.domInteractive;
+ }-*/;
+
+ public final native double getDomLoading() /*-{
+ return this.domLoading;
+ }-*/;
+
+ public final native double getDomainLookupEnd() /*-{
+ return this.domainLookupEnd;
+ }-*/;
+
+ public final native double getDomainLookupStart() /*-{
+ return this.domainLookupStart;
+ }-*/;
+
+ public final native double getFetchStart() /*-{
+ return this.fetchStart;
+ }-*/;
+
+ public final native double getLoadEventEnd() /*-{
+ return this.loadEventEnd;
+ }-*/;
+
+ public final native double getLoadEventStart() /*-{
+ return this.loadEventStart;
+ }-*/;
+
+ public final native double getNavigationStart() /*-{
+ return this.navigationStart;
+ }-*/;
+
+ public final native double getRedirectEnd() /*-{
+ return this.redirectEnd;
+ }-*/;
+
+ public final native double getRedirectStart() /*-{
+ return this.redirectStart;
+ }-*/;
+
+ public final native double getRequestStart() /*-{
+ return this.requestStart;
+ }-*/;
+
+ public final native double getResponseEnd() /*-{
+ return this.responseEnd;
+ }-*/;
+
+ public final native double getResponseStart() /*-{
+ return this.responseStart;
+ }-*/;
+
+ public final native double getSecureConnectionStart() /*-{
+ return this.secureConnectionStart;
+ }-*/;
+
+ public final native double getUnloadEventEnd() /*-{
+ return this.unloadEventEnd;
+ }-*/;
+
+ public final native double getUnloadEventStart() /*-{
+ return this.unloadEventStart;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsPoint.java b/elemental/src/elemental/js/html/JsPoint.java
new file mode 100644
index 0000000..3988cd2
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsPoint.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Point;
+
+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 JsPoint extends JsElementalMixinBase implements Point {
+ protected JsPoint() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsPreElement.java b/elemental/src/elemental/js/html/JsPreElement.java
new file mode 100644
index 0000000..aa11b11
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsPreElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.html.PreElement;
+import elemental.dom.Element;
+
+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 JsPreElement extends JsElement implements PreElement {
+ protected JsPreElement() {}
+
+ public final native int getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(int param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native boolean isWrap() /*-{
+ return this.wrap;
+ }-*/;
+
+ public final native void setWrap(boolean param_wrap) /*-{
+ this.wrap = param_wrap;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsProgressElement.java b/elemental/src/elemental/js/html/JsProgressElement.java
new file mode 100644
index 0000000..ac8dff3
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsProgressElement.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.html.ProgressElement;
+import elemental.js.dom.JsNodeList;
+import elemental.dom.NodeList;
+import elemental.dom.Element;
+
+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 JsProgressElement extends JsElement implements ProgressElement {
+ protected JsProgressElement() {}
+
+ public final native JsNodeList getLabels() /*-{
+ return this.labels;
+ }-*/;
+
+ public final native double getMax() /*-{
+ return this.max;
+ }-*/;
+
+ public final native void setMax(double param_max) /*-{
+ this.max = param_max;
+ }-*/;
+
+ public final native double getPosition() /*-{
+ return this.position;
+ }-*/;
+
+ public final native double getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(double param_value) /*-{
+ this.value = param_value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsQuoteElement.java b/elemental/src/elemental/js/html/JsQuoteElement.java
new file mode 100644
index 0000000..d02aa9a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsQuoteElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.QuoteElement;
+
+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 JsQuoteElement extends JsElement implements QuoteElement {
+ protected JsQuoteElement() {}
+
+ public final native String getCite() /*-{
+ return this.cite;
+ }-*/;
+
+ public final native void setCite(String param_cite) /*-{
+ this.cite = param_cite;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsRadioNodeList.java b/elemental/src/elemental/js/html/JsRadioNodeList.java
new file mode 100644
index 0000000..a74e549
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsRadioNodeList.java
@@ -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 elemental.js.html;
+import elemental.dom.NodeList;
+import elemental.js.dom.JsNodeList;
+import elemental.html.RadioNodeList;
+
+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 JsRadioNodeList extends JsNodeList implements RadioNodeList {
+ protected JsRadioNodeList() {}
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsRealtimeAnalyserNode.java b/elemental/src/elemental/js/html/JsRealtimeAnalyserNode.java
new file mode 100644
index 0000000..e4a2fb0
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsRealtimeAnalyserNode.java
@@ -0,0 +1,90 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Float32Array;
+import elemental.html.AudioNode;
+import elemental.html.RealtimeAnalyserNode;
+import elemental.html.Uint8Array;
+
+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 JsRealtimeAnalyserNode extends JsAudioNode implements RealtimeAnalyserNode {
+ protected JsRealtimeAnalyserNode() {}
+
+ public final native int getFftSize() /*-{
+ return this.fftSize;
+ }-*/;
+
+ public final native void setFftSize(int param_fftSize) /*-{
+ this.fftSize = param_fftSize;
+ }-*/;
+
+ public final native int getFrequencyBinCount() /*-{
+ return this.frequencyBinCount;
+ }-*/;
+
+ public final native float getMaxDecibels() /*-{
+ return this.maxDecibels;
+ }-*/;
+
+ public final native void setMaxDecibels(float param_maxDecibels) /*-{
+ this.maxDecibels = param_maxDecibels;
+ }-*/;
+
+ public final native float getMinDecibels() /*-{
+ return this.minDecibels;
+ }-*/;
+
+ public final native void setMinDecibels(float param_minDecibels) /*-{
+ this.minDecibels = param_minDecibels;
+ }-*/;
+
+ public final native float getSmoothingTimeConstant() /*-{
+ return this.smoothingTimeConstant;
+ }-*/;
+
+ public final native void setSmoothingTimeConstant(float param_smoothingTimeConstant) /*-{
+ this.smoothingTimeConstant = param_smoothingTimeConstant;
+ }-*/;
+
+ public final native void getByteFrequencyData(Uint8Array array) /*-{
+ this.getByteFrequencyData(array);
+ }-*/;
+
+ public final native void getByteTimeDomainData(Uint8Array array) /*-{
+ this.getByteTimeDomainData(array);
+ }-*/;
+
+ public final native void getFloatFrequencyData(Float32Array array) /*-{
+ this.getFloatFrequencyData(array);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSQLError.java b/elemental/src/elemental/js/html/JsSQLError.java
new file mode 100644
index 0000000..18956f7
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSQLError.java
@@ -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 elemental.js.html;
+import elemental.html.SQLError;
+
+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 JsSQLError extends JsElementalMixinBase implements SQLError {
+ protected JsSQLError() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSQLException.java b/elemental/src/elemental/js/html/JsSQLException.java
new file mode 100644
index 0000000..a09347c
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSQLException.java
@@ -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 elemental.js.html;
+import elemental.html.SQLException;
+
+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 JsSQLException extends JsElementalMixinBase implements SQLException {
+ protected JsSQLException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSQLResultSet.java b/elemental/src/elemental/js/html/JsSQLResultSet.java
new file mode 100644
index 0000000..8806af4
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSQLResultSet.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.SQLResultSetRowList;
+import elemental.html.SQLResultSet;
+
+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 JsSQLResultSet extends JsElementalMixinBase implements SQLResultSet {
+ protected JsSQLResultSet() {}
+
+ public final native int getInsertId() /*-{
+ return this.insertId;
+ }-*/;
+
+ public final native JsSQLResultSetRowList getRows() /*-{
+ return this.rows;
+ }-*/;
+
+ public final native int getRowsAffected() /*-{
+ return this.rowsAffected;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSQLResultSetRowList.java b/elemental/src/elemental/js/html/JsSQLResultSetRowList.java
new file mode 100644
index 0000000..2139793
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSQLResultSetRowList.java
@@ -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 elemental.js.html;
+import elemental.html.SQLResultSetRowList;
+
+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 JsSQLResultSetRowList extends JsElementalMixinBase implements SQLResultSetRowList {
+ protected JsSQLResultSetRowList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native Object item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSQLTransaction.java b/elemental/src/elemental/js/html/JsSQLTransaction.java
new file mode 100644
index 0000000..2d55f20
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSQLTransaction.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.SQLTransaction;
+
+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 JsSQLTransaction extends JsElementalMixinBase implements SQLTransaction {
+ protected JsSQLTransaction() {}
+}
diff --git a/elemental/src/elemental/js/html/JsSQLTransactionSync.java b/elemental/src/elemental/js/html/JsSQLTransactionSync.java
new file mode 100644
index 0000000..4d75872
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSQLTransactionSync.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.SQLTransactionSync;
+
+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 JsSQLTransactionSync extends JsElementalMixinBase implements SQLTransactionSync {
+ protected JsSQLTransactionSync() {}
+}
diff --git a/elemental/src/elemental/js/html/JsScreen.java b/elemental/src/elemental/js/html/JsScreen.java
new file mode 100644
index 0000000..ce4028f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsScreen.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Screen;
+
+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 JsScreen extends JsElementalMixinBase implements Screen {
+ protected JsScreen() {}
+
+ public final native int getAvailHeight() /*-{
+ return this.availHeight;
+ }-*/;
+
+ public final native int getAvailLeft() /*-{
+ return this.availLeft;
+ }-*/;
+
+ public final native int getAvailTop() /*-{
+ return this.availTop;
+ }-*/;
+
+ public final native int getAvailWidth() /*-{
+ return this.availWidth;
+ }-*/;
+
+ public final native int getColorDepth() /*-{
+ return this.colorDepth;
+ }-*/;
+
+ public final native int getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native int getPixelDepth() /*-{
+ return this.pixelDepth;
+ }-*/;
+
+ public final native int getWidth() /*-{
+ return this.width;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsScriptElement.java b/elemental/src/elemental/js/html/JsScriptElement.java
new file mode 100644
index 0000000..574b826
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsScriptElement.java
@@ -0,0 +1,113 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.ScriptElement;
+
+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 JsScriptElement extends JsElement implements ScriptElement {
+ protected JsScriptElement() {}
+
+ public final native boolean isAsync() /*-{
+ return this.async;
+ }-*/;
+
+ public final native void setAsync(boolean param_async) /*-{
+ this.async = param_async;
+ }-*/;
+
+ public final native String getCharset() /*-{
+ return this.charset;
+ }-*/;
+
+ public final native void setCharset(String param_charset) /*-{
+ this.charset = param_charset;
+ }-*/;
+
+ public final native String getCrossOrigin() /*-{
+ return this.crossOrigin;
+ }-*/;
+
+ public final native void setCrossOrigin(String param_crossOrigin) /*-{
+ this.crossOrigin = param_crossOrigin;
+ }-*/;
+
+ public final native boolean isDefer() /*-{
+ return this.defer;
+ }-*/;
+
+ public final native void setDefer(boolean param_defer) /*-{
+ this.defer = param_defer;
+ }-*/;
+
+ public final native String getEvent() /*-{
+ return this.event;
+ }-*/;
+
+ public final native void setEvent(String param_event) /*-{
+ this.event = param_event;
+ }-*/;
+
+ public final native String getHtmlFor() /*-{
+ return this.htmlFor;
+ }-*/;
+
+ public final native void setHtmlFor(String param_htmlFor) /*-{
+ this.htmlFor = param_htmlFor;
+ }-*/;
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native String getText() /*-{
+ return this.text;
+ }-*/;
+
+ public final native void setText(String param_text) /*-{
+ this.text = param_text;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSelectElement.java b/elemental/src/elemental/js/html/JsSelectElement.java
new file mode 100644
index 0000000..22f8548
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSelectElement.java
@@ -0,0 +1,182 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ValidityState;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.OptionElement;
+import elemental.html.HTMLOptionsCollection;
+import elemental.html.HTMLCollection;
+import elemental.html.FormElement;
+import elemental.js.dom.JsNode;
+import elemental.html.SelectElement;
+import elemental.js.dom.JsNodeList;
+import elemental.dom.NodeList;
+import elemental.dom.Node;
+
+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 JsSelectElement extends JsElement implements SelectElement {
+ protected JsSelectElement() {}
+
+ public final native boolean isAutofocus() /*-{
+ return this.autofocus;
+ }-*/;
+
+ public final native void setAutofocus(boolean param_autofocus) /*-{
+ this.autofocus = param_autofocus;
+ }-*/;
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native JsNodeList getLabels() /*-{
+ return this.labels;
+ }-*/;
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setLength(int param_length) /*-{
+ this.length = param_length;
+ }-*/;
+
+ public final native boolean isMultiple() /*-{
+ return this.multiple;
+ }-*/;
+
+ public final native void setMultiple(boolean param_multiple) /*-{
+ this.multiple = param_multiple;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native JsHTMLOptionsCollection getOptions() /*-{
+ return this.options;
+ }-*/;
+
+ public final native boolean isRequired() /*-{
+ return this.required;
+ }-*/;
+
+ public final native void setRequired(boolean param_required) /*-{
+ this.required = param_required;
+ }-*/;
+
+ public final native int getSelectedIndex() /*-{
+ return this.selectedIndex;
+ }-*/;
+
+ public final native void setSelectedIndex(int param_selectedIndex) /*-{
+ this.selectedIndex = param_selectedIndex;
+ }-*/;
+
+ public final native JsHTMLCollection getSelectedOptions() /*-{
+ return this.selectedOptions;
+ }-*/;
+
+ public final native int getSize() /*-{
+ return this.size;
+ }-*/;
+
+ public final native void setSize(int param_size) /*-{
+ this.size = param_size;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native String getValidationMessage() /*-{
+ return this.validationMessage;
+ }-*/;
+
+ public final native JsValidityState getValidity() /*-{
+ return this.validity;
+ }-*/;
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+
+ public final native boolean isWillValidate() /*-{
+ return this.willValidate;
+ }-*/;
+
+ public final native void add(Element element, Element before) /*-{
+ this.add(element, before);
+ }-*/;
+
+ public final native boolean checkValidity() /*-{
+ return this.checkValidity();
+ }-*/;
+
+ public final native JsNode item(int index) /*-{
+ return this.item(index);
+ }-*/;
+
+ public final native JsNode namedItem(String name) /*-{
+ return this.namedItem(name);
+ }-*/;
+
+ public final native void remove(int index) /*-{
+ this.remove(index);
+ }-*/;
+
+ public final native void remove(OptionElement option) /*-{
+ this.remove(option);
+ }-*/;
+
+ public final native void setCustomValidity(String error) /*-{
+ this.setCustomValidity(error);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSelection.java b/elemental/src/elemental/js/html/JsSelection.java
new file mode 100644
index 0000000..ae5c648
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSelection.java
@@ -0,0 +1,143 @@
+/*
+ * 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 elemental.js.html;
+import elemental.dom.Node;
+import elemental.ranges.Range;
+import elemental.html.Selection;
+import elemental.js.ranges.JsRange;
+import elemental.js.dom.JsNode;
+
+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 JsSelection extends JsElementalMixinBase implements Selection {
+ protected JsSelection() {}
+
+ public final native JsNode getAnchorNode() /*-{
+ return this.anchorNode;
+ }-*/;
+
+ public final native int getAnchorOffset() /*-{
+ return this.anchorOffset;
+ }-*/;
+
+ public final native JsNode getBaseNode() /*-{
+ return this.baseNode;
+ }-*/;
+
+ public final native int getBaseOffset() /*-{
+ return this.baseOffset;
+ }-*/;
+
+ public final native JsNode getExtentNode() /*-{
+ return this.extentNode;
+ }-*/;
+
+ public final native int getExtentOffset() /*-{
+ return this.extentOffset;
+ }-*/;
+
+ public final native JsNode getFocusNode() /*-{
+ return this.focusNode;
+ }-*/;
+
+ public final native int getFocusOffset() /*-{
+ return this.focusOffset;
+ }-*/;
+
+ public final native boolean isCollapsed() /*-{
+ return this.isCollapsed;
+ }-*/;
+
+ public final native int getRangeCount() /*-{
+ return this.rangeCount;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void addRange(Range range) /*-{
+ this.addRange(range);
+ }-*/;
+
+ public final native void collapse(Node node, int index) /*-{
+ this.collapse(node, index);
+ }-*/;
+
+ public final native void collapseToEnd() /*-{
+ this.collapseToEnd();
+ }-*/;
+
+ public final native void collapseToStart() /*-{
+ this.collapseToStart();
+ }-*/;
+
+ public final native boolean containsNode(Node node, boolean allowPartial) /*-{
+ return this.containsNode(node, allowPartial);
+ }-*/;
+
+ public final native void deleteFromDocument() /*-{
+ this.deleteFromDocument();
+ }-*/;
+
+ public final native void empty() /*-{
+ this.empty();
+ }-*/;
+
+ public final native void extend(Node node, int offset) /*-{
+ this.extend(node, offset);
+ }-*/;
+
+ public final native JsRange getRangeAt(int index) /*-{
+ return this.getRangeAt(index);
+ }-*/;
+
+ public final native void modify(String alter, String direction, String granularity) /*-{
+ this.modify(alter, direction, granularity);
+ }-*/;
+
+ public final native void removeAllRanges() /*-{
+ this.removeAllRanges();
+ }-*/;
+
+ public final native void selectAllChildren(Node node) /*-{
+ this.selectAllChildren(node);
+ }-*/;
+
+ public final native void setBaseAndExtent(Node baseNode, int baseOffset, Node extentNode, int extentOffset) /*-{
+ this.setBaseAndExtent(baseNode, baseOffset, extentNode, extentOffset);
+ }-*/;
+
+ public final native void setPosition(Node node, int offset) /*-{
+ this.setPosition(node, offset);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSessionDescription.java b/elemental/src/elemental/js/html/JsSessionDescription.java
new file mode 100644
index 0000000..c1807bf
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSessionDescription.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.SessionDescription;
+import elemental.html.IceCandidate;
+
+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 JsSessionDescription extends JsElementalMixinBase implements SessionDescription {
+ protected JsSessionDescription() {}
+
+ public final native void addCandidate(IceCandidate candidate) /*-{
+ this.addCandidate(candidate);
+ }-*/;
+
+ public final native String toSdp() /*-{
+ return this.toSdp();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsShadowElement.java b/elemental/src/elemental/js/html/JsShadowElement.java
new file mode 100644
index 0000000..30c8694
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsShadowElement.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.html.ShadowElement;
+import elemental.dom.Element;
+
+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 JsShadowElement extends JsElement implements ShadowElement {
+ protected JsShadowElement() {}
+}
diff --git a/elemental/src/elemental/js/html/JsSharedWorker.java b/elemental/src/elemental/js/html/JsSharedWorker.java
new file mode 100644
index 0000000..93e90f9
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSharedWorker.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.events.JsMessagePort;
+import elemental.events.MessagePort;
+import elemental.html.AbstractWorker;
+import elemental.html.SharedWorker;
+
+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 JsSharedWorker extends JsAbstractWorker implements SharedWorker {
+ protected JsSharedWorker() {}
+
+ public final native JsMessagePort getPort() /*-{
+ return this.port;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSharedWorkerGlobalScope.java b/elemental/src/elemental/js/html/JsSharedWorkerGlobalScope.java
new file mode 100644
index 0000000..3665a8d
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSharedWorkerGlobalScope.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WorkerGlobalScope;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+import elemental.html.SharedWorkerGlobalScope;
+
+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 JsSharedWorkerGlobalScope extends JsWorkerGlobalScope implements SharedWorkerGlobalScope {
+ protected JsSharedWorkerGlobalScope() {}
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native EventListener getOnconnect() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onconnect);
+ }-*/;
+
+ public final native void setOnconnect(EventListener listener) /*-{
+ this.onconnect = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;}
diff --git a/elemental/src/elemental/js/html/JsSourceElement.java b/elemental/src/elemental/js/html/JsSourceElement.java
new file mode 100644
index 0000000..42732dd
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSourceElement.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.SourceElement;
+
+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 JsSourceElement extends JsElement implements SourceElement {
+ protected JsSourceElement() {}
+
+ public final native String getMedia() /*-{
+ return this.media;
+ }-*/;
+
+ public final native void setMedia(String param_media) /*-{
+ this.media = param_media;
+ }-*/;
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsSpanElement.java b/elemental/src/elemental/js/html/JsSpanElement.java
new file mode 100644
index 0000000..53724ee
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsSpanElement.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.SpanElement;
+
+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 JsSpanElement extends JsElement implements SpanElement {
+ protected JsSpanElement() {}
+}
diff --git a/elemental/src/elemental/js/html/JsStorage.java b/elemental/src/elemental/js/html/JsStorage.java
new file mode 100644
index 0000000..39d2e71
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsStorage.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Storage;
+
+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 JsStorage extends JsElementalMixinBase implements Storage {
+ protected JsStorage() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void clear() /*-{
+ this.clear();
+ }-*/;
+
+ public final native String getItem(String key) /*-{
+ return this.getItem(key);
+ }-*/;
+
+ public final native String key(int index) /*-{
+ return this.key(index);
+ }-*/;
+
+ public final native void removeItem(String key) /*-{
+ this.removeItem(key);
+ }-*/;
+
+ public final native void setItem(String key, String data) /*-{
+ this.setItem(key, data);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsStorageEvent.java b/elemental/src/elemental/js/html/JsStorageEvent.java
new file mode 100644
index 0000000..beeae23
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsStorageEvent.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Storage;
+import elemental.html.StorageEvent;
+import elemental.js.events.JsEvent;
+import elemental.events.Event;
+
+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 JsStorageEvent extends JsEvent implements StorageEvent {
+ protected JsStorageEvent() {}
+
+ public final native String getKey() /*-{
+ return this.key;
+ }-*/;
+
+ public final native String getNewValue() /*-{
+ return this.newValue;
+ }-*/;
+
+ public final native String getOldValue() /*-{
+ return this.oldValue;
+ }-*/;
+
+ public final native JsStorage getStorageArea() /*-{
+ return this.storageArea;
+ }-*/;
+
+ public final native String getUrl() /*-{
+ return this.url;
+ }-*/;
+
+ public final native void initStorageEvent(String typeArg, boolean canBubbleArg, boolean cancelableArg, String keyArg, String oldValueArg, String newValueArg, String urlArg, Storage storageAreaArg) /*-{
+ this.initStorageEvent(typeArg, canBubbleArg, cancelableArg, keyArg, oldValueArg, newValueArg, urlArg, storageAreaArg);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsStorageInfo.java b/elemental/src/elemental/js/html/JsStorageInfo.java
new file mode 100644
index 0000000..82de8c5
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsStorageInfo.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.StorageInfo;
+import elemental.html.StorageInfoQuotaCallback;
+import elemental.html.StorageInfoUsageCallback;
+import elemental.html.StorageInfoErrorCallback;
+
+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 JsStorageInfo extends JsElementalMixinBase implements StorageInfo {
+ protected JsStorageInfo() {}
+
+ public final native void queryUsageAndQuota(int storageType) /*-{
+ this.queryUsageAndQuota(storageType);
+ }-*/;
+
+ public final native void queryUsageAndQuota(int storageType, StorageInfoUsageCallback usageCallback) /*-{
+ this.queryUsageAndQuota(storageType, $entry(usageCallback.@elemental.html.StorageInfoUsageCallback::onStorageInfoUsageCallback(DD)).bind(usageCallback));
+ }-*/;
+
+ public final native void queryUsageAndQuota(int storageType, StorageInfoUsageCallback usageCallback, StorageInfoErrorCallback errorCallback) /*-{
+ this.queryUsageAndQuota(storageType, $entry(usageCallback.@elemental.html.StorageInfoUsageCallback::onStorageInfoUsageCallback(DD)).bind(usageCallback), $entry(errorCallback.@elemental.html.StorageInfoErrorCallback::onStorageInfoErrorCallback(Lelemental/dom/DOMException;)).bind(errorCallback));
+ }-*/;
+
+ public final native void requestQuota(int storageType, double newQuotaInBytes) /*-{
+ this.requestQuota(storageType, newQuotaInBytes);
+ }-*/;
+
+ public final native void requestQuota(int storageType, double newQuotaInBytes, StorageInfoQuotaCallback quotaCallback) /*-{
+ this.requestQuota(storageType, newQuotaInBytes, $entry(quotaCallback.@elemental.html.StorageInfoQuotaCallback::onStorageInfoQuotaCallback(D)).bind(quotaCallback));
+ }-*/;
+
+ public final native void requestQuota(int storageType, double newQuotaInBytes, StorageInfoQuotaCallback quotaCallback, StorageInfoErrorCallback errorCallback) /*-{
+ this.requestQuota(storageType, newQuotaInBytes, $entry(quotaCallback.@elemental.html.StorageInfoQuotaCallback::onStorageInfoQuotaCallback(D)).bind(quotaCallback), $entry(errorCallback.@elemental.html.StorageInfoErrorCallback::onStorageInfoErrorCallback(Lelemental/dom/DOMException;)).bind(errorCallback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsStyleElement.java b/elemental/src/elemental/js/html/JsStyleElement.java
new file mode 100644
index 0000000..f12c913
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsStyleElement.java
@@ -0,0 +1,79 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.stylesheets.JsStyleSheet;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.StyleElement;
+import elemental.stylesheets.StyleSheet;
+
+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 JsStyleElement extends JsElement implements StyleElement {
+ protected JsStyleElement() {}
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native String getMedia() /*-{
+ return this.media;
+ }-*/;
+
+ public final native void setMedia(String param_media) /*-{
+ this.media = param_media;
+ }-*/;
+
+ public final native boolean isScoped() /*-{
+ return this.scoped;
+ }-*/;
+
+ public final native void setScoped(boolean param_scoped) /*-{
+ this.scoped = param_scoped;
+ }-*/;
+
+ public final native JsStyleSheet getSheet() /*-{
+ return this.sheet;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsStyleMedia.java b/elemental/src/elemental/js/html/JsStyleMedia.java
new file mode 100644
index 0000000..2498cc1
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsStyleMedia.java
@@ -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 elemental.js.html;
+import elemental.html.StyleMedia;
+
+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 JsStyleMedia extends JsElementalMixinBase implements StyleMedia {
+ protected JsStyleMedia() {}
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native boolean matchMedium(String mediaquery) /*-{
+ return this.matchMedium(mediaquery);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTableCaptionElement.java b/elemental/src/elemental/js/html/JsTableCaptionElement.java
new file mode 100644
index 0000000..236f586
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTableCaptionElement.java
@@ -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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.html.TableCaptionElement;
+import elemental.dom.Element;
+
+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 JsTableCaptionElement extends JsElement implements TableCaptionElement {
+ protected JsTableCaptionElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTableCellElement.java b/elemental/src/elemental/js/html/JsTableCellElement.java
new file mode 100644
index 0000000..a5a2a2f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTableCellElement.java
@@ -0,0 +1,157 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.TableCellElement;
+
+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 JsTableCellElement extends JsElement implements TableCellElement {
+ protected JsTableCellElement() {}
+
+ public final native String getAbbr() /*-{
+ return this.abbr;
+ }-*/;
+
+ public final native void setAbbr(String param_abbr) /*-{
+ this.abbr = param_abbr;
+ }-*/;
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getAxis() /*-{
+ return this.axis;
+ }-*/;
+
+ public final native void setAxis(String param_axis) /*-{
+ this.axis = param_axis;
+ }-*/;
+
+ public final native String getBgColor() /*-{
+ return this.bgColor;
+ }-*/;
+
+ public final native void setBgColor(String param_bgColor) /*-{
+ this.bgColor = param_bgColor;
+ }-*/;
+
+ public final native int getCellIndex() /*-{
+ return this.cellIndex;
+ }-*/;
+
+ public final native String getCh() /*-{
+ return this.ch;
+ }-*/;
+
+ public final native void setCh(String param_ch) /*-{
+ this.ch = param_ch;
+ }-*/;
+
+ public final native String getChOff() /*-{
+ return this.chOff;
+ }-*/;
+
+ public final native void setChOff(String param_chOff) /*-{
+ this.chOff = param_chOff;
+ }-*/;
+
+ public final native int getColSpan() /*-{
+ return this.colSpan;
+ }-*/;
+
+ public final native void setColSpan(int param_colSpan) /*-{
+ this.colSpan = param_colSpan;
+ }-*/;
+
+ public final native String getHeaders() /*-{
+ return this.headers;
+ }-*/;
+
+ public final native void setHeaders(String param_headers) /*-{
+ this.headers = param_headers;
+ }-*/;
+
+ public final native String getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(String param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native boolean isNoWrap() /*-{
+ return this.noWrap;
+ }-*/;
+
+ public final native void setNoWrap(boolean param_noWrap) /*-{
+ this.noWrap = param_noWrap;
+ }-*/;
+
+ public final native int getRowSpan() /*-{
+ return this.rowSpan;
+ }-*/;
+
+ public final native void setRowSpan(int param_rowSpan) /*-{
+ this.rowSpan = param_rowSpan;
+ }-*/;
+
+ public final native String getScope() /*-{
+ return this.scope;
+ }-*/;
+
+ public final native void setScope(String param_scope) /*-{
+ this.scope = param_scope;
+ }-*/;
+
+ public final native String getVAlign() /*-{
+ return this.vAlign;
+ }-*/;
+
+ public final native void setVAlign(String param_vAlign) /*-{
+ this.vAlign = param_vAlign;
+ }-*/;
+
+ public final native String getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(String param_width) /*-{
+ this.width = param_width;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTableColElement.java b/elemental/src/elemental/js/html/JsTableColElement.java
new file mode 100644
index 0000000..ec46cae
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTableColElement.java
@@ -0,0 +1,89 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.html.TableColElement;
+import elemental.dom.Element;
+
+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 JsTableColElement extends JsElement implements TableColElement {
+ protected JsTableColElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getCh() /*-{
+ return this.ch;
+ }-*/;
+
+ public final native void setCh(String param_ch) /*-{
+ this.ch = param_ch;
+ }-*/;
+
+ public final native String getChOff() /*-{
+ return this.chOff;
+ }-*/;
+
+ public final native void setChOff(String param_chOff) /*-{
+ this.chOff = param_chOff;
+ }-*/;
+
+ public final native int getSpan() /*-{
+ return this.span;
+ }-*/;
+
+ public final native void setSpan(int param_span) /*-{
+ this.span = param_span;
+ }-*/;
+
+ public final native String getVAlign() /*-{
+ return this.vAlign;
+ }-*/;
+
+ public final native void setVAlign(String param_vAlign) /*-{
+ this.vAlign = param_vAlign;
+ }-*/;
+
+ public final native String getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(String param_width) /*-{
+ this.width = param_width;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTableElement.java b/elemental/src/elemental/js/html/JsTableElement.java
new file mode 100644
index 0000000..858fba8
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTableElement.java
@@ -0,0 +1,184 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.HTMLCollection;
+import elemental.html.TableCaptionElement;
+import elemental.html.TableElement;
+import elemental.html.TableSectionElement;
+
+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 JsTableElement extends JsElement implements TableElement {
+ protected JsTableElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getBgColor() /*-{
+ return this.bgColor;
+ }-*/;
+
+ public final native void setBgColor(String param_bgColor) /*-{
+ this.bgColor = param_bgColor;
+ }-*/;
+
+ public final native String getBorder() /*-{
+ return this.border;
+ }-*/;
+
+ public final native void setBorder(String param_border) /*-{
+ this.border = param_border;
+ }-*/;
+
+ public final native JsTableCaptionElement getCaption() /*-{
+ return this.caption;
+ }-*/;
+
+ public final native void setCaption(TableCaptionElement param_caption) /*-{
+ this.caption = param_caption;
+ }-*/;
+
+ public final native String getCellPadding() /*-{
+ return this.cellPadding;
+ }-*/;
+
+ public final native void setCellPadding(String param_cellPadding) /*-{
+ this.cellPadding = param_cellPadding;
+ }-*/;
+
+ public final native String getCellSpacing() /*-{
+ return this.cellSpacing;
+ }-*/;
+
+ public final native void setCellSpacing(String param_cellSpacing) /*-{
+ this.cellSpacing = param_cellSpacing;
+ }-*/;
+
+ public final native String getFrame() /*-{
+ return this.frame;
+ }-*/;
+
+ public final native void setFrame(String param_frame) /*-{
+ this.frame = param_frame;
+ }-*/;
+
+ public final native JsHTMLCollection getRows() /*-{
+ return this.rows;
+ }-*/;
+
+ public final native String getRules() /*-{
+ return this.rules;
+ }-*/;
+
+ public final native void setRules(String param_rules) /*-{
+ this.rules = param_rules;
+ }-*/;
+
+ public final native String getSummary() /*-{
+ return this.summary;
+ }-*/;
+
+ public final native void setSummary(String param_summary) /*-{
+ this.summary = param_summary;
+ }-*/;
+
+ public final native JsHTMLCollection getTBodies() /*-{
+ return this.tBodies;
+ }-*/;
+
+ public final native JsTableSectionElement getTFoot() /*-{
+ return this.tFoot;
+ }-*/;
+
+ public final native void setTFoot(TableSectionElement param_tFoot) /*-{
+ this.tFoot = param_tFoot;
+ }-*/;
+
+ public final native JsTableSectionElement getTHead() /*-{
+ return this.tHead;
+ }-*/;
+
+ public final native void setTHead(TableSectionElement param_tHead) /*-{
+ this.tHead = param_tHead;
+ }-*/;
+
+ public final native String getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(String param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native JsElement createCaption() /*-{
+ return this.createCaption();
+ }-*/;
+
+ public final native JsElement createTBody() /*-{
+ return this.createTBody();
+ }-*/;
+
+ public final native JsElement createTFoot() /*-{
+ return this.createTFoot();
+ }-*/;
+
+ public final native JsElement createTHead() /*-{
+ return this.createTHead();
+ }-*/;
+
+ public final native void deleteCaption() /*-{
+ this.deleteCaption();
+ }-*/;
+
+ public final native void deleteRow(int index) /*-{
+ this.deleteRow(index);
+ }-*/;
+
+ public final native void deleteTFoot() /*-{
+ this.deleteTFoot();
+ }-*/;
+
+ public final native void deleteTHead() /*-{
+ this.deleteTHead();
+ }-*/;
+
+ public final native JsElement insertRow(int index) /*-{
+ return this.insertRow(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTableRowElement.java b/elemental/src/elemental/js/html/JsTableRowElement.java
new file mode 100644
index 0000000..c5c319a
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTableRowElement.java
@@ -0,0 +1,102 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.TableRowElement;
+import elemental.html.HTMLCollection;
+
+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 JsTableRowElement extends JsElement implements TableRowElement {
+ protected JsTableRowElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getBgColor() /*-{
+ return this.bgColor;
+ }-*/;
+
+ public final native void setBgColor(String param_bgColor) /*-{
+ this.bgColor = param_bgColor;
+ }-*/;
+
+ public final native JsHTMLCollection getCells() /*-{
+ return this.cells;
+ }-*/;
+
+ public final native String getCh() /*-{
+ return this.ch;
+ }-*/;
+
+ public final native void setCh(String param_ch) /*-{
+ this.ch = param_ch;
+ }-*/;
+
+ public final native String getChOff() /*-{
+ return this.chOff;
+ }-*/;
+
+ public final native void setChOff(String param_chOff) /*-{
+ this.chOff = param_chOff;
+ }-*/;
+
+ public final native int getRowIndex() /*-{
+ return this.rowIndex;
+ }-*/;
+
+ public final native int getSectionRowIndex() /*-{
+ return this.sectionRowIndex;
+ }-*/;
+
+ public final native String getVAlign() /*-{
+ return this.vAlign;
+ }-*/;
+
+ public final native void setVAlign(String param_vAlign) /*-{
+ this.vAlign = param_vAlign;
+ }-*/;
+
+ public final native void deleteCell(int index) /*-{
+ this.deleteCell(index);
+ }-*/;
+
+ public final native JsElement insertCell(int index) /*-{
+ return this.insertCell(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTableSectionElement.java b/elemental/src/elemental/js/html/JsTableSectionElement.java
new file mode 100644
index 0000000..9fc7f49
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTableSectionElement.java
@@ -0,0 +1,86 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.TableSectionElement;
+import elemental.html.HTMLCollection;
+
+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 JsTableSectionElement extends JsElement implements TableSectionElement {
+ protected JsTableSectionElement() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native String getCh() /*-{
+ return this.ch;
+ }-*/;
+
+ public final native void setCh(String param_ch) /*-{
+ this.ch = param_ch;
+ }-*/;
+
+ public final native String getChOff() /*-{
+ return this.chOff;
+ }-*/;
+
+ public final native void setChOff(String param_chOff) /*-{
+ this.chOff = param_chOff;
+ }-*/;
+
+ public final native JsHTMLCollection getRows() /*-{
+ return this.rows;
+ }-*/;
+
+ public final native String getVAlign() /*-{
+ return this.vAlign;
+ }-*/;
+
+ public final native void setVAlign(String param_vAlign) /*-{
+ this.vAlign = param_vAlign;
+ }-*/;
+
+ public final native void deleteRow(int index) /*-{
+ this.deleteRow(index);
+ }-*/;
+
+ public final native JsElement insertRow(int index) /*-{
+ return this.insertRow(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTextAreaElement.java b/elemental/src/elemental/js/html/JsTextAreaElement.java
new file mode 100644
index 0000000..b698a23
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTextAreaElement.java
@@ -0,0 +1,221 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ValidityState;
+import elemental.js.dom.JsElement;
+import elemental.html.TextAreaElement;
+import elemental.dom.Element;
+import elemental.html.FormElement;
+import elemental.js.dom.JsNodeList;
+import elemental.dom.NodeList;
+
+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 JsTextAreaElement extends JsElement implements TextAreaElement {
+ protected JsTextAreaElement() {}
+
+ public final native boolean isAutofocus() /*-{
+ return this.autofocus;
+ }-*/;
+
+ public final native void setAutofocus(boolean param_autofocus) /*-{
+ this.autofocus = param_autofocus;
+ }-*/;
+
+ public final native int getCols() /*-{
+ return this.cols;
+ }-*/;
+
+ public final native void setCols(int param_cols) /*-{
+ this.cols = param_cols;
+ }-*/;
+
+ public final native String getDefaultValue() /*-{
+ return this.defaultValue;
+ }-*/;
+
+ public final native void setDefaultValue(String param_defaultValue) /*-{
+ this.defaultValue = param_defaultValue;
+ }-*/;
+
+ public final native String getDirName() /*-{
+ return this.dirName;
+ }-*/;
+
+ public final native void setDirName(String param_dirName) /*-{
+ this.dirName = param_dirName;
+ }-*/;
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native JsFormElement getForm() /*-{
+ return this.form;
+ }-*/;
+
+ public final native JsNodeList getLabels() /*-{
+ return this.labels;
+ }-*/;
+
+ public final native int getMaxLength() /*-{
+ return this.maxLength;
+ }-*/;
+
+ public final native void setMaxLength(int param_maxLength) /*-{
+ this.maxLength = param_maxLength;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native String getPlaceholder() /*-{
+ return this.placeholder;
+ }-*/;
+
+ public final native void setPlaceholder(String param_placeholder) /*-{
+ this.placeholder = param_placeholder;
+ }-*/;
+
+ public final native boolean isReadOnly() /*-{
+ return this.readOnly;
+ }-*/;
+
+ public final native void setReadOnly(boolean param_readOnly) /*-{
+ this.readOnly = param_readOnly;
+ }-*/;
+
+ public final native boolean isRequired() /*-{
+ return this.required;
+ }-*/;
+
+ public final native void setRequired(boolean param_required) /*-{
+ this.required = param_required;
+ }-*/;
+
+ public final native int getRows() /*-{
+ return this.rows;
+ }-*/;
+
+ public final native void setRows(int param_rows) /*-{
+ this.rows = param_rows;
+ }-*/;
+
+ public final native String getSelectionDirection() /*-{
+ return this.selectionDirection;
+ }-*/;
+
+ public final native void setSelectionDirection(String param_selectionDirection) /*-{
+ this.selectionDirection = param_selectionDirection;
+ }-*/;
+
+ public final native int getSelectionEnd() /*-{
+ return this.selectionEnd;
+ }-*/;
+
+ public final native void setSelectionEnd(int param_selectionEnd) /*-{
+ this.selectionEnd = param_selectionEnd;
+ }-*/;
+
+ public final native int getSelectionStart() /*-{
+ return this.selectionStart;
+ }-*/;
+
+ public final native void setSelectionStart(int param_selectionStart) /*-{
+ this.selectionStart = param_selectionStart;
+ }-*/;
+
+ public final native int getTextLength() /*-{
+ return this.textLength;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native String getValidationMessage() /*-{
+ return this.validationMessage;
+ }-*/;
+
+ public final native JsValidityState getValidity() /*-{
+ return this.validity;
+ }-*/;
+
+ public final native String getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(String param_value) /*-{
+ this.value = param_value;
+ }-*/;
+
+ public final native boolean isWillValidate() /*-{
+ return this.willValidate;
+ }-*/;
+
+ public final native String getWrap() /*-{
+ return this.wrap;
+ }-*/;
+
+ public final native void setWrap(String param_wrap) /*-{
+ this.wrap = param_wrap;
+ }-*/;
+
+ public final native boolean checkValidity() /*-{
+ return this.checkValidity();
+ }-*/;
+
+ public final native void select() /*-{
+ this.select();
+ }-*/;
+
+ public final native void setCustomValidity(String error) /*-{
+ this.setCustomValidity(error);
+ }-*/;
+
+ public final native void setSelectionRange(int start, int end) /*-{
+ this.setSelectionRange(start, end);
+ }-*/;
+
+ public final native void setSelectionRange(int start, int end, String direction) /*-{
+ this.setSelectionRange(start, end, direction);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTextMetrics.java b/elemental/src/elemental/js/html/JsTextMetrics.java
new file mode 100644
index 0000000..8325139
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTextMetrics.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.TextMetrics;
+
+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 JsTextMetrics extends JsElementalMixinBase implements TextMetrics {
+ protected JsTextMetrics() {}
+
+ public final native float getWidth() /*-{
+ return this.width;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTextTrack.java b/elemental/src/elemental/js/html/JsTextTrack.java
new file mode 100644
index 0000000..a12c2f2
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTextTrack.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.TextTrack;
+import elemental.html.TextTrackCueList;
+import elemental.js.events.JsEvent;
+import elemental.events.EventListener;
+import elemental.html.TextTrackCue;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsTextTrack extends JsElementalMixinBase implements TextTrack {
+ protected JsTextTrack() {}
+
+ public final native JsTextTrackCueList getActiveCues() /*-{
+ return this.activeCues;
+ }-*/;
+
+ public final native JsTextTrackCueList getCues() /*-{
+ return this.cues;
+ }-*/;
+
+ public final native String getKind() /*-{
+ return this.kind;
+ }-*/;
+
+ public final native String getLabel() /*-{
+ return this.label;
+ }-*/;
+
+ public final native String getLanguage() /*-{
+ return this.language;
+ }-*/;
+
+ public final native int getMode() /*-{
+ return this.mode;
+ }-*/;
+
+ public final native void setMode(int param_mode) /*-{
+ this.mode = param_mode;
+ }-*/;
+
+ public final native EventListener getOncuechange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncuechange);
+ }-*/;
+
+ public final native void setOncuechange(EventListener listener) /*-{
+ this.oncuechange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native void addCue(TextTrackCue cue) /*-{
+ this.addCue(cue);
+ }-*/;
+
+ public final native void removeCue(TextTrackCue cue) /*-{
+ this.removeCue(cue);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTextTrackCue.java b/elemental/src/elemental/js/html/JsTextTrackCue.java
new file mode 100644
index 0000000..0d632c1
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTextTrackCue.java
@@ -0,0 +1,156 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.TextTrack;
+import elemental.js.dom.JsDocumentFragment;
+import elemental.js.events.JsEvent;
+import elemental.dom.DocumentFragment;
+import elemental.events.EventListener;
+import elemental.html.TextTrackCue;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsTextTrackCue extends JsElementalMixinBase implements TextTrackCue {
+ protected JsTextTrackCue() {}
+
+ public final native String getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(String param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native double getEndTime() /*-{
+ return this.endTime;
+ }-*/;
+
+ public final native void setEndTime(double param_endTime) /*-{
+ this.endTime = param_endTime;
+ }-*/;
+
+ public final native String getId() /*-{
+ return this.id;
+ }-*/;
+
+ public final native void setId(String param_id) /*-{
+ this.id = param_id;
+ }-*/;
+
+ public final native int getLine() /*-{
+ return this.line;
+ }-*/;
+
+ public final native void setLine(int param_line) /*-{
+ this.line = param_line;
+ }-*/;
+
+ public final native EventListener getOnenter() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onenter);
+ }-*/;
+
+ public final native void setOnenter(EventListener listener) /*-{
+ this.onenter = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnexit() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onexit);
+ }-*/;
+
+ public final native void setOnexit(EventListener listener) /*-{
+ this.onexit = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native boolean isPauseOnExit() /*-{
+ return this.pauseOnExit;
+ }-*/;
+
+ public final native void setPauseOnExit(boolean param_pauseOnExit) /*-{
+ this.pauseOnExit = param_pauseOnExit;
+ }-*/;
+
+ public final native int getPosition() /*-{
+ return this.position;
+ }-*/;
+
+ public final native void setPosition(int param_position) /*-{
+ this.position = param_position;
+ }-*/;
+
+ public final native int getSize() /*-{
+ return this.size;
+ }-*/;
+
+ public final native void setSize(int param_size) /*-{
+ this.size = param_size;
+ }-*/;
+
+ public final native boolean isSnapToLines() /*-{
+ return this.snapToLines;
+ }-*/;
+
+ public final native void setSnapToLines(boolean param_snapToLines) /*-{
+ this.snapToLines = param_snapToLines;
+ }-*/;
+
+ public final native double getStartTime() /*-{
+ return this.startTime;
+ }-*/;
+
+ public final native void setStartTime(double param_startTime) /*-{
+ this.startTime = param_startTime;
+ }-*/;
+
+ public final native String getText() /*-{
+ return this.text;
+ }-*/;
+
+ public final native void setText(String param_text) /*-{
+ this.text = param_text;
+ }-*/;
+
+ public final native JsTextTrack getTrack() /*-{
+ return this.track;
+ }-*/;
+
+ public final native String getVertical() /*-{
+ return this.vertical;
+ }-*/;
+
+ public final native void setVertical(String param_vertical) /*-{
+ this.vertical = param_vertical;
+ }-*/;
+
+ public final native JsDocumentFragment getCueAsHTML() /*-{
+ return this.getCueAsHTML();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTextTrackCueList.java b/elemental/src/elemental/js/html/JsTextTrackCueList.java
new file mode 100644
index 0000000..6092006
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTextTrackCueList.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.TextTrackCue;
+import elemental.html.TextTrackCueList;
+
+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 JsTextTrackCueList extends JsElementalMixinBase implements TextTrackCueList {
+ protected JsTextTrackCueList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsTextTrackCue getCueById(String id) /*-{
+ return this.getCueById(id);
+ }-*/;
+
+ public final native JsTextTrackCue item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTextTrackList.java b/elemental/src/elemental/js/html/JsTextTrackList.java
new file mode 100644
index 0000000..cc42aee
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTextTrackList.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.TextTrack;
+import elemental.html.TextTrackList;
+import elemental.js.events.JsEvent;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsTextTrackList extends JsElementalMixinBase implements TextTrackList {
+ protected JsTextTrackList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native EventListener getOnaddtrack() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onaddtrack);
+ }-*/;
+
+ public final native void setOnaddtrack(EventListener listener) /*-{
+ this.onaddtrack = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native JsTextTrack item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTimeRanges.java b/elemental/src/elemental/js/html/JsTimeRanges.java
new file mode 100644
index 0000000..e5acd27
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTimeRanges.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.TimeRanges;
+
+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 JsTimeRanges extends JsElementalMixinBase implements TimeRanges {
+ protected JsTimeRanges() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native float end(int index) /*-{
+ return this.end(index);
+ }-*/;
+
+ public final native float start(int index) /*-{
+ return this.start(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTitleElement.java b/elemental/src/elemental/js/html/JsTitleElement.java
new file mode 100644
index 0000000..3fc3cbb
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTitleElement.java
@@ -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 elemental.js.html;
+import elemental.html.TitleElement;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+
+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 JsTitleElement extends JsElement implements TitleElement {
+ protected JsTitleElement() {}
+
+ public final native String getText() /*-{
+ return this.text;
+ }-*/;
+
+ public final native void setText(String param_text) /*-{
+ this.text = param_text;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTrackElement.java b/elemental/src/elemental/js/html/JsTrackElement.java
new file mode 100644
index 0000000..9f13224
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTrackElement.java
@@ -0,0 +1,90 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.html.TrackElement;
+import elemental.dom.Element;
+import elemental.html.TextTrack;
+
+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 JsTrackElement extends JsElement implements TrackElement {
+ protected JsTrackElement() {}
+
+ public final native boolean isDefaultValue() /*-{
+ return this['default'];
+ }-*/;
+
+ public final native void setDefaultValue(boolean param_default) /*-{
+ this['default'] = param_default;
+ }-*/;
+
+ public final native String getKind() /*-{
+ return this.kind;
+ }-*/;
+
+ public final native void setKind(String param_kind) /*-{
+ this.kind = param_kind;
+ }-*/;
+
+ public final native String getLabel() /*-{
+ return this.label;
+ }-*/;
+
+ public final native void setLabel(String param_label) /*-{
+ this.label = param_label;
+ }-*/;
+
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native String getSrc() /*-{
+ return this.src;
+ }-*/;
+
+ public final native void setSrc(String param_src) /*-{
+ this.src = param_src;
+ }-*/;
+
+ public final native String getSrclang() /*-{
+ return this.srclang;
+ }-*/;
+
+ public final native void setSrclang(String param_srclang) /*-{
+ this.srclang = param_srclang;
+ }-*/;
+
+ public final native JsTextTrack getTrack() /*-{
+ return this.track;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsTrackEvent.java b/elemental/src/elemental/js/html/JsTrackEvent.java
new file mode 100644
index 0000000..fe5ada8
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsTrackEvent.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.TrackEvent;
+import elemental.js.events.JsEvent;
+import elemental.events.Event;
+
+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 JsTrackEvent extends JsEvent implements TrackEvent {
+ protected JsTrackEvent() {}
+
+ public final native Object getTrack() /*-{
+ return this.track;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsUListElement.java b/elemental/src/elemental/js/html/JsUListElement.java
new file mode 100644
index 0000000..1dcf9bd
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsUListElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.UListElement;
+
+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 JsUListElement extends JsElement implements UListElement {
+ protected JsUListElement() {}
+
+ public final native boolean isCompact() /*-{
+ return this.compact;
+ }-*/;
+
+ public final native void setCompact(boolean param_compact) /*-{
+ this.compact = param_compact;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsUint16Array.java b/elemental/src/elemental/js/html/JsUint16Array.java
new file mode 100644
index 0000000..6dd3c02
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsUint16Array.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ArrayBufferView;
+import elemental.html.Uint16Array;
+
+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 JsUint16Array extends JsArrayBufferView implements Uint16Array, IndexableInt {
+ protected JsUint16Array() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setElements(Object array) /*-{
+ this.setElements(array);
+ }-*/;
+
+ public final native void setElements(Object array, int offset) /*-{
+ this.setElements(array, offset);
+ }-*/;
+
+ public final native JsUint16Array subarray(int start) /*-{
+ return this.subarray(start);
+ }-*/;
+
+ public final native JsUint16Array subarray(int start, int end) /*-{
+ return this.subarray(start, end);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsUint32Array.java b/elemental/src/elemental/js/html/JsUint32Array.java
new file mode 100644
index 0000000..c1176df
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsUint32Array.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.Uint32Array;
+import elemental.html.ArrayBufferView;
+
+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 JsUint32Array extends JsArrayBufferView implements Uint32Array, IndexableInt {
+ protected JsUint32Array() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setElements(Object array) /*-{
+ this.setElements(array);
+ }-*/;
+
+ public final native void setElements(Object array, int offset) /*-{
+ this.setElements(array, offset);
+ }-*/;
+
+ public final native JsUint32Array subarray(int start) /*-{
+ return this.subarray(start);
+ }-*/;
+
+ public final native JsUint32Array subarray(int start, int end) /*-{
+ return this.subarray(start, end);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsUint8Array.java b/elemental/src/elemental/js/html/JsUint8Array.java
new file mode 100644
index 0000000..f6ec4e8
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsUint8Array.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ArrayBufferView;
+import elemental.html.Uint8Array;
+
+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 JsUint8Array extends JsArrayBufferView implements Uint8Array, IndexableInt {
+ protected JsUint8Array() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setElements(Object array) /*-{
+ this.setElements(array);
+ }-*/;
+
+ public final native void setElements(Object array, int offset) /*-{
+ this.setElements(array, offset);
+ }-*/;
+
+ public final native JsUint8Array subarray(int start) /*-{
+ return this.subarray(start);
+ }-*/;
+
+ public final native JsUint8Array subarray(int start, int end) /*-{
+ return this.subarray(start, end);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsUint8ClampedArray.java b/elemental/src/elemental/js/html/JsUint8ClampedArray.java
new file mode 100644
index 0000000..24d83d5
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsUint8ClampedArray.java
@@ -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 elemental.js.html;
+import elemental.html.Uint8ClampedArray;
+import elemental.html.Uint8Array;
+
+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 JsUint8ClampedArray extends JsUint8Array implements Uint8ClampedArray, IndexableInt {
+ protected JsUint8ClampedArray() {}
+}
diff --git a/elemental/src/elemental/js/html/JsUnknownElement.java b/elemental/src/elemental/js/html/JsUnknownElement.java
new file mode 100644
index 0000000..72b9ff2
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsUnknownElement.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.html.UnknownElement;
+
+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 JsUnknownElement extends JsElement implements UnknownElement {
+ protected JsUnknownElement() {}
+}
diff --git a/elemental/src/elemental/js/html/JsValidityState.java b/elemental/src/elemental/js/html/JsValidityState.java
new file mode 100644
index 0000000..be5b74e
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsValidityState.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.ValidityState;
+
+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 JsValidityState extends JsElementalMixinBase implements ValidityState {
+ protected JsValidityState() {}
+
+ public final native boolean isCustomError() /*-{
+ return this.customError;
+ }-*/;
+
+ public final native boolean isPatternMismatch() /*-{
+ return this.patternMismatch;
+ }-*/;
+
+ public final native boolean isRangeOverflow() /*-{
+ return this.rangeOverflow;
+ }-*/;
+
+ public final native boolean isRangeUnderflow() /*-{
+ return this.rangeUnderflow;
+ }-*/;
+
+ public final native boolean isStepMismatch() /*-{
+ return this.stepMismatch;
+ }-*/;
+
+ public final native boolean isTooLong() /*-{
+ return this.tooLong;
+ }-*/;
+
+ public final native boolean isTypeMismatch() /*-{
+ return this.typeMismatch;
+ }-*/;
+
+ public final native boolean isValid() /*-{
+ return this.valid;
+ }-*/;
+
+ public final native boolean isValueMissing() /*-{
+ return this.valueMissing;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsVideoElement.java b/elemental/src/elemental/js/html/JsVideoElement.java
new file mode 100644
index 0000000..694da8e
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsVideoElement.java
@@ -0,0 +1,104 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.VideoElement;
+import elemental.html.MediaElement;
+
+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 JsVideoElement extends JsMediaElement implements VideoElement {
+ protected JsVideoElement() {}
+
+ public final native int getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(int param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native String getPoster() /*-{
+ return this.poster;
+ }-*/;
+
+ public final native void setPoster(String param_poster) /*-{
+ this.poster = param_poster;
+ }-*/;
+
+ public final native int getVideoHeight() /*-{
+ return this.videoHeight;
+ }-*/;
+
+ public final native int getVideoWidth() /*-{
+ return this.videoWidth;
+ }-*/;
+
+ public final native int getWebkitDecodedFrameCount() /*-{
+ return this.webkitDecodedFrameCount;
+ }-*/;
+
+ public final native boolean isWebkitDisplayingFullscreen() /*-{
+ return this.webkitDisplayingFullscreen;
+ }-*/;
+
+ public final native int getWebkitDroppedFrameCount() /*-{
+ return this.webkitDroppedFrameCount;
+ }-*/;
+
+ public final native boolean isWebkitSupportsFullscreen() /*-{
+ return this.webkitSupportsFullscreen;
+ }-*/;
+
+ public final native int getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(int param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native void webkitEnterFullScreen() /*-{
+ this.webkitEnterFullScreen();
+ }-*/;
+
+ public final native void webkitEnterFullscreen() /*-{
+ this.webkitEnterFullscreen();
+ }-*/;
+
+ public final native void webkitExitFullScreen() /*-{
+ this.webkitExitFullScreen();
+ }-*/;
+
+ public final native void webkitExitFullscreen() /*-{
+ this.webkitExitFullscreen();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWaveShaperNode.java b/elemental/src/elemental/js/html/JsWaveShaperNode.java
new file mode 100644
index 0000000..0ba2c75
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWaveShaperNode.java
@@ -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 elemental.js.html;
+import elemental.html.Float32Array;
+import elemental.html.AudioNode;
+import elemental.html.WaveShaperNode;
+
+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 JsWaveShaperNode extends JsAudioNode implements WaveShaperNode {
+ protected JsWaveShaperNode() {}
+
+ public final native JsFloat32Array getCurve() /*-{
+ return this.curve;
+ }-*/;
+
+ public final native void setCurve(Float32Array param_curve) /*-{
+ this.curve = param_curve;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWaveTable.java b/elemental/src/elemental/js/html/JsWaveTable.java
new file mode 100644
index 0000000..e3afb65
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWaveTable.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WaveTable;
+
+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 JsWaveTable extends JsElementalMixinBase implements WaveTable {
+ protected JsWaveTable() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLActiveInfo.java b/elemental/src/elemental/js/html/JsWebGLActiveInfo.java
new file mode 100644
index 0000000..c5cd01f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLActiveInfo.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLActiveInfo;
+
+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 JsWebGLActiveInfo extends JsElementalMixinBase implements WebGLActiveInfo {
+ protected JsWebGLActiveInfo() {}
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native int getSize() /*-{
+ return this.size;
+ }-*/;
+
+ public final native int getType() /*-{
+ return this.type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLBuffer.java b/elemental/src/elemental/js/html/JsWebGLBuffer.java
new file mode 100644
index 0000000..19f9d79
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLBuffer.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLBuffer;
+
+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 JsWebGLBuffer extends JsElementalMixinBase implements WebGLBuffer {
+ protected JsWebGLBuffer() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLCompressedTextureS3TC.java b/elemental/src/elemental/js/html/JsWebGLCompressedTextureS3TC.java
new file mode 100644
index 0000000..6d3ba17
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLCompressedTextureS3TC.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLCompressedTextureS3TC;
+
+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 JsWebGLCompressedTextureS3TC extends JsElementalMixinBase implements WebGLCompressedTextureS3TC {
+ protected JsWebGLCompressedTextureS3TC() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLContextAttributes.java b/elemental/src/elemental/js/html/JsWebGLContextAttributes.java
new file mode 100644
index 0000000..a747d27
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLContextAttributes.java
@@ -0,0 +1,87 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLContextAttributes;
+
+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 JsWebGLContextAttributes extends JsElementalMixinBase implements WebGLContextAttributes {
+ protected JsWebGLContextAttributes() {}
+
+ public final native boolean isAlpha() /*-{
+ return this.alpha;
+ }-*/;
+
+ public final native void setAlpha(boolean param_alpha) /*-{
+ this.alpha = param_alpha;
+ }-*/;
+
+ public final native boolean isAntialias() /*-{
+ return this.antialias;
+ }-*/;
+
+ public final native void setAntialias(boolean param_antialias) /*-{
+ this.antialias = param_antialias;
+ }-*/;
+
+ public final native boolean isDepth() /*-{
+ return this.depth;
+ }-*/;
+
+ public final native void setDepth(boolean param_depth) /*-{
+ this.depth = param_depth;
+ }-*/;
+
+ public final native boolean isPremultipliedAlpha() /*-{
+ return this.premultipliedAlpha;
+ }-*/;
+
+ public final native void setPremultipliedAlpha(boolean param_premultipliedAlpha) /*-{
+ this.premultipliedAlpha = param_premultipliedAlpha;
+ }-*/;
+
+ public final native boolean isPreserveDrawingBuffer() /*-{
+ return this.preserveDrawingBuffer;
+ }-*/;
+
+ public final native void setPreserveDrawingBuffer(boolean param_preserveDrawingBuffer) /*-{
+ this.preserveDrawingBuffer = param_preserveDrawingBuffer;
+ }-*/;
+
+ public final native boolean isStencil() /*-{
+ return this.stencil;
+ }-*/;
+
+ public final native void setStencil(boolean param_stencil) /*-{
+ this.stencil = param_stencil;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLContextEvent.java b/elemental/src/elemental/js/html/JsWebGLContextEvent.java
new file mode 100644
index 0000000..2b486dc
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLContextEvent.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLContextEvent;
+import elemental.js.events.JsEvent;
+import elemental.events.Event;
+
+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 JsWebGLContextEvent extends JsEvent implements WebGLContextEvent {
+ protected JsWebGLContextEvent() {}
+
+ public final native String getStatusMessage() /*-{
+ return this.statusMessage;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLDebugRendererInfo.java b/elemental/src/elemental/js/html/JsWebGLDebugRendererInfo.java
new file mode 100644
index 0000000..2d306ce
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLDebugRendererInfo.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLDebugRendererInfo;
+
+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 JsWebGLDebugRendererInfo extends JsElementalMixinBase implements WebGLDebugRendererInfo {
+ protected JsWebGLDebugRendererInfo() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLDebugShaders.java b/elemental/src/elemental/js/html/JsWebGLDebugShaders.java
new file mode 100644
index 0000000..7de38ee
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLDebugShaders.java
@@ -0,0 +1,44 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLShader;
+import elemental.html.WebGLDebugShaders;
+
+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 JsWebGLDebugShaders extends JsElementalMixinBase implements WebGLDebugShaders {
+ protected JsWebGLDebugShaders() {}
+
+ public final native String getTranslatedShaderSource(WebGLShader shader) /*-{
+ return this.getTranslatedShaderSource(shader);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLFramebuffer.java b/elemental/src/elemental/js/html/JsWebGLFramebuffer.java
new file mode 100644
index 0000000..cfeaf13
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLFramebuffer.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLFramebuffer;
+
+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 JsWebGLFramebuffer extends JsElementalMixinBase implements WebGLFramebuffer {
+ protected JsWebGLFramebuffer() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLLoseContext.java b/elemental/src/elemental/js/html/JsWebGLLoseContext.java
new file mode 100644
index 0000000..8d43081
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLLoseContext.java
@@ -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 elemental.js.html;
+import elemental.html.WebGLLoseContext;
+
+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 JsWebGLLoseContext extends JsElementalMixinBase implements WebGLLoseContext {
+ protected JsWebGLLoseContext() {}
+
+ public final native void loseContext() /*-{
+ this.loseContext();
+ }-*/;
+
+ public final native void restoreContext() /*-{
+ this.restoreContext();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLProgram.java b/elemental/src/elemental/js/html/JsWebGLProgram.java
new file mode 100644
index 0000000..6f318f1
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLProgram.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLProgram;
+
+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 JsWebGLProgram extends JsElementalMixinBase implements WebGLProgram {
+ protected JsWebGLProgram() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLRenderbuffer.java b/elemental/src/elemental/js/html/JsWebGLRenderbuffer.java
new file mode 100644
index 0000000..bf90f22
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLRenderbuffer.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLRenderbuffer;
+
+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 JsWebGLRenderbuffer extends JsElementalMixinBase implements WebGLRenderbuffer {
+ protected JsWebGLRenderbuffer() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLRenderingContext.java b/elemental/src/elemental/js/html/JsWebGLRenderingContext.java
new file mode 100644
index 0000000..be82151
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLRenderingContext.java
@@ -0,0 +1,656 @@
+/*
+ * 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 elemental.js.html;
+import elemental.js.util.JsIndexable;
+import elemental.html.ArrayBuffer;
+import elemental.html.Int32Array;
+import elemental.html.WebGLActiveInfo;
+import elemental.html.ImageElement;
+import elemental.html.WebGLRenderbuffer;
+import elemental.html.Float32Array;
+import elemental.html.WebGLBuffer;
+import elemental.html.CanvasElement;
+import elemental.html.WebGLShader;
+import elemental.html.ImageData;
+import elemental.html.WebGLTexture;
+import elemental.html.WebGLRenderingContext;
+import elemental.html.WebGLContextAttributes;
+import elemental.util.Indexable;
+import elemental.html.CanvasRenderingContext;
+import elemental.html.WebGLUniformLocation;
+import elemental.html.WebGLShaderPrecisionFormat;
+import elemental.html.WebGLProgram;
+import elemental.html.ArrayBufferView;
+import elemental.html.VideoElement;
+import elemental.html.WebGLFramebuffer;
+
+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 JsWebGLRenderingContext extends JsCanvasRenderingContext implements WebGLRenderingContext {
+ protected JsWebGLRenderingContext() {}
+
+ public final native int getDrawingBufferHeight() /*-{
+ return this.drawingBufferHeight;
+ }-*/;
+
+ public final native int getDrawingBufferWidth() /*-{
+ return this.drawingBufferWidth;
+ }-*/;
+
+ public final native void activeTexture(int texture) /*-{
+ this.activeTexture(texture);
+ }-*/;
+
+ public final native void attachShader(WebGLProgram program, WebGLShader shader) /*-{
+ this.attachShader(program, shader);
+ }-*/;
+
+ public final native void bindAttribLocation(WebGLProgram program, int index, String name) /*-{
+ this.bindAttribLocation(program, index, name);
+ }-*/;
+
+ public final native void bindBuffer(int target, WebGLBuffer buffer) /*-{
+ this.bindBuffer(target, buffer);
+ }-*/;
+
+ public final native void bindFramebuffer(int target, WebGLFramebuffer framebuffer) /*-{
+ this.bindFramebuffer(target, framebuffer);
+ }-*/;
+
+ public final native void bindRenderbuffer(int target, WebGLRenderbuffer renderbuffer) /*-{
+ this.bindRenderbuffer(target, renderbuffer);
+ }-*/;
+
+ public final native void bindTexture(int target, WebGLTexture texture) /*-{
+ this.bindTexture(target, texture);
+ }-*/;
+
+ public final native void blendColor(float red, float green, float blue, float alpha) /*-{
+ this.blendColor(red, green, blue, alpha);
+ }-*/;
+
+ public final native void blendEquation(int mode) /*-{
+ this.blendEquation(mode);
+ }-*/;
+
+ public final native void blendEquationSeparate(int modeRGB, int modeAlpha) /*-{
+ this.blendEquationSeparate(modeRGB, modeAlpha);
+ }-*/;
+
+ public final native void blendFunc(int sfactor, int dfactor) /*-{
+ this.blendFunc(sfactor, dfactor);
+ }-*/;
+
+ public final native void blendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha) /*-{
+ this.blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
+ }-*/;
+
+ public final native void bufferData(int target, ArrayBuffer data, int usage) /*-{
+ this.bufferData(target, data, usage);
+ }-*/;
+
+ public final native void bufferData(int target, ArrayBufferView data, int usage) /*-{
+ this.bufferData(target, data, usage);
+ }-*/;
+
+ public final native void bufferData(int target, double size, int usage) /*-{
+ this.bufferData(target, size, usage);
+ }-*/;
+
+ public final native void bufferSubData(int target, double offset, ArrayBuffer data) /*-{
+ this.bufferSubData(target, offset, data);
+ }-*/;
+
+ public final native void bufferSubData(int target, double offset, ArrayBufferView data) /*-{
+ this.bufferSubData(target, offset, data);
+ }-*/;
+
+ public final native int checkFramebufferStatus(int target) /*-{
+ return this.checkFramebufferStatus(target);
+ }-*/;
+
+ public final native void clear(int mask) /*-{
+ this.clear(mask);
+ }-*/;
+
+ public final native void clearColor(float red, float green, float blue, float alpha) /*-{
+ this.clearColor(red, green, blue, alpha);
+ }-*/;
+
+ public final native void clearDepth(float depth) /*-{
+ this.clearDepth(depth);
+ }-*/;
+
+ public final native void clearStencil(int s) /*-{
+ this.clearStencil(s);
+ }-*/;
+
+ public final native void colorMask(boolean red, boolean green, boolean blue, boolean alpha) /*-{
+ this.colorMask(red, green, blue, alpha);
+ }-*/;
+
+ public final native void compileShader(WebGLShader shader) /*-{
+ this.compileShader(shader);
+ }-*/;
+
+ public final native void compressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, ArrayBufferView data) /*-{
+ this.compressedTexImage2D(target, level, internalformat, width, height, border, data);
+ }-*/;
+
+ public final native void compressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, ArrayBufferView data) /*-{
+ this.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, data);
+ }-*/;
+
+ public final native void copyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border) /*-{
+ this.copyTexImage2D(target, level, internalformat, x, y, width, height, border);
+ }-*/;
+
+ public final native void copyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height) /*-{
+ this.copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+ }-*/;
+
+ public final native JsWebGLBuffer createBuffer() /*-{
+ return this.createBuffer();
+ }-*/;
+
+ public final native JsWebGLFramebuffer createFramebuffer() /*-{
+ return this.createFramebuffer();
+ }-*/;
+
+ public final native JsWebGLProgram createProgram() /*-{
+ return this.createProgram();
+ }-*/;
+
+ public final native JsWebGLRenderbuffer createRenderbuffer() /*-{
+ return this.createRenderbuffer();
+ }-*/;
+
+ public final native JsWebGLShader createShader(int type) /*-{
+ return this.createShader(type);
+ }-*/;
+
+ public final native JsWebGLTexture createTexture() /*-{
+ return this.createTexture();
+ }-*/;
+
+ public final native void cullFace(int mode) /*-{
+ this.cullFace(mode);
+ }-*/;
+
+ public final native void deleteBuffer(WebGLBuffer buffer) /*-{
+ this.deleteBuffer(buffer);
+ }-*/;
+
+ public final native void deleteFramebuffer(WebGLFramebuffer framebuffer) /*-{
+ this.deleteFramebuffer(framebuffer);
+ }-*/;
+
+ public final native void deleteProgram(WebGLProgram program) /*-{
+ this.deleteProgram(program);
+ }-*/;
+
+ public final native void deleteRenderbuffer(WebGLRenderbuffer renderbuffer) /*-{
+ this.deleteRenderbuffer(renderbuffer);
+ }-*/;
+
+ public final native void deleteShader(WebGLShader shader) /*-{
+ this.deleteShader(shader);
+ }-*/;
+
+ public final native void deleteTexture(WebGLTexture texture) /*-{
+ this.deleteTexture(texture);
+ }-*/;
+
+ public final native void depthFunc(int func) /*-{
+ this.depthFunc(func);
+ }-*/;
+
+ public final native void depthMask(boolean flag) /*-{
+ this.depthMask(flag);
+ }-*/;
+
+ public final native void depthRange(float zNear, float zFar) /*-{
+ this.depthRange(zNear, zFar);
+ }-*/;
+
+ public final native void detachShader(WebGLProgram program, WebGLShader shader) /*-{
+ this.detachShader(program, shader);
+ }-*/;
+
+ public final native void disable(int cap) /*-{
+ this.disable(cap);
+ }-*/;
+
+ public final native void disableVertexAttribArray(int index) /*-{
+ this.disableVertexAttribArray(index);
+ }-*/;
+
+ public final native void drawArrays(int mode, int first, int count) /*-{
+ this.drawArrays(mode, first, count);
+ }-*/;
+
+ public final native void drawElements(int mode, int count, int type, double offset) /*-{
+ this.drawElements(mode, count, type, offset);
+ }-*/;
+
+ public final native void enable(int cap) /*-{
+ this.enable(cap);
+ }-*/;
+
+ public final native void enableVertexAttribArray(int index) /*-{
+ this.enableVertexAttribArray(index);
+ }-*/;
+
+ public final native void finish() /*-{
+ this.finish();
+ }-*/;
+
+ public final native void flush() /*-{
+ this.flush();
+ }-*/;
+
+ public final native void framebufferRenderbuffer(int target, int attachment, int renderbuffertarget, WebGLRenderbuffer renderbuffer) /*-{
+ this.framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+ }-*/;
+
+ public final native void framebufferTexture2D(int target, int attachment, int textarget, WebGLTexture texture, int level) /*-{
+ this.framebufferTexture2D(target, attachment, textarget, texture, level);
+ }-*/;
+
+ public final native void frontFace(int mode) /*-{
+ this.frontFace(mode);
+ }-*/;
+
+ public final native void generateMipmap(int target) /*-{
+ this.generateMipmap(target);
+ }-*/;
+
+ public final native JsWebGLActiveInfo getActiveAttrib(WebGLProgram program, int index) /*-{
+ return this.getActiveAttrib(program, index);
+ }-*/;
+
+ public final native JsWebGLActiveInfo getActiveUniform(WebGLProgram program, int index) /*-{
+ return this.getActiveUniform(program, index);
+ }-*/;
+
+ public final native JsIndexable getAttachedShaders(WebGLProgram program) /*-{
+ return this.getAttachedShaders(program);
+ }-*/;
+
+ public final native int getAttribLocation(WebGLProgram program, String name) /*-{
+ return this.getAttribLocation(program, name);
+ }-*/;
+
+ public final native Object getBufferParameter(int target, int pname) /*-{
+ return this.getBufferParameter(target, pname);
+ }-*/;
+
+ public final native JsWebGLContextAttributes getContextAttributes() /*-{
+ return this.getContextAttributes();
+ }-*/;
+
+ public final native int getError() /*-{
+ return this.getError();
+ }-*/;
+
+ public final native Object getExtension(String name) /*-{
+ return this.getExtension(name);
+ }-*/;
+
+ public final native Object getFramebufferAttachmentParameter(int target, int attachment, int pname) /*-{
+ return this.getFramebufferAttachmentParameter(target, attachment, pname);
+ }-*/;
+
+ public final native Object getParameter(int pname) /*-{
+ return this.getParameter(pname);
+ }-*/;
+
+ public final native String getProgramInfoLog(WebGLProgram program) /*-{
+ return this.getProgramInfoLog(program);
+ }-*/;
+
+ public final native Object getProgramParameter(WebGLProgram program, int pname) /*-{
+ return this.getProgramParameter(program, pname);
+ }-*/;
+
+ public final native Object getRenderbufferParameter(int target, int pname) /*-{
+ return this.getRenderbufferParameter(target, pname);
+ }-*/;
+
+ public final native String getShaderInfoLog(WebGLShader shader) /*-{
+ return this.getShaderInfoLog(shader);
+ }-*/;
+
+ public final native Object getShaderParameter(WebGLShader shader, int pname) /*-{
+ return this.getShaderParameter(shader, pname);
+ }-*/;
+
+ public final native JsWebGLShaderPrecisionFormat getShaderPrecisionFormat(int shadertype, int precisiontype) /*-{
+ return this.getShaderPrecisionFormat(shadertype, precisiontype);
+ }-*/;
+
+ public final native String getShaderSource(WebGLShader shader) /*-{
+ return this.getShaderSource(shader);
+ }-*/;
+
+ public final native Object getTexParameter(int target, int pname) /*-{
+ return this.getTexParameter(target, pname);
+ }-*/;
+
+ public final native Object getUniform(WebGLProgram program, WebGLUniformLocation location) /*-{
+ return this.getUniform(program, location);
+ }-*/;
+
+ public final native JsWebGLUniformLocation getUniformLocation(WebGLProgram program, String name) /*-{
+ return this.getUniformLocation(program, name);
+ }-*/;
+
+ public final native Object getVertexAttrib(int index, int pname) /*-{
+ return this.getVertexAttrib(index, pname);
+ }-*/;
+
+ public final native double getVertexAttribOffset(int index, int pname) /*-{
+ return this.getVertexAttribOffset(index, pname);
+ }-*/;
+
+ public final native void hint(int target, int mode) /*-{
+ this.hint(target, mode);
+ }-*/;
+
+ public final native boolean isBuffer(WebGLBuffer buffer) /*-{
+ return this.isBuffer(buffer);
+ }-*/;
+
+ public final native boolean isContextLost() /*-{
+ return this.isContextLost();
+ }-*/;
+
+ public final native boolean isEnabled(int cap) /*-{
+ return this.isEnabled(cap);
+ }-*/;
+
+ public final native boolean isFramebuffer(WebGLFramebuffer framebuffer) /*-{
+ return this.isFramebuffer(framebuffer);
+ }-*/;
+
+ public final native boolean isProgram(WebGLProgram program) /*-{
+ return this.isProgram(program);
+ }-*/;
+
+ public final native boolean isRenderbuffer(WebGLRenderbuffer renderbuffer) /*-{
+ return this.isRenderbuffer(renderbuffer);
+ }-*/;
+
+ public final native boolean isShader(WebGLShader shader) /*-{
+ return this.isShader(shader);
+ }-*/;
+
+ public final native boolean isTexture(WebGLTexture texture) /*-{
+ return this.isTexture(texture);
+ }-*/;
+
+ public final native void lineWidth(float width) /*-{
+ this.lineWidth(width);
+ }-*/;
+
+ public final native void linkProgram(WebGLProgram program) /*-{
+ this.linkProgram(program);
+ }-*/;
+
+ public final native void pixelStorei(int pname, int param) /*-{
+ this.pixelStorei(pname, param);
+ }-*/;
+
+ public final native void polygonOffset(float factor, float units) /*-{
+ this.polygonOffset(factor, units);
+ }-*/;
+
+ public final native void readPixels(int x, int y, int width, int height, int format, int type, ArrayBufferView pixels) /*-{
+ this.readPixels(x, y, width, height, format, type, pixels);
+ }-*/;
+
+ public final native void releaseShaderCompiler() /*-{
+ this.releaseShaderCompiler();
+ }-*/;
+
+ public final native void renderbufferStorage(int target, int internalformat, int width, int height) /*-{
+ this.renderbufferStorage(target, internalformat, width, height);
+ }-*/;
+
+ public final native void sampleCoverage(float value, boolean invert) /*-{
+ this.sampleCoverage(value, invert);
+ }-*/;
+
+ public final native void scissor(int x, int y, int width, int height) /*-{
+ this.scissor(x, y, width, height);
+ }-*/;
+
+ public final native void shaderSource(WebGLShader shader, String string) /*-{
+ this.shaderSource(shader, string);
+ }-*/;
+
+ public final native void stencilFunc(int func, int ref, int mask) /*-{
+ this.stencilFunc(func, ref, mask);
+ }-*/;
+
+ public final native void stencilFuncSeparate(int face, int func, int ref, int mask) /*-{
+ this.stencilFuncSeparate(face, func, ref, mask);
+ }-*/;
+
+ public final native void stencilMask(int mask) /*-{
+ this.stencilMask(mask);
+ }-*/;
+
+ public final native void stencilMaskSeparate(int face, int mask) /*-{
+ this.stencilMaskSeparate(face, mask);
+ }-*/;
+
+ public final native void stencilOp(int fail, int zfail, int zpass) /*-{
+ this.stencilOp(fail, zfail, zpass);
+ }-*/;
+
+ public final native void stencilOpSeparate(int face, int fail, int zfail, int zpass) /*-{
+ this.stencilOpSeparate(face, fail, zfail, zpass);
+ }-*/;
+
+ public final native void texImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, ArrayBufferView pixels) /*-{
+ this.texImage2D(target, level, internalformat, width, height, border, format, type, pixels);
+ }-*/;
+
+ public final native void texImage2D(int target, int level, int internalformat, int format, int type, ImageData pixels) /*-{
+ this.texImage2D(target, level, internalformat, format, type, pixels);
+ }-*/;
+
+ public final native void texImage2D(int target, int level, int internalformat, int format, int type, ImageElement image) /*-{
+ this.texImage2D(target, level, internalformat, format, type, image);
+ }-*/;
+
+ public final native void texImage2D(int target, int level, int internalformat, int format, int type, CanvasElement canvas) /*-{
+ this.texImage2D(target, level, internalformat, format, type, canvas);
+ }-*/;
+
+ public final native void texImage2D(int target, int level, int internalformat, int format, int type, VideoElement video) /*-{
+ this.texImage2D(target, level, internalformat, format, type, video);
+ }-*/;
+
+ public final native void texParameterf(int target, int pname, float param) /*-{
+ this.texParameterf(target, pname, param);
+ }-*/;
+
+ public final native void texParameteri(int target, int pname, int param) /*-{
+ this.texParameteri(target, pname, param);
+ }-*/;
+
+ public final native void texSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, ArrayBufferView pixels) /*-{
+ this.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
+ }-*/;
+
+ public final native void texSubImage2D(int target, int level, int xoffset, int yoffset, int format, int type, ImageData pixels) /*-{
+ this.texSubImage2D(target, level, xoffset, yoffset, format, type, pixels);
+ }-*/;
+
+ public final native void texSubImage2D(int target, int level, int xoffset, int yoffset, int format, int type, ImageElement image) /*-{
+ this.texSubImage2D(target, level, xoffset, yoffset, format, type, image);
+ }-*/;
+
+ public final native void texSubImage2D(int target, int level, int xoffset, int yoffset, int format, int type, CanvasElement canvas) /*-{
+ this.texSubImage2D(target, level, xoffset, yoffset, format, type, canvas);
+ }-*/;
+
+ public final native void texSubImage2D(int target, int level, int xoffset, int yoffset, int format, int type, VideoElement video) /*-{
+ this.texSubImage2D(target, level, xoffset, yoffset, format, type, video);
+ }-*/;
+
+ public final native void uniform1f(WebGLUniformLocation location, float x) /*-{
+ this.uniform1f(location, x);
+ }-*/;
+
+ public final native void uniform1fv(WebGLUniformLocation location, Float32Array v) /*-{
+ this.uniform1fv(location, v);
+ }-*/;
+
+ public final native void uniform1i(WebGLUniformLocation location, int x) /*-{
+ this.uniform1i(location, x);
+ }-*/;
+
+ public final native void uniform1iv(WebGLUniformLocation location, Int32Array v) /*-{
+ this.uniform1iv(location, v);
+ }-*/;
+
+ public final native void uniform2f(WebGLUniformLocation location, float x, float y) /*-{
+ this.uniform2f(location, x, y);
+ }-*/;
+
+ public final native void uniform2fv(WebGLUniformLocation location, Float32Array v) /*-{
+ this.uniform2fv(location, v);
+ }-*/;
+
+ public final native void uniform2i(WebGLUniformLocation location, int x, int y) /*-{
+ this.uniform2i(location, x, y);
+ }-*/;
+
+ public final native void uniform2iv(WebGLUniformLocation location, Int32Array v) /*-{
+ this.uniform2iv(location, v);
+ }-*/;
+
+ public final native void uniform3f(WebGLUniformLocation location, float x, float y, float z) /*-{
+ this.uniform3f(location, x, y, z);
+ }-*/;
+
+ public final native void uniform3fv(WebGLUniformLocation location, Float32Array v) /*-{
+ this.uniform3fv(location, v);
+ }-*/;
+
+ public final native void uniform3i(WebGLUniformLocation location, int x, int y, int z) /*-{
+ this.uniform3i(location, x, y, z);
+ }-*/;
+
+ public final native void uniform3iv(WebGLUniformLocation location, Int32Array v) /*-{
+ this.uniform3iv(location, v);
+ }-*/;
+
+ public final native void uniform4f(WebGLUniformLocation location, float x, float y, float z, float w) /*-{
+ this.uniform4f(location, x, y, z, w);
+ }-*/;
+
+ public final native void uniform4fv(WebGLUniformLocation location, Float32Array v) /*-{
+ this.uniform4fv(location, v);
+ }-*/;
+
+ public final native void uniform4i(WebGLUniformLocation location, int x, int y, int z, int w) /*-{
+ this.uniform4i(location, x, y, z, w);
+ }-*/;
+
+ public final native void uniform4iv(WebGLUniformLocation location, Int32Array v) /*-{
+ this.uniform4iv(location, v);
+ }-*/;
+
+ public final native void uniformMatrix2fv(WebGLUniformLocation location, boolean transpose, Float32Array array) /*-{
+ this.uniformMatrix2fv(location, transpose, array);
+ }-*/;
+
+ public final native void uniformMatrix3fv(WebGLUniformLocation location, boolean transpose, Float32Array array) /*-{
+ this.uniformMatrix3fv(location, transpose, array);
+ }-*/;
+
+ public final native void uniformMatrix4fv(WebGLUniformLocation location, boolean transpose, Float32Array array) /*-{
+ this.uniformMatrix4fv(location, transpose, array);
+ }-*/;
+
+ public final native void useProgram(WebGLProgram program) /*-{
+ this.useProgram(program);
+ }-*/;
+
+ public final native void validateProgram(WebGLProgram program) /*-{
+ this.validateProgram(program);
+ }-*/;
+
+ public final native void vertexAttrib1f(int indx, float x) /*-{
+ this.vertexAttrib1f(indx, x);
+ }-*/;
+
+ public final native void vertexAttrib1fv(int indx, Float32Array values) /*-{
+ this.vertexAttrib1fv(indx, values);
+ }-*/;
+
+ public final native void vertexAttrib2f(int indx, float x, float y) /*-{
+ this.vertexAttrib2f(indx, x, y);
+ }-*/;
+
+ public final native void vertexAttrib2fv(int indx, Float32Array values) /*-{
+ this.vertexAttrib2fv(indx, values);
+ }-*/;
+
+ public final native void vertexAttrib3f(int indx, float x, float y, float z) /*-{
+ this.vertexAttrib3f(indx, x, y, z);
+ }-*/;
+
+ public final native void vertexAttrib3fv(int indx, Float32Array values) /*-{
+ this.vertexAttrib3fv(indx, values);
+ }-*/;
+
+ public final native void vertexAttrib4f(int indx, float x, float y, float z, float w) /*-{
+ this.vertexAttrib4f(indx, x, y, z, w);
+ }-*/;
+
+ public final native void vertexAttrib4fv(int indx, Float32Array values) /*-{
+ this.vertexAttrib4fv(indx, values);
+ }-*/;
+
+ public final native void vertexAttribPointer(int indx, int size, int type, boolean normalized, int stride, double offset) /*-{
+ this.vertexAttribPointer(indx, size, type, normalized, stride, offset);
+ }-*/;
+
+ public final native void viewport(int x, int y, int width, int height) /*-{
+ this.viewport(x, y, width, height);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLShader.java b/elemental/src/elemental/js/html/JsWebGLShader.java
new file mode 100644
index 0000000..38cf5eb
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLShader.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLShader;
+
+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 JsWebGLShader extends JsElementalMixinBase implements WebGLShader {
+ protected JsWebGLShader() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLShaderPrecisionFormat.java b/elemental/src/elemental/js/html/JsWebGLShaderPrecisionFormat.java
new file mode 100644
index 0000000..84ceea5
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLShaderPrecisionFormat.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLShaderPrecisionFormat;
+
+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 JsWebGLShaderPrecisionFormat extends JsElementalMixinBase implements WebGLShaderPrecisionFormat {
+ protected JsWebGLShaderPrecisionFormat() {}
+
+ public final native int getPrecision() /*-{
+ return this.precision;
+ }-*/;
+
+ public final native int getRangeMax() /*-{
+ return this.rangeMax;
+ }-*/;
+
+ public final native int getRangeMin() /*-{
+ return this.rangeMin;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLTexture.java b/elemental/src/elemental/js/html/JsWebGLTexture.java
new file mode 100644
index 0000000..998efab
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLTexture.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLTexture;
+
+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 JsWebGLTexture extends JsElementalMixinBase implements WebGLTexture {
+ protected JsWebGLTexture() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLUniformLocation.java b/elemental/src/elemental/js/html/JsWebGLUniformLocation.java
new file mode 100644
index 0000000..486570ed
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLUniformLocation.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLUniformLocation;
+
+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 JsWebGLUniformLocation extends JsElementalMixinBase implements WebGLUniformLocation {
+ protected JsWebGLUniformLocation() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebGLVertexArrayObjectOES.java b/elemental/src/elemental/js/html/JsWebGLVertexArrayObjectOES.java
new file mode 100644
index 0000000..f13445e
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebGLVertexArrayObjectOES.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WebGLVertexArrayObjectOES;
+
+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 JsWebGLVertexArrayObjectOES extends JsElementalMixinBase implements WebGLVertexArrayObjectOES {
+ protected JsWebGLVertexArrayObjectOES() {}
+}
diff --git a/elemental/src/elemental/js/html/JsWebSocket.java b/elemental/src/elemental/js/html/JsWebSocket.java
new file mode 100644
index 0000000..4c42916
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWebSocket.java
@@ -0,0 +1,119 @@
+/*
+ * 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 elemental.js.html;
+import elemental.events.EventListener;
+import elemental.html.WebSocket;
+import elemental.js.events.JsEvent;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsWebSocket extends JsElementalMixinBase implements WebSocket {
+ protected JsWebSocket() {}
+
+ public final native String getURL() /*-{
+ return this.URL;
+ }-*/;
+
+ public final native String getBinaryType() /*-{
+ return this.binaryType;
+ }-*/;
+
+ public final native void setBinaryType(String param_binaryType) /*-{
+ this.binaryType = param_binaryType;
+ }-*/;
+
+ public final native int getBufferedAmount() /*-{
+ return this.bufferedAmount;
+ }-*/;
+
+ public final native String getExtensions() /*-{
+ return this.extensions;
+ }-*/;
+
+ public final native EventListener getOnclose() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onclose);
+ }-*/;
+
+ public final native void setOnclose(EventListener listener) /*-{
+ this.onclose = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmessage);
+ }-*/;
+
+ public final native void setOnmessage(EventListener listener) /*-{
+ this.onmessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnopen() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onopen);
+ }-*/;
+
+ public final native void setOnopen(EventListener listener) /*-{
+ this.onopen = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native String getProtocol() /*-{
+ return this.protocol;
+ }-*/;
+
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native String getUrl() /*-{
+ return this.url;
+ }-*/;
+
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+
+ public final native void close(int code) /*-{
+ this.close(code);
+ }-*/;
+
+ public final native void close(int code, String reason) /*-{
+ this.close(code, reason);
+ }-*/;
+
+ public final native boolean send(String data) /*-{
+ return this.send(data);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWindow.java b/elemental/src/elemental/js/html/JsWindow.java
new file mode 100644
index 0000000..db96df1
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWindow.java
@@ -0,0 +1,1128 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.FileSystemCallback;
+import elemental.js.dom.JsDocument;
+import elemental.html.BarProp;
+import elemental.html.Screen;
+import elemental.js.dom.JsNode;
+import elemental.html.Point;
+import elemental.dom.TimeoutHandler;
+import elemental.html.Database;
+import elemental.html.History;
+import elemental.js.events.JsEventListener;
+import elemental.dom.Document;
+import elemental.dom.Node;
+import elemental.html.NotificationCenter;
+import elemental.html.Console;
+import elemental.css.CSSRuleList;
+import elemental.html.DatabaseCallback;
+import elemental.dom.RequestAnimationFrameCallback;
+import elemental.html.Location;
+import elemental.html.StyleMedia;
+import elemental.html.ErrorCallback;
+import elemental.html.Selection;
+import elemental.html.MediaQueryList;
+import elemental.dom.Element;
+import elemental.js.util.JsIndexable;
+import elemental.html.Storage;
+import elemental.html.EntryCallback;
+import elemental.util.Indexable;
+import elemental.html.StorageInfo;
+import elemental.html.Navigator;
+import elemental.html.PagePopupController;
+import elemental.events.Event;
+import elemental.js.dom.JsElement;
+import elemental.html.ApplicationCache;
+import elemental.js.css.JsCSSStyleDeclaration;
+import elemental.html.Crypto;
+import elemental.js.events.JsEvent;
+import elemental.html.Performance;
+import elemental.events.EventListener;
+import elemental.js.css.JsCSSRuleList;
+import elemental.html.IDBFactory;
+import elemental.html.Window;
+import elemental.css.CSSStyleDeclaration;
+
+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 JsWindow extends JsElementalMixinBase implements Window {
+ protected JsWindow() {}
+
+ public final native void clearOpener() /*-{
+ this.opener = null;
+ }-*/;
+
+
+ public final native JsApplicationCache getApplicationCache() /*-{
+ return this.applicationCache;
+ }-*/;
+
+ public final native JsNavigator getClientInformation() /*-{
+ return this.clientInformation;
+ }-*/;
+
+ public final native boolean isClosed() /*-{
+ return this.closed;
+ }-*/;
+
+ public final native JsConsole getConsole() /*-{
+ return this.console;
+ }-*/;
+
+ public final native JsCrypto getCrypto() /*-{
+ return this.crypto;
+ }-*/;
+
+ public final native String getDefaultStatus() /*-{
+ return this.defaultStatus;
+ }-*/;
+
+ public final native void setDefaultStatus(String param_defaultStatus) /*-{
+ this.defaultStatus = param_defaultStatus;
+ }-*/;
+
+ public final native String getDefaultstatus() /*-{
+ return this.defaultstatus;
+ }-*/;
+
+ public final native void setDefaultstatus(String param_defaultstatus) /*-{
+ this.defaultstatus = param_defaultstatus;
+ }-*/;
+
+ public final native double getDevicePixelRatio() /*-{
+ return this.devicePixelRatio;
+ }-*/;
+
+ public final native JsDocument getDocument() /*-{
+ return this.document;
+ }-*/;
+
+ public final native JsEvent getEvent() /*-{
+ return this.event;
+ }-*/;
+
+ public final native JsElement getFrameElement() /*-{
+ return this.frameElement;
+ }-*/;
+
+ public final native JsWindow getFrames() /*-{
+ return this.frames;
+ }-*/;
+
+ public final native JsHistory getHistory() /*-{
+ return this.history;
+ }-*/;
+
+ public final native int getInnerHeight() /*-{
+ return this.innerHeight;
+ }-*/;
+
+ public final native int getInnerWidth() /*-{
+ return this.innerWidth;
+ }-*/;
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsStorage getLocalStorage() /*-{
+ return this.localStorage;
+ }-*/;
+
+ public final native JsLocation getLocation() /*-{
+ return this.location;
+ }-*/;
+
+ public final native void setLocation(Location param_location) /*-{
+ this.location = param_location;
+ }-*/;
+
+ public final native JsBarProp getLocationbar() /*-{
+ return this.locationbar;
+ }-*/;
+
+ public final native JsBarProp getMenubar() /*-{
+ return this.menubar;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+
+ public final native void setName(String param_name) /*-{
+ this.name = param_name;
+ }-*/;
+
+ public final native JsNavigator getNavigator() /*-{
+ return this.navigator;
+ }-*/;
+
+ public final native boolean isOffscreenBuffering() /*-{
+ return this.offscreenBuffering;
+ }-*/;
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforeunload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforeunload);
+ }-*/;
+
+ public final native void setOnbeforeunload(EventListener listener) /*-{
+ this.onbeforeunload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnblur() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onblur);
+ }-*/;
+
+ public final native void setOnblur(EventListener listener) /*-{
+ this.onblur = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncanplay() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncanplay);
+ }-*/;
+
+ public final native void setOncanplay(EventListener listener) /*-{
+ this.oncanplay = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncanplaythrough() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncanplaythrough);
+ }-*/;
+
+ public final native void setOncanplaythrough(EventListener listener) /*-{
+ this.oncanplaythrough = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onchange);
+ }-*/;
+
+ public final native void setOnchange(EventListener listener) /*-{
+ this.onchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnclick() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onclick);
+ }-*/;
+
+ public final native void setOnclick(EventListener listener) /*-{
+ this.onclick = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncontextmenu() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncontextmenu);
+ }-*/;
+
+ public final native void setOncontextmenu(EventListener listener) /*-{
+ this.oncontextmenu = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndblclick() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondblclick);
+ }-*/;
+
+ public final native void setOndblclick(EventListener listener) /*-{
+ this.ondblclick = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndevicemotion() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondevicemotion);
+ }-*/;
+
+ public final native void setOndevicemotion(EventListener listener) /*-{
+ this.ondevicemotion = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndeviceorientation() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondeviceorientation);
+ }-*/;
+
+ public final native void setOndeviceorientation(EventListener listener) /*-{
+ this.ondeviceorientation = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndrag() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondrag);
+ }-*/;
+
+ public final native void setOndrag(EventListener listener) /*-{
+ this.ondrag = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragend);
+ }-*/;
+
+ public final native void setOndragend(EventListener listener) /*-{
+ this.ondragend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragenter() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragenter);
+ }-*/;
+
+ public final native void setOndragenter(EventListener listener) /*-{
+ this.ondragenter = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragleave() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragleave);
+ }-*/;
+
+ public final native void setOndragleave(EventListener listener) /*-{
+ this.ondragleave = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragover() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragover);
+ }-*/;
+
+ public final native void setOndragover(EventListener listener) /*-{
+ this.ondragover = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragstart);
+ }-*/;
+
+ public final native void setOndragstart(EventListener listener) /*-{
+ this.ondragstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndrop() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondrop);
+ }-*/;
+
+ public final native void setOndrop(EventListener listener) /*-{
+ this.ondrop = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndurationchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondurationchange);
+ }-*/;
+
+ public final native void setOndurationchange(EventListener listener) /*-{
+ this.ondurationchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnemptied() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onemptied);
+ }-*/;
+
+ public final native void setOnemptied(EventListener listener) /*-{
+ this.onemptied = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnended() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onended);
+ }-*/;
+
+ public final native void setOnended(EventListener listener) /*-{
+ this.onended = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnfocus() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onfocus);
+ }-*/;
+
+ public final native void setOnfocus(EventListener listener) /*-{
+ this.onfocus = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnhashchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onhashchange);
+ }-*/;
+
+ public final native void setOnhashchange(EventListener listener) /*-{
+ this.onhashchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOninput() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oninput);
+ }-*/;
+
+ public final native void setOninput(EventListener listener) /*-{
+ this.oninput = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOninvalid() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oninvalid);
+ }-*/;
+
+ public final native void setOninvalid(EventListener listener) /*-{
+ this.oninvalid = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeydown() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeydown);
+ }-*/;
+
+ public final native void setOnkeydown(EventListener listener) /*-{
+ this.onkeydown = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeypress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeypress);
+ }-*/;
+
+ public final native void setOnkeypress(EventListener listener) /*-{
+ this.onkeypress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeyup() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeyup);
+ }-*/;
+
+ public final native void setOnkeyup(EventListener listener) /*-{
+ this.onkeyup = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onload);
+ }-*/;
+
+ public final native void setOnload(EventListener listener) /*-{
+ this.onload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnloadeddata() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onloadeddata);
+ }-*/;
+
+ public final native void setOnloadeddata(EventListener listener) /*-{
+ this.onloadeddata = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnloadedmetadata() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onloadedmetadata);
+ }-*/;
+
+ public final native void setOnloadedmetadata(EventListener listener) /*-{
+ this.onloadedmetadata = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnloadstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onloadstart);
+ }-*/;
+
+ public final native void setOnloadstart(EventListener listener) /*-{
+ this.onloadstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmessage);
+ }-*/;
+
+ public final native void setOnmessage(EventListener listener) /*-{
+ this.onmessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousedown() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousedown);
+ }-*/;
+
+ public final native void setOnmousedown(EventListener listener) /*-{
+ this.onmousedown = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousemove() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousemove);
+ }-*/;
+
+ public final native void setOnmousemove(EventListener listener) /*-{
+ this.onmousemove = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseout() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseout);
+ }-*/;
+
+ public final native void setOnmouseout(EventListener listener) /*-{
+ this.onmouseout = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseover() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseover);
+ }-*/;
+
+ public final native void setOnmouseover(EventListener listener) /*-{
+ this.onmouseover = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseup() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseup);
+ }-*/;
+
+ public final native void setOnmouseup(EventListener listener) /*-{
+ this.onmouseup = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousewheel() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousewheel);
+ }-*/;
+
+ public final native void setOnmousewheel(EventListener listener) /*-{
+ this.onmousewheel = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnoffline() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onoffline);
+ }-*/;
+
+ public final native void setOnoffline(EventListener listener) /*-{
+ this.onoffline = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnonline() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ononline);
+ }-*/;
+
+ public final native void setOnonline(EventListener listener) /*-{
+ this.ononline = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnpagehide() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onpagehide);
+ }-*/;
+
+ public final native void setOnpagehide(EventListener listener) /*-{
+ this.onpagehide = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnpageshow() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onpageshow);
+ }-*/;
+
+ public final native void setOnpageshow(EventListener listener) /*-{
+ this.onpageshow = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnpause() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onpause);
+ }-*/;
+
+ public final native void setOnpause(EventListener listener) /*-{
+ this.onpause = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnplay() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onplay);
+ }-*/;
+
+ public final native void setOnplay(EventListener listener) /*-{
+ this.onplay = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnplaying() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onplaying);
+ }-*/;
+
+ public final native void setOnplaying(EventListener listener) /*-{
+ this.onplaying = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnpopstate() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onpopstate);
+ }-*/;
+
+ public final native void setOnpopstate(EventListener listener) /*-{
+ this.onpopstate = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnprogress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onprogress);
+ }-*/;
+
+ public final native void setOnprogress(EventListener listener) /*-{
+ this.onprogress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnratechange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onratechange);
+ }-*/;
+
+ public final native void setOnratechange(EventListener listener) /*-{
+ this.onratechange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnreset() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onreset);
+ }-*/;
+
+ public final native void setOnreset(EventListener listener) /*-{
+ this.onreset = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnresize() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onresize);
+ }-*/;
+
+ public final native void setOnresize(EventListener listener) /*-{
+ this.onresize = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnscroll() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onscroll);
+ }-*/;
+
+ public final native void setOnscroll(EventListener listener) /*-{
+ this.onscroll = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsearch() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsearch);
+ }-*/;
+
+ public final native void setOnsearch(EventListener listener) /*-{
+ this.onsearch = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnseeked() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onseeked);
+ }-*/;
+
+ public final native void setOnseeked(EventListener listener) /*-{
+ this.onseeked = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnseeking() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onseeking);
+ }-*/;
+
+ public final native void setOnseeking(EventListener listener) /*-{
+ this.onseeking = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnselect() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onselect);
+ }-*/;
+
+ public final native void setOnselect(EventListener listener) /*-{
+ this.onselect = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnstalled() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onstalled);
+ }-*/;
+
+ public final native void setOnstalled(EventListener listener) /*-{
+ this.onstalled = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnstorage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onstorage);
+ }-*/;
+
+ public final native void setOnstorage(EventListener listener) /*-{
+ this.onstorage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsubmit() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsubmit);
+ }-*/;
+
+ public final native void setOnsubmit(EventListener listener) /*-{
+ this.onsubmit = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsuspend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsuspend);
+ }-*/;
+
+ public final native void setOnsuspend(EventListener listener) /*-{
+ this.onsuspend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntimeupdate() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontimeupdate);
+ }-*/;
+
+ public final native void setOntimeupdate(EventListener listener) /*-{
+ this.ontimeupdate = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchcancel() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchcancel);
+ }-*/;
+
+ public final native void setOntouchcancel(EventListener listener) /*-{
+ this.ontouchcancel = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchend);
+ }-*/;
+
+ public final native void setOntouchend(EventListener listener) /*-{
+ this.ontouchend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchmove() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchmove);
+ }-*/;
+
+ public final native void setOntouchmove(EventListener listener) /*-{
+ this.ontouchmove = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOntouchstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ontouchstart);
+ }-*/;
+
+ public final native void setOntouchstart(EventListener listener) /*-{
+ this.ontouchstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnunload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onunload);
+ }-*/;
+
+ public final native void setOnunload(EventListener listener) /*-{
+ this.onunload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnvolumechange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onvolumechange);
+ }-*/;
+
+ public final native void setOnvolumechange(EventListener listener) /*-{
+ this.onvolumechange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwaiting() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwaiting);
+ }-*/;
+
+ public final native void setOnwaiting(EventListener listener) /*-{
+ this.onwaiting = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitanimationend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitanimationend);
+ }-*/;
+
+ public final native void setOnwebkitanimationend(EventListener listener) /*-{
+ this.onwebkitanimationend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitanimationiteration() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitanimationiteration);
+ }-*/;
+
+ public final native void setOnwebkitanimationiteration(EventListener listener) /*-{
+ this.onwebkitanimationiteration = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkitanimationstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkitanimationstart);
+ }-*/;
+
+ public final native void setOnwebkitanimationstart(EventListener listener) /*-{
+ this.onwebkitanimationstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnwebkittransitionend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onwebkittransitionend);
+ }-*/;
+
+ public final native void setOnwebkittransitionend(EventListener listener) /*-{
+ this.onwebkittransitionend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native JsWindow getOpener() /*-{
+ return this.opener;
+ }-*/;
+
+ public final native int getOuterHeight() /*-{
+ return this.outerHeight;
+ }-*/;
+
+ public final native int getOuterWidth() /*-{
+ return this.outerWidth;
+ }-*/;
+
+ public final native JsPagePopupController getPagePopupController() /*-{
+ return this.pagePopupController;
+ }-*/;
+
+ public final native int getPageXOffset() /*-{
+ return this.pageXOffset;
+ }-*/;
+
+ public final native int getPageYOffset() /*-{
+ return this.pageYOffset;
+ }-*/;
+
+ public final native JsWindow getParent() /*-{
+ return this.parent;
+ }-*/;
+
+ public final native JsPerformance getPerformance() /*-{
+ return this.performance;
+ }-*/;
+
+ public final native JsBarProp getPersonalbar() /*-{
+ return this.personalbar;
+ }-*/;
+
+ public final native JsScreen getScreen() /*-{
+ return this.screen;
+ }-*/;
+
+ public final native int getScreenLeft() /*-{
+ return this.screenLeft;
+ }-*/;
+
+ public final native int getScreenTop() /*-{
+ return this.screenTop;
+ }-*/;
+
+ public final native int getScreenX() /*-{
+ return this.screenX;
+ }-*/;
+
+ public final native int getScreenY() /*-{
+ return this.screenY;
+ }-*/;
+
+ public final native int getScrollX() /*-{
+ return this.scrollX;
+ }-*/;
+
+ public final native int getScrollY() /*-{
+ return this.scrollY;
+ }-*/;
+
+ public final native JsBarProp getScrollbars() /*-{
+ return this.scrollbars;
+ }-*/;
+
+ public final native JsWindow getSelf() /*-{
+ return this.self;
+ }-*/;
+
+ public final native JsStorage getSessionStorage() /*-{
+ return this.sessionStorage;
+ }-*/;
+
+ public final native String getStatus() /*-{
+ return this.status;
+ }-*/;
+
+ public final native void setStatus(String param_status) /*-{
+ this.status = param_status;
+ }-*/;
+
+ public final native JsBarProp getStatusbar() /*-{
+ return this.statusbar;
+ }-*/;
+
+ public final native JsStyleMedia getStyleMedia() /*-{
+ return this.styleMedia;
+ }-*/;
+
+ public final native JsBarProp getToolbar() /*-{
+ return this.toolbar;
+ }-*/;
+
+ public final native JsWindow getTop() /*-{
+ return this.top;
+ }-*/;
+
+ public final native JsIDBFactory getWebkitIndexedDB() /*-{
+ return this.webkitIndexedDB;
+ }-*/;
+
+ public final native JsNotificationCenter getWebkitNotifications() /*-{
+ return this.webkitNotifications;
+ }-*/;
+
+ public final native JsStorageInfo getWebkitStorageInfo() /*-{
+ return this.webkitStorageInfo;
+ }-*/;
+
+ public final native JsWindow getWindow() /*-{
+ return this.window;
+ }-*/;
+
+ public final native void alert(String message) /*-{
+ this.alert(message);
+ }-*/;
+
+ public final native String atob(String string) /*-{
+ return this.atob(string);
+ }-*/;
+
+ public final native void blur() /*-{
+ this.blur();
+ }-*/;
+
+ public final native String btoa(String string) /*-{
+ return this.btoa(string);
+ }-*/;
+
+ public final native void captureEvents() /*-{
+ this.captureEvents();
+ }-*/;
+
+ public final native void clearInterval(int handle) /*-{
+ this.clearInterval(handle);
+ }-*/;
+
+ public final native void clearTimeout(int handle) /*-{
+ this.clearTimeout(handle);
+ }-*/;
+
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+
+ public final native boolean confirm(String message) /*-{
+ return this.confirm(message);
+ }-*/;
+
+ public final native boolean find(String string, boolean caseSensitive, boolean backwards, boolean wrap, boolean wholeWord, boolean searchInFrames, boolean showDialog) /*-{
+ return this.find(string, caseSensitive, backwards, wrap, wholeWord, searchInFrames, showDialog);
+ }-*/;
+
+ public final native void focus() /*-{
+ this.focus();
+ }-*/;
+
+ public final native JsCSSStyleDeclaration getComputedStyle(Element element, String pseudoElement) /*-{
+ return this.getComputedStyle(element, pseudoElement);
+ }-*/;
+
+ public final native JsCSSRuleList getMatchedCSSRules(Element element, String pseudoElement) /*-{
+ return this.getMatchedCSSRules(element, pseudoElement);
+ }-*/;
+
+ public final native JsSelection getSelection() /*-{
+ return this.getSelection();
+ }-*/;
+
+ public final native JsMediaQueryList matchMedia(String query) /*-{
+ return this.matchMedia(query);
+ }-*/;
+
+ public final native void moveBy(float x, float y) /*-{
+ this.moveBy(x, y);
+ }-*/;
+
+ public final native void moveTo(float x, float y) /*-{
+ this.moveTo(x, y);
+ }-*/;
+
+ public final native JsWindow open(String url, String name) /*-{
+ return this.open(url, name);
+ }-*/;
+
+ public final native JsWindow open(String url, String name, String options) /*-{
+ return this.open(url, name, options);
+ }-*/;
+
+ public final native JsDatabase openDatabase(String name, String version, String displayName, int estimatedSize, DatabaseCallback creationCallback) /*-{
+ return this.openDatabase(name, version, displayName, estimatedSize, $entry(creationCallback.@elemental.html.DatabaseCallback::onDatabaseCallback(Ljava/lang/Object;)).bind(creationCallback));
+ }-*/;
+
+ public final native JsDatabase openDatabase(String name, String version, String displayName, int estimatedSize) /*-{
+ return this.openDatabase(name, version, displayName, estimatedSize);
+ }-*/;
+
+ public final native void postMessage(Object message, String targetOrigin) /*-{
+ this.postMessage(message, targetOrigin);
+ }-*/;
+
+ public final native void postMessage(Object message, String targetOrigin, Indexable messagePorts) /*-{
+ this.postMessage(message, targetOrigin, messagePorts);
+ }-*/;
+
+ public final native void print() /*-{
+ this.print();
+ }-*/;
+
+ public final native String prompt(String message, String defaultValue) /*-{
+ return this.prompt(message, defaultValue);
+ }-*/;
+
+ public final native void releaseEvents() /*-{
+ this.releaseEvents();
+ }-*/;
+
+ public final native void resizeBy(float x, float y) /*-{
+ this.resizeBy(x, y);
+ }-*/;
+
+ public final native void resizeTo(float width, float height) /*-{
+ this.resizeTo(width, height);
+ }-*/;
+
+ public final native void scroll(int x, int y) /*-{
+ this.scroll(x, y);
+ }-*/;
+
+ public final native void scrollBy(int x, int y) /*-{
+ this.scrollBy(x, y);
+ }-*/;
+
+ public final native void scrollTo(int x, int y) /*-{
+ this.scrollTo(x, y);
+ }-*/;
+
+ public final native int setInterval(TimeoutHandler handler, int timeout) /*-{
+ return this.setInterval($entry(handler.@elemental.dom.TimeoutHandler::onTimeoutHandler()).bind(handler), timeout);
+ }-*/;
+
+ public final native int setTimeout(TimeoutHandler handler, int timeout) /*-{
+ return this.setTimeout($entry(handler.@elemental.dom.TimeoutHandler::onTimeoutHandler()).bind(handler), timeout);
+ }-*/;
+
+ public final native Object showModalDialog(String url) /*-{
+ return this.showModalDialog(url);
+ }-*/;
+
+ public final native Object showModalDialog(String url, Object dialogArgs) /*-{
+ return this.showModalDialog(url, dialogArgs);
+ }-*/;
+
+ public final native Object showModalDialog(String url, Object dialogArgs, String featureArgs) /*-{
+ return this.showModalDialog(url, dialogArgs, featureArgs);
+ }-*/;
+
+ public final native void stop() /*-{
+ this.stop();
+ }-*/;
+
+ public final native void webkitCancelAnimationFrame(int id) /*-{
+ this.webkitCancelAnimationFrame(id);
+ }-*/;
+
+ public final native void webkitCancelRequestAnimationFrame(int id) /*-{
+ this.webkitCancelRequestAnimationFrame(id);
+ }-*/;
+
+ public final native JsPoint webkitConvertPointFromNodeToPage(Node node, Point p) /*-{
+ return this.webkitConvertPointFromNodeToPage(node, p);
+ }-*/;
+
+ public final native JsPoint webkitConvertPointFromPageToNode(Node node, Point p) /*-{
+ return this.webkitConvertPointFromPageToNode(node, p);
+ }-*/;
+
+ public final native void webkitPostMessage(Object message, String targetOrigin) /*-{
+ this.webkitPostMessage(message, targetOrigin);
+ }-*/;
+
+ public final native void webkitPostMessage(Object message, String targetOrigin, Indexable transferList) /*-{
+ this.webkitPostMessage(message, targetOrigin, transferList);
+ }-*/;
+
+ public final native int webkitRequestAnimationFrame(RequestAnimationFrameCallback callback) /*-{
+ return this.webkitRequestAnimationFrame($entry(callback.@elemental.dom.RequestAnimationFrameCallback::onRequestAnimationFrameCallback(D)).bind(callback));
+ }-*/;
+
+ public final native void webkitRequestFileSystem(int type, double size, FileSystemCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.webkitRequestFileSystem(type, size, $entry(successCallback.@elemental.html.FileSystemCallback::onFileSystemCallback(Lelemental/html/DOMFileSystem;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void webkitRequestFileSystem(int type, double size, FileSystemCallback successCallback) /*-{
+ this.webkitRequestFileSystem(type, size, $entry(successCallback.@elemental.html.FileSystemCallback::onFileSystemCallback(Lelemental/html/DOMFileSystem;)).bind(successCallback));
+ }-*/;
+
+ public final native void webkitResolveLocalFileSystemURL(String url, EntryCallback successCallback) /*-{
+ this.webkitResolveLocalFileSystemURL(url, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback));
+ }-*/;
+
+ public final native void webkitResolveLocalFileSystemURL(String url) /*-{
+ this.webkitResolveLocalFileSystemURL(url);
+ }-*/;
+
+ public final native void webkitResolveLocalFileSystemURL(String url, EntryCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.webkitResolveLocalFileSystemURL(url, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native JsAudioElement newAudioElement(String src) /*-{ return new AudioElement(src); }-*/;
+
+ public final native JsCSSMatrix newCSSMatrix(String cssValue) /*-{ return new CSSMatrix(cssValue); }-*/;
+
+ public final native JsDOMParser newDOMParser() /*-{ return new DOMParser(); }-*/;
+
+ public final native JsDOMURL newDOMURL() /*-{ return new DOMURL(); }-*/;
+
+ public final native JsDeprecatedPeerConnection newDeprecatedPeerConnection(String serverConfiguration, SignalingCallback signalingCallback) /*-{ return new DeprecatedPeerConnection(serverConfiguration, $entry(signalingCallback.@elemental.html.SignalingCallback::onSignalingCallback(Ljava/lang/String;Lelemental/html/DeprecatedPeerConnection;)).bind(signalingCallback)); }-*/;
+
+ public final native JsEventSource newEventSource(String scriptUrl) /*-{ return new EventSource(scriptUrl); }-*/;
+
+ public final native JsFileReader newFileReader() /*-{ return new FileReader(); }-*/;
+
+ public final native JsFileReaderSync newFileReaderSync() /*-{ return new FileReaderSync(); }-*/;
+
+ public final native JsFloat32Array newFloat32Array(int length) /*-{ return new Float32Array(length); }-*/;
+
+ public final native JsFloat32Array newFloat32Array(IndexableNumber list) /*-{ return new Float32Array(list); }-*/;
+
+ public final native JsFloat32Array newFloat32Array(ArrayBuffer buffer, int byteOffset, int length) /*-{ return new Float32Array(buffer, byteOffset, length); }-*/;
+
+ public final native JsFloat64Array newFloat64Array(int length) /*-{ return new Float64Array(length); }-*/;
+
+ public final native JsFloat64Array newFloat64Array(IndexableNumber list) /*-{ return new Float64Array(list); }-*/;
+
+ public final native JsFloat64Array newFloat64Array(ArrayBuffer buffer, int byteOffset, int length) /*-{ return new Float64Array(buffer, byteOffset, length); }-*/;
+
+ public final native JsIceCandidate newIceCandidate(String label, String candidateLine) /*-{ return new IceCandidate(label, candidateLine); }-*/;
+
+ public final native JsInt16Array newInt16Array(int length) /*-{ return new Int16Array(length); }-*/;
+
+ public final native JsInt16Array newInt16Array(IndexableNumber list) /*-{ return new Int16Array(list); }-*/;
+
+ public final native JsInt16Array newInt16Array(ArrayBuffer buffer, int byteOffset, int length) /*-{ return new Int16Array(buffer, byteOffset, length); }-*/;
+
+ public final native JsInt32Array newInt32Array(int length) /*-{ return new Int32Array(length); }-*/;
+
+ public final native JsInt32Array newInt32Array(IndexableNumber list) /*-{ return new Int32Array(list); }-*/;
+
+ public final native JsInt32Array newInt32Array(ArrayBuffer buffer, int byteOffset, int length) /*-{ return new Int32Array(buffer, byteOffset, length); }-*/;
+
+ public final native JsInt8Array newInt8Array(int length) /*-{ return new Int8Array(length); }-*/;
+
+ public final native JsInt8Array newInt8Array(IndexableNumber list) /*-{ return new Int8Array(list); }-*/;
+
+ public final native JsInt8Array newInt8Array(ArrayBuffer buffer, int byteOffset, int length) /*-{ return new Int8Array(buffer, byteOffset, length); }-*/;
+
+ public final native JsMediaController newMediaController() /*-{ return new MediaController(); }-*/;
+
+ public final native JsMediaStream newMediaStream(MediaStreamTrackList audioTracks, MediaStreamTrackList videoTracks) /*-{ return new MediaStream(audioTracks, videoTracks); }-*/;
+
+ public final native JsMessageChannel newMessageChannel() /*-{ return new MessageChannel(); }-*/;
+
+ public final native JsNotification newNotification(String title, Mappable options) /*-{ return new Notification(title, options); }-*/;
+
+ public final native JsOptionElement newOptionElement(String data, String value, boolean defaultSelected, boolean selected) /*-{ return new OptionElement(data, value, defaultSelected, selected); }-*/;
+
+ public final native JsPeerConnection00 newPeerConnection00(String serverConfiguration, IceCallback iceCallback) /*-{ return new PeerConnection00(serverConfiguration, $entry(iceCallback.@elemental.html.IceCallback::onIceCallback(Lelemental/html/IceCandidate;ZLelemental/html/PeerConnection00;)).bind(iceCallback)); }-*/;
+
+ public final native JsSessionDescription newSessionDescription(String sdp) /*-{ return new SessionDescription(sdp); }-*/;
+
+ public final native JsShadowRoot newShadowRoot(Element host) /*-{ return new ShadowRoot(host); }-*/;
+
+ public final native JsSharedWorker newSharedWorker(String scriptURL, String name) /*-{ return new SharedWorker(scriptURL, name); }-*/;
+
+ public final native JsSpeechGrammar newSpeechGrammar() /*-{ return new SpeechGrammar(); }-*/;
+
+ public final native JsSpeechGrammarList newSpeechGrammarList() /*-{ return new SpeechGrammarList(); }-*/;
+
+ public final native JsSpeechRecognition newSpeechRecognition() /*-{ return new SpeechRecognition(); }-*/;
+
+ public final native JsTextTrackCue newTextTrackCue(String id, double startTime, double endTime, String text, String settings, boolean pauseOnExit) /*-{ return new TextTrackCue(id, startTime, endTime, text, settings, pauseOnExit); }-*/;
+
+ public final native JsUint16Array newUint16Array(int length) /*-{ return new Uint16Array(length); }-*/;
+
+ public final native JsUint16Array newUint16Array(IndexableNumber list) /*-{ return new Uint16Array(list); }-*/;
+
+ public final native JsUint16Array newUint16Array(ArrayBuffer buffer, int byteOffset, int length) /*-{ return new Uint16Array(buffer, byteOffset, length); }-*/;
+
+ public final native JsUint32Array newUint32Array(int length) /*-{ return new Uint32Array(length); }-*/;
+
+ public final native JsUint32Array newUint32Array(IndexableNumber list) /*-{ return new Uint32Array(list); }-*/;
+
+ public final native JsUint32Array newUint32Array(ArrayBuffer buffer, int byteOffset, int length) /*-{ return new Uint32Array(buffer, byteOffset, length); }-*/;
+
+ public final native JsUint8Array newUint8Array(int length) /*-{ return new Uint8Array(length); }-*/;
+
+ public final native JsUint8Array newUint8Array(IndexableNumber list) /*-{ return new Uint8Array(list); }-*/;
+
+ public final native JsUint8Array newUint8Array(ArrayBuffer buffer, int byteOffset, int length) /*-{ return new Uint8Array(buffer, byteOffset, length); }-*/;
+
+ public final native JsUint8ClampedArray newUint8ClampedArray(int length) /*-{ return new Uint8ClampedArray(length); }-*/;
+
+ public final native JsUint8ClampedArray newUint8ClampedArray(IndexableNumber list) /*-{ return new Uint8ClampedArray(list); }-*/;
+
+ public final native JsUint8ClampedArray newUint8ClampedArray(ArrayBuffer buffer, int byteOffset, int length) /*-{ return new Uint8ClampedArray(buffer, byteOffset, length); }-*/;
+
+ public final native JsWorker newWorker(String scriptUrl) /*-{ return new Worker(scriptUrl); }-*/;
+
+ public final native JsXMLHttpRequest newXMLHttpRequest() /*-{ return new XMLHttpRequest(); }-*/;
+
+ public final native JsXMLSerializer newXMLSerializer() /*-{ return new XMLSerializer(); }-*/;
+
+ public final native JsXPathEvaluator newXPathEvaluator() /*-{ return new XPathEvaluator(); }-*/;
+
+ public final native JsXSLTProcessor newXSLTProcessor() /*-{ return new XSLTProcessor(); }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWorker.java b/elemental/src/elemental/js/html/JsWorker.java
new file mode 100644
index 0000000..5f6b00f
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWorker.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.js.html;
+import elemental.util.Indexable;
+import elemental.html.Worker;
+import elemental.html.AbstractWorker;
+import elemental.js.util.JsIndexable;
+import elemental.events.EventListener;
+import elemental.js.events.JsEventListener;
+
+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 JsWorker extends JsAbstractWorker implements Worker {
+ protected JsWorker() {}
+
+ public final native EventListener getOnmessage() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmessage);
+ }-*/;
+
+ public final native void setOnmessage(EventListener listener) /*-{
+ this.onmessage = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native void postMessage(Object message) /*-{
+ this.postMessage(message);
+ }-*/;
+
+ public final native void postMessage(Object message, Indexable messagePorts) /*-{
+ this.postMessage(message, messagePorts);
+ }-*/;
+
+ public final native void terminate() /*-{
+ this.terminate();
+ }-*/;
+
+ public final native void webkitPostMessage(Object message) /*-{
+ this.webkitPostMessage(message);
+ }-*/;
+
+ public final native void webkitPostMessage(Object message, Indexable messagePorts) /*-{
+ this.webkitPostMessage(message, messagePorts);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWorkerGlobalScope.java b/elemental/src/elemental/js/html/JsWorkerGlobalScope.java
new file mode 100644
index 0000000..02fd42e
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWorkerGlobalScope.java
@@ -0,0 +1,155 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.DatabaseSync;
+import elemental.html.FileSystemCallback;
+import elemental.html.WorkerLocation;
+import elemental.dom.TimeoutHandler;
+import elemental.html.NotificationCenter;
+import elemental.html.WorkerGlobalScope;
+import elemental.html.EntryCallback;
+import elemental.html.WorkerNavigator;
+import elemental.html.EntrySync;
+import elemental.html.DOMFileSystemSync;
+import elemental.js.events.JsEvent;
+import elemental.html.DatabaseCallback;
+import elemental.events.EventListener;
+import elemental.html.ErrorCallback;
+import elemental.html.IDBFactory;
+import elemental.html.Database;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsWorkerGlobalScope extends JsElementalMixinBase implements WorkerGlobalScope {
+ protected JsWorkerGlobalScope() {}
+
+ public final native JsWorkerLocation getLocation() /*-{
+ return this.location;
+ }-*/;
+
+ public final native JsWorkerNavigator getNavigator() /*-{
+ return this.navigator;
+ }-*/;
+
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native JsWorkerGlobalScope getSelf() /*-{
+ return this.self;
+ }-*/;
+
+ public final native JsIDBFactory getWebkitIndexedDB() /*-{
+ return this.webkitIndexedDB;
+ }-*/;
+
+ public final native JsNotificationCenter getWebkitNotifications() /*-{
+ return this.webkitNotifications;
+ }-*/;
+
+ public final native void clearInterval(int handle) /*-{
+ this.clearInterval(handle);
+ }-*/;
+
+ public final native void clearTimeout(int handle) /*-{
+ this.clearTimeout(handle);
+ }-*/;
+
+ public final native void close() /*-{
+ this.close();
+ }-*/;
+
+ public final native void importScripts() /*-{
+ this.importScripts();
+ }-*/;
+
+ public final native JsDatabase openDatabase(String name, String version, String displayName, int estimatedSize, DatabaseCallback creationCallback) /*-{
+ return this.openDatabase(name, version, displayName, estimatedSize, $entry(creationCallback.@elemental.html.DatabaseCallback::onDatabaseCallback(Ljava/lang/Object;)).bind(creationCallback));
+ }-*/;
+
+ public final native JsDatabase openDatabase(String name, String version, String displayName, int estimatedSize) /*-{
+ return this.openDatabase(name, version, displayName, estimatedSize);
+ }-*/;
+
+ public final native JsDatabaseSync openDatabaseSync(String name, String version, String displayName, int estimatedSize, DatabaseCallback creationCallback) /*-{
+ return this.openDatabaseSync(name, version, displayName, estimatedSize, $entry(creationCallback.@elemental.html.DatabaseCallback::onDatabaseCallback(Ljava/lang/Object;)).bind(creationCallback));
+ }-*/;
+
+ public final native JsDatabaseSync openDatabaseSync(String name, String version, String displayName, int estimatedSize) /*-{
+ return this.openDatabaseSync(name, version, displayName, estimatedSize);
+ }-*/;
+
+ public final native int setInterval(TimeoutHandler handler, int timeout) /*-{
+ return this.setInterval($entry(handler.@elemental.dom.TimeoutHandler::onTimeoutHandler()).bind(handler), timeout);
+ }-*/;
+
+ public final native int setTimeout(TimeoutHandler handler, int timeout) /*-{
+ return this.setTimeout($entry(handler.@elemental.dom.TimeoutHandler::onTimeoutHandler()).bind(handler), timeout);
+ }-*/;
+
+ public final native void webkitRequestFileSystem(int type, double size, FileSystemCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.webkitRequestFileSystem(type, size, $entry(successCallback.@elemental.html.FileSystemCallback::onFileSystemCallback(Lelemental/html/DOMFileSystem;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+
+ public final native void webkitRequestFileSystem(int type, double size, FileSystemCallback successCallback) /*-{
+ this.webkitRequestFileSystem(type, size, $entry(successCallback.@elemental.html.FileSystemCallback::onFileSystemCallback(Lelemental/html/DOMFileSystem;)).bind(successCallback));
+ }-*/;
+
+ public final native void webkitRequestFileSystem(int type, double size) /*-{
+ this.webkitRequestFileSystem(type, size);
+ }-*/;
+
+ public final native JsDOMFileSystemSync webkitRequestFileSystemSync(int type, double size) /*-{
+ return this.webkitRequestFileSystemSync(type, size);
+ }-*/;
+
+ public final native JsEntrySync webkitResolveLocalFileSystemSyncURL(String url) /*-{
+ return this.webkitResolveLocalFileSystemSyncURL(url);
+ }-*/;
+
+ public final native void webkitResolveLocalFileSystemURL(String url, EntryCallback successCallback) /*-{
+ this.webkitResolveLocalFileSystemURL(url, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback));
+ }-*/;
+
+ public final native void webkitResolveLocalFileSystemURL(String url) /*-{
+ this.webkitResolveLocalFileSystemURL(url);
+ }-*/;
+
+ public final native void webkitResolveLocalFileSystemURL(String url, EntryCallback successCallback, ErrorCallback errorCallback) /*-{
+ this.webkitResolveLocalFileSystemURL(url, $entry(successCallback.@elemental.html.EntryCallback::onEntryCallback(Lelemental/html/Entry;)).bind(successCallback), $entry(errorCallback.@elemental.html.ErrorCallback::onErrorCallback(Lelemental/html/FileError;)).bind(errorCallback));
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWorkerLocation.java b/elemental/src/elemental/js/html/JsWorkerLocation.java
new file mode 100644
index 0000000..15f7af0
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWorkerLocation.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WorkerLocation;
+
+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 JsWorkerLocation extends JsElementalMixinBase implements WorkerLocation {
+ protected JsWorkerLocation() {}
+
+ public final native String getHash() /*-{
+ return this.hash;
+ }-*/;
+
+ public final native String getHost() /*-{
+ return this.host;
+ }-*/;
+
+ public final native String getHostname() /*-{
+ return this.hostname;
+ }-*/;
+
+ public final native String getHref() /*-{
+ return this.href;
+ }-*/;
+
+ public final native String getPathname() /*-{
+ return this.pathname;
+ }-*/;
+
+ public final native String getPort() /*-{
+ return this.port;
+ }-*/;
+
+ public final native String getProtocol() /*-{
+ return this.protocol;
+ }-*/;
+
+ public final native String getSearch() /*-{
+ return this.search;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/html/JsWorkerNavigator.java b/elemental/src/elemental/js/html/JsWorkerNavigator.java
new file mode 100644
index 0000000..cf50de6
--- /dev/null
+++ b/elemental/src/elemental/js/html/JsWorkerNavigator.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.js.html;
+import elemental.html.WorkerNavigator;
+
+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 JsWorkerNavigator extends JsElementalMixinBase implements WorkerNavigator {
+ protected JsWorkerNavigator() {}
+
+ public final native String getAppName() /*-{
+ return this.appName;
+ }-*/;
+
+ public final native String getAppVersion() /*-{
+ return this.appVersion;
+ }-*/;
+
+ public final native boolean isOnLine() /*-{
+ return this.onLine;
+ }-*/;
+
+ public final native String getPlatform() /*-{
+ return this.platform;
+ }-*/;
+
+ public final native String getUserAgent() /*-{
+ return this.userAgent;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/ranges/JsRange.java b/elemental/src/elemental/js/ranges/JsRange.java
new file mode 100644
index 0000000..c647c65
--- /dev/null
+++ b/elemental/src/elemental/js/ranges/JsRange.java
@@ -0,0 +1,167 @@
+/*
+ * 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 elemental.js.ranges;
+import elemental.dom.Node;
+import elemental.js.dom.JsDocumentFragment;
+import elemental.dom.DocumentFragment;
+import elemental.js.html.JsClientRect;
+import elemental.ranges.Range;
+import elemental.js.html.JsClientRectList;
+import elemental.html.ClientRect;
+import elemental.js.dom.JsNode;
+import elemental.html.ClientRectList;
+
+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 JsRange extends JsElementalMixinBase implements Range {
+ protected JsRange() {}
+
+ public final native boolean isCollapsed() /*-{
+ return this.collapsed;
+ }-*/;
+
+ public final native JsNode getCommonAncestorContainer() /*-{
+ return this.commonAncestorContainer;
+ }-*/;
+
+ public final native JsNode getEndContainer() /*-{
+ return this.endContainer;
+ }-*/;
+
+ public final native int getEndOffset() /*-{
+ return this.endOffset;
+ }-*/;
+
+ public final native JsNode getStartContainer() /*-{
+ return this.startContainer;
+ }-*/;
+
+ public final native int getStartOffset() /*-{
+ return this.startOffset;
+ }-*/;
+
+ public final native JsDocumentFragment cloneContents() /*-{
+ return this.cloneContents();
+ }-*/;
+
+ public final native JsRange cloneRange() /*-{
+ return this.cloneRange();
+ }-*/;
+
+ public final native void collapse(boolean toStart) /*-{
+ this.collapse(toStart);
+ }-*/;
+
+ public final native short compareNode(Node refNode) /*-{
+ return this.compareNode(refNode);
+ }-*/;
+
+ public final native short comparePoint(Node refNode, int offset) /*-{
+ return this.comparePoint(refNode, offset);
+ }-*/;
+
+ public final native JsDocumentFragment createContextualFragment(String html) /*-{
+ return this.createContextualFragment(html);
+ }-*/;
+
+ public final native void deleteContents() /*-{
+ this.deleteContents();
+ }-*/;
+
+ public final native void detach() /*-{
+ this.detach();
+ }-*/;
+
+ public final native void expand(String unit) /*-{
+ this.expand(unit);
+ }-*/;
+
+ public final native JsDocumentFragment extractContents() /*-{
+ return this.extractContents();
+ }-*/;
+
+ public final native JsClientRect getBoundingClientRect() /*-{
+ return this.getBoundingClientRect();
+ }-*/;
+
+ public final native JsClientRectList getClientRects() /*-{
+ return this.getClientRects();
+ }-*/;
+
+ public final native void insertNode(Node newNode) /*-{
+ this.insertNode(newNode);
+ }-*/;
+
+ public final native boolean intersectsNode(Node refNode) /*-{
+ return this.intersectsNode(refNode);
+ }-*/;
+
+ public final native boolean isPointInRange(Node refNode, int offset) /*-{
+ return this.isPointInRange(refNode, offset);
+ }-*/;
+
+ public final native void selectNode(Node refNode) /*-{
+ this.selectNode(refNode);
+ }-*/;
+
+ public final native void selectNodeContents(Node refNode) /*-{
+ this.selectNodeContents(refNode);
+ }-*/;
+
+ public final native void setEnd(Node refNode, int offset) /*-{
+ this.setEnd(refNode, offset);
+ }-*/;
+
+ public final native void setEndAfter(Node refNode) /*-{
+ this.setEndAfter(refNode);
+ }-*/;
+
+ public final native void setEndBefore(Node refNode) /*-{
+ this.setEndBefore(refNode);
+ }-*/;
+
+ public final native void setStart(Node refNode, int offset) /*-{
+ this.setStart(refNode, offset);
+ }-*/;
+
+ public final native void setStartAfter(Node refNode) /*-{
+ this.setStartAfter(refNode);
+ }-*/;
+
+ public final native void setStartBefore(Node refNode) /*-{
+ this.setStartBefore(refNode);
+ }-*/;
+
+ public final native void surroundContents(Node newParent) /*-{
+ this.surroundContents(newParent);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/ranges/JsRangeException.java b/elemental/src/elemental/js/ranges/JsRangeException.java
new file mode 100644
index 0000000..c66ffd6
--- /dev/null
+++ b/elemental/src/elemental/js/ranges/JsRangeException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.ranges;
+import elemental.ranges.RangeException;
+
+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 JsRangeException extends JsElementalMixinBase implements RangeException {
+ protected JsRangeException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/stylesheets/JsMediaList.java b/elemental/src/elemental/js/stylesheets/JsMediaList.java
new file mode 100644
index 0000000..7ef05b2
--- /dev/null
+++ b/elemental/src/elemental/js/stylesheets/JsMediaList.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.stylesheets;
+import elemental.stylesheets.MediaList;
+
+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 JsMediaList extends JsIndexable implements MediaList, Indexable {
+ protected JsMediaList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native String getMediaText() /*-{
+ return this.mediaText;
+ }-*/;
+
+ public final native void setMediaText(String param_mediaText) /*-{
+ this.mediaText = param_mediaText;
+ }-*/;
+
+ public final native void appendMedium(String newMedium) /*-{
+ this.appendMedium(newMedium);
+ }-*/;
+
+ public final native void deleteMedium(String oldMedium) /*-{
+ this.deleteMedium(oldMedium);
+ }-*/;
+
+ public final native String item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/stylesheets/JsStyleSheet.java b/elemental/src/elemental/js/stylesheets/JsStyleSheet.java
new file mode 100644
index 0000000..d9f2f00
--- /dev/null
+++ b/elemental/src/elemental/js/stylesheets/JsStyleSheet.java
@@ -0,0 +1,74 @@
+/*
+ * 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 elemental.js.stylesheets;
+import elemental.dom.Node;
+import elemental.stylesheets.StyleSheet;
+import elemental.stylesheets.MediaList;
+import elemental.js.dom.JsNode;
+
+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 JsStyleSheet extends JsElementalMixinBase implements StyleSheet {
+ protected JsStyleSheet() {}
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native String getHref() /*-{
+ return this.href;
+ }-*/;
+
+ public final native JsMediaList getMedia() /*-{
+ return this.media;
+ }-*/;
+
+ public final native JsNode getOwnerNode() /*-{
+ return this.ownerNode;
+ }-*/;
+
+ public final native JsStyleSheet getParentStyleSheet() /*-{
+ return this.parentStyleSheet;
+ }-*/;
+
+ public final native String getTitle() /*-{
+ return this.title;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/stylesheets/JsStyleSheetList.java b/elemental/src/elemental/js/stylesheets/JsStyleSheetList.java
new file mode 100644
index 0000000..4ff6b95
--- /dev/null
+++ b/elemental/src/elemental/js/stylesheets/JsStyleSheetList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.stylesheets;
+import elemental.stylesheets.StyleSheetList;
+import elemental.stylesheets.StyleSheet;
+
+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 JsStyleSheetList extends JsIndexable implements StyleSheetList, Indexable {
+ protected JsStyleSheetList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsStyleSheet item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAElement.java b/elemental/src/elemental/js/svg/JsSVGAElement.java
new file mode 100644
index 0000000..9189dec
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAElement.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAElement;
+
+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 JsSVGAElement extends JsSVGElement implements SVGAElement {
+ protected JsSVGAElement() {}
+
+ public final native JsSVGAnimatedString getTarget() /*-{
+ return this.target;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAltGlyphDefElement.java b/elemental/src/elemental/js/svg/JsSVGAltGlyphDefElement.java
new file mode 100644
index 0000000..5d421a7
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAltGlyphDefElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGAltGlyphDefElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGAltGlyphDefElement extends JsSVGElement implements SVGAltGlyphDefElement {
+ protected JsSVGAltGlyphDefElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAltGlyphElement.java b/elemental/src/elemental/js/svg/JsSVGAltGlyphElement.java
new file mode 100644
index 0000000..caf1a57
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAltGlyphElement.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGTextPositioningElement;
+import elemental.svg.SVGAltGlyphElement;
+
+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 JsSVGAltGlyphElement extends JsSVGTextPositioningElement implements SVGAltGlyphElement {
+ protected JsSVGAltGlyphElement() {}
+
+ public final native String getFormat() /*-{
+ return this.format;
+ }-*/;
+
+ public final native void setFormat(String param_format) /*-{
+ this.format = param_format;
+ }-*/;
+
+ public final native String getGlyphRef() /*-{
+ return this.glyphRef;
+ }-*/;
+
+ public final native void setGlyphRef(String param_glyphRef) /*-{
+ this.glyphRef = param_glyphRef;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAltGlyphItemElement.java b/elemental/src/elemental/js/svg/JsSVGAltGlyphItemElement.java
new file mode 100644
index 0000000..68dcc5f
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAltGlyphItemElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAltGlyphItemElement;
+
+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 JsSVGAltGlyphItemElement extends JsSVGElement implements SVGAltGlyphItemElement {
+ protected JsSVGAltGlyphItemElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAngle.java b/elemental/src/elemental/js/svg/JsSVGAngle.java
new file mode 100644
index 0000000..10b2c35
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAngle.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAngle;
+
+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 JsSVGAngle extends JsElementalMixinBase implements SVGAngle {
+ protected JsSVGAngle() {}
+
+ public final native int getUnitType() /*-{
+ return this.unitType;
+ }-*/;
+
+ public final native float getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(float param_value) /*-{
+ this.value = param_value;
+ }-*/;
+
+ public final native String getValueAsString() /*-{
+ return this.valueAsString;
+ }-*/;
+
+ public final native void setValueAsString(String param_valueAsString) /*-{
+ this.valueAsString = param_valueAsString;
+ }-*/;
+
+ public final native float getValueInSpecifiedUnits() /*-{
+ return this.valueInSpecifiedUnits;
+ }-*/;
+
+ public final native void setValueInSpecifiedUnits(float param_valueInSpecifiedUnits) /*-{
+ this.valueInSpecifiedUnits = param_valueInSpecifiedUnits;
+ }-*/;
+
+ public final native void convertToSpecifiedUnits(int unitType) /*-{
+ this.convertToSpecifiedUnits(unitType);
+ }-*/;
+
+ public final native void newValueSpecifiedUnits(int unitType, float valueInSpecifiedUnits) /*-{
+ this.newValueSpecifiedUnits(unitType, valueInSpecifiedUnits);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimateColorElement.java b/elemental/src/elemental/js/svg/JsSVGAnimateColorElement.java
new file mode 100644
index 0000000..5467528
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimateColorElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGAnimationElement;
+import elemental.svg.SVGAnimateColorElement;
+
+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 JsSVGAnimateColorElement extends JsSVGAnimationElement implements SVGAnimateColorElement {
+ protected JsSVGAnimateColorElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimateElement.java b/elemental/src/elemental/js/svg/JsSVGAnimateElement.java
new file mode 100644
index 0000000..1928774
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimateElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGAnimateElement;
+import elemental.svg.SVGAnimationElement;
+
+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 JsSVGAnimateElement extends JsSVGAnimationElement implements SVGAnimateElement {
+ protected JsSVGAnimateElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimateMotionElement.java b/elemental/src/elemental/js/svg/JsSVGAnimateMotionElement.java
new file mode 100644
index 0000000..aa043a1
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimateMotionElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGAnimationElement;
+import elemental.svg.SVGAnimateMotionElement;
+
+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 JsSVGAnimateMotionElement extends JsSVGAnimationElement implements SVGAnimateMotionElement {
+ protected JsSVGAnimateMotionElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimateTransformElement.java b/elemental/src/elemental/js/svg/JsSVGAnimateTransformElement.java
new file mode 100644
index 0000000..69080d2
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimateTransformElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGAnimationElement;
+import elemental.svg.SVGAnimateTransformElement;
+
+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 JsSVGAnimateTransformElement extends JsSVGAnimationElement implements SVGAnimateTransformElement {
+ protected JsSVGAnimateTransformElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedAngle.java b/elemental/src/elemental/js/svg/JsSVGAnimatedAngle.java
new file mode 100644
index 0000000..2fb86ff
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedAngle.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAngle;
+import elemental.svg.SVGAnimatedAngle;
+
+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 JsSVGAnimatedAngle extends JsElementalMixinBase implements SVGAnimatedAngle {
+ protected JsSVGAnimatedAngle() {}
+
+ public final native JsSVGAngle getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native JsSVGAngle getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedBoolean.java b/elemental/src/elemental/js/svg/JsSVGAnimatedBoolean.java
new file mode 100644
index 0000000..f3ff8cd
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedBoolean.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedBoolean;
+
+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 JsSVGAnimatedBoolean extends JsElementalMixinBase implements SVGAnimatedBoolean {
+ protected JsSVGAnimatedBoolean() {}
+
+ public final native boolean isAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native boolean isBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+
+ public final native void setBaseVal(boolean param_baseVal) /*-{
+ this.baseVal = param_baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedEnumeration.java b/elemental/src/elemental/js/svg/JsSVGAnimatedEnumeration.java
new file mode 100644
index 0000000..036e6e4
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedEnumeration.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedEnumeration;
+
+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 JsSVGAnimatedEnumeration extends JsElementalMixinBase implements SVGAnimatedEnumeration {
+ protected JsSVGAnimatedEnumeration() {}
+
+ public final native int getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native int getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+
+ public final native void setBaseVal(int param_baseVal) /*-{
+ this.baseVal = param_baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedInteger.java b/elemental/src/elemental/js/svg/JsSVGAnimatedInteger.java
new file mode 100644
index 0000000..181e154
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedInteger.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedInteger;
+
+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 JsSVGAnimatedInteger extends JsElementalMixinBase implements SVGAnimatedInteger {
+ protected JsSVGAnimatedInteger() {}
+
+ public final native int getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native int getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+
+ public final native void setBaseVal(int param_baseVal) /*-{
+ this.baseVal = param_baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedLength.java b/elemental/src/elemental/js/svg/JsSVGAnimatedLength.java
new file mode 100644
index 0000000..ccda4ac
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedLength.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGLength;
+
+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 JsSVGAnimatedLength extends JsElementalMixinBase implements SVGAnimatedLength {
+ protected JsSVGAnimatedLength() {}
+
+ public final native JsSVGLength getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native JsSVGLength getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedLengthList.java b/elemental/src/elemental/js/svg/JsSVGAnimatedLengthList.java
new file mode 100644
index 0000000..d42f6c0
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedLengthList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLengthList;
+import elemental.svg.SVGLengthList;
+
+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 JsSVGAnimatedLengthList extends JsElementalMixinBase implements SVGAnimatedLengthList {
+ protected JsSVGAnimatedLengthList() {}
+
+ public final native JsSVGLengthList getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native JsSVGLengthList getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedNumber.java b/elemental/src/elemental/js/svg/JsSVGAnimatedNumber.java
new file mode 100644
index 0000000..951f443
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedNumber.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedNumber;
+
+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 JsSVGAnimatedNumber extends JsElementalMixinBase implements SVGAnimatedNumber {
+ protected JsSVGAnimatedNumber() {}
+
+ public final native float getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native float getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+
+ public final native void setBaseVal(float param_baseVal) /*-{
+ this.baseVal = param_baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedNumberList.java b/elemental/src/elemental/js/svg/JsSVGAnimatedNumberList.java
new file mode 100644
index 0000000..a745bb0
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedNumberList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGNumberList;
+import elemental.svg.SVGAnimatedNumberList;
+
+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 JsSVGAnimatedNumberList extends JsElementalMixinBase implements SVGAnimatedNumberList {
+ protected JsSVGAnimatedNumberList() {}
+
+ public final native JsSVGNumberList getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native JsSVGNumberList getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedPreserveAspectRatio.java b/elemental/src/elemental/js/svg/JsSVGAnimatedPreserveAspectRatio.java
new file mode 100644
index 0000000..d55d32a
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedPreserveAspectRatio.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedPreserveAspectRatio;
+import elemental.svg.SVGPreserveAspectRatio;
+
+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 JsSVGAnimatedPreserveAspectRatio extends JsElementalMixinBase implements SVGAnimatedPreserveAspectRatio {
+ protected JsSVGAnimatedPreserveAspectRatio() {}
+
+ public final native JsSVGPreserveAspectRatio getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native JsSVGPreserveAspectRatio getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedRect.java b/elemental/src/elemental/js/svg/JsSVGAnimatedRect.java
new file mode 100644
index 0000000..8a1ad93
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedRect.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedRect;
+import elemental.svg.SVGRect;
+
+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 JsSVGAnimatedRect extends JsElementalMixinBase implements SVGAnimatedRect {
+ protected JsSVGAnimatedRect() {}
+
+ public final native JsSVGRect getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native JsSVGRect getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedString.java b/elemental/src/elemental/js/svg/JsSVGAnimatedString.java
new file mode 100644
index 0000000..600254c
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedString.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedString;
+
+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 JsSVGAnimatedString extends JsElementalMixinBase implements SVGAnimatedString {
+ protected JsSVGAnimatedString() {}
+
+ public final native String getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native String getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+
+ public final native void setBaseVal(String param_baseVal) /*-{
+ this.baseVal = param_baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimatedTransformList.java b/elemental/src/elemental/js/svg/JsSVGAnimatedTransformList.java
new file mode 100644
index 0000000..d494b2d
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimatedTransformList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGTransformList;
+import elemental.svg.SVGAnimatedTransformList;
+
+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 JsSVGAnimatedTransformList extends JsElementalMixinBase implements SVGAnimatedTransformList {
+ protected JsSVGAnimatedTransformList() {}
+
+ public final native JsSVGTransformList getAnimVal() /*-{
+ return this.animVal;
+ }-*/;
+
+ public final native JsSVGTransformList getBaseVal() /*-{
+ return this.baseVal;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGAnimationElement.java b/elemental/src/elemental/js/svg/JsSVGAnimationElement.java
new file mode 100644
index 0000000..839078e
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGAnimationElement.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimationElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGAnimationElement extends JsSVGElement implements SVGAnimationElement {
+ protected JsSVGAnimationElement() {}
+
+ public final native JsSVGElement getTargetElement() /*-{
+ return this.targetElement;
+ }-*/;
+
+ public final native float getCurrentTime() /*-{
+ return this.getCurrentTime();
+ }-*/;
+
+ public final native float getSimpleDuration() /*-{
+ return this.getSimpleDuration();
+ }-*/;
+
+ public final native float getStartTime() /*-{
+ return this.getStartTime();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGCircleElement.java b/elemental/src/elemental/js/svg/JsSVGCircleElement.java
new file mode 100644
index 0000000..9e791e2
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGCircleElement.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGCircleElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGCircleElement extends JsSVGElement implements SVGCircleElement {
+ protected JsSVGCircleElement() {}
+
+ public final native JsSVGAnimatedLength getCx() /*-{
+ return this.cx;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getCy() /*-{
+ return this.cy;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getR() /*-{
+ return this.r;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGClipPathElement.java b/elemental/src/elemental/js/svg/JsSVGClipPathElement.java
new file mode 100644
index 0000000..2546970
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGClipPathElement.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGClipPathElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGClipPathElement extends JsSVGElement implements SVGClipPathElement {
+ protected JsSVGClipPathElement() {}
+
+ public final native JsSVGAnimatedEnumeration getClipPathUnits() /*-{
+ return this.clipPathUnits;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGColor.java b/elemental/src/elemental/js/svg/JsSVGColor.java
new file mode 100644
index 0000000..c0ae137
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGColor.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.js.css.JsCSSValue;
+import elemental.css.RGBColor;
+import elemental.svg.SVGColor;
+import elemental.js.css.JsRGBColor;
+import elemental.css.CSSValue;
+
+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 JsSVGColor extends JsCSSValue implements SVGColor {
+ protected JsSVGColor() {}
+
+ public final native int getColorType() /*-{
+ return this.colorType;
+ }-*/;
+
+ public final native JsRGBColor getRgbColor() /*-{
+ return this.rgbColor;
+ }-*/;
+
+ public final native void setColor(int colorType, String rgbColor, String iccColor) /*-{
+ this.setColor(colorType, rgbColor, iccColor);
+ }-*/;
+
+ public final native void setRGBColor(String rgbColor) /*-{
+ this.setRGBColor(rgbColor);
+ }-*/;
+
+ public final native void setRGBColorICCColor(String rgbColor, String iccColor) /*-{
+ this.setRGBColorICCColor(rgbColor, iccColor);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGComponentTransferFunctionElement.java b/elemental/src/elemental/js/svg/JsSVGComponentTransferFunctionElement.java
new file mode 100644
index 0000000..211d9fc
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGComponentTransferFunctionElement.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGComponentTransferFunctionElement;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedNumberList;
+
+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 JsSVGComponentTransferFunctionElement extends JsSVGElement implements SVGComponentTransferFunctionElement {
+ protected JsSVGComponentTransferFunctionElement() {}
+
+ public final native JsSVGAnimatedNumber getAmplitude() /*-{
+ return this.amplitude;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getExponent() /*-{
+ return this.exponent;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getIntercept() /*-{
+ return this.intercept;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getOffset() /*-{
+ return this.offset;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getSlope() /*-{
+ return this.slope;
+ }-*/;
+
+ public final native JsSVGAnimatedNumberList getTableValues() /*-{
+ return this.tableValues;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getType() /*-{
+ return this.type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGCursorElement.java b/elemental/src/elemental/js/svg/JsSVGCursorElement.java
new file mode 100644
index 0000000..1e0a9f2
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGCursorElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGCursorElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGCursorElement extends JsSVGElement implements SVGCursorElement {
+ protected JsSVGCursorElement() {}
+
+ public final native JsSVGAnimatedLength getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY() /*-{
+ return this.y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGDefsElement.java b/elemental/src/elemental/js/svg/JsSVGDefsElement.java
new file mode 100644
index 0000000..128b55f
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGDefsElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGDefsElement;
+
+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 JsSVGDefsElement extends JsSVGElement implements SVGDefsElement {
+ protected JsSVGDefsElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGDescElement.java b/elemental/src/elemental/js/svg/JsSVGDescElement.java
new file mode 100644
index 0000000..2bbe0d9
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGDescElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGDescElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGDescElement extends JsSVGElement implements SVGDescElement {
+ protected JsSVGDescElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGDocument.java b/elemental/src/elemental/js/svg/JsSVGDocument.java
new file mode 100644
index 0000000..88f29f3
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGDocument.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.js.dom.JsDocument;
+import elemental.svg.SVGDocument;
+import elemental.svg.SVGSVGElement;
+import elemental.js.events.JsEvent;
+import elemental.events.Event;
+import elemental.dom.Document;
+
+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 JsSVGDocument extends JsDocument implements SVGDocument {
+ protected JsSVGDocument() {}
+
+ public final native JsSVGSVGElement getRootElement() /*-{
+ return this.rootElement;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGElement.java b/elemental/src/elemental/js/svg/JsSVGElement.java
new file mode 100644
index 0000000..3f8d438
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGElement.java
@@ -0,0 +1,58 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.js.dom.JsElement;
+import elemental.dom.Element;
+import elemental.svg.SVGSVGElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGElement extends JsElement implements SVGElement {
+ protected JsSVGElement() {}
+
+ public final native JsSVGSVGElement getOwnerSVGElement() /*-{
+ return this.ownerSVGElement;
+ }-*/;
+
+ public final native JsSVGElement getViewportElement() /*-{
+ return this.viewportElement;
+ }-*/;
+
+ public final native String getXmlbase() /*-{
+ return this.xmlbase;
+ }-*/;
+
+ public final native void setXmlbase(String param_xmlbase) /*-{
+ this.xmlbase = param_xmlbase;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGElementInstance.java b/elemental/src/elemental/js/svg/JsSVGElementInstance.java
new file mode 100644
index 0000000..e43cfde
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGElementInstance.java
@@ -0,0 +1,358 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.events.Event;
+import elemental.js.events.JsEvent;
+import elemental.svg.SVGElementInstanceList;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGUseElement;
+import elemental.svg.SVGElementInstance;
+import elemental.js.events.JsEventListener;
+import elemental.events.EventListener;
+
+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 JsSVGElementInstance extends JsElementalMixinBase implements SVGElementInstance {
+ protected JsSVGElementInstance() {}
+
+ public final native JsSVGElementInstanceList getChildNodes() /*-{
+ return this.childNodes;
+ }-*/;
+
+ public final native JsSVGElement getCorrespondingElement() /*-{
+ return this.correspondingElement;
+ }-*/;
+
+ public final native JsSVGUseElement getCorrespondingUseElement() /*-{
+ return this.correspondingUseElement;
+ }-*/;
+
+ public final native JsSVGElementInstance getFirstChild() /*-{
+ return this.firstChild;
+ }-*/;
+
+ public final native JsSVGElementInstance getLastChild() /*-{
+ return this.lastChild;
+ }-*/;
+
+ public final native JsSVGElementInstance getNextSibling() /*-{
+ return this.nextSibling;
+ }-*/;
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforecopy() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforecopy);
+ }-*/;
+
+ public final native void setOnbeforecopy(EventListener listener) /*-{
+ this.onbeforecopy = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforecut() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforecut);
+ }-*/;
+
+ public final native void setOnbeforecut(EventListener listener) /*-{
+ this.onbeforecut = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnbeforepaste() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onbeforepaste);
+ }-*/;
+
+ public final native void setOnbeforepaste(EventListener listener) /*-{
+ this.onbeforepaste = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnblur() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onblur);
+ }-*/;
+
+ public final native void setOnblur(EventListener listener) /*-{
+ this.onblur = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnchange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onchange);
+ }-*/;
+
+ public final native void setOnchange(EventListener listener) /*-{
+ this.onchange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnclick() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onclick);
+ }-*/;
+
+ public final native void setOnclick(EventListener listener) /*-{
+ this.onclick = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncontextmenu() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncontextmenu);
+ }-*/;
+
+ public final native void setOncontextmenu(EventListener listener) /*-{
+ this.oncontextmenu = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncopy() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncopy);
+ }-*/;
+
+ public final native void setOncopy(EventListener listener) /*-{
+ this.oncopy = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOncut() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oncut);
+ }-*/;
+
+ public final native void setOncut(EventListener listener) /*-{
+ this.oncut = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndblclick() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondblclick);
+ }-*/;
+
+ public final native void setOndblclick(EventListener listener) /*-{
+ this.ondblclick = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndrag() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondrag);
+ }-*/;
+
+ public final native void setOndrag(EventListener listener) /*-{
+ this.ondrag = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragend);
+ }-*/;
+
+ public final native void setOndragend(EventListener listener) /*-{
+ this.ondragend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragenter() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragenter);
+ }-*/;
+
+ public final native void setOndragenter(EventListener listener) /*-{
+ this.ondragenter = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragleave() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragleave);
+ }-*/;
+
+ public final native void setOndragleave(EventListener listener) /*-{
+ this.ondragleave = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragover() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragover);
+ }-*/;
+
+ public final native void setOndragover(EventListener listener) /*-{
+ this.ondragover = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndragstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondragstart);
+ }-*/;
+
+ public final native void setOndragstart(EventListener listener) /*-{
+ this.ondragstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOndrop() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.ondrop);
+ }-*/;
+
+ public final native void setOndrop(EventListener listener) /*-{
+ this.ondrop = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnfocus() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onfocus);
+ }-*/;
+
+ public final native void setOnfocus(EventListener listener) /*-{
+ this.onfocus = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOninput() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.oninput);
+ }-*/;
+
+ public final native void setOninput(EventListener listener) /*-{
+ this.oninput = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeydown() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeydown);
+ }-*/;
+
+ public final native void setOnkeydown(EventListener listener) /*-{
+ this.onkeydown = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeypress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeypress);
+ }-*/;
+
+ public final native void setOnkeypress(EventListener listener) /*-{
+ this.onkeypress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnkeyup() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onkeyup);
+ }-*/;
+
+ public final native void setOnkeyup(EventListener listener) /*-{
+ this.onkeyup = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onload);
+ }-*/;
+
+ public final native void setOnload(EventListener listener) /*-{
+ this.onload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousedown() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousedown);
+ }-*/;
+
+ public final native void setOnmousedown(EventListener listener) /*-{
+ this.onmousedown = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousemove() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousemove);
+ }-*/;
+
+ public final native void setOnmousemove(EventListener listener) /*-{
+ this.onmousemove = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseout() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseout);
+ }-*/;
+
+ public final native void setOnmouseout(EventListener listener) /*-{
+ this.onmouseout = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseover() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseover);
+ }-*/;
+
+ public final native void setOnmouseover(EventListener listener) /*-{
+ this.onmouseover = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmouseup() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmouseup);
+ }-*/;
+
+ public final native void setOnmouseup(EventListener listener) /*-{
+ this.onmouseup = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnmousewheel() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onmousewheel);
+ }-*/;
+
+ public final native void setOnmousewheel(EventListener listener) /*-{
+ this.onmousewheel = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnpaste() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onpaste);
+ }-*/;
+
+ public final native void setOnpaste(EventListener listener) /*-{
+ this.onpaste = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnreset() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onreset);
+ }-*/;
+
+ public final native void setOnreset(EventListener listener) /*-{
+ this.onreset = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnresize() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onresize);
+ }-*/;
+
+ public final native void setOnresize(EventListener listener) /*-{
+ this.onresize = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnscroll() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onscroll);
+ }-*/;
+
+ public final native void setOnscroll(EventListener listener) /*-{
+ this.onscroll = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsearch() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsearch);
+ }-*/;
+
+ public final native void setOnsearch(EventListener listener) /*-{
+ this.onsearch = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnselect() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onselect);
+ }-*/;
+
+ public final native void setOnselect(EventListener listener) /*-{
+ this.onselect = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnselectstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onselectstart);
+ }-*/;
+
+ public final native void setOnselectstart(EventListener listener) /*-{
+ this.onselectstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnsubmit() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onsubmit);
+ }-*/;
+
+ public final native void setOnsubmit(EventListener listener) /*-{
+ this.onsubmit = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnunload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onunload);
+ }-*/;
+
+ public final native void setOnunload(EventListener listener) /*-{
+ this.onunload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native JsSVGElementInstance getParentNode() /*-{
+ return this.parentNode;
+ }-*/;
+
+ public final native JsSVGElementInstance getPreviousSibling() /*-{
+ return this.previousSibling;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGElementInstanceList.java b/elemental/src/elemental/js/svg/JsSVGElementInstanceList.java
new file mode 100644
index 0000000..9178ab5
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGElementInstanceList.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGElementInstanceList;
+import elemental.svg.SVGElementInstance;
+
+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 JsSVGElementInstanceList extends JsElementalMixinBase implements SVGElementInstanceList {
+ protected JsSVGElementInstanceList() {}
+
+ public final native int getLength() /*-{
+ return this.length;
+ }-*/;
+
+ public final native JsSVGElementInstance item(int index) /*-{
+ return this.item(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGEllipseElement.java b/elemental/src/elemental/js/svg/JsSVGEllipseElement.java
new file mode 100644
index 0000000..7040ad2
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGEllipseElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGEllipseElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGEllipseElement extends JsSVGElement implements SVGEllipseElement {
+ protected JsSVGEllipseElement() {}
+
+ public final native JsSVGAnimatedLength getCx() /*-{
+ return this.cx;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getCy() /*-{
+ return this.cy;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getRx() /*-{
+ return this.rx;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getRy() /*-{
+ return this.ry;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGException.java b/elemental/src/elemental/js/svg/JsSVGException.java
new file mode 100644
index 0000000..2f94897
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGException;
+
+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 JsSVGException extends JsElementalMixinBase implements SVGException {
+ protected JsSVGException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEBlendElement.java b/elemental/src/elemental/js/svg/JsSVGFEBlendElement.java
new file mode 100644
index 0000000..d791e42
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEBlendElement.java
@@ -0,0 +1,54 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGFEBlendElement;
+
+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 JsSVGFEBlendElement extends JsSVGElement implements SVGFEBlendElement {
+ protected JsSVGFEBlendElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedString getIn2() /*-{
+ return this.in2;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getMode() /*-{
+ return this.mode;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEColorMatrixElement.java b/elemental/src/elemental/js/svg/JsSVGFEColorMatrixElement.java
new file mode 100644
index 0000000..8c534a6
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEColorMatrixElement.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGFEColorMatrixElement;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedNumberList;
+
+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 JsSVGFEColorMatrixElement extends JsSVGElement implements SVGFEColorMatrixElement {
+ protected JsSVGFEColorMatrixElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native JsSVGAnimatedNumberList getValues() /*-{
+ return this.values;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEComponentTransferElement.java b/elemental/src/elemental/js/svg/JsSVGFEComponentTransferElement.java
new file mode 100644
index 0000000..7829cf4
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEComponentTransferElement.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGFEComponentTransferElement;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGElement;
+
+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 JsSVGFEComponentTransferElement extends JsSVGElement implements SVGFEComponentTransferElement {
+ protected JsSVGFEComponentTransferElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFECompositeElement.java b/elemental/src/elemental/js/svg/JsSVGFECompositeElement.java
new file mode 100644
index 0000000..15b7028
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFECompositeElement.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGFECompositeElement;
+
+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 JsSVGFECompositeElement extends JsSVGElement implements SVGFECompositeElement {
+ protected JsSVGFECompositeElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedString getIn2() /*-{
+ return this.in2;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getK1() /*-{
+ return this.k1;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getK2() /*-{
+ return this.k2;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getK3() /*-{
+ return this.k3;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getK4() /*-{
+ return this.k4;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getOperator() /*-{
+ return this.operator;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEConvolveMatrixElement.java b/elemental/src/elemental/js/svg/JsSVGFEConvolveMatrixElement.java
new file mode 100644
index 0000000..986f48e
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEConvolveMatrixElement.java
@@ -0,0 +1,94 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGFEConvolveMatrixElement;
+import elemental.svg.SVGAnimatedBoolean;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedInteger;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedNumberList;
+import elemental.svg.SVGAnimatedNumber;
+
+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 JsSVGFEConvolveMatrixElement extends JsSVGElement implements SVGFEConvolveMatrixElement {
+ protected JsSVGFEConvolveMatrixElement() {}
+
+ public final native JsSVGAnimatedNumber getBias() /*-{
+ return this.bias;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getDivisor() /*-{
+ return this.divisor;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getEdgeMode() /*-{
+ return this.edgeMode;
+ }-*/;
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedNumberList getKernelMatrix() /*-{
+ return this.kernelMatrix;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getKernelUnitLengthX() /*-{
+ return this.kernelUnitLengthX;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getKernelUnitLengthY() /*-{
+ return this.kernelUnitLengthY;
+ }-*/;
+
+ public final native JsSVGAnimatedInteger getOrderX() /*-{
+ return this.orderX;
+ }-*/;
+
+ public final native JsSVGAnimatedInteger getOrderY() /*-{
+ return this.orderY;
+ }-*/;
+
+ public final native JsSVGAnimatedBoolean getPreserveAlpha() /*-{
+ return this.preserveAlpha;
+ }-*/;
+
+ public final native JsSVGAnimatedInteger getTargetX() /*-{
+ return this.targetX;
+ }-*/;
+
+ public final native JsSVGAnimatedInteger getTargetY() /*-{
+ return this.targetY;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEDiffuseLightingElement.java b/elemental/src/elemental/js/svg/JsSVGFEDiffuseLightingElement.java
new file mode 100644
index 0000000..aeff072
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEDiffuseLightingElement.java
@@ -0,0 +1,62 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGFEDiffuseLightingElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFEDiffuseLightingElement extends JsSVGElement implements SVGFEDiffuseLightingElement {
+ protected JsSVGFEDiffuseLightingElement() {}
+
+ public final native JsSVGAnimatedNumber getDiffuseConstant() /*-{
+ return this.diffuseConstant;
+ }-*/;
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getKernelUnitLengthX() /*-{
+ return this.kernelUnitLengthX;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getKernelUnitLengthY() /*-{
+ return this.kernelUnitLengthY;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getSurfaceScale() /*-{
+ return this.surfaceScale;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEDisplacementMapElement.java b/elemental/src/elemental/js/svg/JsSVGFEDisplacementMapElement.java
new file mode 100644
index 0000000..4e29b33
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEDisplacementMapElement.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGFEDisplacementMapElement;
+import elemental.svg.SVGAnimatedNumber;
+
+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 JsSVGFEDisplacementMapElement extends JsSVGElement implements SVGFEDisplacementMapElement {
+ protected JsSVGFEDisplacementMapElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedString getIn2() /*-{
+ return this.in2;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getScale() /*-{
+ return this.scale;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getXChannelSelector() /*-{
+ return this.xChannelSelector;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getYChannelSelector() /*-{
+ return this.yChannelSelector;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEDistantLightElement.java b/elemental/src/elemental/js/svg/JsSVGFEDistantLightElement.java
new file mode 100644
index 0000000..2e9c669
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEDistantLightElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGFEDistantLightElement;
+
+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 JsSVGFEDistantLightElement extends JsSVGElement implements SVGFEDistantLightElement {
+ protected JsSVGFEDistantLightElement() {}
+
+ public final native JsSVGAnimatedNumber getAzimuth() /*-{
+ return this.azimuth;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getElevation() /*-{
+ return this.elevation;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEDropShadowElement.java b/elemental/src/elemental/js/svg/JsSVGFEDropShadowElement.java
new file mode 100644
index 0000000..0488085
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEDropShadowElement.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGFEDropShadowElement;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGElement;
+
+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 JsSVGFEDropShadowElement extends JsSVGElement implements SVGFEDropShadowElement {
+ protected JsSVGFEDropShadowElement() {}
+
+ public final native JsSVGAnimatedNumber getDx() /*-{
+ return this.dx;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getDy() /*-{
+ return this.dy;
+ }-*/;
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getStdDeviationX() /*-{
+ return this.stdDeviationX;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getStdDeviationY() /*-{
+ return this.stdDeviationY;
+ }-*/;
+
+ public final native void setStdDeviation(float stdDeviationX, float stdDeviationY) /*-{
+ this.setStdDeviation(stdDeviationX, stdDeviationY);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEFloodElement.java b/elemental/src/elemental/js/svg/JsSVGFEFloodElement.java
new file mode 100644
index 0000000..5a75b71
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEFloodElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGFEFloodElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFEFloodElement extends JsSVGElement implements SVGFEFloodElement {
+ protected JsSVGFEFloodElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEFuncAElement.java b/elemental/src/elemental/js/svg/JsSVGFEFuncAElement.java
new file mode 100644
index 0000000..dbef298
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEFuncAElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGComponentTransferFunctionElement;
+import elemental.svg.SVGFEFuncAElement;
+
+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 JsSVGFEFuncAElement extends JsSVGComponentTransferFunctionElement implements SVGFEFuncAElement {
+ protected JsSVGFEFuncAElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEFuncBElement.java b/elemental/src/elemental/js/svg/JsSVGFEFuncBElement.java
new file mode 100644
index 0000000..7a0e5e8
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEFuncBElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGFEFuncBElement;
+import elemental.svg.SVGComponentTransferFunctionElement;
+
+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 JsSVGFEFuncBElement extends JsSVGComponentTransferFunctionElement implements SVGFEFuncBElement {
+ protected JsSVGFEFuncBElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEFuncGElement.java b/elemental/src/elemental/js/svg/JsSVGFEFuncGElement.java
new file mode 100644
index 0000000..11ff262
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEFuncGElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGComponentTransferFunctionElement;
+import elemental.svg.SVGFEFuncGElement;
+
+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 JsSVGFEFuncGElement extends JsSVGComponentTransferFunctionElement implements SVGFEFuncGElement {
+ protected JsSVGFEFuncGElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEFuncRElement.java b/elemental/src/elemental/js/svg/JsSVGFEFuncRElement.java
new file mode 100644
index 0000000..b041f64
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEFuncRElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGFEFuncRElement;
+import elemental.svg.SVGComponentTransferFunctionElement;
+
+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 JsSVGFEFuncRElement extends JsSVGComponentTransferFunctionElement implements SVGFEFuncRElement {
+ protected JsSVGFEFuncRElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEGaussianBlurElement.java b/elemental/src/elemental/js/svg/JsSVGFEGaussianBlurElement.java
new file mode 100644
index 0000000..a9861c9
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEGaussianBlurElement.java
@@ -0,0 +1,58 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGFEGaussianBlurElement;
+
+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 JsSVGFEGaussianBlurElement extends JsSVGElement implements SVGFEGaussianBlurElement {
+ protected JsSVGFEGaussianBlurElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getStdDeviationX() /*-{
+ return this.stdDeviationX;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getStdDeviationY() /*-{
+ return this.stdDeviationY;
+ }-*/;
+
+ public final native void setStdDeviation(float stdDeviationX, float stdDeviationY) /*-{
+ this.setStdDeviation(stdDeviationX, stdDeviationY);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEImageElement.java b/elemental/src/elemental/js/svg/JsSVGFEImageElement.java
new file mode 100644
index 0000000..31030fb
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEImageElement.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedPreserveAspectRatio;
+import elemental.svg.SVGFEImageElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFEImageElement extends JsSVGElement implements SVGFEImageElement {
+ protected JsSVGFEImageElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEMergeElement.java b/elemental/src/elemental/js/svg/JsSVGFEMergeElement.java
new file mode 100644
index 0000000..fadb08b
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEMergeElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGFEMergeElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFEMergeElement extends JsSVGElement implements SVGFEMergeElement {
+ protected JsSVGFEMergeElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEMergeNodeElement.java b/elemental/src/elemental/js/svg/JsSVGFEMergeNodeElement.java
new file mode 100644
index 0000000..dbeb402
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEMergeNodeElement.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGFEMergeNodeElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFEMergeNodeElement extends JsSVGElement implements SVGFEMergeNodeElement {
+ protected JsSVGFEMergeNodeElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEMorphologyElement.java b/elemental/src/elemental/js/svg/JsSVGFEMorphologyElement.java
new file mode 100644
index 0000000..32ba28f
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEMorphologyElement.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGFEMorphologyElement;
+import elemental.svg.SVGAnimatedNumber;
+
+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 JsSVGFEMorphologyElement extends JsSVGElement implements SVGFEMorphologyElement {
+ protected JsSVGFEMorphologyElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getOperator() /*-{
+ return this.operator;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getRadiusX() /*-{
+ return this.radiusX;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getRadiusY() /*-{
+ return this.radiusY;
+ }-*/;
+
+ public final native void setRadius(float radiusX, float radiusY) /*-{
+ this.setRadius(radiusX, radiusY);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEOffsetElement.java b/elemental/src/elemental/js/svg/JsSVGFEOffsetElement.java
new file mode 100644
index 0000000..31a18f6
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEOffsetElement.java
@@ -0,0 +1,54 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGFEOffsetElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFEOffsetElement extends JsSVGElement implements SVGFEOffsetElement {
+ protected JsSVGFEOffsetElement() {}
+
+ public final native JsSVGAnimatedNumber getDx() /*-{
+ return this.dx;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getDy() /*-{
+ return this.dy;
+ }-*/;
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFEPointLightElement.java b/elemental/src/elemental/js/svg/JsSVGFEPointLightElement.java
new file mode 100644
index 0000000..2ca6793
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFEPointLightElement.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGFEPointLightElement;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGElement;
+
+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 JsSVGFEPointLightElement extends JsSVGElement implements SVGFEPointLightElement {
+ protected JsSVGFEPointLightElement() {}
+
+ public final native JsSVGAnimatedNumber getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getZ() /*-{
+ return this.z;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFESpecularLightingElement.java b/elemental/src/elemental/js/svg/JsSVGFESpecularLightingElement.java
new file mode 100644
index 0000000..e2d51bc
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFESpecularLightingElement.java
@@ -0,0 +1,58 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGFESpecularLightingElement;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedNumber;
+
+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 JsSVGFESpecularLightingElement extends JsSVGElement implements SVGFESpecularLightingElement {
+ protected JsSVGFESpecularLightingElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getSpecularConstant() /*-{
+ return this.specularConstant;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getSpecularExponent() /*-{
+ return this.specularExponent;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getSurfaceScale() /*-{
+ return this.surfaceScale;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFESpotLightElement.java b/elemental/src/elemental/js/svg/JsSVGFESpotLightElement.java
new file mode 100644
index 0000000..defb4a4
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFESpotLightElement.java
@@ -0,0 +1,73 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGFESpotLightElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFESpotLightElement extends JsSVGElement implements SVGFESpotLightElement {
+ protected JsSVGFESpotLightElement() {}
+
+ public final native JsSVGAnimatedNumber getLimitingConeAngle() /*-{
+ return this.limitingConeAngle;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getPointsAtX() /*-{
+ return this.pointsAtX;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getPointsAtY() /*-{
+ return this.pointsAtY;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getPointsAtZ() /*-{
+ return this.pointsAtZ;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getSpecularExponent() /*-{
+ return this.specularExponent;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getZ() /*-{
+ return this.z;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFETileElement.java b/elemental/src/elemental/js/svg/JsSVGFETileElement.java
new file mode 100644
index 0000000..392911a
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFETileElement.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGFETileElement;
+import elemental.svg.SVGAnimatedString;
+import elemental.svg.SVGElement;
+
+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 JsSVGFETileElement extends JsSVGElement implements SVGFETileElement {
+ protected JsSVGFETileElement() {}
+
+ public final native JsSVGAnimatedString getIn1() /*-{
+ return this.in1;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFETurbulenceElement.java b/elemental/src/elemental/js/svg/JsSVGFETurbulenceElement.java
new file mode 100644
index 0000000..831dcd1
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFETurbulenceElement.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedInteger;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGFETurbulenceElement;
+
+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 JsSVGFETurbulenceElement extends JsSVGElement implements SVGFETurbulenceElement {
+ protected JsSVGFETurbulenceElement() {}
+
+ public final native JsSVGAnimatedNumber getBaseFrequencyX() /*-{
+ return this.baseFrequencyX;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getBaseFrequencyY() /*-{
+ return this.baseFrequencyY;
+ }-*/;
+
+ public final native JsSVGAnimatedInteger getNumOctaves() /*-{
+ return this.numOctaves;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getSeed() /*-{
+ return this.seed;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getStitchTiles() /*-{
+ return this.stitchTiles;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getType() /*-{
+ return this.type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFilterElement.java b/elemental/src/elemental/js/svg/JsSVGFilterElement.java
new file mode 100644
index 0000000..60250f8
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFilterElement.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGAnimatedInteger;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGFilterElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFilterElement extends JsSVGElement implements SVGFilterElement {
+ protected JsSVGFilterElement() {}
+
+ public final native JsSVGAnimatedInteger getFilterResX() /*-{
+ return this.filterResX;
+ }-*/;
+
+ public final native JsSVGAnimatedInteger getFilterResY() /*-{
+ return this.filterResY;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getFilterUnits() /*-{
+ return this.filterUnits;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getPrimitiveUnits() /*-{
+ return this.primitiveUnits;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setFilterRes(int filterResX, int filterResY) /*-{
+ this.setFilterRes(filterResX, filterResY);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFontElement.java b/elemental/src/elemental/js/svg/JsSVGFontElement.java
new file mode 100644
index 0000000..1bcdf90
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFontElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGFontElement;
+
+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 JsSVGFontElement extends JsSVGElement implements SVGFontElement {
+ protected JsSVGFontElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFontFaceElement.java b/elemental/src/elemental/js/svg/JsSVGFontFaceElement.java
new file mode 100644
index 0000000..720e7f1
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFontFaceElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGFontFaceElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFontFaceElement extends JsSVGElement implements SVGFontFaceElement {
+ protected JsSVGFontFaceElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFontFaceFormatElement.java b/elemental/src/elemental/js/svg/JsSVGFontFaceFormatElement.java
new file mode 100644
index 0000000..cb5cbc7
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFontFaceFormatElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGFontFaceFormatElement;
+
+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 JsSVGFontFaceFormatElement extends JsSVGElement implements SVGFontFaceFormatElement {
+ protected JsSVGFontFaceFormatElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFontFaceNameElement.java b/elemental/src/elemental/js/svg/JsSVGFontFaceNameElement.java
new file mode 100644
index 0000000..2712126
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFontFaceNameElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGFontFaceNameElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFontFaceNameElement extends JsSVGElement implements SVGFontFaceNameElement {
+ protected JsSVGFontFaceNameElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFontFaceSrcElement.java b/elemental/src/elemental/js/svg/JsSVGFontFaceSrcElement.java
new file mode 100644
index 0000000..4b869ba
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFontFaceSrcElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGFontFaceSrcElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFontFaceSrcElement extends JsSVGElement implements SVGFontFaceSrcElement {
+ protected JsSVGFontFaceSrcElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGFontFaceUriElement.java b/elemental/src/elemental/js/svg/JsSVGFontFaceUriElement.java
new file mode 100644
index 0000000..b3c755f
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGFontFaceUriElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGFontFaceUriElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGFontFaceUriElement extends JsSVGElement implements SVGFontFaceUriElement {
+ protected JsSVGFontFaceUriElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGForeignObjectElement.java b/elemental/src/elemental/js/svg/JsSVGForeignObjectElement.java
new file mode 100644
index 0000000..e5016cc
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGForeignObjectElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGForeignObjectElement;
+
+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 JsSVGForeignObjectElement extends JsSVGElement implements SVGForeignObjectElement {
+ protected JsSVGForeignObjectElement() {}
+
+ public final native JsSVGAnimatedLength getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY() /*-{
+ return this.y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGGElement.java b/elemental/src/elemental/js/svg/JsSVGGElement.java
new file mode 100644
index 0000000..994d98a
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGGElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGGElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGGElement extends JsSVGElement implements SVGGElement {
+ protected JsSVGGElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGGlyphElement.java b/elemental/src/elemental/js/svg/JsSVGGlyphElement.java
new file mode 100644
index 0000000..e6994d6
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGGlyphElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGGlyphElement;
+
+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 JsSVGGlyphElement extends JsSVGElement implements SVGGlyphElement {
+ protected JsSVGGlyphElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGGlyphRefElement.java b/elemental/src/elemental/js/svg/JsSVGGlyphRefElement.java
new file mode 100644
index 0000000..1366582
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGGlyphRefElement.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGGlyphRefElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGGlyphRefElement extends JsSVGElement implements SVGGlyphRefElement {
+ protected JsSVGGlyphRefElement() {}
+
+ public final native float getDx() /*-{
+ return this.dx;
+ }-*/;
+
+ public final native void setDx(float param_dx) /*-{
+ this.dx = param_dx;
+ }-*/;
+
+ public final native float getDy() /*-{
+ return this.dy;
+ }-*/;
+
+ public final native void setDy(float param_dy) /*-{
+ this.dy = param_dy;
+ }-*/;
+
+ public final native String getFormat() /*-{
+ return this.format;
+ }-*/;
+
+ public final native void setFormat(String param_format) /*-{
+ this.format = param_format;
+ }-*/;
+
+ public final native String getGlyphRef() /*-{
+ return this.glyphRef;
+ }-*/;
+
+ public final native void setGlyphRef(String param_glyphRef) /*-{
+ this.glyphRef = param_glyphRef;
+ }-*/;
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGGradientElement.java b/elemental/src/elemental/js/svg/JsSVGGradientElement.java
new file mode 100644
index 0000000..5008f26
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGGradientElement.java
@@ -0,0 +1,54 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedTransformList;
+import elemental.svg.SVGGradientElement;
+
+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 JsSVGGradientElement extends JsSVGElement implements SVGGradientElement {
+ protected JsSVGGradientElement() {}
+
+ public final native JsSVGAnimatedTransformList getGradientTransform() /*-{
+ return this.gradientTransform;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getGradientUnits() /*-{
+ return this.gradientUnits;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getSpreadMethod() /*-{
+ return this.spreadMethod;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGHKernElement.java b/elemental/src/elemental/js/svg/JsSVGHKernElement.java
new file mode 100644
index 0000000..3a7bedb
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGHKernElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGHKernElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGHKernElement extends JsSVGElement implements SVGHKernElement {
+ protected JsSVGHKernElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGImageElement.java b/elemental/src/elemental/js/svg/JsSVGImageElement.java
new file mode 100644
index 0000000..734b3ac
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGImageElement.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGAnimatedPreserveAspectRatio;
+import elemental.svg.SVGImageElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGImageElement extends JsSVGElement implements SVGImageElement {
+ protected JsSVGImageElement() {}
+
+ public final native JsSVGAnimatedLength getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY() /*-{
+ return this.y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGLength.java b/elemental/src/elemental/js/svg/JsSVGLength.java
new file mode 100644
index 0000000..ab38cad
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGLength.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGLength;
+
+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 JsSVGLength extends JsElementalMixinBase implements SVGLength {
+ protected JsSVGLength() {}
+
+ public final native int getUnitType() /*-{
+ return this.unitType;
+ }-*/;
+
+ public final native float getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(float param_value) /*-{
+ this.value = param_value;
+ }-*/;
+
+ public final native String getValueAsString() /*-{
+ return this.valueAsString;
+ }-*/;
+
+ public final native void setValueAsString(String param_valueAsString) /*-{
+ this.valueAsString = param_valueAsString;
+ }-*/;
+
+ public final native float getValueInSpecifiedUnits() /*-{
+ return this.valueInSpecifiedUnits;
+ }-*/;
+
+ public final native void setValueInSpecifiedUnits(float param_valueInSpecifiedUnits) /*-{
+ this.valueInSpecifiedUnits = param_valueInSpecifiedUnits;
+ }-*/;
+
+ public final native void convertToSpecifiedUnits(int unitType) /*-{
+ this.convertToSpecifiedUnits(unitType);
+ }-*/;
+
+ public final native void newValueSpecifiedUnits(int unitType, float valueInSpecifiedUnits) /*-{
+ this.newValueSpecifiedUnits(unitType, valueInSpecifiedUnits);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGLengthList.java b/elemental/src/elemental/js/svg/JsSVGLengthList.java
new file mode 100644
index 0000000..52e6e89
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGLengthList.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGLength;
+import elemental.svg.SVGLengthList;
+
+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 JsSVGLengthList extends JsElementalMixinBase implements SVGLengthList {
+ protected JsSVGLengthList() {}
+
+ public final native int getNumberOfItems() /*-{
+ return this.numberOfItems;
+ }-*/;
+
+ public final native JsSVGLength appendItem(SVGLength item) /*-{
+ return this.appendItem(item);
+ }-*/;
+
+ public final native void clear() /*-{
+ this.clear();
+ }-*/;
+
+ public final native JsSVGLength getItem(int index) /*-{
+ return this.getItem(index);
+ }-*/;
+
+ public final native JsSVGLength initialize(SVGLength item) /*-{
+ return this.initialize(item);
+ }-*/;
+
+ public final native JsSVGLength insertItemBefore(SVGLength item, int index) /*-{
+ return this.insertItemBefore(item, index);
+ }-*/;
+
+ public final native JsSVGLength removeItem(int index) /*-{
+ return this.removeItem(index);
+ }-*/;
+
+ public final native JsSVGLength replaceItem(SVGLength item, int index) /*-{
+ return this.replaceItem(item, index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGLineElement.java b/elemental/src/elemental/js/svg/JsSVGLineElement.java
new file mode 100644
index 0000000..c963508
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGLineElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGLineElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGLineElement extends JsSVGElement implements SVGLineElement {
+ protected JsSVGLineElement() {}
+
+ public final native JsSVGAnimatedLength getX1() /*-{
+ return this.x1;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getX2() /*-{
+ return this.x2;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY1() /*-{
+ return this.y1;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY2() /*-{
+ return this.y2;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGLinearGradientElement.java b/elemental/src/elemental/js/svg/JsSVGLinearGradientElement.java
new file mode 100644
index 0000000..cd0c687
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGLinearGradientElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGLinearGradientElement;
+import elemental.svg.SVGGradientElement;
+
+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 JsSVGLinearGradientElement extends JsSVGGradientElement implements SVGLinearGradientElement {
+ protected JsSVGLinearGradientElement() {}
+
+ public final native JsSVGAnimatedLength getX1() /*-{
+ return this.x1;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getX2() /*-{
+ return this.x2;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY1() /*-{
+ return this.y1;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY2() /*-{
+ return this.y2;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGMPathElement.java b/elemental/src/elemental/js/svg/JsSVGMPathElement.java
new file mode 100644
index 0000000..e7bdb99
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGMPathElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGMPathElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGMPathElement extends JsSVGElement implements SVGMPathElement {
+ protected JsSVGMPathElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGMarkerElement.java b/elemental/src/elemental/js/svg/JsSVGMarkerElement.java
new file mode 100644
index 0000000..5ed0fec
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGMarkerElement.java
@@ -0,0 +1,80 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAngle;
+import elemental.svg.SVGMarkerElement;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGAnimatedAngle;
+
+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 JsSVGMarkerElement extends JsSVGElement implements SVGMarkerElement {
+ protected JsSVGMarkerElement() {}
+
+ public final native JsSVGAnimatedLength getMarkerHeight() /*-{
+ return this.markerHeight;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getMarkerUnits() /*-{
+ return this.markerUnits;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getMarkerWidth() /*-{
+ return this.markerWidth;
+ }-*/;
+
+ public final native JsSVGAnimatedAngle getOrientAngle() /*-{
+ return this.orientAngle;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getOrientType() /*-{
+ return this.orientType;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getRefX() /*-{
+ return this.refX;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getRefY() /*-{
+ return this.refY;
+ }-*/;
+
+ public final native void setOrientToAngle(SVGAngle angle) /*-{
+ this.setOrientToAngle(angle);
+ }-*/;
+
+ public final native void setOrientToAuto() /*-{
+ this.setOrientToAuto();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGMaskElement.java b/elemental/src/elemental/js/svg/JsSVGMaskElement.java
new file mode 100644
index 0000000..2173fe2
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGMaskElement.java
@@ -0,0 +1,58 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGMaskElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGMaskElement extends JsSVGElement implements SVGMaskElement {
+ protected JsSVGMaskElement() {}
+
+ public final native JsSVGAnimatedEnumeration getMaskContentUnits() /*-{
+ return this.maskContentUnits;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getMaskUnits() /*-{
+ return this.maskUnits;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY() /*-{
+ return this.y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGMatrix.java b/elemental/src/elemental/js/svg/JsSVGMatrix.java
new file mode 100644
index 0000000..0032346
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGMatrix.java
@@ -0,0 +1,131 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGMatrix;
+
+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 JsSVGMatrix extends JsElementalMixinBase implements SVGMatrix {
+ protected JsSVGMatrix() {}
+
+ public final native double getA() /*-{
+ return this.a;
+ }-*/;
+
+ public final native void setA(double param_a) /*-{
+ this.a = param_a;
+ }-*/;
+
+ public final native double getB() /*-{
+ return this.b;
+ }-*/;
+
+ public final native void setB(double param_b) /*-{
+ this.b = param_b;
+ }-*/;
+
+ public final native double getC() /*-{
+ return this.c;
+ }-*/;
+
+ public final native void setC(double param_c) /*-{
+ this.c = param_c;
+ }-*/;
+
+ public final native double getD() /*-{
+ return this.d;
+ }-*/;
+
+ public final native void setD(double param_d) /*-{
+ this.d = param_d;
+ }-*/;
+
+ public final native double getE() /*-{
+ return this.e;
+ }-*/;
+
+ public final native void setE(double param_e) /*-{
+ this.e = param_e;
+ }-*/;
+
+ public final native double getF() /*-{
+ return this.f;
+ }-*/;
+
+ public final native void setF(double param_f) /*-{
+ this.f = param_f;
+ }-*/;
+
+ public final native JsSVGMatrix flipX() /*-{
+ return this.flipX();
+ }-*/;
+
+ public final native JsSVGMatrix flipY() /*-{
+ return this.flipY();
+ }-*/;
+
+ public final native JsSVGMatrix inverse() /*-{
+ return this.inverse();
+ }-*/;
+
+ public final native JsSVGMatrix multiply(SVGMatrix secondMatrix) /*-{
+ return this.multiply(secondMatrix);
+ }-*/;
+
+ public final native JsSVGMatrix rotate(float angle) /*-{
+ return this.rotate(angle);
+ }-*/;
+
+ public final native JsSVGMatrix rotateFromVector(float x, float y) /*-{
+ return this.rotateFromVector(x, y);
+ }-*/;
+
+ public final native JsSVGMatrix scale(float scaleFactor) /*-{
+ return this.scale(scaleFactor);
+ }-*/;
+
+ public final native JsSVGMatrix scaleNonUniform(float scaleFactorX, float scaleFactorY) /*-{
+ return this.scaleNonUniform(scaleFactorX, scaleFactorY);
+ }-*/;
+
+ public final native JsSVGMatrix skewX(float angle) /*-{
+ return this.skewX(angle);
+ }-*/;
+
+ public final native JsSVGMatrix skewY(float angle) /*-{
+ return this.skewY(angle);
+ }-*/;
+
+ public final native JsSVGMatrix translate(float x, float y) /*-{
+ return this.translate(x, y);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGMetadataElement.java b/elemental/src/elemental/js/svg/JsSVGMetadataElement.java
new file mode 100644
index 0000000..9977610
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGMetadataElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGMetadataElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGMetadataElement extends JsSVGElement implements SVGMetadataElement {
+ protected JsSVGMetadataElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGMissingGlyphElement.java b/elemental/src/elemental/js/svg/JsSVGMissingGlyphElement.java
new file mode 100644
index 0000000..fca9d94
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGMissingGlyphElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGMissingGlyphElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGMissingGlyphElement extends JsSVGElement implements SVGMissingGlyphElement {
+ protected JsSVGMissingGlyphElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGNumber.java b/elemental/src/elemental/js/svg/JsSVGNumber.java
new file mode 100644
index 0000000..554c336
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGNumber.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGNumber;
+
+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 JsSVGNumber extends JsElementalMixinBase implements SVGNumber {
+ protected JsSVGNumber() {}
+
+ public final native double getValue() /*-{
+ return this.value;
+ }-*/;
+
+ public final native void setValue(double param_value) /*-{
+ this.value = param_value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGNumberList.java b/elemental/src/elemental/js/svg/JsSVGNumberList.java
new file mode 100644
index 0000000..d3fb466
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGNumberList.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGNumber;
+import elemental.svg.SVGNumberList;
+
+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 JsSVGNumberList extends JsElementalMixinBase implements SVGNumberList {
+ protected JsSVGNumberList() {}
+
+ public final native int getNumberOfItems() /*-{
+ return this.numberOfItems;
+ }-*/;
+
+ public final native JsSVGNumber appendItem(SVGNumber item) /*-{
+ return this.appendItem(item);
+ }-*/;
+
+ public final native void clear() /*-{
+ this.clear();
+ }-*/;
+
+ public final native JsSVGNumber getItem(int index) /*-{
+ return this.getItem(index);
+ }-*/;
+
+ public final native JsSVGNumber initialize(SVGNumber item) /*-{
+ return this.initialize(item);
+ }-*/;
+
+ public final native JsSVGNumber insertItemBefore(SVGNumber item, int index) /*-{
+ return this.insertItemBefore(item, index);
+ }-*/;
+
+ public final native JsSVGNumber removeItem(int index) /*-{
+ return this.removeItem(index);
+ }-*/;
+
+ public final native JsSVGNumber replaceItem(SVGNumber item, int index) /*-{
+ return this.replaceItem(item, index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPaint.java b/elemental/src/elemental/js/svg/JsSVGPaint.java
new file mode 100644
index 0000000..a69895e
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPaint.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPaint;
+import elemental.svg.SVGColor;
+
+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 JsSVGPaint extends JsSVGColor implements SVGPaint {
+ protected JsSVGPaint() {}
+
+ public final native int getPaintType() /*-{
+ return this.paintType;
+ }-*/;
+
+ public final native String getUri() /*-{
+ return this.uri;
+ }-*/;
+
+ public final native void setPaint(int paintType, String uri, String rgbColor, String iccColor) /*-{
+ this.setPaint(paintType, uri, rgbColor, iccColor);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathElement.java b/elemental/src/elemental/js/svg/JsSVGPathElement.java
new file mode 100644
index 0000000..58ce384
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathElement.java
@@ -0,0 +1,170 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegArcRel;
+import elemental.svg.SVGPathSegCurvetoQuadraticRel;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGPathSegLinetoVerticalRel;
+import elemental.svg.SVGPathSegMovetoRel;
+import elemental.svg.SVGPathSegLinetoRel;
+import elemental.svg.SVGPathSegMovetoAbs;
+import elemental.svg.SVGPathElement;
+import elemental.svg.SVGPoint;
+import elemental.svg.SVGPathSegLinetoHorizontalRel;
+import elemental.svg.SVGPathSegCurvetoCubicSmoothAbs;
+import elemental.svg.SVGPathSegLinetoAbs;
+import elemental.svg.SVGPathSegLinetoHorizontalAbs;
+import elemental.svg.SVGPathSegCurvetoCubicSmoothRel;
+import elemental.svg.SVGPathSegCurvetoCubicAbs;
+import elemental.svg.SVGPathSegClosePath;
+import elemental.svg.SVGPathSegCurvetoCubicRel;
+import elemental.svg.SVGPathSegCurvetoQuadraticSmoothAbs;
+import elemental.svg.SVGPathSegList;
+import elemental.svg.SVGPathSegCurvetoQuadraticSmoothRel;
+import elemental.svg.SVGPathSegArcAbs;
+import elemental.svg.SVGPathSegCurvetoQuadraticAbs;
+import elemental.svg.SVGPathSegLinetoVerticalAbs;
+import elemental.svg.SVGAnimatedNumber;
+
+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 JsSVGPathElement extends JsSVGElement implements SVGPathElement {
+ protected JsSVGPathElement() {}
+
+ public final native JsSVGPathSegList getAnimatedNormalizedPathSegList() /*-{
+ return this.animatedNormalizedPathSegList;
+ }-*/;
+
+ public final native JsSVGPathSegList getAnimatedPathSegList() /*-{
+ return this.animatedPathSegList;
+ }-*/;
+
+ public final native JsSVGPathSegList getNormalizedPathSegList() /*-{
+ return this.normalizedPathSegList;
+ }-*/;
+
+ public final native JsSVGAnimatedNumber getPathLength() /*-{
+ return this.pathLength;
+ }-*/;
+
+ public final native JsSVGPathSegList getPathSegList() /*-{
+ return this.pathSegList;
+ }-*/;
+
+ public final native JsSVGPathSegArcAbs createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, boolean largeArcFlag, boolean sweepFlag) /*-{
+ return this.createSVGPathSegArcAbs(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
+ }-*/;
+
+ public final native JsSVGPathSegArcRel createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, boolean largeArcFlag, boolean sweepFlag) /*-{
+ return this.createSVGPathSegArcRel(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
+ }-*/;
+
+ public final native JsSVGPathSegClosePath createSVGPathSegClosePath() /*-{
+ return this.createSVGPathSegClosePath();
+ }-*/;
+
+ public final native JsSVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2) /*-{
+ return this.createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2);
+ }-*/;
+
+ public final native JsSVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2) /*-{
+ return this.createSVGPathSegCurvetoCubicRel(x, y, x1, y1, x2, y2);
+ }-*/;
+
+ public final native JsSVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2) /*-{
+ return this.createSVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2);
+ }-*/;
+
+ public final native JsSVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2) /*-{
+ return this.createSVGPathSegCurvetoCubicSmoothRel(x, y, x2, y2);
+ }-*/;
+
+ public final native JsSVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1) /*-{
+ return this.createSVGPathSegCurvetoQuadraticAbs(x, y, x1, y1);
+ }-*/;
+
+ public final native JsSVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1) /*-{
+ return this.createSVGPathSegCurvetoQuadraticRel(x, y, x1, y1);
+ }-*/;
+
+ public final native JsSVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y) /*-{
+ return this.createSVGPathSegCurvetoQuadraticSmoothAbs(x, y);
+ }-*/;
+
+ public final native JsSVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y) /*-{
+ return this.createSVGPathSegCurvetoQuadraticSmoothRel(x, y);
+ }-*/;
+
+ public final native JsSVGPathSegLinetoAbs createSVGPathSegLinetoAbs(float x, float y) /*-{
+ return this.createSVGPathSegLinetoAbs(x, y);
+ }-*/;
+
+ public final native JsSVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(float x) /*-{
+ return this.createSVGPathSegLinetoHorizontalAbs(x);
+ }-*/;
+
+ public final native JsSVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(float x) /*-{
+ return this.createSVGPathSegLinetoHorizontalRel(x);
+ }-*/;
+
+ public final native JsSVGPathSegLinetoRel createSVGPathSegLinetoRel(float x, float y) /*-{
+ return this.createSVGPathSegLinetoRel(x, y);
+ }-*/;
+
+ public final native JsSVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(float y) /*-{
+ return this.createSVGPathSegLinetoVerticalAbs(y);
+ }-*/;
+
+ public final native JsSVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(float y) /*-{
+ return this.createSVGPathSegLinetoVerticalRel(y);
+ }-*/;
+
+ public final native JsSVGPathSegMovetoAbs createSVGPathSegMovetoAbs(float x, float y) /*-{
+ return this.createSVGPathSegMovetoAbs(x, y);
+ }-*/;
+
+ public final native JsSVGPathSegMovetoRel createSVGPathSegMovetoRel(float x, float y) /*-{
+ return this.createSVGPathSegMovetoRel(x, y);
+ }-*/;
+
+ public final native int getPathSegAtLength(float distance) /*-{
+ return this.getPathSegAtLength(distance);
+ }-*/;
+
+ public final native JsSVGPoint getPointAtLength(float distance) /*-{
+ return this.getPointAtLength(distance);
+ }-*/;
+
+ public final native float getTotalLength() /*-{
+ return this.getTotalLength();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSeg.java b/elemental/src/elemental/js/svg/JsSVGPathSeg.java
new file mode 100644
index 0000000..d836762
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSeg.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSeg extends JsElementalMixinBase implements SVGPathSeg {
+ protected JsSVGPathSeg() {}
+
+ public final native int getPathSegType() /*-{
+ return this.pathSegType;
+ }-*/;
+
+ public final native String getPathSegTypeAsLetter() /*-{
+ return this.pathSegTypeAsLetter;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegArcAbs.java b/elemental/src/elemental/js/svg/JsSVGPathSegArcAbs.java
new file mode 100644
index 0000000..bb372f6
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegArcAbs.java
@@ -0,0 +1,96 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegArcAbs;
+
+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 JsSVGPathSegArcAbs extends JsSVGPathSeg implements SVGPathSegArcAbs {
+ protected JsSVGPathSegArcAbs() {}
+
+ public final native float getAngle() /*-{
+ return this.angle;
+ }-*/;
+
+ public final native void setAngle(float param_angle) /*-{
+ this.angle = param_angle;
+ }-*/;
+
+ public final native boolean isLargeArcFlag() /*-{
+ return this.largeArcFlag;
+ }-*/;
+
+ public final native void setLargeArcFlag(boolean param_largeArcFlag) /*-{
+ this.largeArcFlag = param_largeArcFlag;
+ }-*/;
+
+ public final native float getR1() /*-{
+ return this.r1;
+ }-*/;
+
+ public final native void setR1(float param_r1) /*-{
+ this.r1 = param_r1;
+ }-*/;
+
+ public final native float getR2() /*-{
+ return this.r2;
+ }-*/;
+
+ public final native void setR2(float param_r2) /*-{
+ this.r2 = param_r2;
+ }-*/;
+
+ public final native boolean isSweepFlag() /*-{
+ return this.sweepFlag;
+ }-*/;
+
+ public final native void setSweepFlag(boolean param_sweepFlag) /*-{
+ this.sweepFlag = param_sweepFlag;
+ }-*/;
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegArcRel.java b/elemental/src/elemental/js/svg/JsSVGPathSegArcRel.java
new file mode 100644
index 0000000..63231bf
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegArcRel.java
@@ -0,0 +1,96 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegArcRel;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegArcRel extends JsSVGPathSeg implements SVGPathSegArcRel {
+ protected JsSVGPathSegArcRel() {}
+
+ public final native float getAngle() /*-{
+ return this.angle;
+ }-*/;
+
+ public final native void setAngle(float param_angle) /*-{
+ this.angle = param_angle;
+ }-*/;
+
+ public final native boolean isLargeArcFlag() /*-{
+ return this.largeArcFlag;
+ }-*/;
+
+ public final native void setLargeArcFlag(boolean param_largeArcFlag) /*-{
+ this.largeArcFlag = param_largeArcFlag;
+ }-*/;
+
+ public final native float getR1() /*-{
+ return this.r1;
+ }-*/;
+
+ public final native void setR1(float param_r1) /*-{
+ this.r1 = param_r1;
+ }-*/;
+
+ public final native float getR2() /*-{
+ return this.r2;
+ }-*/;
+
+ public final native void setR2(float param_r2) /*-{
+ this.r2 = param_r2;
+ }-*/;
+
+ public final native boolean isSweepFlag() /*-{
+ return this.sweepFlag;
+ }-*/;
+
+ public final native void setSweepFlag(boolean param_sweepFlag) /*-{
+ this.sweepFlag = param_sweepFlag;
+ }-*/;
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegClosePath.java b/elemental/src/elemental/js/svg/JsSVGPathSegClosePath.java
new file mode 100644
index 0000000..5c258f8
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegClosePath.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGPathSegClosePath;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegClosePath extends JsSVGPathSeg implements SVGPathSegClosePath {
+ protected JsSVGPathSegClosePath() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicAbs.java b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicAbs.java
new file mode 100644
index 0000000..2639262
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicAbs.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegCurvetoCubicAbs;
+
+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 JsSVGPathSegCurvetoCubicAbs extends JsSVGPathSeg implements SVGPathSegCurvetoCubicAbs {
+ protected JsSVGPathSegCurvetoCubicAbs() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getX1() /*-{
+ return this.x1;
+ }-*/;
+
+ public final native void setX1(float param_x1) /*-{
+ this.x1 = param_x1;
+ }-*/;
+
+ public final native float getX2() /*-{
+ return this.x2;
+ }-*/;
+
+ public final native void setX2(float param_x2) /*-{
+ this.x2 = param_x2;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+
+ public final native float getY1() /*-{
+ return this.y1;
+ }-*/;
+
+ public final native void setY1(float param_y1) /*-{
+ this.y1 = param_y1;
+ }-*/;
+
+ public final native float getY2() /*-{
+ return this.y2;
+ }-*/;
+
+ public final native void setY2(float param_y2) /*-{
+ this.y2 = param_y2;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicRel.java b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicRel.java
new file mode 100644
index 0000000..4c7a1e9
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicRel.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegCurvetoCubicRel;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegCurvetoCubicRel extends JsSVGPathSeg implements SVGPathSegCurvetoCubicRel {
+ protected JsSVGPathSegCurvetoCubicRel() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getX1() /*-{
+ return this.x1;
+ }-*/;
+
+ public final native void setX1(float param_x1) /*-{
+ this.x1 = param_x1;
+ }-*/;
+
+ public final native float getX2() /*-{
+ return this.x2;
+ }-*/;
+
+ public final native void setX2(float param_x2) /*-{
+ this.x2 = param_x2;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+
+ public final native float getY1() /*-{
+ return this.y1;
+ }-*/;
+
+ public final native void setY1(float param_y1) /*-{
+ this.y1 = param_y1;
+ }-*/;
+
+ public final native float getY2() /*-{
+ return this.y2;
+ }-*/;
+
+ public final native void setY2(float param_y2) /*-{
+ this.y2 = param_y2;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicSmoothAbs.java b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicSmoothAbs.java
new file mode 100644
index 0000000..417f63f
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicSmoothAbs.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegCurvetoCubicSmoothAbs;
+
+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 JsSVGPathSegCurvetoCubicSmoothAbs extends JsSVGPathSeg implements SVGPathSegCurvetoCubicSmoothAbs {
+ protected JsSVGPathSegCurvetoCubicSmoothAbs() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getX2() /*-{
+ return this.x2;
+ }-*/;
+
+ public final native void setX2(float param_x2) /*-{
+ this.x2 = param_x2;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+
+ public final native float getY2() /*-{
+ return this.y2;
+ }-*/;
+
+ public final native void setY2(float param_y2) /*-{
+ this.y2 = param_y2;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicSmoothRel.java b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicSmoothRel.java
new file mode 100644
index 0000000..a2fa417
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoCubicSmoothRel.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegCurvetoCubicSmoothRel;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegCurvetoCubicSmoothRel extends JsSVGPathSeg implements SVGPathSegCurvetoCubicSmoothRel {
+ protected JsSVGPathSegCurvetoCubicSmoothRel() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getX2() /*-{
+ return this.x2;
+ }-*/;
+
+ public final native void setX2(float param_x2) /*-{
+ this.x2 = param_x2;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+
+ public final native float getY2() /*-{
+ return this.y2;
+ }-*/;
+
+ public final native void setY2(float param_y2) /*-{
+ this.y2 = param_y2;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticAbs.java b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticAbs.java
new file mode 100644
index 0000000..376e1c0
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticAbs.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegCurvetoQuadraticAbs;
+
+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 JsSVGPathSegCurvetoQuadraticAbs extends JsSVGPathSeg implements SVGPathSegCurvetoQuadraticAbs {
+ protected JsSVGPathSegCurvetoQuadraticAbs() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getX1() /*-{
+ return this.x1;
+ }-*/;
+
+ public final native void setX1(float param_x1) /*-{
+ this.x1 = param_x1;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+
+ public final native float getY1() /*-{
+ return this.y1;
+ }-*/;
+
+ public final native void setY1(float param_y1) /*-{
+ this.y1 = param_y1;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticRel.java b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticRel.java
new file mode 100644
index 0000000..695dc1d
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticRel.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegCurvetoQuadraticRel;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegCurvetoQuadraticRel extends JsSVGPathSeg implements SVGPathSegCurvetoQuadraticRel {
+ protected JsSVGPathSegCurvetoQuadraticRel() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getX1() /*-{
+ return this.x1;
+ }-*/;
+
+ public final native void setX1(float param_x1) /*-{
+ this.x1 = param_x1;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+
+ public final native float getY1() /*-{
+ return this.y1;
+ }-*/;
+
+ public final native void setY1(float param_y1) /*-{
+ this.y1 = param_y1;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticSmoothAbs.java b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticSmoothAbs.java
new file mode 100644
index 0000000..a6fe18e
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticSmoothAbs.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegCurvetoQuadraticSmoothAbs;
+
+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 JsSVGPathSegCurvetoQuadraticSmoothAbs extends JsSVGPathSeg implements SVGPathSegCurvetoQuadraticSmoothAbs {
+ protected JsSVGPathSegCurvetoQuadraticSmoothAbs() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticSmoothRel.java b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticSmoothRel.java
new file mode 100644
index 0000000..3d50e36
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegCurvetoQuadraticSmoothRel.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegCurvetoQuadraticSmoothRel;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegCurvetoQuadraticSmoothRel extends JsSVGPathSeg implements SVGPathSegCurvetoQuadraticSmoothRel {
+ protected JsSVGPathSegCurvetoQuadraticSmoothRel() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegLinetoAbs.java b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoAbs.java
new file mode 100644
index 0000000..541d0b5
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoAbs.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegLinetoAbs;
+
+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 JsSVGPathSegLinetoAbs extends JsSVGPathSeg implements SVGPathSegLinetoAbs {
+ protected JsSVGPathSegLinetoAbs() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegLinetoHorizontalAbs.java b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoHorizontalAbs.java
new file mode 100644
index 0000000..53b4f4d
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoHorizontalAbs.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegLinetoHorizontalAbs;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegLinetoHorizontalAbs extends JsSVGPathSeg implements SVGPathSegLinetoHorizontalAbs {
+ protected JsSVGPathSegLinetoHorizontalAbs() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegLinetoHorizontalRel.java b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoHorizontalRel.java
new file mode 100644
index 0000000..db88c2f
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoHorizontalRel.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegLinetoHorizontalRel;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegLinetoHorizontalRel extends JsSVGPathSeg implements SVGPathSegLinetoHorizontalRel {
+ protected JsSVGPathSegLinetoHorizontalRel() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegLinetoRel.java b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoRel.java
new file mode 100644
index 0000000..3f52557
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoRel.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegLinetoRel;
+
+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 JsSVGPathSegLinetoRel extends JsSVGPathSeg implements SVGPathSegLinetoRel {
+ protected JsSVGPathSegLinetoRel() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegLinetoVerticalAbs.java b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoVerticalAbs.java
new file mode 100644
index 0000000..8d3b063
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoVerticalAbs.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegLinetoVerticalAbs;
+
+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 JsSVGPathSegLinetoVerticalAbs extends JsSVGPathSeg implements SVGPathSegLinetoVerticalAbs {
+ protected JsSVGPathSegLinetoVerticalAbs() {}
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegLinetoVerticalRel.java b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoVerticalRel.java
new file mode 100644
index 0000000..2fce6c0
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegLinetoVerticalRel.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegLinetoVerticalRel;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegLinetoVerticalRel extends JsSVGPathSeg implements SVGPathSegLinetoVerticalRel {
+ protected JsSVGPathSegLinetoVerticalRel() {}
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegList.java b/elemental/src/elemental/js/svg/JsSVGPathSegList.java
new file mode 100644
index 0000000..66670e6
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegList.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegList;
+
+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 JsSVGPathSegList extends JsElementalMixinBase implements SVGPathSegList {
+ protected JsSVGPathSegList() {}
+
+ public final native int getNumberOfItems() /*-{
+ return this.numberOfItems;
+ }-*/;
+
+ public final native JsSVGPathSeg appendItem(SVGPathSeg newItem) /*-{
+ return this.appendItem(newItem);
+ }-*/;
+
+ public final native void clear() /*-{
+ this.clear();
+ }-*/;
+
+ public final native JsSVGPathSeg getItem(int index) /*-{
+ return this.getItem(index);
+ }-*/;
+
+ public final native JsSVGPathSeg initialize(SVGPathSeg newItem) /*-{
+ return this.initialize(newItem);
+ }-*/;
+
+ public final native JsSVGPathSeg insertItemBefore(SVGPathSeg newItem, int index) /*-{
+ return this.insertItemBefore(newItem, index);
+ }-*/;
+
+ public final native JsSVGPathSeg removeItem(int index) /*-{
+ return this.removeItem(index);
+ }-*/;
+
+ public final native JsSVGPathSeg replaceItem(SVGPathSeg newItem, int index) /*-{
+ return this.replaceItem(newItem, index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegMovetoAbs.java b/elemental/src/elemental/js/svg/JsSVGPathSegMovetoAbs.java
new file mode 100644
index 0000000..47b45fb
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegMovetoAbs.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSeg;
+import elemental.svg.SVGPathSegMovetoAbs;
+
+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 JsSVGPathSegMovetoAbs extends JsSVGPathSeg implements SVGPathSegMovetoAbs {
+ protected JsSVGPathSegMovetoAbs() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPathSegMovetoRel.java b/elemental/src/elemental/js/svg/JsSVGPathSegMovetoRel.java
new file mode 100644
index 0000000..60f0f08
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPathSegMovetoRel.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPathSegMovetoRel;
+import elemental.svg.SVGPathSeg;
+
+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 JsSVGPathSegMovetoRel extends JsSVGPathSeg implements SVGPathSegMovetoRel {
+ protected JsSVGPathSegMovetoRel() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPatternElement.java b/elemental/src/elemental/js/svg/JsSVGPatternElement.java
new file mode 100644
index 0000000..ef530bc
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPatternElement.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGAnimatedTransformList;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGPatternElement;
+
+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 JsSVGPatternElement extends JsSVGElement implements SVGPatternElement {
+ protected JsSVGPatternElement() {}
+
+ public final native JsSVGAnimatedEnumeration getPatternContentUnits() /*-{
+ return this.patternContentUnits;
+ }-*/;
+
+ public final native JsSVGAnimatedTransformList getPatternTransform() /*-{
+ return this.patternTransform;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getPatternUnits() /*-{
+ return this.patternUnits;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY() /*-{
+ return this.y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPoint.java b/elemental/src/elemental/js/svg/JsSVGPoint.java
new file mode 100644
index 0000000..de55f21
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPoint.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGMatrix;
+import elemental.svg.SVGPoint;
+
+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 JsSVGPoint extends JsElementalMixinBase implements SVGPoint {
+ protected JsSVGPoint() {}
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+
+ public final native JsSVGPoint matrixTransform(SVGMatrix matrix) /*-{
+ return this.matrixTransform(matrix);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPointList.java b/elemental/src/elemental/js/svg/JsSVGPointList.java
new file mode 100644
index 0000000..3905e01
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPointList.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPointList;
+import elemental.svg.SVGPoint;
+
+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 JsSVGPointList extends JsElementalMixinBase implements SVGPointList {
+ protected JsSVGPointList() {}
+
+ public final native int getNumberOfItems() /*-{
+ return this.numberOfItems;
+ }-*/;
+
+ public final native JsSVGPoint appendItem(SVGPoint item) /*-{
+ return this.appendItem(item);
+ }-*/;
+
+ public final native void clear() /*-{
+ this.clear();
+ }-*/;
+
+ public final native JsSVGPoint getItem(int index) /*-{
+ return this.getItem(index);
+ }-*/;
+
+ public final native JsSVGPoint initialize(SVGPoint item) /*-{
+ return this.initialize(item);
+ }-*/;
+
+ public final native JsSVGPoint insertItemBefore(SVGPoint item, int index) /*-{
+ return this.insertItemBefore(item, index);
+ }-*/;
+
+ public final native JsSVGPoint removeItem(int index) /*-{
+ return this.removeItem(index);
+ }-*/;
+
+ public final native JsSVGPoint replaceItem(SVGPoint item, int index) /*-{
+ return this.replaceItem(item, index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPolygonElement.java b/elemental/src/elemental/js/svg/JsSVGPolygonElement.java
new file mode 100644
index 0000000..6cdbfbe
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPolygonElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGPolygonElement;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGPointList;
+
+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 JsSVGPolygonElement extends JsSVGElement implements SVGPolygonElement {
+ protected JsSVGPolygonElement() {}
+
+ public final native JsSVGPointList getAnimatedPoints() /*-{
+ return this.animatedPoints;
+ }-*/;
+
+ public final native JsSVGPointList getPoints() /*-{
+ return this.points;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPolylineElement.java b/elemental/src/elemental/js/svg/JsSVGPolylineElement.java
new file mode 100644
index 0000000..8a1e95e
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPolylineElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGPolylineElement;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGPointList;
+
+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 JsSVGPolylineElement extends JsSVGElement implements SVGPolylineElement {
+ protected JsSVGPolylineElement() {}
+
+ public final native JsSVGPointList getAnimatedPoints() /*-{
+ return this.animatedPoints;
+ }-*/;
+
+ public final native JsSVGPointList getPoints() /*-{
+ return this.points;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGPreserveAspectRatio.java b/elemental/src/elemental/js/svg/JsSVGPreserveAspectRatio.java
new file mode 100644
index 0000000..802caca
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGPreserveAspectRatio.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGPreserveAspectRatio;
+
+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 JsSVGPreserveAspectRatio extends JsElementalMixinBase implements SVGPreserveAspectRatio {
+ protected JsSVGPreserveAspectRatio() {}
+
+ public final native int getAlign() /*-{
+ return this.align;
+ }-*/;
+
+ public final native void setAlign(int param_align) /*-{
+ this.align = param_align;
+ }-*/;
+
+ public final native int getMeetOrSlice() /*-{
+ return this.meetOrSlice;
+ }-*/;
+
+ public final native void setMeetOrSlice(int param_meetOrSlice) /*-{
+ this.meetOrSlice = param_meetOrSlice;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGRadialGradientElement.java b/elemental/src/elemental/js/svg/JsSVGRadialGradientElement.java
new file mode 100644
index 0000000..72b38d3
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGRadialGradientElement.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGGradientElement;
+import elemental.svg.SVGRadialGradientElement;
+
+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 JsSVGRadialGradientElement extends JsSVGGradientElement implements SVGRadialGradientElement {
+ protected JsSVGRadialGradientElement() {}
+
+ public final native JsSVGAnimatedLength getCx() /*-{
+ return this.cx;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getCy() /*-{
+ return this.cy;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getFx() /*-{
+ return this.fx;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getFy() /*-{
+ return this.fy;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getR() /*-{
+ return this.r;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGRect.java b/elemental/src/elemental/js/svg/JsSVGRect.java
new file mode 100644
index 0000000..d36f072
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGRect.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGRect;
+
+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 JsSVGRect extends JsElementalMixinBase implements SVGRect {
+ protected JsSVGRect() {}
+
+ public final native float getHeight() /*-{
+ return this.height;
+ }-*/;
+
+ public final native void setHeight(float param_height) /*-{
+ this.height = param_height;
+ }-*/;
+
+ public final native float getWidth() /*-{
+ return this.width;
+ }-*/;
+
+ public final native void setWidth(float param_width) /*-{
+ this.width = param_width;
+ }-*/;
+
+ public final native float getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native void setX(float param_x) /*-{
+ this.x = param_x;
+ }-*/;
+
+ public final native float getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native void setY(float param_y) /*-{
+ this.y = param_y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGRectElement.java b/elemental/src/elemental/js/svg/JsSVGRectElement.java
new file mode 100644
index 0000000..5822fdc
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGRectElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGRectElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGRectElement extends JsSVGElement implements SVGRectElement {
+ protected JsSVGRectElement() {}
+
+ public final native JsSVGAnimatedLength getRx() /*-{
+ return this.rx;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getRy() /*-{
+ return this.ry;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY() /*-{
+ return this.y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGRenderingIntent.java b/elemental/src/elemental/js/svg/JsSVGRenderingIntent.java
new file mode 100644
index 0000000..90da026
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGRenderingIntent.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGRenderingIntent;
+
+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 JsSVGRenderingIntent extends JsElementalMixinBase implements SVGRenderingIntent {
+ protected JsSVGRenderingIntent() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGSVGElement.java b/elemental/src/elemental/js/svg/JsSVGSVGElement.java
new file mode 100644
index 0000000..5c4f8a0
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGSVGElement.java
@@ -0,0 +1,209 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGTransform;
+import elemental.svg.SVGAngle;
+import elemental.dom.Element;
+import elemental.svg.SVGRect;
+import elemental.svg.SVGNumber;
+import elemental.js.dom.JsElement;
+import elemental.svg.SVGViewSpec;
+import elemental.svg.SVGSVGElement;
+import elemental.svg.SVGPoint;
+import elemental.svg.SVGAnimatedLength;
+import elemental.js.dom.JsNodeList;
+import elemental.svg.SVGMatrix;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGLength;
+import elemental.dom.NodeList;
+
+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 JsSVGSVGElement extends JsSVGElement implements SVGSVGElement {
+ protected JsSVGSVGElement() {}
+
+ public final native String getContentScriptType() /*-{
+ return this.contentScriptType;
+ }-*/;
+
+ public final native void setContentScriptType(String param_contentScriptType) /*-{
+ this.contentScriptType = param_contentScriptType;
+ }-*/;
+
+ public final native String getContentStyleType() /*-{
+ return this.contentStyleType;
+ }-*/;
+
+ public final native void setContentStyleType(String param_contentStyleType) /*-{
+ this.contentStyleType = param_contentStyleType;
+ }-*/;
+
+ public final native float getCurrentScale() /*-{
+ return this.currentScale;
+ }-*/;
+
+ public final native void setCurrentScale(float param_currentScale) /*-{
+ this.currentScale = param_currentScale;
+ }-*/;
+
+ public final native JsSVGPoint getCurrentTranslate() /*-{
+ return this.currentTranslate;
+ }-*/;
+
+ public final native JsSVGViewSpec getCurrentView() /*-{
+ return this.currentView;
+ }-*/;
+
+ public final native float getPixelUnitToMillimeterX() /*-{
+ return this.pixelUnitToMillimeterX;
+ }-*/;
+
+ public final native float getPixelUnitToMillimeterY() /*-{
+ return this.pixelUnitToMillimeterY;
+ }-*/;
+
+ public final native float getScreenPixelToMillimeterX() /*-{
+ return this.screenPixelToMillimeterX;
+ }-*/;
+
+ public final native float getScreenPixelToMillimeterY() /*-{
+ return this.screenPixelToMillimeterY;
+ }-*/;
+
+ public final native boolean isUseCurrentView() /*-{
+ return this.useCurrentView;
+ }-*/;
+
+ public final native JsSVGRect getViewport() /*-{
+ return this.viewport;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY() /*-{
+ return this.y;
+ }-*/;
+
+ public final native boolean animationsPaused() /*-{
+ return this.animationsPaused();
+ }-*/;
+
+ public final native boolean checkEnclosure(SVGElement element, SVGRect rect) /*-{
+ return this.checkEnclosure(element, rect);
+ }-*/;
+
+ public final native boolean checkIntersection(SVGElement element, SVGRect rect) /*-{
+ return this.checkIntersection(element, rect);
+ }-*/;
+
+ public final native JsSVGAngle createSVGAngle() /*-{
+ return this.createSVGAngle();
+ }-*/;
+
+ public final native JsSVGLength createSVGLength() /*-{
+ return this.createSVGLength();
+ }-*/;
+
+ public final native JsSVGMatrix createSVGMatrix() /*-{
+ return this.createSVGMatrix();
+ }-*/;
+
+ public final native JsSVGNumber createSVGNumber() /*-{
+ return this.createSVGNumber();
+ }-*/;
+
+ public final native JsSVGPoint createSVGPoint() /*-{
+ return this.createSVGPoint();
+ }-*/;
+
+ public final native JsSVGRect createSVGRect() /*-{
+ return this.createSVGRect();
+ }-*/;
+
+ public final native JsSVGTransform createSVGTransform() /*-{
+ return this.createSVGTransform();
+ }-*/;
+
+ public final native JsSVGTransform createSVGTransformFromMatrix(SVGMatrix matrix) /*-{
+ return this.createSVGTransformFromMatrix(matrix);
+ }-*/;
+
+ public final native void deselectAll() /*-{
+ this.deselectAll();
+ }-*/;
+
+ public final native void forceRedraw() /*-{
+ this.forceRedraw();
+ }-*/;
+
+ public final native float getCurrentTime() /*-{
+ return this.getCurrentTime();
+ }-*/;
+
+ public final native JsElement getElementById(String elementId) /*-{
+ return this.getElementById(elementId);
+ }-*/;
+
+ public final native JsNodeList getEnclosureList(SVGRect rect, SVGElement referenceElement) /*-{
+ return this.getEnclosureList(rect, referenceElement);
+ }-*/;
+
+ public final native JsNodeList getIntersectionList(SVGRect rect, SVGElement referenceElement) /*-{
+ return this.getIntersectionList(rect, referenceElement);
+ }-*/;
+
+ public final native void pauseAnimations() /*-{
+ this.pauseAnimations();
+ }-*/;
+
+ public final native void setCurrentTime(float seconds) /*-{
+ this.setCurrentTime(seconds);
+ }-*/;
+
+ public final native int suspendRedraw(int maxWaitMilliseconds) /*-{
+ return this.suspendRedraw(maxWaitMilliseconds);
+ }-*/;
+
+ public final native void unpauseAnimations() /*-{
+ this.unpauseAnimations();
+ }-*/;
+
+ public final native void unsuspendRedraw(int suspendHandleId) /*-{
+ this.unsuspendRedraw(suspendHandleId);
+ }-*/;
+
+ public final native void unsuspendRedrawAll() /*-{
+ this.unsuspendRedrawAll();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGScriptElement.java b/elemental/src/elemental/js/svg/JsSVGScriptElement.java
new file mode 100644
index 0000000..10922a9
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGScriptElement.java
@@ -0,0 +1,48 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGScriptElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGScriptElement extends JsSVGElement implements SVGScriptElement {
+ protected JsSVGScriptElement() {}
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGSetElement.java b/elemental/src/elemental/js/svg/JsSVGSetElement.java
new file mode 100644
index 0000000..d942b9d
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGSetElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGSetElement;
+import elemental.svg.SVGAnimationElement;
+
+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 JsSVGSetElement extends JsSVGAnimationElement implements SVGSetElement {
+ protected JsSVGSetElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGStopElement.java b/elemental/src/elemental/js/svg/JsSVGStopElement.java
new file mode 100644
index 0000000..26eb9da
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGStopElement.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGStopElement;
+import elemental.svg.SVGAnimatedNumber;
+import elemental.svg.SVGElement;
+
+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 JsSVGStopElement extends JsSVGElement implements SVGStopElement {
+ protected JsSVGStopElement() {}
+
+ public final native JsSVGAnimatedNumber getOffset() /*-{
+ return this.offset;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGStringList.java b/elemental/src/elemental/js/svg/JsSVGStringList.java
new file mode 100644
index 0000000..0c54f9e
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGStringList.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGStringList;
+
+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 JsSVGStringList extends JsElementalMixinBase implements SVGStringList {
+ protected JsSVGStringList() {}
+
+ public final native int getNumberOfItems() /*-{
+ return this.numberOfItems;
+ }-*/;
+
+ public final native String appendItem(String item) /*-{
+ return this.appendItem(item);
+ }-*/;
+
+ public final native void clear() /*-{
+ this.clear();
+ }-*/;
+
+ public final native String getItem(int index) /*-{
+ return this.getItem(index);
+ }-*/;
+
+ public final native String initialize(String item) /*-{
+ return this.initialize(item);
+ }-*/;
+
+ public final native String insertItemBefore(String item, int index) /*-{
+ return this.insertItemBefore(item, index);
+ }-*/;
+
+ public final native String removeItem(int index) /*-{
+ return this.removeItem(index);
+ }-*/;
+
+ public final native String replaceItem(String item, int index) /*-{
+ return this.replaceItem(item, index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGStyleElement.java b/elemental/src/elemental/js/svg/JsSVGStyleElement.java
new file mode 100644
index 0000000..615eb69
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGStyleElement.java
@@ -0,0 +1,64 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGStyleElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGStyleElement extends JsSVGElement implements SVGStyleElement {
+ protected JsSVGStyleElement() {}
+
+ public final native boolean isDisabled() /*-{
+ return this.disabled;
+ }-*/;
+
+ public final native void setDisabled(boolean param_disabled) /*-{
+ this.disabled = param_disabled;
+ }-*/;
+
+ public final native String getMedia() /*-{
+ return this.media;
+ }-*/;
+
+ public final native void setMedia(String param_media) /*-{
+ this.media = param_media;
+ }-*/;
+
+ public final native String getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setType(String param_type) /*-{
+ this.type = param_type;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGSwitchElement.java b/elemental/src/elemental/js/svg/JsSVGSwitchElement.java
new file mode 100644
index 0000000..b2548c8
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGSwitchElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGSwitchElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGSwitchElement extends JsSVGElement implements SVGSwitchElement {
+ protected JsSVGSwitchElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGSymbolElement.java b/elemental/src/elemental/js/svg/JsSVGSymbolElement.java
new file mode 100644
index 0000000..987cffd
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGSymbolElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGSymbolElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGSymbolElement extends JsSVGElement implements SVGSymbolElement {
+ protected JsSVGSymbolElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGTRefElement.java b/elemental/src/elemental/js/svg/JsSVGTRefElement.java
new file mode 100644
index 0000000..8e5102e
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGTRefElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGTRefElement;
+import elemental.svg.SVGTextPositioningElement;
+
+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 JsSVGTRefElement extends JsSVGTextPositioningElement implements SVGTRefElement {
+ protected JsSVGTRefElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGTSpanElement.java b/elemental/src/elemental/js/svg/JsSVGTSpanElement.java
new file mode 100644
index 0000000..25d89e7
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGTSpanElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGTextPositioningElement;
+import elemental.svg.SVGTSpanElement;
+
+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 JsSVGTSpanElement extends JsSVGTextPositioningElement implements SVGTSpanElement {
+ protected JsSVGTSpanElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGTextContentElement.java b/elemental/src/elemental/js/svg/JsSVGTextContentElement.java
new file mode 100644
index 0000000..9b10416
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGTextContentElement.java
@@ -0,0 +1,88 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGRect;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGPoint;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGTextContentElement;
+
+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 JsSVGTextContentElement extends JsSVGElement implements SVGTextContentElement {
+ protected JsSVGTextContentElement() {}
+
+ public final native JsSVGAnimatedEnumeration getLengthAdjust() /*-{
+ return this.lengthAdjust;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getTextLength() /*-{
+ return this.textLength;
+ }-*/;
+
+ public final native int getCharNumAtPosition(SVGPoint point) /*-{
+ return this.getCharNumAtPosition(point);
+ }-*/;
+
+ public final native float getComputedTextLength() /*-{
+ return this.getComputedTextLength();
+ }-*/;
+
+ public final native JsSVGPoint getEndPositionOfChar(int offset) /*-{
+ return this.getEndPositionOfChar(offset);
+ }-*/;
+
+ public final native JsSVGRect getExtentOfChar(int offset) /*-{
+ return this.getExtentOfChar(offset);
+ }-*/;
+
+ public final native int getNumberOfChars() /*-{
+ return this.getNumberOfChars();
+ }-*/;
+
+ public final native float getRotationOfChar(int offset) /*-{
+ return this.getRotationOfChar(offset);
+ }-*/;
+
+ public final native JsSVGPoint getStartPositionOfChar(int offset) /*-{
+ return this.getStartPositionOfChar(offset);
+ }-*/;
+
+ public final native float getSubStringLength(int offset, int length) /*-{
+ return this.getSubStringLength(offset, length);
+ }-*/;
+
+ public final native void selectSubString(int offset, int length) /*-{
+ this.selectSubString(offset, length);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGTextElement.java b/elemental/src/elemental/js/svg/JsSVGTextElement.java
new file mode 100644
index 0000000..5975b7d
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGTextElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGTextPositioningElement;
+import elemental.svg.SVGTextElement;
+
+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 JsSVGTextElement extends JsSVGTextPositioningElement implements SVGTextElement {
+ protected JsSVGTextElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGTextPathElement.java b/elemental/src/elemental/js/svg/JsSVGTextPathElement.java
new file mode 100644
index 0000000..39c8a96
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGTextPathElement.java
@@ -0,0 +1,54 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGAnimatedEnumeration;
+import elemental.svg.SVGTextContentElement;
+import elemental.svg.SVGTextPathElement;
+
+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 JsSVGTextPathElement extends JsSVGTextContentElement implements SVGTextPathElement {
+ protected JsSVGTextPathElement() {}
+
+ public final native JsSVGAnimatedEnumeration getMethod() /*-{
+ return this.method;
+ }-*/;
+
+ public final native JsSVGAnimatedEnumeration getSpacing() /*-{
+ return this.spacing;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getStartOffset() /*-{
+ return this.startOffset;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGTextPositioningElement.java b/elemental/src/elemental/js/svg/JsSVGTextPositioningElement.java
new file mode 100644
index 0000000..b41dd7f
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGTextPositioningElement.java
@@ -0,0 +1,62 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLengthList;
+import elemental.svg.SVGTextPositioningElement;
+import elemental.svg.SVGTextContentElement;
+import elemental.svg.SVGAnimatedNumberList;
+
+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 JsSVGTextPositioningElement extends JsSVGTextContentElement implements SVGTextPositioningElement {
+ protected JsSVGTextPositioningElement() {}
+
+ public final native JsSVGAnimatedLengthList getDx() /*-{
+ return this.dx;
+ }-*/;
+
+ public final native JsSVGAnimatedLengthList getDy() /*-{
+ return this.dy;
+ }-*/;
+
+ public final native JsSVGAnimatedNumberList getRotate() /*-{
+ return this.rotate;
+ }-*/;
+
+ public final native JsSVGAnimatedLengthList getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLengthList getY() /*-{
+ return this.y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGTitleElement.java b/elemental/src/elemental/js/svg/JsSVGTitleElement.java
new file mode 100644
index 0000000..5372c63
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGTitleElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGTitleElement;
+
+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 JsSVGTitleElement extends JsSVGElement implements SVGTitleElement {
+ protected JsSVGTitleElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGTransform.java b/elemental/src/elemental/js/svg/JsSVGTransform.java
new file mode 100644
index 0000000..0c79960
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGTransform.java
@@ -0,0 +1,72 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGMatrix;
+import elemental.svg.SVGTransform;
+
+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 JsSVGTransform extends JsElementalMixinBase implements SVGTransform {
+ protected JsSVGTransform() {}
+
+ public final native float getAngle() /*-{
+ return this.angle;
+ }-*/;
+
+ public final native JsSVGMatrix getMatrix() /*-{
+ return this.matrix;
+ }-*/;
+
+ public final native int getType() /*-{
+ return this.type;
+ }-*/;
+
+ public final native void setRotate(float angle, float cx, float cy) /*-{
+ this.setRotate(angle, cx, cy);
+ }-*/;
+
+ public final native void setScale(float sx, float sy) /*-{
+ this.setScale(sx, sy);
+ }-*/;
+
+ public final native void setSkewX(float angle) /*-{
+ this.setSkewX(angle);
+ }-*/;
+
+ public final native void setSkewY(float angle) /*-{
+ this.setSkewY(angle);
+ }-*/;
+
+ public final native void setTranslate(float tx, float ty) /*-{
+ this.setTranslate(tx, ty);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGTransformList.java b/elemental/src/elemental/js/svg/JsSVGTransformList.java
new file mode 100644
index 0000000..4d4e737
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGTransformList.java
@@ -0,0 +1,81 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGTransform;
+import elemental.svg.SVGMatrix;
+import elemental.svg.SVGTransformList;
+
+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 JsSVGTransformList extends JsElementalMixinBase implements SVGTransformList {
+ protected JsSVGTransformList() {}
+
+ public final native int getNumberOfItems() /*-{
+ return this.numberOfItems;
+ }-*/;
+
+ public final native JsSVGTransform appendItem(SVGTransform item) /*-{
+ return this.appendItem(item);
+ }-*/;
+
+ public final native void clear() /*-{
+ this.clear();
+ }-*/;
+
+ public final native JsSVGTransform consolidate() /*-{
+ return this.consolidate();
+ }-*/;
+
+ public final native JsSVGTransform createSVGTransformFromMatrix(SVGMatrix matrix) /*-{
+ return this.createSVGTransformFromMatrix(matrix);
+ }-*/;
+
+ public final native JsSVGTransform getItem(int index) /*-{
+ return this.getItem(index);
+ }-*/;
+
+ public final native JsSVGTransform initialize(SVGTransform item) /*-{
+ return this.initialize(item);
+ }-*/;
+
+ public final native JsSVGTransform insertItemBefore(SVGTransform item, int index) /*-{
+ return this.insertItemBefore(item, index);
+ }-*/;
+
+ public final native JsSVGTransform removeItem(int index) /*-{
+ return this.removeItem(index);
+ }-*/;
+
+ public final native JsSVGTransform replaceItem(SVGTransform item, int index) /*-{
+ return this.replaceItem(item, index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGUnitTypes.java b/elemental/src/elemental/js/svg/JsSVGUnitTypes.java
new file mode 100644
index 0000000..98f8829
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGUnitTypes.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGUnitTypes;
+
+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 JsSVGUnitTypes extends JsElementalMixinBase implements SVGUnitTypes {
+ protected JsSVGUnitTypes() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGUseElement.java b/elemental/src/elemental/js/svg/JsSVGUseElement.java
new file mode 100644
index 0000000..fb72872
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGUseElement.java
@@ -0,0 +1,58 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedLength;
+import elemental.svg.SVGUseElement;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGElementInstance;
+
+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 JsSVGUseElement extends JsSVGElement implements SVGUseElement {
+ protected JsSVGUseElement() {}
+
+ public final native JsSVGElementInstance getAnimatedInstanceRoot() /*-{
+ return this.animatedInstanceRoot;
+ }-*/;
+
+ public final native JsSVGElementInstance getInstanceRoot() /*-{
+ return this.instanceRoot;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getX() /*-{
+ return this.x;
+ }-*/;
+
+ public final native JsSVGAnimatedLength getY() /*-{
+ return this.y;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGVKernElement.java b/elemental/src/elemental/js/svg/JsSVGVKernElement.java
new file mode 100644
index 0000000..447c95f
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGVKernElement.java
@@ -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 elemental.js.svg;
+import elemental.svg.SVGVKernElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGVKernElement extends JsSVGElement implements SVGVKernElement {
+ protected JsSVGVKernElement() {}
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGViewElement.java b/elemental/src/elemental/js/svg/JsSVGViewElement.java
new file mode 100644
index 0000000..d6d8926
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGViewElement.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGStringList;
+import elemental.svg.SVGViewElement;
+import elemental.svg.SVGElement;
+
+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 JsSVGViewElement extends JsSVGElement implements SVGViewElement {
+ protected JsSVGViewElement() {}
+
+ public final native JsSVGStringList getViewTarget() /*-{
+ return this.viewTarget;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGViewSpec.java b/elemental/src/elemental/js/svg/JsSVGViewSpec.java
new file mode 100644
index 0000000..650786e
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGViewSpec.java
@@ -0,0 +1,67 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.svg.SVGAnimatedRect;
+import elemental.svg.SVGAnimatedPreserveAspectRatio;
+import elemental.svg.SVGTransformList;
+import elemental.svg.SVGElement;
+import elemental.svg.SVGViewSpec;
+
+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 JsSVGViewSpec extends JsElementalMixinBase implements SVGViewSpec {
+ protected JsSVGViewSpec() {}
+
+ public final native String getPreserveAspectRatioString() /*-{
+ return this.preserveAspectRatioString;
+ }-*/;
+
+ public final native JsSVGTransformList getTransform() /*-{
+ return this.transform;
+ }-*/;
+
+ public final native String getTransformString() /*-{
+ return this.transformString;
+ }-*/;
+
+ public final native String getViewBoxString() /*-{
+ return this.viewBoxString;
+ }-*/;
+
+ public final native JsSVGElement getViewTarget() /*-{
+ return this.viewTarget;
+ }-*/;
+
+ public final native String getViewTargetString() /*-{
+ return this.viewTargetString;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/svg/JsSVGZoomEvent.java b/elemental/src/elemental/js/svg/JsSVGZoomEvent.java
new file mode 100644
index 0000000..ae87bbc
--- /dev/null
+++ b/elemental/src/elemental/js/svg/JsSVGZoomEvent.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.js.svg;
+import elemental.events.UIEvent;
+import elemental.svg.SVGZoomEvent;
+import elemental.js.events.JsUIEvent;
+import elemental.svg.SVGPoint;
+import elemental.svg.SVGRect;
+
+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 JsSVGZoomEvent extends JsUIEvent implements SVGZoomEvent {
+ protected JsSVGZoomEvent() {}
+
+ public final native float getNewScale() /*-{
+ return this.newScale;
+ }-*/;
+
+ public final native JsSVGPoint getNewTranslate() /*-{
+ return this.newTranslate;
+ }-*/;
+
+ public final native float getPreviousScale() /*-{
+ return this.previousScale;
+ }-*/;
+
+ public final native JsSVGPoint getPreviousTranslate() /*-{
+ return this.previousTranslate;
+ }-*/;
+
+ public final native JsSVGRect getZoomRectScreen() /*-{
+ return this.zoomRectScreen;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/traversal/JsNodeFilter.java b/elemental/src/elemental/js/traversal/JsNodeFilter.java
new file mode 100644
index 0000000..cf0f792
--- /dev/null
+++ b/elemental/src/elemental/js/traversal/JsNodeFilter.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.traversal;
+import elemental.dom.Node;
+import elemental.traversal.NodeFilter;
+import elemental.js.dom.JsNode;
+
+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 JsNodeFilter extends JsElementalMixinBase implements NodeFilter {
+ protected JsNodeFilter() {}
+
+ public final native short acceptNode(Node n) /*-{
+ return this.acceptNode(n);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/traversal/JsNodeIterator.java b/elemental/src/elemental/js/traversal/JsNodeIterator.java
new file mode 100644
index 0000000..c6c91b7
--- /dev/null
+++ b/elemental/src/elemental/js/traversal/JsNodeIterator.java
@@ -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 elemental.js.traversal;
+import elemental.traversal.NodeFilter;
+import elemental.dom.Node;
+import elemental.traversal.NodeIterator;
+import elemental.js.dom.JsNode;
+
+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 JsNodeIterator extends JsElementalMixinBase implements NodeIterator {
+ protected JsNodeIterator() {}
+
+ public final native boolean isExpandEntityReferences() /*-{
+ return this.expandEntityReferences;
+ }-*/;
+
+ public final native JsNodeFilter getFilter() /*-{
+ return this.filter;
+ }-*/;
+
+ public final native boolean isPointerBeforeReferenceNode() /*-{
+ return this.pointerBeforeReferenceNode;
+ }-*/;
+
+ public final native JsNode getReferenceNode() /*-{
+ return this.referenceNode;
+ }-*/;
+
+ public final native JsNode getRoot() /*-{
+ return this.root;
+ }-*/;
+
+ public final native int getWhatToShow() /*-{
+ return this.whatToShow;
+ }-*/;
+
+ public final native void detach() /*-{
+ this.detach();
+ }-*/;
+
+ public final native JsNode nextNode() /*-{
+ return this.nextNode();
+ }-*/;
+
+ public final native JsNode previousNode() /*-{
+ return this.previousNode();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/traversal/JsTreeWalker.java b/elemental/src/elemental/js/traversal/JsTreeWalker.java
new file mode 100644
index 0000000..bfcf2ec
--- /dev/null
+++ b/elemental/src/elemental/js/traversal/JsTreeWalker.java
@@ -0,0 +1,94 @@
+/*
+ * 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 elemental.js.traversal;
+import elemental.dom.Node;
+import elemental.traversal.NodeFilter;
+import elemental.traversal.TreeWalker;
+import elemental.js.dom.JsNode;
+
+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 JsTreeWalker extends JsElementalMixinBase implements TreeWalker {
+ protected JsTreeWalker() {}
+
+ public final native JsNode getCurrentNode() /*-{
+ return this.currentNode;
+ }-*/;
+
+ public final native void setCurrentNode(Node param_currentNode) /*-{
+ this.currentNode = param_currentNode;
+ }-*/;
+
+ public final native boolean isExpandEntityReferences() /*-{
+ return this.expandEntityReferences;
+ }-*/;
+
+ public final native JsNodeFilter getFilter() /*-{
+ return this.filter;
+ }-*/;
+
+ public final native JsNode getRoot() /*-{
+ return this.root;
+ }-*/;
+
+ public final native int getWhatToShow() /*-{
+ return this.whatToShow;
+ }-*/;
+
+ public final native JsNode firstChild() /*-{
+ return this.firstChild();
+ }-*/;
+
+ public final native JsNode lastChild() /*-{
+ return this.lastChild();
+ }-*/;
+
+ public final native JsNode nextNode() /*-{
+ return this.nextNode();
+ }-*/;
+
+ public final native JsNode nextSibling() /*-{
+ return this.nextSibling();
+ }-*/;
+
+ public final native JsNode parentNode() /*-{
+ return this.parentNode();
+ }-*/;
+
+ public final native JsNode previousNode() /*-{
+ return this.previousNode();
+ }-*/;
+
+ public final native JsNode previousSibling() /*-{
+ return this.previousSibling();
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/util/JsArrayOf.java b/elemental/src/elemental/js/util/JsArrayOf.java
new file mode 100644
index 0000000..74d9e39
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsArrayOf.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.util.ArrayOf;
+import elemental.util.CanCompare;
+
+/**
+ * JavaScript native implementation of {@link ArrayOf}.
+ */
+public final class JsArrayOf<T> extends JavaScriptObject implements ArrayOf<T> {
+
+ /**
+ * Create a new empty Array instance.
+ */
+ public static <T> JsArrayOf<T> create() {
+ return JavaScriptObject.createArray().cast();
+ }
+
+ static native boolean isEmpty(JavaScriptObject array) /*-{
+ return !array.length;
+ }-*/;
+
+ static native <T extends JavaScriptObject> T splice(JavaScriptObject array, int index, int count) /*-{
+ return array.splice(index, count);
+ }-*/;
+
+ protected JsArrayOf() {
+ }
+
+ public native JsArrayOf<T> concat(ArrayOf<T> values) /*-{
+ return this.concat(values);
+ }-*/;
+
+ public boolean contains(T value) {
+ return indexOf(value) != -1;
+ }
+
+ public native T get(int index) /*-{
+ return this[index];
+ }-*/;
+
+ public native int indexOf(T value) /*-{
+ return this.indexOf(value);
+ }-*/;
+
+ public native void insert(int index, T value) /*-{
+ this.splice(index, 0, value);
+ }-*/;
+
+ public boolean isEmpty() {
+ return isEmpty(this);
+ }
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ public String join() {
+ // As per JS spec
+ return join(",");
+ }
+
+ public native String join(String separator) /*-{
+ return this.join(separator);
+ }-*/;
+
+ public native int length() /*-{
+ return this.length;
+ }-*/;
+
+ public native T peek() /*-{
+ return this[this.length - 1];
+ }-*/;
+
+ public native T pop() /*-{
+ return this.pop();
+ }-*/;
+
+ /**
+ * Pushes the given value onto the end of the array.
+ */
+ public native void push(T value) /*-{
+ this[this.length] = value;
+ }-*/;
+
+ public void remove(T value) {
+ final int index = indexOf(value);
+ if (index != -1) {
+ splice(index, 1);
+ }
+ }
+
+ public void removeByIndex(int index) {
+ splice(index, 1);
+ }
+
+ public native void set(int index, T value) /*-{
+ this[index] = value;
+ }-*/;
+
+ public native void setLength(int newLength) /*-{
+ this.length = newLength;
+ }-*/;
+
+ public native T shift() /*-{
+ return this.shift();
+ }-*/;
+
+ public native void sort(CanCompare<T> comparator) /*-{
+ this.sort(function(a, b) {
+ return comparator.@elemental.util.CanCompare::compare(Ljava/lang/Object;Ljava/lang/Object;)(a, b);
+ });
+ }-*/;
+
+ public JsArrayOf<T> splice(int index, int count) {
+ return splice(this, index, count);
+ }
+
+ public native void unshift(T value) /*-{
+ this.unshift(value);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/util/JsArrayOfBoolean.java b/elemental/src/elemental/js/util/JsArrayOfBoolean.java
new file mode 100644
index 0000000..1b3495d
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsArrayOfBoolean.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.core.client.JsArrayBoolean;
+
+import elemental.util.ArrayOfBoolean;
+
+/**
+ * JavaScript native implementation of {@link ArrayOfBoolean}.
+ */
+public final class JsArrayOfBoolean extends JsArrayBoolean implements ArrayOfBoolean {
+
+ /**
+ * Create a new empty instance.
+ */
+ public static JsArrayOfBoolean create() {
+ return JavaScriptObject.createArray().cast();
+ }
+
+ protected JsArrayOfBoolean() {
+ }
+
+ public native JsArrayOfBoolean concat(ArrayOfBoolean values) /*-{
+ return this.concat(values);
+ }-*/;
+
+ public boolean contains(boolean value) {
+ return indexOf(value) != -1;
+ }
+
+ public native int indexOf(boolean value) /*-{
+ return this.indexOf(value);
+ }-*/;
+
+ public native void insert(int index, boolean value) /*-{
+ this.splice(index, 0, value);
+ }-*/;
+
+ public boolean isEmpty() {
+ return JsArrayOf.isEmpty(this);
+ }
+
+ public native boolean isSet(int index) /*-{
+ return this[index] !== undefined;
+ }-*/;
+
+ public native boolean peek() /*-{
+ return this[this.length - 1];
+ }-*/;
+
+ public native boolean pop() /*-{
+ return this.pop();
+ }-*/;
+
+ public void remove(boolean value) {
+ final int index = indexOf(value);
+ if (index != -1) {
+ splice(index, 1);
+ }
+ }
+
+ public void removeByIndex(int index) {
+ splice(index, 1);
+ }
+
+ public JsArrayOfBoolean splice(int index, int count) {
+ return JsArrayOf.splice(this, index, count);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsArrayOfInt.java b/elemental/src/elemental/js/util/JsArrayOfInt.java
new file mode 100644
index 0000000..b95e64e
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsArrayOfInt.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.core.client.JsArrayInteger;
+
+import elemental.util.ArrayOfInt;
+import elemental.util.CanCompareInt;
+
+/**
+ * JavaScript implementation of {@link ArrayOfInt}.
+ */
+public final class JsArrayOfInt extends JsArrayInteger implements ArrayOfInt {
+
+ /**
+ * Create a new empty instance.
+ */
+ public static JsArrayOfInt create() {
+ return JavaScriptObject.createArray().cast();
+ }
+
+ protected JsArrayOfInt() {
+ }
+
+ public native JsArrayOfInt concat(ArrayOfInt values) /*-{
+ return this.concat(values);
+ }-*/;
+
+ public boolean contains(int value) {
+ return indexOf(value) != -1;
+ }
+
+ public native int indexOf(int value) /*-{
+ return this.indexOf(value);
+ }-*/;
+
+ public native void insert(int index, int value) /*-{
+ this.splice(index, 0, value);
+ }-*/;
+
+ public boolean isEmpty() {
+ return JsArrayOf.isEmpty(this);
+ }
+
+ public native boolean isSet(int index) /*-{
+ return this[index] !== undefined;
+ }-*/;
+
+ public native int peek() /*-{
+ return this[this.length - 1];
+ }-*/;
+
+ public native int pop() /*-{
+ return this.pop();
+ }-*/;
+
+ public void remove(int value) {
+ final int index = indexOf(value);
+ if (index != -1) {
+ splice(index, 1);
+ }
+ }
+
+ public void removeByIndex(int index) {
+ splice(index, 1);
+ }
+
+ public native void sort() /*-{
+ this.sort();
+ }-*/;
+
+ public native void sort(CanCompareInt comparator) /*-{
+ this.sort(function(a, b) {
+ return comparator.@elemental.util.CanCompareInt::compare(II)(a, b);
+ });
+ }-*/;
+
+ public JsArrayOfInt splice(int index, int count) {
+ return JsArrayOf.splice(this, index, count);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsArrayOfNumber.java b/elemental/src/elemental/js/util/JsArrayOfNumber.java
new file mode 100644
index 0000000..b902c8a
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsArrayOfNumber.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.core.client.JsArrayNumber;
+
+import elemental.util.ArrayOfNumber;
+import elemental.util.CanCompareNumber;
+
+/**
+ * JavaScript native implementation of {@link ArrayOfNumber}.
+ */
+public final class JsArrayOfNumber extends JsArrayNumber implements ArrayOfNumber {
+
+ /**
+ * Create a new empty instance.
+ */
+ public static JsArrayOfNumber create() {
+ return JavaScriptObject.createArray().cast();
+ }
+
+ protected JsArrayOfNumber() {
+ }
+
+ public native JsArrayOfNumber concat(ArrayOfNumber values) /*-{
+ return this.concat(values);
+ }-*/;
+
+ public native void insert(int index, double value) /*-{
+ this.splice(index, 0, value);
+ }-*/;
+
+ public boolean isEmpty() {
+ return JsArrayOf.isEmpty(this);
+ }
+
+ public native boolean isSet(int index) /*-{
+ return this[index] !== undefined;
+ }-*/;
+
+ public native double peek() /*-{
+ return this[this.length - 1];
+ }-*/;
+
+ public native double pop() /*-{
+ return this.pop();
+ }-*/;
+
+ public void removeByIndex(int index) {
+ splice(index, 1);
+ }
+
+ public native void sort() /*-{
+ this.sort();
+ }-*/;
+
+ public native void sort(CanCompareNumber comparator) /*-{
+ this.sort(function(a, b) {
+ return comparator.@elemental.util.CanCompareNumber::compare(DD)(a, b);
+ });
+ }-*/;
+
+ public JsArrayOfNumber splice(int index, int count) {
+ return JsArrayOf.splice(this, index, count);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsArrayOfString.java b/elemental/src/elemental/js/util/JsArrayOfString.java
new file mode 100644
index 0000000..3b50028
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsArrayOfString.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.core.client.JsArrayString;
+
+import elemental.util.ArrayOfString;
+import elemental.util.CanCompareString;
+
+/**
+ * JavaScript native implementation of {@link ArrayOfString}.
+ */
+public final class JsArrayOfString extends JsArrayString implements ArrayOfString {
+
+ /**
+ * Create a new empty instance.
+ */
+ public static JsArrayOfString create() {
+ return JavaScriptObject.createArray().cast();
+ }
+
+ protected JsArrayOfString() {
+ }
+
+ public native JsArrayOfString concat(ArrayOfString values) /*-{
+ return this.concat(values);
+ }-*/;
+
+ public boolean contains(String value) {
+ return indexOf(value) != -1;
+ }
+
+ public native int indexOf(String value) /*-{
+ return this.indexOf(value);
+ }-*/;
+
+ public native void insert(int index, String value) /*-{
+ this.splice(index, 0, value);
+ }-*/;
+
+ public boolean isEmpty() {
+ return JsArrayOf.isEmpty(this);
+ }
+
+ public native String peek() /*-{
+ return this[this.length - 1];
+ }-*/;
+
+ public native String pop() /*-{
+ return this.pop();
+ }-*/;
+
+ public void remove(String value) {
+ final int index = indexOf(value);
+ if (index != -1) {
+ splice(index, 1);
+ }
+ }
+
+ public void removeByIndex(int index) {
+ splice(index, 1);
+ }
+
+ public native void sort() /*-{
+ this.sort();
+ }-*/;
+
+ public native void sort(CanCompareString comparator) /*-{
+ this.sort(function(a, b) {
+ return comparator.@elemental.util.CanCompareString::compare(Ljava/lang/String;Ljava/lang/String;)(a, b);
+ });
+ }-*/;
+
+ public JsArrayOfString splice(int index, int count) {
+ return JsArrayOf.splice(this, index, count);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsElementalBase.java b/elemental/src/elemental/js/util/JsElementalBase.java
new file mode 100644
index 0000000..56fac9e
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsElementalBase.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import elemental.util.*;
+
+/**
+ * All Elemental classes must extend this base class, mixes in support for
+ * Indexable, Settable, Mappable.
+ */
+// TODO (cromwellian) add generic when JSO bug in gwt-dev fixed
+public class JsElementalBase extends JavaScriptObject implements Mappable,
+ Indexable, IndexableInt, IndexableNumber, Settable, SettableInt, SettableNumber {
+
+ protected JsElementalBase() {}
+
+ public final native Object /* T */ at(int index) /*-{
+ return this[index];
+ }-*/;
+
+ public final native double numberAt(int index) /*-{
+ return this[index];
+ }-*/;
+
+ public final native int intAt(int index) /*-{
+ return this[index];
+ }-*/;
+
+ public final native int length() /*-{
+ return this.length;
+ }-*/;
+
+ public final native void setAt(int index, Object /* T */ value) /*-{
+ this[index] = value;
+ }-*/;
+
+ public final native void setAt(int index, double value) /*-{
+ this[index] = value;
+ }-*/;
+
+ public final native void setAt(int index, int value) /*-{
+ this[index] = value;
+ }-*/;
+
+ public final native Object /* T */ at(String key) /*-{
+ return this[key];
+ }-*/;
+
+ public final native int intAt(String key) /*-{
+ return this[key];
+ }-*/;
+
+ public final native double numberAt(String key) /*-{
+ return this[key];
+ }-*/;
+
+ public final native void setAt(String key, Object /* T */ value) /*-{
+ this[key] = value;
+ }-*/;
+
+ public final native void setAt(String key, int value) /*-{
+ this[key] = value;
+ }-*/;
+
+ public final native void setAt(String key, double value) /*-{
+ this[key] = value;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/util/JsGlobals.java b/elemental/src/elemental/js/util/JsGlobals.java
new file mode 100644
index 0000000..16df9b4
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsGlobals.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+
+/**
+ * A utility class for accessing global functions and values in an ECMAScript
+ * context.
+ */
+public class JsGlobals {
+ /**
+ * Decodes an encoded URI to a URI string.
+ */
+ public native static String decodeURI(String encodedURI) /*-{
+ return decodeURI(encodedURI);
+ }-*/;
+
+ /**
+ * Decodes an encoded URI component to a URI component string.
+ */
+ public native static String decodeURIComponent(String encodedURIComponent) /*-{
+ return decodeURIComponent(encodedURIComponent);
+ }-*/;
+
+ /**
+ * Encodes a URI string by escaping all characters not allowed in URIs.
+ */
+ public native static String encodeURI(String uri) /*-{
+ return encodeURI(uri);
+ }-*/;
+
+ /**
+ * Encodes a URI component string by escaping all characters not allowed in
+ * URIs.
+ */
+ public static native String encodeURIComponent(String uriComponent) /*-{
+ return encodeURIComponent(uriComponent);
+ }-*/;
+
+ /**
+ * Indicates if <code>value</code> is a finite number.
+ */
+ public native static boolean isFinite(double value) /*-{
+ return isFinite(value);
+ }-*/;
+
+ /**
+ * Indicates if <code>value</code> is <code>NaN</code>.
+ */
+ public native static boolean isNaN(double value) /*-{
+ return isNaN(value);
+ }-*/;
+
+ /**
+ * Produces a <code>double</code> value by interpreting the contents of
+ * <code>value</code> as a decimal literal.
+ */
+ public native static double parseFloat(String value) /*-{
+ return parseFloat(value);
+ }-*/;
+
+ /**
+ * Produces a <code>double</code> value by interpreting the contents of
+ * <code>value</code> as a decimal literal.
+ */
+ public native static double parseFloat(String value, int radix) /*-{
+ return parseFloat(value, radix);
+ }-*/;
+
+ /**
+ * Produces a integral value by interpreting the contents of
+ * <code>value</code> as a integer literal. The value returned by this method
+ * will be an integral value or <code>NaN</code>, so the return value is a
+ * <code>double</code>.
+ *
+ * <pre>
+ * Example use:
+ * // Will yield zero if s is not a valid integer.
+ * int value = (int)parseInt(s);
+ *
+ * // To check if the value is valid.
+ * double value = parseInt(s);
+ * if (isNaN(value))
+ * //Invalid value.
+ * </pre>
+ */
+ public native static double parseInt(String value) /*-{
+ return parseInt(value);
+ }-*/;
+
+ /**
+ * Produces a integral value by interpreting the contents of
+ * <code>value</code> as a integer literal. The value returned by this method
+ * will be an integral value or <code>NaN</code>, so the return value is a
+ * <code>double</code>.
+ *
+ * <pre>
+ * Example use:
+ * // Will yield zero if s is not a valid integer.
+ * int value = (int)parseInt(s);
+ *
+ * // To check if the value is valid.
+ * double value = parseInt(s);
+ * if (isNaN(value))
+ * //Invalid value.
+ * </pre>
+ */
+ public native static double parseInt(String value, int radix) /*-{
+ return parseInt(value, radix);
+ }-*/;
+
+ private JsGlobals() {
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsIndexable.java b/elemental/src/elemental/js/util/JsIndexable.java
new file mode 100644
index 0000000..e062f9e
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsIndexable.java
@@ -0,0 +1,26 @@
+/*
+ * 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import elemental.util.*;
+
+/**
+ */
+// TODO (cromwellian) add generic when JSO bug in gwt-dev fixed
+public class JsIndexable extends JsElementalBase implements Indexable {
+ protected JsIndexable() {}
+}
diff --git a/elemental/src/elemental/js/util/JsMapFromIntTo.java b/elemental/src/elemental/js/util/JsMapFromIntTo.java
new file mode 100644
index 0000000..d3ab0da
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsMapFromIntTo.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.util.MapFromIntTo;
+
+/**
+ * JavaScript native implementation of {@link MapFromIntTo}.
+ */
+public final class JsMapFromIntTo<V> extends JavaScriptObject implements MapFromIntTo<V> {
+
+ /**
+ * Create a new empty map instance.
+ */
+ public static <T> JsMapFromIntTo<T> create() {
+ return JavaScriptObject.createArray().cast();
+ }
+
+ protected JsMapFromIntTo() {
+ }
+
+ public native V get(int key) /*-{
+ return this[key];
+ }-*/;
+
+ final static native boolean hasKey(JavaScriptObject map, int key) /*-{
+ return map[key] !== undefined;
+ }-*/;
+
+ final static native void remove(JavaScriptObject map, int key) /*-{
+ delete map[key];
+ }-*/;
+
+ final static native JsArrayOfInt keys(JavaScriptObject map) /*-{
+ var data = [];
+ for (var p in map) {
+ var key = parseInt(p);
+ if (!isNaN(key)) {
+ data.push(key);
+ }
+ }
+ return data;
+ }-*/;
+
+ final public boolean hasKey(int key) {
+ return hasKey(this, key);
+ }
+
+ final public JsArrayOfInt keys() {
+ return keys(this);
+ }
+
+ public native void put(int key, V value) /*-{
+ this[key] = value;
+ }-*/;
+
+ final public void remove(int key) {
+ remove(this, key);
+ }
+
+ final public JsArrayOf<V> values() {
+ return JsMapFromStringTo.values(this);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsMapFromIntToString.java b/elemental/src/elemental/js/util/JsMapFromIntToString.java
new file mode 100644
index 0000000..7eeae7e
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsMapFromIntToString.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.util.MapFromIntToString;
+
+/**
+ * JavaScript native implementation of {@link MapFromIntToString}.
+ */
+public final class JsMapFromIntToString extends JavaScriptObject implements MapFromIntToString {
+ /**
+ * Create a new empty map instance.
+ */
+ public static JsMapFromIntToString create() {
+ return JavaScriptObject.createArray().cast();
+ }
+
+ protected JsMapFromIntToString() {
+ }
+
+ public native String get(int key) /*-{
+ return this[key];
+ }-*/;
+
+ public boolean hasKey(int key) {
+ return JsMapFromIntTo.hasKey(this, key);
+ }
+
+ public JsArrayOfInt keys() {
+ return JsMapFromIntTo.keys(this);
+ }
+
+ public native void put(int key, String value) /*-{
+ this[key] = value;
+ }-*/;
+
+ public void remove(int key) {
+ JsMapFromIntTo.remove(this, key);
+ }
+
+ public native void set(int key, String value) /*-{
+ this[key] = value;
+ }-*/;
+
+ public JsArrayOfString values() {
+ return JsMapFromStringTo.values(this);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsMapFromStringTo.java b/elemental/src/elemental/js/util/JsMapFromStringTo.java
new file mode 100644
index 0000000..b847ea2
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsMapFromStringTo.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.util.MapFromStringTo;
+
+/**
+ * JavaScript native implementation of {@link MapFromStringTo}.
+ */
+public final class JsMapFromStringTo<V> extends JavaScriptObject implements MapFromStringTo<V> {
+
+ /**
+ * Create a new empty map instance.
+ */
+ public static native <T> JsMapFromStringTo<T> create() /*-{
+ return Object.create(null);
+ }-*/;
+
+ static native boolean hasKey(JavaScriptObject map, String key) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ return map[p] !== undefined;
+ }-*/;
+
+ static native <T extends JavaScriptObject> T keys(JavaScriptObject object) /*-{
+ var data = [];
+ for (var item in object) {
+ if (object.hasOwnProperty(item)) {
+ var key = @elemental.js.util.JsMapFromStringTo::keyForProperty(Ljava/lang/String;)(item);
+ data.push(key);
+ }
+ }
+ return data;
+ }-*/;
+
+ static native void remove(JavaScriptObject map, String key) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ delete map[p];
+ }-*/;
+
+ static native <T extends JavaScriptObject> T values(JavaScriptObject object) /*-{
+ var data = [];
+ for (var item in object) {
+ if (object.hasOwnProperty(item)) {
+ data.push(object[item]);
+ }
+ }
+ return data;
+ }-*/;
+
+ @SuppressWarnings("unused") // Called from JSNI.
+ private static String keyForProperty(String property) {
+ return property;
+ }
+
+ @SuppressWarnings("unused") // Called from JSNI.
+ private static String propertyForKey(String key) {
+ assert key != null : "native maps do not allow null key values.";
+ return key;
+ }
+
+ protected JsMapFromStringTo() {
+ }
+
+ public native V get(String key) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ return this[p];
+ }-*/;
+
+ public boolean hasKey(String key) {
+ return hasKey(this, key);
+ }
+
+ public JsArrayOfString keys() {
+ return keys(this);
+ }
+
+ public native void put(String key, V value) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ this[p] = value;
+ }-*/;
+
+ public void remove(String key) {
+ remove(this, key);
+ }
+
+ public JsArrayOf<V> values() {
+ return values(this);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsMapFromStringToBoolean.java b/elemental/src/elemental/js/util/JsMapFromStringToBoolean.java
new file mode 100644
index 0000000..03d88f2
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsMapFromStringToBoolean.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.util.MapFromStringToBoolean;
+
+/**
+ * A JavaScript native implementation of {@link MapFromStringToBoolean}.
+ */
+public final class JsMapFromStringToBoolean extends JavaScriptObject
+ implements MapFromStringToBoolean {
+
+ /**
+ * Create a new empty map instance.
+ */
+ public static native <T> JsMapFromStringToBoolean create() /*-{
+ return Object.create(null);
+ }-*/;
+
+ protected JsMapFromStringToBoolean() {
+ }
+
+ public native boolean get(String key) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ return this[p];
+ }-*/;
+
+ public boolean hasKey(String key) {
+ return JsMapFromStringTo.hasKey(this, key);
+ }
+
+ public JsArrayOfString keys() {
+ return JsMapFromStringTo.keys(this);
+ }
+
+ public native void put(String key, boolean value) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ this[p] = value;
+ }-*/;
+
+ public void remove(String key) {
+ JsMapFromStringTo.remove(this, key);
+ }
+
+ public JsArrayOfBoolean values() {
+ return JsMapFromStringTo.values(this);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsMapFromStringToInt.java b/elemental/src/elemental/js/util/JsMapFromStringToInt.java
new file mode 100644
index 0000000..7b56d79
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsMapFromStringToInt.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.util.MapFromStringToInt;
+
+/**
+ * JavaScript native implementation of {@link MapFromStringToInt}.
+ */
+public final class JsMapFromStringToInt extends JavaScriptObject implements MapFromStringToInt {
+
+ /**
+ * Create a new empty map instance.
+ */
+ public static native <T> JsMapFromStringToInt create() /*-{
+ return Object.create(null);
+ }-*/;
+
+ protected JsMapFromStringToInt() {
+ }
+
+ public native int get(String key) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ return this[p];
+ }-*/;
+
+ public boolean hasKey(String key) {
+ return JsMapFromStringTo.hasKey(this, key);
+ }
+
+ public JsArrayOfString keys() {
+ return JsMapFromStringTo.keys(this);
+ }
+
+ public native void put(String key, int value) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ this[p] = value;
+ }-*/;
+
+ public void remove(String key) {
+ JsMapFromStringTo.remove(this, key);
+ }
+
+ public JsArrayOfInt values() {
+ return JsMapFromStringTo.values(this);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsMapFromStringToNumber.java b/elemental/src/elemental/js/util/JsMapFromStringToNumber.java
new file mode 100644
index 0000000..3646dfa
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsMapFromStringToNumber.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.util.MapFromStringToNumber;
+
+/**
+ * A JavaScript native implementation of {@link MapFromStringToNumber}.
+ */
+public final class JsMapFromStringToNumber extends JavaScriptObject
+ implements MapFromStringToNumber {
+
+ /**
+ * Create a new empty map instance.
+ */
+ public static native <T> JsMapFromStringToNumber create() /*-{
+ return Object.create(null);
+ }-*/;
+
+ protected JsMapFromStringToNumber() {
+ }
+
+ public native double get(String key) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ return this[p];
+ }-*/;
+
+ public boolean hasKey(String key) {
+ return JsMapFromStringTo.hasKey(this, key);
+ }
+
+ public JsArrayOfString keys() {
+ return JsMapFromStringTo.keys(this);
+ }
+
+ public native void put(String key, double value) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ this[p] = value;
+ }-*/;
+
+ public void remove(String key) {
+ JsMapFromStringTo.remove(this, key);
+ }
+
+ public JsArrayOfNumber values() {
+ return JsMapFromStringTo.values(this);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsMapFromStringToString.java b/elemental/src/elemental/js/util/JsMapFromStringToString.java
new file mode 100644
index 0000000..24a69c4
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsMapFromStringToString.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+import elemental.util.MapFromStringToString;
+
+/**
+ * A JavaScript native implementation of {@link MapFromStringToString}.
+ */
+public final class JsMapFromStringToString extends JavaScriptObject
+ implements MapFromStringToString {
+
+ /**
+ * Create a new empty map instance.
+ */
+ public static native <T> JsMapFromStringToString create() /*-{
+ return Object.create(null);
+ }-*/;
+
+ protected JsMapFromStringToString() {
+ }
+
+ public native String get(String key) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ return this[p];
+ }-*/;
+
+ public boolean hasKey(String key) {
+ return JsMapFromStringTo.hasKey(this, key);
+ }
+
+ public JsArrayOfString keys() {
+ return JsMapFromStringTo.keys(this);
+ }
+
+ public native void put(String key, String value) /*-{
+ var p = @elemental.js.util.JsMapFromStringTo::propertyForKey(Ljava/lang/String;)(key);
+ this[p] = value;
+ }-*/;
+
+ public void remove(String key) {
+ JsMapFromStringTo.remove(this, key);
+ }
+
+ public JsArrayOfString values() {
+ return JsMapFromStringTo.values(this);
+ }
+}
diff --git a/elemental/src/elemental/js/util/JsMappable.java b/elemental/src/elemental/js/util/JsMappable.java
new file mode 100644
index 0000000..e5961fa
--- /dev/null
+++ b/elemental/src/elemental/js/util/JsMappable.java
@@ -0,0 +1,26 @@
+/*
+ * 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import elemental.util.*;
+
+/**
+ */
+// TODO (cromwellian) add generic when JSO bug in gwt-dev fixed
+public class JsMappable extends JsElementalBase implements Mappable {
+ protected JsMappable() {}
+}
diff --git a/elemental/src/elemental/js/util/Json.java b/elemental/src/elemental/js/util/Json.java
new file mode 100644
index 0000000..d676b45
--- /dev/null
+++ b/elemental/src/elemental/js/util/Json.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptObject;
+
+/**
+ * A static API to the browser's JSON object.
+ * TODO(knorton) : Remove this when generated DOM bindings are submitted.
+ */
+public class Json {
+ /**
+ * Parse a string containing JSON into a {@link JavaScriptObject}.
+ *
+ * @param <T> the overlay type to expect from the parse
+ * @param jsonAsString
+ * @return a JavaScript object constructed from the parse
+ */
+ public native static <T extends JavaScriptObject> T parse(String jsonAsString) /*-{
+ return JSON.parse(jsonAsString);
+ }-*/;
+
+ /**
+ * Convert a {@link JavaScriptObject} into a string representation.
+ *
+ * @param json a JavaScript object to be converted to a string
+ * @return JSON in string representation
+ */
+ public native static String stringify(JavaScriptObject json) /*-{
+ return JSON.stringify(json);
+ }-*/;
+
+ private Json() {
+ }
+}
diff --git a/elemental/src/elemental/js/util/Numbers.java b/elemental/src/elemental/js/util/Numbers.java
new file mode 100644
index 0000000..61348db
--- /dev/null
+++ b/elemental/src/elemental/js/util/Numbers.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+/**
+ * Utility class for miscellaneous numeric stuff.
+ */
+public class Numbers {
+ /**
+ * Converts a <code>double</code> to a {@link String} with a specified number
+ * of decimal points.
+ *
+ * @param number the number to be convert to a string
+ * @param n number of decimal points
+ * @return string representation of the number
+ */
+ public static native String toFixed(double number, int n) /*-{
+ return number.toFixed(n);
+ }-*/;
+
+ /**
+ * Converts a <code>double</code> to a {@link String} representing the integer
+ * floor value.
+ *
+ * @param number the number to convert to a string
+ * @return string representation of the number
+ */
+ public static String toInt(double number) {
+ return toFixed(number, 0);
+ }
+
+ private Numbers() {
+ // You cannot have one of these, they're like Swedish Fish in the mini kitchens.
+ }
+}
diff --git a/elemental/src/elemental/js/util/StringUtil.java b/elemental/src/elemental/js/util/StringUtil.java
new file mode 100644
index 0000000..064716c
--- /dev/null
+++ b/elemental/src/elemental/js/util/StringUtil.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import elemental.util.ArrayOfString;
+
+/**
+ * Miscellaneous {@link String} utilities. Some methods overlap with what is
+ * supported directly in {@link String} in order to use the proper elemental
+ * types.
+ */
+public class StringUtil {
+
+ /**
+ * Splits a {@link String} into an array of substrings.
+ */
+ public native static ArrayOfString split(String s, String regexp) /*-{
+ return s.split(regexp);
+ }-*/;
+
+ /**
+ * Splits a {@link String} into an array of substrings.
+ */
+ public native static ArrayOfString split(String s, String regexp, int limit) /*-{
+ return s.split(regexp, limit);
+ }-*/;
+
+ private StringUtil() {
+ }
+}
diff --git a/elemental/src/elemental/js/util/Xhr.java b/elemental/src/elemental/js/util/Xhr.java
new file mode 100644
index 0000000..525b383
--- /dev/null
+++ b/elemental/src/elemental/js/util/Xhr.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.core.client.JavaScriptException;
+import com.google.gwt.xhr.client.ReadyStateChangeHandler;
+import com.google.gwt.xhr.client.XMLHttpRequest;
+
+
+import elemental.client.Browser;
+import elemental.html.Window;
+
+/**
+ * A Simpler way to use {@link XMLHttpRequest}.
+ */
+public class Xhr {
+ /**
+ * Interface for getting notified when an XHR successfully completes, or
+ * errors out.
+ */
+ public interface Callback {
+ void onFail(XMLHttpRequest xhr);
+
+ void onSuccess(XMLHttpRequest xhr);
+ }
+
+ private static class Handler implements ReadyStateChangeHandler {
+ private final Callback callback;
+
+ private Handler(Callback callback) {
+ this.callback = callback;
+ }
+
+ public void onReadyStateChange(XMLHttpRequest xhr) {
+ if (xhr.getReadyState() == XMLHttpRequest.DONE) {
+ if (xhr.getStatus() == 200) {
+ callback.onSuccess(xhr);
+ xhr.clearOnReadyStateChange();
+ return;
+ }
+ callback.onFail(xhr);
+ xhr.clearOnReadyStateChange();
+ }
+ }
+ }
+
+ /**
+ * Send a GET request to the <code>url</code> and dispatch updates to the
+ * <code>callback</code>.
+ *
+ * @param url
+ * @param callback
+ */
+ public static void get(String url, Callback callback) {
+ request(create(), "GET", url, callback);
+ }
+
+ /**
+ * Send a GET request to the <code>url</code> and dispatch updates to the
+ * <code>callback</code>.
+ *
+ * @param window the window object used to access the XMLHttpRequest
+ * constructor
+ * @param url
+ * @param callback
+ */
+ public static void get(Window window, String url, Callback callback) {
+ request(create(window), "GET", url, callback);
+ }
+
+ /**
+ * Send a HEAD request to the <code>url</code> and dispatch updates to the
+ * <code>callback</code>.
+ *
+ * @param url
+ * @param callback
+ */
+ public static void head(String url, Callback callback) {
+ request(create(), "HEAD", url, callback);
+ }
+
+ /**
+ * Send a HEAD request to the <code>url</code> and dispatch updates to the
+ * <code>callback</code>.
+ *
+ * @param window the window object used to access the XMLHttpRequest
+ * constructor
+ * @param url
+ * @param callback
+ */
+ public static void head(Window window, String url, Callback callback) {
+ request(create(window), "HEAD", url, callback);
+ }
+
+ /**
+ * Send a POST request to the <code>url</code> and dispatch updates to the
+ * <code>callback</code>.
+ *
+ * @param url
+ * @param requestData the data to be passed to XMLHttpRequest.send
+ * @param contentType a value for the Content-Type HTTP header
+ * @param callback
+ */
+ public static void post(String url, String requestData, String contentType, Callback callback) {
+ request(create(), "POST", url, requestData, contentType, callback);
+ }
+
+ /**
+ * Send a POST request to the <code>url</code> and dispatch updates to the
+ * <code>callback</code>.
+ *
+ * @param window the window object used to access the XMLHttpRequest
+ * constructor
+ * @param url
+ * @param requestData the data to be passed to XMLHttpRequest.send
+ * @param contentType a value for the Content-Type HTTP header
+ * @param callback
+ */
+ public static void post(
+ Window window, String url, String requestData, String contentType, Callback callback) {
+ request(create(window), "POST", url, requestData, contentType, callback);
+ }
+
+ private static XMLHttpRequest create() {
+ return create(Browser.getWindow());
+ }
+
+ /**
+ * Replacement for {@link XMLHttpRequest#create()} that allows better control
+ * of which window object is used to access the XMLHttpRequest constructor.
+ */
+ private static native XMLHttpRequest create(Window window) /*-{
+ return new window.XMLHttpRequest();
+ }-*/;
+
+ private static void request(XMLHttpRequest xhr,
+ String method,
+ String url,
+ String requestData,
+ String contentType,
+ Callback callback) {
+ try {
+ xhr.setOnReadyStateChange(new Handler(callback));
+ xhr.open(method, url);
+ xhr.setRequestHeader("Content-type", contentType);
+ xhr.send(requestData);
+ } catch (JavaScriptException e) {
+ // Just fail.
+ callback.onFail(xhr);
+ xhr.clearOnReadyStateChange();
+ }
+ }
+
+ private static void request(XMLHttpRequest xhr,
+ String method,
+ String url,
+ final Callback callback) {
+ try {
+ xhr.setOnReadyStateChange(new Handler(callback));
+ xhr.open(method, url);
+ xhr.send();
+ } catch (JavaScriptException e) {
+ // Just fail.
+ callback.onFail(xhr);
+ xhr.clearOnReadyStateChange();
+ }
+ }
+}
diff --git a/elemental/src/elemental/js/xml/JsXMLHttpRequest.java b/elemental/src/elemental/js/xml/JsXMLHttpRequest.java
new file mode 100644
index 0000000..2f7eb65
--- /dev/null
+++ b/elemental/src/elemental/js/xml/JsXMLHttpRequest.java
@@ -0,0 +1,217 @@
+/*
+ * 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 elemental.js.xml;
+import elemental.html.FormData;
+import elemental.js.html.JsFormData;
+import elemental.xml.XMLHttpRequest;
+import elemental.js.dom.JsDocument;
+import elemental.js.html.JsArrayBuffer;
+import elemental.js.events.JsEvent;
+import elemental.html.Blob;
+import elemental.js.html.JsBlob;
+import elemental.events.EventListener;
+import elemental.xml.XMLHttpRequestUpload;
+import elemental.html.ArrayBuffer;
+import elemental.events.Event;
+import elemental.js.events.JsEventListener;
+import elemental.dom.Document;
+
+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 JsXMLHttpRequest extends JsElementalMixinBase implements XMLHttpRequest {
+ protected JsXMLHttpRequest() {}
+
+ public final native boolean isAsBlob() /*-{
+ return this.asBlob;
+ }-*/;
+
+ public final native void setAsBlob(boolean param_asBlob) /*-{
+ this.asBlob = param_asBlob;
+ }-*/;
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onload);
+ }-*/;
+
+ public final native void setOnload(EventListener listener) /*-{
+ this.onload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnloadend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onloadend);
+ }-*/;
+
+ public final native void setOnloadend(EventListener listener) /*-{
+ this.onloadend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnloadstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onloadstart);
+ }-*/;
+
+ public final native void setOnloadstart(EventListener listener) /*-{
+ this.onloadstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnprogress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onprogress);
+ }-*/;
+
+ public final native void setOnprogress(EventListener listener) /*-{
+ this.onprogress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnreadystatechange() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onreadystatechange);
+ }-*/;
+
+ public final native void setOnreadystatechange(EventListener listener) /*-{
+ this.onreadystatechange = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native int getReadyState() /*-{
+ return this.readyState;
+ }-*/;
+
+ public final native Object getResponse() /*-{
+ return this.response;
+ }-*/;
+
+ public final native JsBlob getResponseBlob() /*-{
+ return this.responseBlob;
+ }-*/;
+
+ public final native String getResponseText() /*-{
+ return this.responseText;
+ }-*/;
+
+ public final native String getResponseType() /*-{
+ return this.responseType;
+ }-*/;
+
+ public final native void setResponseType(String param_responseType) /*-{
+ this.responseType = param_responseType;
+ }-*/;
+
+ public final native JsDocument getResponseXML() /*-{
+ return this.responseXML;
+ }-*/;
+
+ public final native int getStatus() /*-{
+ return this.status;
+ }-*/;
+
+ public final native String getStatusText() /*-{
+ return this.statusText;
+ }-*/;
+
+ public final native JsXMLHttpRequestUpload getUpload() /*-{
+ return this.upload;
+ }-*/;
+
+ public final native boolean isWithCredentials() /*-{
+ return this.withCredentials;
+ }-*/;
+
+ public final native void setWithCredentials(boolean param_withCredentials) /*-{
+ this.withCredentials = param_withCredentials;
+ }-*/;
+
+ public final native void abort() /*-{
+ this.abort();
+ }-*/;
+
+ public final native String getAllResponseHeaders() /*-{
+ return this.getAllResponseHeaders();
+ }-*/;
+
+ public final native String getResponseHeader(String header) /*-{
+ return this.getResponseHeader(header);
+ }-*/;
+
+ public final native void open(String method, String url) /*-{
+ this.open(method, url);
+ }-*/;
+
+ public final native void open(String method, String url, boolean async) /*-{
+ this.open(method, url, async);
+ }-*/;
+
+ public final native void open(String method, String url, boolean async, String user) /*-{
+ this.open(method, url, async, user);
+ }-*/;
+
+ public final native void open(String method, String url, boolean async, String user, String password) /*-{
+ this.open(method, url, async, user, password);
+ }-*/;
+
+ public final native void overrideMimeType(String override) /*-{
+ this.overrideMimeType(override);
+ }-*/;
+
+ public final native void send() /*-{
+ this.send();
+ }-*/;
+
+ public final native void send(ArrayBuffer data) /*-{
+ this.send(data);
+ }-*/;
+
+ public final native void send(Blob data) /*-{
+ this.send(data);
+ }-*/;
+
+ public final native void send(Document data) /*-{
+ this.send(data);
+ }-*/;
+
+ public final native void send(String data) /*-{
+ this.send(data);
+ }-*/;
+
+ public final native void send(FormData data) /*-{
+ this.send(data);
+ }-*/;
+
+ public final native void setRequestHeader(String header, String value) /*-{
+ this.setRequestHeader(header, value);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/xml/JsXMLHttpRequestException.java b/elemental/src/elemental/js/xml/JsXMLHttpRequestException.java
new file mode 100644
index 0000000..4b1ea8c
--- /dev/null
+++ b/elemental/src/elemental/js/xml/JsXMLHttpRequestException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.xml;
+import elemental.xml.XMLHttpRequestException;
+
+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 JsXMLHttpRequestException extends JsElementalMixinBase implements XMLHttpRequestException {
+ protected JsXMLHttpRequestException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/xml/JsXMLHttpRequestUpload.java b/elemental/src/elemental/js/xml/JsXMLHttpRequestUpload.java
new file mode 100644
index 0000000..18b33c2
--- /dev/null
+++ b/elemental/src/elemental/js/xml/JsXMLHttpRequestUpload.java
@@ -0,0 +1,85 @@
+/*
+ * 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 elemental.js.xml;
+import elemental.events.EventListener;
+import elemental.xml.XMLHttpRequestUpload;
+import elemental.js.events.JsEvent;
+import elemental.js.events.JsEventListener;
+import elemental.events.Event;
+
+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 JsXMLHttpRequestUpload extends JsElementalMixinBase implements XMLHttpRequestUpload {
+ protected JsXMLHttpRequestUpload() {}
+
+ public final native EventListener getOnabort() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onabort);
+ }-*/;
+
+ public final native void setOnabort(EventListener listener) /*-{
+ this.onabort = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnerror() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onerror);
+ }-*/;
+
+ public final native void setOnerror(EventListener listener) /*-{
+ this.onerror = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnload() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onload);
+ }-*/;
+
+ public final native void setOnload(EventListener listener) /*-{
+ this.onload = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnloadend() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onloadend);
+ }-*/;
+
+ public final native void setOnloadend(EventListener listener) /*-{
+ this.onloadend = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnloadstart() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onloadstart);
+ }-*/;
+
+ public final native void setOnloadstart(EventListener listener) /*-{
+ this.onloadstart = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;
+ public final native EventListener getOnprogress() /*-{
+ return @elemental.js.dom.JsElementalMixinBase::getListenerFor(Lcom/google/gwt/core/client/JavaScriptObject;)(this.onprogress);
+ }-*/;
+
+ public final native void setOnprogress(EventListener listener) /*-{
+ this.onprogress = @elemental.js.dom.JsElementalMixinBase::getHandlerFor(Lelemental/events/EventListener;)(listener);
+ }-*/;}
diff --git a/elemental/src/elemental/js/xml/JsXSLTProcessor.java b/elemental/src/elemental/js/xml/JsXSLTProcessor.java
new file mode 100644
index 0000000..808a7d8
--- /dev/null
+++ b/elemental/src/elemental/js/xml/JsXSLTProcessor.java
@@ -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 elemental.js.xml;
+import elemental.dom.Node;
+import elemental.xml.XSLTProcessor;
+import elemental.js.dom.JsDocument;
+import elemental.dom.DocumentFragment;
+import elemental.js.dom.JsDocumentFragment;
+import elemental.js.dom.JsNode;
+import elemental.dom.Document;
+
+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 JsXSLTProcessor extends JsElementalMixinBase implements XSLTProcessor {
+ protected JsXSLTProcessor() {}
+
+ public final native void clearParameters() /*-{
+ this.clearParameters();
+ }-*/;
+
+ public final native String getParameter(String namespaceURI, String localName) /*-{
+ return this.getParameter(namespaceURI, localName);
+ }-*/;
+
+ public final native void importStylesheet(Node stylesheet) /*-{
+ this.importStylesheet(stylesheet);
+ }-*/;
+
+ public final native void removeParameter(String namespaceURI, String localName) /*-{
+ this.removeParameter(namespaceURI, localName);
+ }-*/;
+
+ public final native void reset() /*-{
+ this.reset();
+ }-*/;
+
+ public final native void setParameter(String namespaceURI, String localName, String value) /*-{
+ this.setParameter(namespaceURI, localName, value);
+ }-*/;
+
+ public final native JsDocument transformToDocument(Node source) /*-{
+ return this.transformToDocument(source);
+ }-*/;
+
+ public final native JsDocumentFragment transformToFragment(Node source, Document docVal) /*-{
+ return this.transformToFragment(source, docVal);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/xpath/JsDOMParser.java b/elemental/src/elemental/js/xpath/JsDOMParser.java
new file mode 100644
index 0000000..4133065
--- /dev/null
+++ b/elemental/src/elemental/js/xpath/JsDOMParser.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.xpath;
+import elemental.js.dom.JsDocument;
+import elemental.xpath.DOMParser;
+import elemental.dom.Document;
+
+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 JsDOMParser extends JsElementalMixinBase implements DOMParser {
+ protected JsDOMParser() {}
+
+ public final native JsDocument parseFromString(String str, String contentType) /*-{
+ return this.parseFromString(str, contentType);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/xpath/JsXMLSerializer.java b/elemental/src/elemental/js/xpath/JsXMLSerializer.java
new file mode 100644
index 0000000..5e173a9
--- /dev/null
+++ b/elemental/src/elemental/js/xpath/JsXMLSerializer.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.js.xpath;
+import elemental.dom.Node;
+import elemental.xpath.XMLSerializer;
+import elemental.js.dom.JsNode;
+
+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 JsXMLSerializer extends JsElementalMixinBase implements XMLSerializer {
+ protected JsXMLSerializer() {}
+
+ public final native String serializeToString(Node node) /*-{
+ return this.serializeToString(node);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/xpath/JsXPathEvaluator.java b/elemental/src/elemental/js/xpath/JsXPathEvaluator.java
new file mode 100644
index 0000000..1a079fc
--- /dev/null
+++ b/elemental/src/elemental/js/xpath/JsXPathEvaluator.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.js.xpath;
+import elemental.dom.Node;
+import elemental.js.dom.JsNode;
+import elemental.xpath.XPathResult;
+import elemental.xpath.XPathNSResolver;
+import elemental.xpath.XPathExpression;
+import elemental.xpath.XPathEvaluator;
+
+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 JsXPathEvaluator extends JsElementalMixinBase implements XPathEvaluator {
+ protected JsXPathEvaluator() {}
+
+ public final native JsXPathExpression createExpression(String expression, XPathNSResolver resolver) /*-{
+ return this.createExpression(expression, resolver);
+ }-*/;
+
+ public final native JsXPathNSResolver createNSResolver(Node nodeResolver) /*-{
+ return this.createNSResolver(nodeResolver);
+ }-*/;
+
+ public final native JsXPathResult evaluate(String expression, Node contextNode, XPathNSResolver resolver, int type, XPathResult inResult) /*-{
+ return this.evaluate(expression, contextNode, resolver, type, inResult);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/xpath/JsXPathException.java b/elemental/src/elemental/js/xpath/JsXPathException.java
new file mode 100644
index 0000000..df9e3aa
--- /dev/null
+++ b/elemental/src/elemental/js/xpath/JsXPathException.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.js.xpath;
+import elemental.xpath.XPathException;
+
+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 JsXPathException extends JsElementalMixinBase implements XPathException {
+ protected JsXPathException() {}
+
+ public final native int getCode() /*-{
+ return this.code;
+ }-*/;
+
+ public final native String getMessage() /*-{
+ return this.message;
+ }-*/;
+
+ public final native String getName() /*-{
+ return this.name;
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/xpath/JsXPathExpression.java b/elemental/src/elemental/js/xpath/JsXPathExpression.java
new file mode 100644
index 0000000..08f53a9
--- /dev/null
+++ b/elemental/src/elemental/js/xpath/JsXPathExpression.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.js.xpath;
+import elemental.xpath.XPathResult;
+import elemental.dom.Node;
+import elemental.xpath.XPathExpression;
+import elemental.js.dom.JsNode;
+
+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 JsXPathExpression extends JsElementalMixinBase implements XPathExpression {
+ protected JsXPathExpression() {}
+
+ public final native JsXPathResult evaluate(Node contextNode, int type, XPathResult inResult) /*-{
+ return this.evaluate(contextNode, type, inResult);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/xpath/JsXPathNSResolver.java b/elemental/src/elemental/js/xpath/JsXPathNSResolver.java
new file mode 100644
index 0000000..9c1f5d5
--- /dev/null
+++ b/elemental/src/elemental/js/xpath/JsXPathNSResolver.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.js.xpath;
+import elemental.xpath.XPathNSResolver;
+
+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 JsXPathNSResolver extends JsElementalMixinBase implements XPathNSResolver {
+ protected JsXPathNSResolver() {}
+
+ public final native String lookupNamespaceURI(String prefix) /*-{
+ return this.lookupNamespaceURI(prefix);
+ }-*/;
+}
diff --git a/elemental/src/elemental/js/xpath/JsXPathResult.java b/elemental/src/elemental/js/xpath/JsXPathResult.java
new file mode 100644
index 0000000..518363b
--- /dev/null
+++ b/elemental/src/elemental/js/xpath/JsXPathResult.java
@@ -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 elemental.js.xpath;
+import elemental.dom.Node;
+import elemental.xpath.XPathResult;
+import elemental.js.dom.JsNode;
+
+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 JsXPathResult extends JsElementalMixinBase implements XPathResult {
+ protected JsXPathResult() {}
+
+ public final native boolean isBooleanValue() /*-{
+ return this.booleanValue;
+ }-*/;
+
+ public final native boolean isInvalidIteratorState() /*-{
+ return this.invalidIteratorState;
+ }-*/;
+
+ public final native double getNumberValue() /*-{
+ return this.numberValue;
+ }-*/;
+
+ public final native int getResultType() /*-{
+ return this.resultType;
+ }-*/;
+
+ public final native JsNode getSingleNodeValue() /*-{
+ return this.singleNodeValue;
+ }-*/;
+
+ public final native int getSnapshotLength() /*-{
+ return this.snapshotLength;
+ }-*/;
+
+ public final native String getStringValue() /*-{
+ return this.stringValue;
+ }-*/;
+
+ public final native JsNode iterateNext() /*-{
+ return this.iterateNext();
+ }-*/;
+
+ public final native JsNode snapshotItem(int index) /*-{
+ return this.snapshotItem(index);
+ }-*/;
+}
diff --git a/elemental/src/elemental/json/Json.java b/elemental/src/elemental/json/Json.java
new file mode 100644
index 0000000..3c4902c
--- /dev/null
+++ b/elemental/src/elemental/json/Json.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+import elemental.json.impl.JreJsonFactory;
+
+/**
+ * Vends out implementation of JsonFactory.
+ */
+public class Json {
+
+ public static JsonString create(String string) {
+ return instance().create(string);
+ }
+
+ public static JsonBoolean create(boolean bool) {
+ return instance().create(bool);
+ }
+
+ public static JsonArray createArray() {
+ return instance().createArray();
+ }
+
+ public static JsonNull createNull() {
+ return instance().createNull();
+ }
+
+ public static JsonNumber create(double number) {
+ return instance().create(number);
+ }
+
+ public static JsonObject createObject() {
+ return instance().createObject();
+ }
+ public static JsonFactory instance() {
+ return new JreJsonFactory();
+ }
+
+ public static JsonObject parse(String jsonString) {
+ return instance().parse(jsonString);
+ }
+}
diff --git a/elemental/src/elemental/json/JsonArray.java b/elemental/src/elemental/json/JsonArray.java
new file mode 100644
index 0000000..17b324d
--- /dev/null
+++ b/elemental/src/elemental/json/JsonArray.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * Represents a Json array.
+ */
+public interface JsonArray extends JsonValue {
+
+ /**
+ * Return the ith element of the array.
+ */
+ <T extends JsonValue> T get(int index);
+
+ /**
+ * Return the ith element of the array (uncoerced) as a JsonArray. If the type is not an array,
+ * this can result in runtime errors.
+ */
+ JsonArray getArray(int index);
+
+ /**
+ * Return the ith element of the array (uncoerced) as a boolean. If the type is not a boolean,
+ * this can result in runtime errors.
+ */
+ boolean getBoolean(int index);
+
+ /**
+ * Return the ith element of the array (uncoerced) as a number. If the type is not a number, this
+ * can result in runtime errors.
+ */
+ double getNumber(int index);
+
+ /**
+ * Return the ith element of the array (uncoerced) as a JsonObject If the type is not an object,,
+ * this can result in runtime errors.
+ */
+ JsonObject getObject(int index);
+
+ /**
+ * Return the ith element of the array (uncoerced) as a String. If the type is not a String, this
+ * can result in runtime errors.
+ */
+ String getString(int index);
+
+ /**
+ * Length of the array.
+ */
+ int length();
+
+ /**
+ * Remove an element of the array at a particular index.
+ */
+ void remove(int index);
+
+ /**
+ * Set the value at index to be a given value.
+ */
+ void set(int index, JsonValue value);
+
+ /**
+ * Set the value at index to be a String value.
+ */
+ void set(int index, String string);
+
+ /**
+ * Set the value at index to be a number value.
+ */
+ void set(int index, double number);
+
+ /**
+ * Set the value at index to be a boolean value.
+ */
+ void set(int index, boolean bool);
+}
diff --git a/elemental/src/elemental/json/JsonBoolean.java b/elemental/src/elemental/json/JsonBoolean.java
new file mode 100644
index 0000000..35d9e07
--- /dev/null
+++ b/elemental/src/elemental/json/JsonBoolean.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * Represents a Json boolean.
+ */
+public interface JsonBoolean extends JsonValue {
+ boolean getBoolean();
+}
diff --git a/elemental/src/elemental/json/JsonException.java b/elemental/src/elemental/json/JsonException.java
new file mode 100644
index 0000000..ef6d97b
--- /dev/null
+++ b/elemental/src/elemental/json/JsonException.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * A exception representing an error in parsing or serializing Json.
+ */
+public class JsonException extends RuntimeException {
+
+ public JsonException(String s) {
+ super(s);
+ }
+}
diff --git a/elemental/src/elemental/json/JsonFactory.java b/elemental/src/elemental/json/JsonFactory.java
new file mode 100644
index 0000000..8e09e7c
--- /dev/null
+++ b/elemental/src/elemental/json/JsonFactory.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * Factory interface for parsing and creating JSON objects.
+ */
+public interface JsonFactory {
+
+ /**
+ * Create a JsonString from a Java String.
+ *
+ * @param string a Java String
+ * @return the parsed JsonString
+ */
+ JsonString create(String string);
+
+ /**
+ * Create a JsonNumber from a Java double.
+ *
+ * @param number a Java double
+ * @return the parsed JsonNumber
+ */
+ JsonNumber create(double number);
+
+ /**
+ * Create a JsonBoolean from a Java boolean.
+ *
+ * @param bool a Java boolean
+ * @return the parsed JsonBoolean
+ */
+ JsonBoolean create(boolean bool);
+
+ /**
+ * Create an empty JsonArray.
+ *
+ * @return a new JsonArray
+ */
+ elemental.json.JsonArray createArray();
+
+ /**
+ * Create a JsonNull.
+ *
+ * @return a JsonNull instance
+ */
+ JsonNull createNull();
+
+ /**
+ * Create an empty JsonObject.
+ *
+ * @return a new JsonObject
+ */
+ JsonObject createObject();
+
+ /**
+ * Parse a String in JSON format and return a JsonValue of the appropriate
+ * type.
+ *
+ * @param jsonString a String in JSON format
+ * @return a parsed JsonValue
+ */
+ <T extends JsonValue> T parse(String jsonString) throws elemental.json.JsonException;
+}
diff --git a/elemental/src/elemental/json/JsonNull.java b/elemental/src/elemental/json/JsonNull.java
new file mode 100644
index 0000000..cdd87c5
--- /dev/null
+++ b/elemental/src/elemental/json/JsonNull.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * Represents the Json null value.
+ */
+public interface JsonNull extends JsonValue {
+}
diff --git a/elemental/src/elemental/json/JsonNumber.java b/elemental/src/elemental/json/JsonNumber.java
new file mode 100644
index 0000000..13f9856
--- /dev/null
+++ b/elemental/src/elemental/json/JsonNumber.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * Represents a Json number value.
+ */
+public interface JsonNumber extends JsonValue {
+ double getNumber();
+}
diff --git a/elemental/src/elemental/json/JsonObject.java b/elemental/src/elemental/json/JsonObject.java
new file mode 100644
index 0000000..c8be0b1
--- /dev/null
+++ b/elemental/src/elemental/json/JsonObject.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * Represents a Json object.
+ */
+public interface JsonObject extends JsonValue {
+
+ /**
+ * Return the element (uncoerced) as a JsonValue.
+ */
+ <T extends JsonValue> T get(String key);
+
+ /**
+ * Return the element (uncoerced) as a JsonArray. If the type is not an array,
+ * this can result in runtime errors.
+ */
+ JsonArray getArray(String key);
+
+ /**
+ * Return the element (uncoerced) as a boolean. If the type is not a boolean,
+ * this can result in runtime errors.
+ */
+ boolean getBoolean(String key);
+
+ /**
+ * Return the element (uncoerced) as a number. If the type is not a number, this
+ * can result in runtime errors.
+ */
+ double getNumber(String key);
+
+ /**
+ * Return the element (uncoerced) as a JsonObject If the type is not an object,,
+ * this can result in runtime errors.
+ */
+ JsonObject getObject(String key);
+
+ /**
+ * Return the element (uncoerced) as a String. If the type is not a String, this
+ * can result in runtime errors.
+ */
+ String getString(String key);
+
+ /**
+ * All keys of the object.
+ */
+ String[] keys();
+
+ /**
+ * Set a given key to the given value.
+ */
+ void put(String key, JsonValue value);
+
+ /**
+ * Set a given key to the given String value.
+ */
+ void put(String key, String value);
+
+ /**
+ * Set a given key to the given double value.
+ */
+ void put(String key, double value);
+
+ /**
+ * Set a given key to the given boolean value.
+ */
+ void put(String key, boolean bool);
+
+ /**
+ * Test whether a given key has present.
+ */
+ boolean hasKey(String key);
+
+ /**
+ * Remove a given key and associated value from the object.
+ * @param key
+ */
+ void remove(String key);
+}
diff --git a/elemental/src/elemental/json/JsonString.java b/elemental/src/elemental/json/JsonString.java
new file mode 100644
index 0000000..2941fe2
--- /dev/null
+++ b/elemental/src/elemental/json/JsonString.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * Represents a Json String value.
+ */
+public interface JsonString extends JsonValue {
+ String getString();
+}
diff --git a/elemental/src/elemental/json/JsonType.java b/elemental/src/elemental/json/JsonType.java
new file mode 100644
index 0000000..6af0560
--- /dev/null
+++ b/elemental/src/elemental/json/JsonType.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * Represents the type of the underlying JsonValue.
+ */
+public enum JsonType {
+ OBJECT, ARRAY, STRING, NUMBER, BOOLEAN, NULL;
+}
diff --git a/elemental/src/elemental/json/JsonValue.java b/elemental/src/elemental/json/JsonValue.java
new file mode 100644
index 0000000..f4f2154
--- /dev/null
+++ b/elemental/src/elemental/json/JsonValue.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+/**
+ * Base interface for all Json values.
+ */
+public interface JsonValue {
+
+ /**
+ * Coerces underlying value to boolean according to the rules of Javascript coercion.
+ */
+ boolean asBoolean();
+
+ /**
+ * Coerces the underlying value to a number according to the rules of Javascript coercion.
+ */
+ double asNumber();
+
+ /**
+ * Coerces the underlying value to a String according to the rules of JavaScript coercion.
+ */
+ String asString();
+
+ /**
+ * Returns an enumeration representing the fundamental JSON type.
+ */
+ JsonType getType();
+
+ /**
+ * Returns a serialized JSON string representing this value.
+ * @return
+ */
+ String toJson();
+
+ /**
+ * Equivalent of Javascript '==' operator comparison between two values.
+ */
+ boolean jsEquals(JsonValue value);
+
+
+ /**
+ * If used in a GWT context (dev or prod mode), converts the object to a native JavaScriptObject
+ * suitable for passing to JSNI methods. Otherwise, returns the current object in other contexts,
+ * such as server-side use.
+ */
+ Object toNative();
+}
diff --git a/elemental/src/elemental/json/impl/JreJsonArray.java b/elemental/src/elemental/json/impl/JreJsonArray.java
new file mode 100644
index 0000000..5a6a240
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JreJsonArray.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import elemental.json.JsonArray;
+import elemental.json.JsonBoolean;
+import elemental.json.JsonFactory;
+import elemental.json.JsonNumber;
+import elemental.json.JsonObject;
+import elemental.json.JsonString;
+import elemental.json.JsonType;
+import elemental.json.JsonValue;
+
+/**
+ * Server-side implementation of JsonArray.
+ */
+public class JreJsonArray extends JreJsonValue implements JsonArray {
+
+ private ArrayList<JsonValue> arrayValues = new ArrayList<JsonValue>();
+
+ private JsonFactory factory;
+
+ public JreJsonArray(JsonFactory factory) {
+ this.factory = factory;
+ }
+
+ @Override
+ public boolean asBoolean() {
+ return true;
+ }
+
+ @Override
+ public double asNumber() {
+ switch (length()) {
+ case 0:
+ return 0;
+ case 1:
+ return get(0).asNumber();
+ default:
+ return Double.NaN;
+ }
+ }
+
+ @Override
+ public String asString() {
+ StringBuilder toReturn = new StringBuilder();
+ for (int i = 0; i < length(); i++) {
+ if (i > 0) {
+ toReturn.append(", ");
+ }
+ toReturn.append(get(i).asString());
+ }
+ return toReturn.toString();
+ }
+
+ public JsonValue get(int index) {
+ return arrayValues.get(index);
+ }
+
+ public JsonArray getArray(int index) {
+ return (JsonArray) get(index);
+ }
+
+
+ public boolean getBoolean(int index) {
+ return ((JsonBoolean) get(index)).getBoolean();
+ }
+
+ public double getNumber(int index) {
+ return ((JsonNumber) get(index)).getNumber();
+ }
+
+ public JsonObject getObject(int index) {
+ return (JsonObject) get(index);
+ }
+
+ public Object getObject() {
+ List<Object> objs = new ArrayList<Object>();
+ for (JsonValue val : arrayValues) {
+ objs.add(((JreJsonValue) val).getObject());
+ }
+ return objs;
+ }
+
+ public String getString(int index) {
+ return ((JsonString) get(index)).getString();
+ }
+
+ public JsonType getType() {
+ return elemental.json.JsonType.ARRAY;
+ }
+
+ @Override
+ public boolean jsEquals(JsonValue value) {
+ return getObject().equals(((JreJsonValue) value).getObject());
+ }
+
+ public int length() {
+ return arrayValues.size();
+ }
+
+ @Override
+ public void remove(int index) {
+ arrayValues.remove(index);
+ }
+
+ public void set(int index, JsonValue value) {
+ if (value == null) {
+ value = factory.createNull();
+ }
+ if (index == arrayValues.size()) {
+ arrayValues.add(index, value);
+ } else {
+ arrayValues.set(index, value);
+ }
+ }
+
+ public void set(int index, String string) {
+ set(index, factory.create(string));
+ }
+
+ public void set(int index, double number) {
+ set(index, factory.create(number));
+ }
+
+ public void set(int index, boolean bool) {
+ set(index, factory.create(bool));
+ }
+
+ public String toJson() {
+ return JsonUtil.stringify(this);
+ }
+
+ @Override
+ public void traverse(elemental.json.impl.JsonVisitor visitor,
+ elemental.json.impl.JsonContext ctx) {
+ if (visitor.visit(this, ctx)) {
+ JsonArrayContext arrayCtx = new JsonArrayContext(this);
+ for (int i = 0; i < length(); i++) {
+ arrayCtx.setCurrentIndex(i);
+ if (visitor.visitIndex(arrayCtx.getCurrentIndex(), arrayCtx)) {
+ visitor.accept(get(i), arrayCtx);
+ arrayCtx.setFirst(false);
+ }
+ }
+ }
+ visitor.endVisit(this, ctx);
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JreJsonBoolean.java b/elemental/src/elemental/json/impl/JreJsonBoolean.java
new file mode 100644
index 0000000..a947fd3
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JreJsonBoolean.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.JsonBoolean;
+import elemental.json.JsonType;
+import elemental.json.JsonValue;
+
+/**
+ * Server-side implementation of JsonBoolean.
+ */
+public class JreJsonBoolean extends JreJsonValue implements JsonBoolean {
+
+ private boolean bool;
+ public JreJsonBoolean(boolean bool) {
+ this.bool = bool;
+ }
+
+ @Override
+ public boolean asBoolean() {
+ return getBoolean();
+ }
+
+ @Override
+ public double asNumber() {
+ return getBoolean() ? 1 : 0;
+ }
+
+ @Override
+ public String asString() {
+ return Boolean.toString(getBoolean());
+ }
+
+ public boolean getBoolean() {
+ return bool;
+ }
+
+ public Object getObject() {
+ return getBoolean();
+ }
+
+ public JsonType getType() {
+ return JsonType.BOOLEAN;
+ }
+
+ @Override
+ public boolean jsEquals(JsonValue value) {
+ return getObject().equals(((JreJsonValue)value).getObject());
+ }
+
+ @Override
+ public void traverse(elemental.json.impl.JsonVisitor visitor, JsonContext ctx) {
+ visitor.visit(getBoolean(), ctx);
+ }
+
+ public String toJson() throws IllegalStateException {
+ return String.valueOf(bool);
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JreJsonFactory.java b/elemental/src/elemental/json/impl/JreJsonFactory.java
new file mode 100644
index 0000000..edc8706
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JreJsonFactory.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.JsonArray;
+import elemental.json.JsonBoolean;
+import elemental.json.JsonException;
+import elemental.json.JsonFactory;
+import elemental.json.JsonNull;
+import elemental.json.JsonNumber;
+import elemental.json.JsonObject;
+import elemental.json.JsonString;
+import elemental.json.JsonValue;
+
+
+/**
+ * Implementation of JsonFactory interface using org.json library.
+ */
+public class JreJsonFactory implements JsonFactory {
+
+ public JsonString create(String string) {
+ assert string != null;
+ return new JreJsonString(string);
+ }
+
+ public JsonNumber create(double number) {
+ return new JreJsonNumber(number);
+ }
+
+ public JsonBoolean create(boolean bool) {
+ return new JreJsonBoolean(bool);
+ }
+
+ public JsonArray createArray() {
+ return new JreJsonArray(this);
+ }
+
+ public JsonNull createNull() {
+ return JreJsonNull.NULL_INSTANCE;
+ }
+
+ public JsonObject createObject() {
+ return new JreJsonObject(this);
+ }
+
+ public <T extends JsonValue> T parse(String jsonString) throws JsonException {
+ if (jsonString.startsWith("(") && jsonString.endsWith(")")) {
+ // some clients send in (json) expecting an eval is required
+ jsonString = jsonString.substring(1, jsonString.length() - 1);
+ }
+ return new JsonTokenizer(this, jsonString).nextValue();
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JreJsonNull.java b/elemental/src/elemental/json/impl/JreJsonNull.java
new file mode 100644
index 0000000..25acab1
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JreJsonNull.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.JsonNull;
+import elemental.json.JsonType;
+import elemental.json.JsonValue;
+
+/**
+ * Server-side implementation of JsonObject.
+ */
+public class JreJsonNull extends JreJsonValue implements JsonNull {
+
+ public static final JsonNull NULL_INSTANCE = new JreJsonNull();
+
+ @Override
+ public double asNumber() {
+ return 0;
+ }
+
+ @Override
+ public boolean asBoolean() {
+ return false;
+ }
+
+ @Override
+ public String asString() {
+ return "null";
+ }
+
+ public Object getObject() {
+ return null;
+ }
+
+ public JsonType getType() {
+ return JsonType.NULL;
+ }
+
+ @Override
+ public boolean jsEquals(JsonValue value) {
+ return value == null || value.getType() == JsonType.NULL;
+ }
+
+ @Override
+ public void traverse(JsonVisitor visitor, elemental.json.impl.JsonContext ctx) {
+ visitor.visitNull(ctx);
+ }
+
+ public String toJson() {
+ return null;
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JreJsonNumber.java b/elemental/src/elemental/json/impl/JreJsonNumber.java
new file mode 100644
index 0000000..4fb2842
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JreJsonNumber.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.JsonNumber;
+import elemental.json.JsonType;
+import elemental.json.JsonValue;
+
+/**
+ * Server-side implementation of JsonNumber.
+ */
+public class JreJsonNumber extends JreJsonValue implements JsonNumber {
+
+ private double number;
+
+ public JreJsonNumber(double number) {
+ this.number = number;
+ }
+
+ @Override
+ public boolean asBoolean() {
+ return Double.isNaN(getNumber()) || Math.abs(getNumber()) == 0.0 ? false : true;
+ }
+
+ @Override
+ public double asNumber() {
+ return getNumber();
+ }
+
+ @Override
+ public String asString() {
+ return toJson();
+ }
+
+ public double getNumber() {
+ return number;
+ }
+
+ public Object getObject() {
+ return getNumber();
+ }
+
+ public JsonType getType() {
+ return JsonType.NUMBER;
+ }
+
+ @Override
+ public boolean jsEquals(JsonValue value) {
+ return getObject().equals(((JreJsonValue)value).getObject());
+ }
+
+ @Override
+ public void traverse(JsonVisitor visitor, elemental.json.impl.JsonContext ctx) {
+ visitor.visit(getNumber(), ctx);
+ }
+
+ public String toJson() {
+ String toReturn = String.valueOf(number);
+ if (toReturn.endsWith(".0")) {
+ toReturn = toReturn.substring(0, toReturn.length() - 2);
+ }
+ return toReturn;
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JreJsonObject.java b/elemental/src/elemental/json/impl/JreJsonObject.java
new file mode 100755
index 0000000..992f9a0
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JreJsonObject.java
@@ -0,0 +1,178 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import elemental.json.JsonArray;
+import elemental.json.JsonBoolean;
+import elemental.json.JsonFactory;
+import elemental.json.JsonNumber;
+import elemental.json.JsonObject;
+import elemental.json.JsonString;
+import elemental.json.JsonType;
+import elemental.json.JsonValue;
+
+/**
+ * Server-side implementation of JsonObject.
+ */
+public class JreJsonObject extends JreJsonValue implements JsonObject {
+
+ private static List<String> stringifyOrder(String[] keys) {
+ List<String> toReturn = new ArrayList<String>();
+ List<String> nonNumeric = new ArrayList<String>();
+ for (String key : keys) {
+ if (key.matches("\\d+")) {
+ toReturn.add(key);
+ } else {
+ nonNumeric.add(key);
+ }
+ }
+ Collections.sort(toReturn);
+ toReturn.addAll(nonNumeric);
+ return toReturn;
+ }
+
+ private JsonFactory factory;
+ private Map<String, JsonValue> map = new LinkedHashMap<String, JsonValue>();
+
+ public JreJsonObject(JsonFactory factory) {
+ this.factory = factory;
+ }
+
+ @Override
+ public boolean asBoolean() {
+ return true;
+ }
+
+ @Override
+ public double asNumber() {
+ return Double.NaN;
+ }
+
+ @Override
+ public String asString() {
+ return "[object Object]";
+ }
+
+ public JsonValue get(String key) {
+ return map.get(key);
+ }
+
+ public JsonArray getArray(String key) {
+ return (JsonArray) get(key);
+ }
+
+
+ public boolean getBoolean(String key) {
+ return ((JsonBoolean) get(key)).getBoolean();
+ }
+
+ public double getNumber(String key) {
+ return ((JsonNumber) get(key)).getNumber();
+ }
+
+ public JsonObject getObject(String key) {
+ return (JsonObject) get(key);
+ }
+
+ public Object getObject() {
+ Map<String, Object> obj = new HashMap<String, Object>();
+ for (Map.Entry<String, JsonValue> e : map.entrySet()) {
+ obj.put(e.getKey(), ((JreJsonValue) e.getValue()).getObject());
+ }
+ return obj;
+ }
+
+
+ public String getString(String key) {
+ return ((JsonString) get(key)).getString();
+ }
+
+ public JsonType getType() {
+ return JsonType.OBJECT;
+ }
+
+ @Override
+ public boolean hasKey(String key) {
+ return map.containsKey(key);
+ }
+
+ @Override
+ public boolean jsEquals(JsonValue value) {
+ return getObject().equals(((JreJsonValue) value).getObject());
+ }
+
+ public String[] keys() {
+ return map.keySet().toArray(new String[map.size()]);
+ }
+
+ public void put(String key, JsonValue value) {
+ if (value == null) {
+ value = factory.createNull();
+ }
+ map.put(key, value);
+ }
+
+ public void put(String key, String value) {
+ put(key, factory.create(value));
+ }
+
+ public void put(String key, double value) {
+ put(key, factory.create(value));
+ }
+
+ public void put(String key, boolean bool) {
+ put(key, factory.create(bool));
+ }
+
+ @Override
+ public void remove(String key) {
+ map.remove(key);
+ }
+
+ public void set(String key, JsonValue value) {
+ put(key, value);
+ }
+
+ public String toJson() {
+ return JsonUtil.stringify(this);
+ }
+
+ public String toString() {
+ return toJson();
+ }
+
+ @Override
+ public void traverse(JsonVisitor visitor, JsonContext ctx) {
+ if (visitor.visit(this, ctx)) {
+ JsonObjectContext objCtx = new JsonObjectContext(this);
+ for (String key : stringifyOrder(keys())) {
+ objCtx.setCurrentKey(key);
+ if (visitor.visitKey(objCtx.getCurrentKey(), objCtx)) {
+ visitor.accept(get(key), objCtx);
+ objCtx.setFirst(false);
+ }
+ }
+ }
+ visitor.endVisit(this, ctx);
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JreJsonString.java b/elemental/src/elemental/json/impl/JreJsonString.java
new file mode 100644
index 0000000..f282245
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JreJsonString.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.JsonString;
+import elemental.json.JsonType;
+import elemental.json.JsonValue;
+
+/**
+ * Server-side implementation of JsonString.
+ */
+public class JreJsonString extends JreJsonValue implements JsonString {
+
+ private String string;
+
+ public JreJsonString(String string) {
+ this.string = string;
+ }
+
+ @Override
+ public boolean asBoolean() {
+ return !getString().isEmpty();
+ }
+
+ @Override
+ public double asNumber() {
+ try {
+ if (asString().isEmpty()) {
+ return 0.0;
+ } else {
+ return Double.parseDouble(asString());
+ }
+ } catch(NumberFormatException nfe) {
+ return Double.NaN;
+ }
+ }
+
+ @Override
+ public String asString() {
+ return getString();
+ }
+
+ public Object getObject() {
+ return getString();
+ }
+
+ public String getString() {
+ return string;
+ }
+
+ public JsonType getType() {
+ return JsonType.STRING;
+ }
+
+ @Override
+ public boolean jsEquals(JsonValue value) {
+ return getObject().equals(((JreJsonValue)value).getObject());
+ }
+
+ @Override
+ public void traverse(JsonVisitor visitor, JsonContext ctx) {
+ visitor.visit(getString(), ctx);
+ }
+
+ public String toJson() throws IllegalStateException {
+ return JsonUtil.quote(getString());
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JreJsonValue.java b/elemental/src/elemental/json/impl/JreJsonValue.java
new file mode 100644
index 0000000..313f8fb
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JreJsonValue.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2011 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 elemental.json.impl;
+
+import elemental.json.JsonValue;
+
+/**
+ * JRE (non-Client) implementation of JreJsonValue.
+ */
+public abstract class JreJsonValue implements JsonValue {
+ public abstract Object getObject();
+ public abstract void traverse(JsonVisitor visitor, JsonContext ctx);
+
+ @Override
+ public Object toNative() {
+ return this;
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JsonArrayContext.java b/elemental/src/elemental/json/impl/JsonArrayContext.java
new file mode 100644
index 0000000..f312f17
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JsonArrayContext.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.*;
+
+/**
+ * A {@link JsonContext} with integer based location context.
+ */
+class JsonArrayContext extends JsonContext {
+
+ int currentIndex = 0;
+
+ public JsonArrayContext(JsonArray array) {
+ super(array);
+ }
+
+ public JsonArray array() {
+ return (JsonArray) getValue();
+ }
+
+ public int getCurrentIndex() {
+ return currentIndex;
+ }
+ @Override
+ public void removeMe() {
+ array().remove(getCurrentIndex());
+ }
+
+ @Override
+ public void replaceMe(double d) {
+ array().set(getCurrentIndex(), d);
+ }
+
+ @Override
+ public void replaceMe(String d) {
+ array().set(getCurrentIndex(), d);
+ }
+
+ @Override
+ public void replaceMe(boolean d) {
+ array().set(getCurrentIndex(), d);
+ }
+
+ @Override
+ public void replaceMe(JsonValue value) {
+ array().set(getCurrentIndex(), value);
+ }
+
+ public void setCurrentIndex(int currentIndex) {
+ this.currentIndex = currentIndex;
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JsonContext.java b/elemental/src/elemental/json/impl/JsonContext.java
new file mode 100644
index 0000000..37ad7b0
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JsonContext.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.JsonValue;
+
+/**
+ * Represents the current location where a value is stored, and allows
+ * the value's replacement or deletion.
+ */
+abstract class JsonContext {
+
+ private JsonValue value;
+
+ private boolean isFirst = true;
+
+ JsonContext(JsonValue value) {
+ this.value = value;
+ }
+
+ /**
+ * Return the underlying JsonValue (Array or Object) that backs the
+ * context.
+ */
+ public JsonValue getValue() {
+ return value;
+ }
+
+ /**
+ * Whether or not the current context location within the value is the first
+ * key or array index.
+ */
+ public boolean isFirst() {
+ return isFirst;
+ }
+
+ /**
+ * Remove the current array index or key from the underlying json.
+ */
+ public abstract void removeMe();
+
+ /**
+ * Replace the current location's value with a double.
+ */
+ public abstract void replaceMe(double d);
+
+ /**
+ * Replace the current location's value with a String.
+ */
+ public abstract void replaceMe(String d);
+
+ /**
+ * Replace the current location's value with a boolean.
+ */
+ public abstract void replaceMe(boolean d);
+
+ /**
+ * Replace the current location's value with a JsonValue.
+ */
+ public abstract void replaceMe(JsonValue value);
+
+ public void setFirst(boolean first) {
+ isFirst = first;
+ }
+
+ void setValue(JsonValue value) {
+ this.value = value;
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JsonObjectContext.java b/elemental/src/elemental/json/impl/JsonObjectContext.java
new file mode 100644
index 0000000..db7840f
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JsonObjectContext.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.*;
+
+/**
+ * A {@link JsonContext} with String based location index.
+ */
+class JsonObjectContext extends JsonContext {
+
+ String currentKey;
+
+ public JsonObjectContext(JsonObject value) {
+ super(value);
+ }
+
+ private JsonObject object() {
+ return (JsonObject) getValue();
+ }
+ public String getCurrentKey() {
+ return currentKey;
+ }
+
+ @Override
+ public void removeMe() {
+ object().remove(getCurrentKey());
+ }
+
+ @Override
+ public void replaceMe(double d) {
+ object().put(getCurrentKey(), d);
+ }
+
+ @Override
+ public void replaceMe(String d) {
+ object().put(getCurrentKey(), d);
+ }
+
+ @Override
+ public void replaceMe(boolean d) {
+ object().put(getCurrentKey(), d);
+ }
+
+ @Override
+ public void replaceMe(JsonValue value) {
+ object().put(getCurrentKey(), value);
+ }
+
+ public void setCurrentKey(String currentKey) {
+ this.currentKey = currentKey;
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JsonTokenizer.java b/elemental/src/elemental/json/impl/JsonTokenizer.java
new file mode 100644
index 0000000..2e92d1f
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JsonTokenizer.java
@@ -0,0 +1,321 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.JsonArray;
+import elemental.json.JsonException;
+import elemental.json.JsonFactory;
+import elemental.json.JsonNumber;
+import elemental.json.JsonObject;
+import elemental.json.JsonValue;
+
+/**
+ * Implementation of parsing a JSON string into instances of {@link
+ * com.google.gwt.dev.json.JsonValue}.
+ */
+class JsonTokenizer {
+
+ private static final int INVALID_CHAR = -1;
+
+ private static final String STOPCHARS = ",:]}/\\\"[{;=#";
+
+ private JsonFactory jsonFactory;
+
+ private boolean lenient = true;
+
+ private int pushBackBuffer = INVALID_CHAR;
+
+ private final String json;
+ private int position = 0;
+
+ JsonTokenizer(JreJsonFactory serverJsonFactory, String json) {
+ this.jsonFactory = serverJsonFactory;
+ this.json = json;
+ }
+
+ void back(char c) {
+ assert pushBackBuffer == INVALID_CHAR;
+ pushBackBuffer = c;
+ }
+
+ void back(int c) {
+ back((char) c);
+ }
+
+ int next() {
+ if (pushBackBuffer != INVALID_CHAR) {
+ final int c = pushBackBuffer;
+ pushBackBuffer = INVALID_CHAR;
+ return c;
+ }
+
+ return position < json.length() ? json.charAt(position++) : INVALID_CHAR;
+ }
+
+ String next(int n) throws JsonException {
+ if (n == 0) {
+ return "";
+ }
+
+ char[] buffer = new char[n];
+ int pos = 0;
+
+ if (pushBackBuffer != INVALID_CHAR) {
+ buffer[0] = (char) pushBackBuffer;
+ pos = 1;
+ pushBackBuffer = INVALID_CHAR;
+ }
+
+ int len;
+ while ((pos < n) && ((len = read(buffer, pos, n - pos)) != -1)) {
+ pos += len;
+ }
+
+ if (pos < n) {
+ throw new JsonException("TODO"/* TODO(knorton): Add message. */);
+ }
+
+ return String.valueOf(buffer);
+ }
+
+ int nextNonWhitespace() {
+ while (true) {
+ final int c = next();
+ if (!Character.isSpace((char) c)) {
+ return c;
+ }
+ }
+ }
+
+ String nextString(int startChar) throws JsonException {
+ final StringBuffer buffer = new StringBuffer();
+ int c = next();
+ assert c == '"' || (lenient && c == '\'');
+ while (true) {
+ c = next();
+ switch (c) {
+ case '\r':
+ case '\n':
+ throw new JsonException("");
+ case '\\':
+ c = next();
+ switch (c) {
+ case 'b':
+ buffer.append('\b');
+ break;
+ case 't':
+ buffer.append('\t');
+ break;
+ case 'n':
+ buffer.append('\n');
+ break;
+ case 'f':
+ buffer.append('\f');
+ break;
+ case 'r':
+ buffer.append('\r');
+ break;
+ // TODO(knorton): I'm not sure I should even support this escaping
+ // mode since JSON is always UTF-8.
+ case 'u':
+ buffer.append((char) Integer.parseInt(next(4), 16));
+ break;
+ default:
+ buffer.append((char) c);
+ }
+ break;
+ default:
+ if (c == startChar) {
+ return buffer.toString();
+ }
+ buffer.append((char) c);
+ }
+ }
+ }
+
+ String nextUntilOneOf(String chars) {
+ final StringBuffer buffer = new StringBuffer();
+ int c = next();
+ while (c != INVALID_CHAR) {
+ if (Character.isSpace((char) c) || chars.indexOf((char) c) >= 0) {
+ back(c);
+ break;
+ }
+ buffer.append((char) c);
+ c = next();
+ }
+ return buffer.toString();
+ }
+
+ <T extends JsonValue> T nextValue() throws JsonException {
+ final int c = nextNonWhitespace();
+ back(c);
+ switch (c) {
+ case '"':
+ case '\'':
+ return (T) jsonFactory.create(nextString(c));
+ case '{':
+ return (T) parseObject();
+ case '[':
+ return (T) parseArray();
+ default:
+ return (T) getValueForLiteral(nextUntilOneOf(STOPCHARS));
+ }
+ }
+
+ JsonArray parseArray() throws JsonException {
+ final JsonArray array = jsonFactory.createArray();
+ int c = nextNonWhitespace();
+ assert c == '[';
+ while (true) {
+ c = nextNonWhitespace();
+ switch (c) {
+ case ']':
+ return array;
+ default:
+ back(c);
+ array.set(array.length(), nextValue());
+ final int d = nextNonWhitespace();
+ switch (d) {
+ case ']':
+ return array;
+ case ',':
+ break;
+ default:
+ throw new JsonException("Invalid array: expected , or ]");
+ }
+ }
+ }
+ }
+
+ JsonObject parseObject() throws JsonException {
+ final JsonObject object = jsonFactory.createObject();
+ int c = nextNonWhitespace();
+ if (c != '{') {
+ throw new JsonException(
+ "Payload does not begin with '{'. Got " + c + "("
+ + Character.valueOf((char) c) + ")");
+ }
+
+ while (true) {
+ c = nextNonWhitespace();
+ switch (c) {
+ case '}':
+ // We're done.
+ return object;
+ case '"':
+ case '\'':
+ back(c);
+ // Ready to start a key.
+ final String key = nextString(c);
+ if (nextNonWhitespace() != ':') {
+ throw new JsonException(
+ "Invalid object: expecting \":\"");
+ }
+ // TODO(knorton): Make sure this key is not already set.
+ object.put(key, nextValue());
+ switch (nextNonWhitespace()) {
+ case ',':
+ break;
+ case '}':
+ return object;
+ default:
+ throw new JsonException(
+ "Invalid object: expecting } or ,");
+ }
+ break;
+ case ',':
+ break;
+ default:
+ if (lenient && (Character.isDigit((char) c) || Character.isLetterOrDigit((char) c)))
+ {
+ StringBuffer keyBuffer = new StringBuffer();
+ keyBuffer.append(c);
+ while (true) {
+ c = next();
+ if (Character.isDigit((char) c) || Character.isLetterOrDigit((char) c)) {
+ keyBuffer.append(c);
+ } else {
+ back(c);
+ break;
+ }
+ }
+ if (nextNonWhitespace() != ':') {
+ throw new JsonException(
+ "Invalid object: expecting \":\"");
+ }
+ // TODO(knorton): Make sure this key is not already set.
+ object.put(keyBuffer.toString(), nextValue());
+ switch (nextNonWhitespace()) {
+ case ',':
+ break;
+ case '}':
+ return object;
+ default:
+ throw new JsonException(
+ "Invalid object: expecting } or ,");
+ }
+
+ }else{
+ throw new JsonException("Invalid object: ");
+ }
+ }
+ }
+ }
+
+ private JsonNumber getNumberForLiteral(String literal)
+ throws JsonException {
+ try {
+ return jsonFactory.create(Double.parseDouble(literal));
+ } catch (NumberFormatException e) {
+ throw new JsonException("Invalid number literal: " + literal);
+ }
+ }
+
+ private JsonValue getValueForLiteral(String literal) throws JsonException {
+ if ("".equals(literal)) {
+ throw new JsonException("Missing value");
+ }
+
+ if ("null".equals(literal) || "undefined".equals(literal)) {
+ return jsonFactory.createNull();
+ }
+
+ if ("true".equals(literal)) {
+ return jsonFactory.create(true);
+ }
+
+ if ("false".equals(literal)) {
+ return jsonFactory.create(false);
+ }
+
+ final char c = literal.charAt(0);
+ if (c == '-' || Character.isDigit(c)) {
+ return getNumberForLiteral(literal);
+ }
+
+ throw new JsonException("Invalid literal: \"" + literal + "\"");
+ }
+
+ private int read(char[] buffer, int pos, int len) {
+ int maxLen = Math.min(json.length() - position, len);
+ String src = json.substring(position, position + maxLen);
+ char result[] = src.toCharArray();
+ System.arraycopy(result, 0, buffer, pos, maxLen);
+ position += maxLen;
+ return maxLen;
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JsonUtil.java b/elemental/src/elemental/json/impl/JsonUtil.java
new file mode 100644
index 0000000..97d27ca
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JsonUtil.java
@@ -0,0 +1,343 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import com.google.gwt.regexp.shared.MatchResult;
+import com.google.gwt.regexp.shared.RegExp;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import elemental.json.Json;
+import elemental.json.JsonArray;
+import elemental.json.JsonException;
+import elemental.json.JsonObject;
+import elemental.json.JsonValue;
+import elemental.json.impl.JsonContext;
+
+/**
+ * Direct port of json2.js at http://www.json.org/json2.js to GWT.
+ */
+public class JsonUtil {
+
+ /**
+ * Callback invoked during a RegExp replace for each match. The return value
+ * is used as a substitution into the matched string.
+ */
+ private interface RegExpReplacer {
+
+ String replace(String match);
+ }
+
+ private static class StringifyJsonVisitor extends JsonVisitor {
+
+ private static final Set<String> skipKeys;
+
+ static {
+ Set<String> toSkip = new HashSet<String>();
+ toSkip.add("$H");
+ toSkip.add("__gwt_ObjectId");
+ skipKeys = Collections.unmodifiableSet(toSkip);
+ }
+
+ private String indentLevel;
+
+ private Set<JsonValue> visited;
+
+ private final String indent;
+
+ private final StringBuffer sb;
+
+ private final boolean pretty;
+
+ public StringifyJsonVisitor(String indent, StringBuffer sb,
+ boolean pretty) {
+ this.indent = indent;
+ this.sb = sb;
+ this.pretty = pretty;
+ indentLevel = "";
+ visited = new HashSet<JsonValue>();
+ }
+
+ @Override
+ public void endVisit(JsonArray array, JsonContext ctx) {
+ if (pretty) {
+ indentLevel = indentLevel
+ .substring(0, indentLevel.length() - indent.length());
+ sb.append('\n');
+ sb.append(indentLevel);
+ }
+ sb.append("]");
+ visited.remove(array);
+ }
+
+ @Override
+ public void endVisit(JsonObject object, JsonContext ctx) {
+ if (pretty) {
+ indentLevel = indentLevel
+ .substring(0, indentLevel.length() - indent.length());
+ sb.append('\n');
+ sb.append(indentLevel);
+ }
+ sb.append("}");
+ visited.remove(object);
+ assert !visited.contains(object);
+ }
+
+ @Override
+ public void visit(double number, JsonContext ctx) {
+ sb.append(Double.isInfinite(number) ? "null" : format(number));
+ }
+
+ @Override
+ public void visit(String string, JsonContext ctx) {
+ sb.append(quote(string));
+ }
+
+ @Override
+ public void visit(boolean bool, JsonContext ctx) {
+ sb.append(bool);
+ }
+
+ @Override
+ public boolean visit(JsonArray array, JsonContext ctx) {
+ checkCycle(array);
+ sb.append("[");
+ if (pretty) {
+ sb.append('\n');
+ indentLevel += indent;
+ sb.append(indentLevel);
+ }
+ return true;
+ }
+
+ @Override
+ public boolean visit(JsonObject object, JsonContext ctx) {
+ checkCycle(object);
+ sb.append("{");
+ if (pretty) {
+ sb.append('\n');
+ indentLevel += indent;
+ sb.append(indentLevel);
+ }
+ return true;
+ }
+
+ @Override
+ public boolean visitIndex(int index, JsonContext ctx) {
+ commaIfNotFirst(ctx);
+ return true;
+ }
+
+ @Override
+ public boolean visitKey(String key, JsonContext ctx) {
+ if ("".equals(key)) {
+ return true;
+ }
+ // skip properties injected by GWT runtime on JSOs
+ if (skipKeys.contains(key)) {
+ return false;
+ }
+ commaIfNotFirst(ctx);
+ sb.append(quote(key) + ":");
+ if (pretty) {
+ sb.append(' ');
+ }
+ return true;
+ }
+
+ @Override
+ public void visitNull(JsonContext ctx) {
+ sb.append("null");
+ }
+
+ private void checkCycle(JsonValue value) {
+ if (visited.contains(value)) {
+ throw new JsonException("Cycled detected during stringify");
+ } else {
+ visited.add(value);
+ }
+ }
+
+ private void commaIfNotFirst(JsonContext ctx) {
+ if (!ctx.isFirst()) {
+ sb.append(",");
+ if (pretty) {
+ sb.append('\n');
+ sb.append(indentLevel);
+ }
+ }
+ }
+
+ private String format(double number) {
+ String n = String.valueOf(number);
+ if (n.endsWith(".0")) {
+ n = n.substring(0, n.length() - 2);
+ }
+ return n;
+ }
+ }
+
+ /**
+ * Convert special control characters into unicode escape format.
+ */
+ public static String escapeControlChars(String text) {
+ StringBuffer toReturn = new StringBuffer();
+ for (int i = 0; i < text.length(); i++) {
+ char c = text.charAt(i);
+ if (isControlChar(c)) {
+ toReturn.append(escapeStringAsUnicode(String.valueOf(c)));
+ } else {
+ toReturn.append(c);
+ }
+ }
+ return toReturn.toString();
+ }
+
+ public static <T extends JsonValue> T parse(String json) throws JsonException {
+ return Json.instance().parse(json);
+ }
+
+ /**
+ * Safely escape an arbitrary string as a JSON string literal.
+ */
+ public static String quote(String value) {
+ StringBuffer toReturn = new StringBuffer();
+ toReturn.append("\"");
+ for (int i = 0; i < value.length(); i++) {
+ char c = value.charAt(i);
+
+ String toAppend = String.valueOf(c);
+ switch (c) {
+ case '\b':
+ toAppend = "\\b";
+ break;
+ case '\t':
+ toAppend = "\\t";
+ break;
+ case '\n':
+ toAppend = "\\n";
+ break;
+ case '\f':
+ toAppend = "\\f";
+ break;
+ case '\r':
+ toAppend = "\\r";
+ break;
+ case '"':
+ toAppend = "\\\"";
+ break;
+ case '\\':
+ toAppend = "\\\\";
+ break;
+ default:
+ if (isControlChar(c)) {
+ toAppend = escapeStringAsUnicode(String.valueOf(c));
+ }
+ }
+ toReturn.append(toAppend);
+ }
+ toReturn.append("\"");
+ return toReturn.toString();
+ }
+
+ /**
+ * Converts a Json Object to Json format.
+ *
+ * @param jsonValue json object to stringify
+ * @return json formatted string
+ */
+ public static String stringify(JsonValue jsonValue) {
+ return stringify(jsonValue, 0);
+ }
+
+ /**
+ * Converts a JSO to Json format.
+ *
+ * @param jsonValue json object to stringify
+ * @param spaces number of spaces to indent in pretty print mode
+ * @return json formatted string
+ */
+ public static String stringify(JsonValue jsonValue, int spaces) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < spaces; i++) {
+ sb.append(' ');
+ }
+ return stringify(jsonValue, sb.toString());
+ }
+
+ /**
+ * Converts a Json object to Json formatted String.
+ *
+ * @param jsonValue json object to stringify
+ * @param indent optional indention prefix for pretty printing
+ * @return json formatted string
+ */
+ public static String stringify(JsonValue jsonValue, final String indent) {
+ final StringBuffer sb = new StringBuffer();
+ final boolean isPretty = indent != null && !"".equals(indent);
+
+ new StringifyJsonVisitor(indent, sb, isPretty).accept(jsonValue);
+ return sb.toString();
+ }
+
+ /**
+ * Turn a single unicode character into a 32-bit unicode hex literal.
+ */
+ private static String escapeStringAsUnicode(String match) {
+ String hexValue = Integer.toString(match.charAt(0), 16);
+ hexValue = hexValue.length() > 4 ? hexValue.substring(hexValue.length() - 4)
+ : hexValue;
+ return "\\u0000" + hexValue;
+ }
+
+ private static boolean isControlChar(char c) {
+ return (c >= 0x00 && c <= 0x1f)
+ || (c >= 0x7f && c <= 0x9f)
+ || c == '\u00ad' || c == '\u070f' || c == '\u17b4' || c == '\u17b5'
+ || c == '\ufeff'
+ || (c >= '\u0600' && c <= '\u0604')
+ || (c >= '\u200c' && c <= '\u200f')
+ || (c >= '\u2028' && c <= '\u202f')
+ || (c >= '\u2060' && c <= '\u206f')
+ || (c >= '\ufff0' && c <= '\uffff');
+ }
+
+ /**
+ * Execute a regular expression and invoke a callback for each match
+ * occurance. The return value of the callback is substituted for the match.
+ *
+ * @param expression a compiled regular expression
+ * @param text a String on which to perform replacement
+ * @param replacer a callback that maps matched strings into new values
+ */
+ private static String replace(RegExp expression, String text,
+ RegExpReplacer replacer) {
+ expression.setLastIndex(0);
+ MatchResult mresult = expression.exec(text);
+ StringBuffer toReturn = new StringBuffer();
+ int lastIndex = 0;
+ while (mresult != null) {
+ toReturn.append(text.substring(lastIndex, mresult.getIndex()));
+ toReturn.append(replacer.replace(mresult.getGroup(0)));
+ lastIndex = mresult.getIndex() + 1;
+ mresult = expression.exec(text);
+ }
+ toReturn.append(text.substring(lastIndex));
+ return toReturn.toString();
+ }
+}
diff --git a/elemental/src/elemental/json/impl/JsonVisitor.java b/elemental/src/elemental/json/impl/JsonVisitor.java
new file mode 100644
index 0000000..517b947
--- /dev/null
+++ b/elemental/src/elemental/json/impl/JsonVisitor.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2010 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 elemental.json.impl;
+
+import elemental.json.JsonArray;
+import elemental.json.JsonObject;
+import elemental.json.JsonValue;
+import elemental.json.impl.JsonContext;
+
+/**
+ * A visitor for JSON objects. For each unique JSON datatype, a callback is
+ * invoked with a {@link elemental.json.impl.JsonContext}
+ * that can be used to replace a value or remove it. For Object and Array
+ * types, the {@link #visitKey} and {@link #visitIndex} methods are invoked
+ * respectively for each contained value to determine if they should be
+ * processed or not. Finally, the visit methods for Object and Array types
+ * returns a boolean that determines whether or not to process its contained
+ * values.
+ */
+class JsonVisitor {
+
+ private class ImmutableJsonContext extends JsonContext {
+
+ public ImmutableJsonContext(JsonValue node) {
+ super(node);
+ }
+
+ @Override
+ public void removeMe() {
+ immutableError();
+ }
+
+ @Override
+ public void replaceMe(double d) {
+ immutableError();
+ }
+
+ @Override
+ public void replaceMe(String d) {
+ immutableError();
+ }
+
+ @Override
+ public void replaceMe(boolean d) {
+ immutableError();
+ }
+
+ @Override
+ public void replaceMe(JsonValue value) {
+ immutableError();
+ }
+
+ private void immutableError() {
+ throw new UnsupportedOperationException("Immutable context");
+ }
+ }
+
+ public void accept(JsonValue node) {
+ accept(node, new ImmutableJsonContext(node));
+ }
+
+ /**
+ * Accept array or object type and visit its members.
+ */
+ public void accept(JsonValue node, JsonContext ctx) {
+ if (node == null) {
+ return;
+ }
+ ((JreJsonValue) node).traverse(this, ctx);
+ }
+
+ /**
+ * Called after every element of array has been visited.
+ */
+ public void endVisit(JsonArray array, JsonContext ctx) {
+ }
+
+ /**
+ * Called after every field of an object has been visited.
+ * @param object
+ * @param ctx
+ */
+ public void endVisit(JsonObject object, JsonContext ctx) {
+ }
+
+ /**
+ * Called for JS numbers present in a JSON object.
+ */
+ public void visit(double number, JsonContext ctx) {
+ }
+
+ /**
+ * Called for JS strings present in a JSON object.
+ */
+ public void visit(String string, JsonContext ctx) {
+ }
+
+ /**
+ * Called for JS boolean present in a JSON object.
+ */
+ public void visit(boolean bool, elemental.json.impl.JsonContext ctx) {
+ }
+
+ /**
+ * Called for JS arrays present in a JSON object. Return true if array
+ * elements should be visited.
+ * @param array a JS array
+ * @param ctx a context to replace or delete the array
+ * @return true if the array elements should be visited
+ */
+ public boolean visit(JsonArray array, JsonContext ctx) {
+ return true;
+ }
+
+ /**
+ * Called for JS objects present in a JSON object. Return true if object
+ * fields should be visited.
+ * @param object a Json object
+ * @param ctx a context to replace or delete the object
+ * @return true if object fields should be visited
+ */
+ public boolean visit(JsonObject object, JsonContext ctx) {
+ return true;
+ }
+
+ /**
+ * Return true if the value for a given array index should be visited.
+ * @param index an index in a JSON array
+ * @param ctx a context object used to delete or replace values
+ * @return true if the value associated with the index should be visited
+ */
+ public boolean visitIndex(int index, JsonContext ctx) {
+ return true;
+ }
+
+ /**
+ * Return true if the value for a given object key should be visited.
+ * @param key a key in a JSON object
+ * @param ctx a context object used to delete or replace values
+ * @return true if the value associated with the key should be visited
+ */
+ public boolean visitKey(String key, JsonContext ctx) {
+ return true;
+ }
+
+ /**
+ * Called for nulls present in a JSON object.
+ */
+ public void visitNull(JsonContext ctx) {
+ }
+}
diff --git a/elemental/src/elemental/ranges/Range.java b/elemental/src/elemental/ranges/Range.java
new file mode 100644
index 0000000..31f62cd
--- /dev/null
+++ b/elemental/src/elemental/ranges/Range.java
@@ -0,0 +1,251 @@
+/*
+ * 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 elemental.ranges;
+import elemental.dom.Node;
+import elemental.html.ClientRect;
+import elemental.html.ClientRectList;
+import elemental.dom.DocumentFragment;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ method of the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Document">Document</a></code>
+ 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>
+ method of the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Selection">Selection</a></code>
+ object.</p>
+ */
+public interface Range {
+
+ static final int END_TO_END = 2;
+
+ static final int END_TO_START = 3;
+
+ static final int NODE_AFTER = 1;
+
+ static final int NODE_BEFORE = 0;
+
+ static final int NODE_BEFORE_AND_AFTER = 2;
+
+ static final int NODE_INSIDE = 3;
+
+ static final int START_TO_END = 1;
+
+ static final int START_TO_START = 0;
+
+
+ /**
+ * Returns a <code>boolean</code> indicating whether the range's start and end points are at the same position.
+ */
+ boolean isCollapsed();
+
+
+ /**
+ * Returns the deepest <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Node">Node</a></code>
+ that contains the startContainer and endContainer Nodes.
+ */
+ Node getCommonAncestorContainer();
+
+
+ /**
+ * Returns the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Node">Node</a></code>
+ within which the Range ends.
+ */
+ Node getEndContainer();
+
+
+ /**
+ * Returns a number representing where in the endContainer the Range ends.
+ */
+ int getEndOffset();
+
+
+ /**
+ * Returns the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Node">Node</a></code>
+ within which the Range starts.
+ */
+ Node getStartContainer();
+
+
+ /**
+ * Returns a number representing where in the startContainer the Range starts.
+ */
+ int getStartOffset();
+
+
+ /**
+ * Returns a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/DocumentFragment">DocumentFragment</a></code>
+ copying the nodes of a Range.
+ */
+ DocumentFragment cloneContents();
+
+
+ /**
+ * Returns a Range object with boundary points identical to the cloned Range.
+ */
+ Range cloneRange();
+
+
+ /**
+ * Collapses the Range to one of its boundary points.
+ */
+ void collapse(boolean toStart);
+
+
+ /**
+ * 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.
+ */
+ short compareNode(Node refNode);
+
+
+ /**
+ * Returns -1, 0, or 1 indicating whether the point occurs before, inside, or after the range.
+ */
+ short comparePoint(Node refNode, int offset);
+
+
+ /**
+ * Returns a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/DocumentFragment">DocumentFragment</a></code>
+ created from a given string of code.
+ */
+ DocumentFragment createContextualFragment(String html);
+
+
+ /**
+ * Removes the contents of a Range from the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Document">Document</a></code>
+.
+ */
+ void deleteContents();
+
+
+ /**
+ * Releases Range from use to improve performance.
+ */
+ void detach();
+
+ void expand(String unit);
+
+
+ /**
+ * 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>
+.
+ */
+ DocumentFragment extractContents();
+
+
+ /**
+ * Returns a <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/ClientRect" class="new">ClientRect</a></code>
+ 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>
+.
+ */
+ ClientRect getBoundingClientRect();
+
+
+ /**
+ * 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>
+ objects that aggregates the results of <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Element.getClientRects">Element.getClientRects()</a></code>
+ for all the elements in the range.
+ */
+ ClientRectList getClientRects();
+
+
+ /**
+ * Insert a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Node">Node</a></code>
+ at the start of a Range.
+ */
+ void insertNode(Node newNode);
+
+
+ /**
+ * Returns a <code>boolean</code> indicating whether the given node intersects the range.
+ */
+ boolean intersectsNode(Node refNode);
+
+
+ /**
+ * Returns a <code>boolean</code> indicating whether the given point is in the range.
+ */
+ boolean isPointInRange(Node refNode, int offset);
+
+
+ /**
+ * Sets the Range to contain the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Node">Node</a></code>
+ and its contents.
+ */
+ void selectNode(Node refNode);
+
+
+ /**
+ * Sets the Range to contain the contents of a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Node">Node</a></code>
+.
+ */
+ void selectNodeContents(Node refNode);
+
+
+ /**
+ * Sets the end position of a Range.
+ */
+ void setEnd(Node refNode, int offset);
+
+
+ /**
+ * 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>
+.
+ */
+ void setEndAfter(Node refNode);
+
+
+ /**
+ * 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>
+.
+ */
+ void setEndBefore(Node refNode);
+
+
+ /**
+ * Sets the start position of a Range.
+ */
+ void setStart(Node refNode, int offset);
+
+
+ /**
+ * 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>
+.
+ */
+ void setStartAfter(Node refNode);
+
+
+ /**
+ * 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>
+.
+ */
+ void setStartBefore(Node refNode);
+
+
+ /**
+ * Moves content of a Range into a new <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Node">Node</a></code>
+.
+ */
+ void surroundContents(Node newParent);
+}
diff --git a/elemental/src/elemental/ranges/RangeException.java b/elemental/src/elemental/ranges/RangeException.java
new file mode 100644
index 0000000..73bdddc
--- /dev/null
+++ b/elemental/src/elemental/ranges/RangeException.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.ranges;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface RangeException {
+
+ static final int BAD_BOUNDARYPOINTS_ERR = 1;
+
+ static final int INVALID_NODE_TYPE_ERR = 2;
+
+ int getCode();
+
+ String getMessage();
+
+ String getName();
+}
diff --git a/elemental/src/elemental/stylesheets/MediaList.java b/elemental/src/elemental/stylesheets/MediaList.java
new file mode 100644
index 0000000..57b179e
--- /dev/null
+++ b/elemental/src/elemental/stylesheets/MediaList.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.stylesheets;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface MediaList extends Indexable {
+
+ int getLength();
+
+ String getMediaText();
+
+ void setMediaText(String arg);
+
+ void appendMedium(String newMedium);
+
+ void deleteMedium(String oldMedium);
+
+ String item(int index);
+}
diff --git a/elemental/src/elemental/stylesheets/StyleSheet.java b/elemental/src/elemental/stylesheets/StyleSheet.java
new file mode 100644
index 0000000..82cabf9
--- /dev/null
+++ b/elemental/src/elemental/stylesheets/StyleSheet.java
@@ -0,0 +1,76 @@
+/*
+ * 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 elemental.stylesheets;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface StyleSheet {
+
+
+ /**
+ * This property indicates whether the current stylesheet has been applied or not.
+ */
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * Returns the location of the stylesheet.
+ */
+ String getHref();
+
+
+ /**
+ * Specifies the intended destination medium for style information.
+ */
+ MediaList getMedia();
+
+
+ /**
+ * Returns the node that associates this style sheet with the document.
+ */
+ Node getOwnerNode();
+
+
+ /**
+ * Returns the stylesheet that is including this one, if any.
+ */
+ StyleSheet getParentStyleSheet();
+
+
+ /**
+ * Returns the advisory title of the current style sheet.
+ */
+ String getTitle();
+
+
+ /**
+ * Specifies the style sheet language for this style sheet.
+ */
+ String getType();
+}
diff --git a/elemental/src/elemental/stylesheets/StyleSheetList.java b/elemental/src/elemental/stylesheets/StyleSheetList.java
new file mode 100644
index 0000000..cf6c2bf
--- /dev/null
+++ b/elemental/src/elemental/stylesheets/StyleSheetList.java
@@ -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 elemental.stylesheets;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface StyleSheetList extends Indexable {
+
+ int getLength();
+
+ StyleSheet item(int index);
+}
diff --git a/elemental/src/elemental/super/elemental/json/Json.java b/elemental/src/elemental/super/elemental/json/Json.java
new file mode 100644
index 0000000..8891146
--- /dev/null
+++ b/elemental/src/elemental/super/elemental/json/Json.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.GwtScriptOnly;
+import elemental.js.json.JsJsonFactory;
+import elemental.json.impl.JreJsonFactory;
+
+/**
+ * Vends out implementation of JsonFactory.
+ */
+@GwtScriptOnly
+public class Json {
+
+ public static JsonString create(String string) {
+ return instance().create(string);
+ }
+
+ public static JsonBoolean create(boolean bool) {
+ return instance().create(bool);
+ }
+
+ public static JsonArray createArray() {
+ return instance().createArray();
+ }
+
+ public static JsonNull createNull() {
+ return instance().createNull();
+ }
+
+ public static JsonNumber create(double number) {
+ return instance().create(number);
+ }
+
+ public static JsonObject createObject() {
+ return instance().createObject();
+ }
+
+ public static JsonFactory instance() {
+ assert GWT.isScript() : "Super-sourced Json class ran in DevMode";
+ return new JsJsonFactory();
+ }
+
+ public static JsonObject parse(String jsonString) {
+ return instance().parse(jsonString);
+ }
+}
diff --git a/elemental/src/elemental/super/elemental/json/impl/JreJsonValue.java b/elemental/src/elemental/super/elemental/json/impl/JreJsonValue.java
new file mode 100644
index 0000000..c0402a9
--- /dev/null
+++ b/elemental/src/elemental/super/elemental/json/impl/JreJsonValue.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2011 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 elemental.json.impl;
+
+import com.google.gwt.core.client.JsonUtils;
+
+import elemental.json.JsonValue;
+
+/**
+ * Client-side Dev-Mode implementation of JreJsonValue.
+ */
+public abstract class JreJsonValue implements JsonValue {
+ public abstract Object getObject();
+ public abstract void traverse(JsonVisitor visitor, JsonContext ctx);
+
+ @Override
+ public Object toNative() {
+ // use browser JS parser, returns JSO
+ return JsonUtils.safeEval(((JsonValue) this).toJson());
+ }
+}
diff --git a/elemental/src/elemental/super/elemental/util/Collections.java b/elemental/src/elemental/super/elemental/util/Collections.java
new file mode 100644
index 0000000..0a575b1
--- /dev/null
+++ b/elemental/src/elemental/super/elemental/util/Collections.java
@@ -0,0 +1,173 @@
+/*
+ * Copyright 2011 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 elemental.util;
+
+import com.google.gwt.core.client.GwtScriptOnly;
+
+import elemental.js.util.JsArrayOf;
+import elemental.js.util.JsArrayOfBoolean;
+import elemental.js.util.JsArrayOfInt;
+import elemental.js.util.JsArrayOfNumber;
+import elemental.js.util.JsArrayOfString;
+import elemental.js.util.JsMapFromIntTo;
+import elemental.js.util.JsMapFromIntToString;
+import elemental.js.util.JsMapFromStringTo;
+import elemental.js.util.JsMapFromStringToBoolean;
+import elemental.js.util.JsMapFromStringToInt;
+import elemental.js.util.JsMapFromStringToNumber;
+import elemental.js.util.JsMapFromStringToString;
+import elemental.util.impl.JreArrayOf;
+import elemental.util.impl.JreArrayOfBoolean;
+import elemental.util.impl.JreArrayOfInt;
+import elemental.util.impl.JreArrayOfNumber;
+import elemental.util.impl.JreArrayOfString;
+import elemental.util.impl.JreMapFromIntTo;
+import elemental.util.impl.JreMapFromIntToString;
+import elemental.util.impl.JreMapFromStringTo;
+import elemental.util.impl.JreMapFromStringToBoolean;
+import elemental.util.impl.JreMapFromStringToInt;
+import elemental.util.impl.JreMapFromStringToNumber;
+import elemental.util.impl.JreMapFromStringToString;
+
+/**
+ * Factory and utility methods for elemental collections.
+ */
+@GwtScriptOnly
+public class Collections {
+
+ /**
+ * Create an ArrayOf collection using the most efficient implementation strategy for the given
+ * client.
+ *
+ * @param <T> the element type contained in the collection
+ * @return a JreArrayOf or JsArrayOf instance
+ */
+ public static <T> ArrayOf<T> arrayOf() {
+ return JsArrayOf.<T>create();
+ }
+
+ /**
+ * Create an ArrayOfBoolean collection using the most efficient implementation strategy for the
+ * given client.
+ *
+ * @return a JreArrayOfBoolean or JsArrayOfBoolean instance
+ */
+ public static <T> ArrayOfBoolean arrayOfBoolean() {
+ return JsArrayOfBoolean.create();
+ }
+
+ /**
+ * Create an ArrayOfInt collection using the most efficient implementation strategy for the given
+ * client.
+ *
+ * @return a JreArrayOfInt or JsArrayOfInt instance
+ */
+ public static <T> ArrayOfInt arrayOfInt() {
+ return JsArrayOfInt.create();
+ }
+
+ /**
+ * Create an ArrayOfNumber collection using the most efficient implementation strategy for the
+ * given client.
+ *
+ * @return a JreArrayOfNumber or JsArrayOfNumber instance
+ */
+ public static <T> ArrayOfNumber arrayOfNumber() {
+ return JsArrayOfNumber.create();
+ }
+
+ /**
+ * Create an ArrayOfString collection using the most efficient implementation strategy for the
+ * given client.
+ *
+ * @return a JreArrayOfString or JsArrayOfString instance
+ */
+ public static <T> ArrayOfString arrayOfString() {
+ return JsArrayOfString.create();
+ }
+
+ /**
+ * Create a MapFromIntTo collection for a given type using the most efficient implementation
+ * strategy for the given client.
+ *
+ * @param <T> the element type contained in the collection
+ * @return a JreMapFromIntTo or JsMapFromIntTo instance
+ */
+ public static <T> MapFromIntTo<T> mapFromIntTo() {
+ return JsMapFromIntTo.<T>create();
+ }
+
+ /**
+ * Create a MapFromIntToString collection for a given type using the most efficient implementation
+ * strategy for the given client.
+ *
+ * @return a JreMapFromIntToString or JsMapFromIntToString instance
+ */
+ public static MapFromIntToString mapFromIntToString() {
+ return JsMapFromIntToString.create();
+ }
+
+ /**
+ * Create a MapFromStringTo collection for a given type using the most efficient implementation
+ * strategy for the given client.
+ *
+ * @param <T> the element type contained in the collection
+ * @return a JreMapFromStringTo or JsMapFromStringTo instance
+ */
+ public static <T> MapFromStringTo<T> mapFromStringTo() {
+ return JsMapFromStringTo.<T>create();
+ }
+
+ /**
+ * Create a MapFromStringToBoolean collection for a given type using the most efficient
+ * implementation strategy for the given client.
+ *
+ * @return a JreMapFromStringToBoolean or JsMapFromStringToBoolean instance
+ */
+ public static MapFromStringToBoolean mapFromStringToBoolean() {
+ return JsMapFromStringToBoolean.create();
+ }
+
+ /**
+ * Create a MapFromStringToInt collection for a given type using the most efficient implementation
+ * strategy for the given client.
+ *
+ * @return a JreMapFromStringToInt or JsMapFromStringToInt instance
+ */
+ public static MapFromStringToInt mapFromStringToInt() {
+ return JsMapFromStringToInt.create();
+ }
+
+ /**
+ * Create a MapFromStringToNumber collection for a given type using the most efficient
+ * implementation strategy for the given client.
+ *
+ * @return a JreMapFromStringToNumber or JsMapFromStringToNumber instance
+ */
+ public static MapFromStringToNumber mapFromStringToNumber() {
+ return JsMapFromStringToNumber.create();
+ }
+
+ /**
+ * Create a MapFromStringToString collection for a given type using the most efficient
+ * implementation strategy for the given client.
+ *
+ * @return a JreMapFromStringToString or JsMapFromStringToString instance
+ */
+ public static MapFromStringToString mapFromStringToString() {
+ return JsMapFromStringToString.create();
+ }
+}
diff --git a/elemental/src/elemental/svg/ElementTimeControl.java b/elemental/src/elemental/svg/ElementTimeControl.java
new file mode 100644
index 0000000..03fd942
--- /dev/null
+++ b/elemental/src/elemental/svg/ElementTimeControl.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface ElementTimeControl {
+
+ void beginElement();
+
+ void beginElementAt(float offset);
+
+ void endElement();
+
+ void endElementAt(float offset);
+}
diff --git a/elemental/src/elemental/svg/SVGAElement.java b/elemental/src/elemental/svg/SVGAElement.java
new file mode 100644
index 0000000..bf1a7c7
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGAElement extends SVGElement, SVGURIReference, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedString getTarget();
+}
diff --git a/elemental/src/elemental/svg/SVGAltGlyphDefElement.java b/elemental/src/elemental/svg/SVGAltGlyphDefElement.java
new file mode 100644
index 0000000..cb1f975
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAltGlyphDefElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>altGlyphDef</code> element defines a substitution representation for glyphs.
+ */
+public interface SVGAltGlyphDefElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGAltGlyphElement.java b/elemental/src/elemental/svg/SVGAltGlyphElement.java
new file mode 100644
index 0000000..3b2daa5
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAltGlyphElement.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>altGlyph</code> element allows sophisticated selection of the glyphs used to render its child character data.
+ */
+public interface SVGAltGlyphElement extends SVGTextPositioningElement, SVGURIReference {
+
+ String getFormat();
+
+ void setFormat(String arg);
+
+ String getGlyphRef();
+
+ void setGlyphRef(String arg);
+}
diff --git a/elemental/src/elemental/svg/SVGAltGlyphItemElement.java b/elemental/src/elemental/svg/SVGAltGlyphItemElement.java
new file mode 100644
index 0000000..f5cbf36
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAltGlyphItemElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ element.
+ */
+public interface SVGAltGlyphItemElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGAngle.java b/elemental/src/elemental/svg/SVGAngle.java
new file mode 100644
index 0000000..4dd1c9e
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAngle.java
@@ -0,0 +1,110 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface SVGAngle {
+
+ /**
+ * The unit type was explicitly set to degrees.
+ */
+
+ static final int SVG_ANGLETYPE_DEG = 2;
+
+ /**
+ * The unit type is gradians.
+ */
+
+ static final int SVG_ANGLETYPE_GRAD = 4;
+
+ /**
+ * The unit type is radians.
+ */
+
+ static final int SVG_ANGLETYPE_RAD = 3;
+
+ /**
+ * 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.
+ */
+
+ static final int SVG_ANGLETYPE_UNKNOWN = 0;
+
+ /**
+ * 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.
+ */
+
+ static final int SVG_ANGLETYPE_UNSPECIFIED = 1;
+
+
+ /**
+ * The type of the value as specified by one of the SVG_ANGLETYPE_* constants defined on this interface.
+ */
+ int getUnitType();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ float getValue();
+
+ void setValue(float arg);
+
+
+ /**
+ * <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>
+ 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>
+ 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>
+ */
+ String getValueAsString();
+
+ void setValueAsString(String arg);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ float getValueInSpecifiedUnits();
+
+ void setValueInSpecifiedUnits(float arg);
+
+
+ /**
+ * 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.
+ */
+ void convertToSpecifiedUnits(int unitType);
+
+
+ /**
+ * <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>
+ 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>
+ 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>
+ */
+ void newValueSpecifiedUnits(int unitType, float valueInSpecifiedUnits);
+}
diff --git a/elemental/src/elemental/svg/SVGAnimateColorElement.java b/elemental/src/elemental/svg/SVGAnimateColorElement.java
new file mode 100644
index 0000000..921ccb1
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimateColorElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGAnimateColorElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/animateColor"><animateColor></a></code>
+ element.
+ */
+public interface SVGAnimateColorElement extends SVGAnimationElement {
+}
diff --git a/elemental/src/elemental/svg/SVGAnimateElement.java b/elemental/src/elemental/svg/SVGAnimateElement.java
new file mode 100644
index 0000000..403c548
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimateElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGAnimateElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/animate"><animate></a></code>
+ element.
+ */
+public interface SVGAnimateElement extends SVGAnimationElement {
+}
diff --git a/elemental/src/elemental/svg/SVGAnimateMotionElement.java b/elemental/src/elemental/svg/SVGAnimateMotionElement.java
new file mode 100644
index 0000000..6cdc6d5
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimateMotionElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGAnimateMotionElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/animateMotion"><animateMotion></a></code>
+ element.
+ */
+public interface SVGAnimateMotionElement extends SVGAnimationElement {
+}
diff --git a/elemental/src/elemental/svg/SVGAnimateTransformElement.java b/elemental/src/elemental/svg/SVGAnimateTransformElement.java
new file mode 100644
index 0000000..70ea4aa
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimateTransformElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGAnimateTransformElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/animateTransform"><animateTransform></a></code>
+ element.
+ */
+public interface SVGAnimateTransformElement extends SVGAnimationElement {
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedAngle.java b/elemental/src/elemental/svg/SVGAnimatedAngle.java
new file mode 100644
index 0000000..6970412
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedAngle.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface SVGAnimatedAngle {
+
+
+ /**
+ * A read only <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGAngle">SVGAngle</a></code>
+ 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>
+ 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.
+ */
+ SVGAngle getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ SVGAngle getBaseVal();
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedBoolean.java b/elemental/src/elemental/svg/SVGAnimatedBoolean.java
new file mode 100644
index 0000000..d73f01d
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedBoolean.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGAnimatedBoolean</code> interface is used for attributes of type boolean which can be animated.
+ */
+public interface SVGAnimatedBoolean {
+
+
+ /**
+ * 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>.
+ */
+ boolean isAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ boolean isBaseVal();
+
+ void setBaseVal(boolean arg);
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedEnumeration.java b/elemental/src/elemental/svg/SVGAnimatedEnumeration.java
new file mode 100644
index 0000000..7a40de8
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedEnumeration.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGAnimatedEnumeration</code> interface is used for attributes whose value must be a constant from a particular enumeration and which can be animated.
+ */
+public interface SVGAnimatedEnumeration {
+
+
+ /**
+ * 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>.
+ */
+ int getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ int getBaseVal();
+
+ void setBaseVal(int arg);
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedInteger.java b/elemental/src/elemental/svg/SVGAnimatedInteger.java
new file mode 100644
index 0000000..568e8a4
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedInteger.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface SVGAnimatedInteger {
+
+
+ /**
+ * 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>.
+ */
+ int getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ int getBaseVal();
+
+ void setBaseVal(int arg);
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedLength.java b/elemental/src/elemental/svg/SVGAnimatedLength.java
new file mode 100644
index 0000000..4eb331d
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedLength.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface SVGAnimatedLength {
+
+
+ /**
+ * 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>.
+ */
+ SVGLength getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ SVGLength getBaseVal();
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedLengthList.java b/elemental/src/elemental/svg/SVGAnimatedLengthList.java
new file mode 100644
index 0000000..eb5c40d
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedLengthList.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ which can be animated.
+ */
+public interface SVGAnimatedLengthList {
+
+
+ /**
+ * A read only <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGLengthList">SVGLengthList</a></code>
+ 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>
+ 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.
+ */
+ SVGLengthList getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ SVGLengthList getBaseVal();
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedNumber.java b/elemental/src/elemental/svg/SVGAnimatedNumber.java
new file mode 100644
index 0000000..deca205
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedNumber.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface SVGAnimatedNumber {
+
+
+ /**
+ * 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>.
+ */
+ float getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ float getBaseVal();
+
+ void setBaseVal(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedNumberList.java b/elemental/src/elemental/svg/SVGAnimatedNumberList.java
new file mode 100644
index 0000000..1aa968e
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedNumberList.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGAnimatedNumber</code> interface is used for attributes which take a list of numbers and which can be animated.
+ */
+public interface SVGAnimatedNumberList {
+
+
+ /**
+ * A read only <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGNumberList">SVGNumberList</a></code>
+ 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>
+ 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.
+ */
+ SVGNumberList getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ SVGNumberList getBaseVal();
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedPreserveAspectRatio.java b/elemental/src/elemental/svg/SVGAnimatedPreserveAspectRatio.java
new file mode 100644
index 0000000..bc064e3
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedPreserveAspectRatio.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ which can be animated.
+ */
+public interface SVGAnimatedPreserveAspectRatio {
+
+
+ /**
+ * A read only <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGPreserveAspectRatio">SVGPreserveAspectRatio</a></code>
+ 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>
+ 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.
+ */
+ SVGPreserveAspectRatio getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ SVGPreserveAspectRatio getBaseVal();
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedRect.java b/elemental/src/elemental/svg/SVGAnimatedRect.java
new file mode 100644
index 0000000..35e9781
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedRect.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ which can be animated.
+ */
+public interface SVGAnimatedRect {
+
+
+ /**
+ * A read only <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGRect">SVGRect</a></code>
+ 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>
+ 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.
+ */
+ SVGRect getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ SVGRect getBaseVal();
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedString.java b/elemental/src/elemental/svg/SVGAnimatedString.java
new file mode 100644
index 0000000..76aad0e
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedString.java
@@ -0,0 +1,46 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ which can be animated.
+ */
+public interface SVGAnimatedString {
+
+
+ /**
+ * 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>.
+ */
+ String getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ String getBaseVal();
+
+ void setBaseVal(String arg);
+}
diff --git a/elemental/src/elemental/svg/SVGAnimatedTransformList.java b/elemental/src/elemental/svg/SVGAnimatedTransformList.java
new file mode 100644
index 0000000..209d40d
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimatedTransformList.java
@@ -0,0 +1,45 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGAnimatedTransformList</code> interface is used for attributes which take a list of numbers and which can be animated.
+ */
+public interface SVGAnimatedTransformList {
+
+
+ /**
+ * A read only <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGTransformList">SVGTransformList</a></code>
+ 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>
+ 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.
+ */
+ SVGTransformList getAnimVal();
+
+
+ /**
+ * The base value of the given attribute before applying any animations.
+ */
+ SVGTransformList getBaseVal();
+}
diff --git a/elemental/src/elemental/svg/SVGAnimationElement.java b/elemental/src/elemental/svg/SVGAnimationElement.java
new file mode 100644
index 0000000..915c17f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGAnimationElement.java
@@ -0,0 +1,62 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGSetElement">SVGSetElement</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGAnimateColorElement">SVGAnimateColorElement</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGAnimateMotionElement">SVGAnimateMotionElement</a></code>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGAnimateTransformElement">SVGAnimateTransformElement</a></code>
+.
+ */
+public interface SVGAnimationElement extends SVGElement, SVGTests, SVGExternalResourcesRequired, ElementTimeControl {
+
+
+ /**
+ * The element which is being animated.
+ */
+ SVGElement getTargetElement();
+
+
+ /**
+ * Returns the current time in seconds relative to time zero for the given time container.
+ */
+ float getCurrentTime();
+
+
+ /**
+ * 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>
+ with code NOT_SUPPORTED_ERR is raised.
+ */
+ float getSimpleDuration();
+
+
+ /**
+ * 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>
+ with code INVALID_STATE_ERR is thrown.
+ */
+ float getStartTime();
+}
diff --git a/elemental/src/elemental/svg/SVGCircleElement.java b/elemental/src/elemental/svg/SVGCircleElement.java
new file mode 100644
index 0000000..0745ff2
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGCircleElement.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGCircleElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getCx();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getCy();
+
+ SVGAnimatedLength getR();
+}
diff --git a/elemental/src/elemental/svg/SVGClipPathElement.java b/elemental/src/elemental/svg/SVGClipPathElement.java
new file mode 100644
index 0000000..811568d
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGClipPathElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGClipPathElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ 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>
+ */
+ SVGAnimatedEnumeration getClipPathUnits();
+}
diff --git a/elemental/src/elemental/svg/SVGColor.java b/elemental/src/elemental/svg/SVGColor.java
new file mode 100644
index 0000000..64f84a8
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGColor.java
@@ -0,0 +1,53 @@
+/*
+ * 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 elemental.svg;
+import elemental.css.RGBColor;
+import elemental.css.CSSValue;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>This page explains more about how you can specify color in CSS.
+</p><p>In your sample stylesheet, you introduce background colors.
+</p>
+ */
+public interface SVGColor extends CSSValue {
+
+ static final int SVG_COLORTYPE_CURRENTCOLOR = 3;
+
+ static final int SVG_COLORTYPE_RGBCOLOR = 1;
+
+ static final int SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2;
+
+ static final int SVG_COLORTYPE_UNKNOWN = 0;
+
+ int getColorType();
+
+ RGBColor getRgbColor();
+
+ void setColor(int colorType, String rgbColor, String iccColor);
+
+ void setRGBColor(String rgbColor);
+
+ void setRGBColorICCColor(String rgbColor, String iccColor);
+}
diff --git a/elemental/src/elemental/svg/SVGComponentTransferFunctionElement.java b/elemental/src/elemental/svg/SVGComponentTransferFunctionElement.java
new file mode 100644
index 0000000..8b49fe8
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGComponentTransferFunctionElement.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGComponentTransferFunctionElement extends SVGElement {
+
+ static final int SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3;
+
+ static final int SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5;
+
+ static final int SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;
+
+ static final int SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4;
+
+ static final int SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2;
+
+ static final int SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0;
+
+ SVGAnimatedNumber getAmplitude();
+
+ SVGAnimatedNumber getExponent();
+
+ SVGAnimatedNumber getIntercept();
+
+ SVGAnimatedNumber getOffset();
+
+ SVGAnimatedNumber getSlope();
+
+ SVGAnimatedNumberList getTableValues();
+
+ SVGAnimatedEnumeration getType();
+}
diff --git a/elemental/src/elemental/svg/SVGCursorElement.java b/elemental/src/elemental/svg/SVGCursorElement.java
new file mode 100644
index 0000000..62933fc
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGCursorElement.java
@@ -0,0 +1,36 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGCursorElement extends SVGElement, SVGURIReference, SVGTests, SVGExternalResourcesRequired {
+
+ SVGAnimatedLength getX();
+
+ SVGAnimatedLength getY();
+}
diff --git a/elemental/src/elemental/svg/SVGDefsElement.java b/elemental/src/elemental/svg/SVGDefsElement.java
new file mode 100644
index 0000000..a9485f7
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGDefsElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGDefsElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/defs"><defs></a></code>
+ element.
+ */
+public interface SVGDefsElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+}
diff --git a/elemental/src/elemental/svg/SVGDescElement.java b/elemental/src/elemental/svg/SVGDescElement.java
new file mode 100644
index 0000000..154fe30
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGDescElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGDescElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/desc"><desc></a></code>
+ element.
+ */
+public interface SVGDescElement extends SVGElement, SVGLangSpace, SVGStylable {
+}
diff --git a/elemental/src/elemental/svg/SVGDocument.java b/elemental/src/elemental/svg/SVGDocument.java
new file mode 100644
index 0000000..7b3af59
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGDocument.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.svg;
+import elemental.dom.Document;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGDocument extends Document {
+
+ SVGSVGElement getRootElement();
+
+ Event createEvent(String eventType);
+}
diff --git a/elemental/src/elemental/svg/SVGElement.java b/elemental/src/elemental/svg/SVGElement.java
new file mode 100644
index 0000000..9a0a1bd
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGElement.java
@@ -0,0 +1,64 @@
+/*
+ * 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 elemental.svg;
+import elemental.dom.Element;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * All of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the <code>SVGElement</code> interface.
+ */
+public interface SVGElement extends Element {
+
+
+ /**
+ * The value of the
+<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.
+ */
+ String getId();
+
+ void setId(String arg);
+
+
+ /**
+ * The nearest ancestor <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/svg"><svg></a></code>
+ element. <code>Null</code> if the given element is the outermost svg element.
+ */
+ SVGSVGElement getOwnerSVGElement();
+
+
+ /**
+ * 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>
+ element. <code>Null</code> if the given element is the outermost svg element.
+ */
+ SVGElement getViewportElement();
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/xml%3Abase" class="new">xml:base</a></code> on the given element.
+ */
+ String getXmlbase();
+
+ void setXmlbase(String arg);
+}
diff --git a/elemental/src/elemental/svg/SVGElementInstance.java b/elemental/src/elemental/svg/SVGElementInstance.java
new file mode 100644
index 0000000..ddc6e46
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGElementInstance.java
@@ -0,0 +1,219 @@
+/*
+ * 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 elemental.svg;
+import elemental.events.EventListener;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGElementInstance {
+
+ SVGElementInstanceList getChildNodes();
+
+ SVGElement getCorrespondingElement();
+
+ SVGUseElement getCorrespondingUseElement();
+
+ SVGElementInstance getFirstChild();
+
+ SVGElementInstance getLastChild();
+
+ SVGElementInstance getNextSibling();
+
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+ EventListener getOnbeforecopy();
+
+ void setOnbeforecopy(EventListener arg);
+
+ EventListener getOnbeforecut();
+
+ void setOnbeforecut(EventListener arg);
+
+ EventListener getOnbeforepaste();
+
+ void setOnbeforepaste(EventListener arg);
+
+ EventListener getOnblur();
+
+ void setOnblur(EventListener arg);
+
+ EventListener getOnchange();
+
+ void setOnchange(EventListener arg);
+
+ EventListener getOnclick();
+
+ void setOnclick(EventListener arg);
+
+ EventListener getOncontextmenu();
+
+ void setOncontextmenu(EventListener arg);
+
+ EventListener getOncopy();
+
+ void setOncopy(EventListener arg);
+
+ EventListener getOncut();
+
+ void setOncut(EventListener arg);
+
+ EventListener getOndblclick();
+
+ void setOndblclick(EventListener arg);
+
+ EventListener getOndrag();
+
+ void setOndrag(EventListener arg);
+
+ EventListener getOndragend();
+
+ void setOndragend(EventListener arg);
+
+ EventListener getOndragenter();
+
+ void setOndragenter(EventListener arg);
+
+ EventListener getOndragleave();
+
+ void setOndragleave(EventListener arg);
+
+ EventListener getOndragover();
+
+ void setOndragover(EventListener arg);
+
+ EventListener getOndragstart();
+
+ void setOndragstart(EventListener arg);
+
+ EventListener getOndrop();
+
+ void setOndrop(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnfocus();
+
+ void setOnfocus(EventListener arg);
+
+ EventListener getOninput();
+
+ void setOninput(EventListener arg);
+
+ EventListener getOnkeydown();
+
+ void setOnkeydown(EventListener arg);
+
+ EventListener getOnkeypress();
+
+ void setOnkeypress(EventListener arg);
+
+ EventListener getOnkeyup();
+
+ void setOnkeyup(EventListener arg);
+
+ EventListener getOnload();
+
+ void setOnload(EventListener arg);
+
+ EventListener getOnmousedown();
+
+ void setOnmousedown(EventListener arg);
+
+ EventListener getOnmousemove();
+
+ void setOnmousemove(EventListener arg);
+
+ EventListener getOnmouseout();
+
+ void setOnmouseout(EventListener arg);
+
+ EventListener getOnmouseover();
+
+ void setOnmouseover(EventListener arg);
+
+ EventListener getOnmouseup();
+
+ void setOnmouseup(EventListener arg);
+
+ EventListener getOnmousewheel();
+
+ void setOnmousewheel(EventListener arg);
+
+ EventListener getOnpaste();
+
+ void setOnpaste(EventListener arg);
+
+ EventListener getOnreset();
+
+ void setOnreset(EventListener arg);
+
+ EventListener getOnresize();
+
+ void setOnresize(EventListener arg);
+
+ EventListener getOnscroll();
+
+ void setOnscroll(EventListener arg);
+
+ EventListener getOnsearch();
+
+ void setOnsearch(EventListener arg);
+
+ EventListener getOnselect();
+
+ void setOnselect(EventListener arg);
+
+ EventListener getOnselectstart();
+
+ void setOnselectstart(EventListener arg);
+
+ EventListener getOnsubmit();
+
+ void setOnsubmit(EventListener arg);
+
+ EventListener getOnunload();
+
+ void setOnunload(EventListener arg);
+
+ SVGElementInstance getParentNode();
+
+ SVGElementInstance getPreviousSibling();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event event);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/svg/SVGElementInstanceList.java b/elemental/src/elemental/svg/SVGElementInstanceList.java
new file mode 100644
index 0000000..27207ae
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGElementInstanceList.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGElementInstanceList {
+
+ int getLength();
+
+ SVGElementInstance item(int index);
+}
diff --git a/elemental/src/elemental/svg/SVGEllipseElement.java b/elemental/src/elemental/svg/SVGEllipseElement.java
new file mode 100644
index 0000000..0444b7f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGEllipseElement.java
@@ -0,0 +1,64 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGEllipseElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getCx();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getCy();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getRx();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getRy();
+}
diff --git a/elemental/src/elemental/svg/SVGException.java b/elemental/src/elemental/svg/SVGException.java
new file mode 100644
index 0000000..2783495
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGException.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGException {
+
+ static final int SVG_INVALID_VALUE_ERR = 1;
+
+ static final int SVG_MATRIX_NOT_INVERTABLE = 2;
+
+ static final int SVG_WRONG_TYPE_ERR = 0;
+
+ int getCode();
+
+ String getMessage();
+
+ String getName();
+}
diff --git a/elemental/src/elemental/svg/SVGExternalResourcesRequired.java b/elemental/src/elemental/svg/SVGExternalResourcesRequired.java
new file mode 100644
index 0000000..f9bcd29
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGExternalResourcesRequired.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGExternalResourcesRequired {
+
+ SVGAnimatedBoolean getExternalResourcesRequired();
+}
diff --git a/elemental/src/elemental/svg/SVGFEBlendElement.java b/elemental/src/elemental/svg/SVGFEBlendElement.java
new file mode 100644
index 0000000..8d31571
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEBlendElement.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/mode" class="new">mode</a></code> attribute.
+ */
+public interface SVGFEBlendElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ static final int SVG_FEBLEND_MODE_DARKEN = 4;
+
+ static final int SVG_FEBLEND_MODE_LIGHTEN = 5;
+
+ static final int SVG_FEBLEND_MODE_MULTIPLY = 2;
+
+ static final int SVG_FEBLEND_MODE_NORMAL = 1;
+
+ static final int SVG_FEBLEND_MODE_SCREEN = 3;
+
+ static final int SVG_FEBLEND_MODE_UNKNOWN = 0;
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedString getIn2();
+
+ SVGAnimatedEnumeration getMode();
+}
diff --git a/elemental/src/elemental/svg/SVGFEColorMatrixElement.java b/elemental/src/elemental/svg/SVGFEColorMatrixElement.java
new file mode 100644
index 0000000..95f9a89
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEColorMatrixElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface SVGFEColorMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ static final int SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
+
+ static final int SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
+
+ static final int SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
+
+ static final int SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
+
+ static final int SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedEnumeration getType();
+
+ SVGAnimatedNumberList getValues();
+}
diff --git a/elemental/src/elemental/svg/SVGFEComponentTransferElement.java b/elemental/src/elemental/svg/SVGFEComponentTransferElement.java
new file mode 100644
index 0000000..e0560ac
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEComponentTransferElement.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/feFuncB"><feFuncB></a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/feFuncG"><feFuncG></a></code>
+, and <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/feFuncA"><feFuncA></a></code>
+ return.
+ */
+public interface SVGFEComponentTransferElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ SVGAnimatedString getIn1();
+}
diff --git a/elemental/src/elemental/svg/SVGFECompositeElement.java b/elemental/src/elemental/svg/SVGFECompositeElement.java
new file mode 100644
index 0000000..33525ff
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFECompositeElement.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>Two input images are joined by means of an
+<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>
+<pre>result = k1*in1*in2 + k2*in1 + k3*in2 + k4</pre>
+ */
+public interface SVGFECompositeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ static final int SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
+
+ static final int SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
+
+ static final int SVG_FECOMPOSITE_OPERATOR_IN = 2;
+
+ static final int SVG_FECOMPOSITE_OPERATOR_OUT = 3;
+
+ static final int SVG_FECOMPOSITE_OPERATOR_OVER = 1;
+
+ static final int SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
+
+ static final int SVG_FECOMPOSITE_OPERATOR_XOR = 5;
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedString getIn2();
+
+ SVGAnimatedNumber getK1();
+
+ SVGAnimatedNumber getK2();
+
+ SVGAnimatedNumber getK3();
+
+ SVGAnimatedNumber getK4();
+
+ SVGAnimatedEnumeration getOperator();
+}
diff --git a/elemental/src/elemental/svg/SVGFEConvolveMatrixElement.java b/elemental/src/elemental/svg/SVGFEConvolveMatrixElement.java
new file mode 100644
index 0000000..bb9602b
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEConvolveMatrixElement.java
@@ -0,0 +1,63 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The filter modifies a pixel by means of a convolution matrix, that also takes neighboring pixels into account.
+ */
+public interface SVGFEConvolveMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ static final int SVG_EDGEMODE_DUPLICATE = 1;
+
+ static final int SVG_EDGEMODE_NONE = 3;
+
+ static final int SVG_EDGEMODE_UNKNOWN = 0;
+
+ static final int SVG_EDGEMODE_WRAP = 2;
+
+ SVGAnimatedNumber getBias();
+
+ SVGAnimatedNumber getDivisor();
+
+ SVGAnimatedEnumeration getEdgeMode();
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedNumberList getKernelMatrix();
+
+ SVGAnimatedNumber getKernelUnitLengthX();
+
+ SVGAnimatedNumber getKernelUnitLengthY();
+
+ SVGAnimatedInteger getOrderX();
+
+ SVGAnimatedInteger getOrderY();
+
+ SVGAnimatedBoolean getPreserveAlpha();
+
+ SVGAnimatedInteger getTargetX();
+
+ SVGAnimatedInteger getTargetY();
+}
diff --git a/elemental/src/elemental/svg/SVGFEDiffuseLightingElement.java b/elemental/src/elemental/svg/SVGFEDiffuseLightingElement.java
new file mode 100644
index 0000000..9aca298
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEDiffuseLightingElement.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * This filter takes in a light source and applies it to an image, using the alpha channel as a bump map.
+ */
+public interface SVGFEDiffuseLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ SVGAnimatedNumber getDiffuseConstant();
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedNumber getKernelUnitLengthX();
+
+ SVGAnimatedNumber getKernelUnitLengthY();
+
+ SVGAnimatedNumber getSurfaceScale();
+}
diff --git a/elemental/src/elemental/svg/SVGFEDisplacementMapElement.java b/elemental/src/elemental/svg/SVGFEDisplacementMapElement.java
new file mode 100644
index 0000000..e6e921a
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEDisplacementMapElement.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The pixel value of an input image i2 is used to displace the original image i1.
+ */
+public interface SVGFEDisplacementMapElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ static final int SVG_CHANNEL_A = 4;
+
+ static final int SVG_CHANNEL_B = 3;
+
+ static final int SVG_CHANNEL_G = 2;
+
+ static final int SVG_CHANNEL_R = 1;
+
+ static final int SVG_CHANNEL_UNKNOWN = 0;
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedString getIn2();
+
+ SVGAnimatedNumber getScale();
+
+ SVGAnimatedEnumeration getXChannelSelector();
+
+ SVGAnimatedEnumeration getYChannelSelector();
+}
diff --git a/elemental/src/elemental/svg/SVGFEDistantLightElement.java b/elemental/src/elemental/svg/SVGFEDistantLightElement.java
new file mode 100644
index 0000000..f0e67c3
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEDistantLightElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFEDistantLightElement extends SVGElement {
+
+ SVGAnimatedNumber getAzimuth();
+
+ SVGAnimatedNumber getElevation();
+}
diff --git a/elemental/src/elemental/svg/SVGFEDropShadowElement.java b/elemental/src/elemental/svg/SVGFEDropShadowElement.java
new file mode 100644
index 0000000..8b9f6e0
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEDropShadowElement.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFEDropShadowElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ SVGAnimatedNumber getDx();
+
+ SVGAnimatedNumber getDy();
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedNumber getStdDeviationX();
+
+ SVGAnimatedNumber getStdDeviationY();
+
+ void setStdDeviation(float stdDeviationX, float stdDeviationY);
+}
diff --git a/elemental/src/elemental/svg/SVGFEFloodElement.java b/elemental/src/elemental/svg/SVGFEFloodElement.java
new file mode 100644
index 0000000..861925f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEFloodElement.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The filter fills the filter subregion with the color and opacity defined by
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/flood-color">flood-color</a></code> and
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/flood-opacity">flood-opacity</a></code>.
+ */
+public interface SVGFEFloodElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+}
diff --git a/elemental/src/elemental/svg/SVGFEFuncAElement.java b/elemental/src/elemental/svg/SVGFEFuncAElement.java
new file mode 100644
index 0000000..1b9db9e
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEFuncAElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFEFuncAElement extends SVGComponentTransferFunctionElement {
+}
diff --git a/elemental/src/elemental/svg/SVGFEFuncBElement.java b/elemental/src/elemental/svg/SVGFEFuncBElement.java
new file mode 100644
index 0000000..374e816
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEFuncBElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFEFuncBElement extends SVGComponentTransferFunctionElement {
+}
diff --git a/elemental/src/elemental/svg/SVGFEFuncGElement.java b/elemental/src/elemental/svg/SVGFEFuncGElement.java
new file mode 100644
index 0000000..2b5088d
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEFuncGElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFEFuncGElement extends SVGComponentTransferFunctionElement {
+}
diff --git a/elemental/src/elemental/svg/SVGFEFuncRElement.java b/elemental/src/elemental/svg/SVGFEFuncRElement.java
new file mode 100644
index 0000000..b3fcfe4
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEFuncRElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFEFuncRElement extends SVGComponentTransferFunctionElement {
+}
diff --git a/elemental/src/elemental/svg/SVGFEGaussianBlurElement.java b/elemental/src/elemental/svg/SVGFEGaussianBlurElement.java
new file mode 100644
index 0000000..20f1ccf
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEGaussianBlurElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The filter blurs the input image by the amount specified in
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/stdDeviation" class="new">stdDeviation</a></code>, which defines the bell-curve.
+ */
+public interface SVGFEGaussianBlurElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedNumber getStdDeviationX();
+
+ SVGAnimatedNumber getStdDeviationY();
+
+ void setStdDeviation(float stdDeviationX, float stdDeviationY);
+}
diff --git a/elemental/src/elemental/svg/SVGFEImageElement.java b/elemental/src/elemental/svg/SVGFEImageElement.java
new file mode 100644
index 0000000..a1d74b5
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEImageElement.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The feImage filter fetches image data from an external source and provides the pixel data as output.
+ */
+public interface SVGFEImageElement extends SVGElement, SVGURIReference, SVGLangSpace, SVGExternalResourcesRequired, SVGFilterPrimitiveStandardAttributes {
+
+ SVGAnimatedPreserveAspectRatio getPreserveAspectRatio();
+}
diff --git a/elemental/src/elemental/svg/SVGFEMergeElement.java b/elemental/src/elemental/svg/SVGFEMergeElement.java
new file mode 100644
index 0000000..2f81d1f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEMergeElement.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The feMerge filter allows filter effects to be applied concurrently instead of sequentially. This is achieved by other filters storing their output via the
+<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>
+ child.
+ */
+public interface SVGFEMergeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+}
diff --git a/elemental/src/elemental/svg/SVGFEMergeNodeElement.java b/elemental/src/elemental/svg/SVGFEMergeNodeElement.java
new file mode 100644
index 0000000..be0a2e0
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEMergeNodeElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+.
+ */
+public interface SVGFEMergeNodeElement extends SVGElement {
+
+ SVGAnimatedString getIn1();
+}
diff --git a/elemental/src/elemental/svg/SVGFEMorphologyElement.java b/elemental/src/elemental/svg/SVGFEMorphologyElement.java
new file mode 100644
index 0000000..7185f02
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEMorphologyElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * This filter is used to erode or dilate the input image. It's usefulness lies especially in fattening or thinning effects.
+ */
+public interface SVGFEMorphologyElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ static final int SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
+
+ static final int SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
+
+ static final int SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedEnumeration getOperator();
+
+ SVGAnimatedNumber getRadiusX();
+
+ SVGAnimatedNumber getRadiusY();
+
+ void setRadius(float radiusX, float radiusY);
+}
diff --git a/elemental/src/elemental/svg/SVGFEOffsetElement.java b/elemental/src/elemental/svg/SVGFEOffsetElement.java
new file mode 100644
index 0000000..3829593
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEOffsetElement.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The input image as a whole is offset by the values specified in the
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/dx" class="new">dx</a></code> and
+<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.
+ */
+public interface SVGFEOffsetElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ SVGAnimatedNumber getDx();
+
+ SVGAnimatedNumber getDy();
+
+ SVGAnimatedString getIn1();
+}
diff --git a/elemental/src/elemental/svg/SVGFEPointLightElement.java b/elemental/src/elemental/svg/SVGFEPointLightElement.java
new file mode 100644
index 0000000..ff6f031
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFEPointLightElement.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFEPointLightElement extends SVGElement {
+
+ SVGAnimatedNumber getX();
+
+ SVGAnimatedNumber getY();
+
+ SVGAnimatedNumber getZ();
+}
diff --git a/elemental/src/elemental/svg/SVGFESpecularLightingElement.java b/elemental/src/elemental/svg/SVGFESpecularLightingElement.java
new file mode 100644
index 0000000..07ed6e1
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFESpecularLightingElement.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFESpecularLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ SVGAnimatedString getIn1();
+
+ SVGAnimatedNumber getSpecularConstant();
+
+ SVGAnimatedNumber getSpecularExponent();
+
+ SVGAnimatedNumber getSurfaceScale();
+}
diff --git a/elemental/src/elemental/svg/SVGFESpotLightElement.java b/elemental/src/elemental/svg/SVGFESpotLightElement.java
new file mode 100644
index 0000000..69bcda8
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFESpotLightElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFESpotLightElement extends SVGElement {
+
+ SVGAnimatedNumber getLimitingConeAngle();
+
+ SVGAnimatedNumber getPointsAtX();
+
+ SVGAnimatedNumber getPointsAtY();
+
+ SVGAnimatedNumber getPointsAtZ();
+
+ SVGAnimatedNumber getSpecularExponent();
+
+ SVGAnimatedNumber getX();
+
+ SVGAnimatedNumber getY();
+
+ SVGAnimatedNumber getZ();
+}
diff --git a/elemental/src/elemental/svg/SVGFETileElement.java b/elemental/src/elemental/svg/SVGFETileElement.java
new file mode 100644
index 0000000..35fe619
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFETileElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+.
+ */
+public interface SVGFETileElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ SVGAnimatedString getIn1();
+}
diff --git a/elemental/src/elemental/svg/SVGFETurbulenceElement.java b/elemental/src/elemental/svg/SVGFETurbulenceElement.java
new file mode 100644
index 0000000..74fa7ce
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFETurbulenceElement.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The filter primitive creates a perturbation image, like cloud or marble textures.
+ */
+public interface SVGFETurbulenceElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+
+ static final int SVG_STITCHTYPE_NOSTITCH = 2;
+
+ static final int SVG_STITCHTYPE_STITCH = 1;
+
+ static final int SVG_STITCHTYPE_UNKNOWN = 0;
+
+ static final int SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
+
+ static final int SVG_TURBULENCE_TYPE_TURBULENCE = 2;
+
+ static final int SVG_TURBULENCE_TYPE_UNKNOWN = 0;
+
+ SVGAnimatedNumber getBaseFrequencyX();
+
+ SVGAnimatedNumber getBaseFrequencyY();
+
+ SVGAnimatedInteger getNumOctaves();
+
+ SVGAnimatedNumber getSeed();
+
+ SVGAnimatedEnumeration getStitchTiles();
+
+ SVGAnimatedEnumeration getType();
+}
diff --git a/elemental/src/elemental/svg/SVGFilterElement.java b/elemental/src/elemental/svg/SVGFilterElement.java
new file mode 100644
index 0000000..d0af43a
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFilterElement.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>filter</code> element serves as container for atomic filter operations. It is never rendered directly. A filter is referenced by using the
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/filter" class="new">filter</a></code> attribute on the target SVG element.
+ */
+public interface SVGFilterElement extends SVGElement, SVGURIReference, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable {
+
+ SVGAnimatedInteger getFilterResX();
+
+ SVGAnimatedInteger getFilterResY();
+
+ SVGAnimatedEnumeration getFilterUnits();
+
+ SVGAnimatedLength getAnimatedHeight();
+
+ SVGAnimatedEnumeration getPrimitiveUnits();
+
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getX();
+
+ SVGAnimatedLength getY();
+
+ void setFilterRes(int filterResX, int filterResY);
+}
diff --git a/elemental/src/elemental/svg/SVGFilterPrimitiveStandardAttributes.java b/elemental/src/elemental/svg/SVGFilterPrimitiveStandardAttributes.java
new file mode 100644
index 0000000..be2b825
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFilterPrimitiveStandardAttributes.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFilterPrimitiveStandardAttributes extends SVGStylable {
+
+ SVGAnimatedLength getAnimatedHeight();
+
+ SVGAnimatedString getAnimatedResult();
+
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getAnimatedX();
+
+ SVGAnimatedLength getAnimatedY();
+}
diff --git a/elemental/src/elemental/svg/SVGFitToViewBox.java b/elemental/src/elemental/svg/SVGFitToViewBox.java
new file mode 100644
index 0000000..39515a6
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFitToViewBox.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGFitToViewBox {
+
+ SVGAnimatedPreserveAspectRatio getPreserveAspectRatio();
+
+ SVGAnimatedRect getViewBox();
+}
diff --git a/elemental/src/elemental/svg/SVGFontElement.java b/elemental/src/elemental/svg/SVGFontElement.java
new file mode 100644
index 0000000..77a988f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFontElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGFontElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGFontFaceElement.java b/elemental/src/elemental/svg/SVGFontFaceElement.java
new file mode 100644
index 0000000..b36ff45
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFontFaceElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGFontFaceElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGFontFaceFormatElement.java b/elemental/src/elemental/svg/SVGFontFaceFormatElement.java
new file mode 100644
index 0000000..ab699e4
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFontFaceFormatElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGFontFaceFormatElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGFontFaceNameElement.java b/elemental/src/elemental/svg/SVGFontFaceNameElement.java
new file mode 100644
index 0000000..fc22813
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFontFaceNameElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGFontFaceNameElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGFontFaceSrcElement.java b/elemental/src/elemental/svg/SVGFontFaceSrcElement.java
new file mode 100644
index 0000000..9c336a0
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFontFaceSrcElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGFontFaceSrcElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGFontFaceUriElement.java b/elemental/src/elemental/svg/SVGFontFaceUriElement.java
new file mode 100644
index 0000000..92d57f7
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGFontFaceUriElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGFontFaceUriElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGForeignObjectElement.java b/elemental/src/elemental/svg/SVGForeignObjectElement.java
new file mode 100644
index 0000000..ef218fc
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGForeignObjectElement.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGForeignObjectElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedHeight();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getX();
+
+ SVGAnimatedLength getY();
+}
diff --git a/elemental/src/elemental/svg/SVGGElement.java b/elemental/src/elemental/svg/SVGGElement.java
new file mode 100644
index 0000000..8d2a7f7
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGGElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGGElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/g"><g></a></code>
+ element.
+ */
+public interface SVGGElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+}
diff --git a/elemental/src/elemental/svg/SVGGlyphElement.java b/elemental/src/elemental/svg/SVGGlyphElement.java
new file mode 100644
index 0000000..61061c6
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGGlyphElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGGlyphElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGGlyphRefElement.java b/elemental/src/elemental/svg/SVGGlyphRefElement.java
new file mode 100644
index 0000000..6676198
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGGlyphRefElement.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGGlyphRefElement extends SVGElement, SVGURIReference, SVGStylable {
+
+ float getDx();
+
+ void setDx(float arg);
+
+ float getDy();
+
+ void setDy(float arg);
+
+ String getFormat();
+
+ void setFormat(String arg);
+
+ String getGlyphRef();
+
+ void setGlyphRef(String arg);
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGGradientElement.java b/elemental/src/elemental/svg/SVGGradientElement.java
new file mode 100644
index 0000000..316a25c
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGGradientElement.java
@@ -0,0 +1,79 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ and <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGRadialGradientElement">SVGRadialGradientElement</a></code>
+.
+ */
+public interface SVGGradientElement extends SVGElement, SVGURIReference, SVGExternalResourcesRequired, SVGStylable {
+
+ /**
+ * Corresponds to value <em>pad</em>.
+ */
+
+ static final int SVG_SPREADMETHOD_PAD = 1;
+
+ /**
+ * Corresponds to value <em>reflect</em>.
+ */
+
+ static final int SVG_SPREADMETHOD_REFLECT = 2;
+
+ /**
+ * Corresponds to value <em>repeat</em>.
+ */
+
+ static final int SVG_SPREADMETHOD_REPEAT = 3;
+
+ /**
+ * 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.
+ */
+
+ static final int SVG_SPREADMETHOD_UNKNOWN = 0;
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/gradientTransform" class="new">gradientTransform</a></code> on the given element.
+ */
+ SVGAnimatedTransformList getGradientTransform();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+.
+ */
+ SVGAnimatedEnumeration getGradientUnits();
+
+
+ /**
+ * Corresponds to attribute
+<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.
+ */
+ SVGAnimatedEnumeration getSpreadMethod();
+}
diff --git a/elemental/src/elemental/svg/SVGHKernElement.java b/elemental/src/elemental/svg/SVGHKernElement.java
new file mode 100644
index 0000000..b7ed45f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGHKernElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGHKernElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGImageElement.java b/elemental/src/elemental/svg/SVGImageElement.java
new file mode 100644
index 0000000..c7a50fe
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGImageElement.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGImageElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/image"><image></a></code>
+ element.
+ */
+public interface SVGImageElement extends SVGElement, SVGURIReference, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedHeight();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedPreserveAspectRatio getPreserveAspectRatio();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getX();
+
+ SVGAnimatedLength getY();
+}
diff --git a/elemental/src/elemental/svg/SVGLangSpace.java b/elemental/src/elemental/svg/SVGLangSpace.java
new file mode 100644
index 0000000..222a9b6
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGLangSpace.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGLangSpace {
+
+ String getXmllang();
+
+ void setXmllang(String arg);
+
+ String getXmlspace();
+
+ void setXmlspace(String arg);
+}
diff --git a/elemental/src/elemental/svg/SVGLength.java b/elemental/src/elemental/svg/SVGLength.java
new file mode 100644
index 0000000..d338edb
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGLength.java
@@ -0,0 +1,146 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface SVGLength {
+
+ /**
+ * A value was specified using the cm units defined in CSS2.
+ */
+
+ static final int SVG_LENGTHTYPE_CM = 6;
+
+ /**
+ * A value was specified using the em units defined in CSS2.
+ */
+
+ static final int SVG_LENGTHTYPE_EMS = 3;
+
+ /**
+ * A value was specified using the ex units defined in CSS2.
+ */
+
+ static final int SVG_LENGTHTYPE_EXS = 4;
+
+ /**
+ * A value was specified using the in units defined in CSS2.
+ */
+
+ static final int SVG_LENGTHTYPE_IN = 8;
+
+ /**
+ * A value was specified using the mm units defined in CSS2.
+ */
+
+ static final int SVG_LENGTHTYPE_MM = 7;
+
+ /**
+ * No unit type was provided (i.e., a unitless value was specified), which indicates a value in user units.
+ */
+
+ static final int SVG_LENGTHTYPE_NUMBER = 1;
+
+ /**
+ * A value was specified using the pc units defined in CSS2.
+ */
+
+ static final int SVG_LENGTHTYPE_PC = 10;
+
+ /**
+ * A percentage value was specified.
+ */
+
+ static final int SVG_LENGTHTYPE_PERCENTAGE = 2;
+
+ /**
+ * A value was specified using the pt units defined in CSS2.
+ */
+
+ static final int SVG_LENGTHTYPE_PT = 9;
+
+ /**
+ * A value was specified using the px units defined in CSS2.
+ */
+
+ static final int SVG_LENGTHTYPE_PX = 5;
+
+ /**
+ * 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.
+ */
+
+ static final int SVG_LENGTHTYPE_UNKNOWN = 0;
+
+
+ /**
+ * The type of the value as specified by one of the SVG_LENGTHTYPE_* constants defined on this interface.
+ */
+ int getUnitType();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ float getValue();
+
+ void setValue(float arg);
+
+
+ /**
+ * <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>
+ 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>
+ 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>
+ */
+ String getValueAsString();
+
+ void setValueAsString(String arg);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ float getValueInSpecifiedUnits();
+
+ void setValueInSpecifiedUnits(float arg);
+
+
+ /**
+ * 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>".
+ */
+ void convertToSpecifiedUnits(int unitType);
+
+
+ /**
+ * <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>
+ 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>
+ 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>
+ */
+ void newValueSpecifiedUnits(int unitType, float valueInSpecifiedUnits);
+}
diff --git a/elemental/src/elemental/svg/SVGLengthList.java b/elemental/src/elemental/svg/SVGLengthList.java
new file mode 100644
index 0000000..41b618f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGLengthList.java
@@ -0,0 +1,94 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>SVGLengthList</code> defines a list of <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGLength">SVGLength</a></code>
+ objects.</p>
+<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>
+<div class="geckoVersionNote">
+<p>
+</p><div class="geckoVersionHeading">Gecko 5.0 note<div>(Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+</div></div>
+<p></p>
+<p>Starting in Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+,the <code>SVGLengthList</code> DOM interface is now indexable and can be accessed like arrays</p>
+</div>
+ */
+public interface SVGLengthList {
+
+ int getNumberOfItems();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGLength appendItem(SVGLength item);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ void clear();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGLength getItem(int index);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGLength initialize(SVGLength item);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGLength insertItemBefore(SVGLength item, int index);
+
+
+ /**
+ * <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>
+ 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>
+ with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>
+ */
+ SVGLength removeItem(int index);
+
+
+ /**
+ * <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>
+ 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>
+ with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>
+ */
+ SVGLength replaceItem(SVGLength item, int index);
+}
diff --git a/elemental/src/elemental/svg/SVGLineElement.java b/elemental/src/elemental/svg/SVGLineElement.java
new file mode 100644
index 0000000..549199c
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGLineElement.java
@@ -0,0 +1,64 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGLineElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getX1();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getX2();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getY1();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getY2();
+}
diff --git a/elemental/src/elemental/svg/SVGLinearGradientElement.java b/elemental/src/elemental/svg/SVGLinearGradientElement.java
new file mode 100644
index 0000000..34f48b1
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGLinearGradientElement.java
@@ -0,0 +1,64 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGLinearGradientElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/linearGradient"><linearGradient></a></code>
+ element.
+ */
+public interface SVGLinearGradientElement extends SVGGradientElement {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getX1();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getX2();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getY1();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getY2();
+}
diff --git a/elemental/src/elemental/svg/SVGLocatable.java b/elemental/src/elemental/svg/SVGLocatable.java
new file mode 100644
index 0000000..c51f63b
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGLocatable.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGLocatable {
+
+ SVGElement getFarthestViewportElement();
+
+ SVGElement getNearestViewportElement();
+
+ SVGRect getBBox();
+
+ SVGMatrix getCTM();
+
+ SVGMatrix getScreenCTM();
+
+ SVGMatrix getTransformToElement(SVGElement element);
+}
diff --git a/elemental/src/elemental/svg/SVGMPathElement.java b/elemental/src/elemental/svg/SVGMPathElement.java
new file mode 100644
index 0000000..0dd3aea
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGMPathElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGMPathElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/mpath"><mpath></a></code>
+ element.
+ */
+public interface SVGMPathElement extends SVGElement, SVGURIReference, SVGExternalResourcesRequired {
+}
diff --git a/elemental/src/elemental/svg/SVGMarkerElement.java b/elemental/src/elemental/svg/SVGMarkerElement.java
new file mode 100644
index 0000000..534027e
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGMarkerElement.java
@@ -0,0 +1,65 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/line"><line></a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/polyline"><polyline></a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/polygon"><polygon></a></code>
+ element.
+ */
+public interface SVGMarkerElement extends SVGElement, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGFitToViewBox {
+
+ static final int SVG_MARKERUNITS_STROKEWIDTH = 2;
+
+ static final int SVG_MARKERUNITS_UNKNOWN = 0;
+
+ static final int SVG_MARKERUNITS_USERSPACEONUSE = 1;
+
+ static final int SVG_MARKER_ORIENT_ANGLE = 2;
+
+ static final int SVG_MARKER_ORIENT_AUTO = 1;
+
+ static final int SVG_MARKER_ORIENT_UNKNOWN = 0;
+
+ SVGAnimatedLength getMarkerHeight();
+
+ SVGAnimatedEnumeration getMarkerUnits();
+
+ SVGAnimatedLength getMarkerWidth();
+
+ SVGAnimatedAngle getOrientAngle();
+
+ SVGAnimatedEnumeration getOrientType();
+
+ SVGAnimatedLength getRefX();
+
+ SVGAnimatedLength getRefY();
+
+ void setOrientToAngle(SVGAngle angle);
+
+ void setOrientToAuto();
+}
diff --git a/elemental/src/elemental/svg/SVGMaskElement.java b/elemental/src/elemental/svg/SVGMaskElement.java
new file mode 100644
index 0000000..c5f6c3f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGMaskElement.java
@@ -0,0 +1,68 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGMaskElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedHeight();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ 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>
+ */
+ SVGAnimatedEnumeration getMaskContentUnits();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ 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>
+ */
+ SVGAnimatedEnumeration getMaskUnits();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getX();
+
+ SVGAnimatedLength getY();
+}
diff --git a/elemental/src/elemental/svg/SVGMatrix.java b/elemental/src/elemental/svg/SVGMatrix.java
new file mode 100644
index 0000000..ae59931
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGMatrix.java
@@ -0,0 +1,131 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>Many of SVG's graphics operations utilize 2x3 matrices of the form:</p>
+<pre>[a c e]
+[b d f]</pre>
+<p>which, when expanded into a 3x3 matrix for the purposes of matrix arithmetic, become:</p>
+<pre>[a c e]
+[b d f]
+[0 0 1]
+</pre>
+<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>
+ */
+public interface SVGMatrix {
+
+ double getA();
+
+ void setA(double arg);
+
+ double getB();
+
+ void setB(double arg);
+
+ double getC();
+
+ void setC(double arg);
+
+ double getD();
+
+ void setD(double arg);
+
+ double getE();
+
+ void setE(double arg);
+
+ double getF();
+
+ void setF(double arg);
+
+
+ /**
+ * Post-multiplies the transformation [-1 0 0 1 0 0] and returns the resulting matrix.
+ */
+ SVGMatrix flipX();
+
+
+ /**
+ * Post-multiplies the transformation [1 0 0 -1 0 0] and returns the resulting matrix.
+ */
+ SVGMatrix flipY();
+
+
+ /**
+ * <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>
+ with code <code>SVG_MATRIX_NOT_INVERTABLE</code> is raised if the matrix is not invertable.</li> </ul>
+ */
+ SVGMatrix inverse();
+
+
+ /**
+ * Performs matrix multiplication. This matrix is post-multiplied by another matrix, returning the resulting new matrix.
+ */
+ SVGMatrix multiply(SVGMatrix secondMatrix);
+
+
+ /**
+ * Post-multiplies a rotation transformation on the current matrix and returns the resulting matrix.
+ */
+ SVGMatrix rotate(float angle);
+
+
+ /**
+ * <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>
+ with code <code>SVG_INVALID_VALUE_ERR</code> is raised if one of the parameters has an invalid value.</li> </ul>
+ */
+ SVGMatrix rotateFromVector(float x, float y);
+
+
+ /**
+ * Post-multiplies a uniform scale transformation on the current matrix and returns the resulting matrix.
+ */
+ SVGMatrix scale(float scaleFactor);
+
+
+ /**
+ * Post-multiplies a non-uniform scale transformation on the current matrix and returns the resulting matrix.
+ */
+ SVGMatrix scaleNonUniform(float scaleFactorX, float scaleFactorY);
+
+
+ /**
+ * Post-multiplies a skewX transformation on the current matrix and returns the resulting matrix.
+ */
+ SVGMatrix skewX(float angle);
+
+
+ /**
+ * Post-multiplies a skewY transformation on the current matrix and returns the resulting matrix.
+ */
+ SVGMatrix skewY(float angle);
+
+
+ /**
+ * Post-multiplies a translation transformation on the current matrix and returns the resulting matrix.
+ */
+ SVGMatrix translate(float x, float y);
+}
diff --git a/elemental/src/elemental/svg/SVGMetadataElement.java b/elemental/src/elemental/svg/SVGMetadataElement.java
new file mode 100644
index 0000000..0e863c5
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGMetadataElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+ */
+public interface SVGMetadataElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGMissingGlyphElement.java b/elemental/src/elemental/svg/SVGMissingGlyphElement.java
new file mode 100644
index 0000000..7da2d22
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGMissingGlyphElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGMissingGlyphElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGNumber.java b/elemental/src/elemental/svg/SVGNumber.java
new file mode 100644
index 0000000..564c295
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGNumber.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface SVGNumber {
+
+
+ /**
+ * <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>
+ with code <code>NO_MODIFICATION_ALLOWED_ERR</code> is Raised on an attempt to change the value of a read only attribute.</p>
+ */
+ double getValue();
+
+ void setValue(double arg);
+}
diff --git a/elemental/src/elemental/svg/SVGNumberList.java b/elemental/src/elemental/svg/SVGNumberList.java
new file mode 100644
index 0000000..ea2c60b
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGNumberList.java
@@ -0,0 +1,92 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>SVGNumberList</code> defines a list of <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGNumber">SVGNumber</a></code>
+ objects.</p>
+<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>
+<div class="geckoVersionNote"> <p>
+</p><div class="geckoVersionHeading">Gecko 5.0 note<div>(Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+</div></div>
+<p></p> <p>Starting in Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)
+,the <code>SVGNumberList</code> DOM interface is now indexable and can be accessed like arrays</p>
+</div>
+ */
+public interface SVGNumberList {
+
+ int getNumberOfItems();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGNumber appendItem(SVGNumber item);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ void clear();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGNumber getItem(int index);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGNumber initialize(SVGNumber item);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGNumber insertItemBefore(SVGNumber item, int index);
+
+
+ /**
+ * <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>
+ 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>
+ with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>
+ */
+ SVGNumber removeItem(int index);
+
+
+ /**
+ * <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>
+ 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>
+ with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>
+ */
+ SVGNumber replaceItem(SVGNumber item, int index);
+}
diff --git a/elemental/src/elemental/svg/SVGPaint.java b/elemental/src/elemental/svg/SVGPaint.java
new file mode 100644
index 0000000..9725dd4
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPaint.java
@@ -0,0 +1,57 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPaint extends SVGColor {
+
+ static final int SVG_PAINTTYPE_CURRENTCOLOR = 102;
+
+ static final int SVG_PAINTTYPE_NONE = 101;
+
+ static final int SVG_PAINTTYPE_RGBCOLOR = 1;
+
+ static final int SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2;
+
+ static final int SVG_PAINTTYPE_UNKNOWN = 0;
+
+ static final int SVG_PAINTTYPE_URI = 107;
+
+ static final int SVG_PAINTTYPE_URI_CURRENTCOLOR = 104;
+
+ static final int SVG_PAINTTYPE_URI_NONE = 103;
+
+ static final int SVG_PAINTTYPE_URI_RGBCOLOR = 105;
+
+ static final int SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106;
+
+ int getPaintType();
+
+ String getUri();
+
+ void setPaint(int paintType, String uri, String rgbColor, String iccColor);
+}
diff --git a/elemental/src/elemental/svg/SVGPathElement.java b/elemental/src/elemental/svg/SVGPathElement.java
new file mode 100644
index 0000000..d44e5eb
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathElement.java
@@ -0,0 +1,199 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGPathElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/path"><path></a></code>
+ element.
+ */
+public interface SVGPathElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+ SVGPathSegList getAnimatedNormalizedPathSegList();
+
+ SVGPathSegList getAnimatedPathSegList();
+
+ SVGPathSegList getNormalizedPathSegList();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedNumber getPathLength();
+
+ SVGPathSegList getPathSegList();
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegArcAbs createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, boolean largeArcFlag, boolean sweepFlag);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegArcRel createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, boolean largeArcFlag, boolean sweepFlag);
+
+
+ /**
+ * 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>
+ object.
+ */
+ SVGPathSegClosePath createSVGPathSegClosePath();
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(float x, float y);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(float x);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(float x);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegLinetoRel createSVGPathSegLinetoRel(float x, float y);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(float y);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(float y);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(float x, float y);
+
+
+ /**
+ * 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>
+ 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>
+ */
+ SVGPathSegMovetoRel createSVGPathSegMovetoRel(float x, float y);
+
+
+ /**
+ * 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.
+ */
+ int getPathSegAtLength(float distance);
+
+
+ /**
+ * Returns the (x,y) coordinate in user space which is distance units along the path, utilizing the browser's distance-along-a-path algorithm.
+ */
+ SVGPoint getPointAtLength(float distance);
+
+
+ /**
+ * 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.
+ */
+ float getTotalLength();
+}
diff --git a/elemental/src/elemental/svg/SVGPathSeg.java b/elemental/src/elemental/svg/SVGPathSeg.java
new file mode 100644
index 0000000..3ca1e5d
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSeg.java
@@ -0,0 +1,75 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSeg {
+
+ static final int PATHSEG_ARC_ABS = 10;
+
+ static final int PATHSEG_ARC_REL = 11;
+
+ static final int PATHSEG_CLOSEPATH = 1;
+
+ static final int PATHSEG_CURVETO_CUBIC_ABS = 6;
+
+ static final int PATHSEG_CURVETO_CUBIC_REL = 7;
+
+ static final int PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
+
+ static final int PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
+
+ static final int PATHSEG_CURVETO_QUADRATIC_ABS = 8;
+
+ static final int PATHSEG_CURVETO_QUADRATIC_REL = 9;
+
+ static final int PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
+
+ static final int PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
+
+ static final int PATHSEG_LINETO_ABS = 4;
+
+ static final int PATHSEG_LINETO_HORIZONTAL_ABS = 12;
+
+ static final int PATHSEG_LINETO_HORIZONTAL_REL = 13;
+
+ static final int PATHSEG_LINETO_REL = 5;
+
+ static final int PATHSEG_LINETO_VERTICAL_ABS = 14;
+
+ static final int PATHSEG_LINETO_VERTICAL_REL = 15;
+
+ static final int PATHSEG_MOVETO_ABS = 2;
+
+ static final int PATHSEG_MOVETO_REL = 3;
+
+ static final int PATHSEG_UNKNOWN = 0;
+
+ int getPathSegType();
+
+ String getPathSegTypeAsLetter();
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegArcAbs.java b/elemental/src/elemental/svg/SVGPathSegArcAbs.java
new file mode 100644
index 0000000..c27a3b8
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegArcAbs.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegArcAbs extends SVGPathSeg {
+
+ float getAngle();
+
+ void setAngle(float arg);
+
+ boolean isLargeArcFlag();
+
+ void setLargeArcFlag(boolean arg);
+
+ float getR1();
+
+ void setR1(float arg);
+
+ float getR2();
+
+ void setR2(float arg);
+
+ boolean isSweepFlag();
+
+ void setSweepFlag(boolean arg);
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegArcRel.java b/elemental/src/elemental/svg/SVGPathSegArcRel.java
new file mode 100644
index 0000000..175f24b
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegArcRel.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegArcRel extends SVGPathSeg {
+
+ float getAngle();
+
+ void setAngle(float arg);
+
+ boolean isLargeArcFlag();
+
+ void setLargeArcFlag(boolean arg);
+
+ float getR1();
+
+ void setR1(float arg);
+
+ float getR2();
+
+ void setR2(float arg);
+
+ boolean isSweepFlag();
+
+ void setSweepFlag(boolean arg);
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegClosePath.java b/elemental/src/elemental/svg/SVGPathSegClosePath.java
new file mode 100644
index 0000000..72e43a8
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegClosePath.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegClosePath extends SVGPathSeg {
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegCurvetoCubicAbs.java b/elemental/src/elemental/svg/SVGPathSegCurvetoCubicAbs.java
new file mode 100644
index 0000000..d6ce486
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegCurvetoCubicAbs.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegCurvetoCubicAbs extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getX1();
+
+ void setX1(float arg);
+
+ float getX2();
+
+ void setX2(float arg);
+
+ float getY();
+
+ void setY(float arg);
+
+ float getY1();
+
+ void setY1(float arg);
+
+ float getY2();
+
+ void setY2(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegCurvetoCubicRel.java b/elemental/src/elemental/svg/SVGPathSegCurvetoCubicRel.java
new file mode 100644
index 0000000..a1cd401
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegCurvetoCubicRel.java
@@ -0,0 +1,55 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegCurvetoCubicRel extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getX1();
+
+ void setX1(float arg);
+
+ float getX2();
+
+ void setX2(float arg);
+
+ float getY();
+
+ void setY(float arg);
+
+ float getY1();
+
+ void setY1(float arg);
+
+ float getY2();
+
+ void setY2(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegCurvetoCubicSmoothAbs.java b/elemental/src/elemental/svg/SVGPathSegCurvetoCubicSmoothAbs.java
new file mode 100644
index 0000000..05f8c2f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegCurvetoCubicSmoothAbs.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getX2();
+
+ void setX2(float arg);
+
+ float getY();
+
+ void setY(float arg);
+
+ float getY2();
+
+ void setY2(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegCurvetoCubicSmoothRel.java b/elemental/src/elemental/svg/SVGPathSegCurvetoCubicSmoothRel.java
new file mode 100644
index 0000000..4f889ef
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegCurvetoCubicSmoothRel.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getX2();
+
+ void setX2(float arg);
+
+ float getY();
+
+ void setY(float arg);
+
+ float getY2();
+
+ void setY2(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticAbs.java b/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticAbs.java
new file mode 100644
index 0000000..8d2964d
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticAbs.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getX1();
+
+ void setX1(float arg);
+
+ float getY();
+
+ void setY(float arg);
+
+ float getY1();
+
+ void setY1(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticRel.java b/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticRel.java
new file mode 100644
index 0000000..7a1f4cc
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticRel.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegCurvetoQuadraticRel extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getX1();
+
+ void setX1(float arg);
+
+ float getY();
+
+ void setY(float arg);
+
+ float getY1();
+
+ void setY1(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticSmoothAbs.java b/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticSmoothAbs.java
new file mode 100644
index 0000000..f56cc3c
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticSmoothAbs.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticSmoothRel.java b/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticSmoothRel.java
new file mode 100644
index 0000000..04f82b4
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegCurvetoQuadraticSmoothRel.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegLinetoAbs.java b/elemental/src/elemental/svg/SVGPathSegLinetoAbs.java
new file mode 100644
index 0000000..5956f0e
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegLinetoAbs.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegLinetoAbs extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegLinetoHorizontalAbs.java b/elemental/src/elemental/svg/SVGPathSegLinetoHorizontalAbs.java
new file mode 100644
index 0000000..cf513dd
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegLinetoHorizontalAbs.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegLinetoHorizontalAbs extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegLinetoHorizontalRel.java b/elemental/src/elemental/svg/SVGPathSegLinetoHorizontalRel.java
new file mode 100644
index 0000000..f158603
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegLinetoHorizontalRel.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegLinetoHorizontalRel extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegLinetoRel.java b/elemental/src/elemental/svg/SVGPathSegLinetoRel.java
new file mode 100644
index 0000000..5e25e42
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegLinetoRel.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegLinetoRel extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegLinetoVerticalAbs.java b/elemental/src/elemental/svg/SVGPathSegLinetoVerticalAbs.java
new file mode 100644
index 0000000..2055303
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegLinetoVerticalAbs.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegLinetoVerticalAbs extends SVGPathSeg {
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegLinetoVerticalRel.java b/elemental/src/elemental/svg/SVGPathSegLinetoVerticalRel.java
new file mode 100644
index 0000000..76f10bf
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegLinetoVerticalRel.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegLinetoVerticalRel extends SVGPathSeg {
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegList.java b/elemental/src/elemental/svg/SVGPathSegList.java
new file mode 100644
index 0000000..0693468
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegList.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegList {
+
+ int getNumberOfItems();
+
+ SVGPathSeg appendItem(SVGPathSeg newItem);
+
+ void clear();
+
+ SVGPathSeg getItem(int index);
+
+ SVGPathSeg initialize(SVGPathSeg newItem);
+
+ SVGPathSeg insertItemBefore(SVGPathSeg newItem, int index);
+
+ SVGPathSeg removeItem(int index);
+
+ SVGPathSeg replaceItem(SVGPathSeg newItem, int index);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegMovetoAbs.java b/elemental/src/elemental/svg/SVGPathSegMovetoAbs.java
new file mode 100644
index 0000000..f31f00a
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegMovetoAbs.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegMovetoAbs extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPathSegMovetoRel.java b/elemental/src/elemental/svg/SVGPathSegMovetoRel.java
new file mode 100644
index 0000000..d3e73a6
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPathSegMovetoRel.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPathSegMovetoRel extends SVGPathSeg {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGPatternElement.java b/elemental/src/elemental/svg/SVGPatternElement.java
new file mode 100644
index 0000000..341185f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPatternElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGPatternElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/pattern"><pattern></a></code>
+ element.
+ */
+public interface SVGPatternElement extends SVGElement, SVGURIReference, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGFitToViewBox {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedHeight();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ 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>
+.
+ */
+ SVGAnimatedEnumeration getPatternContentUnits();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedTransformList getPatternTransform();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ 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>
+.
+ */
+ SVGAnimatedEnumeration getPatternUnits();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getX();
+
+ SVGAnimatedLength getY();
+}
diff --git a/elemental/src/elemental/svg/SVGPoint.java b/elemental/src/elemental/svg/SVGPoint.java
new file mode 100644
index 0000000..2284257
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPoint.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPoint {
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+
+ SVGPoint matrixTransform(SVGMatrix matrix);
+}
diff --git a/elemental/src/elemental/svg/SVGPointList.java b/elemental/src/elemental/svg/SVGPointList.java
new file mode 100644
index 0000000..75280a6
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPointList.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGPointList {
+
+ int getNumberOfItems();
+
+ SVGPoint appendItem(SVGPoint item);
+
+ void clear();
+
+ SVGPoint getItem(int index);
+
+ SVGPoint initialize(SVGPoint item);
+
+ SVGPoint insertItemBefore(SVGPoint item, int index);
+
+ SVGPoint removeItem(int index);
+
+ SVGPoint replaceItem(SVGPoint item, int index);
+}
diff --git a/elemental/src/elemental/svg/SVGPolygonElement.java b/elemental/src/elemental/svg/SVGPolygonElement.java
new file mode 100644
index 0000000..2605cc6
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPolygonElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>polygon</code> element defines a closed shape consisting of a set of connected straight line segments.
+ */
+public interface SVGPolygonElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+ SVGPointList getAnimatedPoints();
+
+ SVGPointList getPoints();
+}
diff --git a/elemental/src/elemental/svg/SVGPolylineElement.java b/elemental/src/elemental/svg/SVGPolylineElement.java
new file mode 100644
index 0000000..90ed0ed
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPolylineElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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
+ */
+public interface SVGPolylineElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+ SVGPointList getAnimatedPoints();
+
+ SVGPointList getPoints();
+}
diff --git a/elemental/src/elemental/svg/SVGPreserveAspectRatio.java b/elemental/src/elemental/svg/SVGPreserveAspectRatio.java
new file mode 100644
index 0000000..86059b1
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGPreserveAspectRatio.java
@@ -0,0 +1,145 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>SVGPreserveAspectRatio</code> interface corresponds to the
+<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>
+<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>
+ */
+public interface SVGPreserveAspectRatio {
+
+ /**
+ * Corresponds to value <code>meet</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_MEETORSLICE_MEET = 1;
+
+ /**
+ * Corresponds to value <code>slice</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_MEETORSLICE_SLICE = 2;
+
+ /**
+ * 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.
+ */
+
+ static final int SVG_MEETORSLICE_UNKNOWN = 0;
+
+ /**
+ * Corresponds to value <code>none</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_NONE = 1;
+
+ /**
+ * 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.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
+
+ /**
+ * Corresponds to value <code>xMaxYMax</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
+
+ /**
+ * Corresponds to value <code>xMaxYMid</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
+
+ /**
+ * Corresponds to value <code>xMaxYMin</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
+
+ /**
+ * Corresponds to value <code>xMidYMax</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
+
+ /**
+ * Corresponds to value <code>xMidYMid</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
+
+ /**
+ * Corresponds to value <code>xMidYMin</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
+
+ /**
+ * Corresponds to value <code>xMinYMax</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
+
+ /**
+ * Corresponds to value <code>xMinYMid</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
+
+ /**
+ * Corresponds to value <code>xMinYMin</code> for attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>.
+ */
+
+ static final int SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
+
+
+ /**
+ * The type of the alignment value as specified by one of the SVG_PRESERVEASPECTRATIO_* constants defined on this interface.
+ */
+ int getAlign();
+
+ void setAlign(int arg);
+
+
+ /**
+ * The type of the meet-or-slice value as specified by one of the SVG_MEETORSLICE_* constants defined on this interface.
+ */
+ int getMeetOrSlice();
+
+ void setMeetOrSlice(int arg);
+}
diff --git a/elemental/src/elemental/svg/SVGRadialGradientElement.java b/elemental/src/elemental/svg/SVGRadialGradientElement.java
new file mode 100644
index 0000000..dcac9e5
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGRadialGradientElement.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGRadialGradientElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/radialGradient"><radialGradient></a></code>
+ element.
+ */
+public interface SVGRadialGradientElement extends SVGGradientElement {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getCx();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getCy();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getFx();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getFy();
+
+ SVGAnimatedLength getR();
+}
diff --git a/elemental/src/elemental/svg/SVGRect.java b/elemental/src/elemental/svg/SVGRect.java
new file mode 100644
index 0000000..5ce2825
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGRect.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<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>
+ */
+public interface SVGRect {
+
+
+ /**
+ * The <em>height</em> coordinate of the rectangle, in user units.
+ */
+ float getHeight();
+
+ void setHeight(float arg);
+
+
+ /**
+ * The <em>width</em> coordinate of the rectangle, in user units.
+ */
+ float getWidth();
+
+ void setWidth(float arg);
+
+ float getX();
+
+ void setX(float arg);
+
+ float getY();
+
+ void setY(float arg);
+}
diff --git a/elemental/src/elemental/svg/SVGRectElement.java b/elemental/src/elemental/svg/SVGRectElement.java
new file mode 100644
index 0000000..5e37c9e
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGRectElement.java
@@ -0,0 +1,68 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGRectElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedHeight();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getRx();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getRy();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getX();
+
+ SVGAnimatedLength getY();
+}
diff --git a/elemental/src/elemental/svg/SVGRenderingIntent.java b/elemental/src/elemental/svg/SVGRenderingIntent.java
new file mode 100644
index 0000000..53d6950
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGRenderingIntent.java
@@ -0,0 +1,43 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGRenderingIntent {
+
+ static final int RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5;
+
+ static final int RENDERING_INTENT_AUTO = 1;
+
+ static final int RENDERING_INTENT_PERCEPTUAL = 2;
+
+ static final int RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3;
+
+ static final int RENDERING_INTENT_SATURATION = 4;
+
+ static final int RENDERING_INTENT_UNKNOWN = 0;
+}
diff --git a/elemental/src/elemental/svg/SVGSVGElement.java b/elemental/src/elemental/svg/SVGSVGElement.java
new file mode 100644
index 0000000..44b6061
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGSVGElement.java
@@ -0,0 +1,316 @@
+/*
+ * 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 elemental.svg;
+import elemental.dom.Element;
+import elemental.dom.NodeList;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ 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.
+ */
+public interface SVGSVGElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGLocatable, SVGFitToViewBox, SVGZoomAndPan {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ String getContentScriptType();
+
+ void setContentScriptType(String arg);
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ String getContentStyleType();
+
+ void setContentStyleType(String arg);
+
+
+ /**
+ * On an outermost <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/svg"><svg></a></code>
+ 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>
+ element).
+ */
+ float getCurrentScale();
+
+ void setCurrentScale(float arg);
+
+
+ /**
+ * On an outermost <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/svg"><svg></a></code>
+ element, the corresponding translation factor that takes into account user "magnification".
+ */
+ SVGPoint getCurrentTranslate();
+
+
+ /**
+ * 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
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/viewBox" class="new">viewBox</a></code>,
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code> and
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/zoomAndPan" class="new">zoomAndPan</a></code> within
+<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
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/transform">transform</a></code> and
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/viewTarget" class="new">viewTarget</a></code> within
+<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>
+ element, then: <ul> <li>the values for
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/viewBox" class="new">viewBox</a></code>,
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code> and
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/zoomAndPan" class="new">zoomAndPan</a></code> within
+<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>
+ element</li> <li>the values for
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/transform">transform</a></code> and
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/viewTarget" class="new">viewTarget</a></code> within
+<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>
+), then: <ul> <li>the values for
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/viewBox" class="new">viewBox</a></code>,
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code> and
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/zoomAndPan" class="new">zoomAndPan</a></code> within
+<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>
+ element</li> <li>the values for
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/transform">transform</a></code> within
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/currentView" class="new">currentView</a></code> will be null</li> <li>the
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/viewTarget" class="new">viewTarget</a></code> within
+<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
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/viewBox" class="new">viewBox</a></code>,
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/preserveAspectRatio">preserveAspectRatio</a></code>,
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/zoomAndPan" class="new">zoomAndPan</a></code>,
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/transform">transform</a></code> and
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/viewTarget" class="new">viewTarget</a></code> within
+<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>
+ */
+ SVGViewSpec getCurrentView();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedHeight();
+
+
+ /**
+ * 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.
+ */
+ float getPixelUnitToMillimeterX();
+
+
+ /**
+ * Corresponding size of a pixel unit along the y-axis of the viewport.
+ */
+ float getPixelUnitToMillimeterY();
+
+
+ /**
+ * 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.
+ */
+ float getScreenPixelToMillimeterX();
+
+
+ /**
+ * Corresponding size of a screen pixel along the y-axis of the viewport.
+ */
+ float getScreenPixelToMillimeterY();
+
+
+ /**
+ * 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>
+ element such as
+<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>
+ 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.
+ */
+ boolean isUseCurrentView();
+
+
+ /**
+ * 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>
+ 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>
+ 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>
+ 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.)
+ */
+ SVGRect getViewport();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getX();
+
+ SVGAnimatedLength getY();
+
+
+ /**
+ * Returns true if this SVG document fragment is in a paused state.
+ */
+ boolean animationsPaused();
+
+
+ /**
+ * 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
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/pointer-events">pointer-events</a></code> processing.
+ */
+ boolean checkEnclosure(SVGElement element, SVGRect rect);
+
+
+ /**
+ * 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
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/pointer-events">pointer-events</a></code> processing.
+ */
+ boolean checkIntersection(SVGElement element, SVGRect rect);
+
+
+ /**
+ * Creates an <code>SVGAngle</code> object outside of any document trees. The object is initialized to a value of zero degrees (unitless).
+ */
+ SVGAngle createSVGAngle();
+
+
+ /**
+ * Creates an <code>SVGLength</code> object outside of any document trees. The object is initialized to a value of zero user units.
+ */
+ SVGLength createSVGLength();
+
+
+ /**
+ * Creates an <code>SVGMatrix</code> object outside of any document trees. The object is initialized to the identity matrix.
+ */
+ SVGMatrix createSVGMatrix();
+
+
+ /**
+ * Creates an <code>SVGNumber</code> object outside of any document trees. The object is initialized to a value of zero.
+ */
+ SVGNumber createSVGNumber();
+
+
+ /**
+ * 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.
+ */
+ SVGPoint createSVGPoint();
+
+
+ /**
+ * 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.
+ */
+ SVGRect createSVGRect();
+
+
+ /**
+ * 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>).
+ */
+ SVGTransform createSVGTransform();
+
+
+ /**
+ * 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>.
+ */
+ SVGTransform createSVGTransformFromMatrix(SVGMatrix matrix);
+
+
+ /**
+ * Unselects any selected objects, including any selections of text strings and type-in bars.
+ */
+ void deselectAll();
+
+
+ /**
+ * In rendering environments supporting interactivity, forces the user agent to immediately redraw all regions of the viewport that require updating.
+ */
+ void forceRedraw();
+
+
+ /**
+ * 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>
+ element before the document's SVGLoad event is dispatched), then 0 is returned.
+ */
+ float getCurrentTime();
+
+
+ /**
+ * 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.
+ */
+ Element getElementById(String elementId);
+
+
+ /**
+ * 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
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/pointer-events">pointer-events</a></code> processing.
+ */
+ NodeList getEnclosureList(SVGRect rect, SVGElement referenceElement);
+
+
+ /**
+ * 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
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/pointer-events">pointer-events</a></code> processing.
+ */
+ NodeList getIntersectionList(SVGRect rect, SVGElement referenceElement);
+
+
+ /**
+ * 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>
+ element, causing the animation clock corresponding to this document fragment to stand still until it is unpaused.
+ */
+ void pauseAnimations();
+
+
+ /**
+ * 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>
+ 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.
+ */
+ void setCurrentTime(float seconds);
+
+
+ /**
+ * <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>
+ */
+ int suspendRedraw(int maxWaitMilliseconds);
+
+
+ /**
+ * 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.
+ */
+ void unpauseAnimations();
+
+
+ /**
+ * Cancels a specified <code>suspendRedraw()</code> by providing a unique suspend handle ID that was returned by a previous <code>suspendRedraw()</code> call.
+ */
+ void unsuspendRedraw(int suspendHandleId);
+
+
+ /**
+ * 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.
+ */
+ void unsuspendRedrawAll();
+}
diff --git a/elemental/src/elemental/svg/SVGScriptElement.java b/elemental/src/elemental/svg/SVGScriptElement.java
new file mode 100644
index 0000000..ea46e5c
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGScriptElement.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ element.
+ */
+public interface SVGScriptElement extends SVGElement, SVGURIReference, SVGExternalResourcesRequired {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ is raised with code <code>NO_MODIFICATION_ALLOWED_ERR</code> on an attempt to change the value of a read only attribut.
+ */
+ String getType();
+
+ void setType(String arg);
+}
diff --git a/elemental/src/elemental/svg/SVGSetElement.java b/elemental/src/elemental/svg/SVGSetElement.java
new file mode 100644
index 0000000..b993f4f
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGSetElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGSetElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/set"><set></a></code>
+ element.
+ */
+public interface SVGSetElement extends SVGAnimationElement {
+}
diff --git a/elemental/src/elemental/svg/SVGStopElement.java b/elemental/src/elemental/svg/SVGStopElement.java
new file mode 100644
index 0000000..cfa043b
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGStopElement.java
@@ -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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGStopElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/stop"><stop></a></code>
+ element.
+ */
+public interface SVGStopElement extends SVGElement, SVGStylable {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedNumber getOffset();
+}
diff --git a/elemental/src/elemental/svg/SVGStringList.java b/elemental/src/elemental/svg/SVGStringList.java
new file mode 100644
index 0000000..d62c055
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGStringList.java
@@ -0,0 +1,86 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>SVGStringList</code> defines a list of <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/DOMString">DOMString</a></code>
+ objects.</p>
+<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>
+ */
+public interface SVGStringList {
+
+ int getNumberOfItems();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ String appendItem(String item);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ void clear();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ String getItem(int index);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ String initialize(String item);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ String insertItemBefore(String item, int index);
+
+
+ /**
+ * <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>
+ 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>
+ with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>
+ */
+ String removeItem(int index);
+
+
+ /**
+ * <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>
+ 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>
+ with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>
+ */
+ String replaceItem(String item, int index);
+}
diff --git a/elemental/src/elemental/svg/SVGStylable.java b/elemental/src/elemental/svg/SVGStylable.java
new file mode 100644
index 0000000..ff37f68
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGStylable.java
@@ -0,0 +1,56 @@
+/*
+ * 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 elemental.svg;
+import elemental.css.CSSStyleDeclaration;
+import elemental.css.CSSValue;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGStylable</code> interface is implemented on all objects corresponding to SVG elements that can have
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/style">style</a></code>, {{SVGAttr("class") and presentation attributes specified on them.
+ */
+public interface SVGStylable {
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/class">class</a></code> on the given element.
+ */
+ SVGAnimatedString getAnimatedClassName();
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/style">style</a></code> on the given element.
+ */
+ CSSStyleDeclaration getSvgStyle();
+
+
+ /**
+ * 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>
+. 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>
+ is attached.
+ */
+ CSSValue getPresentationAttribute(String name);
+}
diff --git a/elemental/src/elemental/svg/SVGStyleElement.java b/elemental/src/elemental/svg/SVGStyleElement.java
new file mode 100644
index 0000000..ae8c4b1
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGStyleElement.java
@@ -0,0 +1,66 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ element.
+ */
+public interface SVGStyleElement extends SVGElement, SVGLangSpace {
+
+ boolean isDisabled();
+
+ void setDisabled(boolean arg);
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ is raised with code <code>NO_MODIFICATION_ALLOWED_ERR</code> on an attempt to change the value of a read only attribut.
+ */
+ String getMedia();
+
+ void setMedia(String arg);
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ is raised with code <code>NO_MODIFICATION_ALLOWED_ERR</code> on an attempt to change the value of a read only attribut.
+ */
+ String getTitle();
+
+ void setTitle(String arg);
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ is raised with code <code>NO_MODIFICATION_ALLOWED_ERR</code> on an attempt to change the value of a read only attribut.
+ */
+ String getType();
+
+ void setType(String arg);
+}
diff --git a/elemental/src/elemental/svg/SVGSwitchElement.java b/elemental/src/elemental/svg/SVGSwitchElement.java
new file mode 100644
index 0000000..0996a5e
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGSwitchElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGSwitchElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/switch"><switch></a></code>
+ element.
+ */
+public interface SVGSwitchElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+}
diff --git a/elemental/src/elemental/svg/SVGSymbolElement.java b/elemental/src/elemental/svg/SVGSymbolElement.java
new file mode 100644
index 0000000..c1a8c9a
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGSymbolElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGSymbolElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/symbol"><symbol></a></code>
+ element.
+ */
+public interface SVGSymbolElement extends SVGElement, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGFitToViewBox {
+}
diff --git a/elemental/src/elemental/svg/SVGTRefElement.java b/elemental/src/elemental/svg/SVGTRefElement.java
new file mode 100644
index 0000000..5b78923
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTRefElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGTRefElement extends SVGTextPositioningElement, SVGURIReference {
+}
diff --git a/elemental/src/elemental/svg/SVGTSpanElement.java b/elemental/src/elemental/svg/SVGTSpanElement.java
new file mode 100644
index 0000000..93c613b
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTSpanElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGTSpanElement extends SVGTextPositioningElement {
+}
diff --git a/elemental/src/elemental/svg/SVGTests.java b/elemental/src/elemental/svg/SVGTests.java
new file mode 100644
index 0000000..be76cc5
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTests.java
@@ -0,0 +1,61 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Interface <code>SVGTests</code> defines an interface which applies to all elements which have attributes
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/requiredFeatures">requiredFeatures</a></code>,
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/requiredExtensions" class="new">requiredExtensions</a></code> and
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/systemLanguage" class="new">systemLanguage</a></code>.
+ */
+public interface SVGTests {
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/requiredExtensions" class="new">requiredExtensions</a></code> on the given element.
+ */
+ SVGStringList getRequiredExtensions();
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/requiredFeatures">requiredFeatures</a></code> on the given element.
+ */
+ SVGStringList getRequiredFeatures();
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/systemLanguage" class="new">systemLanguage</a></code> on the given element.
+ */
+ SVGStringList getSystemLanguage();
+
+
+ /**
+ * Returns true if the browser supports the given extension, specified by a URI.
+ */
+ boolean hasExtension(String extension);
+}
diff --git a/elemental/src/elemental/svg/SVGTextContentElement.java b/elemental/src/elemental/svg/SVGTextContentElement.java
new file mode 100644
index 0000000..2b2aa6b
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTextContentElement.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGTextContentElement extends SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable {
+
+ static final int LENGTHADJUST_SPACING = 1;
+
+ static final int LENGTHADJUST_SPACINGANDGLYPHS = 2;
+
+ static final int LENGTHADJUST_UNKNOWN = 0;
+
+ SVGAnimatedEnumeration getLengthAdjust();
+
+ SVGAnimatedLength getTextLength();
+
+ int getCharNumAtPosition(SVGPoint point);
+
+ float getComputedTextLength();
+
+ SVGPoint getEndPositionOfChar(int offset);
+
+ SVGRect getExtentOfChar(int offset);
+
+ int getNumberOfChars();
+
+ float getRotationOfChar(int offset);
+
+ SVGPoint getStartPositionOfChar(int offset);
+
+ float getSubStringLength(int offset, int length);
+
+ void selectSubString(int offset, int length);
+}
diff --git a/elemental/src/elemental/svg/SVGTextElement.java b/elemental/src/elemental/svg/SVGTextElement.java
new file mode 100644
index 0000000..c3982cc
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTextElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGTextElement extends SVGTextPositioningElement, SVGTransformable {
+}
diff --git a/elemental/src/elemental/svg/SVGTextPathElement.java b/elemental/src/elemental/svg/SVGTextPathElement.java
new file mode 100644
index 0000000..3ff7643
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTextPathElement.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ 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>
+, 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>
+ element.
+ */
+public interface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {
+
+ static final int TEXTPATH_METHODTYPE_ALIGN = 1;
+
+ static final int TEXTPATH_METHODTYPE_STRETCH = 2;
+
+ static final int TEXTPATH_METHODTYPE_UNKNOWN = 0;
+
+ static final int TEXTPATH_SPACINGTYPE_AUTO = 1;
+
+ static final int TEXTPATH_SPACINGTYPE_EXACT = 2;
+
+ static final int TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
+
+ SVGAnimatedEnumeration getMethod();
+
+ SVGAnimatedEnumeration getSpacing();
+
+ SVGAnimatedLength getStartOffset();
+}
diff --git a/elemental/src/elemental/svg/SVGTextPositioningElement.java b/elemental/src/elemental/svg/SVGTextPositioningElement.java
new file mode 100644
index 0000000..b4b73e9
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTextPositioningElement.java
@@ -0,0 +1,60 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGTSpanElement">SVGTSpanElement</a></code>
+, <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGTRefElement">SVGTRefElement</a></code>
+ and <code><a rel="internal" href="https://developer.mozilla.org/Article_not_found?uri=en/DOM/SVGAltGlyphElement" class="new">SVGAltGlyphElement</a></code>
+.
+ */
+public interface SVGTextPositioningElement extends SVGTextContentElement {
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/dx" class="new">dx</a></code> on the given element.
+ */
+ SVGAnimatedLengthList getDx();
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/dy" class="new">dy</a></code> on the given element.
+ */
+ SVGAnimatedLengthList getDy();
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="internal" href="https://developer.mozilla.org/en/SVG/Attribute/rotate" class="new">rotate</a></code> on the given element.
+ */
+ SVGAnimatedNumberList getRotate();
+
+ SVGAnimatedLengthList getX();
+
+ SVGAnimatedLengthList getY();
+}
diff --git a/elemental/src/elemental/svg/SVGTitleElement.java b/elemental/src/elemental/svg/SVGTitleElement.java
new file mode 100644
index 0000000..1fa274a
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTitleElement.java
@@ -0,0 +1,32 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * The <code>SVGTitleElement</code> interface corresponds to the <code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Element/title"><title></a></code>
+ element.
+ */
+public interface SVGTitleElement extends SVGElement, SVGLangSpace, SVGStylable {
+}
diff --git a/elemental/src/elemental/svg/SVGTransform.java b/elemental/src/elemental/svg/SVGTransform.java
new file mode 100644
index 0000000..f3b8d05
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTransform.java
@@ -0,0 +1,117 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+; thus, an <code>SVGTransform</code> object corresponds to a single component (e.g., <code>scale(…)</code> or <code>matrix(…)</code>) within a
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/transform">transform</a></code> attribute.</p>
+<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>
+ */
+public interface SVGTransform {
+
+ /**
+ * A <code>matrix(…)</code> transformation
+ */
+
+ static final int SVG_TRANSFORM_MATRIX = 1;
+
+ static final int SVG_TRANSFORM_ROTATE = 4;
+
+ /**
+ * A <code>scale(…)</code> transformation
+ */
+
+ static final int SVG_TRANSFORM_SCALE = 3;
+
+ static final int SVG_TRANSFORM_SKEWX = 5;
+
+ static final int SVG_TRANSFORM_SKEWY = 6;
+
+ /**
+ * A <code>translate(…)</code> transformation
+ */
+
+ static final int SVG_TRANSFORM_TRANSLATE = 2;
+
+ /**
+ * 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.
+ */
+
+ static final int SVG_TRANSFORM_UNKNOWN = 0;
+
+
+ /**
+ * 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.
+ */
+ float getAngle();
+
+
+ /**
+ * <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>
+ */
+ SVGMatrix getMatrix();
+
+
+ /**
+ * The type of the value as specified by one of the SVG_TRANSFORM_* constants defined on this interface.
+ */
+ int getType();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ void setRotate(float angle, float cx, float cy);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ void setScale(float sx, float sy);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ void setSkewX(float angle);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ void setSkewY(float angle);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ void setTranslate(float tx, float ty);
+}
diff --git a/elemental/src/elemental/svg/SVGTransformList.java b/elemental/src/elemental/svg/SVGTransformList.java
new file mode 100644
index 0000000..cfb51c7
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTransformList.java
@@ -0,0 +1,96 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>SVGTransformList</code> defines a list of <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/SVGTransform">SVGTransform</a></code>
+ objects.</p>
+<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>
+<div class="geckoVersionNote"> <p>
+</p><div class="geckoVersionHeading">Gecko 9.0 note<div>(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+</div></div>
+<p></p> <p>Starting in Gecko 9.0 (Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+,the <code>SVGTransformList</code> DOM interface is now indexable and can be accessed like Arrays</p>
+</div>
+ */
+public interface SVGTransformList {
+
+ int getNumberOfItems();
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGTransform appendItem(SVGTransform item);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ void clear();
+
+ SVGTransform consolidate();
+
+ SVGTransform createSVGTransformFromMatrix(SVGMatrix matrix);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGTransform getItem(int index);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGTransform initialize(SVGTransform item);
+
+
+ /**
+ * <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>
+ 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>
+ */
+ SVGTransform insertItemBefore(SVGTransform item, int index);
+
+
+ /**
+ * <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>
+ 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>
+ with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>
+ */
+ SVGTransform removeItem(int index);
+
+
+ /**
+ * <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>
+ 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>
+ with code <code>INDEX_SIZE_ERR</code> is raised if the index number is greater than or equal to <code>numberOfItems</code>.</li> </ul>
+ */
+ SVGTransform replaceItem(SVGTransform item, int index);
+}
diff --git a/elemental/src/elemental/svg/SVGTransformable.java b/elemental/src/elemental/svg/SVGTransformable.java
new file mode 100644
index 0000000..9be9c51
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGTransformable.java
@@ -0,0 +1,39 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Interface <code>SVGTransformable</code> contains properties and methods that apply to all elements which have attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/transform">transform</a></code>.
+ */
+public interface SVGTransformable extends SVGLocatable {
+
+
+ /**
+ * Corresponds to attribute
+<code><a rel="custom" href="https://developer.mozilla.org/en/SVG/Attribute/transform">transform</a></code> on the given element.
+ */
+ SVGAnimatedTransformList getAnimatedTransform();
+}
diff --git a/elemental/src/elemental/svg/SVGURIReference.java b/elemental/src/elemental/svg/SVGURIReference.java
new file mode 100644
index 0000000..b01ea6d
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGURIReference.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGURIReference {
+
+ SVGAnimatedString getAnimatedHref();
+}
diff --git a/elemental/src/elemental/svg/SVGUnitTypes.java b/elemental/src/elemental/svg/SVGUnitTypes.java
new file mode 100644
index 0000000..5bc83ee
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGUnitTypes.java
@@ -0,0 +1,37 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGUnitTypes {
+
+ static final int SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
+
+ static final int SVG_UNIT_TYPE_UNKNOWN = 0;
+
+ static final int SVG_UNIT_TYPE_USERSPACEONUSE = 1;
+}
diff --git a/elemental/src/elemental/svg/SVGUseElement.java b/elemental/src/elemental/svg/SVGUseElement.java
new file mode 100644
index 0000000..11c90f1
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGUseElement.java
@@ -0,0 +1,68 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGUseElement extends SVGElement, SVGURIReference, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {
+
+
+ /**
+ * If the
+<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
+<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>
+ to learn more about the instance tree.
+ */
+ SVGElementInstance getAnimatedInstanceRoot();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedHeight();
+
+
+ /**
+ * 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>
+ to learn more about the instance tree.
+ */
+ SVGElementInstance getInstanceRoot();
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element.
+ */
+ SVGAnimatedLength getAnimatedWidth();
+
+ SVGAnimatedLength getX();
+
+ SVGAnimatedLength getY();
+}
diff --git a/elemental/src/elemental/svg/SVGVKernElement.java b/elemental/src/elemental/svg/SVGVKernElement.java
new file mode 100644
index 0000000..a75e0f5
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGVKernElement.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+ elements.</p>
+<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>
+ element via the SVG DOM is not possible.</p>
+ */
+public interface SVGVKernElement extends SVGElement {
+}
diff --git a/elemental/src/elemental/svg/SVGViewElement.java b/elemental/src/elemental/svg/SVGViewElement.java
new file mode 100644
index 0000000..13156d3
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGViewElement.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>
+ elements, as well as methods to manipulate them.
+ */
+public interface SVGViewElement extends SVGElement, SVGExternalResourcesRequired, SVGFitToViewBox, SVGZoomAndPan {
+
+
+ /**
+ * Corresponds to attribute
+<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>
+ element. A list of DOMString values which contain the names listed in the
+<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.
+ */
+ SVGStringList getViewTarget();
+}
diff --git a/elemental/src/elemental/svg/SVGViewSpec.java b/elemental/src/elemental/svg/SVGViewSpec.java
new file mode 100644
index 0000000..0e998a7
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGViewSpec.java
@@ -0,0 +1,51 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGViewSpec {
+
+ SVGAnimatedPreserveAspectRatio getPreserveAspectRatio();
+
+ String getPreserveAspectRatioString();
+
+ SVGTransformList getTransform();
+
+ String getTransformString();
+
+ SVGAnimatedRect getViewBox();
+
+ String getViewBoxString();
+
+ SVGElement getViewTarget();
+
+ String getViewTargetString();
+
+ int getZoomAndPan();
+
+ void setZoomAndPan(int arg);
+}
diff --git a/elemental/src/elemental/svg/SVGZoomAndPan.java b/elemental/src/elemental/svg/SVGZoomAndPan.java
new file mode 100644
index 0000000..0cd6b26
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGZoomAndPan.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.svg;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGZoomAndPan {
+
+ static final int SVG_ZOOMANDPAN_DISABLE = 1;
+
+ static final int SVG_ZOOMANDPAN_MAGNIFY = 2;
+
+ static final int SVG_ZOOMANDPAN_UNKNOWN = 0;
+
+ int getZoomAndPan();
+
+ void setZoomAndPan(int arg);
+}
diff --git a/elemental/src/elemental/svg/SVGZoomEvent.java b/elemental/src/elemental/svg/SVGZoomEvent.java
new file mode 100644
index 0000000..0fe14a2
--- /dev/null
+++ b/elemental/src/elemental/svg/SVGZoomEvent.java
@@ -0,0 +1,42 @@
+/*
+ * 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 elemental.svg;
+import elemental.events.UIEvent;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface SVGZoomEvent extends UIEvent {
+
+ float getNewScale();
+
+ SVGPoint getNewTranslate();
+
+ float getPreviousScale();
+
+ SVGPoint getPreviousTranslate();
+
+ SVGRect getZoomRectScreen();
+}
diff --git a/elemental/src/elemental/traversal/NodeFilter.java b/elemental/src/elemental/traversal/NodeFilter.java
new file mode 100644
index 0000000..ab1515f
--- /dev/null
+++ b/elemental/src/elemental/traversal/NodeFilter.java
@@ -0,0 +1,166 @@
+/*
+ * 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 elemental.traversal;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface NodeFilter {
+
+ /**
+ * 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>
+ method when a node should be accepted.
+ */
+
+ static final short FILTER_ACCEPT = 1;
+
+ /**
+ * 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>
+ 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>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/TreeWalker">TreeWalker</a></code>
+ object; this value is treated as "skip this node and all its children".
+ */
+
+ static final short FILTER_REJECT = 2;
+
+ /**
+ * 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>
+ for nodes to be skipped by the <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/NodeIterator">NodeIterator</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/TreeWalker">TreeWalker</a></code>
+ object. The children of skipped nodes are still considered. This is treated as "skip this node but not its children".
+ */
+
+ static final short FILTER_SKIP = 3;
+
+ /**
+ * Shows all nodes.
+ */
+
+ static final int SHOW_ALL = 0xFFFFFFFF;
+
+ /**
+ * Shows attribute <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Attr">Attr</a></code>
+ nodes. This is meaningful only when creating a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/NodeIterator">NodeIterator</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/TreeWalker">TreeWalker</a></code>
+ with an <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Attr">Attr</a></code>
+ 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.
+ */
+
+ static final int SHOW_ATTRIBUTE = 0x00000002;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/CDATASection">CDATASection</a></code>
+ nodes.
+ */
+
+ static final int SHOW_CDATA_SECTION = 0x00000008;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Comment">Comment</a></code>
+ nodes.
+ */
+
+ static final int SHOW_COMMENT = 0x00000080;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Document">Document</a></code>
+ nodes.
+ */
+
+ static final int SHOW_DOCUMENT = 0x00000100;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/DocumentFragment">DocumentFragment</a></code>
+ nodes.
+ */
+
+ static final int SHOW_DOCUMENT_FRAGMENT = 0x00000400;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/DocumentType">DocumentType</a></code>
+ nodes.
+ */
+
+ static final int SHOW_DOCUMENT_TYPE = 0x00000200;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Element">Element</a></code>
+ nodes.
+ */
+
+ static final int SHOW_ELEMENT = 0x00000001;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Entity">Entity</a></code>
+ nodes. This is meaningful only when creating a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/NodeIterator">NodeIterator</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/TreeWalker">TreeWalker</a></code>
+ with an <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Entity">Entity</a></code>
+ 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>
+ 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.
+ */
+
+ static final int SHOW_ENTITY = 0x00000020;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/EntityReference">EntityReference</a></code>
+ nodes.
+ */
+
+ static final int SHOW_ENTITY_REFERENCE = 0x00000010;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Notation">Notation</a></code>
+ nodes. This is meaningful only when creating a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/NodeIterator">NodeIterator</a></code>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/TreeWalker">TreeWalker</a></code>
+ with a <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Notation">Notation</a></code>
+ 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>
+ 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.
+ */
+
+ static final int SHOW_NOTATION = 0x00000800;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/ProcessingInstruction">ProcessingInstruction</a></code>
+ nodes.
+ */
+
+ static final int SHOW_PROCESSING_INSTRUCTION = 0x00000040;
+
+ /**
+ * Shows <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Text">Text</a></code>
+ nodes.
+ */
+
+ static final int SHOW_TEXT = 0x00000004;
+
+
+ /**
+ * 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>
+ or <code><a rel="custom" href="https://developer.mozilla.org/en/DOM/TreeWalker">TreeWalker</a></code>
+.
+ */
+ short acceptNode(Node n);
+}
diff --git a/elemental/src/elemental/traversal/NodeIterator.java b/elemental/src/elemental/traversal/NodeIterator.java
new file mode 100644
index 0000000..67b9f90
--- /dev/null
+++ b/elemental/src/elemental/traversal/NodeIterator.java
@@ -0,0 +1,50 @@
+/*
+ * 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 elemental.traversal;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface NodeIterator {
+
+ boolean isExpandEntityReferences();
+
+ NodeFilter getFilter();
+
+ boolean isPointerBeforeReferenceNode();
+
+ Node getReferenceNode();
+
+ Node getRoot();
+
+ int getWhatToShow();
+
+ void detach();
+
+ Node nextNode();
+
+ Node previousNode();
+}
diff --git a/elemental/src/elemental/traversal/TreeWalker.java b/elemental/src/elemental/traversal/TreeWalker.java
new file mode 100644
index 0000000..e67c991
--- /dev/null
+++ b/elemental/src/elemental/traversal/TreeWalker.java
@@ -0,0 +1,59 @@
+/*
+ * 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 elemental.traversal;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>The <code>TreeWalker</code> object represents the nodes of a document subtree and a position within them.</p>
+<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>
+ */
+public interface TreeWalker {
+
+ Node getCurrentNode();
+
+ void setCurrentNode(Node arg);
+
+ boolean isExpandEntityReferences();
+
+ NodeFilter getFilter();
+
+ Node getRoot();
+
+ int getWhatToShow();
+
+ Node firstChild();
+
+ Node lastChild();
+
+ Node nextNode();
+
+ Node nextSibling();
+
+ Node parentNode();
+
+ Node previousNode();
+
+ Node previousSibling();
+}
diff --git a/elemental/src/elemental/util/ArrayOf.java b/elemental/src/elemental/util/ArrayOf.java
new file mode 100644
index 0000000..b5a4e43
--- /dev/null
+++ b/elemental/src/elemental/util/ArrayOf.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight array of homogeneous Object values.
+ *
+ * @param <T>
+ *
+ * @see elemental.js.util.JsArrayOf
+ */
+public interface ArrayOf<T> {
+
+ /**
+ * Returns a new array that is the concatenation of this array and <code>
+ * values</code>. This method does not mutate the current array.
+ */
+ ArrayOf<T> concat(ArrayOf<T> values);
+
+ /**
+ * Indicates whether the array contains the specified value.
+ */
+ boolean contains(T value);
+
+ /**
+ * Gets the value at a given index.
+ *
+ * @param index the index to be retrieved
+ * @return the value at the given index
+ */
+ T get(int index);
+
+ /**
+ * Returns the index of the specified value or <code>-1</code> if the value is
+ * not found.
+ */
+ int indexOf(T value);
+
+ /**
+ * Inserts a new element into the array at the specified index.
+ *
+ * Note: If index >= the length of the array, the element will be appended to
+ * the end. Also if the index is negative, the element will be inserted
+ * starting from the end of the array.
+ */
+ void insert(int index, T value);
+
+ /**
+ * Returns true if the length of the array is zero.
+ *
+ * @return true when length is zero
+ */
+ boolean isEmpty();
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join();
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join(String separator);
+
+ /**
+ * Gets the length of the array.
+ *
+ * @return the array length
+ */
+ int length();
+
+ /**
+ * Returns the last value of the array;
+ *
+ * @return the last value
+ */
+ T peek();
+
+ /**
+ * Remove and return the element from the end of the array.
+ *
+ * @return the removed value
+ */
+ T pop();
+
+ /**
+ * Pushes the given value onto the end of the array.
+ */
+ void push(T value);
+
+ /**
+ * Searches for the specified value in the array and removes the first
+ * occurrence if found.
+ */
+ void remove(T value);
+
+ /**
+ * Removes the element at the specified index.
+ */
+ void removeByIndex(int index);
+
+ /**
+ * sets the value value at a given index.
+ *
+ * if the index is out of bounds, the value will still be set. the array's
+ * length will be updated to encompass the bounds implied by the added value.
+ *
+ * @param index the index to be set
+ * @param value the value to be stored
+ */
+ void set(int index, T value);
+
+ /**
+ * Reset the length of the array.
+ *
+ * @param length the new length of the array
+ */
+ void setLength(int length);
+
+ /**
+ * Shifts the first value off the array.
+ *
+ * @return the shifted value
+ */
+ T shift();
+
+ /**
+ * Sorts the contents of the Array based on the {@link CanCompare}.
+ *
+ * @param comparator
+ */
+ void sort(CanCompare<T> comparator);
+
+ /**
+ * Removes the specified number of elements starting at index and returns the
+ * removed elements.
+ */
+ ArrayOf<T> splice(int index, int count);
+
+ /**
+ * Shifts a value onto the beginning of the array.
+ *
+ * @param value the value to the stored
+ */
+ void unshift(T value);
+}
diff --git a/elemental/src/elemental/util/ArrayOfBoolean.java b/elemental/src/elemental/util/ArrayOfBoolean.java
new file mode 100644
index 0000000..1dd5c81
--- /dev/null
+++ b/elemental/src/elemental/util/ArrayOfBoolean.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight array of booleans.
+ *
+ * @see elemental.js.util.JsArrayOfBoolean
+ */
+public interface ArrayOfBoolean {
+ /**
+ * Returns a new array that is the concatenation of this array and <code>
+ * values</code>. This method does not mutate the current array.
+ */
+ ArrayOfBoolean concat(ArrayOfBoolean values);
+
+ /**
+ * Indicates whether the array contains the specified value.
+ */
+ boolean contains(boolean value);
+
+ /**
+ * Gets the value at a given index.
+ *
+ * @param index the index to be retrieved
+ * @return the value at the given index
+ */
+ boolean get(int index);
+
+ /**
+ * Returns the index of the specified value or <code>-1</code> if the value is
+ * not found.
+ */
+ int indexOf(boolean value);
+
+ /**
+ * Inserts a new element into the array at the specified index.
+ *
+ * Note: If index >= the length of the array, the element will be appended to
+ * the end. Also if the index is negative, the element will be inserted
+ * starting from the end of the array.
+ */
+ void insert(int index, boolean value);
+
+ /**
+ * Returns true if the length of the array is zero.
+ *
+ * @return true when length is zero
+ */
+ boolean isEmpty();
+
+ /**
+ * Check that the specified <code>index</code> has been initialized to a valid
+ * value.
+ */
+ boolean isSet(int index);
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join();
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join(String separator);
+
+ /**
+ * Gets the length of the array.
+ *
+ * @return the array length
+ */
+ int length();
+
+ /**
+ * Returns the last value of the array;
+ *
+ * @return the last value
+ */
+ boolean peek();
+
+ /**
+ * Remove and return the element from the end of the array.
+ *
+ * @return the removed value
+ */
+ boolean pop();
+
+ /**
+ * Pushes the given boolean onto the end of the array.
+ */
+ void push(boolean value);
+
+ /**
+ * Searches for the specified value in the array and removes the first
+ * occurrence if found.
+ */
+ void remove(boolean value);
+
+ /**
+ * Removes the element at the specified index.
+ */
+ void removeByIndex(int index);
+
+ /**
+ * Sets the value value at a given index.
+ *
+ * If the index is out of bounds, the value will still be set. The array's
+ * length will be updated to encompass the bounds implied by the added value.
+ *
+ * @param index the index to be set
+ * @param value the value to be stored
+ */
+ void set(int index, boolean value);
+
+ /**
+ * Reset the length of the array.
+ *
+ * @param length the new length of the array
+ */
+ void setLength(int length);
+
+ /**
+ * Shifts the first value off the array.
+ *
+ * @return the shifted value
+ */
+ boolean shift();
+
+ /**
+ * Removes the specified number of elements starting at index and returns the
+ * removed elements.
+ */
+ ArrayOfBoolean splice(int index, int count);
+
+ /**
+ * Shifts a value onto the beginning of the array.
+ *
+ * @param value the value to the stored
+ */
+ void unshift(boolean value);
+}
diff --git a/elemental/src/elemental/util/ArrayOfInt.java b/elemental/src/elemental/util/ArrayOfInt.java
new file mode 100644
index 0000000..cb4dbbf
--- /dev/null
+++ b/elemental/src/elemental/util/ArrayOfInt.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight array of integers.
+ *
+ * @see elemental.js.util.JsArrayOfInt
+ */
+public interface ArrayOfInt {
+
+ /**
+ * Returns a new array that is the concatenation of this array and <code>
+ * values</code>. This method does not mutate the current array.
+ */
+ ArrayOfInt concat(ArrayOfInt values);
+
+ /**
+ * Indicates whether the array contains the specified value.
+ */
+ boolean contains(int value);
+
+ /**
+ * Gets the value at a given index.
+ *
+ * If no value exists at the given index, a type-conversion error will occur
+ * in hosted mode and unpredictable behavior may occur in web mode. If the
+ * numeric value returned is non-integral, it will cause a warning in hosted
+ * mode, and may affect the results of mathematical expressions.
+ *
+ * @param index the index to be retrieved
+ * @return the value at the given index
+ */
+ int get(int index);
+
+ /**
+ * Returns the index of the specified value or <code>-1</code> if the value is
+ * not found.
+ */
+ int indexOf(int value);
+
+ /**
+ * Inserts a new element into the array at the specified index.
+ *
+ * Note: If index >= the length of the array, the element will be appended to
+ * the end. Also if the index is negative, the element will be inserted
+ * starting from the end of the array.
+ */
+ void insert(int index, int value);
+
+ /**
+ * Returns true if the length of the array is zero.
+ *
+ * @return true when length is zero
+ */
+ boolean isEmpty();
+
+ /**
+ * Check that the specified <code>index</code> has been initialized to a valid
+ * value.
+ */
+ boolean isSet(int index);
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join();
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join(String separator);
+
+ /**
+ * Gets the length of the array.
+ *
+ * @return the array length
+ */
+ int length();
+
+ /**
+ * Returns the last value of the array;
+ *
+ * @return the last value
+ */
+ int peek();
+
+ /**
+ * Remove and return the element from the end of the array.
+ *
+ * @return the removed value
+ */
+ int pop();
+
+ /**
+ * Pushes the given integer onto the end of the array.
+ */
+ void push(int value);
+
+ /**
+ * Searches for the specified value in the array and removes the first
+ * occurrence if found.
+ */
+ void remove(int value);
+
+ /**
+ * Removes the element at the specified index.
+ */
+ void removeByIndex(int index);
+
+ /**
+ * Sets the value value at a given index.
+ *
+ * If the index is out of bounds, the value will still be set. The array's
+ * length will be updated to encompass the bounds implied by the added value.
+ *
+ * @param index the index to be set
+ * @param value the value to be stored
+ */
+ void set(int index, int value);
+
+ /**
+ * Reset the length of the array.
+ *
+ * @param length the new length of the array
+ */
+ void setLength(int length);
+
+ /**
+ * Shifts the first value off the array.
+ *
+ * @return the shifted value
+ */
+ int shift();
+
+ /**
+ * Sorts the contents of the array in ascending order.
+ */
+ void sort();
+
+ /**
+ * Sorts the contents of the Array based on the {@link CanCompareInt}.
+ *
+ * @param comparator
+ */
+ void sort(CanCompareInt comparator);
+
+ /**
+ * Removes the specified number of elements starting at index and returns the
+ * removed elements.
+ */
+ ArrayOfInt splice(int index, int count);
+
+ /**
+ * Shifts a value onto the beginning of the array.
+ *
+ * @param value the value to the stored
+ */
+ void unshift(int value);
+}
diff --git a/elemental/src/elemental/util/ArrayOfNumber.java b/elemental/src/elemental/util/ArrayOfNumber.java
new file mode 100644
index 0000000..fc25a54
--- /dev/null
+++ b/elemental/src/elemental/util/ArrayOfNumber.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight array of numbers.
+ *
+ * @see elemental.js.util.JsArrayOfNumber
+ */
+public interface ArrayOfNumber {
+ /**
+ * Returns a new array that is the concatenation of this array and <code>
+ * values</code>. This method does not mutate the current array.
+ */
+ ArrayOfNumber concat(ArrayOfNumber values);
+
+ /**
+ * Gets the value at a given index.
+ *
+ * If an undefined or non-numeric value exists at the given index, a
+ * type-conversion error will occur in hosted mode and unpredictable behavior
+ * may occur in web mode.
+ *
+ * @param index the index to be retrieved
+ * @return the value at the given index
+ */
+ double get(int index);
+
+ /**
+ * Inserts a new element into the array at the specified index.
+ *
+ * Note: If index >= the length of the array, the element will be appended to
+ * the end. Also if the index is negative, the element will be inserted
+ * starting from the end of the array.
+ */
+ void insert(int index, double value);
+
+ /**
+ * Returns true if the length of the array is zero.
+ *
+ * @return true when length is zero
+ */
+ boolean isEmpty();
+
+ /**
+ * Check that the specified <code>index</code> has been initialized to a valid
+ * value.
+ */
+ boolean isSet(int index);
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join();
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join(String separator);
+
+ /**
+ * Gets the length of the array.
+ *
+ * @return the array length
+ */
+ int length();
+
+ /**
+ * Returns the last value of the array;
+ *
+ * @return the last value
+ */
+ double peek();
+
+ /**
+ * Remove and return the element from the end of the array.
+ *
+ * @return the removed value
+ */
+ double pop();
+
+ /**
+ * Pushes the given number onto the end of the array.
+ */
+ void push(double value);
+
+ /**
+ * Removes the element at the specified index.
+ */
+ void removeByIndex(int index);
+
+ /**
+ * Sets the value value at a given index.
+ *
+ * If the index is out of bounds, the value will still be set. The array's
+ * length will be updated to encompass the bounds implied by the added value.
+ *
+ * @param index the index to be set
+ * @param value the value to be stored
+ */
+ void set(int index, double value);
+
+ /**
+ * Reset the length of the array.
+ *
+ * @param length the new length of the array
+ */
+ void setLength(int length);
+
+ /**
+ * Shifts the first value off the array.
+ *
+ * @return the shifted value
+ */
+ double shift();
+
+ /**
+ * Sorts the contents of the array in ascending order.
+ */
+ void sort();
+
+ /**
+ * Sorts the contents of the Array based on the {@link CanCompareNumber}.
+ *
+ * @param comparator
+ */
+ void sort(CanCompareNumber comparator);
+
+ /**
+ * Removes the specified number of elements starting at index and returns the
+ * removed elements.
+ */
+ ArrayOfNumber splice(int index, int count);
+
+ /**
+ * Shifts a value onto the beginning of the array.
+ *
+ * @param value the value to the stored
+ */
+ void unshift(double value);
+}
diff --git a/elemental/src/elemental/util/ArrayOfString.java b/elemental/src/elemental/util/ArrayOfString.java
new file mode 100644
index 0000000..a976b0b
--- /dev/null
+++ b/elemental/src/elemental/util/ArrayOfString.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight array of Strings.
+ *
+ * @see elemental.js.util.JsArrayOfString
+ */
+public interface ArrayOfString {
+ /**
+ * Returns a new array that is the concatenation of this array and <code>
+ * values</code>. This method does not mutate the current array.
+ */
+ ArrayOfString concat(ArrayOfString values);
+
+ /**
+ * Indicates whether the array contains the specified value.
+ */
+ boolean contains(String value);
+
+ /**
+ * Gets the value at a given index.
+ *
+ * @param index the index to be retrieved
+ * @return the value at the given index, or <code>null</code> if none exists
+ */
+ String get(int index);
+
+ /**
+ * Returns the index of the specified value or <code>-1</code> if the value is
+ * not found.
+ */
+ int indexOf(String value);
+
+ /**
+ * Inserts a new element into the array at the specified index.
+ *
+ * Note: If index >= the length of the array, the element will be appended to
+ * the end. Also if the index is negative, the element will be inserted
+ * starting from the end of the array.
+ */
+ void insert(int index, String value);
+
+ /**
+ * Returns true if the length of the array is zero.
+ *
+ * @return true when length is zero
+ */
+ boolean isEmpty();
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join();
+
+ /**
+ * Convert each element of the array to a String and join them with a comma
+ * separator. The value returned from this method may vary between browsers
+ * based on how JavaScript values are converted into strings.
+ */
+ String join(String separator);
+
+ /**
+ * Gets the length of the array.
+ *
+ * @return the array length
+ */
+ int length();
+
+ /**
+ * Returns the last value of the array;
+ *
+ * @return the last value
+ */
+ String peek();
+
+ /**
+ * Remove and return the element from the end of the array.
+ *
+ * @return the removed value
+ */
+ String pop();
+
+ /**
+ * Pushes the given value onto the end of the array.
+ */
+ void push(String value);
+
+ /**
+ * Searches for the specified value in the array and removes the first
+ * occurrence if found.
+ */
+ void remove(String value);
+
+ /**
+ * Removes the element at the specified index.
+ */
+ void removeByIndex(int index);
+
+ /**
+ * Sets the value value at a given index.
+ *
+ * If the index is out of bounds, the value will still be set. The array's
+ * length will be updated to encompass the bounds implied by the added value.
+ *
+ * @param index the index to be set
+ * @param value the value to be stored
+ */
+ void set(int index, String value);
+
+ /**
+ * Reset the length of the array.
+ *
+ * @param length the new length of the array
+ */
+ void setLength(int length);
+
+ /**
+ * Shifts the first value off the array.
+ *
+ * @return the shifted value
+ */
+ String shift();
+
+ /**
+ * Sorts the contents of the array in ascending order.
+ */
+ void sort();
+
+ /**
+ * Sorts the contents of the Array based on the {@link CanCompareString}.
+ *
+ * @param comparator
+ */
+ void sort(CanCompareString comparator);
+
+ /**
+ * Removes the specified number of elements starting at index and returns the
+ * removed elements.
+ */
+ ArrayOfString splice(int index, int count);
+
+ /**
+ * Shifts a value onto the beginning of the array.
+ *
+ * @param value the value to the stored
+ */
+ void unshift(String value);
+}
diff --git a/elemental/src/elemental/util/CanCompare.java b/elemental/src/elemental/util/CanCompare.java
new file mode 100644
index 0000000..4e18ec7
--- /dev/null
+++ b/elemental/src/elemental/util/CanCompare.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.util;
+
+import elemental.util.ArrayOf;
+
+/**
+ * A comparison function which imposes total ordering on a set of objects.
+ *
+ * @see ArrayOf#sort(CanCompare)
+ *
+ * @param <T>
+ */
+public interface CanCompare<T> {
+
+ /**
+ * Compares its two arguments for order.
+ *
+ * @param a the first object to be compared
+ * @param b the second object to be compared
+ * @return a negative integer, zero, or a positive integer as the first
+ * argument is less than, equal to, or greater than the second
+ */
+ int compare(T a, T b);
+}
diff --git a/elemental/src/elemental/util/CanCompareInt.java b/elemental/src/elemental/util/CanCompareInt.java
new file mode 100644
index 0000000..bc1a20b
--- /dev/null
+++ b/elemental/src/elemental/util/CanCompareInt.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.util;
+
+import elemental.util.ArrayOfInt;
+
+/**
+ * A comparison function which imposes total ordering on a set of integers.
+ *
+ * @see ArrayOfInt#sort(CanCompareInt)
+ */
+public interface CanCompareInt {
+
+ /**
+ * Compares its two arguments for order.
+ *
+ * @param a the first integer to be compared
+ * @param b the second integer to be compared
+ * @return a negative integer, zero, or a positive integer as the first
+ * argument is less than, equal to, or greater than the second
+ */
+ int compare(int a, int b);
+}
diff --git a/elemental/src/elemental/util/CanCompareNumber.java b/elemental/src/elemental/util/CanCompareNumber.java
new file mode 100644
index 0000000..81c7749
--- /dev/null
+++ b/elemental/src/elemental/util/CanCompareNumber.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.util;
+
+import elemental.util.ArrayOfNumber;
+
+/**
+ * A comparison function which imposes total ordering on a set of numbers.
+ *
+ * @see ArrayOfNumber#sort(CanCompareNumber)
+ */
+public interface CanCompareNumber {
+
+ /**
+ * Compares its two arguments for order.
+ *
+ * @param a the first number to be compared
+ * @param b the second number to be compared
+ * @return a negative integer, zero, or a positive integer as the first
+ * argument is less than, equal to, or greater than the second
+ */
+ int compare(double a, double b);
+}
diff --git a/elemental/src/elemental/util/CanCompareString.java b/elemental/src/elemental/util/CanCompareString.java
new file mode 100644
index 0000000..5c4f996
--- /dev/null
+++ b/elemental/src/elemental/util/CanCompareString.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.util;
+
+import elemental.util.ArrayOfString;
+
+/**
+ * A comparison function which imposes total ordering on a set of numbers.
+ *
+ * @see ArrayOfString#sort(CanCompareString)
+ */
+public interface CanCompareString {
+
+ /**
+ * Compares its two arguments for order.
+ *
+ * @param a the first string to be compared
+ * @param b the second string to be compared
+ * @return a negative integer, zero, or a positive integer as the first
+ * argument is less than, equal to, or greater than the second
+ */
+ int compare(String a, String b);
+}
diff --git a/elemental/src/elemental/util/Collections.java b/elemental/src/elemental/util/Collections.java
new file mode 100644
index 0000000..738a42d
--- /dev/null
+++ b/elemental/src/elemental/util/Collections.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2011 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 elemental.util;
+
+import com.google.gwt.core.client.GWT;
+
+import elemental.util.impl.JreArrayOf;
+import elemental.util.impl.JreArrayOfBoolean;
+import elemental.util.impl.JreArrayOfInt;
+import elemental.util.impl.JreArrayOfNumber;
+import elemental.util.impl.JreArrayOfString;
+import elemental.util.impl.JreMapFromIntTo;
+import elemental.util.impl.JreMapFromIntToString;
+import elemental.util.impl.JreMapFromStringTo;
+import elemental.util.impl.JreMapFromStringToBoolean;
+import elemental.util.impl.JreMapFromStringToInt;
+import elemental.util.impl.JreMapFromStringToNumber;
+import elemental.util.impl.JreMapFromStringToString;
+
+/**
+ * Factory and utility methods for elemental collections.
+ */
+public class Collections {
+
+ /**
+ * Create an ArrayOf collection using the most efficient implementation strategy for the given
+ * client.
+ *
+ * @param <T> the element type contained in the collection
+ * @return a JreArrayOf or JsArrayOf instance
+ */
+ public static <T> ArrayOf<T> arrayOf() {
+ return new JreArrayOf<T>();
+ }
+
+ /**
+ * Create an ArrayOfBoolean collection using the most efficient implementation strategy for the
+ * given client.
+ *
+ * @return a JreArrayOfBoolean or JsArrayOfBoolean instance
+ */
+ public static <T> ArrayOfBoolean arrayOfBoolean() {
+ return new JreArrayOfBoolean();
+ }
+
+ /**
+ * Create an ArrayOfInt collection using the most efficient implementation strategy for the given
+ * client.
+ *
+ * @return a JreArrayOfInt or JsArrayOfInt instance
+ */
+ public static <T> ArrayOfInt arrayOfInt() {
+ return new JreArrayOfInt();
+ }
+
+ /**
+ * Create an ArrayOfNumber collection using the most efficient implementation strategy for the
+ * given client.
+ *
+ * @return a JreArrayOfNumber or JsArrayOfNumber instance
+ */
+ public static <T> ArrayOfNumber arrayOfNumber() {
+ return new JreArrayOfNumber();
+ }
+
+ /**
+ * Create an ArrayOfString collection using the most efficient implementation strategy for the
+ * given client.
+ *
+ * @return a JreArrayOfString or JsArrayOfString instance
+ */
+ public static <T> ArrayOfString arrayOfString() {
+ return new JreArrayOfString();
+ }
+
+ /**
+ * Create a MapFromIntTo collection for a given type using the most efficient implementation
+ * strategy for the given client.
+ *
+ * @param <T> the element type contained in the collection
+ * @return a JreMapFromIntTo or JsMapFromIntTo instance
+ */
+ public static <T> MapFromIntTo<T> mapFromIntTo() {
+ return new JreMapFromIntTo<T>();
+ }
+
+ /**
+ * Create a MapFromIntToString collection for a given type using the most efficient implementation
+ * strategy for the given client.
+ *
+ * @return a JreMapFromIntToString or JsMapFromIntToString instance
+ */
+ public static MapFromIntToString mapFromIntToString() {
+ return new JreMapFromIntToString();
+ }
+
+ /**
+ * Create a MapFromStringTo collection for a given type using the most efficient implementation
+ * strategy for the given client.
+ *
+ * @param <T> the element type contained in the collection
+ * @return a JreMapFromStringTo or JsMapFromStringTo instance
+ */
+ public static <T> MapFromStringTo<T> mapFromStringTo() {
+ return new JreMapFromStringTo<T>();
+ }
+
+ /**
+ * Create a MapFromStringToBoolean collection for a given type using the most efficient
+ * implementation strategy for the given client.
+ *
+ * @return a JreMapFromStringToBoolean or JsMapFromStringToBoolean instance
+ */
+ public static MapFromStringToBoolean mapFromStringToBoolean() {
+ return new JreMapFromStringToBoolean();
+ }
+
+ /**
+ * Create a MapFromStringToInt collection for a given type using the most efficient implementation
+ * strategy for the given client.
+ *
+ * @return a JreMapFromStringToInt or JsMapFromStringToInt instance
+ */
+ public static MapFromStringToInt mapFromStringToInt() {
+ return new JreMapFromStringToInt();
+ }
+
+ /**
+ * Create a MapFromStringToNumber collection for a given type using the most efficient
+ * implementation strategy for the given client.
+ *
+ * @return a JreMapFromStringToNumber or JsMapFromStringToNumber instance
+ */
+ public static MapFromStringToNumber mapFromStringToNumber() {
+ return new JreMapFromStringToNumber();
+ }
+
+ /**
+ * Create a MapFromStringToString collection for a given type using the most efficient
+ * implementation strategy for the given client.
+ *
+ * @return a JreMapFromStringToString or JsMapFromStringToString instance
+ */
+ public static MapFromStringToString mapFromStringToString() {
+ return new JreMapFromStringToString();
+ }
+}
diff --git a/elemental/src/elemental/util/Indexable.java b/elemental/src/elemental/util/Indexable.java
new file mode 100644
index 0000000..b559677
--- /dev/null
+++ b/elemental/src/elemental/util/Indexable.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.util;
+
+/**
+ * Models any object which can act like a Javascript array, having length and a getter.
+ */
+// TODO (cromwellian) add generic when JSO bug in gwt-dev fixed
+public interface Indexable /* <T> */ {
+
+ /**
+ * Gets the value at a given index.
+ *
+ * @param index the index to be retrieved
+ * @return the value at the given index
+ */
+ Object /* T */ at(int index);
+
+ /**
+ * Gets the length of the array.
+ *
+ * @return the array length
+ */
+ int length();
+}
diff --git a/elemental/src/elemental/util/IndexableInt.java b/elemental/src/elemental/util/IndexableInt.java
new file mode 100644
index 0000000..ecb373d
--- /dev/null
+++ b/elemental/src/elemental/util/IndexableInt.java
@@ -0,0 +1,22 @@
+package elemental.util;
+
+/**
+ * Models any object which acts like a Javascript array of primitive integers.
+ */
+public interface IndexableInt extends IndexableNumber {
+
+ /**
+ * Gets the value at a given index.
+ *
+ * @param index the index to be retrieved
+ * @return the value at the given index
+ */
+ int intAt(int index);
+
+ /**
+ * Gets the length of the array.
+ *
+ * @return the array length
+ */
+ int length();
+}
diff --git a/elemental/src/elemental/util/IndexableNumber.java b/elemental/src/elemental/util/IndexableNumber.java
new file mode 100644
index 0000000..b419e65
--- /dev/null
+++ b/elemental/src/elemental/util/IndexableNumber.java
@@ -0,0 +1,22 @@
+package elemental.util;
+
+/**
+ * Models any object which acts like a Javascript array of primitive numbers..
+ */
+public interface IndexableNumber {
+
+ /**
+ * Gets the value at a given index.
+ *
+ * @param index the index to be retrieved
+ * @return the value at the given index
+ */
+ double numberAt(int index);
+
+ /**
+ * Gets the length of the array.
+ *
+ * @return the array length
+ */
+ int length();
+}
diff --git a/elemental/src/elemental/util/MapFromIntTo.java b/elemental/src/elemental/util/MapFromIntTo.java
new file mode 100644
index 0000000..e1e8620
--- /dev/null
+++ b/elemental/src/elemental/util/MapFromIntTo.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight map from <code>int</code> to objects.
+ *
+ * @see elemental.js.util.JsMapFromIntTo
+ */
+public interface MapFromIntTo<V> {
+ /**
+ * Retrieves a value for the specified key.
+ */
+ V get(int key);
+
+ /**
+ * Indicates whether the map contains a value for the specified key.
+ */
+ boolean hasKey(int key);
+
+ /**
+ * The keys contained within this map.
+ *
+ * This copies the keys into a new array.
+ */
+ ArrayOfInt keys();
+
+ /**
+ * Associates a value to the specified key.
+ */
+ void put(int key, V value);
+
+ /**
+ * Removes the value associated with the specified value, if one exists.
+ */
+ void remove(int key);
+
+ /**
+ * The values contained in this map.
+ *
+ * This copies the values into a new array.
+ */
+ ArrayOf<V> values();
+}
diff --git a/elemental/src/elemental/util/MapFromIntToString.java b/elemental/src/elemental/util/MapFromIntToString.java
new file mode 100644
index 0000000..88365f1
--- /dev/null
+++ b/elemental/src/elemental/util/MapFromIntToString.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight map from <code>int</code> to {@link String}.
+ *
+ * @see elemental.js.util.JsMapFromIntToString
+ */
+public interface MapFromIntToString {
+
+ /**
+ * Retrieves a value for the specified key.
+ */
+ String get(int key);
+
+ /**
+ * Indicates whether the map contains a value for the specified key.
+ */
+ boolean hasKey(int key);
+
+ /**
+ * The keys contained within this map.
+ *
+ * This copies the keys into a new array.
+ */
+ ArrayOfInt keys();
+
+ /**
+ * Associates a value to the specified key.
+ */
+ void put(int key, String value);
+
+ /**
+ * Removes the value associated with the specified value, if one exists.
+ */
+ void remove(int key);
+
+ /**
+ * The values contained in this map.
+ *
+ * This copies the values into a new array.
+ */
+ ArrayOfString values();
+}
diff --git a/elemental/src/elemental/util/MapFromStringTo.java b/elemental/src/elemental/util/MapFromStringTo.java
new file mode 100644
index 0000000..3f3907e
--- /dev/null
+++ b/elemental/src/elemental/util/MapFromStringTo.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight map from {@link String} to any object type.
+ *
+ * @param <V>
+ *
+ * @see elemental.js.util.JsMapFromStringTo
+ */
+public interface MapFromStringTo<V> {
+
+ /**
+ * Retrieves a value for the specified key.
+ */
+ V get(String key);
+
+ /**
+ * Indicates whether the map contains a value for the specified key.
+ */
+ boolean hasKey(String key);
+
+ /**
+ * The keys contained within this map.
+ *
+ * This copies the keys into a new array.
+ */
+ ArrayOfString keys();
+
+ /**
+ * Associates a value to the specified key.
+ */
+ void put(String key, V value);
+
+ /**
+ * Removes the value associated with the specified value, if one exists.
+ */
+ void remove(String key);
+
+ /**
+ * The values contained in this map.
+ *
+ * This copies the values into a new array.
+ */
+ ArrayOf<V> values();
+}
diff --git a/elemental/src/elemental/util/MapFromStringToBoolean.java b/elemental/src/elemental/util/MapFromStringToBoolean.java
new file mode 100644
index 0000000..46f307a
--- /dev/null
+++ b/elemental/src/elemental/util/MapFromStringToBoolean.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight map from {@link String} to <code>boolean</code> types.
+ *
+ * @see elemental.js.util.JsMapFromStringToBoolean
+ */
+public interface MapFromStringToBoolean {
+
+ /**
+ * Retrieves a value for the specified key.
+ */
+ boolean get(String key);
+
+ /**
+ * Indicates whether the map contains a value for the specified key.
+ */
+ boolean hasKey(String key);
+
+ /**
+ * The keys contained within this map.
+ *
+ * This copies the keys into a new array.
+ */
+ ArrayOfString keys();
+
+ /**
+ * Associates a value to the specified key.
+ */
+ void put(String key, boolean value);
+
+ /**
+ * Removes the value associated with the specified value, if one exists.
+ */
+ void remove(String key);
+
+ /**
+ * The values contained in this map.
+ *
+ * This copies the values into a new array.
+ */
+ ArrayOfBoolean values();
+}
diff --git a/elemental/src/elemental/util/MapFromStringToInt.java b/elemental/src/elemental/util/MapFromStringToInt.java
new file mode 100644
index 0000000..fe732ad
--- /dev/null
+++ b/elemental/src/elemental/util/MapFromStringToInt.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight map from {@link String} to <code>int</code>.
+ *
+ * @see elemental.js.util.JsMapFromStringToInt
+ */
+public interface MapFromStringToInt {
+
+ /**
+ * Retrieves a value for the specified key.
+ */
+ int get(String key);
+
+ /**
+ * Indicates whether the map contains a value for the specified key.
+ */
+ boolean hasKey(String key);
+
+ /**
+ * The keys contained within this map.
+ *
+ * This copies the keys into a new array.
+ */
+ ArrayOfString keys();
+
+ /**
+ * Associates a value to the specified key.
+ */
+ void put(String key, int value);
+
+ /**
+ * Removes the value associated with the specified value, if one exists.
+ */
+ void remove(String key);
+
+ /**
+ * The values contained in this map.
+ *
+ * This copies the values into a new array.
+ */
+ ArrayOfInt values();
+}
diff --git a/elemental/src/elemental/util/MapFromStringToNumber.java b/elemental/src/elemental/util/MapFromStringToNumber.java
new file mode 100644
index 0000000..c6c6694
--- /dev/null
+++ b/elemental/src/elemental/util/MapFromStringToNumber.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight map from {@link String} to <code>double</code>.
+ *
+ * @see elemental.js.util.JsMapFromStringToNumber
+ */
+public interface MapFromStringToNumber {
+
+ /**
+ * Retrieves a value for the specified key.
+ */
+ double get(String key);
+
+ /**
+ * Indicates whether the map contains a value for the specified key.
+ */
+ boolean hasKey(String key);
+
+ /**
+ * The keys contained within this map.
+ *
+ * This copies the keys into a new array.
+ */
+ ArrayOfString keys();
+
+ /**
+ * Associates a value to the specified key.
+ */
+ void put(String key, double value);
+
+ /**
+ * Removes the value associated with the specified value, if one exists.
+ */
+ void remove(String key);
+
+ /**
+ * The values contained in this map.
+ *
+ * This copies the values into a new array.
+ */
+ ArrayOfNumber values();
+}
diff --git a/elemental/src/elemental/util/MapFromStringToString.java b/elemental/src/elemental/util/MapFromStringToString.java
new file mode 100644
index 0000000..de4437b
--- /dev/null
+++ b/elemental/src/elemental/util/MapFromStringToString.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+/**
+ * A lightweight map from {@link String} to {@link String}.
+ *
+ * @see elemental.js.util.JsMapFromStringToString
+ */
+public interface MapFromStringToString {
+
+ /**
+ * Retrieves a value for the specified key.
+ */
+ String get(String key);
+
+ /**
+ * Indicates whether the map contains a value for the specified key.
+ */
+ boolean hasKey(String key);
+
+ /**
+ * The keys contained within this map.
+ *
+ * This copies the keys into a new array.
+ */
+ ArrayOfString keys();
+
+ /**
+ * Associates a value to the specified key.
+ */
+ void put(String key, String value);
+
+ /**
+ * Removes the value associated with the specified value, if one exists.
+ */
+ void remove(String key);
+
+ /**
+ * The values contained in this map.
+ *
+ * This copies the values into a new array.
+ */
+ ArrayOfString values();
+}
diff --git a/elemental/src/elemental/util/Mappable.java b/elemental/src/elemental/util/Mappable.java
new file mode 100644
index 0000000..9f33d73
--- /dev/null
+++ b/elemental/src/elemental/util/Mappable.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.util;
+
+/**
+ * An object which can act like a Javascript object with String keys.
+ */
+// TODO (cromwellian) add generic when JSO bug in gwt-dev fixed
+public interface Mappable /* <T> */ {
+
+ /**
+ * Gets the value at a given key.
+ *
+ * @param key the key to be retrieved
+ * @return the value at the given index
+ */
+ Object /* T */ at(String key);
+
+ /**
+ * Sets the value at a given key.
+ *
+ * @param key the key to assign to
+ * @return the value at the given index
+ */
+ void setAt(String key, Object /* T */ value);
+}
diff --git a/elemental/src/elemental/util/Settable.java b/elemental/src/elemental/util/Settable.java
new file mode 100644
index 0000000..6f25021
--- /dev/null
+++ b/elemental/src/elemental/util/Settable.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.util;
+
+/**
+ * Models an object which can act like a Javascript array capable of indexed assignment.
+ */
+// TODO (cromwellian) add generic when JSO bug in gwt-dev fixed
+public interface Settable /* <T> */ extends Indexable /* <T> */ {
+
+ /**
+ * Gets the value at a given index.
+ *
+ * @param index the index to be retrieved
+ * @param value the value to be set
+ */
+ void setAt(int index, Object /* T */ value);
+}
diff --git a/elemental/src/elemental/util/SettableInt.java b/elemental/src/elemental/util/SettableInt.java
new file mode 100644
index 0000000..c915688
--- /dev/null
+++ b/elemental/src/elemental/util/SettableInt.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.util;
+
+/**
+ * Models an object which can act like a Javascript array capable of indexed assignment.
+ */
+// TODO (cromwellian) add generic when JSO bug in gwt-dev fixed
+public interface SettableInt extends IndexableInt {
+
+ /**
+ * Gets the value at a given index.
+ *
+ * @param index the index to be retrieved
+ * @param value the value to be set
+ */
+ void setAt(int index, int value);
+}
diff --git a/elemental/src/elemental/util/SettableNumber.java b/elemental/src/elemental/util/SettableNumber.java
new file mode 100644
index 0000000..94b08e7
--- /dev/null
+++ b/elemental/src/elemental/util/SettableNumber.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2010 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
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package elemental.util;
+
+/**
+ * Models an object which can act like a Javascript array capable of indexed assignment.
+ */
+// TODO (cromwellian) add generic when JSO bug in gwt-dev fixed
+public interface SettableNumber extends IndexableNumber {
+
+ /**
+ * Gets the value at a given index.
+ *
+ * @param index the index to be retrieved
+ * @param value the value to be set
+ */
+ void setAt(int index, double value);
+}
diff --git a/elemental/src/elemental/util/Timer.java b/elemental/src/elemental/util/Timer.java
new file mode 100644
index 0000000..9de4df7
--- /dev/null
+++ b/elemental/src/elemental/util/Timer.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+import static elemental.client.Browser.getWindow;
+
+import elemental.html.Window;
+import elemental.dom.TimeoutHandler;
+
+/**
+ * A simplified, browser-safe timer class. This class serves the same purpose as
+ * java.util.Timer, but is simplified because of the single-threaded
+ * environment.
+ *
+ * To schedule a timer, simply create a subclass of it (overriding {@link #run})
+ * and call {@link #schedule} or {@link #scheduleRepeating}.
+ */
+public abstract class Timer {
+
+ private boolean isRepeating;
+ private int timerId;
+
+ /**
+ * Cancels this timer.
+ */
+ public void cancel() {
+ if (isRepeating) {
+ getWindow().clearInterval(timerId);
+ } else {
+ getWindow().clearTimeout(timerId);
+ }
+ }
+
+ /**
+ * This method will be called when a timer fires. Override it to implement the
+ * timer's logic.
+ */
+ public abstract void run();
+
+ /**
+ * Schedules a timer to elapse in the future.
+ *
+ * @param delayMillis how long to wait before the timer elapses, in
+ * milliseconds
+ */
+ public void schedule(int delayMillis) {
+ if (delayMillis <= 0) {
+ throw new IllegalArgumentException("must be positive");
+ }
+ cancel();
+ isRepeating = false;
+
+ timerId = getWindow().setTimeout(new TimeoutHandler() {
+ @Override
+ public void onTimeoutHandler() {
+ run();
+ }
+ }, delayMillis);
+ }
+
+ /**
+ * Schedules a timer that elapses repeatedly.
+ *
+ * @param periodMillis how long to wait before the timer elapses, in
+ * milliseconds, between each repetition
+ */
+ public void scheduleRepeating(int periodMillis) {
+ if (periodMillis <= 0) {
+ throw new IllegalArgumentException("must be positive");
+ }
+ cancel();
+ isRepeating = true;
+ timerId = getWindow().setInterval(new TimeoutHandler() {
+ @Override
+ public void onTimeoutHandler() {
+ run();
+ }
+ }, periodMillis);
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreArrayOf.java b/elemental/src/elemental/util/impl/JreArrayOf.java
new file mode 100644
index 0000000..3c0087b
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreArrayOf.java
@@ -0,0 +1,205 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+
+import elemental.util.ArrayOf;
+import elemental.util.CanCompare;
+
+/**
+ * JRE implementation of ArrayOf for server and dev mode.
+ */
+public class JreArrayOf<T> implements ArrayOf<T> {
+
+ /*
+ * TODO(cromwellian): this implemation uses JRE ArrayList. A direct
+ * implementation would be more efficient.
+ */
+ private ArrayList<T> array;
+
+ public JreArrayOf() {
+ array = new ArrayList<T>();
+ }
+
+ JreArrayOf(ArrayList<T> array) {
+ this.array = array;
+ }
+
+ @Override
+ public ArrayOf<T> concat(ArrayOf<T> values) {
+ assert values instanceof JreArrayOf;
+ ArrayList<T> toReturn = new ArrayList<T>(array);
+ toReturn.addAll(((JreArrayOf<T>) values).array);
+ return new JreArrayOf<T>(toReturn);
+ }
+
+ @Override
+ public boolean contains(T value) {
+ return array.contains(value);
+ }
+
+ @Override
+ public T get(int index) {
+ return index >= length() ? null : array.get(index);
+ }
+
+ @Override
+ public int indexOf(T value) {
+ return array.indexOf(value);
+ }
+
+ @Override
+ public void insert(int index, T value) {
+ if (index >= length()) {
+ array.add(value);
+ } else {
+ if (index < 0) {
+ index = index + length();
+ if (index < 0) {
+ index = 0;
+ }
+ }
+ array.add(index, value);
+ }
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return array.isEmpty();
+ }
+
+ @Override
+ public String join() {
+ return join(",");
+ }
+
+ @Override
+ public String join(String separator) {
+ StringBuilder toReturn = new StringBuilder();
+ boolean first = true;
+ for (T val : array) {
+ if (first) {
+ first = false;
+ } else {
+ toReturn.append(separator);
+ }
+ // JS treats null as "" for purposes of join()
+ toReturn.append(val == null ? "" : toStringWithTrim(val));
+ }
+ return toReturn.toString();
+ }
+
+ @Override
+ public int length() {
+ return array.size();
+ }
+
+ @Override
+ public T peek() {
+ return isEmpty() ? null : array.get(array.size() - 1);
+ }
+
+ @Override
+ public T pop() {
+ return isEmpty() ? null : array.remove(array.size() - 1);
+ }
+
+ @Override
+ public void push(T value) {
+ array.add(value);
+ }
+
+ @Override
+ public void remove(T value) {
+ array.remove(value);
+ }
+
+ @Override
+ public void removeByIndex(int index) {
+ if (index < length()) {
+ array.remove(index);
+ }
+ }
+
+ @Override
+ public void set(int index, T value) {
+ ensureLength(index);
+ array.set(index, value);
+ }
+
+ @Override
+ public void setLength(int length) {
+ if (length > length()) {
+ for (int i = length(); i < length; i++) {
+ array.add(null);
+ }
+ } else if (length < length()) {
+ for (int i = length(); i > length; i--) {
+ array.remove(i - 1);
+ }
+ }
+ }
+
+ @Override
+ public T shift() {
+ return isEmpty() ? null : array.remove(0);
+ }
+
+ @Override
+ public void sort(final CanCompare<T> comparator) {
+ Collections.sort(array, new Comparator<T>() {
+ @Override
+ public int compare(T o1, T o2) {
+ return comparator.compare(o1, o2);
+ }
+ });
+ }
+
+ @Override
+ public ArrayOf<T> splice(int index, int count) {
+ ArrayList<T> toReturn = new ArrayList<T>(
+ array.subList(index, index + count));
+ for (int i = 0; i < count && !isEmpty(); i++) {
+ array.remove(index);
+ }
+ return new JreArrayOf<T>(toReturn);
+ }
+
+ @Override
+ public void unshift(T value) {
+ array.add(0, value);
+ }
+
+ private void ensureLength(int index) {
+ if (index >= length()) {
+ setLength(index + 1);
+ }
+ }
+
+ static String toStringWithTrim(Object obj) {
+ if (obj instanceof Number) {
+ String numberStr = obj.toString();
+ if (numberStr.endsWith(".0")) {
+ numberStr = numberStr.substring(0, numberStr.length() - 2);
+ }
+ return numberStr;
+ }
+ return obj.toString();
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreArrayOfBoolean.java b/elemental/src/elemental/util/impl/JreArrayOfBoolean.java
new file mode 100644
index 0000000..23e59e7
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreArrayOfBoolean.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfBoolean;
+import elemental.util.Collections;
+
+/**
+ * JRE implementation of ArrayOfBoolean for server and dev mode.
+ */
+public class JreArrayOfBoolean implements ArrayOfBoolean {
+
+ /*
+ * TODO(cromwellian): this implemation uses JRE ArrayList. A direct
+ * implementation would be more efficient.
+ */
+
+ public ArrayOfBoolean concat(ArrayOfBoolean values) {
+ return new JreArrayOfBoolean(array.concat(((JreArrayOfBoolean) values).array));
+ }
+
+ public boolean contains(boolean value) {
+ return array.contains(value);
+ }
+
+ @Override
+ public boolean get(int index) {
+ return array.get(index);
+ }
+
+ public int indexOf(boolean value) {
+ return array.indexOf(value);
+ }
+
+ public void insert(int index, boolean value) {
+ array.insert(index, value);
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return array.isEmpty();
+ }
+
+ @Override
+ public boolean isSet(int index) {
+ return array.get(index) != null;
+ }
+
+ @Override
+ public String join() {
+ return array.join();
+ }
+
+ @Override
+ public String join(String separator) {
+ return array.join(separator);
+ }
+
+ @Override
+ public int length() {
+ return array.length();
+ }
+
+ @Override
+ public boolean peek() {
+ return array.peek();
+ }
+
+ @Override
+ public boolean pop() {
+ return array.pop();
+ }
+
+ public void push(boolean value) {
+ array.push(value);
+ }
+
+ public void remove(boolean value) {
+ array.remove(value);
+ }
+
+ @Override
+ public void removeByIndex(int index) {
+ array.removeByIndex(index);
+ }
+
+ public void set(int index, boolean value) {
+ array.set(index, value);
+ }
+
+ @Override
+ public void setLength(int length) {
+ array.setLength(length);
+ }
+
+ @Override
+ public boolean shift() {
+ return array.shift();
+ }
+
+ @Override
+ public ArrayOfBoolean splice(int index, int count) {
+ return new JreArrayOfBoolean(array.splice(index, count));
+ }
+
+ public void unshift(boolean value) {
+ array.unshift(value);
+ }
+
+ private ArrayOf<Boolean> array;
+
+ public JreArrayOfBoolean() {
+ array = Collections.arrayOf();
+ }
+
+ JreArrayOfBoolean(ArrayOf<Boolean> array) {
+ this.array = array;
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreArrayOfInt.java b/elemental/src/elemental/util/impl/JreArrayOfInt.java
new file mode 100644
index 0000000..14ba8af
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreArrayOfInt.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfInt;
+import elemental.util.CanCompare;
+import elemental.util.CanCompareInt;
+import elemental.util.Collections;
+
+/**
+ * JRE implementation of ArrayOfInt for server and dev mode.
+ */
+public class JreArrayOfInt implements ArrayOfInt {
+
+ /*
+ * TODO(cromwellian): this implemation uses JRE ArrayList. A direct
+ * implementation would be more efficient.
+ */
+
+ public ArrayOfInt concat(ArrayOfInt values) {
+ return new JreArrayOfInt(array.concat(((JreArrayOfInt) values).array));
+ }
+
+ public boolean contains(int value) {
+ return array.contains(value);
+ }
+
+ @Override
+ public int get(int index) {
+ return array.get(index);
+ }
+
+ public int indexOf(int value) {
+ return array.indexOf(value);
+ }
+
+ public void insert(int index, int value) {
+ array.insert(index, value);
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return array.isEmpty();
+ }
+
+ @Override
+ public boolean isSet(int index) {
+ return array.get(index) != null;
+ }
+
+ @Override
+ public String join() {
+ return array.join();
+ }
+
+ @Override
+ public String join(String separator) {
+ return array.join(separator);
+ }
+
+ @Override
+ public int length() {
+ return array.length();
+ }
+
+ @Override
+ public int peek() {
+ return array.peek();
+ }
+
+ @Override
+ public int pop() {
+ return array.pop();
+ }
+
+ public void push(int value) {
+ array.push(value);
+ }
+
+ public void remove(int value) {
+ array.remove(value);
+ }
+
+ @Override
+ public void removeByIndex(int index) {
+ array.removeByIndex(index);
+ }
+
+ public void set(int index, int value) {
+ array.set(index, value);
+ }
+
+ @Override
+ public void setLength(int length) {
+ array.setLength(length);
+ }
+
+ @Override
+ public int shift() {
+ return array.shift();
+ }
+
+ @Override
+ public void sort() {
+ array.sort(new CanCompare<Integer>() {
+ @Override
+ public int compare(Integer a, Integer b) {
+ return a == null ? (a == b ? 0 : -1) : a.compareTo(b);
+ }
+ });
+ }
+
+ @Override
+ public void sort(final CanCompareInt comparator) {
+ array.sort(new CanCompare<Integer>() {
+ @Override
+ public int compare(Integer a, Integer b) {
+ return comparator.compare(a, b);
+ }
+ });
+ }
+
+ @Override
+ public ArrayOfInt splice(int index, int count) {
+ return new JreArrayOfInt(array.splice(index, count));
+ }
+
+ public void unshift(int value) {
+ array.unshift(value);
+ }
+
+ private ArrayOf<Integer> array;
+
+ public JreArrayOfInt() {
+ array = Collections.arrayOf();
+ }
+
+ JreArrayOfInt(ArrayOf<Integer> array) {
+ this.array = array;
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreArrayOfNumber.java b/elemental/src/elemental/util/impl/JreArrayOfNumber.java
new file mode 100644
index 0000000..ded7193
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreArrayOfNumber.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfNumber;
+import elemental.util.CanCompare;
+import elemental.util.CanCompareNumber;
+import elemental.util.Collections;
+
+/**
+ * JRE implementation of ArrayOfInt for server and dev mode.
+ */
+public class JreArrayOfNumber implements ArrayOfNumber {
+
+ /*
+ * TODO(cromwellian): this implemation uses JRE ArrayList. A direct
+ * implementation would be more efficient.
+ */
+
+ public ArrayOfNumber concat(ArrayOfNumber values) {
+ return new JreArrayOfNumber(array.concat(((JreArrayOfNumber) values).array));
+ }
+
+ public boolean contains(double value) {
+ return array.contains(value);
+ }
+
+ @Override
+ public double get(int index) {
+ return array.get(index);
+ }
+
+ public int indexOf(double value) {
+ return array.indexOf(value);
+ }
+
+ public void insert(int index, double value) {
+ array.insert(index, value);
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return array.isEmpty();
+ }
+
+ @Override
+ public boolean isSet(int index) {
+ return array.get(index) != null;
+ }
+
+ @Override
+ public String join() {
+ return array.join();
+ }
+
+ @Override
+ public String join(String separator) {
+ return array.join(separator);
+ }
+
+ @Override
+ public int length() {
+ return array.length();
+ }
+
+ @Override
+ public double peek() {
+ return array.peek();
+ }
+
+ @Override
+ public double pop() {
+ return array.pop();
+ }
+
+ public void push(double value) {
+ array.push(value);
+ }
+
+ public void remove(double value) {
+ array.remove(value);
+ }
+
+ @Override
+ public void removeByIndex(int index) {
+ array.removeByIndex(index);
+ }
+
+ public void set(int index, double value) {
+ array.set(index, value);
+ }
+
+ @Override
+ public void setLength(int length) {
+ array.setLength(length);
+ }
+
+ @Override
+ public double shift() {
+ return array.shift();
+ }
+
+ @Override
+ public void sort() {
+ array.sort(new CanCompare<Double>() {
+ @Override
+ public int compare(Double a, Double b) {
+ return a == null ? (a == b ? 0 : -1) : a.compareTo(b);
+ }
+ });
+ }
+
+ @Override
+ public void sort(final CanCompareNumber comparator) {
+ array.sort(new CanCompare<Double>() {
+ @Override
+ public int compare(Double a, Double b) {
+ return comparator.compare(a, b);
+ }
+ });
+ }
+
+ @Override
+ public ArrayOfNumber splice(int index, int count) {
+ return new JreArrayOfNumber(array.splice(index, count));
+ }
+
+ public void unshift(double value) {
+ array.unshift(value);
+ }
+
+ private ArrayOf<Double> array;
+
+ public JreArrayOfNumber() {
+ array = Collections.arrayOf();
+ }
+
+ JreArrayOfNumber(ArrayOf<Double> array) {
+ this.array = array;
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreArrayOfString.java b/elemental/src/elemental/util/impl/JreArrayOfString.java
new file mode 100644
index 0000000..11fa335
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreArrayOfString.java
@@ -0,0 +1,157 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+
+import java.util.ArrayList;
+
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfString;
+import elemental.util.CanCompare;
+import elemental.util.CanCompareString;
+import elemental.util.Collections;
+
+/**
+ * JRE implementation of ArrayOfString for server and dev mode.
+ */
+public class JreArrayOfString implements ArrayOfString {
+
+ private ArrayOf<String> array;
+
+ public JreArrayOfString(ArrayList<String> array) {
+ this((new JreArrayOf<String>(array)));
+ }
+
+ public JreArrayOfString() {
+ array = Collections.arrayOf();
+ }
+
+ JreArrayOfString(ArrayOf<String> array) {
+ this.array = array;
+ }
+
+ /*
+ * TODO(cromwellian): this implemation uses JRE ArrayList. A direct
+ * implementation would be more efficient.
+ */
+
+ public ArrayOfString concat(ArrayOfString values) {
+ return new JreArrayOfString(array.concat(((JreArrayOfString) values).array));
+ }
+
+ public boolean contains(String value) {
+ return array.contains(value);
+ }
+
+ @Override
+ public String get(int index) {
+ return array.get(index);
+ }
+
+ public int indexOf(String value) {
+ return array.indexOf(value);
+ }
+
+ public void insert(int index, String value) {
+ array.insert(index, value);
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return array.isEmpty();
+ }
+
+ @Override
+ public String join() {
+ return array.join();
+ }
+
+ @Override
+ public String join(String separator) {
+ return array.join(separator);
+ }
+
+ @Override
+ public int length() {
+ return array.length();
+ }
+
+ @Override
+ public String peek() {
+ return array.peek();
+ }
+
+ @Override
+ public String pop() {
+ return array.pop();
+ }
+
+ public void push(String value) {
+ array.push(value);
+ }
+
+ public void remove(String value) {
+ array.remove(value);
+ }
+
+ @Override
+ public void removeByIndex(int index) {
+ array.removeByIndex(index);
+ }
+
+ public void set(int index, String value) {
+ array.set(index, value);
+ }
+
+ @Override
+ public void setLength(int length) {
+ array.setLength(length);
+ }
+
+ @Override
+ public String shift() {
+ return array.shift();
+ }
+
+ @Override
+ public void sort() {
+ array.sort(new CanCompare<String>() {
+ @Override
+ public int compare(String a, String b) {
+ return a == null ? (a == b ? 0 : -1) : a.compareTo(b);
+ }
+ });
+ }
+
+ @Override
+ public void sort(final CanCompareString comparator) {
+ array.sort(new CanCompare<String>() {
+ @Override
+ public int compare(String a, String b) {
+ return comparator.compare(a, b);
+ }
+ });
+ }
+
+ @Override
+ public ArrayOfString splice(int index, int count) {
+ return new JreArrayOfString(array.splice(index, count));
+ }
+
+ public void unshift(String value) {
+ array.unshift(value);
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreMapFromIntTo.java b/elemental/src/elemental/util/impl/JreMapFromIntTo.java
new file mode 100644
index 0000000..72eaef7
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreMapFromIntTo.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfInt;
+import elemental.util.MapFromIntTo;
+
+/**
+ * JRE implementation of MapFromIntTo for server and dev mode.
+ */
+public class JreMapFromIntTo<T> implements MapFromIntTo<T> {
+
+ /*
+ * TODO(cromwellian): this implemation uses JRE HashMap. A direct
+ * implementation would be more efficient.
+ */
+ private HashMap<Integer, T> map;
+
+ public JreMapFromIntTo() {
+ map = new HashMap<Integer,T>();
+ }
+
+ JreMapFromIntTo(HashMap<Integer, T> map) {
+ this.map = map;
+ }
+
+ @Override
+ public T get(int key) {
+ return map.get(key);
+ }
+
+ @Override
+ public boolean hasKey(int key) {
+ return map.containsKey(key);
+ }
+
+ @Override
+ public ArrayOfInt keys() {
+ return new JreArrayOfInt(new JreArrayOf<Integer>(new ArrayList<Integer>(map.keySet())));
+ }
+
+ @Override
+ public void put(int key, T value) {
+ map.put(key, value);
+ }
+
+ @Override
+ public void remove(int key) {
+ map.remove(key);
+ }
+
+ @Override
+ public ArrayOf<T> values() {
+ return new JreArrayOf<T>(new ArrayList<T>(map.values()));
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreMapFromIntToString.java b/elemental/src/elemental/util/impl/JreMapFromIntToString.java
new file mode 100644
index 0000000..578674b
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreMapFromIntToString.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+import elemental.util.ArrayOfInt;
+import elemental.util.ArrayOfString;
+import elemental.util.MapFromIntToString;
+
+/**
+ * JRE implementation of MapFromIntToString for server and dev mode.
+ */
+public class JreMapFromIntToString implements MapFromIntToString {
+
+ /*
+ * TODO(cromwellian): this implementation delegates, direct implementation would be more efficient.
+ */
+ private JreMapFromIntTo<String> map;
+
+ public JreMapFromIntToString() {
+ map = new JreMapFromIntTo<String>();
+ }
+
+ @Override
+ public String get(int key) {
+ return map.get(key);
+ }
+
+ @Override
+ public boolean hasKey(int key) {
+ return map.hasKey(key);
+ }
+
+ @Override
+ public ArrayOfInt keys() {
+ return map.keys();
+ }
+
+ @Override
+ public void put(int key, String value) {
+ map.put(key, value);
+ }
+
+ @Override
+ public void remove(int key) {
+ map.remove(key);
+ }
+
+ public void set(int key, String value) {
+ put(key, value);
+ }
+
+ @Override
+ public ArrayOfString values() {
+ return new JreArrayOfString(map.values());
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreMapFromStringTo.java b/elemental/src/elemental/util/impl/JreMapFromStringTo.java
new file mode 100644
index 0000000..0045c01
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreMapFromStringTo.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfString;
+import elemental.util.MapFromStringTo;
+
+/**
+ * JRE implementation of MapFromStringTo for server and dev mode.
+ */
+public class JreMapFromStringTo<T> implements MapFromStringTo<T> {
+
+ /*
+ * TODO(cromwellian): this implemation uses JRE HashMap. A direct
+ * implementation would be more efficient.
+ */
+ private HashMap<String, T> map;
+
+ public JreMapFromStringTo() {
+ map = new HashMap<String,T>();
+ }
+
+ JreMapFromStringTo(HashMap<String, T> map) {
+ this.map = map;
+ }
+
+
+ @Override
+ public T get(String key) {
+ return map.get(key);
+ }
+
+ @Override
+ public boolean hasKey(String key) {
+ return map.containsKey(key);
+ }
+
+ @Override
+ public ArrayOfString keys() {
+ return new JreArrayOfString(new ArrayList<String>(map.keySet()));
+ }
+
+ @Override
+ public void put(String key, T value) {
+ map.put(key, value);
+ }
+
+ @Override
+ public void remove(String key) {
+ map.remove(key);
+ }
+
+ @Override
+ public ArrayOf<T> values() {
+ return new JreArrayOf<T>(new ArrayList<T>(map.values()));
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreMapFromStringToBoolean.java b/elemental/src/elemental/util/impl/JreMapFromStringToBoolean.java
new file mode 100644
index 0000000..23e5fb1
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreMapFromStringToBoolean.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+import elemental.util.ArrayOfBoolean;
+import elemental.util.ArrayOfString;
+import elemental.util.MapFromStringToBoolean;
+
+/**
+ * JRE implementation of MapFromStringToBoolean for server and dev mode.
+ */
+public class JreMapFromStringToBoolean implements MapFromStringToBoolean {
+
+ /*
+ * TODO(cromwellian): this implementation delegates, direct implementation would be more efficient.
+ */
+ private JreMapFromStringTo<Boolean> map;
+
+ public JreMapFromStringToBoolean() {
+ map = new JreMapFromStringTo<Boolean>();
+ }
+
+ @Override
+ public boolean get(String key) {
+ return map.get(key);
+ }
+
+ @Override
+ public boolean hasKey(String key) {
+ return map.hasKey(key);
+ }
+
+ @Override
+ public ArrayOfString keys() {
+ return map.keys();
+ }
+
+ @Override
+ public void put(String key, boolean value) {
+ map.put(key, value);
+ }
+
+ @Override
+ public void remove(String key) {
+ map.remove(key);
+ }
+
+ @Override
+ public ArrayOfBoolean values() {
+ return new JreArrayOfBoolean(map.values());
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreMapFromStringToInt.java b/elemental/src/elemental/util/impl/JreMapFromStringToInt.java
new file mode 100644
index 0000000..58c1a67
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreMapFromStringToInt.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+import elemental.util.ArrayOfInt;
+import elemental.util.ArrayOfString;
+import elemental.util.MapFromStringToInt;
+
+/**
+ * JRE implementation of MapFromStringToInt for server and dev mode.
+ */
+public class JreMapFromStringToInt implements MapFromStringToInt {
+
+ /*
+ * TODO(cromwellian): this implementation delegates, direct implementation would be more efficient.
+ */
+ private JreMapFromStringTo<Integer> map;
+
+ public JreMapFromStringToInt() {
+ map = new JreMapFromStringTo<Integer>();
+ }
+
+ @Override
+ public int get(String key) {
+ return map.get(key);
+ }
+
+ @Override
+ public boolean hasKey(String key) {
+ return map.hasKey(key);
+ }
+
+ @Override
+ public ArrayOfString keys() {
+ return map.keys();
+ }
+
+ @Override
+ public void put(String key, int value) {
+ map.put(key, value);
+ }
+
+ @Override
+ public void remove(String key) {
+ map.remove(key);
+ }
+
+ @Override
+ public ArrayOfInt values() {
+ return new JreArrayOfInt(map.values());
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreMapFromStringToNumber.java b/elemental/src/elemental/util/impl/JreMapFromStringToNumber.java
new file mode 100644
index 0000000..63ca0c4
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreMapFromStringToNumber.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+import elemental.util.ArrayOfNumber;
+import elemental.util.ArrayOfString;
+import elemental.util.MapFromStringToNumber;
+
+/**
+ * JRE implementation of MapFromStringToNumber for server and dev mode.
+ */
+public class JreMapFromStringToNumber implements MapFromStringToNumber {
+
+ /*
+ * TODO(cromwellian): this implementation delegates, direct implementation would be more efficient.
+ */
+ private JreMapFromStringTo<Double> map;
+
+ public JreMapFromStringToNumber() {
+ map = new JreMapFromStringTo<Double>();
+ }
+
+ @Override
+ public double get(String key) {
+ return map.get(key);
+ }
+
+ @Override
+ public boolean hasKey(String key) {
+ return map.hasKey(key);
+ }
+
+ @Override
+ public ArrayOfString keys() {
+ return map.keys();
+ }
+
+ @Override
+ public void put(String key, double value) {
+ map.put(key, value);
+ }
+
+ @Override
+ public void remove(String key) {
+ map.remove(key);
+ }
+
+ @Override
+ public ArrayOfNumber values() {
+ return new JreArrayOfNumber(map.values());
+ }
+}
diff --git a/elemental/src/elemental/util/impl/JreMapFromStringToString.java b/elemental/src/elemental/util/impl/JreMapFromStringToString.java
new file mode 100644
index 0000000..5ac73b4
--- /dev/null
+++ b/elemental/src/elemental/util/impl/JreMapFromStringToString.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2011 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 elemental.util.impl;
+
+import elemental.util.ArrayOfString;
+import elemental.util.MapFromStringToString;
+
+/**
+ * JRE implementation of MapFromStringToString for server and dev mode.
+ */
+public class JreMapFromStringToString implements MapFromStringToString {
+
+ /*
+ * TODO(cromwellian): this implementation delegates, direct implementation would be more efficient.
+ */
+ private JreMapFromStringTo<String> map;
+
+ public JreMapFromStringToString() {
+ map = new JreMapFromStringTo<String>();
+ }
+
+ @Override
+ public String get(String key) {
+ return map.get(key);
+ }
+
+ @Override
+ public boolean hasKey(String key) {
+ return map.hasKey(key);
+ }
+
+ @Override
+ public ArrayOfString keys() {
+ return map.keys();
+ }
+
+ @Override
+ public void put(String key, String value) {
+ map.put(key, value);
+ }
+
+ @Override
+ public void remove(String key) {
+ map.remove(key);
+ }
+
+ @Override
+ public ArrayOfString values() {
+ return new JreArrayOfString(map.values());
+ }
+}
diff --git a/elemental/src/elemental/xml/XMLHttpRequest.java b/elemental/src/elemental/xml/XMLHttpRequest.java
new file mode 100644
index 0000000..70ed2c4
--- /dev/null
+++ b/elemental/src/elemental/xml/XMLHttpRequest.java
@@ -0,0 +1,352 @@
+/*
+ * 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 elemental.xml;
+import elemental.events.EventTarget;
+import elemental.html.ArrayBuffer;
+import elemental.html.Blob;
+import elemental.html.FormData;
+import elemental.events.EventListener;
+import elemental.dom.Document;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p>To create an instance of <code>XMLHttpRequest</code>, simply do this:</p>
+<pre>var req = new XMLHttpRequest();
+</pre>
+<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>
+ */
+public interface XMLHttpRequest extends EventTarget {
+
+ /**
+ * The operation is complete.
+ */
+
+ static final int DONE = 4;
+
+ /**
+ * <code>send()</code> has been called, and headers and status are available.
+ */
+
+ static final int HEADERS_RECEIVED = 2;
+
+ /**
+ * Downloading; <code>responseText</code> holds partial data.
+ */
+
+ static final int LOADING = 3;
+
+ /**
+ * <code>send()</code>has not been called yet.
+ */
+
+ static final int OPENED = 1;
+
+ /**
+ * <code>open()</code>has not been called yet.
+ */
+
+ static final int UNSENT = 0;
+
+ boolean isAsBlob();
+
+ void setAsBlob(boolean arg);
+
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnload();
+
+ void setOnload(EventListener arg);
+
+ EventListener getOnloadend();
+
+ void setOnloadend(EventListener arg);
+
+ EventListener getOnloadstart();
+
+ void setOnloadstart(EventListener arg);
+
+ EventListener getOnprogress();
+
+ void setOnprogress(EventListener arg);
+
+ EventListener getOnreadystatechange();
+
+ void setOnreadystatechange(EventListener arg);
+
+
+ /**
+ * <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>
+ */
+ int getReadyState();
+
+
+ /**
+ * 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>
+, JavaScript object (for "moz-json"), or string. This is <code>NULL</code> if the request is not complete or was not successful.
+ */
+ Object getResponse();
+
+ Blob getResponseBlob();
+
+
+ /**
+ * 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>
+ */
+ String getResponseText();
+
+
+ /**
+ * <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>
+</td> </tr> <tr> <td>"document"</td> <td><code><a rel="custom" href="https://developer.mozilla.org/en/DOM/Document">Document</a></code>
+</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
+<span title="(Firefox 9.0 / Thunderbird 9.0 / SeaMonkey 2.6)
+">Requires Gecko 9.0</span>
+</td> </tr> </tbody> </table>
+ */
+ String getResponseType();
+
+ void setResponseType(String arg);
+
+
+ /**
+ * <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>
+ */
+ Document getResponseXML();
+
+
+ /**
+ * 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>
+ */
+ int getStatus();
+
+
+ /**
+ * 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>
+ */
+ String getStatusText();
+
+
+ /**
+ * The upload process can be tracked by adding an event listener to <code>upload</code>.
+<span>New in <a rel="custom" href="https://developer.mozilla.org/en/Firefox_3.5_for_developers">Firefox 3.5</a></span>
+ */
+ XMLHttpRequestUpload getUpload();
+
+
+ /**
+ * <p>Indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies or authorization headers.
+<span>New in <a rel="custom" href="https://developer.mozilla.org/en/Firefox_3.5_for_developers">Firefox 3.5</a></span>
+</p> <div class="note"><strong>Note:</strong> This never affects same-site requests.</div> <p>The default is <code>false</code>.</p>
+ */
+ boolean isWithCredentials();
+
+ void setWithCredentials(boolean arg);
+
+
+ /**
+ * Aborts the request if it has already been sent.
+ */
+ void abort();
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+
+ /**
+ * <pre>string getAllResponseHeaders();
+</pre>
+<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>
+ */
+ String getAllResponseHeaders();
+
+
+ /**
+ * 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.
+ */
+ String getResponseHeader(String header);
+
+
+ /**
+ * <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>
+<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>
+
+<div id="section_9"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+<p></p></div>
+ */
+ void open(String method, String url);
+
+
+ /**
+ * <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>
+<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>
+
+<div id="section_9"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+<p></p></div>
+ */
+ void open(String method, String url, boolean async);
+
+
+ /**
+ * <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>
+<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>
+
+<div id="section_9"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+<p></p></div>
+ */
+ void open(String method, String url, boolean async, String user);
+
+
+ /**
+ * <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>
+<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>
+
+<div id="section_9"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+<p></p></div>
+ */
+ void open(String method, String url, boolean async, String user, String password);
+
+
+ /**
+ * 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>.
+ */
+ void overrideMimeType(String override);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+
+
+ /**
+ * <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>
+<div class="note"><strong>Note:</strong> Any event listeners you wish to set must be set before calling <code>send()</code>.</div>
+
+<div id="section_11"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+ , and starting with Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+ 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>
+</dl>
+</div>
+ */
+ void send();
+
+
+ /**
+ * <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>
+<div class="note"><strong>Note:</strong> Any event listeners you wish to set must be set before calling <code>send()</code>.</div>
+
+<div id="section_11"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+ , and starting with Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+ 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>
+</dl>
+</div>
+ */
+ void send(ArrayBuffer data);
+
+
+ /**
+ * <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>
+<div class="note"><strong>Note:</strong> Any event listeners you wish to set must be set before calling <code>send()</code>.</div>
+
+<div id="section_11"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+ , and starting with Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+ 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>
+</dl>
+</div>
+ */
+ void send(Blob data);
+
+
+ /**
+ * <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>
+<div class="note"><strong>Note:</strong> Any event listeners you wish to set must be set before calling <code>send()</code>.</div>
+
+<div id="section_11"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+ , and starting with Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+ 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>
+</dl>
+</div>
+ */
+ void send(Document data);
+
+
+ /**
+ * <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>
+<div class="note"><strong>Note:</strong> Any event listeners you wish to set must be set before calling <code>send()</code>.</div>
+
+<div id="section_11"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+ , and starting with Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+ 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>
+</dl>
+</div>
+ */
+ void send(String data);
+
+
+ /**
+ * <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>
+<div class="note"><strong>Note:</strong> Any event listeners you wish to set must be set before calling <code>send()</code>.</div>
+
+<div id="section_11"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+ , and starting with Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
+ 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>
+</dl>
+</div>
+ */
+ void send(FormData data);
+
+
+ /**
+ * <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>
+
+<div id="section_15"><span id="Parameters_5"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div>
+ */
+ void setRequestHeader(String header, String value);
+}
diff --git a/elemental/src/elemental/xml/XMLHttpRequestException.java b/elemental/src/elemental/xml/XMLHttpRequestException.java
new file mode 100644
index 0000000..3a8655b
--- /dev/null
+++ b/elemental/src/elemental/xml/XMLHttpRequestException.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.xml;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface XMLHttpRequestException {
+
+ static final int ABORT_ERR = 102;
+
+ static final int NETWORK_ERR = 101;
+
+ int getCode();
+
+ String getMessage();
+
+ String getName();
+}
diff --git a/elemental/src/elemental/xml/XMLHttpRequestUpload.java b/elemental/src/elemental/xml/XMLHttpRequestUpload.java
new file mode 100644
index 0000000..21231c0
--- /dev/null
+++ b/elemental/src/elemental/xml/XMLHttpRequestUpload.java
@@ -0,0 +1,68 @@
+/*
+ * 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 elemental.xml;
+import elemental.events.EventListener;
+import elemental.events.EventTarget;
+import elemental.events.Event;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface XMLHttpRequestUpload extends EventTarget {
+
+ EventListener getOnabort();
+
+ void setOnabort(EventListener arg);
+
+ EventListener getOnerror();
+
+ void setOnerror(EventListener arg);
+
+ EventListener getOnload();
+
+ void setOnload(EventListener arg);
+
+ EventListener getOnloadend();
+
+ void setOnloadend(EventListener arg);
+
+ EventListener getOnloadstart();
+
+ void setOnloadstart(EventListener arg);
+
+ EventListener getOnprogress();
+
+ void setOnprogress(EventListener arg);
+
+ EventRemover addEventListener(String type, EventListener listener);
+
+ EventRemover addEventListener(String type, EventListener listener, boolean useCapture);
+
+ boolean dispatchEvent(Event evt);
+
+ void removeEventListener(String type, EventListener listener);
+
+ void removeEventListener(String type, EventListener listener, boolean useCapture);
+}
diff --git a/elemental/src/elemental/xml/XSLTProcessor.java b/elemental/src/elemental/xml/XSLTProcessor.java
new file mode 100644
index 0000000..980309c
--- /dev/null
+++ b/elemental/src/elemental/xml/XSLTProcessor.java
@@ -0,0 +1,52 @@
+/*
+ * 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 elemental.xml;
+import elemental.dom.Node;
+import elemental.dom.DocumentFragment;
+import elemental.dom.Document;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <p>XSLTProcesor is an object providing an interface to XSLT engine in Mozilla. It is available to unprivileged JavaScript.</p>
+<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>
+</ul>
+ */
+public interface XSLTProcessor {
+
+ void clearParameters();
+
+ String getParameter(String namespaceURI, String localName);
+
+ void importStylesheet(Node stylesheet);
+
+ void removeParameter(String namespaceURI, String localName);
+
+ void reset();
+
+ void setParameter(String namespaceURI, String localName, String value);
+
+ Document transformToDocument(Node source);
+
+ DocumentFragment transformToFragment(Node source, Document docVal);
+}
diff --git a/elemental/src/elemental/xpath/DOMParser.java b/elemental/src/elemental/xpath/DOMParser.java
new file mode 100644
index 0000000..4ff47e6
--- /dev/null
+++ b/elemental/src/elemental/xpath/DOMParser.java
@@ -0,0 +1,34 @@
+/*
+ * 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 elemental.xpath;
+import elemental.dom.Document;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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>.
+ */
+public interface DOMParser {
+
+ Document parseFromString(String str, String contentType);
+}
diff --git a/elemental/src/elemental/xpath/XMLSerializer.java b/elemental/src/elemental/xpath/XMLSerializer.java
new file mode 100644
index 0000000..5a6fdae
--- /dev/null
+++ b/elemental/src/elemental/xpath/XMLSerializer.java
@@ -0,0 +1,71 @@
+/*
+ * 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 elemental.xpath;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <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>
+<p><code> </code></p>
+<div class="note">
+<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>
+<div id="result_box" dir="ltr"> </div>
+</div>
+ */
+public interface XMLSerializer {
+
+
+ /**
+ * <div dir="ltr" id="serializeToString" class="">
+ Returns the serialized subtree of a string.
+<dt></dt>
+</div>
+<div dir="ltr" id="serializeToStream"><strong>serializeToStream </strong></div>
+<div dir="ltr"> The subtree rooted by the specified element is serialized to a byte stream using the character set specified. </div>
+<div dir="ltr" id="Example"><span>Example</span></div>
+
+ <pre name="code" class="js">var s = new XMLSerializer();
+ var d = document;
+ var str = s.serializeToString(d);
+ alert(str);</pre>
+
+
+ <pre name="code" class="js">var s = new XMLSerializer();
+ var stream = {
+ close : function()
+ {
+ alert("Stream closed");
+ },
+ flush : function()
+ {
+ },
+ write : function(string, count)
+ {
+ alert("'" + string + "'\n bytes count: " + count + "");
+ }
+ };
+ s.serializeToStream(document, stream, "UTF-8");</pre>
+ */
+ String serializeToString(Node node);
+}
diff --git a/elemental/src/elemental/xpath/XPathEvaluator.java b/elemental/src/elemental/xpath/XPathEvaluator.java
new file mode 100644
index 0000000..0fb010c
--- /dev/null
+++ b/elemental/src/elemental/xpath/XPathEvaluator.java
@@ -0,0 +1,94 @@
+/*
+ * 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 elemental.xpath;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * <div><div>
+
+<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>
+<span>Last changed in Gecko 1.7
+</span></div></div>
+<p></p>
+<p>Implemented by: <code>@mozilla.org/dom/xpath-evaluator;1</code>. To create an instance, use:</p>
+<pre class="eval">var domXPathEvaluator = Components.classes["@mozilla.org/dom/xpath-evaluator;1"]
+ .createInstance(Components.interfaces.nsIDOMXPathEvaluator);
+</pre>
+ */
+public interface XPathEvaluator {
+
+
+ /**
+ * <p>Creates an <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathExpression">nsIDOMXPathExpression</a></code>
+ which can then be used for (repeated) evaluations.</p>
+<div class="geckoVersionNote">
+<p>
+</p><div class="geckoVersionHeading">Gecko 1.9 note<div>(Firefox 3)
+</div></div>
+<p></p>
+<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>
+</div>
+
+<div id="section_4"><span id="Parameters"></span><h6 class="editable">Parameters</h6>
+<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>
+</dl>
+</div><div id="section_5"><span id="Return_value"></span><h6 class="editable">Return value</h6>
+<p>An XPath expression, as an <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathExpression">nsIDOMXPathExpression</a></code>
+ object.</p>
+</div>
+ */
+ XPathExpression createExpression(String expression, XPathNSResolver resolver);
+
+
+ /**
+ * <p>Creates an <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathExpression">nsIDOMXPathExpression</a></code>
+ 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>
+
+<div id="section_7"><span id="Parameters_2"></span><h6 class="editable">Parameters</h6>
+<dl> <dt><code>nodeResolver</code></dt> <dd>The node to be used as a context for name space resolution.</dd>
+</dl>
+</div><div id="section_8"><span id="Return_value_2"></span><h6 class="editable">Return value</h6>
+<p>A name space resolver.</p>
+</div>
+ */
+ XPathNSResolver createNSResolver(Node nodeResolver);
+
+
+ /**
+ * <p>Evaluate the specified XPath expression.</p>
+
+<div id="section_10"><span id="Parameters_3"></span><h6 class="editable">Parameters</h6>
+<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>
+.</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>
+.</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>
+ 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>
+.</dd>
+</dl>
+</div><div id="section_11"><span id="Return_value_3"></span><h6 class="editable">Return value</h6>
+<p>An XPath result.</p>
+</div>
+ */
+ XPathResult evaluate(String expression, Node contextNode, XPathNSResolver resolver, int type, XPathResult inResult);
+}
diff --git a/elemental/src/elemental/xpath/XPathException.java b/elemental/src/elemental/xpath/XPathException.java
new file mode 100644
index 0000000..9176622
--- /dev/null
+++ b/elemental/src/elemental/xpath/XPathException.java
@@ -0,0 +1,41 @@
+/*
+ * 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 elemental.xpath;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface XPathException {
+
+ static final int INVALID_EXPRESSION_ERR = 51;
+
+ static final int TYPE_ERR = 52;
+
+ int getCode();
+
+ String getMessage();
+
+ String getName();
+}
diff --git a/elemental/src/elemental/xpath/XPathExpression.java b/elemental/src/elemental/xpath/XPathExpression.java
new file mode 100644
index 0000000..09b0e2e
--- /dev/null
+++ b/elemental/src/elemental/xpath/XPathExpression.java
@@ -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 elemental.xpath;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * 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.
+
+ */
+public interface XPathExpression {
+
+ XPathResult evaluate(Node contextNode, int type, XPathResult inResult);
+}
diff --git a/elemental/src/elemental/xpath/XPathNSResolver.java b/elemental/src/elemental/xpath/XPathNSResolver.java
new file mode 100644
index 0000000..b9afe41
--- /dev/null
+++ b/elemental/src/elemental/xpath/XPathNSResolver.java
@@ -0,0 +1,33 @@
+/*
+ * 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 elemental.xpath;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ *
+ */
+public interface XPathNSResolver {
+
+ String lookupNamespaceURI(String prefix);
+}
diff --git a/elemental/src/elemental/xpath/XPathResult.java b/elemental/src/elemental/xpath/XPathResult.java
new file mode 100644
index 0000000..180ed77
--- /dev/null
+++ b/elemental/src/elemental/xpath/XPathResult.java
@@ -0,0 +1,149 @@
+/*
+ * 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 elemental.xpath;
+import elemental.dom.Node;
+
+import elemental.events.*;
+import elemental.util.*;
+import elemental.dom.*;
+import elemental.html.*;
+import elemental.css.*;
+import elemental.stylesheets.*;
+
+import java.util.Date;
+
+/**
+ * Refer to <code><a rel="custom" href="https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIDOMXPathResult">nsIDOMXPathResult</a></code>
+ for more detail.
+ */
+public interface XPathResult {
+
+ /**
+ * 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.
+
+ */
+
+ static final int ANY_TYPE = 0;
+
+ /**
+ * 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.
+
+ */
+
+ static final int ANY_UNORDERED_NODE_TYPE = 8;
+
+ /**
+ * A result containing a single boolean value. This is useful for example, in an XPath expression using the <code>not()</code> function.
+
+ */
+
+ static final int BOOLEAN_TYPE = 3;
+
+ /**
+ * A result node-set containing the first node in the document that matches the expression.
+
+ */
+
+ static final int FIRST_ORDERED_NODE_TYPE = 9;
+
+ /**
+ * A result containing a single number. This is useful for example, in an XPath expression using the <code>count()</code> function.
+
+ */
+
+ static final int NUMBER_TYPE = 1;
+
+ /**
+ * 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.
+
+ */
+
+ static final int ORDERED_NODE_ITERATOR_TYPE = 5;
+
+ /**
+ * 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.
+
+ */
+
+ static final int ORDERED_NODE_SNAPSHOT_TYPE = 7;
+
+ /**
+ * A result containing a single string.
+
+ */
+
+ static final int STRING_TYPE = 2;
+
+ /**
+ * 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.
+
+ */
+
+ static final int UNORDERED_NODE_ITERATOR_TYPE = 4;
+
+ /**
+ * 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.
+
+ */
+
+ static final int UNORDERED_NODE_SNAPSHOT_TYPE = 6;
+
+
+ /**
+ * readonly boolean
+ */
+ boolean isBooleanValue();
+
+
+ /**
+ * readonly boolean
+ */
+ boolean isInvalidIteratorState();
+
+
+ /**
+ * readonly float
+ */
+ double getNumberValue();
+
+
+ /**
+ * readonly integer (short)
+ */
+ int getResultType();
+
+
+ /**
+ * readonly Node
+ */
+ Node getSingleNodeValue();
+
+
+ /**
+ * readonly Integer
+ */
+ int getSnapshotLength();
+
+
+ /**
+ * readonly String
+ */
+ String getStringValue();
+
+ Node iterateNext();
+
+ Node snapshotItem(int index);
+}
diff --git a/elemental/tests/elemental/AllTests.java b/elemental/tests/elemental/AllTests.java
new file mode 100644
index 0000000..ea7790d
--- /dev/null
+++ b/elemental/tests/elemental/AllTests.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2010 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 elemental;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import elemental.client.BrowserTest;
+import elemental.events.EventTargetTest;
+import elemental.html.DocumentTest;
+import elemental.html.ElementTest;
+import elemental.html.WindowTest;
+import elemental.js.testing.MockClockTest;
+import elemental.js.util.ArrayTests;
+import elemental.js.util.JsGlobalsTests;
+import elemental.js.util.MapFromIntTests;
+import elemental.js.util.MapFromStringTests;
+import elemental.js.util.StringUtilTests;
+import elemental.json.JsonUtilTest;
+import elemental.util.TimerTest;
+
+/**
+ * Here lie all my tests.
+ */
+public class AllTests {
+ public static Test suite() {
+ final TestSuite suite = new TestSuite();
+
+ // client
+ suite.addTestSuite(BrowserTest.class);
+
+ // events
+ suite.addTestSuite(EventTargetTest.class);
+
+ // html
+ suite.addTestSuite(DocumentTest.class);
+ suite.addTestSuite(ElementTest.class);
+ suite.addTestSuite(WindowTest.class);
+
+ //json
+ suite.addTestSuite(JsonUtilTest.class);
+
+ // util
+ suite.addTestSuite(TimerTest.class);
+
+ // js.testing
+ suite.addTestSuite(MockClockTest.class);
+
+ // js.util
+ suite.addTestSuite(ArrayTests.class);
+ suite.addTestSuite(JsGlobalsTests.class);
+ suite.addTestSuite(MapFromStringTests.class);
+ suite.addTestSuite(MapFromIntTests.class);
+ suite.addTestSuite(StringUtilTests.class);
+
+ return suite;
+ }
+}
diff --git a/elemental/tests/elemental/client/BrowserTest.java b/elemental/tests/elemental/client/BrowserTest.java
new file mode 100644
index 0000000..d70a3a7
--- /dev/null
+++ b/elemental/tests/elemental/client/BrowserTest.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2010 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 elemental.client;
+
+import com.google.gwt.junit.DoNotRunWith;
+import com.google.gwt.junit.Platform;
+import com.google.gwt.junit.client.GWTTestCase;
+
+/**
+ * Tests for {@link Browser}.
+ */
+@DoNotRunWith(Platform.HtmlUnitUnknown)
+public class BrowserTest extends GWTTestCase {
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ /**
+ * Tests the encode/decodeURI pass through correctly to the browser. This is
+ * not intended to be an exhaustive test of the actual behavior (on the
+ * assumption it's correct in the browser).
+ */
+ public void testEncodeDecodeURI() {
+ String uri = "~!@#$%^&*(){}[]=:/,;?+'\"\\";
+ String encodedURI = Browser.encodeURI(uri);
+ assertEquals("~!@#$%25%5E&*()%7B%7D%5B%5D=:/,;?+'%22%5C", encodedURI);
+ String decodedURI = Browser.decodeURI(encodedURI);
+ assertEquals(uri, decodedURI);
+ }
+
+ /**
+ * Tests the encode/decodeURIComponent pass through correctly to the browser.
+ * This is not intended to be an exhaustive test of the actual behavior (on
+ * the assumption it's correct in the browser).
+ */
+ public void testEncodeDecodeURIComponent() {
+ String uri = "~!@#$%^&*(){}[]=:/,;?+'\"\\";
+ String encodedURI = Browser.encodeURIComponent(uri);
+ assertEquals("~!%40%23%24%25%5E%26*()%7B%7D%5B%5D%3D%3A%2F%2C%3B%3F%2B'%22%5C", encodedURI);
+ String decodedURI = Browser.decodeURIComponent(encodedURI);
+ assertEquals(uri, decodedURI);
+ }
+}
diff --git a/elemental/tests/elemental/events/EventTargetTest.java b/elemental/tests/elemental/events/EventTargetTest.java
new file mode 100644
index 0000000..383285a
--- /dev/null
+++ b/elemental/tests/elemental/events/EventTargetTest.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2010 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 elemental.events;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
+import com.google.gwt.junit.client.GWTTestCase;
+
+import elemental.client.Browser;
+import elemental.html.ButtonElement;
+import elemental.html.Document;
+import elemental.html.Element;
+import elemental.html.TestUtils;
+
+/**
+ * Tests for {@link EventTarget}.
+ */
+public class EventTargetTest extends GWTTestCase {
+
+ private static class ListenerDidFire implements EventListener {
+ private boolean didFire;
+ public boolean didFire() {
+ return didFire;
+ }
+
+ @Override
+ public void handleEvent(Event evt) {
+ didFire = true;
+ }
+ }
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ /**
+ * Tests that addEventListener() correctly adds a listener.
+ */
+ public void testAddEventListener() {
+ final Element body = Browser.getDocument().getBody();
+
+ final ListenerDidFire a = new ListenerDidFire();
+ final ListenerDidFire b = new ListenerDidFire();
+
+ // Ensure that addEventListener works.
+ body.addEventListener("click", a, false);
+ // Ensure that setOnClick also works.
+ body.setOnClick(b);
+
+ assertEquals(b, body.getOnClick());
+
+ TestUtils.click(body);
+
+ assertTrue(a.didFire());
+ assertTrue(b.didFire());
+ }
+
+ /**
+ * Tests that removeEventListener() correctly removes the listener, so that no
+ * events are fired afterwards.
+ */
+ @SuppressWarnings("deprecation")
+ public void testRemoveEventListener() {
+ final Element body = Browser.getDocument().getBody();
+
+ final ListenerDidFire listener = new ListenerDidFire();
+
+ // Ensure that EventRemover works.
+ body.addEventListener("click", listener, false).remove();
+ TestUtils.click(body);
+ assertFalse(listener.didFire());
+
+ // Ensure that removeEventListener works.
+ body.addEventListener("click", listener, false);
+ body.removeEventListener("click", listener, false);
+ TestUtils.click(body);
+ assertFalse(listener.didFire());
+
+ // Ensure that onclick = null works.
+ body.setOnClick(listener);
+ body.setOnClick(null);
+ TestUtils.click(body);
+ assertFalse(listener.didFire());
+ }
+
+ /**
+ * Tests that the {@link UncaughtExceptionHandler} gets called correctly when
+ * events are fired from a subinterface of {@link EventTarget}.
+ */
+ public void testUncaughtException() {
+ // Create a button with an event handler that will throw an exception.
+ Document doc = Browser.getDocument();
+ ButtonElement btn = doc.createButtonElement();
+ doc.getBody().appendChild(btn);
+
+ btn.addEventListener(Event.CLICK, new EventListener() {
+ @Override
+ public void handleEvent(Event evt) {
+ throw new RuntimeException("w00t!");
+ }
+ }, false);
+
+ // Setup the UncaughtExceptionHandler.
+ final Throwable[] ex = new Throwable[1];
+ GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
+ @Override
+ public void onUncaughtException(Throwable e) {
+ ex[0] = e;
+ }
+ });
+
+ // Click it and make sure the exception got caught.
+ TestUtils.click(btn);
+ assertNotNull(ex[0]);
+ assertEquals("w00t!", ex[0].getMessage());
+
+ // Clean up.
+ GWT.setUncaughtExceptionHandler(null);
+ doc.getBody().removeChild(btn);
+ }
+}
diff --git a/elemental/tests/elemental/html/DocumentTest.java b/elemental/tests/elemental/html/DocumentTest.java
new file mode 100644
index 0000000..d29adb2
--- /dev/null
+++ b/elemental/tests/elemental/html/DocumentTest.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2010 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 elemental.html;
+
+import com.google.gwt.junit.client.GWTTestCase;
+
+import static elemental.client.Browser.getWindow;
+
+/**
+ * Tests {@link Document}.
+ */
+public class DocumentTest extends GWTTestCase {
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ /**
+ * Tests {@link Document#write}.
+ */
+ public void testWrite() {
+ final Window window = getWindow().open();
+ final Document document = window.getDocument();
+ document.write("<body>drink and drink and drink AND FIGHT</body>");
+ assertTrue(document.getBody().getTextContent().indexOf("drink and drink and drink AND FIGHT") != -1);
+ }
+}
diff --git a/elemental/tests/elemental/html/ElementTest.java b/elemental/tests/elemental/html/ElementTest.java
new file mode 100644
index 0000000..0297c10
--- /dev/null
+++ b/elemental/tests/elemental/html/ElementTest.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2010 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 elemental.html;
+
+import static elemental.client.Browser.getDocument;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
+import com.google.gwt.junit.client.GWTTestCase;
+
+import elemental.client.Browser;
+import elemental.events.Event;
+import elemental.events.EventListener;
+
+/**
+ * Tests for HTMLElement.
+ */
+public class ElementTest extends GWTTestCase {
+
+ private Element btn;
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ /**
+ * Tests that addEventListener() actually fires events.
+ */
+ public void testEventListener() {
+ final boolean[] clicked = new boolean[1];
+ btn.addEventListener("click", new EventListener() {
+ @Override
+ public void handleEvent(Event evt) {
+ clicked[0] = true;
+ }
+ }, false);
+
+ TestUtils.click(btn);
+ assertTrue(clicked[0]);
+ }
+
+ /**
+ * Tests {@link Element#hasClassName(String)}.
+ */
+ public void testHasClassName() {
+ final Element e = btn;
+ e.setClassName("jimmy crack corn");
+ assertTrue(e.hasClassName("jimmy"));
+ assertTrue(e.hasClassName("crack"));
+ assertTrue(e.hasClassName("corn"));
+ assertFalse(e.hasClassName("jim"));
+ assertFalse(e.hasClassName("popcorn"));
+
+ e.setClassName("turtles");
+ assertTrue(e.hasClassName("turtles"));
+ }
+
+ /**
+ * Tests that setting Element.onclick actually fires events.
+ */
+ public void testOnClick() {
+ final boolean[] clicked = new boolean[1];
+ EventListener listener = new EventListener() {
+ @Override
+ public void handleEvent(Event evt) {
+ clicked[0] = true;
+ }
+ };
+ btn.setOnClick(listener);
+
+ TestUtils.click(btn);
+ assertTrue(clicked[0]);
+ assertEquals(listener, btn.getOnClick());
+ }
+
+ /**
+ * Tests that the {@link UncaughtExceptionHandler} gets called correctly when
+ * events are fired from {@link Element#setOnClick(EventListener)}.
+ */
+ public void testUncaughtException() {
+ // Create a button with an event handler that will throw an exception.
+ Document doc = Browser.getDocument();
+ ButtonElement btn = doc.createButtonElement();
+ doc.getBody().appendChild(btn);
+
+ btn.setOnClick(new EventListener() {
+ @Override
+ public void handleEvent(Event evt) {
+ throw new RuntimeException("w00t!");
+ }
+ });
+
+ // Setup the UncaughtExceptionHandler.
+ final Throwable[] ex = new Throwable[1];
+ GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
+ @Override
+ public void onUncaughtException(Throwable e) {
+ ex[0] = e;
+ }
+ });
+
+ // Click it and make sure the exception got caught.
+ TestUtils.click(btn);
+ assertNotNull(ex[0]);
+ assertEquals("w00t!", ex[0].getMessage());
+
+ // Clean up.
+ GWT.setUncaughtExceptionHandler(null);
+ doc.getBody().removeChild(btn);
+ }
+
+ @Override
+ protected void gwtSetUp() throws Exception {
+ btn = getDocument().createElement("button");
+ getDocument().getBody().appendChild(btn);
+ }
+
+ @Override
+ protected void gwtTearDown() throws Exception {
+ getDocument().getBody().removeChild(btn);
+ }
+}
diff --git a/elemental/tests/elemental/html/TestUtils.java b/elemental/tests/elemental/html/TestUtils.java
new file mode 100644
index 0000000..4fcd6e8
--- /dev/null
+++ b/elemental/tests/elemental/html/TestUtils.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2010 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 elemental.html;
+
+import static elemental.client.Browser.getDocument;
+
+import elemental.events.EventTarget;
+import elemental.events.MouseEvent;
+
+/**
+ * Utilities for simplifying DOM tests.
+ */
+public class TestUtils {
+
+ /**
+ * Fires a left-click event on the given target (typically a DOM node).
+ */
+ public static void click(EventTarget target) {
+ MouseEvent evt = (MouseEvent) getDocument().createEvent(
+ Document.Event.MOUSE);
+ evt.initMouseEvent("click", true, true, null, 0, 0, 0, 0, 0, false, false,
+ false, false, MouseEvent.Button.PRIMARY, null);
+ target.dispatchEvent(evt);
+ }
+}
diff --git a/elemental/tests/elemental/html/WindowTest.java b/elemental/tests/elemental/html/WindowTest.java
new file mode 100644
index 0000000..8f393fc
--- /dev/null
+++ b/elemental/tests/elemental/html/WindowTest.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright 2010 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 elemental.html;
+
+import static elemental.client.Browser.getDocument;
+import static elemental.client.Browser.getWindow;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
+import com.google.gwt.junit.client.GWTTestCase;
+
+import elemental.events.Event;
+import elemental.events.EventListener;
+
+/**
+ * Tests for Window.
+ */
+public class WindowTest extends GWTTestCase {
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ /**
+ * Tests Window.addEventListener() catches events from the body.
+ */
+ public void testEventListener() {
+ final boolean[] clicked = new boolean[1];
+ getWindow().addEventListener("click", new EventListener() {
+ @Override
+ public void handleEvent(Event evt) {
+ clicked[0] = true;
+ }
+ }, false);
+ TestUtils.click(getDocument().getBody());
+ assertTrue(clicked[0]);
+ }
+
+ /**
+ * Tests Window.getSelection().
+ * TODO(knorton): Expand this into a more complete test.
+ */
+ public void testGetSelection() {
+ final Window window = getWindow();
+ final DOMSelection selection = window.getSelection();
+ assertNotNull(selection);
+ }
+
+ /**
+ * Tests that Window.open() and Window.clearOpener().
+ */
+ public void testOpener() {
+ final Window window = getWindow();
+ final Window proxy = window.open("about:blank");
+ assertNotNull(proxy.getOpener());
+ proxy.clearOpener();
+ assertNull(proxy.getOpener());
+ proxy.close();
+ }
+
+ /**
+ * Tests that Window.setTimeout() works.
+ */
+ public void testTimeout() {
+ delayTestFinish(1000);
+ getWindow().setTimeout(new Window.TimerCallback() {
+ @Override
+ public void fire() {
+ finishTest();
+ }
+ }, 500);
+ }
+
+ /**
+ * Tests that Window.setInterval() works repeatedly.
+ */
+ public void testInterval() {
+ final int[] handle = new int[1];
+ Window.TimerCallback listener = new Window.TimerCallback() {
+ int count;
+ @Override
+ public void fire() {
+ // Make sure we see at least two events.
+ ++count;
+ if (count >= 2) {
+ getWindow().clearInterval(handle[0]);
+ finishTest();
+ }
+ }
+ };
+
+ delayTestFinish(1000);
+ handle[0] = getWindow().setInterval(listener, 100);
+ }
+
+ /**
+ * Tests that the {@link UncaughtExceptionHandler} gets called correctly when
+ * setTimeout() and setInterval() throw exceptions.
+ */
+ public void testUncaughtException() {
+ // Setup an UncaughtExceptionHandler to catch exceptions from setTimeout()
+ // and setInterval().
+ final Throwable[] ex = new Throwable[2];
+ GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
+ int count;
+ @Override
+ public void onUncaughtException(Throwable e) {
+ ex[count++] = e;
+ }
+ });
+
+ // Set a timeout and an interval, both of which will throw a RuntimException.
+ getWindow().setTimeout(new Window.TimerCallback() {
+ @Override
+ public void fire() {
+ throw new RuntimeException("w00t!");
+ }
+ }, 1);
+
+ final int[] intervalHandle = new int[1];
+ intervalHandle[0] = getWindow().setInterval(new Window.TimerCallback() {
+ @Override
+ public void fire() {
+ // We only want this to happen once, so clear the interval timer on the
+ // first fire.
+ getWindow().clearInterval(intervalHandle[0]);
+ throw new RuntimeException("w00t!");
+ }
+ }, 1);
+
+ // Wait for the test to finish asynchronously, and setup another timer to
+ // check that the exceptions got caught (this is kind of ugly, but there's
+ // no way around it if we want to test the "real" timer implementation as
+ // opposed to a mock implementation.
+ delayTestFinish(5000);
+ getWindow().setTimeout(new Window.TimerCallback() {
+ @Override
+ public void fire() {
+ // Assert that exceptions got caught.
+ assertNotNull(ex[0]);
+ assertNotNull(ex[1]);
+ assertEquals("w00t!", ex[0].getMessage());
+ assertEquals("w00t!", ex[1].getMessage());
+
+ // Clean up and finish.
+ GWT.setUncaughtExceptionHandler(null);
+ finishTest();
+ }
+ }, 500);
+ }
+}
diff --git a/elemental/tests/elemental/js/testing/MockClockTest.java b/elemental/tests/elemental/js/testing/MockClockTest.java
new file mode 100644
index 0000000..a19623d
--- /dev/null
+++ b/elemental/tests/elemental/js/testing/MockClockTest.java
@@ -0,0 +1,94 @@
+// Copyright 2010 Google Inc. All Rights Reserved.
+package elemental.js.testing;
+
+import com.google.gwt.junit.client.GWTTestCase;
+import com.google.gwt.user.client.Timer;
+
+/**
+ * Tests for {@link MockClock}
+ */
+public class MockClockTest extends GWTTestCase {
+
+ public void testClearTimeout() {
+ MockClock.run(new Runnable() {
+ public void run() {
+ TestTimer t = new TestTimer();
+ t.schedule(100);
+ t.cancel();
+ MockClock.tick(101);
+ assertFalse(t.hasRun);
+ }
+ });
+ }
+
+ public void testGetCurrentTime() {
+ MockClock.reset();
+ assertEquals(0.0, MockClock.getCurrentTime());
+ }
+
+ public void testGetTimeoutsMade() throws Exception {
+ MockClock.run(new Runnable() {
+ public void run() {
+ TestTimer t = new TestTimer();
+ assertEquals(0, MockClock.getTimeoutsMade());
+ t.schedule(100);
+ MockClock.tick(101);
+ assertEquals(1, MockClock.getTimeoutsMade());
+ }
+ });
+ }
+
+ public void testRun() {
+ MockClock.run(new Runnable() {
+ public void run() {
+ TestTimer t = new TestTimer();
+ t.schedule(100);
+ MockClock.tick(101);
+ assertTrue(t.hasRun);
+ }
+ });
+ }
+
+ public void testSetTimeoutDelay() {
+ MockClock.run(new Runnable() {
+ public void run() {
+ MockClock.setTimeoutDelay(30);
+ TestTimer t = new TestTimer() {
+ @Override
+ public void run() {
+ super.run();
+ assertTrue(MockClock.getCurrentTime() >= 130);
+ }
+ };
+ assertEquals(0, MockClock.getTimeoutsMade());
+ t.schedule(100);
+ assertEquals(1, MockClock.getTimeoutsMade());
+ MockClock.tick(100);
+ assertFalse(t.hasRun);
+ MockClock.tick(30);
+ assertTrue(t.hasRun);
+ }
+ });
+ }
+
+ public void testTick() {
+ MockClock.reset();
+ MockClock.tick(1234.0);
+ assertEquals(1234.0, MockClock.getCurrentTime());
+ }
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ private static class TestTimer extends Timer {
+
+ private boolean hasRun;
+
+ @Override
+ public void run() {
+ hasRun = true;
+ }
+ }
+}
diff --git a/elemental/tests/elemental/js/util/ArrayTests.java b/elemental/tests/elemental/js/util/ArrayTests.java
new file mode 100644
index 0000000..13a778f
--- /dev/null
+++ b/elemental/tests/elemental/js/util/ArrayTests.java
@@ -0,0 +1,689 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import static elemental.js.util.TestUtils.assertSamelitude;
+
+import com.google.gwt.junit.client.GWTTestCase;
+
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfBoolean;
+import elemental.util.ArrayOfInt;
+import elemental.util.ArrayOfNumber;
+import elemental.util.ArrayOfString;
+import elemental.util.CanCompare;
+import elemental.util.CanCompareInt;
+import elemental.util.CanCompareNumber;
+import elemental.util.CanCompareString;
+import elemental.util.Collections;
+
+/**
+ * Tests for {@link ArrayOf}, {@link ArrayOfBoolean}, {@link ArrayOfInt},
+ * {@link ArrayOfString} and {@link ArrayOfNumber}.
+ *
+ */
+public class ArrayTests extends GWTTestCase {
+ private static ArrayOfBoolean arrayFrom(boolean... items) {
+ final ArrayOfBoolean array = Collections.arrayOfBoolean();
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+ return array;
+ }
+
+ private static ArrayOfNumber arrayFrom(double... items) {
+ final ArrayOfNumber array = Collections.arrayOfNumber();
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+ return array;
+ }
+
+ private static ArrayOfInt arrayFrom(int... items) {
+ final ArrayOfInt array = Collections.arrayOfInt();
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+ return array;
+ }
+
+ private static ArrayOfString arrayFrom(String... items) {
+ final ArrayOfString array = Collections.arrayOfString();
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+ return array;
+ }
+
+ @SuppressWarnings("unchecked")
+ private static <T> ArrayOf<T> arrayFrom(T... items) {
+ final ArrayOf<T> array = (ArrayOf<T>) Collections.arrayOf(Object.class);
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+ return array;
+ }
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ /**
+ * Tests {@link ArrayOf}.
+ */
+ public void testArrays() {
+ // This is our test subject.
+ final ArrayOf<TestItem> array = Collections.arrayOf(TestItem.class);
+
+ // These are items to put in him.
+ final TestItem[] items = new TestItem[] {new TestItem(0), new TestItem(1), new TestItem(2)};
+
+ // Let's put the items in him.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+
+ // Are the items in the right places?
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = items.length; i < n; ++i) {
+ assertEquals(items[i], array.get(i));
+ }
+
+ // These are some more items to put in him.
+ final TestItem[] newItems = new TestItem[] {new TestItem(3), new TestItem(4), new TestItem(5)};
+
+ // Put all these items in where the others were.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.set(i, newItems[i]);
+ assertEquals(newItems[i], array.get(i));
+ }
+
+ // Shift our test subject to squeeze out the first item.
+ assertEquals(newItems[0], array.shift());
+ assertEquals(newItems.length - 1, array.length());
+
+ // Then unshift.
+ array.unshift(newItems[0]);
+ assertEquals(newItems[0], array.get(0));
+ assertEquals(newItems.length, array.length());
+
+ // Now join them together in harmony.
+ assertEquals("item3$item4$item5", array.join("$"));
+
+ for (int i = 0, n = items.length; i < n; ++i) {
+ assertEquals(i, array.indexOf(newItems[i]));
+ assertTrue(array.contains(newItems[i]));
+ }
+
+ final TestItem imposter = new TestItem(100);
+ assertEquals(-1, array.indexOf(imposter));
+ assertFalse(array.contains(imposter));
+
+ final TestItem[] itemsA = new TestItem[] {new TestItem(12), new TestItem(13)};
+ final TestItem[] itemsB = new TestItem[] {new TestItem(14), new TestItem(15)};
+ final ArrayOf<TestItem> a = arrayFrom(itemsA);
+ final ArrayOf<TestItem> b = arrayFrom(itemsB);
+ assertSamelitude(new TestItem[] {itemsA[0], itemsA[1], itemsB[0], itemsB[1]}, a.concat(b));
+ assertSamelitude(itemsA, a);
+ assertSamelitude(itemsB, b);
+ }
+
+ /**
+ * Tests {@link ArrayOfBoolean}.
+ */
+ public void testArraysOfBooleans() {
+ // This is our test subject.
+ final ArrayOfBoolean array = Collections.arrayOfBoolean();
+
+ // These are items to put in him.
+ final boolean[] items = new boolean[] {true, false, true};
+
+ // Let's put the items in him.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+
+ // Are the items in the right places?
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = items.length; i < n; ++i) {
+ assertEquals(items[i], array.get(i));
+ }
+
+ // These are some more items to put in him.
+ final boolean[] newItems = new boolean[] {false, true, false};
+
+ // Put all these items in where the others were.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.set(i, newItems[i]);
+ assertEquals(newItems[i], array.get(i));
+ }
+
+ // Shift our test subject to squeeze out the first item.
+ assertEquals(newItems[0], array.shift());
+ assertEquals(newItems.length - 1, array.length());
+
+ // Then Unshift.
+ array.unshift(newItems[0]);
+ assertEquals(newItems[0], array.get(0));
+ assertEquals(newItems.length, array.length());
+
+ // Now join them together in harmony.
+ assertEquals("false$true$false", array.join("$"));
+
+ assertEquals(0, array.indexOf(false));
+ assertTrue(array.contains(false));
+ assertEquals(1, array.indexOf(true));
+ assertTrue(array.contains(true));
+
+ final ArrayOfBoolean allTrue = Collections.arrayOfBoolean();
+ allTrue.push(true);
+ allTrue.push(true);
+ allTrue.push(true);
+ assertEquals(-1, allTrue.indexOf(false));
+ assertFalse(allTrue.contains(false));
+
+ final boolean[] itemsA = new boolean[] {true, false};
+ final boolean[] itemsB = new boolean[] {false, true};
+ final ArrayOfBoolean a = arrayFrom(itemsA);
+ final ArrayOfBoolean b = arrayFrom(itemsB);
+ assertSamelitude(new boolean[] {itemsA[0], itemsA[1], itemsB[0], itemsB[1]}, a.concat(b));
+ assertSamelitude(itemsA, a);
+ assertSamelitude(itemsB, b);
+ }
+
+ /**
+ * Tests {@link ArrayOfInt}.
+ */
+ public void testArraysOfInts() {
+ // This is our test subject.
+ final ArrayOfInt array = Collections.arrayOfInt();
+
+ // These are items to put in him.
+ final int[] items = new int[] {0, 1, 2};
+
+ // Let's put the items in him.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+
+ // Are the items in the right places?
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = items.length; i < n; ++i) {
+ assertEquals(items[i], array.get(i));
+ }
+
+ // These are some more items to put in him.
+ final int[] newItems = new int[] {3, 4, 5};
+
+ // Put all these items in where the others were.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.set(i, newItems[i]);
+ assertEquals(newItems[i], array.get(i));
+ }
+
+ // Shift our test subject to squeeze out the first item.
+ assertEquals(newItems[0], array.shift());
+ assertEquals(newItems.length - 1, array.length());
+
+ // Then Unshift.
+ array.unshift(newItems[0]);
+ assertEquals(newItems[0], array.get(0));
+ assertEquals(newItems.length, array.length());
+
+ // Now join them together in harmony.
+ assertEquals("3$4$5", array.join("$"));
+
+ for (int i = 0, n = items.length; i < n; ++i) {
+ assertEquals(i, array.indexOf(newItems[i]));
+ assertTrue(array.contains(newItems[i]));
+ }
+
+ final int imposter = 100;
+ assertEquals(-1, array.indexOf(imposter));
+ assertFalse(array.contains(imposter));
+
+ final int[] itemsA = new int[] {11, 12};
+ final int[] itemsB = new int[] {13, 14};
+ final ArrayOfInt a = arrayFrom(itemsA);
+ final ArrayOfInt b = arrayFrom(itemsB);
+ assertSamelitude(new int[] {itemsA[0], itemsA[1], itemsB[0], itemsB[1]}, a.concat(b));
+ assertSamelitude(itemsA, a);
+ assertSamelitude(itemsB, b);
+ }
+
+ /**
+ * Tests {@link ArrayOfNumber}.
+ */
+ public void testArraysOfNumbers() {
+ // This is our test subject.
+ final ArrayOfNumber array = Collections.arrayOfNumber();
+
+ // These are items to put in him.
+ final double[] items = new double[] {0.0, 1.0, 2.0};
+
+ // Let's put the items in him.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+
+ // Are the items in the right places?
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = items.length; i < n; ++i) {
+ assertEquals(items[i], array.get(i));
+ }
+
+ // These are some more items to put in him.
+ final double[] newItems = new double[] {3.0, 4.0, 5.0};
+
+ // Put all these items in where the others were.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.set(i, newItems[i]);
+ assertEquals(newItems[i], array.get(i));
+ }
+
+ // Shift our test subject to squeeze out the first item.
+ assertEquals(newItems[0], array.shift());
+ assertEquals(newItems.length - 1, array.length());
+
+ // Then Unshift.
+ array.unshift(newItems[0]);
+ assertEquals(newItems[0], array.get(0));
+ assertEquals(newItems.length, array.length());
+
+ // Now join them together in harmony.
+ assertEquals("3$4$5", array.join("$"));
+
+ final double[] itemsA = new double[] {0.01, 0.02};
+ final double[] itemsB = new double[] {0.03, 0.04};
+ final ArrayOfNumber a = arrayFrom(itemsA);
+ final ArrayOfNumber b = arrayFrom(itemsB);
+ assertSamelitude(new double[] {itemsA[0], itemsA[1], itemsB[0], itemsB[1]}, a.concat(b));
+ assertSamelitude(itemsA, a);
+ assertSamelitude(itemsB, b);
+ }
+
+ /**
+ * Tests for {@link ArrayOfString}.
+ */
+ public void testArraysOfStrings() {
+ // This is our test subject.
+ final ArrayOfString array = Collections.arrayOfString();
+
+ // These are items to put in him.
+ final String[] items = new String[] {"zero goats", "one goat", "two goats"};
+
+ // Let's put the items in him.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.push(items[i]);
+ }
+
+ // Are the items in the right places?
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = items.length; i < n; ++i) {
+ assertEquals(items[i], array.get(i));
+ }
+
+ // These are some more items to put in him.
+ final String[] newItems = new String[] {"three goats", "four goats", "SQUIRREL!"};
+
+ // Put all these items in where the others were.
+ for (int i = 0, n = items.length; i < n; ++i) {
+ array.set(i, newItems[i]);
+ assertEquals(newItems[i], array.get(i));
+ }
+
+ // Shift our test subject to squeeze out the first item.
+ assertEquals(newItems[0], array.shift());
+ assertEquals(newItems.length - 1, array.length());
+
+ // Then Unshift.
+ array.unshift(newItems[0]);
+ assertEquals(newItems[0], array.get(0));
+ assertEquals(newItems.length, array.length());
+
+ // Now join them together in harmony.
+ assertEquals("three goats$four goats$SQUIRREL!", array.join("$"));
+
+ for (int i = 0, n = items.length; i < n; ++i) {
+ assertEquals(i, array.indexOf(newItems[i]));
+ assertTrue(array.contains(newItems[i]));
+ }
+
+ final String imposter = "Pajamas?";
+ assertEquals(-1, array.indexOf(imposter));
+ assertFalse(array.contains(imposter));
+
+ final String[] itemsA = new String[] {"atlanta", "eagle"};
+ final String[] itemsB = new String[] {"chaps", "profit"};
+ final ArrayOfString a = arrayFrom(itemsA);
+ final ArrayOfString b = arrayFrom(itemsB);
+ assertSamelitude(new String[] {itemsA[0], itemsA[1], itemsB[0], itemsB[1]}, a.concat(b));
+ assertSamelitude(itemsA, a);
+ assertSamelitude(itemsB, b);
+ }
+
+ /**
+ * Tests {@link ArrayOf#insert(int, Object)}.
+ */
+ public void testInsertingIntoArrays() {
+ final ArrayOf<TestItem> array = Collections.arrayOf(TestItem.class);
+
+ final TestItem a = new TestItem(0);
+ array.insert(0, a);
+ assertSamelitude(new TestItem[] {a}, array);
+
+ final TestItem b = new TestItem(1);
+ array.insert(0, b);
+ assertSamelitude(new TestItem[] {b, a}, array);
+
+ final TestItem c = new TestItem(2);
+ array.insert(100, c);
+ assertSamelitude(new TestItem[] {b, a, c}, array);
+
+ final TestItem d = new TestItem(3);
+ array.insert(-1, d);
+ assertSamelitude(new TestItem[] {b, a, d, c}, array);
+ }
+
+ /**
+ * Tests {@link ArrayOfBoolean#insert(int, boolean)}.
+ */
+ public void testInsertingIntoArraysOfBooleans() {
+ final ArrayOfBoolean array = Collections.arrayOfBoolean();
+
+ array.insert(0, true);
+ assertSamelitude(new boolean[] {true}, array);
+
+ array.insert(0, false);
+ assertSamelitude(new boolean[] {false, true}, array);
+
+ array.insert(100, false);
+ assertSamelitude(new boolean[] {false, true, false}, array);
+
+ array.insert(-1, true);
+ assertSamelitude(new boolean[] {false, true, true, false}, array);
+ }
+
+ /**
+ * Tests {@link ArrayOfInt#insert(int, int)}.
+ */
+ public void testInsertingIntoArraysOfInts() {
+ final ArrayOfInt array = Collections.arrayOfInt();
+
+ array.insert(0, 0);
+ assertSamelitude(new int[] {0}, array);
+
+ array.insert(0, 1);
+ assertSamelitude(new int[] {1, 0}, array);
+
+ array.insert(100, 2);
+ assertSamelitude(new int[] {1, 0, 2}, array);
+
+ array.insert(-1, 3);
+ assertSamelitude(new int[] {1, 0, 3, 2}, array);
+ }
+
+ /**
+ * Tests {@link ArrayOfNumber#insert(int, double)}.
+ */
+ public void testInsertingIntoArraysOfNumbers() {
+ final ArrayOfNumber array = Collections.arrayOfNumber();
+
+ array.insert(0, 0.1);
+ assertSamelitude(new double[] {0.1}, array);
+
+ array.insert(0, 0.2);
+ assertSamelitude(new double[] {0.2, 0.1}, array);
+
+ array.insert(100, 0.3);
+ assertSamelitude(new double[] {0.2, 0.1, 0.3}, array);
+
+ array.insert(-1, 0.4);
+ assertSamelitude(new double[] {0.2, 0.1, 0.4, 0.3}, array);
+ }
+
+ /**
+ * Tests {@link ArrayOfString#insert(int, String)}.
+ */
+ public void testInsertingIntoArraysOfStrings() {
+ final ArrayOfString array = Collections.arrayOfString();
+
+ array.insert(0, "beer");
+ assertSamelitude(new String[] {"beer"}, array);
+
+ array.insert(0, "cigars");
+ assertSamelitude(new String[] {"cigars", "beer"}, array);
+
+ array.insert(100, "porn");
+ assertSamelitude(new String[] {"cigars", "beer", "porn"}, array);
+
+ array.insert(-1, "profit");
+ assertSamelitude(new String[] {"cigars", "beer", "profit", "porn"}, array);
+ }
+
+ /**
+ * Tests {@link ArrayOf#sort(CanCompare)}.
+ */
+ public void testSortingOfArrays() {
+ final TestItem[] items =
+ new TestItem[] {new TestItem(0), new TestItem(1), new TestItem(2), new TestItem(3)};
+
+ final ArrayOf<TestItem> array = Collections.arrayOf(TestItem.class);
+ array.push(items[2]);
+ array.push(items[1]);
+ array.push(items[3]);
+ array.push(items[0]);
+
+ array.sort(new CanCompare<TestItem>() {
+ @Override
+ public int compare(TestItem a, TestItem b) {
+ return a.id() - b.id();
+ }
+ });
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = array.length(); i < n; ++i) {
+ assertEquals(items[i], array.get(i));
+ }
+ }
+
+ /**
+ * Tests {@link ArrayOfInt#sort()} and
+ * {@link ArrayOfInt#sort(CanCompareInt)}.
+ */
+ public void testSortingOfArraysOfInts() {
+ final int[] items = new int[] {0, 1, 2, 3};
+ final ArrayOfInt array = Collections.arrayOfInt();
+ array.push(items[2]);
+ array.push(items[1]);
+ array.push(items[0]);
+ array.push(items[3]);
+
+ array.sort();
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = array.length(); i < n; ++i) {
+ assertEquals(items[i], array.get(i));
+ }
+
+ array.sort(new CanCompareInt() {
+ @Override
+ public int compare(int a, int b) {
+ return b - a;
+ }
+ });
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = array.length(); i < n; ++i) {
+ assertEquals(items[n - 1 - i], array.get(i));
+ }
+ }
+
+ /**
+ * Tests {@link ArrayOfNumber#sort()} and
+ * {@link ArrayOfNumber#sort(CanCompareNumber)}.
+ */
+ public void testSortingOfArraysOfNumbers() {
+ final double[] items = new double[] {0.0, 0.1, 0.2, 0.3};
+ final ArrayOfNumber array = Collections.arrayOfNumber();
+ array.push(items[2]);
+ array.push(items[1]);
+ array.push(items[3]);
+ array.push(items[0]);
+
+ array.sort();
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = array.length(); i < n; ++i) {
+ assertEquals(items[i], array.get(i), 0.01);
+ }
+
+ array.sort(new CanCompareNumber() {
+ @Override
+ public int compare(double a, double b) {
+ return (a > b) ? -1 : (a < b) ? 1 : 0;
+ }
+ });
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = array.length(); i < n; ++i) {
+ assertEquals(items[n - 1 - i], array.get(i), 0.01);
+ }
+ }
+
+ /**
+ * Tests {@link ArrayOfString#sort()} and
+ * {@link ArrayOfString#sort(CanCompareString)}.
+ */
+ public void testSortingOfArraysOfStrings() {
+ final String[] items = new String[] {"aaa", "aab", "baa", "bab"};
+ final ArrayOfString array = Collections.arrayOfString();
+ array.push(items[2]);
+ array.push(items[1]);
+ array.push(items[3]);
+ array.push(items[0]);
+
+ array.sort();
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = array.length(); i < n; ++i) {
+ assertEquals(items[i], array.get(i));
+ }
+
+ array.sort(new CanCompareString() {
+ @Override
+ public native int compare(String a, String b) /*-{
+ return (a > b) ? -1 : (a < b) ? 1 : 0;
+ }-*/;
+ });
+ assertEquals(items.length, array.length());
+ for (int i = 0, n = array.length(); i < n; ++i) {
+ assertEquals(items[n - 1 - i], array.get(i));
+ }
+ }
+
+ /**
+ * Tests {@link ArrayOf#splice(int, int)}.
+ */
+ public void testSplicingOfArrays() {
+ final TestItem[] items = new TestItem[] {
+ new TestItem(0), new TestItem(1), new TestItem(2), new TestItem(3), new TestItem(4)};
+
+ final ArrayOf<TestItem> a = arrayFrom(items);
+ assertSamelitude(items, a.splice(0, items.length));
+ assertSamelitude(new TestItem[] {}, a);
+
+ final ArrayOf<TestItem> b = arrayFrom(items);
+ assertSamelitude(new TestItem[] {}, b.splice(0, 0));
+ assertSamelitude(items, b);
+
+ final ArrayOf<TestItem> c = arrayFrom(items);
+ assertSamelitude(new TestItem[] {items[0], items[1]}, c.splice(0, 2));
+ assertSamelitude(new TestItem[] {items[2], items[3], items[4]}, c);
+ }
+
+ /**
+ * Tests {@link ArrayOfBoolean#splice(int, int)}.
+ */
+ public void testSplicingOfArraysOfBooleans() {
+ final boolean[] items = new boolean[] {true, false, true, false, true};
+
+ final ArrayOfBoolean a = arrayFrom(items);
+ assertSamelitude(items, a.splice(0, items.length));
+ assertSamelitude(new boolean[] {}, a);
+
+ final ArrayOfBoolean b = arrayFrom(items);
+ assertSamelitude(new boolean[] {}, b.splice(0, 0));
+ assertSamelitude(items, b);
+
+ final ArrayOfBoolean c = arrayFrom(items);
+ assertSamelitude(new boolean[] {items[0], items[1]}, c.splice(0, 2));
+ assertSamelitude(new boolean[] {items[2], items[3], items[4]}, c);
+ }
+
+ /**
+ * Tests {@link ArrayOfInt#splice(int, int)}.
+ */
+ public void testSplicingOfArraysOfInts() {
+ final int[] items = new int[] {0, 1, 2, 3, 4};
+
+ final ArrayOfInt a = arrayFrom(items);
+ assertSamelitude(items, a.splice(0, items.length));
+ assertSamelitude(new int[] {}, a);
+
+ final ArrayOfInt b = arrayFrom(items);
+ assertSamelitude(new int[] {}, b.splice(0, 0));
+ assertSamelitude(items, b);
+
+ final ArrayOfInt c = arrayFrom(items);
+ assertSamelitude(new int[] {items[0], items[1]}, c.splice(0, 2));
+ assertSamelitude(new int[] {items[2], items[3], items[4]}, c);
+ }
+
+ /**
+ * Tests {@link ArrayOfNumber#splice(int, int)}.
+ */
+ public void testSplicingOfArraysOfNumbers() {
+ final double[] items = new double[] {0.0, 0.01, 0.001, 0.0001, 0.00001};
+
+ final ArrayOfNumber a = arrayFrom(items);
+ assertSamelitude(items, a.splice(0, items.length));
+ assertSamelitude(new double[] {}, a);
+
+ final ArrayOfNumber b = arrayFrom(items);
+ assertSamelitude(new double[] {}, b.splice(0, 0));
+ assertSamelitude(items, b);
+
+ final ArrayOfNumber c = arrayFrom(items);
+ assertSamelitude(new double[] {items[0], items[1]}, c.splice(0, 2));
+ assertSamelitude(new double[] {items[2], items[3], items[4]}, c);
+ }
+
+ /**
+ * Tests {@link ArrayOfString#splice(int, int)}.
+ */
+ public void testSplicingOfArraysOfStrings() {
+ final String[] items =
+ new String[] {"One Gerbil", "Two Gerbil", "Three Gerbil", "Four Gerbil", "Five Gerbil"};
+
+ final ArrayOfString a = arrayFrom(items);
+ assertSamelitude(items, a.splice(0, items.length));
+ assertSamelitude(new String[] {}, a);
+
+ final ArrayOfString b = arrayFrom(items);
+ assertSamelitude(new String[] {}, b.splice(0, 0));
+ assertSamelitude(items, b);
+
+ final ArrayOfString c = arrayFrom(items);
+ assertSamelitude(new String[] {items[0], items[1]}, c.splice(0, 2));
+ assertSamelitude(new String[] {items[2], items[3], items[4]}, c);
+ }
+}
diff --git a/elemental/tests/elemental/js/util/JsGlobalsTests.java b/elemental/tests/elemental/js/util/JsGlobalsTests.java
new file mode 100644
index 0000000..c5f88dc
--- /dev/null
+++ b/elemental/tests/elemental/js/util/JsGlobalsTests.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.junit.client.GWTTestCase;
+import static elemental.js.util.JsGlobals.*;
+
+/**
+ * Tests {@link JsGlobals}.
+ */
+public class JsGlobalsTests extends GWTTestCase {
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ public void testBasicInvocations() {
+ assertEquals("chicken dog", decodeURI("chicken%20dog"));
+ assertEquals("dog chicken", decodeURIComponent("dog%20chicken"));
+ assertEquals("chicken%20dog", encodeURI("chicken dog"));
+ assertEquals("dog%20chicken", encodeURIComponent("dog chicken"));
+
+ assertEquals(2.032, parseFloat("2.032 raincoats"), 0.0001);
+ assertEquals(10, (int)parseInt("10 dogs"));
+
+ assertTrue(isFinite(2.0));
+ assertFalse(isFinite(parseFloat("butterbean")));
+
+ assertFalse(isNaN(2.0));
+ assertTrue(isNaN(parseFloat("greenbean")));
+ }
+}
diff --git a/elemental/tests/elemental/js/util/MapFromIntTests.java b/elemental/tests/elemental/js/util/MapFromIntTests.java
new file mode 100644
index 0000000..abb1661
--- /dev/null
+++ b/elemental/tests/elemental/js/util/MapFromIntTests.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import static elemental.js.util.TestUtils.assertSamelitude;
+
+import com.google.gwt.junit.client.GWTTestCase;
+
+import elemental.util.Collections;
+import elemental.util.MapFromIntTo;
+import elemental.util.MapFromIntToString;
+
+/**
+ * Tests {@link MapFromIntTo} and {@link MapFromIntToString}.
+ */
+public class MapFromIntTests extends GWTTestCase {
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ /**
+ * Tests {@link MapFromIntTo}.
+ */
+ public void testMapsFromInts() {
+ // This is our test subject.
+ final MapFromIntTo<TestItem> map = Collections.mapFromIntTo(TestItem.class);
+
+ // These are his keys.
+ final int[] keys = new int[] {1, 2, 3};
+
+ // These are the values for those keys.
+ final TestItem[] vals = new TestItem[] {new TestItem(0), new TestItem(1), new TestItem(2)};
+
+ // Let's put those values in.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], vals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(vals[i], map.get(keys[i]));
+ }
+
+ // These are some new values.
+ final TestItem[] newVals = new TestItem[] {new TestItem(3), new TestItem(4), new TestItem(5)};
+
+ // Let's update those keys, ok.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], newVals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(newVals[i], map.get(keys[i]));
+ }
+
+ assertSamelitude(keys, map.keys());
+ assertSamelitude(newVals, map.values());
+
+ // Let's remove a key, did it go away?
+ map.remove(keys[0]);
+ assertNull(map.get(keys[0]));
+ assertFalse(map.hasKey(keys[0]));
+ }
+
+ /**
+ * Tests {@link MapFromIntToString}.
+ */
+ public void testMapsFromIntstoStrings() {
+ // This is our test subject.
+ final MapFromIntToString map = Collections.mapFromIntToString();
+
+ // These are his keys.
+ final int[] keys = new int[] {1, 2, 3};
+
+ // These are the values for those keys.
+ final String[] vals = new String[] {"val-0", "val-1", "val-2"};
+
+ // Let's put those values in.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], vals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(vals[i], map.get(keys[i]));
+ }
+
+ // These are some new values.
+ final String[] newVals = new String[] {"val-3", "val-4", "val-5"};
+
+ // Let's update those keys, ok.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], newVals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(newVals[i], map.get(keys[i]));
+ }
+
+ assertSamelitude(keys, map.keys());
+ assertSamelitude(newVals, map.values());
+
+ // Let's remove a key, did it go away?
+ map.remove(keys[0]);
+ assertNull(map.get(keys[0]));
+ assertFalse(map.hasKey(keys[0]));
+ }
+}
diff --git a/elemental/tests/elemental/js/util/MapFromStringTests.java b/elemental/tests/elemental/js/util/MapFromStringTests.java
new file mode 100644
index 0000000..e86a81a
--- /dev/null
+++ b/elemental/tests/elemental/js/util/MapFromStringTests.java
@@ -0,0 +1,272 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import static elemental.js.util.TestUtils.assertSamelitude;
+
+import com.google.gwt.junit.client.GWTTestCase;
+
+import elemental.util.Collections;
+import elemental.util.MapFromStringTo;
+import elemental.util.MapFromStringToBoolean;
+import elemental.util.MapFromStringToInt;
+import elemental.util.MapFromStringToNumber;
+import elemental.util.MapFromStringToString;
+
+/**
+ * Tests {@link MapFromStringTo}, {@link MapFromStringToBoolean},
+ * {@link MapFromStringToInt}, {@link MapFromStringToNumber} and
+ * {@link MapFromStringToString}.
+ */
+public class MapFromStringTests extends GWTTestCase {
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ /**
+ * Tests {@link MapFromStringTo}.
+ */
+ public void testMapsFromString() {
+ // This is our test subject.
+ final MapFromStringTo<TestItem> map = Collections.mapFromStringTo(TestItem.class);
+
+ // These are his keys.
+ final String[] keys = new String[] {"key-1", "key-2", "key-3"};
+
+ // These are the values for those keys.
+ final TestItem[] vals = new TestItem[] {new TestItem(0), new TestItem(1), new TestItem(2)};
+
+ // Let's put those values in.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], vals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(vals[i], map.get(keys[i]));
+ }
+
+ // These are some new values.
+ final TestItem[] newVals = new TestItem[] {new TestItem(3), new TestItem(4), new TestItem(5)};
+
+ // Let's update those keys, ok.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], newVals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(newVals[i], map.get(keys[i]));
+ }
+
+ assertSamelitude(keys, map.keys());
+ assertSamelitude(newVals, map.values());
+
+ // Let's remove a key, did it go away?
+ map.remove(keys[0]);
+ assertNull(map.get(keys[0]));
+ assertFalse(map.hasKey(keys[0]));
+ }
+
+ /**
+ * Tests {@link MapFromStringToInt}.
+ */
+ public void testMapsFromStringsToInts() {
+ // This is our test subject.
+ final MapFromStringToInt map = Collections.mapFromStringToInt();
+
+ // These are his keys.
+ final String[] keys = new String[] {"key-1", "key-2", "key-3"};
+
+ // These are the values for those keys.
+ final int[] vals = new int[] {0, 1, 2};
+
+ // Let's put those values in.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], vals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(vals[i], map.get(keys[i]));
+ }
+
+ // These are some new values.
+ final int[] newVals = new int[] {3, 4, 5};
+
+ // Let's update those keys, ok.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], newVals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(newVals[i], map.get(keys[i]));
+ }
+
+ assertSamelitude(keys, map.keys());
+ assertSamelitude(newVals, map.values());
+
+ // Let's remove a key, did it go away?
+ map.remove(keys[0]);
+ assertFalse(map.hasKey(keys[0]));
+ }
+
+ /**
+ * Tests {@link MapFromStringToNumber}.
+ */
+ public void testMapsFromStringsToNumbers() {
+ // This is our test subject.
+ final MapFromStringToNumber map = Collections.mapFromStringToNumber();
+
+ // These are his keys.
+ final String[] keys = new String[] {"key-1", "key-2", "key-3"};
+
+ // These are the values for those keys.
+ final double[] vals = new double[] {0.0, 1.0, 2.0};
+
+ // Let's put those values in.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], vals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(vals[i], map.get(keys[i]));
+ }
+
+ // These are some new values.
+ final double[] newVals = new double[] {3.0, 4.0, 5.0};
+
+ // Let's update those keys, ok.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], newVals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(newVals[i], map.get(keys[i]));
+ }
+
+ assertSamelitude(keys, map.keys());
+ assertSamelitude(newVals, map.values());
+
+ // Let's remove a key, did it go away?
+ map.remove(keys[0]);
+ assertFalse(map.hasKey(keys[0]));
+ }
+
+ /**
+ * Tests {@link MapFromStringToString}.
+ */
+ public void testMapsFromStringsToStrings() {
+ // This is our test subject.
+ final MapFromStringToString map = Collections.mapFromStringToString();
+
+ // These are his keys.
+ final String[] keys = new String[] {"key-1", "key-2", "key-3"};
+
+ // These are the values for those keys.
+ final String[] vals = new String[] {"val-0", "val-1", "val-2"};
+
+ // Let's put those values in.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], vals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(vals[i], map.get(keys[i]));
+ }
+
+ // These are some new values.
+ final String[] newVals = new String[] {"val-3", "val-4", "val-5"};
+
+ // Let's update those keys, ok.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], newVals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(newVals[i], map.get(keys[i]));
+ }
+
+ assertSamelitude(keys, map.keys());
+ assertSamelitude(newVals, map.values());
+
+ // Let's remove a key, did it go away?
+ map.remove(keys[0]);
+ assertNull(map.get(keys[0]));
+ assertFalse(map.hasKey(keys[0]));
+ }
+
+ /**
+ * Tests {@link MapFromStringToBoolean}.
+ */
+ public void testsMapFromStringsToBooleans() {
+ // This is our test subject.
+ final MapFromStringToBoolean map = Collections.mapFromStringToBoolean();
+
+ // These are his keys.
+ final String[] keys = new String[] {"key-1", "key-2", "key-3"};
+
+ // These are the values for those keys.
+ final boolean[] vals = new boolean[] {true, false, true};
+
+ // Let's put those values in.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], vals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(vals[i], map.get(keys[i]));
+ }
+
+ // These are some new values.
+ final boolean[] newVals = new boolean[] {false, true, false};
+
+ // Let's update those keys, ok.
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ map.put(keys[i], newVals[i]);
+ }
+
+ // Are they all in the right place?
+ for (int i = 0, n = keys.length; i < n; ++i) {
+ assertTrue(map.hasKey(keys[i]));
+ assertEquals(newVals[i], map.get(keys[i]));
+ }
+
+ assertSamelitude(keys, map.keys());
+ assertSamelitude(newVals, map.values());
+
+ // Let's remove a key, did it go away?
+ map.remove(keys[0]);
+ assertFalse(map.hasKey(keys[0]));
+ }
+}
diff --git a/elemental/tests/elemental/js/util/StringUtilTests.java b/elemental/tests/elemental/js/util/StringUtilTests.java
new file mode 100644
index 0000000..846c5ec
--- /dev/null
+++ b/elemental/tests/elemental/js/util/StringUtilTests.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import com.google.gwt.junit.client.GWTTestCase;
+import elemental.util.ArrayOfString;
+
+/**
+ * Tests {@link StringUtil}.
+ *
+ */
+public class StringUtilTests extends GWTTestCase {
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ private static void assertSame(String[] expected, ArrayOfString result) {
+ assertEquals(expected.length, result.length());
+ for (int i = 0, n = expected.length; i < n; ++i) {
+ assertEquals(expected[i], result.get(i));
+ }
+ }
+
+ /**
+ * Tests {@link StringUtil#split(String, String)} and
+ * {@link StringUtil#split(String, String, int)}.
+ */
+ public void testSplit() {
+ assertSame(
+ new String[] {"abc", "", "", "de", "f", "", ""}, StringUtil.split("abcxxxdexfxx", "x"));
+ assertSame(new String[] {"a", "b", "c", "x", "x", "d", "e", "x", "f", "x"},
+ StringUtil.split("abcxxdexfx", ""));
+ final String booAndFoo = "boo:and:foo";
+ assertSame(new String[] {"boo", "and"}, StringUtil.split(booAndFoo, ":", 2));
+ assertSame(new String[] {"boo", "and", "foo"}, StringUtil.split(booAndFoo, ":", 5));
+ assertSame(new String[] {"boo", "and", "foo"}, StringUtil.split(booAndFoo, ":", -2));
+ assertSame(new String[] {"", ""}, StringUtil.split("/", "/"));
+ assertSame(new String[] {""}, StringUtil.split("", ","));
+ }
+}
diff --git a/elemental/tests/elemental/js/util/TestItem.java b/elemental/tests/elemental/js/util/TestItem.java
new file mode 100644
index 0000000..c4b13d4a
--- /dev/null
+++ b/elemental/tests/elemental/js/util/TestItem.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+/**
+ * A simple object for testing collections.
+ */
+public class TestItem {
+ private final int id;
+
+ public TestItem(int id) {
+ this.id = id;
+ }
+
+ public int id() {
+ return id;
+ }
+
+ @Override
+ public String toString() {
+ return "item" + id;
+ }
+}
diff --git a/elemental/tests/elemental/js/util/TestUtils.java b/elemental/tests/elemental/js/util/TestUtils.java
new file mode 100644
index 0000000..0fe5308
--- /dev/null
+++ b/elemental/tests/elemental/js/util/TestUtils.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2010 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 elemental.js.util;
+
+import static junit.framework.Assert.assertEquals;
+
+import elemental.util.ArrayOf;
+import elemental.util.ArrayOfBoolean;
+import elemental.util.ArrayOfInt;
+import elemental.util.ArrayOfNumber;
+import elemental.util.ArrayOfString;
+
+/**
+ * Static test utilities for the tests in this package.
+ */
+class TestUtils {
+ static void assertSamelitude(boolean[] expected, ArrayOfBoolean values) {
+ assertEquals(expected.length, values.length());
+ for (int i = 0, n = expected.length; i < n; ++i) {
+ assertEquals(expected[i], values.get(i));
+ }
+ }
+
+ static void assertSamelitude(double[] expected, ArrayOfNumber values) {
+ assertEquals(expected.length, values.length());
+ for (int i = 0, n = expected.length; i < n; ++i) {
+ assertEquals(expected[i], values.get(i));
+ }
+ }
+
+ static void assertSamelitude(int[] expected, ArrayOfInt values) {
+ assertEquals(expected.length, values.length());
+ for (int i = 0, n = expected.length; i < n; ++i) {
+ assertEquals(expected[i], values.get(i));
+ }
+ }
+
+ static void assertSamelitude(String[] expected, ArrayOfString values) {
+ assertEquals(expected.length, values.length());
+ for (int i = 0, n = expected.length; i < n; ++i) {
+ assertEquals(expected[i], values.get(i));
+ }
+ }
+
+ static void assertSamelitude(TestItem[] expected, ArrayOf<TestItem> values) {
+ assertEquals(expected.length, values.length());
+ for (int i = 0, n = expected.length; i < n; ++i) {
+ assertEquals(expected[i], values.get(i));
+ }
+ }
+
+ private TestUtils() {
+ }
+}
diff --git a/elemental/tests/elemental/json/JsonUtilTest.java b/elemental/tests/elemental/json/JsonUtilTest.java
new file mode 100755
index 0000000..d9e2265
--- /dev/null
+++ b/elemental/tests/elemental/json/JsonUtilTest.java
@@ -0,0 +1,217 @@
+/*
+ * Copyright 2010 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 elemental.json;
+
+import com.google.gwt.junit.DoNotRunWith;
+import com.google.gwt.junit.Platform;
+import com.google.gwt.junit.client.GWTTestCase;
+
+import elemental.json.impl.JsonUtil;
+
+/**
+ * Tests for {@link JsonUtil}
+ */
+@DoNotRunWith(Platform.Prod)
+public class JsonUtilTest extends GWTTestCase {
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ public void testCoercions() {
+ // test boolean coercions
+ JsonBoolean boolTrue = Json.create(true);
+ JsonBoolean boolFalse = Json.create(false);
+ // true -> 1, false -> 0
+ assertEquals(true, boolTrue.asBoolean());
+ assertEquals(false, boolFalse.asBoolean());
+
+ JsonString trueString = Json.create("true");
+ JsonString falseString = Json.create("");
+ // "" -> false, others true
+ assertEquals(true, trueString.asBoolean());
+ assertEquals(false, falseString.asBoolean());
+
+ // != 0 -> true, otherwise if 0.0 or -0.0 false
+ JsonNumber trueNumber = Json.create(1.0);
+ JsonNumber falseNumber = Json.create(0.0);
+ JsonNumber falseNumber2 = Json.create(-0.0);
+ assertEquals(true, trueNumber.asBoolean());
+ assertEquals(false, falseNumber.asBoolean());
+ assertEquals(false, falseNumber2.asBoolean());
+
+ // array or object is true
+ assertEquals(true, Json.createArray().asBoolean());
+ assertEquals(true, Json.createObject().asBoolean());
+
+ // null is false
+ assertEquals(false, Json.createNull().asBoolean());
+
+ // test number coercions
+ assertEquals(1.0, boolTrue.asNumber());
+ assertEquals(0.0, boolFalse.asNumber());
+
+ assertEquals(42.0, Json.create("42").asNumber());
+ // non numbers are NaN
+ assertTrue(Double.isNaN(trueString.asNumber()));
+ // null is 0
+ assertEquals(0.0, Json.createNull().asNumber());
+ // "" is 0
+ assertEquals(0.0, falseString.asNumber());
+
+ // [] -> 0
+ assertEquals(0.0, Json.createArray().asNumber());
+ // [[42]] -> 42
+ JsonArray nested = Json.createArray();
+ JsonArray outer = Json.createArray();
+ outer.set(0, nested);
+ nested.set(0, 42);
+ assertEquals(42.0, outer.asNumber());
+
+ // [[42, 45]] -> NaN
+ nested.set(1, 45);
+ assertTrue(Double.isNaN(outer.asNumber()));
+
+ // object -> NaN
+ assertTrue(Double.isNaN(Json.createObject().asNumber()));
+
+
+ // test string coercions
+ assertEquals("true", boolTrue.asString());
+ assertEquals("false", boolFalse.asString());
+ assertEquals("true", trueString.asString());
+
+ assertEquals("null", Json.createNull().asString());
+ assertEquals("42", Json.create(42).asString());
+
+ // [[42, 45], [52, 55]] -> "42, 45, 52, 55"
+ JsonArray inner2 = Json.createArray();
+ inner2.set(0, 52);
+ inner2.set(1, 55);
+ outer.set(1, inner2);
+ assertEquals("42, 45, 52, 55", outer.asString());
+
+ // object -> [object Object]
+ assertEquals("[object Object]", Json.createObject().asString());
+ }
+
+ public void testEscapeControlChars() {
+ String unicodeString = "\u2060Test\ufeffis a test\u17b5";
+ assertEquals("\\u00002060Test\\u0000feffis a test\\u000017b5",
+ JsonUtil.escapeControlChars(unicodeString));
+ }
+
+ public void testIllegalParse() {
+ try {
+ JsonUtil.parse("{ \"a\": new String() }");
+ fail("Expected JsonException to be thrown");
+ } catch (JsonException je) {
+ // Expected
+ }
+ }
+
+ public void testLegalParse() {
+ JsonValue obj = JsonUtil.parse(
+ "{ \"a\":1, \"b\":\"hello\", \"c\": true,"
+ + "\"d\": null, \"e\": [1,2,3,4], \"f\": {} }");
+ assertNotNull(obj);
+ }
+
+ public void testNative() {
+ JsonObject obj = Json.createObject();
+ obj.put("x", 42);
+ Object nativeObj = obj.toNative();
+
+ JsonObject result = nativeMethod(nativeObj);
+ assertEquals(43.0, result.get("y").asNumber());
+ }
+
+ public void testQuote() {
+ String badString = "\bThis\"is\ufeff\ta\\bad\nstring\u2029\u2029";
+ assertEquals("\"\\bThis\\\"is\\u0000feff\\ta\\\\bad\\nstring"
+ + "\\u00002029\\u00002029\"", JsonUtil.quote(badString));
+ }
+
+ public void testStringify() {
+ String json = "{\"a\":1,\"b\":\"hello\",\"c\":true,"
+ + "\"d\":null,\"e\":[1,2,3,4],\"f\":{\"x\":1}}";
+ assertEquals(json, JsonUtil.stringify(JsonUtil.parse(json)));
+ }
+
+ public void testStringifyCycle() {
+ String json = "{\"a\":1,\"b\":\"hello\",\"c\":true,"
+ + "\"d\":null,\"e\":[1,2,3,4],\"f\":{\"x\":1}}";
+ JsonObject obj = JsonUtil.parse(json);
+ obj.put("cycle", obj);
+ try {
+ elemental.json.impl.JsonUtil.stringify(obj);
+ fail("Expected JsonException for object cycle");
+ } catch (JsonException je) {
+ }
+ }
+
+ public void testStringifyIndent() {
+ // test string taken from native Chrome window.JSON.stringify
+ String json = "{\n" + " \"a\": 1,\n" + " \"b\": \"hello\",\n"
+ + " \"c\": true,\n" + " \"d\": null,\n" + " \"e\": [\n" + " 1,\n"
+ + " 2,\n" + " 3,\n" + " 4\n" + " ],\n" + " \"f\": {\n"
+ + " \"x\": 1\n" + " }\n" + "}";
+ assertEquals(json, JsonUtil.stringify(JsonUtil.parse(json), 2));
+ }
+
+ public void testStringifyNonCycle() {
+ String json = "{\"a\":1,\"b\":\"hello\",\"c\":true,"
+ + "\"d\":null,\"e\":[1,2,3,4],\"f\":{\"x\":1}}";
+ JsonObject obj = JsonUtil.parse(json);
+ JsonObject obj2 = JsonUtil.parse("{\"x\": 1, \"y\":2}");
+ obj.put("nocycle", obj2);
+ obj.put("nocycle2", obj2);
+ try {
+ JsonUtil.stringify(obj);
+ } catch (JsonException je) {
+ fail("JsonException for object cycle when none exists: " + je);
+ }
+ }
+
+ public void testStringifyOrder() {
+
+ JsonObject obj = Json.instance().createObject();
+ obj.put("x", "hello");
+ obj.put("a", "world");
+ obj.put("2", 21);
+ obj.put("1", 42);
+ // numbers come first, in ascending order, non-numbers in order of assignment
+ assertEquals("{\"1\":42,\"2\":21,\"x\":\"hello\",\"a\":\"world\"}",
+ obj.toJson());
+ }
+
+ public void testStringifySkipKeys() {
+ String expectedJson = "{\"a\":1,\"b\":\"hello\",\"c\":true,"
+ + "\"d\":null,\"e\":[1,2,3,4],\"f\":{\"x\":1}}";
+ String json = "{\"a\":1,\"b\":\"hello\",\"c\":true,"
+ + "\"$H\": 1,"
+ + "\"__gwt_ObjectId\": 1,"
+ + "\"d\":null,\"e\":[1,2,3,4],\"f\":{\"x\":1}}";
+ assertEquals(expectedJson, JsonUtil.stringify(
+ JsonUtil.parse(json)));
+ }
+
+ private native JsonObject nativeMethod(Object o) /*-{
+ o.y = o.x + 1;
+ return o;
+ }-*/;
+}
diff --git a/elemental/tests/elemental/util/TimerTest.java b/elemental/tests/elemental/util/TimerTest.java
new file mode 100644
index 0000000..dc5759a
--- /dev/null
+++ b/elemental/tests/elemental/util/TimerTest.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2010 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 elemental.util;
+
+import com.google.gwt.junit.client.GWTTestCase;
+
+/**
+ * Tests for {@link Timer}.
+ */
+public class TimerTest extends GWTTestCase {
+
+ @Override
+ public String getModuleName() {
+ return "elemental.Elemental";
+ }
+
+ /**
+ * Tests that {@link Timer#schedule(int)} works.
+ */
+ public void testTimeout() {
+ new Timer() {
+ @Override
+ public void run() {
+ finishTest();
+ }
+ }.schedule(500);
+
+ delayTestFinish(2000);
+ }
+
+ /**
+ * Tests that {@link Timer#scheduleRepeating(int)} works repeatedly.
+ */
+ public void testInterval() {
+ new Timer() {
+ int count;
+
+ @Override
+ public void run() {
+ // Make sure we see at least two events.
+ ++count;
+ if (count >= 2) {
+ cancel();
+ finishTest();
+ }
+ }
+ }.scheduleRepeating(100);
+
+ delayTestFinish(2000);
+ }
+}