mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-10 01:08:21 +00:00
Bug 1365478 - Use BoolVarCache to cache preferences in XMLHttpRequest, r=baku
This commit is contained in:
parent
fa3e172e3c
commit
b96a934bb0
@ -2948,7 +2948,7 @@ XMLHttpRequestMainThread::SendInternal(const BodyExtractorBase* aBody)
|
||||
|
||||
mIsMappedArrayBuffer = false;
|
||||
if (mResponseType == XMLHttpRequestResponseType::Arraybuffer &&
|
||||
Preferences::GetBool("dom.mapped_arraybuffer.enabled", true)) {
|
||||
IsMappedArrayBufferEnabled()) {
|
||||
nsCOMPtr<nsIURI> uri;
|
||||
nsAutoCString scheme;
|
||||
|
||||
@ -3049,6 +3049,40 @@ XMLHttpRequestMainThread::SendInternal(const BodyExtractorBase* aBody)
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* static */
|
||||
bool
|
||||
XMLHttpRequestMainThread::IsMappedArrayBufferEnabled()
|
||||
{
|
||||
static bool sMappedArrayBufferAdded = false;
|
||||
static bool sIsMappedArrayBufferEnabled;
|
||||
|
||||
if (!sMappedArrayBufferAdded) {
|
||||
Preferences::AddBoolVarCache(&sIsMappedArrayBufferEnabled,
|
||||
"dom.mapped_arraybuffer.enabled",
|
||||
true);
|
||||
sMappedArrayBufferAdded = true;
|
||||
}
|
||||
|
||||
return sIsMappedArrayBufferEnabled;
|
||||
}
|
||||
|
||||
/* static */
|
||||
bool
|
||||
XMLHttpRequestMainThread::IsLowercaseResponseHeader()
|
||||
{
|
||||
static bool sLowercaseResponseHeaderAdded = false;
|
||||
static bool sIsLowercaseResponseHeaderEnabled;
|
||||
|
||||
if (!sLowercaseResponseHeaderAdded) {
|
||||
Preferences::AddBoolVarCache(&sIsLowercaseResponseHeaderEnabled,
|
||||
"dom.xhr.lowercase_header.enabled",
|
||||
false);
|
||||
sLowercaseResponseHeaderAdded = true;
|
||||
}
|
||||
|
||||
return sIsLowercaseResponseHeaderEnabled;
|
||||
}
|
||||
|
||||
// http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#dom-xmlhttprequest-setrequestheader
|
||||
NS_IMETHODIMP
|
||||
XMLHttpRequestMainThread::SetRequestHeader(const nsACString& aName,
|
||||
@ -3767,7 +3801,7 @@ NS_IMETHODIMP XMLHttpRequestMainThread::
|
||||
nsHeaderVisitor::VisitHeader(const nsACString &header, const nsACString &value)
|
||||
{
|
||||
if (mXHR.IsSafeHeader(header, mHttpChannel)) {
|
||||
if (!Preferences::GetBool("dom.xhr.lowercase_header.enabled", false)) {
|
||||
if (!IsLowercaseResponseHeader()) {
|
||||
if(!mHeaderList.InsertElementSorted(HeaderEntry(header, value),
|
||||
fallible)) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
@ -306,6 +306,14 @@ private:
|
||||
|
||||
void UnsuppressEventHandlingAndResume();
|
||||
|
||||
// Check pref "dom.mapped_arraybuffer.enabled" to make sure ArrayBuffer is
|
||||
// supported.
|
||||
static bool IsMappedArrayBufferEnabled();
|
||||
|
||||
// Check pref "dom.xhr.lowercase_header.enabled" to make sure lowercased
|
||||
// response header is supported.
|
||||
static bool IsLowercaseResponseHeader();
|
||||
|
||||
public:
|
||||
virtual void
|
||||
Send(JSContext* /*aCx*/, ErrorResult& aRv) override
|
||||
|
Loading…
x
Reference in New Issue
Block a user