Diff
Modified: trunk/LayoutTests/ChangeLog (267729 => 267730)
--- trunk/LayoutTests/ChangeLog 2020-09-29 07:20:13 UTC (rev 267729)
+++ trunk/LayoutTests/ChangeLog 2020-09-29 07:44:40 UTC (rev 267730)
@@ -1,3 +1,17 @@
+2020-09-29 Said Abou-Hallawa <[email protected]>
+
+ Data URL image is not rendered if there is whitespace between the mime type and and "base64" string
+ https://bugs.webkit.org/show_bug.cgi?id=216900
+
+ Reviewed by Darin Adler.
+
+ In the new test, 16 cases are included to cover all the permutations of
+ adding spaces before and after the comma and the semicolon. PNG and JPEG
+ formats are used to ensure the mime type is tested.
+
+ * fast/images/image-data-url-with-spaces-expected.html: Added.
+ * fast/images/image-data-url-with-spaces.html: Added.
+
2020-09-28 Tetsuharu Ohzeki <[email protected]>
webkitfullscreenchange does not fire for shadow DOM elements
Added: trunk/LayoutTests/fast/images/image-data-url-with-spaces-expected.html (0 => 267730)
--- trunk/LayoutTests/fast/images/image-data-url-with-spaces-expected.html (rev 0)
+++ trunk/LayoutTests/fast/images/image-data-url-with-spaces-expected.html 2020-09-29 07:44:40 UTC (rev 267730)
@@ -0,0 +1,26 @@
+<body>
+ <div>
+ <img src=""
+ <img src=""
+ <img src=""
+ <img src=""
+ </div>
+ <div>
+ <img src=""
ytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src=""
ytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src=""
ytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src=""
ytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ </div>
+ <div>
+ <img src=""
+ <img src=""
+ <img src=""
+ <img src=""
+ </div>
+ <div>
+ <img src=""
ytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src=""
ytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src=""
ytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src=""
ytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ </div>
+</body>
Added: trunk/LayoutTests/fast/images/image-data-url-with-spaces.html (0 => 267730)
--- trunk/LayoutTests/fast/images/image-data-url-with-spaces.html (rev 0)
+++ trunk/LayoutTests/fast/images/image-data-url-with-spaces.html 2020-09-29 07:44:40 UTC (rev 267730)
@@ -0,0 +1,26 @@
+<body>
+ <div>
+ <img src=""
+ <img src="" iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>
+ <img src="" ,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>
+ <img src="" , iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>
+ </div>
+ <div>
+ <img src="" base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QCARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAKgAgAEAAAAAQAAABCgAwAEAAAAAQAAABAAAAAA/9sAQwACAQECAQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwMDAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgAEAAQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8j
JytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src="" base64, /9j/4AAQSkZJRgABAQEAYABgAAD/4QCARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAKgAgAEAAAAAQAAABCgAwAEAAAAAQAAABAAAAAA/9sAQwACAQECAQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwMDAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgAEAAQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8
jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src="" base64 ,/9j/4AAQSkZJRgABAQEAYABgAAD/4QCARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAKgAgAEAAAAAQAAABCgAwAEAAAAAQAAABAAAAAA/9sAQwACAQECAQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwMDAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgAEAAQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8
jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src="" base64 , /9j/4AAQSkZJRgABAQEAYABgAAD/4QCARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAKgAgAEAAAAAQAAABCgAwAEAAAAAQAAABAAAAAA/9sAQwACAQECAQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwMDAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgAEAAQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx
8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ </div>
+ <div>
+ <img src="" ;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>
+ <img src="" ;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>
+ <img src="" ;base64 ,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>
+ <img src="" ;base64 , iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>
+ </div>
+ <div>
+ <img src="" ; base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QCARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAKgAgAEAAAAAQAAABCgAwAEAAAAAQAAABAAAAAA/9sAQwACAQECAQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwMDAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgAEAAQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8
jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src="" ; base64, /9j/4AAQSkZJRgABAQEAYABgAAD/4QCARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAKgAgAEAAAAAQAAABCgAwAEAAAAAQAAABAAAAAA/9sAQwACAQECAQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwMDAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgAEAAQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx
8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src="" ; base64 ,/9j/4AAQSkZJRgABAQEAYABgAAD/4QCARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAKgAgAEAAAAAQAAABCgAwAEAAAAAQAAABAAAAAA/9sAQwACAQECAQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwMDAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgAEAAQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx
8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ <img src="" ; base64 , /9j/4AAQSkZJRgABAQEAYABgAAD/4QCARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAKgAgAEAAAAAQAAABCgAwAEAAAAAQAAABAAAAAA/9sAQwACAQECAQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwMDAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgAEAAQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
x8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A90ooor+Kz/D8/9k="/>
+ </div>
+</body>
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (267729 => 267730)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2020-09-29 07:20:13 UTC (rev 267729)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2020-09-29 07:44:40 UTC (rev 267730)
@@ -1,3 +1,13 @@
+2020-09-29 Said Abou-Hallawa <[email protected]>
+
+ Data URL image is not rendered if there is whitespace between the mime type and and "base64" string
+ https://bugs.webkit.org/show_bug.cgi?id=216900
+
+ Reviewed by Darin Adler.
+
+ * web-platform-tests/fetch/data-urls/processing.any-expected.txt:
+ * web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt:
+
2020-09-28 Chris Dumez <[email protected]>
Unreviewed, mark webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html as flaky instead of skipping it entirely.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any-expected.txt (267729 => 267730)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any-expected.txt 2020-09-29 07:20:13 UTC (rev 267729)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any-expected.txt 2020-09-29 07:44:40 UTC (rev 267730)
@@ -52,12 +52,12 @@
PASS "data:x;base64x,WA"
PASS "data:x;base64;x,WA"
PASS "data:x;base64=x,WA"
-FAIL "data:; base64,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
-FAIL "data:; base64,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
-FAIL "data: ;charset=x ; base64,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
+PASS "data:; base64,WA"
+PASS "data:; base64,WA"
+PASS "data: ;charset=x ; base64,WA"
PASS "data:;base64;,WA"
-FAIL "data:;base64 ,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
-FAIL "data:;base64 ,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
+PASS "data:;base64 ,WA"
+PASS "data:;base64 ,WA"
PASS "data:;base 64,WA"
PASS "data:;BASe64,WA"
PASS "data:;%62ase64,WA"
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt (267729 => 267730)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt 2020-09-29 07:20:13 UTC (rev 267729)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt 2020-09-29 07:44:40 UTC (rev 267730)
@@ -52,12 +52,12 @@
PASS "data:x;base64x,WA"
PASS "data:x;base64;x,WA"
PASS "data:x;base64=x,WA"
-FAIL "data:; base64,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
-FAIL "data:; base64,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
-FAIL "data: ;charset=x ; base64,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
+PASS "data:; base64,WA"
+PASS "data:; base64,WA"
+PASS "data: ;charset=x ; base64,WA"
PASS "data:;base64;,WA"
-FAIL "data:;base64 ,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
-FAIL "data:;base64 ,WA" assert_array_equals: lengths differ, expected array [88] length 1, got object "87,65" length 2
+PASS "data:;base64 ,WA"
+PASS "data:;base64 ,WA"
PASS "data:;base 64,WA"
PASS "data:;BASe64,WA"
PASS "data:;%62ase64,WA"
Modified: trunk/Source/WebCore/ChangeLog (267729 => 267730)
--- trunk/Source/WebCore/ChangeLog 2020-09-29 07:20:13 UTC (rev 267729)
+++ trunk/Source/WebCore/ChangeLog 2020-09-29 07:44:40 UTC (rev 267730)
@@ -1,3 +1,20 @@
+2020-09-29 Said Abou-Hallawa <[email protected]>
+
+ Data URL image is not rendered if there is whitespace between the mime type and and "base64" string
+ https://bugs.webkit.org/show_bug.cgi?id=216900
+
+ Reviewed by Darin Adler.
+
+ According to https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs,
+ spaces are allowed in the data URL to allow better formatting. This
+ means spaces may appear before and after the comma and the semicolon
+ (if it exits in the Data URL).
+
+ Test: fast/images/image-data-url-with-spaces.html
+
+ * platform/network/DataURLDecoder.cpp:
+ (WebCore::DataURLDecoder::DecodeTask::process):
+
2020-09-28 Yusuke Suzuki <[email protected]>
Use JSC_DECLARE_JIT_OPERATION / JSC_DECLARE_CUSTOM_GETTER / JSC_DECLARE_CUSTOM_SETTER
Modified: trunk/Source/WebCore/platform/network/DataURLDecoder.cpp (267729 => 267730)
--- trunk/Source/WebCore/platform/network/DataURLDecoder.cpp 2020-09-29 07:20:13 UTC (rev 267729)
+++ trunk/Source/WebCore/platform/network/DataURLDecoder.cpp 2020-09-29 07:44:40 UTC (rev 267730)
@@ -66,25 +66,42 @@
bool process()
{
+ // Syntax:
+ // url := data:<header>,<encodedData>
+ // header := [<mediatype>][;base64]
+ // mediatype := [<mimetype>][;charset=<charsettype>]
+
if (urlString.find(',') == notFound)
return false;
+
const char dataString[] = "data:";
- const char base64String[] = ";base64";
-
ASSERT(urlString.startsWith(dataString));
- size_t headerEnd = urlString.find(',', strlen(dataString));
+ size_t headerStart = strlen(dataString);
+ size_t headerEnd = urlString.find(',', headerStart);
size_t encodedDataStart = headerEnd == notFound ? headerEnd : headerEnd + 1;
encodedData = StringView(urlString).substring(encodedDataStart);
- auto header = StringView(urlString).substring(strlen(dataString), headerEnd - strlen(dataString));
- isBase64 = header.endsWithIgnoringASCIICase(StringView(base64String));
- auto mediaType = (isBase64 ? header.substring(0, header.length() - strlen(base64String)) : header).toString();
- mediaType = mediaType.stripWhiteSpace();
+ auto header = StringView(urlString).substring(headerStart, headerEnd - headerStart);
+
+ // There might one or two semicolons in the header, find the last one.
+ size_t mediaTypeEnd = header.reverseFind(';');
+ mediaTypeEnd = mediaTypeEnd == notFound ? header.length() : mediaTypeEnd;
+
+ // formatTypeStart might be at the begining of "base64" or "charset=...".
+ size_t formatTypeStart = mediaTypeEnd + 1;
+ auto formatType = header.substring(formatTypeStart, header.length() - formatTypeStart);
+ formatType = stripLeadingAndTrailingHTTPSpaces(formatType);
+
+ isBase64 = equalLettersIgnoringASCIICase(formatType, "base64");
+
+ // If header does not end with "base64", mediaType should be the whole header.
+ auto mediaType = (isBase64 ? header.substring(0, mediaTypeEnd) : header).toString();
+ mediaType = stripLeadingAndTrailingHTTPSpaces(mediaType);
if (mediaType.startsWith(';'))
mediaType.insert("text/plain", 0);
+
result = parseMediaType(mediaType);
-
return true;
}