Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
[Qt] QWebPage MIME type handling inconsistency with other web browsers
https://bugs.webkit.org/show_bug.cgi?id=46968 Source/WebCore: Reviewed by Kenneth Rohde Christiansen. Implementing mime type sniffing based on http://tools.ietf.org/html/draft-abarth-mime-sniff-06. * WebCore.pro: * platform/network/MIMESniffing.cpp: Added. (MagicNumbers::dataSizeNeededForImageSniffing): (MagicNumbers::maskedCompare): (MagicNumbers::checkSpaceOrBracket): (MagicNumbers::compare): (MagicNumbers::findMIMEType): (MagicNumbers::findSimpleMIMEType): (MagicNumbers::textOrBinaryTypeSniffingProcedure): (MagicNumbers::unknownTypeSniffingProcedure): (MagicNumbers::imageTypeSniffingProcedure): (MagicNumbers::checkText): (MagicNumbers::checkRDF): (MagicNumbers::skipTag): (MagicNumbers::feedTypeSniffingProcedure): (MIMESniffer::MIMESniffer): * platform/network/MIMESniffing.h: Added. (MIMESniffer::dataSize): (MIMESniffer::sniff): (MIMESniffer::isValid): * platform/network/NetworkingContext.h: * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper): (WebCore::QNetworkReplyWrapper::release): (WebCore::QNetworkReplyWrapper::receiveMetaData): (WebCore::QNetworkReplyWrapper::receiveSniffedMIMEType): (WebCore::QNetworkReplyWrapper::emitMetaDataChanged): (WebCore::QNetworkReplyHandler::sendResponseIfNeeded): (WebCore::QNetworkReplyHandler::sendNetworkRequest): (WebCore::QNetworkReplyHandler::start): * platform/network/qt/QNetworkReplyHandler.h: (WebCore::QNetworkReplyWrapper::advertisedMIMEType): (WebCore::QNetworkReplyWrapper::mimeType): * platform/network/qt/QtMIMETypeSniffer.cpp: Added. (QtMIMETypeSniffer::QtMIMETypeSniffer): (QtMIMETypeSniffer::sniff): (QtMIMETypeSniffer::trySniffing): * platform/network/qt/QtMIMETypeSniffer.h: Added. (QtMIMETypeSniffer::mimeType): (QtMIMETypeSniffer::isFinished): Source/WebKit/qt: Reviewed by Kenneth Rohde Christiansen. Implementing mime type sniffing based on http://tools.ietf.org/html/draft-abarth-mime-sniff-06. * WebCoreSupport/FrameLoaderClientQt.cpp: (WebCore::FrameLoaderClientQt::createNetworkingContext): * WebCoreSupport/FrameNetworkingContextQt.cpp: (WebCore::FrameNetworkingContextQt::FrameNetworkingContextQt): (WebCore::FrameNetworkingContextQt::create): (WebCore::FrameNetworkingContextQt::MIMESniffingEnabled): * WebCoreSupport/FrameNetworkingContextQt.h: * tests/MIMESniffing/MIMESniffing.pro: Added. * tests/MIMESniffing/TestData.h: Added. * tests/MIMESniffing/resources.qrc: Added. * tests/MIMESniffing/resources/application_atom+xml: Added. * tests/MIMESniffing/resources/application_ogg: Added. * tests/MIMESniffing/resources/application_pdf: Added. * tests/MIMESniffing/resources/application_postscript: Added. * tests/MIMESniffing/resources/application_rdf+xml: Added. * tests/MIMESniffing/resources/application_rss+xml: Added. * tests/MIMESniffing/resources/application_x-gzip: Added. * tests/MIMESniffing/resources/application_x-rar-compressed: Added. * tests/MIMESniffing/resources/application_zip: Added. * tests/MIMESniffing/resources/audio_x-wave: Added. * tests/MIMESniffing/resources/image_bmp: Added. * tests/MIMESniffing/resources/image_gif: Added. * tests/MIMESniffing/resources/image_jpeg: Added. * tests/MIMESniffing/resources/image_png: Added. * tests/MIMESniffing/resources/image_vnd.microsoft.icon: Added. * tests/MIMESniffing/resources/image_webp: Added. * tests/MIMESniffing/resources/text_html: Added. * tests/MIMESniffing/resources/text_xml: Added. * tests/MIMESniffing/resources/video_webm: Added. * tests/MIMESniffing/tst_MIMESniffing.cpp: Added. (tst_MIMESniffing::tst_MIMESniffing): (errorText): (tst_MIMESniffing::testCase1): * tests/tests.pro: Source/WebKit2: Reviewed by Kenneth Rohde Christiansen. Implementing mime type sniffing based on http://tools.ietf.org/html/draft-abarth-mime-sniff-06. * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp: (WebCore::WebFrameNetworkingContext::WebFrameNetworkingContext): (WebCore::WebFrameNetworkingContext::MIMESniffingEnabled): * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h: LayoutTests: Rubberstamped by Andreas Kling. Unskipping http/tests/loading/text-content-type-with-binary-extension.html. * platform/qt/Skipped: Canonical link: https://commits.webkit.org/73798@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@84057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- Loading branch information