mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backed out changeset 2f4b5acae553 (bug 1184971) for causing OS X Memory Leaks
This commit is contained in:
parent
8114bfa085
commit
946afe94d0
@ -77,7 +77,6 @@
|
||||
#include "IHistory.h"
|
||||
#include "nsViewSourceHandler.h"
|
||||
#include "nsWhitespaceTokenizer.h"
|
||||
#include "nsICookieService.h"
|
||||
|
||||
// we want to explore making the document own the load group
|
||||
// so we can associate the document URI with the load group.
|
||||
@ -208,6 +207,10 @@
|
||||
#endif
|
||||
|
||||
#include "mozIThirdPartyUtil.h"
|
||||
// Values for the network.cookie.cookieBehavior pref are documented in
|
||||
// nsCookieService.cpp
|
||||
#define COOKIE_BEHAVIOR_ACCEPT 0 // Allow all cookies.
|
||||
#define COOKIE_BEHAVIOR_REJECT_FOREIGN 1 // Reject all third-party cookies.
|
||||
|
||||
static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID);
|
||||
|
||||
@ -14084,8 +14087,8 @@ nsDocShell::ShouldPrepareForIntercept(nsIURI* aURI, bool aIsNavigate,
|
||||
NS_ENSURE_SUCCESS(result, result);
|
||||
if (isThirdPartyURI &&
|
||||
(Preferences::GetInt("network.cookie.cookieBehavior",
|
||||
nsICookieService::BEHAVIOR_ACCEPT) ==
|
||||
nsICookieService::BEHAVIOR_REJECT_FOREIGN)) {
|
||||
COOKIE_BEHAVIOR_ACCEPT) ==
|
||||
COOKIE_BEHAVIOR_REJECT_FOREIGN)) {
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,6 @@
|
||||
#include "nsIPermissionManager.h"
|
||||
#include "nsIPrincipal.h"
|
||||
#include "nsICookiePermission.h"
|
||||
#include "nsICookieService.h"
|
||||
|
||||
#include "mozilla/dom/StorageBinding.h"
|
||||
#include "mozilla/dom/StorageEvent.h"
|
||||
@ -229,6 +228,10 @@ DOMStorage::BroadcastChangeNotification(const nsSubstring& aKey,
|
||||
NS_DispatchToMainThread(r);
|
||||
}
|
||||
|
||||
static const uint32_t ASK_BEFORE_ACCEPT = 1;
|
||||
static const uint32_t ACCEPT_SESSION = 2;
|
||||
static const uint32_t BEHAVIOR_REJECT = 2;
|
||||
|
||||
static const char kPermissionType[] = "cookie";
|
||||
static const char kStorageEnabled[] = "dom.storage.enabled";
|
||||
static const char kCookiesBehavior[] = "network.cookie.cookieBehavior";
|
||||
@ -279,12 +282,11 @@ DOMStorage::CanUseStorage(DOMStorage* aStorage)
|
||||
uint32_t lifetimePolicy = Preferences::GetUint(kCookiesLifetimePolicy);
|
||||
|
||||
// Treat "ask every time" as "reject always".
|
||||
if (cookieBehavior == nsICookieService::BEHAVIOR_REJECT ||
|
||||
lifetimePolicy == nsICookieService::ASK_BEFORE_ACCEPT) {
|
||||
if ((cookieBehavior == BEHAVIOR_REJECT || lifetimePolicy == ASK_BEFORE_ACCEPT)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (lifetimePolicy == nsICookieService::ACCEPT_SESSION && aStorage) {
|
||||
if (lifetimePolicy == ACCEPT_SESSION && aStorage) {
|
||||
aStorage->mIsSessionOnly = true;
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,12 @@ using namespace mozilla::ipc;
|
||||
namespace mozilla {
|
||||
namespace net {
|
||||
|
||||
// Behavior pref constants
|
||||
static const int32_t BEHAVIOR_ACCEPT = 0;
|
||||
static const int32_t BEHAVIOR_REJECTFOREIGN = 1;
|
||||
// static const int32_t BEHAVIOR_REJECT = 2;
|
||||
static const int32_t BEHAVIOR_LIMITFOREIGN = 3;
|
||||
|
||||
// Pref string constants
|
||||
static const char kPrefCookieBehavior[] = "network.cookie.cookieBehavior";
|
||||
static const char kPrefThirdPartySession[] =
|
||||
@ -40,7 +46,7 @@ NS_IMPL_ISUPPORTS(CookieServiceChild,
|
||||
nsISupportsWeakReference)
|
||||
|
||||
CookieServiceChild::CookieServiceChild()
|
||||
: mCookieBehavior(nsICookieService::BEHAVIOR_ACCEPT)
|
||||
: mCookieBehavior(BEHAVIOR_ACCEPT)
|
||||
, mThirdPartySession(false)
|
||||
{
|
||||
NS_ASSERTION(IsNeckoChild(), "not a child process");
|
||||
@ -74,9 +80,7 @@ CookieServiceChild::PrefChanged(nsIPrefBranch *aPrefBranch)
|
||||
int32_t val;
|
||||
if (NS_SUCCEEDED(aPrefBranch->GetIntPref(kPrefCookieBehavior, &val)))
|
||||
mCookieBehavior =
|
||||
val >= nsICookieService::BEHAVIOR_ACCEPT &&
|
||||
val <= nsICookieService::BEHAVIOR_LIMIT_FOREIGN
|
||||
? val : nsICookieService::BEHAVIOR_ACCEPT;
|
||||
val >= BEHAVIOR_ACCEPT && val <= BEHAVIOR_LIMITFOREIGN ? val : BEHAVIOR_ACCEPT;
|
||||
|
||||
bool boolval;
|
||||
if (NS_SUCCEEDED(aPrefBranch->GetBoolPref(kPrefThirdPartySession, &boolval)))
|
||||
@ -91,9 +95,7 @@ CookieServiceChild::PrefChanged(nsIPrefBranch *aPrefBranch)
|
||||
bool
|
||||
CookieServiceChild::RequireThirdPartyCheck()
|
||||
{
|
||||
return mCookieBehavior == nsICookieService::BEHAVIOR_REJECT_FOREIGN ||
|
||||
mCookieBehavior == nsICookieService::BEHAVIOR_LIMIT_FOREIGN ||
|
||||
mThirdPartySession;
|
||||
return mCookieBehavior == BEHAVIOR_REJECTFOREIGN || mCookieBehavior == BEHAVIOR_LIMITFOREIGN || mThirdPartySession;
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -109,6 +109,13 @@ static const uint32_t kMaxCookiesPerHost = 150;
|
||||
static const uint32_t kMaxBytesPerCookie = 4096;
|
||||
static const uint32_t kMaxBytesPerPath = 1024;
|
||||
|
||||
// behavior pref constants
|
||||
static const uint32_t BEHAVIOR_ACCEPT = 0; // allow all cookies
|
||||
static const uint32_t BEHAVIOR_REJECTFOREIGN = 1; // reject all third-party cookies
|
||||
static const uint32_t BEHAVIOR_REJECT = 2; // reject all cookies
|
||||
static const uint32_t BEHAVIOR_LIMITFOREIGN = 3; // reject third-party cookies unless the
|
||||
// eTLD already has at least one cookie
|
||||
|
||||
// pref string constants
|
||||
static const char kPrefCookieBehavior[] = "network.cookie.cookieBehavior";
|
||||
static const char kPrefMaxNumberOfCookies[] = "network.cookie.maxNumber";
|
||||
@ -704,7 +711,7 @@ NS_IMPL_ISUPPORTS(nsCookieService,
|
||||
|
||||
nsCookieService::nsCookieService()
|
||||
: mDBState(nullptr)
|
||||
, mCookieBehavior(nsICookieService::BEHAVIOR_ACCEPT)
|
||||
, mCookieBehavior(BEHAVIOR_ACCEPT)
|
||||
, mThirdPartySession(false)
|
||||
, mMaxNumberOfCookies(kMaxNumberOfCookies)
|
||||
, mMaxCookiesPerHost(kMaxCookiesPerHost)
|
||||
@ -3483,22 +3490,22 @@ nsCookieService::CheckPrefs(nsIURI *aHostURI,
|
||||
}
|
||||
|
||||
// check default prefs
|
||||
if (mCookieBehavior == nsICookieService::BEHAVIOR_REJECT) {
|
||||
if (mCookieBehavior == BEHAVIOR_REJECT) {
|
||||
COOKIE_LOGFAILURE(aCookieHeader ? SET_COOKIE : GET_COOKIE, aHostURI, aCookieHeader, "cookies are disabled");
|
||||
return STATUS_REJECTED;
|
||||
}
|
||||
|
||||
// check if cookie is foreign
|
||||
if (aIsForeign) {
|
||||
if (mCookieBehavior == nsICookieService::BEHAVIOR_ACCEPT && mThirdPartySession)
|
||||
if (mCookieBehavior == BEHAVIOR_ACCEPT && mThirdPartySession)
|
||||
return STATUS_ACCEPT_SESSION;
|
||||
|
||||
if (mCookieBehavior == nsICookieService::BEHAVIOR_REJECT_FOREIGN) {
|
||||
if (mCookieBehavior == BEHAVIOR_REJECTFOREIGN) {
|
||||
COOKIE_LOGFAILURE(aCookieHeader ? SET_COOKIE : GET_COOKIE, aHostURI, aCookieHeader, "context is third party");
|
||||
return STATUS_REJECTED;
|
||||
}
|
||||
|
||||
if (mCookieBehavior == nsICookieService::BEHAVIOR_LIMIT_FOREIGN) {
|
||||
if (mCookieBehavior == BEHAVIOR_LIMITFOREIGN) {
|
||||
uint32_t priorCookieCount = 0;
|
||||
nsAutoCString hostFromURI;
|
||||
aHostURI->GetHost(hostFromURI);
|
||||
|
@ -71,26 +71,9 @@ interface nsIChannel;
|
||||
* to set the cookie.
|
||||
* data : the referrer, or "?" if unknown
|
||||
*/
|
||||
[scriptable, uuid(f5807c53-de48-461a-8117-bd156bc2dcf0)]
|
||||
[scriptable, uuid(2aaa897a-293c-4d2b-a657-8c9b7136996d)]
|
||||
interface nsICookieService : nsISupports
|
||||
{
|
||||
/*
|
||||
* Possible values for the "network.cookie.cookieBehavior" preference.
|
||||
*/
|
||||
const uint32_t BEHAVIOR_ACCEPT = 0; // allow all cookies
|
||||
const uint32_t BEHAVIOR_REJECT_FOREIGN = 1; // reject all third-party cookies
|
||||
const uint32_t BEHAVIOR_REJECT = 2; // reject all cookies
|
||||
const uint32_t BEHAVIOR_LIMIT_FOREIGN = 3; // reject third-party cookies unless the
|
||||
// eTLD already has at least one cookie
|
||||
|
||||
/*
|
||||
* Possible values for the "network.cookie.lifetimePolicy" preference.
|
||||
*/
|
||||
const uint32_t ACCEPT_NORMALLY = 0; // accept normally
|
||||
const uint32_t ASK_BEFORE_ACCEPT = 1; // ask before accepting
|
||||
const uint32_t ACCEPT_SESSION = 2; // downgrade to session
|
||||
const uint32_t ACCEPT_FOR_N_DAYS = 3; // limit lifetime to N days
|
||||
|
||||
/*
|
||||
* Get the complete cookie string associated with the URI.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user