mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 906190 - Persist 'disable protection' option for Mixed Content Blocker in child tabs. r=smaug
This commit is contained in:
parent
7735e6d857
commit
755129a344
@ -264,6 +264,9 @@ LogShellLoadType(nsIDocShell* aDocShell)
|
||||
case LOAD_NORMAL_BYPASS_PROXY_AND_CACHE:
|
||||
printf("normal bypass proxy and cache; ");
|
||||
break;
|
||||
case LOAD_NORMAL_ALLOW_MIXED_CONTENT:
|
||||
printf("normal allow mixed content; ");
|
||||
break;
|
||||
case LOAD_RELOAD_NORMAL:
|
||||
printf("reload normal; ");
|
||||
break;
|
||||
|
@ -649,6 +649,7 @@ ConvertLoadTypeToNavigationType(uint32_t aLoadType)
|
||||
case LOAD_NORMAL_BYPASS_PROXY:
|
||||
case LOAD_NORMAL_BYPASS_PROXY_AND_CACHE:
|
||||
case LOAD_NORMAL_REPLACE:
|
||||
case LOAD_NORMAL_ALLOW_MIXED_CONTENT:
|
||||
case LOAD_LINK:
|
||||
case LOAD_STOP_CONTENT:
|
||||
case LOAD_REPLACE_BYPASS_CACHE:
|
||||
@ -1111,6 +1112,9 @@ ConvertDocShellLoadInfoToLoadType(nsDocShellInfoLoadType aDocShellLoadType)
|
||||
case nsIDocShellLoadInfo::loadNormalBypassProxyAndCache:
|
||||
loadType = LOAD_NORMAL_BYPASS_PROXY_AND_CACHE;
|
||||
break;
|
||||
case nsIDocShellLoadInfo::loadNormalAllowMixedContent:
|
||||
loadType = LOAD_NORMAL_ALLOW_MIXED_CONTENT;
|
||||
break;
|
||||
case nsIDocShellLoadInfo::loadReloadNormal:
|
||||
loadType = LOAD_RELOAD_NORMAL;
|
||||
break;
|
||||
@ -1181,6 +1185,9 @@ nsDocShell::ConvertLoadTypeToDocShellLoadInfo(uint32_t aLoadType)
|
||||
case LOAD_NORMAL_BYPASS_PROXY_AND_CACHE:
|
||||
docShellLoadType = nsIDocShellLoadInfo::loadNormalBypassProxyAndCache;
|
||||
break;
|
||||
case LOAD_NORMAL_ALLOW_MIXED_CONTENT:
|
||||
docShellLoadType = nsIDocShellLoadInfo::loadNormalAllowMixedContent;
|
||||
break;
|
||||
case LOAD_HISTORY:
|
||||
docShellLoadType = nsIDocShellLoadInfo::loadHistory;
|
||||
break;
|
||||
@ -4175,7 +4182,17 @@ nsDocShell::LoadURI(const PRUnichar * aURI,
|
||||
rv = CreateLoadInfo(getter_AddRefs(loadInfo));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
uint32_t loadType = MAKE_LOAD_TYPE(LOAD_NORMAL, aLoadFlags);
|
||||
/*
|
||||
* If the user "Disables Protection on This Page", we have to make sure to
|
||||
* remember the users decision when opening links in child tabs [Bug 906190]
|
||||
*/
|
||||
uint32_t loadType;
|
||||
if (aLoadFlags & LOAD_FLAGS_ALLOW_MIXED_CONTENT) {
|
||||
loadType = MAKE_LOAD_TYPE(LOAD_NORMAL_ALLOW_MIXED_CONTENT, aLoadFlags);
|
||||
} else {
|
||||
loadType = MAKE_LOAD_TYPE(LOAD_NORMAL, aLoadFlags);
|
||||
}
|
||||
|
||||
loadInfo->SetLoadType(ConvertLoadTypeToDocShellLoadInfo(loadType));
|
||||
loadInfo->SetPostDataStream(postStream);
|
||||
loadInfo->SetReferrer(aReferringURI);
|
||||
@ -9664,7 +9681,8 @@ nsDocShell::DoURILoad(nsIURI * aURI,
|
||||
}
|
||||
}
|
||||
|
||||
if (mLoadType == LOAD_RELOAD_ALLOW_MIXED_CONTENT) {
|
||||
if (mLoadType == LOAD_NORMAL_ALLOW_MIXED_CONTENT ||
|
||||
mLoadType == LOAD_RELOAD_ALLOW_MIXED_CONTENT) {
|
||||
rv = SetMixedContentChannel(channel);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
} else if (mMixedContentChannel) {
|
||||
@ -9946,6 +9964,7 @@ nsresult nsDocShell::DoChannelLoad(nsIChannel * aChannel,
|
||||
case LOAD_NORMAL_BYPASS_CACHE:
|
||||
case LOAD_NORMAL_BYPASS_PROXY:
|
||||
case LOAD_NORMAL_BYPASS_PROXY_AND_CACHE:
|
||||
case LOAD_NORMAL_ALLOW_MIXED_CONTENT:
|
||||
case LOAD_RELOAD_BYPASS_CACHE:
|
||||
case LOAD_RELOAD_BYPASS_PROXY:
|
||||
case LOAD_RELOAD_BYPASS_PROXY_AND_CACHE:
|
||||
|
@ -733,7 +733,8 @@ protected:
|
||||
nsCOMPtr<nsIChannel> mFailedChannel;
|
||||
uint32_t mFailedLoadType;
|
||||
|
||||
// Set in DoURILoad when the LOAD_RELOAD_ALLOW_MIXED_CONTENT flag is set.
|
||||
// Set in DoURILoad when either the LOAD_RELOAD_ALLOW_MIXED_CONTENT flag or
|
||||
// the LOAD_NORMAL_ALLOW_MIXED_CONTENT flag is set.
|
||||
// Checked in nsMixedContentBlocker, to see if the channels match.
|
||||
nsCOMPtr<nsIChannel> mMixedContentChannel;
|
||||
|
||||
|
@ -48,6 +48,7 @@ enum LoadType {
|
||||
LOAD_NORMAL_BYPASS_CACHE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE),
|
||||
LOAD_NORMAL_BYPASS_PROXY = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY),
|
||||
LOAD_NORMAL_BYPASS_PROXY_AND_CACHE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE | nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY),
|
||||
LOAD_NORMAL_ALLOW_MIXED_CONTENT = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_ALLOW_MIXED_CONTENT | nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE),
|
||||
LOAD_RELOAD_NORMAL = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD, nsIWebNavigation::LOAD_FLAGS_NONE),
|
||||
LOAD_RELOAD_BYPASS_CACHE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE),
|
||||
LOAD_RELOAD_BYPASS_PROXY = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD, nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY),
|
||||
@ -80,6 +81,7 @@ static inline bool IsValidLoadType(uint32_t aLoadType)
|
||||
case LOAD_NORMAL_BYPASS_CACHE:
|
||||
case LOAD_NORMAL_BYPASS_PROXY:
|
||||
case LOAD_NORMAL_BYPASS_PROXY_AND_CACHE:
|
||||
case LOAD_NORMAL_ALLOW_MIXED_CONTENT:
|
||||
case LOAD_HISTORY:
|
||||
case LOAD_RELOAD_NORMAL:
|
||||
case LOAD_RELOAD_BYPASS_CACHE:
|
||||
|
@ -62,6 +62,7 @@ interface nsIDocShellLoadInfo : nsISupports
|
||||
const long loadPushState = 17; // history.pushState or replaceState
|
||||
const long loadReplaceBypassCache = 18;
|
||||
const long loadReloadMixedContent = 19;
|
||||
const long loadNormalAllowMixedContent = 20;
|
||||
|
||||
/** Contains a load type as specified by the load* constants */
|
||||
attribute nsDocShellInfoLoadType loadType;
|
||||
|
Loading…
Reference in New Issue
Block a user