diff --git a/dom/base/nsXMLHttpRequest.cpp b/dom/base/nsXMLHttpRequest.cpp index dbd0d69c7d1..c7d2869c756 100644 --- a/dom/base/nsXMLHttpRequest.cpp +++ b/dom/base/nsXMLHttpRequest.cpp @@ -3104,13 +3104,8 @@ nsXMLHttpRequest::SetRequestHeader(const nsACString& header, mergeHeaders = false; } - nsresult rv; - if (value.IsEmpty()) { - rv = httpChannel->SetEmptyRequestHeader(header); - } else { - // Merge headers depending on what we decided above. - rv = httpChannel->SetRequestHeader(header, value, mergeHeaders); - } + // Merge headers depending on what we decided above. + nsresult rv = httpChannel->SetRequestHeader(header, value, mergeHeaders); if (rv == NS_ERROR_INVALID_ARG) { return NS_ERROR_DOM_SYNTAX_ERR; } @@ -3451,13 +3446,9 @@ nsXMLHttpRequest::OnRedirectVerifyCallback(nsresult result) // Ensure all original headers are duplicated for the new channel (bug #553888) for (uint32_t i = mModifiedRequestHeaders.Length(); i > 0; ) { --i; - if (mModifiedRequestHeaders[i].value.IsEmpty()) { - httpChannel->SetEmptyRequestHeader(mModifiedRequestHeaders[i].header); - } else { - httpChannel->SetRequestHeader(mModifiedRequestHeaders[i].header, - mModifiedRequestHeaders[i].value, - false); - } + httpChannel->SetRequestHeader(mModifiedRequestHeaders[i].header, + mModifiedRequestHeaders[i].value, + false); } } } else { diff --git a/dom/workers/test/serviceworkers/fetch/fetch_tests.js b/dom/workers/test/serviceworkers/fetch/fetch_tests.js index 0a12c2941fb..c46bcff9b72 100644 --- a/dom/workers/test/serviceworkers/fetch/fetch_tests.js +++ b/dom/workers/test/serviceworkers/fetch/fetch_tests.js @@ -185,12 +185,6 @@ fetchXHR('redirect_serviceworker.sjs', function(xhr) { finish(); }); -fetchXHR('empty-header', function(xhr) { - my_ok(xhr.status == 200, "load should be successful"); - my_ok(xhr.responseText == "emptyheader", "load should have the expected content"); - finish(); -}, null, [["emptyheader", ""]]); - expectAsyncResult(); fetch('http://example.com/tests/dom/security/test/cors/file_CrossSiteXHR_server.sjs?status=200&allowOrigin=*') .then(function(res) { diff --git a/dom/workers/test/test_xhr_headers.html b/dom/workers/test/test_xhr_headers.html index 9786a15e4b5..bfafe12cf4a 100644 --- a/dom/workers/test/test_xhr_headers.html +++ b/dom/workers/test/test_xhr_headers.html @@ -31,7 +31,6 @@ info("Informing server about the current host"); var xhr = new XMLHttpRequest(); xhr.open("POST", path + serverFilename); xhr.setRequestHeader("options-host", otherHost); -xhr.setRequestHeader("empty", ""); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { info("Launching worker"); diff --git a/dom/workers/test/xhr_headers_server.sjs b/dom/workers/test/xhr_headers_server.sjs index 9a12fddfbb1..045c999b997 100644 --- a/dom/workers/test/xhr_headers_server.sjs +++ b/dom/workers/test/xhr_headers_server.sjs @@ -14,16 +14,9 @@ function handleRequest(request, response) { if (optionsHost) { setState("postHost", request.host); setState("optionsHost", optionsHost); + return; } - - try { - var emptyHeader = "nada" + request.getHeader("empty"); - } catch(e) { } - - if (emptyHeader && emptyHeader == "nada") { - setState("emptyHeader", "nada"); - } - return; + break; case "OPTIONS": if (getState("optionsHost") == request.host) { @@ -39,8 +32,7 @@ function handleRequest(request, response) { response.setHeader("Cache-Control", "no-cache", false); response.setHeader("Content-Type", "text/plain", false); - if (getState("postHost") == request.host && - getState("emptyHeader") == "nada") { + if (getState("postHost") == request.host) { var result = getState("optionsHeader"); if (result) { response.write("Success: expected OPTIONS request with " + result + diff --git a/testing/web-platform/meta/XMLHttpRequest/setrequestheader-allow-empty-value.htm.ini b/testing/web-platform/meta/XMLHttpRequest/setrequestheader-allow-empty-value.htm.ini new file mode 100644 index 00000000000..6ca1f1ba844 --- /dev/null +++ b/testing/web-platform/meta/XMLHttpRequest/setrequestheader-allow-empty-value.htm.ini @@ -0,0 +1,5 @@ +[setrequestheader-allow-empty-value.htm] + type: testharness + [XMLHttpRequest: setRequestHeader() - empty header ()] + expected: FAIL +