-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
www.booking.com - Server sends JPEG2000 images in the Raw HTML to Safari on iOS #133697
Comments
booking.com is doing a combination of JPEG2000
JPEG
We determined that this was due to a combination of Firefox on Android is sending for HTML resources
Safari on iOS is sending for HTML resources:
But if we use the Safari on iOS User Agent with the accept header of Firefox:
Booking.com is sending the normal JPG in the raw HTML response. Note: Safari on MacOS with the same Accept header receives the normal JPEG. Why does it matter?On https://bugs.webkit.org/show_bug.cgi?id=178758 So booking.com needs to fix their HTTP responses and not single out Safari. Relevant bug in Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=jpeg2000 Moving to needscontact |
@bookingcom is on GitHub and currently list 9 people. Maybe @andrew-grechkin could help us find the right person at Booking.com to solve this server side issue which will send broken JPEG images on Safari on iOS in the future. |
Note that if there is no fix on the side of booking.com, the WebKit team will have to implement a Quirk to trick the server into sending simple JPEGs. |
I have passed this issue to our engineers responsible for front-end and iOS. Now we need to wait a little bit. |
@andrew-grechkin Thanks a lot. |
https://bugs.webkit.org/show_bug.cgi?id=269875 rdar://123408770 Reviewed by Chris Dumez. In webkit.org/b/178758, the support for JPEG2000 was removed from WebKit. Booking.com is doing content negociation on both the User-Agent string and the HTTP accept header. The website sends JPEG2000 assets to Safari on iOS. An outreach effort has been started to make sure that booking fixes their servers. See webcompat/web-bugs#133697 No other breakage has been detected yet, but we know that Cloudinary is currently JPEG2000 images for some websites on both iOS and macOS. It might break once this release of WebKit reaches Safari. An ongoing effort has started to avoid this so that Cloudinary can adjust their rules and warn their customers. In the meantime this Quirk sends a different HTTP Accept header for booking.com tricking the server into sending compatible image resources for HTML requests instead of JPEG2000. * Source/WebCore/loader/FrameLoader.cpp: (WebCore::FrameLoader::updateRequestAndAddExtraFields): * Source/WebCore/loader/cache/CachedResourceRequest.cpp: (WebCore::CachedResourceRequest::acceptHeaderValueFromType): (WebCore::CachedResourceRequest::setAcceptHeaderIfNone): * Source/WebCore/loader/cache/CachedResourceRequest.h: * Source/WebCore/page/Quirks.cpp: (WebCore::Quirks::shouldSendLongerAcceptHeaderQuirk): * Source/WebCore/page/Quirks.h: Canonical link: https://commits.webkit.org/275216@main
Hi. Booking.com no longer sends jp2 files (since 20240308). |
Thanks @lucrocha I will remove the Quirk! |
URL: https://www.booking.com/hotel/us/milpitas-40-ranch-drive.html
Browser / Version: Safari 17.4
Operating System: iOS 17.4
Tested Another Browser: Yes Firefox
Problem type: Design is broken
Description: Images not loaded
Steps to Reproduce:
Expected:
See the images
Actual:
Images are not visible.
View the screenshot
Browser Configuration
View console log messages
From webcompat.com with ❤️
The text was updated successfully, but these errors were encountered: