diff --git a/mozilla/docshell/base/nsDocShell.cpp b/mozilla/docshell/base/nsDocShell.cpp index f3eea2c3668..1ff8df78464 100644 --- a/mozilla/docshell/base/nsDocShell.cpp +++ b/mozilla/docshell/base/nsDocShell.cpp @@ -2767,12 +2767,11 @@ nsDocShell::LoadURI(const PRUnichar * aURI, if (NS_FAILED(rv) || !uri) return NS_ERROR_FAILURE; - // Don't pass the fixup flag to MAKE_LOAD_TYPE, since it isn't needed and - // confuses ConvertLoadTypeToDocShellLoadInfo. We do need to ensure that - // it is passed to LoadURI though, since it uses it to determine whether it - // can do fixup. - PRUint32 fixupFlag = (aLoadFlags & LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP); - aLoadFlags &= ~LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP; + // Don't pass certain flags that aren't needed and end up confusing + // ConvertLoadTypeToDocShellLoadInfo. We do need to ensure that they are + // passed to LoadURI though, since it uses them. + PRUint32 extraFlags = (aLoadFlags & EXTRA_LOAD_FLAGS); + aLoadFlags &= ~EXTRA_LOAD_FLAGS; nsCOMPtr loadInfo; rv = CreateLoadInfo(getter_AddRefs(loadInfo)); @@ -2784,7 +2783,7 @@ nsDocShell::LoadURI(const PRUnichar * aURI, loadInfo->SetReferrer(aReferringURI); loadInfo->SetHeadersStream(aHeaderStream); - rv = LoadURI(uri, loadInfo, fixupFlag, PR_TRUE); + rv = LoadURI(uri, loadInfo, extraFlags, PR_TRUE); return rv; } diff --git a/mozilla/docshell/base/nsDocShellLoadTypes.h b/mozilla/docshell/base/nsDocShellLoadTypes.h index f236b61df40..173daf7a05a 100644 --- a/mozilla/docshell/base/nsDocShellLoadTypes.h +++ b/mozilla/docshell/base/nsDocShellLoadTypes.h @@ -55,6 +55,13 @@ #define MAKE_LOAD_TYPE(type, flags) ((type) | ((flags) << 16)) #define LOAD_TYPE_HAS_FLAGS(type, flags) ((type) & ((flags) << 16)) +/** + * These are flags that confuse ConvertLoadTypeToDocShellLoadInfo and should not + * be passed to MAKE_LOAD_TYPE. + */ +#define EXTRA_LOAD_FLAGS (LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP | \ + LOAD_FLAGS_FIRST_LOAD) + /* load types are legal combinations of load commands and flags * * NOTE: