diff --git a/dom/base/nsDOMClassInfo.cpp b/dom/base/nsDOMClassInfo.cpp index 578b16fc66..f058bfa14b 100644 --- a/dom/base/nsDOMClassInfo.cpp +++ b/dom/base/nsDOMClassInfo.cpp @@ -198,9 +198,6 @@ static nsDOMClassInfoData sClassInfoData[] = { NS_DEFINE_CLASSINFO_DATA(CSSMediaRule, nsCSSRuleSH, DOM_DEFAULT_SCRIPTABLE_FLAGS | nsIXPCScriptable::WANT_PRECREATE) - NS_DEFINE_CLASSINFO_DATA(CSSNameSpaceRule, nsCSSRuleSH, - DOM_DEFAULT_SCRIPTABLE_FLAGS | - nsIXPCScriptable::WANT_PRECREATE) // XUL classes #ifdef MOZ_XUL @@ -538,10 +535,6 @@ nsDOMClassInfo::Init() DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSSMediaRule) DOM_CLASSINFO_MAP_END - DOM_CLASSINFO_MAP_BEGIN_NO_CLASS_IF(CSSNameSpaceRule, nsIDOMCSSRule) - DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSSRule) - DOM_CLASSINFO_MAP_END - #ifdef MOZ_XUL DOM_CLASSINFO_MAP_BEGIN(XULCommandDispatcher, nsIDOMXULCommandDispatcher) DOM_CLASSINFO_MAP_ENTRY(nsIDOMXULCommandDispatcher) diff --git a/dom/base/nsDOMClassInfoClasses.h b/dom/base/nsDOMClassInfoClasses.h index e381fb8f9b..12ae10ffc2 100644 --- a/dom/base/nsDOMClassInfoClasses.h +++ b/dom/base/nsDOMClassInfoClasses.h @@ -11,7 +11,6 @@ DOMCI_CLASS(DOMConstructor) DOMCI_CLASS(CSSStyleRule) DOMCI_CLASS(CSSImportRule) DOMCI_CLASS(CSSMediaRule) -DOMCI_CLASS(CSSNameSpaceRule) // XUL classes #ifdef MOZ_XUL diff --git a/dom/base/nsWrapperCache.h b/dom/base/nsWrapperCache.h index 772c20bbc0..ed1cfa8650 100644 --- a/dom/base/nsWrapperCache.h +++ b/dom/base/nsWrapperCache.h @@ -20,7 +20,6 @@ class ProcessGlobal; } // namespace dom namespace css { class ImportRule; -class NameSpaceRule; class StyleRule; class MediaRule; class DocumentRule; @@ -294,7 +293,6 @@ private: friend class nsInProcessTabChildGlobal; friend class nsWindowRoot; friend class mozilla::css::ImportRule; - friend class mozilla::css::NameSpaceRule; friend class mozilla::css::StyleRule; friend class mozilla::css::MediaRule; friend class mozilla::css::DocumentRule; diff --git a/dom/bindings/Bindings.conf b/dom/bindings/Bindings.conf index 43dfb627da..0e16cc78d9 100644 --- a/dom/bindings/Bindings.conf +++ b/dom/bindings/Bindings.conf @@ -201,12 +201,17 @@ DOMInterfaces = { 'wrapperCache': False }, +'CSSNamespaceRule': { + 'nativeType': 'mozilla::css::NameSpaceRule', +}, + 'CSSPrimitiveValue': { 'nativeType': 'nsROCSSPrimitiveValue', }, 'CSSRule': { 'hasXPConnectImpls': True, + 'concrete': False, 'nativeType': 'mozilla::css::Rule' }, diff --git a/dom/media/webaudio/AudioBuffer.h b/dom/media/webaudio/AudioBuffer.h index 15474b6c5c..e8722db77b 100644 --- a/dom/media/webaudio/AudioBuffer.h +++ b/dom/media/webaudio/AudioBuffer.h @@ -15,6 +15,7 @@ #include "AudioContext.h" #include "js/TypeDecls.h" #include "mozilla/MemoryReporting.h" +#include "mozilla/dom/TypedArray.h" namespace mozilla { diff --git a/dom/tests/mochitest/general/test_interfaces.html b/dom/tests/mochitest/general/test_interfaces.html index 1354f381e9..13a76ce992 100644 --- a/dom/tests/mochitest/general/test_interfaces.html +++ b/dom/tests/mochitest/general/test_interfaces.html @@ -244,7 +244,7 @@ var interfaceNamesInGlobalScope = // IMPORTANT: Do not change this list without review from a DOM peer! "CSSMozDocumentRule", // IMPORTANT: Do not change this list without review from a DOM peer! - "CSSNameSpaceRule", + "CSSNamespaceRule", // IMPORTANT: Do not change this list without review from a DOM peer! "CSSPageRule", // IMPORTANT: Do not change this list without review from a DOM peer! diff --git a/dom/webidl/CSSNamespaceRule.webidl b/dom/webidl/CSSNamespaceRule.webidl new file mode 100644 index 0000000000..0051c904a7 --- /dev/null +++ b/dom/webidl/CSSNamespaceRule.webidl @@ -0,0 +1,16 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. + * + * The origin of this IDL file is + * https://drafts.csswg.org/cssom/#cssnamespacerule + */ + +// https://drafts.csswg.org/cssom/#cssnamespacerule +interface CSSNamespaceRule : CSSRule { + // Not implemented yet. . + // readonly attribute DOMString namespaceURI; + // readonly attribute DOMString prefix; +}; diff --git a/dom/webidl/moz.build b/dom/webidl/moz.build index 904d299540..3f3ee0d50e 100644 --- a/dom/webidl/moz.build +++ b/dom/webidl/moz.build @@ -91,6 +91,7 @@ WEBIDL_FILES = [ 'CSS.webidl', 'CSSAnimation.webidl', 'CSSLexer.webidl', + 'CSSNamespaceRule.webidl', 'CSSPrimitiveValue.webidl', 'CSSPseudoElement.webidl', 'CSSRule.webidl', diff --git a/layout/style/nsCSSRules.cpp b/layout/style/nsCSSRules.cpp index 6ae33fc776..1c746c7645 100644 --- a/layout/style/nsCSSRules.cpp +++ b/layout/style/nsCSSRules.cpp @@ -33,6 +33,7 @@ #include "nsCSSParser.h" #include "nsDOMClassInfoID.h" #include "mozilla/dom/CSSStyleDeclarationBinding.h" +#include "mozilla/dom/CSSNamespaceRuleBinding.h" #include "StyleRule.h" #include "nsFont.h" #include "nsIURI.h" @@ -1109,7 +1110,6 @@ NameSpaceRule::NameSpaceRule(nsIAtom* aPrefix, const nsString& aURLSpec, mPrefix(aPrefix), mURLSpec(aURLSpec) { - SetIsNotDOMBinding(); } NameSpaceRule::NameSpaceRule(const NameSpaceRule& aCopy) @@ -1117,7 +1117,6 @@ NameSpaceRule::NameSpaceRule(const NameSpaceRule& aCopy) mPrefix(aCopy.mPrefix), mURLSpec(aCopy.mURLSpec) { - SetIsNotDOMBinding(); } NameSpaceRule::~NameSpaceRule() @@ -1137,7 +1136,6 @@ NS_INTERFACE_MAP_BEGIN(NameSpaceRule) return NS_OK; } else - NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSNameSpaceRule) NS_INTERFACE_MAP_END_INHERITING(Rule) bool @@ -1218,8 +1216,7 @@ NameSpaceRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const NameSpaceRule::WrapObject(JSContext* aCx, JS::Handle aGivenProto) { - NS_NOTREACHED("We called SetIsNotDOMBinding() in our constructor"); - return nullptr; + return CSSNamespaceRuleBinding::Wrap(aCx, this, aGivenProto); } } // namespace css