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

Michael Strauß mstrauss at openjdk.java.net
Sat Jun 5 15:51:59 UTC 2021


On Sat, 5 Jun 2021 08:21:14 GMT, John Hendrikx <jhendrikx at openjdk.org> wrote:

>> 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 ?

In this specific case, image loading has failed for some reason. The call to `DataURI.tryParse` is only there to potentially call `DataURI.toString()` for a truncated log output, instead of logging the entire `url` String. If data-URI truncation is not wanted, this code can be reverted.

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

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


More information about the openjfx-dev mailing list