diff options
Diffstat (limited to 'dom')
-rw-r--r-- | dom/bindings/Codegen.py | 6 | ||||
-rw-r--r-- | dom/bindings/WebIDLGlobalNameHash.cpp | 4 | ||||
-rw-r--r-- | dom/bindings/WebIDLGlobalNameHash.h | 1 | ||||
-rw-r--r-- | dom/bindings/moz.build | 2 | ||||
-rw-r--r-- | dom/bindings/nsScriptError.h | 5 | ||||
-rw-r--r-- | dom/bindings/nsScriptErrorWithStack.cpp | 4 | ||||
-rw-r--r-- | dom/indexedDB/ActorsChild.cpp | 6 | ||||
-rw-r--r-- | dom/security/nsCSPUtils.cpp | 16 |
8 files changed, 38 insertions, 6 deletions
diff --git a/dom/bindings/Codegen.py b/dom/bindings/Codegen.py index 8ee732cca..8985863e8 100644 --- a/dom/bindings/Codegen.py +++ b/dom/bindings/Codegen.py @@ -1109,6 +1109,12 @@ class CGHeaders(CGWrapper): # Now find all the things we'll need as arguments because we # need to wrap or unwrap them. bindingHeaders = set() + + # KeyframeAnimationOptions.webidl is doing something VERY screwy and + # Unified Building really sucks so directly include this + if prefix == "KeyframeAnimationOptionsBinding": + bindingHeaders.add("mozilla/dom/PrimitiveConversions.h") + declareIncludes = set(declareIncludes) def addHeadersForType((t, dictionary)): diff --git a/dom/bindings/WebIDLGlobalNameHash.cpp b/dom/bindings/WebIDLGlobalNameHash.cpp index 7477b52e7..981a1a395 100644 --- a/dom/bindings/WebIDLGlobalNameHash.cpp +++ b/dom/bindings/WebIDLGlobalNameHash.cpp @@ -4,8 +4,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "jswrapper.h" #include "WebIDLGlobalNameHash.h" #include "js/GCAPI.h" +#include "XrayWrapper.h" +#include "XPCWrapper.h" +#include "mozilla/dom/Selection.h" #include "mozilla/HashFunctions.h" #include "mozilla/Maybe.h" #include "mozilla/dom/DOMJSProxyHandler.h" diff --git a/dom/bindings/WebIDLGlobalNameHash.h b/dom/bindings/WebIDLGlobalNameHash.h index bbe015395..cd7be2c69 100644 --- a/dom/bindings/WebIDLGlobalNameHash.h +++ b/dom/bindings/WebIDLGlobalNameHash.h @@ -8,6 +8,7 @@ #define mozilla_dom_WebIDLGlobalNameHash_h__ #include "js/RootingAPI.h" +#include "nsString.h" #include "nsTArray.h" namespace mozilla { diff --git a/dom/bindings/moz.build b/dom/bindings/moz.build index ed8a4d37e..ca82b48a8 100644 --- a/dom/bindings/moz.build +++ b/dom/bindings/moz.build @@ -89,7 +89,7 @@ LOCAL_INCLUDES += [ '/media/webrtc/signaling/src/peerconnection', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'BindingUtils.cpp', 'CallbackInterface.cpp', 'CallbackObject.cpp', diff --git a/dom/bindings/nsScriptError.h b/dom/bindings/nsScriptError.h index b8049d0a0..ac8099c1c 100644 --- a/dom/bindings/nsScriptError.h +++ b/dom/bindings/nsScriptError.h @@ -14,8 +14,13 @@ #include "jsapi.h" #include "js/RootingAPI.h" +#include "jswrapper.h" +#include "nsCOMArray.h" +#include "nsContentUtils.h" +#include "nsCycleCollectionParticipant.h" #include "nsIScriptError.h" #include "nsString.h" +#include "nsStringFwd.h" class nsScriptErrorNote final : public nsIScriptErrorNote { public: diff --git a/dom/bindings/nsScriptErrorWithStack.cpp b/dom/bindings/nsScriptErrorWithStack.cpp index 74c00999f..0a8df38b3 100644 --- a/dom/bindings/nsScriptErrorWithStack.cpp +++ b/dom/bindings/nsScriptErrorWithStack.cpp @@ -22,7 +22,7 @@ using namespace mozilla::dom; namespace { static nsCString -FormatStackString(JSContext* cx, HandleObject aStack) { +FormatStackString(JSContext* cx, JS::HandleObject aStack) { JS::RootedString formattedStack(cx); if (!JS::BuildStackString(cx, aStack, &formattedStack)) { @@ -111,7 +111,7 @@ nsScriptErrorWithStack::ToString(nsACString& /*UTF8*/ aResult) } JSContext* cx = jsapi.cx(); - RootedObject stack(cx, mStack); + JS::RootedObject stack(cx, mStack); nsCString stackString = FormatStackString(cx, stack); nsCString combined = message + NS_LITERAL_CSTRING("\n") + stackString; aResult.Assign(combined); diff --git a/dom/indexedDB/ActorsChild.cpp b/dom/indexedDB/ActorsChild.cpp index 30dc9b6da..85f876cdc 100644 --- a/dom/indexedDB/ActorsChild.cpp +++ b/dom/indexedDB/ActorsChild.cpp @@ -3291,6 +3291,10 @@ BackgroundCursorChild::HandleResponse( auto& responses = const_cast<nsTArray<ObjectStoreCursorResponse>&>(aResponses); + // If a new cursor is created, we need to keep a reference to it until the + // ResultHelper creates a DOM Binding. + RefPtr<IDBCursor> newCursor; + for (ObjectStoreCursorResponse& response : responses) { StructuredCloneReadInfo cloneReadInfo(Move(response.cloneInfo())); cloneReadInfo.mDatabase = mTransaction->Database(); @@ -3300,8 +3304,6 @@ BackgroundCursorChild::HandleResponse( nullptr, cloneReadInfo.mFiles); - RefPtr<IDBCursor> newCursor; - if (mCursor) { mCursor->Reset(Move(response.key()), Move(cloneReadInfo)); } else { diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp index d07ad7945..6d4f297d6 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp @@ -555,7 +555,21 @@ permitsPort(const nsAString& aEnforcementScheme, int32_t resourcePort; nsresult rv = aResourceURI->GetPort(&resourcePort); - NS_ENSURE_SUCCESS(rv, false); + if (NS_FAILED(rv) && aEnforcementPort.IsEmpty()) { + // If we cannot get a Port (e.g. because of an Custom Protocol handler) + // we need to check if a default port is associated with the Scheme + if (aEnforcementScheme.IsEmpty()) { + return false; + } + int defaultPortforScheme = + NS_GetDefaultPort(NS_ConvertUTF16toUTF8(aEnforcementScheme).get()); + + // If there is no default port associated with the Scheme ( + // defaultPortforScheme == -1) or it is an externally handled protocol ( + // defaultPortforScheme == 0 ) and the csp does not enforce a port - we can + // allow not having a port + return (defaultPortforScheme == -1 || defaultPortforScheme == 0); + } // Avoid unnecessary string creation/manipulation and don't block the // load if the resource to be loaded uses the default port for that |