From: <rb...@us...> - 2017-12-13 21:11:30
|
Revision: 15005 http://sourceforge.net/p/htmlunit/code/15005 Author: rbri Date: 2017-12-13 21:11:28 +0000 (Wed, 13 Dec 2017) Log Message: ----------- fixes for chrome 63 (wip) Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElement.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElementTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2017-12-13 20:47:51 UTC (rev 15004) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2017-12-13 21:11:28 UTC (rev 15005) @@ -967,11 +967,11 @@ JS_IMAGE_PROTOTYPE_SAME_AS_HTML_IMAGE, /** - * Getting the width and height of an image tag without a source returns 18x20; - * for invalid values returns 1. + * Getting the width and height of an image tag without a source returns 16x16; + * for invalid values returns 0. */ @BrowserFeature(CHROME) - JS_IMAGE_WIDTH_HEIGHT_RETURNS_0x0_0x0, + JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0, /** * Getting the width and height of an image tag without a source returns 18x20; 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 2017-12-13 20:47:51 UTC (rev 15004) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElement.java 2017-12-13 21:11:28 UTC (rev 15005) @@ -16,7 +16,7 @@ import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_ALIGN_ACCEPTS_ARBITRARY_VALUES; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_IMAGE_WIDTH_HEIGHT_RETURNS_24x24_0x0; -import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_IMAGE_WIDTH_HEIGHT_RETURNS_0x0_0x0; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_IMAGE_WIDTH_HEIGHT_RETURNS_28x30_28x30; import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.CHROME; import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.EDGE; @@ -28,6 +28,7 @@ import java.util.Locale; import java.util.Map; +import org.apache.commons.lang3.StringUtils; import org.xml.sax.helpers.AttributesImpl; import com.gargoylesoftware.htmlunit.BrowserVersion; @@ -239,31 +240,37 @@ } final String src = img.getSrcAttribute(); - if (DomElement.ATTRIBUTE_NOT_DEFINED != src) { - try { - return img.getWidth(); + if (DomElement.ATTRIBUTE_NOT_DEFINED == src) { + final BrowserVersion browserVersion = getBrowserVersion(); + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_28x30_28x30)) { + return 28; } - catch (final IOException e) { - final BrowserVersion browserVersion = getBrowserVersion(); - if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_28x30_28x30)) { - return 28; - } - if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_0x0_0x0)) { - return 0; - } - return 24; + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0) + || browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_24x24_0x0)) { + return 0; } + return 24; } final BrowserVersion browserVersion = getBrowserVersion(); - if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_28x30_28x30)) { - return 28; - } - if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_0x0_0x0) - || browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_24x24_0x0)) { + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0) + && !StringUtils.isEmpty(src) + && StringUtils.isBlank(src)) { return 0; } - return 24; + + try { + return img.getWidth(); + } + catch (final IOException e) { + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_28x30_28x30)) { + return 28; + } + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0)) { + return 16; + } + return 24; + } } /** @@ -295,31 +302,37 @@ } final String src = img.getSrcAttribute(); - if (DomElement.ATTRIBUTE_NOT_DEFINED != src) { - try { - return img.getHeight(); + if (DomElement.ATTRIBUTE_NOT_DEFINED == src) { + final BrowserVersion browserVersion = getBrowserVersion(); + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_28x30_28x30)) { + return 30; } - catch (final IOException e) { - final BrowserVersion browserVersion = getBrowserVersion(); - if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_28x30_28x30)) { - return 30; - } - if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_0x0_0x0)) { - return 0; - } - return 24; + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0) + || browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_24x24_0x0)) { + return 0; } + return 24; } final BrowserVersion browserVersion = getBrowserVersion(); - if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_28x30_28x30)) { - return 30; - } - if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_0x0_0x0) - || browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_24x24_0x0)) { + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0) + && !StringUtils.isEmpty(src) + && StringUtils.isBlank(src)) { return 0; } - return 24; + + try { + return img.getHeight(); + } + catch (final IOException e) { + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_28x30_28x30)) { + return 30; + } + if (browserVersion.hasFeature(JS_IMAGE_WIDTH_HEIGHT_RETURNS_16x16_0x0)) { + return 16; + } + return 24; + } } /** Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElementTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElementTest.java 2017-12-13 20:47:51 UTC (rev 15004) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLImageElementTest.java 2017-12-13 21:11:28 UTC (rev 15005) @@ -547,7 +547,7 @@ webConnection.setResponse(URL_SECOND, directBytes, 200, "ok", "image/jpg", emptyList); } - loadPageWithAlerts2(html); + loadPageWithAlerts2(html, 70000); } /** |