diff options
Diffstat (limited to 'caps')
-rw-r--r-- | caps/BasePrincipal.cpp | 7 | ||||
-rw-r--r-- | caps/nsPrincipal.cpp | 15 |
2 files changed, 15 insertions, 7 deletions
diff --git a/caps/BasePrincipal.cpp b/caps/BasePrincipal.cpp index b768d5c1f..93ffcf129 100644 --- a/caps/BasePrincipal.cpp +++ b/caps/BasePrincipal.cpp @@ -7,9 +7,6 @@ #include "mozilla/BasePrincipal.h" #include "nsDocShell.h" -#ifdef MOZ_CRASHREPORTER -#include "nsExceptionHandler.h" -#endif #include "nsIAddonPolicyService.h" #include "nsIContentSecurityPolicy.h" #include "nsIEffectiveTLDService.h" @@ -149,10 +146,6 @@ OriginAttributes::CreateSuffix(nsACString& aStr) const if (!mAddonId.IsEmpty()) { if (mAddonId.FindCharInSet(dom::quota::QuotaManager::kReplaceChars) != kNotFound) { -#ifdef MOZ_CRASHREPORTER - CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("Crash_AddonId"), - NS_ConvertUTF16toUTF8(mAddonId)); -#endif MOZ_CRASH(); } params->Set(NS_LITERAL_STRING("addonId"), mAddonId); diff --git a/caps/nsPrincipal.cpp b/caps/nsPrincipal.cpp index 4cb472369..f89061043 100644 --- a/caps/nsPrincipal.cpp +++ b/caps/nsPrincipal.cpp @@ -184,8 +184,23 @@ nsPrincipal::GetOriginForURI(nsIURI* aURI, nsACString& aOrigin) // origin string nsCOMPtr<nsIStandardURL> standardURL = do_QueryInterface(origin); NS_ENSURE_TRUE(standardURL, NS_ERROR_FAILURE); + rv = origin->GetAsciiSpec(aOrigin); NS_ENSURE_SUCCESS(rv, rv); + + // The origin, when taken from the spec, should not contain the ref part of + // the URL. + + int32_t pos = aOrigin.FindChar('?'); + int32_t hashPos = aOrigin.FindChar('#'); + + if (hashPos != kNotFound && (pos == kNotFound || hashPos < pos)) { + pos = hashPos; + } + + if (pos != kNotFound) { + aOrigin.Truncate(pos); + } } return NS_OK; |