data:// URL behavior of XHR does not match spec
[WebKit-https.git] / Source / WebCore / ChangeLog
index 5ed9724..4f3f18e 100644 (file)
@@ -1,3 +1,39 @@
+2016-08-29  Youenn Fablet  <youenn@apple.com>
+
+        data:// URL behavior of XHR does not match spec
+        https://bugs.webkit.org/show_bug.cgi?id=109199
+
+        Reviewed by Darin Adler.
+
+        Covered by rebased tests.
+
+        Making data URLs same origin for XHR and fetch API.
+        This is the behavior when https://fetch.spec.whatwg.org/#same-origin-data-url-flag is set.
+        As per the specs, this flag is set for fetch API and XMLHttpRequest.
+        Introducing this flag in ThreadableLoader options, default value being false.
+        Setting flag for XHR and fetch API.
+
+        Fixing accuracy of data URL loading by setting status code and content-type HTTP header as per fetch specification.
+
+        As can be seen from the rebased tests, no constraint is put on the method used as the fetch specification is about to allow all methods for data URLs.
+
+        * Modules/fetch/FetchLoader.cpp:
+        (WebCore::FetchLoader::start): Setting same-origin-data-url-flag to true.
+        * loader/DocumentThreadableLoader.cpp:
+        (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Making data URLs same origin if flag is set.
+        * loader/ResourceLoader.cpp:
+        (WebCore::ResourceLoader::loadDataURL): Setting status code and content-type header according specification.
+        * loader/ThreadableLoader.cpp:
+        (WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Adding same-origin-data-url-flag option.
+        * loader/ThreadableLoader.h:
+        * loader/WorkerThreadableLoader.cpp:
+        (WebCore::LoaderTaskOptions::LoaderTaskOptions): Ensuring flag is preserved when going to the main thread.
+        * platform/network/DataURLDecoder.cpp:
+        (WebCore::DataURLDecoder::parseMediaType): Setting mediaType value, used by ResourceLoader to set the content-type header.
+        * platform/network/DataURLDecoder.h:
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::createRequest): Setting same-origin-data-url-flag to true.
+
 2016-08-25  Frederic Wang  <fwang@igalia.com>
 
         Add support for non-BMP operators U+1EEF0 and U+1EEF1