RFR: 8267551: Support loading images from inline data-URIs [v13]

John Hendrikx jhendrikx at openjdk.java.net
Sat Jun 5 08:23:56 UTC 2021


On Wed, 26 May 2021 16:36:24 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> This PR adds support for loading images from [inline data URIs](https://en.wikipedia.org/wiki/Data_URI_scheme), which is also widely supported by web browsers. This enables developers to package small images in CSS files, rather than separately deploying the images alongside the CSS file.
>
> Michael Strauß has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 15 commits:
> 
>  - Merge branch 'master' into feature/image-datauri
>    
>    # Conflicts:
>    #	modules/javafx.graphics/src/test/java/test/com/sun/javafx/iio/ImageStorageTest.java
>  - Accept regular file paths, change javadoc
>  - Merge branch 'openjdk:master' into feature/image-datauri
>  - Rename DataURI.isValidURI
>  - Reverted a change
>  - Allow leading and trailing whitespace in data URI
>  - Removed test
>  - Changed data URI detection
>  - Merge branch 'master' into feature/image-datauri
>  - Moved test
>  - ... and 5 more: https://git.openjdk.java.net/jfx/compare/7b7050c4...315523c5

modules/javafx.graphics/src/main/java/com/sun/javafx/css/StyleManager.java line 776:

> 774:                                 } else {
> 775:                                     logger.warning("Error loading image: " + url);
> 776:                                 }

So if I understand this correctly, an Image is first loaded via the standard mechanism, and if that fails for any reason (`image.isError()`) a second attempt is made through `DataURI` ?

Would it not be better to register a new protocol so `new Image` would just succeed for data uri's ?

-------------

PR: https://git.openjdk.java.net/jfx/pull/508


More information about the openjfx-dev mailing list