On Sat, 8 Jan 2022 17:30:55 GMT, Michael Strauß <mstra...@openjdk.org> wrote:
>> `com.sun.javafx.iio.ImageStorage` currently ignores the MIME image subtype >> specified for images encoded in data URIs. This should be improved as >> follows: >> >> 1. If the specified image subtype is not supported, an exception will be >> thrown. >> 2. If the specified image subtype is supported, but the data contained in >> the URI is of a different (but also supported) image format, the image will >> be loaded and a warning will be logged. For example, if the MIME type is >> "image/jpeg", but the image data is PNG, the following warning will be >> generated: >> >> >> Image format 'PNG' does not match MIME type 'image/jpeg' in URI >> 'data:image/jpeg;base64,iVBORw0KGgoAAA...AAAElFTkSuQmCC' >> >> >> Also, the javadoc of `javafx.scene.image.Image` incorrectly states: >> >> 94 * If a URL uses the "data" scheme, the data must be base64-encoded >> 95 * and the MIME type must either be empty or a subtype of the >> 96 * {@code image} type. >> >> However, omitting the MIME type of a data URI is specified to imply >> "text/plain" (RFC 2397, section 2). Since the `com.sun.javafx.util.DataURI` >> class is implemented according to this specification, trying to load an >> image without MIME type correctly fails with an `ImageStorageException`: >> "Unexpected MIME type: text". >> >> The solution is to fix the documentation: >> >> 94 * If a URL uses the "data" scheme, the data must be >> base64-encoded >> - 95 * and the MIME type must either be empty or a subtype of the >> - 96 * {@code image} type. >> + 95 * and the MIME type must be a subtype of the {@code image} type. >> + 96 * The MIME type must match the image format of the data >> contained in >> + 97 * the URL. In case of a mismatch between MIME type and image >> format, >> + 98 * the image will be loaded if the image format can be determined >> by >> + 99 * JavaFX, and a warning will be logged. > > Michael Strauß has updated the pull request incrementally with one additional > commit since the last revision: > > Don't let EOFException bubble up Looks good. Pending a second reviewer. ------------- Marked as reviewed by kcr (Lead). PR: https://git.openjdk.java.net/jfx/pull/676