[prev in list] [next in list] [prev in thread] [next in thread] 

List:       htmlunit-develop
Subject:    [HtmlUnit] SVN: [11948] trunk/htmlunit/src
From:       asashour () users ! sourceforge ! net
Date:       2016-02-29 18:28:54
Message-ID: E1aaSYz-00059p-CC () sfs-ml-3 ! v29 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Revision: 11948
          http://sourceforge.net/p/htmlunit/code/11948
Author:   asashour
Date:     2016-02-29 18:28:54 +0000 (Mon, 29 Feb 2016)
Log Message:
-----------
JavaScript: fix Selection.rangeCount for Chrome

Modified Paths:
--------------
    trunk/htmlunit/src/changes/changes.xml
    trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/ClientRect.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Element.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/History.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Window.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBuffer.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSRule.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleDeclaration.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleSheet.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/MediaQueryList.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Attr.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/DocumentType.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/EventNode.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Selection.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/CustomEvent.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/EventTarget.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/KeyboardEvent.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/MouseEvent.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/UIEvent.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLAnchorElement.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocument.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElement.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElement.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLScriptElement.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLStyleElement.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTextAreaElement.java
  trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java
  trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/dom/DocumentTest.java


Modified: trunk/htmlunit/src/changes/changes.xml
===================================================================
--- trunk/htmlunit/src/changes/changes.xml	2016-02-29 16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/changes/changes.xml	2016-02-29 18:28:54 UTC (rev 11948)
@@ -9,6 +9,9 @@
     <body>
         <release version="2.21" date="???" description="Bugfixes">
             <action type="fix" dev="asashour">
+                JavaScript: fix Selection.rangeCount for Chrome.
+            </action>
+            <action type="fix" dev="asashour">
                 CSS: Chrome doesn't support 'target' selector.
             </action>
             <action type="fix" dev="asashour">

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -622,6 +622,10 @@
     @BrowserFeature(@WebBrowser(IE))
     JS_DOCUMENT_FORMS_FUNCTION_SUPPORTED,
 
+    /** The browser has selection {@code rangeCount}. */
+    @BrowserFeature({ @WebBrowser(FF), @WebBrowser(IE) })
+    JS_DOCUMENT_SELECTION_RANGE_COUNT,
+
     /** Javascript property document.domain doesn't allow to set domain of \
about:blank. */  @BrowserFeature(@WebBrowser(IE))
     JS_DOCUMENT_SETTING_DOMAIN_THROWS_FOR_ABOUT_BLANK,
@@ -643,7 +647,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_CSS2_1,
 
     /** If document.implementation.hasFeature() supports 'CSS2 2.0'. */
-    @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_CSS2_2,
 
     /** If document.implementation.hasFeature() supports 'CSS2 3.0'. */
@@ -679,7 +683,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_EVENTS_1,
 
     /** If document.implementation.hasFeature() supports 'Events 3.0'. */
-    @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_EVENTS_3,
 
     /** If document.implementation.hasFeature() supports 'HTML 3.0'. */
@@ -699,7 +703,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_MOUSEEVENTS_1,
 
     /** If document.implementation.hasFeature() supports 'MouseEvents 2.0'. */
