зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1176988 - Patch 2 - Remove XHR cache bypass in cast of POST request. r=jdm
--HG-- extra : commitid : H3p5Ob7Kc6K extra : rebase_source : dc7765152a8ca8302114e130c1de001c811b55bd
This commit is contained in:
Родитель
34c0975909
Коммит
ff13bc820b
|
@ -2875,26 +2875,22 @@ nsXMLHttpRequest::Send(nsIVariant* aVariant, const Nullable<RequestBody>& aBody)
|
|||
NS_ASSERTION(listener != this,
|
||||
"Using an object as a listener that can't be exposed to JS");
|
||||
|
||||
// Bypass the network cache in cases where it makes no sense:
|
||||
// POST responses are always unique, and we provide no API that would
|
||||
// allow our consumers to specify a "cache key" to access old POST
|
||||
// responses, so they are not worth caching.
|
||||
if (method.EqualsLiteral("POST")) {
|
||||
AddLoadFlags(mChannel,
|
||||
nsIRequest::LOAD_BYPASS_CACHE | nsIRequest::INHIBIT_CACHING);
|
||||
} else {
|
||||
// When we are sync loading, we need to bypass the local cache when it would
|
||||
// otherwise block us waiting for exclusive access to the cache. If we don't
|
||||
// do this, then we could dead lock in some cases (see bug 309424).
|
||||
//
|
||||
// Also don't block on the cache entry on async if it is busy - favoring parallelism
|
||||
// over cache hit rate for xhr. This does not disable the cache everywhere -
|
||||
// only in cases where more than one channel for the same URI is accessed
|
||||
// simultanously.
|
||||
// When we are sync loading, we need to bypass the local cache when it would
|
||||
// otherwise block us waiting for exclusive access to the cache. If we don't
|
||||
// do this, then we could dead lock in some cases (see bug 309424).
|
||||
//
|
||||
// Also don't block on the cache entry on async if it is busy - favoring parallelism
|
||||
// over cache hit rate for xhr. This does not disable the cache everywhere -
|
||||
// only in cases where more than one channel for the same URI is accessed
|
||||
// simultanously.
|
||||
|
||||
AddLoadFlags(mChannel,
|
||||
nsICachingChannel::LOAD_BYPASS_LOCAL_CACHE_IF_BUSY);
|
||||
}
|
||||
AddLoadFlags(mChannel,
|
||||
nsICachingChannel::LOAD_BYPASS_LOCAL_CACHE_IF_BUSY);
|
||||
|
||||
// While it would be optimal to bypass the cache in case of POST requests
|
||||
// since they are never cached, our ServiceWorker interception implementation
|
||||
// on single-process systems is implemented via the HTTP cache, so DO NOT
|
||||
// bypass the cache based on method!
|
||||
|
||||
// Since we expect XML data, set the type hint accordingly
|
||||
// if the channel doesn't know any content type.
|
||||
|
|
Загрузка…
Ссылка в новой задаче