Allow setting withCredentials in synchronous XMLHttpRequest

closes #10839
This commit is contained in:
Ramana Venkata 2016-04-26 13:41:36 +05:30
parent 09b2efc706
commit f56bd3a6f3
4 changed files with 3 additions and 24 deletions

View file

@ -369,8 +369,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
// Step 10 // Step 10
if !async { if !async {
// FIXME: This should only happen if the global environment is a document environment // FIXME: This should only happen if the global environment is a document environment
if self.timeout.get() != 0 || self.with_credentials.get() || if self.timeout.get() != 0 || self.response_type.get() != XMLHttpRequestResponseType::_empty {
self.response_type.get() != XMLHttpRequestResponseType::_empty {
return Err(Error::InvalidAccess) return Err(Error::InvalidAccess)
} }
} }
@ -507,8 +506,6 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
// Step 2 // Step 2
_ if self.send_flag.get() => Err(Error::InvalidState), _ if self.send_flag.get() => Err(Error::InvalidState),
// Step 3 // Step 3
_ if self.sync_in_window() => Err(Error::InvalidAccess),
// Step 4
_ => { _ => {
self.with_credentials.set(with_credentials); self.with_credentials.set(with_credentials);
Ok(()) Ok(())

View file

@ -1,5 +0,0 @@
[send-authentication-basic-cors-not-enabled.htm]
type: testharness
[XMLHttpRequest: send() - "Basic" authenticated CORS requests with user name and password passed to open() (asserts failure)]
expected: FAIL

View file

@ -16,15 +16,8 @@ function test_withCredentials(worker) {
test(function() { test(function() {
var client = new XMLHttpRequest() var client = new XMLHttpRequest()
client.open("GET", "resources/delay.py?ms=1000", false) client.open("GET", "resources/delay.py?ms=1000", false)
if (worker) { client.withCredentials = true
client.withCredentials = true assert_true(client.withCredentials, "set in OPEN state")
assert_true(client.withCredentials, "set in OPEN state")
} else {
assert_throws("InvalidAccessError", function() {
client.withCredentials = true
})
assert_false(client.withCredentials, "set in OPEN state")
}
}, "setting on synchronous XHR") }, "setting on synchronous XHR")
async_test(function() { async_test(function() {

View file

@ -17,12 +17,6 @@ var url = CROSSDOMAIN + 'resources/cors-cookie.py?ident='
* widthCredentials * widthCredentials
*/ */
// XXX Do some https tests here as well // XXX Do some https tests here as well
test(function () {
var client = new XMLHttpRequest()
client.open('GET', CROSSDOMAIN, false)
assert_throws(null, function() { client.withCredentials = true; }, 'setting withCredentials')
}, 'Setting withCredentials on a sync XHR object should throw')
async_test(function () { async_test(function () {
var id = new Date().getTime() + '_1', var id = new Date().getTime() + '_1',
client = new XMLHttpRequest() client = new XMLHttpRequest()