summaryrefslogtreecommitdiffstats
path: root/caps
diff options
context:
space:
mode:
Diffstat (limited to 'caps')
-rw-r--r--caps/moz.build5
-rw-r--r--caps/nsJSPrincipals.cpp2
-rw-r--r--caps/nsNullPrincipal.cpp2
-rw-r--r--caps/nsNullPrincipalURI.cpp6
-rw-r--r--caps/nsPrincipal.cpp15
-rw-r--r--caps/nsScriptSecurityManager.cpp2
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;