From: <rb...@us...> - 2013-12-23 15:24:05
|
Revision: 8904 http://sourceforge.net/p/htmlunit/code/8904 Author: rbri Date: 2013-12-23 15:24:01 +0000 (Mon, 23 Dec 2013) Log Message: ----------- namespaceURI returns the correct value for html elements (Frank Danek) 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/JavaScriptEngine.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2013-12-23 15:23:37 UTC (rev 8903) +++ trunk/htmlunit/src/changes/changes.xml 2013-12-23 15:24:01 UTC (rev 8904) @@ -8,6 +8,9 @@ <body> <release version="2.14" date="???" description="Bugfixes"> + <action type="fix" dev="rbri" due-to="Frank Danek"> + JavaScript: namespaceURI returns the correct value for html elements. + </action> <action type="fix" dev="asashour" issue="1563"> JavaScript: fix parseInt() when the value has a leading 0. </action> Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2013-12-23 15:23:37 UTC (rev 8903) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2013-12-23 15:24:01 UTC (rev 8904) @@ -54,10 +54,6 @@ @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(value = IE, minVersion = 11) }) CAN_INHERIT_CSS_PROPERTY_VALUES, - /** The status/value update of a control is processed before the click event. */ - @BrowserFeature(@WebBrowser(IE)) - CONTROL_UPDATE_DONE_BEFORE_CLICK_EVENT_FIRED, - /** Indicates that the default value for height of elements is 15 instead of 20. */ @BrowserFeature(@WebBrowser(IE)) CSS_DEFAULT_ELEMENT_HEIGHT_15, @@ -174,13 +170,17 @@ @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(value = IE, minVersion = 11) }) EVENT_INPUT, + /** Triggers "onchange" event handler after "onclick" event handler. */ + @BrowserFeature(@WebBrowser(FF)) + EVENT_ONCHANGE_AFTER_ONCLICK, + /** Triggers "onchange" event handler on losing focus. */ @BrowserFeature(@WebBrowser(value = IE, maxVersion = 9)) EVENT_ONCHANGE_LOSING_FOCUS, - /** Triggers "onclick" event handler also for the select option. */ - @BrowserFeature({ @WebBrowser(value = IE, minVersion = 8), @WebBrowser(FF), @WebBrowser(CHROME) }) - EVENT_ONCLICK_FOR_SELECT_OPTION_ALSO, + /** Triggers "onclick" event handler for the select only, not for the clicked option. */ + @BrowserFeature(@WebBrowser(IE)) + EVENT_ONCLICK_FOR_SELECT_ONLY, /** Triggers "onerror" if external loading of an external javascript failed. */ @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME) }) @@ -223,7 +223,7 @@ EVENT_PROPERTY_CHANGE, /** Supports vendor specific event type 'Events'. */ - @BrowserFeature({ @WebBrowser(FF), @WebBrowser(value = IE, minVersion = 11) }) + @BrowserFeature({ @WebBrowser(FF), @WebBrowser(value = IE, minVersion = 11), @WebBrowser(CHROME) }) EVENT_TYPE_EVENTS, /** Supports vendor specific event type 'KeyEvents'. */ @@ -231,7 +231,7 @@ EVENT_TYPE_KEY_EVENTS, /** Indicates that document.execCommand() should throw an exception when called with an illegal command. */ - @BrowserFeature(@WebBrowser(IE)) + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 9)) EXECCOMMAND_THROWS_ON_WRONG_COMMAND, /** */ @@ -259,7 +259,7 @@ GENERATED_104, /** Was originally .isIE(). */ - @BrowserFeature(@WebBrowser(IE)) + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 9)) GENERATED_112, /** Was originally .isIE(). */ @@ -295,15 +295,7 @@ GENERATED_158, /** Was originally .isFirefox(). */ - @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME) }) - GENERATED_160, - - /** Was originally .isFirefox(). */ - @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME) }) - GENERATED_161, - - /** Was originally .isFirefox(). */ - @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME) }) + @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME), @WebBrowser(value = IE, minVersion = 11) }) GENERATED_164, /** Was originally .isFirefox(). */ @@ -360,18 +352,10 @@ /** Was originally .isIE(). */ @BrowserFeature(@WebBrowser(IE)) - GENERATED_60, - - /** Was originally .isIE(). */ - @BrowserFeature(@WebBrowser(IE)) GENERATED_63, /** Was originally .isIE(). */ @BrowserFeature(@WebBrowser(IE)) - GENERATED_65, - - /** Was originally .isIE(). */ - @BrowserFeature(@WebBrowser(IE)) GENERATED_72, /** Was originally .isIE(). */ @@ -485,6 +469,25 @@ @BrowserFeature(@WebBrowser(IE)) HTMLDOCUMENT_COLOR, + /** Calls to <code>document.XYZ</code> also looks at frames. */ + @BrowserFeature(@WebBrowser(IE)) + HTMLDOCUMENT_GET_ALSO_FRAMES, + + /** Calls to <code>document.XYZ</code> looks at children with the specified ID and/or name. */ + @BrowserFeature(@WebBrowser(IE)) + HTMLDOCUMENT_GET_FOR_ID_AND_OR_NAME, + + /** Calls to <code>document.XYZ</code> looks at children with the specified name. */ + @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME) }) + HTMLDOCUMENT_GET_FOR_NAME, + + /** + * Calls to <code>document.XYZ</code> should first look at standard functions before looking at elements + * named <code>XYZ</code>. + */ + @BrowserFeature(@WebBrowser(value = IE, minVersion = 11)) + HTMLDOCUMENT_GET_PREFERS_STANDARD_FUNCTIONS, + /** Allows invalid 'align' values. */ @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME) }) HTMLELEMENT_ALIGN_INVALID, @@ -604,14 +607,14 @@ HTTP_HEADER_HOST_FIRST, /** Indicates that the browser should ignore contents of inner head elements. */ - @BrowserFeature(@WebBrowser(IE)) + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 9)) IGNORE_CONTENTS_OF_INNER_HEAD, /** * The function addEventListener or attachEvent(IE) accepts null as listener * instead of throwing an exception. */ - @BrowserFeature({ @WebBrowser(IE), @WebBrowser(value = FF, minVersion = 17) }) + @BrowserFeature({ @WebBrowser(IE), @WebBrowser(value = FF, minVersion = 17), @WebBrowser(CHROME) }) JS_ADD_EVENT_LISTENER_ACCEPTS_NULL_LISTENER, /** Setting the property align to arbitrary values is allowed. */ @@ -772,10 +775,18 @@ @WebBrowser(value = IE, minVersion = 11) }) JS_DOCUMENT_CREATE_ELEMENT_STRICT, + /** Design mode constants start with a capital letter. */ + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 8)) + JS_DOCUMENT_DESIGN_MODE_CAPITAL_FIRST, + /** The browser supports the design mode 'Inherit' (IE). */ @BrowserFeature(@WebBrowser(IE)) JS_DOCUMENT_DESIGN_MODE_INHERIT, + /** The browser supports the design mode only for frames. */ + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 8)) + JS_DOCUMENT_DESIGN_MODE_ONLY_FOR_FRAMES, + /** Javascript document.doctype returns null (IE). */ @BrowserFeature(@WebBrowser(value = IE, maxVersion = 9)) JS_DOCUMENT_DOCTYPE_NULL, @@ -1033,7 +1044,7 @@ JS_INNER_HTML_CREATES_DOC_FRAGMENT_AS_PARENT, /** Indicates that innerHTML is readonly for some tags. */ - @BrowserFeature(@WebBrowser(IE)) + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 9)) JS_INNER_HTML_READONLY_FOR_SOME_TAGS, /** Indicates if multiple spaces are replaced by a single one when accessing innerHTML. */ Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/JavaScriptEngine.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/JavaScriptEngine.java 2013-12-23 15:23:37 UTC (rev 8903) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/JavaScriptEngine.java 2013-12-23 15:24:01 UTC (rev 8904) @@ -85,6 +85,7 @@ * @author Ahmed Ashour * @author Amit Manjhi * @author Ronald Brill + * @author Frank Danek * @see <a href="http://groups-beta.google.com/group/netscape.public.mozilla.jseng/browse_thread/thread/b4edac57329cf49f/069e9307ec89111f"> * Rhino and Java Browser</a> */ @@ -231,7 +232,7 @@ if (obj.getClass() == Element.class) { final Page page = webWindow.getEnclosedPage(); if (page != null && page.isHtmlPage()) { - final DomNode domNode = new HtmlDivision(null, "", (HtmlPage) page, null); + final DomNode domNode = new HtmlDivision("", (HtmlPage) page, null); obj.setDomNode(domNode); } } |