diff options
Diffstat (limited to 'caps')
-rw-r--r-- | caps/moz.build | 5 | ||||
-rw-r--r-- | caps/nsJSPrincipals.cpp | 2 | ||||
-rw-r--r-- | caps/nsNullPrincipal.cpp | 2 | ||||
-rw-r--r-- | caps/nsNullPrincipalURI.cpp | 6 | ||||
-rw-r--r-- | caps/nsPrincipal.cpp | 15 | ||||
-rw-r--r-- | caps/nsScriptSecurityManager.cpp | 2 |
6 files changed, 27 insertions, 5 deletions
diff --git a/caps/moz.build b/caps/moz.build index 58b45e360..dc47ecbba 100644 --- a/caps/moz.build +++ b/caps/moz.build @@ -34,12 +34,7 @@ EXPORTS.mozilla = [ ] SOURCES += [ - # Compile this separately since nsExceptionHandler.h conflicts - # with something from nsNullPrincipal.cpp. 'BasePrincipal.cpp', -] - -UNIFIED_SOURCES += [ 'DomainPolicy.cpp', 'nsJSPrincipals.cpp', 'nsNullPrincipal.cpp', diff --git a/caps/nsJSPrincipals.cpp b/caps/nsJSPrincipals.cpp index 0f3afa14e..8349aed53 100644 --- a/caps/nsJSPrincipals.cpp +++ b/caps/nsJSPrincipals.cpp @@ -15,6 +15,7 @@ #include "nsMemory.h" #include "nsStringBuffer.h" +#include "mozilla/ipc/PBackgroundSharedTypes.h" #include "mozilla/dom/StructuredCloneTags.h" // for mozilla::dom::workers::kJSPrincipalsDebugToken #include "mozilla/dom/workers/Workers.h" @@ -22,6 +23,7 @@ using namespace mozilla; using namespace mozilla::ipc; +using namespace mozilla::dom; NS_IMETHODIMP_(MozExternalRefCountType) nsJSPrincipals::AddRef() diff --git a/caps/nsNullPrincipal.cpp b/caps/nsNullPrincipal.cpp index 6ebf0f129..386344e37 100644 --- a/caps/nsNullPrincipal.cpp +++ b/caps/nsNullPrincipal.cpp @@ -20,6 +20,8 @@ #include "nsIClassInfoImpl.h" #include "nsNetCID.h" #include "nsError.h" +#include "nsIObjectInputStream.h" +#include "nsIObjectOutputStream.h" #include "nsIScriptSecurityManager.h" #include "nsPrincipal.h" #include "nsScriptSecurityManager.h" diff --git a/caps/nsNullPrincipalURI.cpp b/caps/nsNullPrincipalURI.cpp index f8b867160..159928ba6 100644 --- a/caps/nsNullPrincipalURI.cpp +++ b/caps/nsNullPrincipalURI.cpp @@ -6,8 +6,12 @@ #include "nsNullPrincipalURI.h" +#include "mozilla/ArrayUtils.h" + #include "mozilla/DebugOnly.h" #include "mozilla/MemoryReporting.h" +#include "mozilla/Services.h" +#include "mozilla/Unused.h" #include "mozilla/ipc/URIParams.h" @@ -15,6 +19,8 @@ #include "nsCRT.h" #include "nsIUUIDGenerator.h" +using namespace mozilla; + //////////////////////////////////////////////////////////////////////////////// //// nsNullPrincipalURI diff --git a/caps/nsPrincipal.cpp b/caps/nsPrincipal.cpp index f89061043..d111042c1 100644 --- a/caps/nsPrincipal.cpp +++ b/caps/nsPrincipal.cpp @@ -19,6 +19,8 @@ #include "nsJSPrincipals.h" #include "nsIEffectiveTLDService.h" #include "nsIClassInfoImpl.h" +#include "nsIObjectInputStream.h" +#include "nsIObjectOutputStream.h" #include "nsIProtocolHandler.h" #include "nsError.h" #include "nsIContentSecurityPolicy.h" @@ -161,6 +163,19 @@ nsPrincipal::GetOriginForURI(nsIURI* aURI, nsACString& aOrigin) (NS_SUCCEEDED(origin->SchemeIs("indexeddb", &isBehaved)) && isBehaved)) { rv = origin->GetAsciiSpec(aOrigin); NS_ENSURE_SUCCESS(rv, rv); + + // Remove query or ref part from about: origin + 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); + } + // These URIs could technically contain a '^', but they never should. if (NS_WARN_IF(aOrigin.FindChar('^', 0) != -1)) { aOrigin.Truncate(); diff --git a/caps/nsScriptSecurityManager.cpp b/caps/nsScriptSecurityManager.cpp index 129a4d0da..bf5f33599 100644 --- a/caps/nsScriptSecurityManager.cpp +++ b/caps/nsScriptSecurityManager.cpp @@ -59,6 +59,7 @@ #include "mozIApplication.h" #include "mozilla/Preferences.h" #include "mozilla/dom/BindingUtils.h" +#include "mozilla/dom/ContentParent.h" #include <stdint.h> #include "mozilla/dom/ScriptSettings.h" #include "mozilla/ClearOnShutdown.h" @@ -70,6 +71,7 @@ using namespace mozilla; using namespace mozilla::dom; +using namespace mozilla::ipc; nsIIOService *nsScriptSecurityManager::sIOService = nullptr; nsIStringBundle *nsScriptSecurityManager::sStrBundle = nullptr; |