Diff
Modified: trunk/LayoutTests/ChangeLog (175052 => 175053)
--- trunk/LayoutTests/ChangeLog 2014-10-22 16:56:36 UTC (rev 175052)
+++ trunk/LayoutTests/ChangeLog 2014-10-22 17:16:44 UTC (rev 175053)
@@ -1,3 +1,21 @@
+2014-10-22 Shivakumar JM <[email protected]>
+
+ XMLHttpRequest should support attribute responseURL as per latest XHR spec.
+ https://bugs.webkit.org/show_bug.cgi?id=136938
+
+ Reviewed by Alexey Proskuryakov.
+
+ Added test to check responseURL attribute in XMLHttpRequest.
+
+ * http/tests/xmlhttprequest/basic-auth-responseURL-expected.txt: Added.
+ * http/tests/xmlhttprequest/basic-auth-responseURL.html: Added.
+ * http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt: Added.
+ * http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html: Added.
+ * http/tests/xmlhttprequest/redirect-credentials-responseURL-expected.txt: Added.
+ * http/tests/xmlhttprequest/redirect-credentials-responseURL.html: Added.
+ * http/tests/xmlhttprequest/xmlhttprequest-responseURL-expected.txt: Added.
+ * http/tests/xmlhttprequest/xmlhttprequest-responseURL.html: Added.
+
2014-10-22 Carlos Garcia Campos <[email protected]>
[GStreamer] Do not use CachedResourceLoader, SecurityOrigin, ResourceBuffer and other WebCore types
Added: trunk/LayoutTests/http/tests/xmlhttprequest/basic-auth-responseURL-expected.txt (0 => 175053)
--- trunk/LayoutTests/http/tests/xmlhttprequest/basic-auth-responseURL-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/basic-auth-responseURL-expected.txt 2014-10-22 17:16:44 UTC (rev 175053)
@@ -0,0 +1,18 @@
+Test XMLHttpRequest responseURL.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+req.readyState = 0: responseURL =
+PASS req.responseURL is ""
+req.readyState = 1: responseURL =
+PASS req.responseURL is ""
+req.readyState = 1: responseURL =
+PASS req.responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth/basic-auth.php?uid=async
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth/basic-auth.php?uid=async
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth/basic-auth.php?uid=async
+PASS req.responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth/basic-auth.php?uid=async"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/http/tests/xmlhttprequest/basic-auth-responseURL.html (0 => 175053)
--- trunk/LayoutTests/http/tests/xmlhttprequest/basic-auth-responseURL.html (rev 0)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/basic-auth-responseURL.html 2014-10-22 17:16:44 UTC (rev 175053)
@@ -0,0 +1,33 @@
+<html>
+<body>
+<script src=""
+<div id="description"></div>
+<div id="console"></div>
+<script type="text/_javascript_">
+description("Test XMLHttpRequest responseURL.");
+window.jsTestIsAsync = true;
+
+//async
+req = new XMLHttpRequest;
+debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+shouldBeEqualToString('req.responseURL', '');
+req.open("GET", "resources/basic-auth/basic-auth.php?uid=async", true, "async", "123");
+debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+shouldBeEqualToString('req.responseURL', '');
+req._onreadystatechange_ = processStateChange;
+req.send("");
+debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+shouldBeEqualToString('req.responseURL', '');
+
+function processStateChange() {
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+
+ if (req.readyState == 4) {
+ shouldBeEqualToString('req.responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth/basic-auth.php?uid=async');
+ finishJSTest();
+ }
+}
+
+</script>
+</body>
+</html>
Added: trunk/LayoutTests/http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt (0 => 175053)
--- trunk/LayoutTests/http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt 2014-10-22 17:16:44 UTC (rev 175053)
@@ -0,0 +1,49 @@
+Test XMLHttpRequest responseURL.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect-cors.php
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/redirect-cors.php
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/redirect-cors.php"
+req.readyState = 1: responseURL =
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html (0 => 175053)
--- trunk/LayoutTests/http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html (rev 0)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html 2014-10-22 17:16:44 UTC (rev 175053)
@@ -0,0 +1,63 @@
+<html>
+<head></head>
+<body>
+<script src=""
+<script>
+
+description('Test XMLHttpRequest responseURL.');
+
+window.jsTestIsAsync = true;
+
+function runTest(url, type) {
+ return new Promise(function(resolve, reject) {
+ var req = new XMLHttpRequest();
+ window.responseURL = req.responseURL;
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ shouldBeEqualToString('responseURL', '');
+
+ req.open('GET', url);
+ req.responseType = type;
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', '');
+
+ req._onreadystatechange_ = function() {
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ if (req.readyState == req.DONE)
+ resolve(req);
+ }
+
+ req.send();
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', '');
+ });
+}
+
+runTest('resources/redirect.php?url="" 'text').then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+
+ return runTest('resources/redirect.php?url="" 'document');
+}).then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+
+ return runTest('resources/redirect.php?url="" 'text');
+}).then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/redirect.php?url=""
+
+ return runTest('resources/redirect-cors.php', 'text');
+}).then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/redirect-cors.php');
+
+ req.open('GET', 'http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt');
+}).catch(function(reason) {
+ testFailed(String(reason));
+}).then(finishJSTest, finishJSTest);
+
+</script>
+</body>
+</html>
Added: trunk/LayoutTests/http/tests/xmlhttprequest/redirect-credentials-responseURL-expected.txt (0 => 175053)
--- trunk/LayoutTests/http/tests/xmlhttprequest/redirect-credentials-responseURL-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/redirect-credentials-responseURL-expected.txt 2014-10-22 17:16:44 UTC (rev 175053)
@@ -0,0 +1,30 @@
+Test XMLHttpRequest responseURL.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir1/basic-auth.php
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir1/basic-auth.php
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir1/basic-auth.php
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir1/basic-auth.php"
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir2/basic-auth.php
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir2/basic-auth.php
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir2/basic-auth.php
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir2/basic-auth.php"
+req.readyState = 1: responseURL =
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/http/tests/xmlhttprequest/redirect-credentials-responseURL.html (0 => 175053)
--- trunk/LayoutTests/http/tests/xmlhttprequest/redirect-credentials-responseURL.html (rev 0)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/redirect-credentials-responseURL.html 2014-10-22 17:16:44 UTC (rev 175053)
@@ -0,0 +1,53 @@
+<html>
+<head></head>
+<body>
+<script src=""
+<script>
+
+description('Test XMLHttpRequest responseURL.');
+
+window.jsTestIsAsync = true;
+
+function runTest(url, type, async, user, pwd) {
+ return new Promise(function(resolve, reject) {
+ var req = new XMLHttpRequest();
+ window.responseURL = req.responseURL;
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ shouldBeEqualToString('responseURL', '');
+
+ req.open('GET', url, async, user, pwd);
+ req.responseType = type;
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', '');
+
+ req._onreadystatechange_ = function() {
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ if (req.readyState == req.DONE)
+ resolve(req);
+ }
+
+ req.send();
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', '');
+ });
+}
+
+runTest('resources/basic-auth-default/dir1/basic-auth.php', true, "test", "test", 'text').then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir1/basic-auth.php');
+
+ return runTest('resources/basic-auth-default/dir2/basic-auth.php', true, 'text');
+}).then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/basic-auth-default/dir2/basic-auth.php');
+
+ req.open('GET', 'http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt');
+}).catch(function(reason) {
+ testFailed(String(reason));
+}).then(finishJSTest, finishJSTest);
+
+</script>
+</body>
+</html>
Added: trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-responseURL-expected.txt (0 => 175053)
--- trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-responseURL-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-responseURL-expected.txt 2014-10-22 17:16:44 UTC (rev 175053)
@@ -0,0 +1,70 @@
+Test XMLHttpRequest responseURL.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/reply.txt
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/reply.txt
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/reply.txt
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/reply.txt"
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/reply.xml
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/reply.xml
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/reply.xml
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/reply.xml"
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt"
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/cross-site-progress-events.cgi
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/cross-site-progress-events.cgi
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/cross-site-progress-events.cgi
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/cross-site-progress-events.cgi"
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/network-simulator.php?command=connect/
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/network-simulator.php?command=connect/
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/network-simulator.php?command=connect/
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/network-simulator.php?command=connect/"
+req.readyState = 0: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 1: responseURL =
+PASS responseURL is ""
+req.readyState = 2: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/supported-xml-content-types.cgi?type=foo
+req.readyState = 3: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/supported-xml-content-types.cgi?type=foo
+req.readyState = 4: responseURL = http://127.0.0.1:8000/xmlhttprequest/resources/supported-xml-content-types.cgi?type=foo
+PASS responseURL is "http://127.0.0.1:8000/xmlhttprequest/resources/supported-xml-content-types.cgi?type=foo"
+req.readyState = 1: responseURL =
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-responseURL.html (0 => 175053)
--- trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-responseURL.html (rev 0)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-responseURL.html 2014-10-22 17:16:44 UTC (rev 175053)
@@ -0,0 +1,73 @@
+<html>
+<head></head>
+<body>
+<script src=""
+<script>
+
+description('Test XMLHttpRequest responseURL.');
+
+window.jsTestIsAsync = true;
+
+function runTest(url, type) {
+ return new Promise(function(resolve, reject) {
+ var req = new XMLHttpRequest();
+ window.responseURL = req.responseURL;
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ shouldBeEqualToString('responseURL', '');
+
+ req.open('GET', url);
+ req.responseType = type;
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', '');
+
+ req._onreadystatechange_ = function() {
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ if (req.readyState == req.DONE)
+ resolve(req);
+ }
+
+ req.send();
+ debug('req.readyState = ' + req.readyState + ': responseURL = ' + req.responseURL);
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', '');
+ });
+}
+
+runTest('resources/reply.txt', 'text').then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/reply.txt');
+
+ return runTest('resources/redirect_methods.php?url="" 'document');
+}).then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/reply.xml');
+
+ return runTest('resources/redirect_methods.php?url="" 'text');
+}).then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt');
+
+ return runTest('resources/cross-site-progress-events.cgi', 'text');
+}).then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/cross-site-progress-events.cgi');
+
+ return runTest('resources/network-simulator.php?command=connect/', 'text');
+}).then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/network-simulator.php?command=connect/');
+
+ return runTest("resources/supported-xml-content-types.cgi?type=foo#bar/baz+xml", 'xml');
+}).then(function(req) {
+ window.responseURL = req.responseURL;
+ shouldBeEqualToString('responseURL', 'http://127.0.0.1:8000/xmlhttprequest/resources/supported-xml-content-types.cgi?type=foo');
+
+ req.open('GET', 'http://127.0.0.1:8000/xmlhttprequest/resources/not-found.txt');
+}).catch(function(reason) {
+ testFailed(String(reason));
+}).then(finishJSTest, finishJSTest);
+
+</script>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (175052 => 175053)
--- trunk/Source/WebCore/ChangeLog 2014-10-22 16:56:36 UTC (rev 175052)
+++ trunk/Source/WebCore/ChangeLog 2014-10-22 17:16:44 UTC (rev 175053)
@@ -1,3 +1,22 @@
+2014-10-22 Shivakumar JM <[email protected]>
+
+ XMLHttpRequest should support attribute responseURL as per latest XHR spec.
+ https://bugs.webkit.org/show_bug.cgi?id=136938
+
+ Reviewed by Alexey Proskuryakov.
+
+ Tests: http/tests/xmlhttprequest/basic-auth-responseURL.html
+ http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html
+ http/tests/xmlhttprequest/redirect-credentials-responseURL.html
+ http/tests/xmlhttprequest/xmlhttprequest-responseURL.html
+
+ XMLHttpRequest should support attribute responseURL
+
+ * xml/XMLHttpRequest.cpp:
+ (WebCore::XMLHttpRequest::responseURL):
+ * xml/XMLHttpRequest.h:
+ * xml/XMLHttpRequest.idl:
+
2014-10-22 Chris Dumez <[email protected]>
Add initial support for generating the StyleBuilder from CSSPropertyNames.in
Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (175052 => 175053)
--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp 2014-10-22 16:56:36 UTC (rev 175052)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp 2014-10-22 17:16:44 UTC (rev 175053)
@@ -335,6 +335,14 @@
return "";
}
+String XMLHttpRequest::responseURL() const
+{
+ URL responseURL(m_response.url());
+ responseURL.removeFragmentIdentifier();
+
+ return responseURL.string();
+}
+
void XMLHttpRequest::setLastSendLineAndColumnNumber(unsigned lineNumber, unsigned columnNumber)
{
m_lastSendLineNumber = lineNumber;
Modified: trunk/Source/WebCore/xml/XMLHttpRequest.h (175052 => 175053)
--- trunk/Source/WebCore/xml/XMLHttpRequest.h 2014-10-22 16:56:36 UTC (rev 175052)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.h 2014-10-22 17:16:44 UTC (rev 175053)
@@ -132,6 +132,8 @@
String responseType();
ResponseTypeCode responseTypeCode() const { return m_responseTypeCode; }
+ String responseURL() const;
+
// response attribute has custom getter.
JSC::ArrayBuffer* responseArrayBuffer();
JSC::ArrayBuffer* optionalResponseArrayBuffer() const { return m_responseArrayBuffer.get(); }
Modified: trunk/Source/WebCore/xml/XMLHttpRequest.idl (175052 => 175053)
--- trunk/Source/WebCore/xml/XMLHttpRequest.idl 2014-10-22 16:56:36 UTC (rev 175052)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.idl 2014-10-22 17:16:44 UTC (rev 175053)
@@ -89,6 +89,7 @@
readonly attribute unsigned short status;
readonly attribute DOMString statusText;
+ readonly attribute DOMString responseURL;
// Extension
[RaisesException] void overrideMimeType(DOMString override);