-    @BrowserFeature({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_MOUSEEVENTS_2,
 
     /** If document.implementation.hasFeature() supports 'MutationEvents 1.0'. */
@@ -707,7 +711,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_MUTATIONEVENTS_1,
 
     /** If document.implementation.hasFeature() supports 'MutationEvents 2.0'. */
-    @BrowserFeature({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_MUTATIONEVENTS_2,
 
     /** If document.implementation.hasFeature() supports 'MutationNameEvents'. */
@@ -719,7 +723,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_RANGE_1,
 
     /** If document.implementation.hasFeature() supports 'Range 2.0'. */
-    @BrowserFeature({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_RANGE_2,
 
     /** If document.implementation.hasFeature() supports 'Range 3.0'. */
@@ -731,7 +735,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_STYLESHEETS,
 
     /** If document.implementation.hasFeature() supports \
                'http://www.w3.org/TR/SVG11/feature#BasicStructure 1.0'. */
-    @BrowserFeature({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_SVG_BASICSTRUCTURE_1_0,
 
     /** If document.implementation.hasFeature() supports \
'http://www.w3.org/TR/SVG11/feature#BasicStructure 1.2'. */ @@ -739,7 +743,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_SVG_BASICSTRUCTURE_1_2,
 
     /** If document.implementation.hasFeature() supports \
                'http://www.w3.org/TR/SVG11/feature#Shape 1.0'. */
-    @BrowserFeature({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_SVG_SHAPE_1_0,
 
     /** If document.implementation.hasFeature() supports \
'http://www.w3.org/TR/SVG11/feature#Shape 1.2'. */ @@ -755,7 +759,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_TRAVERSAL_1,
 
     /** If document.implementation.hasFeature() supports 'Traversal 2.0'. */
-    @BrowserFeature({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_TRAVERSAL_2,
 
     /** If document.implementation.hasFeature() supports 'Traversal 3.0'. */
@@ -767,7 +771,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_UIEVENTS_2,
 
     /** If document.implementation.hasFeature() supports 'UIEvents 3.0'. */
-    @BrowserFeature({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_UIEVENTS_3,
 
     /** If document.implementation.hasFeature() supports 'Validation'. */
@@ -779,7 +783,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_VIEWS_1,
 
     /** If document.implementation.hasFeature() supports 'Views 2.0'. */
-    @BrowserFeature({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_VIEWS_2,
 
     /** If document.implementation.hasFeature() supports 'Views 3.0'. */
@@ -787,7 +791,7 @@
     JS_DOMIMPLEMENTATION_FEATURE_VIEWS_3,
 
     /** If document.implementation.hasFeature() supports 'XHTML 1.0'. */
-    @BrowserFeature({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @BrowserFeature
     JS_DOMIMPLEMENTATION_FEATURE_XHTML_1,
 
     /** If document.implementation.hasFeature() supports 'XHTML 3.0'. */

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/ClientRect.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/ClientRect.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/ClientRect.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -143,7 +143,7 @@
      * Returns the {@code width} property.
      * @return the {@code width} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getWidth() {
         return getRight() - getLeft();
     }
@@ -152,7 +152,7 @@
      * Returns the {@code height} property.
      * @return the {@code height} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getHeight() {
         return getBottom() - getTop();
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Element.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Element.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Element.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -256,7 +256,7 @@
      *                  which matches all elements.
      * @return a live NodeList of found elements in the order they appear in the \
                tree
      */
-    @JsxFunction({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxFunction
     public Object getElementsByTagNameNS(final Object namespaceURI, final String \
                localName) {
         final String description = "Element.getElementsByTagNameNS('" + namespaceURI \
+ "', '" + localName + "')";  
@@ -313,7 +313,7 @@
      * Returns the current number of child elements.
      * @return the child element count
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getChildElementCount() {
         return getDomNodeOrDie().getChildElementCount();
     }
@@ -322,7 +322,7 @@
      * Returns the first element child.
      * @return the first element child
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Element getFirstElementChild() {
         final DomElement child = getDomNodeOrDie().getFirstElementChild();
         if (child != null) {
@@ -335,7 +335,7 @@
      * Returns the last element child.
      * @return the last element child
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Element getLastElementChild() {
         final DomElement child = getDomNodeOrDie().getLastElementChild();
         if (child != null) {
@@ -348,7 +348,7 @@
      * Returns the next element sibling.
      * @return the next element sibling
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Element getNextElementSibling() {
         final DomElement child = getDomNodeOrDie().getNextElementSibling();
         if (child != null) {
@@ -361,7 +361,7 @@
      * Returns the previous element sibling.
      * @return the previous element sibling
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Element getPreviousElementSibling() {
         final DomElement child = getDomNodeOrDie().getPreviousElementSibling();
         if (child != null) {
@@ -437,7 +437,7 @@
      * @param localName the local name of the attribute to look for
      * @return the value of the specified attribute, {@code null} if the attribute \
                is not defined
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public String getAttributeNS(final String namespaceURI, final String localName) \
                {
         final String value = getDomNodeOrDie().getAttributeNS(namespaceURI, \
localName);  if (ATTRIBUTE_NOT_DEFINED == value
@@ -456,7 +456,7 @@
      * @param localName the local name of the attribute to look for
      * @return {@code true} if the node has this attribute
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public boolean hasAttributeNS(final String namespaceURI, final String localName) \
{  return getDomNodeOrDie().hasAttributeNS(namespaceURI, localName);
     }
@@ -467,7 +467,7 @@
      * @param qualifiedName the qualified name of the attribute to look for
      * @param value the new attribute value
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void setAttributeNS(final String namespaceURI, final String \
                qualifiedName, final String value) {
         getDomNodeOrDie().setAttributeNS(namespaceURI, qualifiedName, value);
     }
@@ -477,7 +477,7 @@
      * @param namespaceURI the namespace URI of the attribute to remove
      * @param localName the local name of the attribute to remove
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void removeAttributeNS(final String namespaceURI, final String localName) \
{  getDomNodeOrDie().removeAttributeNS(namespaceURI, localName);
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/History.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/History.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/History.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -17,7 +17,6 @@
 import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.CHROME;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.EDGE;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.FF;
                
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.IE;
 
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -70,7 +69,7 @@
      * Returns the {@code state} property.
      * @return the {@code state} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Object getState() {
         final WebWindow w = getWindow().getWebWindow();
         return w.getHistory().getCurrentState();
@@ -125,7 +124,7 @@
      * @param title the title
      * @param url an optional URL
      */
-    @JsxFunction({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxFunction
     public void replaceState(final Object object, final String title, final String \
url) {  final WebWindow w = getWindow().getWebWindow();
         final HtmlPage page = (HtmlPage) w.getEnclosedPage();
@@ -150,7 +149,7 @@
      * @param title the title
      * @param url an optional URL
      */
-    @JsxFunction({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxFunction
     public void pushState(final Object object, final String title, final String url) \
{  try {
             getWindow().getLocation().setHref(url, true, object);

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Window.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Window.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Window.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -272,7 +272,7 @@
      * @param stringToEncode string to encode
      * @return the encoded string
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public String btoa(final String stringToEncode) {
         return new String(Base64.encodeBase64(stringToEncode.getBytes()));
     }
@@ -282,7 +282,7 @@
      * @param encodedData the encoded string
      * @return the decoded value
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public String atob(final String encodedData) {
         return new String(Base64.decodeBase64(encodedData.getBytes()));
     }
@@ -339,7 +339,7 @@
      * Returns the application cache.
      * @return the application cache
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public ApplicationCache getApplicationCache() {
         return applicationCache_;
     }
@@ -1492,7 +1492,7 @@
      * @return a dummy value
      * @see <a href="http://www.mozilla.org/docs/dom/domref/dom_window_ref28.html">Mozilla \
                doc</a>
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getInnerWidth() {
         return getWebWindow().getInnerWidth();
     }
@@ -1502,7 +1502,7 @@
      * @return a dummy value
      * @see <a href="http://www.mozilla.org/docs/dom/domref/dom_window_ref79.html">Mozilla \
                doc</a>
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getOuterWidth() {
         return getWebWindow().getOuterWidth();
     }
@@ -1512,7 +1512,7 @@
      * @return a dummy value
      * @see <a href="http://www.mozilla.org/docs/dom/domref/dom_window_ref27.html">Mozilla \
                doc</a>
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getInnerHeight() {
         return getWebWindow().getInnerHeight();
     }
@@ -1522,7 +1522,7 @@
      * @return a dummy value
      * @see <a href="http://www.mozilla.org/docs/dom/domref/dom_window_ref78.html">Mozilla \
                doc</a>
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getOuterHeight() {
         return getWebWindow().getOuterHeight();
     }
@@ -1545,7 +1545,7 @@
      * @param type the type of events to capture
      * @see Document#captureEvents(String)
      */
-    @JsxFunction({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxFunction
     public void captureEvents(final String type) {
         // Empty.
     }
@@ -1602,7 +1602,7 @@
      * Returns the current selection.
      * @return the current selection
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public Selection getSelection() {
         final WebWindow webWindow = getWebWindow();
         // return null if the window is in a frame that is not displayed
@@ -1995,7 +1995,7 @@
      *         called <tt>preventDefault</tt>; {@code true} otherwise
      */
     @Override
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public boolean dispatchEvent(final Event event) {
         event.setTarget(this);
         final ScriptResult result = fireEvent(event);
@@ -2120,7 +2120,7 @@
      * Returns the {@code performance} property.
      * @return the {@code performance} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Performance getPerformance() {
         final Performance performance = new Performance();
         performance.setParentScope(this);
@@ -2132,7 +2132,7 @@
      * Returns the {@code devicePixelRatio} property.
      * @return the {@code devicePixelRatio} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getDevicePixelRatio() {
         return 1;
     }
@@ -2155,7 +2155,7 @@
      * @param mediaQueryString the media query
      * @return a new MediaQueryList object
      */
-    @JsxFunction({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxFunction
     public MediaQueryList matchMedia(final String mediaQueryString) {
         final MediaQueryList mediaQueryList = new MediaQueryList(mediaQueryString);
         mediaQueryList.setParentScope(this);

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBuffer.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBuffer.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBuffer.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -14,16 +14,11 @@
  */
 package com.gargoylesoftware.htmlunit.javascript.host.arrays;
 
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.CHROME;
                
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.FF;
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.IE;
-
 import com.gargoylesoftware.htmlunit.javascript.SimpleScriptable;
 import com.gargoylesoftware.htmlunit.javascript.configuration.JsxClass;
 import com.gargoylesoftware.htmlunit.javascript.configuration.JsxConstructor;
 import com.gargoylesoftware.htmlunit.javascript.configuration.JsxFunction;
 import com.gargoylesoftware.htmlunit.javascript.configuration.JsxGetter;
-import com.gargoylesoftware.htmlunit.javascript.configuration.WebBrowser;
 
 import net.sourceforge.htmlunit.corejs.javascript.Undefined;
 
@@ -64,7 +59,7 @@
      * @param end (optional) byte index to end slicing
      * @return the newly created ArrayBuffer
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public ArrayBuffer slice(final int begin, Object end) {
         if (end == Undefined.instance) {
             end = getByteLength();

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSRule.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSRule.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSRule.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -197,7 +197,7 @@
      * Returns the type of the rule.
      * @return the type of the rule.
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public short getType() {
         return rule_.getType();
     }
@@ -207,7 +207,7 @@
      * This reflects the current state of the rule and not its initial value.
      * @return the parsable textual representation of the rule.
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getCssText() {
         return rule_.getCssText();
     }
@@ -225,7 +225,7 @@
      * Returns the style sheet that contains this rule.
      * @return the style sheet that contains this rule.
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public CSSStyleSheet getParentStyleSheet() {
         return stylesheet_;
     }
@@ -235,7 +235,7 @@
      * this is the containing rule. If this rule is not nested inside any other \
                rules, this returns {@code null}.
      * @return the parent rule
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public CSSRule getParentRule() {
         final org.w3c.dom.css.CSSRule parentRule = rule_.getParentRule();
         if (parentRule != null) {

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleDeclaration.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleDeclaration.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleDeclaration.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -1724,7 +1724,7 @@
      * Gets the {@code cssFloat} style attribute.
      * @return the style attribute
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getCssFloat() {
         return getStyleAttribute(FLOAT);
     }
@@ -1733,7 +1733,7 @@
      * Sets the {@code cssFloat} style attribute.
      * @param value the new attribute
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setCssFloat(final String value) {
         setStyleAttribute(FLOAT, value);
     }
@@ -2138,7 +2138,7 @@
      * Gets the "length", not yet implemented.
      * @return the length
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getLength() {
         return getStyleMap().size();
     }
@@ -3819,7 +3819,7 @@
      * Gets the {@code opacity} style attribute.
      * @return the style attribute
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public String getOpacity() {
         final String opacity = getStyleAttribute(OPACITY);
         if (opacity == null || opacity.isEmpty()) {
@@ -3844,7 +3844,7 @@
      * Sets the {@code opacity} style attribute.
      * @param opacity the new attribute
      */
-    @JsxSetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxSetter
     public void setOpacity(final String opacity) {
         if (opacity.isEmpty()) {
             setStyleAttribute(OPACITY, opacity);
@@ -5283,7 +5283,7 @@
      * @param name the style property name
      * @return empty string if nothing found
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public String getPropertyValue(final String name) {
         if (name != null && name.contains("-")) {
             final Object value = getProperty(this, camelize(name));
@@ -5342,7 +5342,7 @@
      * @param name the style property name
      * @return empty string if nothing found
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public String getPropertyPriority(final String name) {
         return getStylePriority(name);
     }
@@ -5354,7 +5354,7 @@
      * @param value the value to assign to the attribute
      * @param important may be null
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void setProperty(final String name, final String value, final String \
important) {  if (StringUtils.isEmpty(important) || "null".equals(important)) {
             setStyleAttribute(name, value, "");
@@ -5376,7 +5376,7 @@
      * @param name the name of the property to remove
      * @return the value deleted
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public String removeProperty(final Object name) {
         return removeStyleAttribute(Context.toString(name));
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleSheet.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleSheet.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/CSSStyleSheet.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -993,7 +993,7 @@
      * Returns the collection of rules defined in this style sheet.
      * @return the collection of rules defined in this style sheet
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public com.gargoylesoftware.htmlunit.javascript.host.css.CSSRuleList \
getCssRules() {  if (cssRules_ == null) {
             cssRules_ = new \
com.gargoylesoftware.htmlunit.javascript.host.css.CSSRuleList(this); @@ -1041,7 \
                +1041,7 @@
      * @see <a href="http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet">DOM \
                level 2</a>
      * @return the position of the inserted rule
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public int insertRule(final String rule, final int position) {
         try {
             return wrapped_.insertRule(rule, position);

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/MediaQueryList.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/MediaQueryList.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/MediaQueryList.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -17,7 +17,6 @@
 import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.CHROME;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.EDGE;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.FF;
                
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.IE;
 
 import org.w3c.css.sac.ErrorHandler;
 import org.w3c.css.sac.SACMediaList;
@@ -80,7 +79,7 @@
      * Adds the {@code listener} event handler for this element.
      * @param listener the {@code listener} event handler for this element
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void addListener(final Object listener) {
         // dummy impl for the moment
     }
@@ -89,7 +88,7 @@
      * Removes the {@code listener} event handler for this element.
      * @param listener the {@code listener} event handler to be removed
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void removeListener(final Object listener) {
         // dummy impl for the moment
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Attr.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Attr.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Attr.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -111,7 +111,7 @@
      * Returns the owner element.
      * @return the owner element
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Object getOwnerElement() {
         final DomElement parent = getDomNodeOrDie().getOwnerElement();
         if (parent != null) {

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -15,6 +15,7 @@
 package com.gargoylesoftware.htmlunit.javascript.host.dom;
 
 import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_DOCUMENT_DESIGN_MODE_INHERIT;
 +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_DOCUMENT_SELECTION_RANGE_COUNT;
  import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_DOCUMENT_SET_LOCATION_EXECUTED_IN_ANCHOR;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.CHROME;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.EDGE;
 @@ -211,7 +212,8 @@
      */
     @JsxSetter
     public void setDesignMode(final String mode) {
-        final boolean inherit = \
getBrowserVersion().hasFeature(JS_DOCUMENT_DESIGN_MODE_INHERIT); +        final \
BrowserVersion browserVersion = getBrowserVersion(); +        final boolean inherit = \
browserVersion.hasFeature(JS_DOCUMENT_DESIGN_MODE_INHERIT);  if (inherit) {
             if (!"on".equalsIgnoreCase(mode) && !"off".equalsIgnoreCase(mode) && \
                !"inherit".equalsIgnoreCase(mode)) {
                 throw Context.reportRuntimeError("Invalid document.designMode value \
'" + mode + "'."); @@ -231,7 +233,8 @@
             if ("on".equalsIgnoreCase(mode)) {
                 designMode_ = "on";
                 final SgmlPage page = getPage();
-                if (page != null && page.isHtmlPage()) {
+                if (page != null && page.isHtmlPage()
+                        && \
getBrowserVersion().hasFeature(JS_DOCUMENT_SELECTION_RANGE_COUNT)) {  final HtmlPage \
                htmlPage = (HtmlPage) page;
                     final DomNode child = htmlPage.getBody().getFirstChild();
                     final DomNode rangeNode = child == null ? htmlPage.getBody() : \
child; @@ -256,7 +259,7 @@
      * Gets the window in which this document is contained.
      * @return the window
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Object getDefaultView() {
         return getWindow();
     }
@@ -325,7 +328,7 @@
      * @param type the type of events to capture
      * @see Window#captureEvents(String)
      */
-    @JsxFunction({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxFunction
     public void captureEvents(final String type) {
         // Empty.
     }
@@ -500,7 +503,7 @@
      * @param qualifiedName the qualified name of the element type to instantiate
      * @return the new HTML element, or NOT_FOUND if the tag is not supported
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public Object createElementNS(final String namespaceURI, final String \
qualifiedName) {  final org.w3c.dom.Element element;
         if ("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul".equals(namespaceURI)) \
{

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/DocumentType.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/DocumentType.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/DocumentType.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -72,7 +72,7 @@
      * Returns the publicId.
      * @return the publicId
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getPublicId() {
         return ((DomDocumentType) getDomNodeOrDie()).getPublicId();
     }
@@ -81,7 +81,7 @@
      * Returns the systemId.
      * @return the systemId
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getSystemId() {
         return ((DomDocumentType) getDomNodeOrDie()).getSystemId();
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/EventNode.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/EventNode.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/EventNode.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -14,14 +14,10 @@
  */
 package com.gargoylesoftware.htmlunit.javascript.host.dom;
 
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.CHROME;
                
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.FF;
 import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.IE;
 
 import java.util.Locale;
 
-import net.sourceforge.htmlunit.corejs.javascript.Function;
-
 import org.apache.commons.lang3.StringUtils;
 
 import com.gargoylesoftware.htmlunit.javascript.configuration.JsxClass;
@@ -31,6 +27,8 @@
 import com.gargoylesoftware.htmlunit.javascript.host.event.Event;
 import com.gargoylesoftware.htmlunit.javascript.host.event.MouseEvent;
 
+import net.sourceforge.htmlunit.corejs.javascript.Function;
+
 /**
  * A node which supports all of the <tt>onXXX</tt> event handlers and other \
                event-related functions.
  *
@@ -371,7 +369,7 @@
      * Returns the {@code oninput} event handler for this element.
      * @return the {@code oninput} event handler for this element
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public Function getOninput() {
         return getEventHandler("oninput");
     }
@@ -380,7 +378,7 @@
      * Sets the {@code oninput} event handler for this element.
      * @param onchange the {@code oninput} event handler for this element
      */
-    @JsxSetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxSetter
     public void setOninput(final Object onchange) {
         setEventHandlerProp("oninput", onchange);
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Selection.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Selection.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Selection.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -75,7 +75,7 @@
      * Returns the node in which the selection begins.
      * @return the node in which the selection begins
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public Node getAnchorNode() {
         final Range last = getLastRange();
         if (last == null) {
@@ -88,7 +88,7 @@
      * Returns the number of characters that the selection's anchor is offset within \
                the anchor node.
      * @return the number of characters that the selection's anchor is offset within \
                the anchor node
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public int getAnchorOffset() {
         final Range last = getLastRange();
         if (last == null) {
@@ -101,7 +101,7 @@
      * Returns the node in which the selection ends.
      * @return the node in which the selection ends
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public Node getFocusNode() {
         final Range last = getLastRange();
         if (last == null) {
@@ -114,7 +114,7 @@
      * Returns the number of characters that the selection's focus is offset within \
                the focus node.
      * @return the number of characters that the selection's focus is offset within \
                the focus node
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public int getFocusOffset() {
         final Range last = getLastRange();
         if (last == null) {
@@ -127,7 +127,7 @@
      * Returns a boolean indicating whether the selection's start and end points are \
                at the same position.
      * @return a boolean indicating whether the selection's start and end points are \
                at the same position
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public boolean getIsCollapsed() {
         final List<Range> ranges = getRanges();
         return ranges.isEmpty() || (ranges.size() == 1 && \
ranges.get(0).getCollapsed()); @@ -137,7 +137,7 @@
      * Returns the number of ranges in the selection.
      * @return the number of ranges in the selection
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public int getRangeCount() {
         return getRanges().size();
     }
@@ -155,7 +155,7 @@
      * Adds a range to the selection.
      * @param range the range to add
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void addRange(final \
com.gargoylesoftware.htmlunit.javascript.host.dom.Range range) {  \
getRanges().add(range.toW3C());  }
@@ -172,7 +172,7 @@
     /**
      * Removes all ranges from the selection.
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void removeAllRanges() {
         getRanges().clear();
     }
@@ -183,7 +183,7 @@
      * @param index the index of the range to return
      * @return the range at the specified index
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public com.gargoylesoftware.htmlunit.javascript.host.dom.Range getRangeAt(final \
int index) {  final List<Range> ranges = getRanges();
         if (index < 0 || index >= ranges.size()) {
@@ -203,7 +203,7 @@
      * @param parentNode the caret location will be within this node
      * @param offset the caret will be placed this number of characters from the \
                beginning of the parentNode's text
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void collapse(final Node parentNode, final int offset) {
         final List<Range> ranges = getRanges();
         ranges.clear();
@@ -213,7 +213,7 @@
     /**
      * Moves the anchor of the selection to the same point as the focus. The focus \
                does not move.
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void collapseToEnd() {
         final Range last = getLastRange();
         if (last != null) {
@@ -227,7 +227,7 @@
     /**
      * Moves the focus of the selection to the same point at the anchor. The anchor \
                does not move.
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void collapseToStart() {
         final Range first = getFirstRange();
         if (first != null) {
@@ -263,7 +263,7 @@
      * Adds all the children of the specified node to the selection. The previous \
                selection is lost.
      * @param parentNode all children of parentNode will be selected; parentNode \
                itself is not part of the selection
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void selectAllChildren(final Node parentNode) {
         final List<Range> ranges = getRanges();
         ranges.clear();

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/CustomEvent.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/CustomEvent.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/CustomEvent.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -17,7 +17,6 @@
 import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.CHROME;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.EDGE;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.FF;
                
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.IE;
 
 import com.gargoylesoftware.htmlunit.javascript.configuration.JsxClass;
 import com.gargoylesoftware.htmlunit.javascript.configuration.JsxConstructor;
@@ -51,7 +50,7 @@
      * @param cancelable can the event be canceled
      * @param detail the detail to set for the event
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void initCustomEvent(
             final String type,
             final boolean bubbles,

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/EventTarget.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/EventTarget.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/EventTarget.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -74,7 +74,7 @@
      * @param useCapture If {@code true}, indicates that the user wishes to initiate \
                capture
      * @see <a href="https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener">Mozilla \
                documentation</a>
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void addEventListener(final String type, final Scriptable listener, final \
                boolean useCapture) {
         getEventListenersContainer().addEventListener(type, listener, useCapture);
     }
@@ -262,7 +262,7 @@
      * @return {@code false} if at least one of the event handlers which handled the \
                event
      *         called <tt>preventDefault</tt>; {@code true} otherwise
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public boolean dispatchEvent(final Event event) {
         event.setTarget(this);
         final DomElement element = (DomElement) getDomNodeOrNull();
@@ -289,7 +289,7 @@
      * @see <a href="https://developer.mozilla.org/en-US/docs/DOM/element.removeEventListener">Mozilla
                
      * documentation</a>
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void removeEventListener(final String type, final Function listener, \
                final boolean useCapture) {
         getEventListenersContainer().removeEventListener(type, listener, \
useCapture);  }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/KeyboardEvent.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/KeyboardEvent.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/KeyboardEvent.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -44,19 +44,19 @@
 public class KeyboardEvent extends UIEvent {
 
     /** Constant for {@code DOM_KEY_LOCATION_STANDARD}. */
-    @JsxConstant({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxConstant
     public static final int DOM_KEY_LOCATION_STANDARD = 0;
 
     /** Constant for {@code DOM_KEY_LOCATION_LEFT}. */
-    @JsxConstant({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxConstant
     public static final int DOM_KEY_LOCATION_LEFT = 1;
 
     /** Constant for {@code DOM_KEY_LOCATION_RIGHT}. */
-    @JsxConstant({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxConstant
     public static final int DOM_KEY_LOCATION_RIGHT = 2;
 
     /** Constant for {@code DOM_KEY_LOCATION_NUMPAD}. */
-    @JsxConstant({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxConstant
     public static final int DOM_KEY_LOCATION_NUMPAD = 3;
 
     /** Constant for {@code DOM_KEY_LOCATION_MOBILE}. */

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/MouseEvent.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/MouseEvent.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/MouseEvent.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -291,7 +291,7 @@
      * @param button what mouse button is pressed
      * @param relatedTarget is there a related target for the event
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void initMouseEvent(
             final String type,
             final boolean bubbles,
@@ -354,7 +354,7 @@
      * {@inheritDoc} Overridden to modify browser configurations.
      */
     @Override
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public boolean getAltKey() {
         return super.getAltKey();
     }
@@ -363,7 +363,7 @@
      * {@inheritDoc} Overridden to modify browser configurations.
      */
     @Override
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public boolean getCtrlKey() {
         return super.getCtrlKey();
     }
@@ -372,7 +372,7 @@
      * {@inheritDoc} Overridden to modify browser configurations.
      */
     @Override
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public boolean getShiftKey() {
         return super.getShiftKey();
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/UIEvent.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/UIEvent.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/event/UIEvent.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -87,7 +87,7 @@
      *
      * @return some detail information about the event, depending on the event type
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public long getDetail() {
         return detail_;
     }
@@ -124,7 +124,7 @@
      *
      * @return the view from which the event was generated
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Object getView() {
         return getWindow();
     }
@@ -154,7 +154,7 @@
      * Returns whether or not the "meta" key was pressed during the event firing.
      * @return whether or not the "meta" key was pressed during the event firing
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public boolean getMetaKey() {
         return metaKey_;
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLAnchorElement.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLAnchorElement.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLAnchorElement.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -517,7 +517,7 @@
      * Returns the {@code text} attribute.
      * @return the {@code text} attribute
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getText() {
         final DomNode htmlElement = getDomNodeOrDie();
         return htmlElement.asText();
@@ -527,7 +527,7 @@
      * Sets the {@code text} attribute.
      * @param text the {@code text} attribute
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setText(final String text) {
         final DomNode htmlElement = getDomNodeOrDie();
         htmlElement.setTextContent(text);

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocument.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocument.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLDocument.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -255,7 +255,7 @@
             "UnBookmark",
             "Paste"
         );
-        for (String cmd : cmds) {
+        for (final String cmd : cmds) {
             EXECUTE_CMDS_IE.add(cmd.toLowerCase(Locale.ROOT));
         }
 
@@ -274,9 +274,11 @@
             "SelectAll", "StrikeThrough", "Subscript", "Superscript",
             "Underline", "Undo", "Unlink", "Unselect"
         );
-        for (String cmd : cmds) {
+        for (final String cmd : cmds) {
             EXECUTE_CMDS_IE.add(cmd.toLowerCase(Locale.ROOT));
-            EXECUTE_CMDS_CHROME.add(cmd.toLowerCase(Locale.ROOT));
+            if (!"Bold".equals(cmd)) {
+                EXECUTE_CMDS_CHROME.add(cmd.toLowerCase(Locale.ROOT));
+            }
         }
 
         cmds = Arrays.asList(
@@ -288,9 +290,11 @@
             "removeFormat", "selectAll", "strikeThrough", "subscript", \
"superscript", "underline", "undo", "unlink",  "useCSS", "styleWithCSS"
         );
-        for (String cmd : cmds) {
+        for (final String cmd : cmds) {
             EXECUTE_CMDS_FF.add(cmd.toLowerCase(Locale.ROOT));
-            EXECUTE_CMDS_CHROME.add(cmd.toLowerCase(Locale.ROOT));
+            if (!"bold".equals(cmd)) {
+                EXECUTE_CMDS_CHROME.add(cmd.toLowerCase(Locale.ROOT));
+            }
         }
     }
 
@@ -894,7 +898,7 @@
      * Returns a string representing the encoding under which the document was \
                parsed.
      * @return a string representing the encoding under which the document was \
                parsed
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public String getInputEncoding() {
         final String encoding = getPage().getPageEncoding();
         if (encoding != null && \
getBrowserVersion().hasFeature(HTMLDOCUMENT_CHARSET_NORMALIZED)) { @@ -907,7 +911,7 \
                @@
      * Returns the character encoding of the current document.
      * @return the character encoding of the current document
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public String getCharacterSet() {
         final String charset = getPage().getPageEncoding();
         if (charset != null && \
getBrowserVersion().hasFeature(HTMLDOCUMENT_CHARSET_LOWERCASE)) { @@ -1658,7 +1662,7 \
                @@
      * @return a new range
      * @see <a href="http://www.xulplanet.com/references/objref/HTMLDocument.html#method_createRange">XUL \
                Planet</a>
      */
-    @JsxFunction({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxFunction
     public Range createRange() {
         final Range r = new Range(this);
         r.setParentScope(getWindow());
@@ -1687,7 +1691,7 @@
      * @throws DOMException on attempt to create a TreeWalker with a root that is \
                {@code null}
      * @return a new TreeWalker
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public Object createTreeWalker(final Node root, final double whatToShow, final \
Scriptable filter,  boolean expandEntityReferences) throws DOMException {
 
@@ -1852,7 +1856,7 @@
      *         called <tt>preventDefault</tt>; {@code true} otherwise
      */
     @Override
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public boolean dispatchEvent(final Event event) {
         event.setTarget(this);
         final ScriptResult result = fireEvent(event);
@@ -1955,7 +1959,7 @@
      * Returns the current selection.
      * @return the current selection
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public Selection getSelection() {
         return getWindow().getSelectionImpl();
     }
@@ -1978,7 +1982,7 @@
      * @param filter an object implementing the {@link NodeFilter} interface
      * @return a new NodeIterator object
      */
-    @JsxFunction({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxFunction
     public NodeIterator createNodeIterator(final Node root, final double whatToShow, \
                final Scriptable filter) {
         final NodeIterator iterator = new NodeIterator(root, whatToShow, filter);
         iterator.setParentScope(getParentScope());

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -598,7 +598,7 @@
      * @param localName the local name of the attribute to look for
      * @return the specified attribute, {@code null} if the attribute is not defined
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public Object getAttributeNodeNS(final String namespaceURI, final String \
                localName) {
         return getDomNodeOrDie().getAttributeNodeNS(namespaceURI, \
localName).getScriptableObject();  }
@@ -706,7 +706,7 @@
      * @param className the name to search for
      * @return all the descendant elements with the specified class name
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public HTMLCollection getElementsByClassName(final String className) {
         final HtmlElement elt = getDomNodeOrDie();
         final String description = "HTMLElement.getElementsByClassName('" + \
className + "')"; @@ -2532,7 +2532,7 @@
      * @return the token list of class attribute
      */
     @Override
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public DOMTokenList getClassList() {
         return new DOMTokenList(this, "class");
     }
@@ -2596,7 +2596,7 @@
      * Sets the {@code onchange} event handler for this element.
      * @param onchange the {@code onchange} event handler for this element
      */
-    @JsxSetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxSetter
     public void setOnchange(final Object onchange) {
         setEventHandlerProp("onchange", onchange);
     }
@@ -2605,7 +2605,7 @@
      * Returns the {@code onchange} event handler for this element.
      * @return the {@code onchange} event handler for this element
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public Function getOnchange() {
         return getEventHandler("onchange");
     }
@@ -2614,7 +2614,7 @@
      * Returns the {@code onsubmit} event handler for this element.
      * @return the {@code onsubmit} event handler for this element
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public Object getOnsubmit() {
         return getEventHandlerProp("onsubmit");
     }
@@ -2623,7 +2623,7 @@
      * Sets the {@code onsubmit} event handler for this element.
      * @param onsubmit the {@code onsubmit} event handler for this element
      */
-    @JsxSetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxSetter
     public void setOnsubmit(final Object onsubmit) {
         setEventHandlerProp("onsubmit", onsubmit);
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElement.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElement.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElement.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -21,7 +21,6 @@
 import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.CHROME;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.EDGE;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.FF;
                
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.IE;
 
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -370,7 +369,7 @@
      * Returns the value of the {@code naturalWidth} property.
      * @return the value of the {@code naturalWidth} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getNaturalWidth() {
         final HtmlImage img = (HtmlImage) getDomNodeOrDie();
         try {
@@ -385,7 +384,7 @@
      * Returns the value of the {@code naturalHeight} property.
      * @return the value of the {@code naturalHeight} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getNaturalHeight() {
         final HtmlImage img = (HtmlImage) getDomNodeOrDie();
         try {

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElement.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElement.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElement.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -361,7 +361,7 @@
      * Gets the {@code min} property.
      * @return the {@code min} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getMin() {
         return getDomNodeOrDie().getAttribute("min");
     }
@@ -370,7 +370,7 @@
      * Sets the {@code min} property.
      * @param min the {@code min} property
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setMin(final String min) {
         getDomNodeOrDie().setAttribute("min", min);
     }
@@ -379,7 +379,7 @@
      * Gets the {@code max} property.
      * @return the {@code max} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getMax() {
         return getDomNodeOrDie().getAttribute("max");
     }
@@ -388,7 +388,7 @@
      * Sets the {@code max} property.
      * @param max the {@code max} property
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setMax(final String max) {
         getDomNodeOrDie().setAttribute("max", max);
     }
@@ -416,7 +416,7 @@
      * @param start the index of the first character to select
      * @param end the index of the character after the selection
      */
-    @JsxFunction({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxFunction
     public void setSelectionRange(final int start, final int end) {
         setSelectionStart(start);
         setSelectionEnd(end);
@@ -522,7 +522,7 @@
      * Returns the {@code required} attribute.
      * @return the {@code required} attribute
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public boolean isRequired() {
         return getDomNodeOrDie().isRequired();
     }
@@ -531,7 +531,7 @@
      * Sets the {@code required} attribute.
      * @param required the new attribute value
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setRequired(final boolean required) {
         getDomNodeOrDie().setRequired(required);
     }
@@ -576,7 +576,7 @@
      * Returns the {@code autocomplete} attribute.
      * @return the {@code autocomplete} attribute
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getAutocomplete() {
         return getDomNodeOrDie().getAutocomplete();
     }
@@ -585,7 +585,7 @@
      * Sets the {@code autocomplete} attribute.
      * @param autocomplete the new {@code autocomplete} value
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setAutocomplete(final String autocomplete) {
         getDomNodeOrDie().setAutocomplete(autocomplete);
     }
@@ -594,7 +594,7 @@
      * Returns the {@code files} property.
      * @return the {@code files} property
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Object getFiles() {
         if (getDomNodeOrDie() instanceof HtmlFileInput) {
             final FileList list = new \
FileList(HtmlFileInput.splitFiles(getValue())); @@ -612,7 +612,7 @@
      * Returns the {@code placeholder} attribute.
      * @return the {@code placeholder} attribute
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getPlaceholder() {
         return getDomNodeOrDie().getPlaceholder();
     }
@@ -621,7 +621,7 @@
      * Sets the {@code placeholder} attribute.
      * @param placeholder the new {@code placeholder} value
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setPlaceholder(final String placeholder) {
         getDomNodeOrDie().setPlaceholder(placeholder);
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLScriptElement.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLScriptElement.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLScriptElement.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -154,7 +154,7 @@
      * Returns the event handler that fires on load.
      * @return the event handler that fires on load
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public Object getOnload() {
         return getEventHandlerProp("onload");
     }
@@ -163,7 +163,7 @@
      * Sets the event handler that fires on load.
      * @param handler the event handler that fires on load
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setOnload(final Object handler) {
         setEventHandlerProp("onload", handler);
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLStyleElement.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLStyleElement.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLStyleElement.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -17,7 +17,6 @@
 import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.CHROME;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.EDGE;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.FF;
                
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.IE;
 
 import java.io.StringReader;
 
@@ -57,7 +56,7 @@
      * @see <a href="http://www.xulplanet.com/references/objref/HTMLStyleElement.html">Mozilla \
                doc</a>
      * @return the sheet
      */
-    @JsxGetter({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(IE) })
+    @JsxGetter
     public CSSStyleSheet getSheet() {
         if (sheet_ != null) {
             return sheet_;

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTextAreaElement.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTextAreaElement.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTextAreaElement.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -24,7 +24,6 @@
 import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.CHROME;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.EDGE;
  import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.FF;
                
-import static com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName.IE;
 
 import com.gargoylesoftware.htmlunit.html.HtmlTextArea;
 import com.gargoylesoftware.htmlunit.javascript.configuration.JsxClass;
@@ -204,7 +203,7 @@
      * Gets the value of {@code selectionStart} attribute.
      * @return the selection start
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getSelectionStart() {
         return ((HtmlTextArea) getDomNodeOrDie()).getSelectionStart();
     }
@@ -213,7 +212,7 @@
      * Sets the value of {@code selectionStart} attribute.
      * @param start selection start
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setSelectionStart(final int start) {
         ((HtmlTextArea) getDomNodeOrDie()).setSelectionStart(start);
     }
@@ -222,7 +221,7 @@
      * Gets the value of {@code selectionEnd} attribute.
      * @return the selection end
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public int getSelectionEnd() {
         return ((HtmlTextArea) getDomNodeOrDie()).getSelectionEnd();
     }
@@ -231,7 +230,7 @@
      * Sets the value of {@code selectionEnd} attribute.
      * @param end selection end
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setSelectionEnd(final int end) {
         ((HtmlTextArea) getDomNodeOrDie()).setSelectionEnd(end);
     }
@@ -241,7 +240,7 @@
      * @param start the index of the first character to select
      * @param end the index of the character after the selection
      */
-    @JsxFunction({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxFunction
     public void setSelectionRange(final int start, final int end) {
         setSelectionStart(start);
         setSelectionEnd(end);
@@ -317,7 +316,7 @@
      * Returns the {@code placeholder} attribute.
      * @return the {@code placeholder} attribute
      */
-    @JsxGetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxGetter
     public String getPlaceholder() {
         return ((HtmlTextArea) getDomNodeOrDie()).getPlaceholder();
     }
@@ -326,7 +325,7 @@
      * Sets the {@code placeholder} attribute.
      * @param placeholder the new {@code placeholder} value
      */
-    @JsxSetter({ @WebBrowser(CHROME), @WebBrowser(FF), @WebBrowser(IE) })
+    @JsxSetter
     public void setPlaceholder(final String placeholder) {
         ((HtmlTextArea) getDomNodeOrDie()).setPlaceholder(placeholder);
     }

Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java
 ===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/xml/XMLHttpRequest.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -259,7 +259,7 @@
      * Returns the event handler that fires on load.
      * @return the event handler that fires on load
      */
-    @JsxGetter({ @WebBrowser(IE), @WebBrowser(FF), @WebBrowser(CHROME) })
+    @JsxGetter
     public Function getOnload() {
         return loadHandler_;
     }
@@ -268,7 +268,7 @@
      * Sets the event handler that fires on load.
      * @param loadHandler the event handler that fires on load
      */
-    @JsxSetter({ @WebBrowser(IE), @WebBrowser(FF), @WebBrowser(CHROME) })
+    @JsxSetter
     public void setOnload(final Function loadHandler) {
         loadHandler_ = loadHandler;
     }
@@ -277,7 +277,7 @@
      * Returns the event handler that fires on error.
      * @return the event handler that fires on error
      */
-    @JsxGetter({ @WebBrowser(IE), @WebBrowser(FF), @WebBrowser(CHROME) })
+    @JsxGetter
     public Function getOnerror() {
         return errorHandler_;
     }
@@ -286,7 +286,7 @@
      * Sets the event handler that fires on error.
      * @param errorHandler the event handler that fires on error
      */
-    @JsxSetter({ @WebBrowser(IE), @WebBrowser(FF), @WebBrowser(CHROME) })
+    @JsxSetter
     public void setOnerror(final Function errorHandler) {
         errorHandler_ = errorHandler;
     }
@@ -913,7 +913,7 @@
      * @param mimeType the type used to override that returned by the server (if \
                any)
      * @see <a href="http://xulplanet.com/references/objref/XMLHttpRequest.html#method_overrideMimeType">XUL \
                Planet</a>
      */
-    @JsxFunction({ @WebBrowser(IE), @WebBrowser(FF), @WebBrowser(CHROME) })
+    @JsxFunction
     public void overrideMimeType(final String mimeType) {
         if (getBrowserVersion().hasFeature(XHR_OVERRIDE_MIME_TYPE_BEFORE_SEND)
                 && state_ != UNSENT && state_ != OPENED) {
@@ -926,7 +926,7 @@
      * Returns the {@code withCredentials} property.
      * @return the {@code withCredentials} property
      */
-    @JsxGetter({ @WebBrowser(IE), @WebBrowser(FF), @WebBrowser(CHROME) })
+    @JsxGetter
     public boolean getWithCredentials() {
         return withCredentials_;
     }
@@ -935,7 +935,7 @@
      * Sets the {@code withCredentials} property.
      * @param withCredentials the {@code withCredentials} property.
      */
-    @JsxSetter({ @WebBrowser(IE), @WebBrowser(FF), @WebBrowser(CHROME) })
+    @JsxSetter
     public void setWithCredentials(final boolean withCredentials) {
         if (!async_ && state_ != UNSENT) {
             if (getBrowserVersion().hasFeature(XHR_WITHCREDENTIALS_NOT_WRITEABLE_IN_SYNC_EXCEPTION)) \
{

Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/dom/DocumentTest.java
 ===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/dom/DocumentTest.java	2016-02-29 \
                16:21:48 UTC (rev 11947)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/dom/DocumentTest.java	2016-02-29 \
18:28:54 UTC (rev 11948) @@ -1859,7 +1859,6 @@
     @Alerts(DEFAULT = { "0", "0", "0" },
             FF = { "0", "1", "1" })
     @BuggyWebDriver(FF31)
-    @NotYetImplemented(CHROME)
     public void designMode_createsSelectionRange() throws Exception {
         final String html1 = "<html><body><iframe id='i' src='" + URL_SECOND + \
"'></iframe></body></html>";  final String html2 = "<html><body onload='test()'>\n"
@@ -1882,13 +1881,12 @@
     }
 
     /**
-     * Minimal test for <tt>execCommand</tt>.
+     * Minimal test for {@code execCommand}.
      * @throws Exception if the test fails
      */
     @Test
     @Alerts(DEFAULT = { "true", "false" },
             CHROME = { "false", "false" })
-    @NotYetImplemented(CHROME)
     public void execCommand() throws Exception {
         final String html = "<html><head><title>foo</title><script>\n"
             + "  function test() {\n"


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
HtmlUnit-develop mailing list
HtmlUnit-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/htmlunit-develop


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic