Issue #2490 - Part 19: Convert CSSCounterStyleRule to WebIDL.

This commit is contained in:
Moonchild 2024-04-04 19:52:36 +02:00 • committed by roytam1
commit 7fb5d53a79
8 changed files with 53 additions and 21 deletions

View file

@ -72,7 +72,6 @@
#include "nsMemory.h" #include "nsMemory.h"
// includes needed for the prototype chain interfaces // includes needed for the prototype chain interfaces
#include "nsIDOMCSSCounterStyleRule.h"
#include "nsIDOMXULCommandDispatcher.h" #include "nsIDOMXULCommandDispatcher.h"
#include "nsIControllers.h" #include "nsIControllers.h"
#ifdef MOZ_XUL #ifdef MOZ_XUL
@ -216,11 +215,6 @@ static nsDOMClassInfoData sClassInfoData[] = {
NS_DEFINE_CHROME_ONLY_CLASSINFO_DATA(ChromeMessageSender, nsDOMGenericSH, NS_DEFINE_CHROME_ONLY_CLASSINFO_DATA(ChromeMessageSender, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS) DOM_DEFAULT_SCRIPTABLE_FLAGS)
NS_DEFINE_CLASSINFO_DATA(CSSCounterStyleRule, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS |
nsIXPCScriptable::WANT_PRECREATE)
NS_DEFINE_CHROME_XBL_CLASSINFO_DATA(XULControlElement, nsDOMGenericSH, NS_DEFINE_CHROME_XBL_CLASSINFO_DATA(XULControlElement, nsDOMGenericSH,
DOM_DEFAULT_SCRIPTABLE_FLAGS) DOM_DEFAULT_SCRIPTABLE_FLAGS)
NS_DEFINE_CHROME_XBL_CLASSINFO_DATA(XULLabeledControlElement, nsDOMGenericSH, NS_DEFINE_CHROME_XBL_CLASSINFO_DATA(XULLabeledControlElement, nsDOMGenericSH,
@ -537,11 +531,6 @@ nsDOMClassInfo::Init()
DOM_CLASSINFO_MAP_ENTRY(nsIMessageSender) DOM_CLASSINFO_MAP_ENTRY(nsIMessageSender)
DOM_CLASSINFO_MAP_END DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN(CSSCounterStyleRule, nsIDOMCSSCounterStyleRule)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSSRule)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSSCounterStyleRule)
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN_NO_CLASS_IF(XULControlElement, nsIDOMXULControlElement) DOM_CLASSINFO_MAP_BEGIN_NO_CLASS_IF(XULControlElement, nsIDOMXULControlElement)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMXULControlElement) DOM_CLASSINFO_MAP_ENTRY(nsIDOMXULControlElement)
DOM_CLASSINFO_MAP_END DOM_CLASSINFO_MAP_END

View file

@ -27,9 +27,6 @@ DOMCI_CLASS(ContentProcessMessageManager)
DOMCI_CLASS(ChromeMessageBroadcaster) DOMCI_CLASS(ChromeMessageBroadcaster)
DOMCI_CLASS(ChromeMessageSender) DOMCI_CLASS(ChromeMessageSender)
// @counter-style in CSS
DOMCI_CLASS(CSSCounterStyleRule)
DOMCI_CLASS(XULControlElement) DOMCI_CLASS(XULControlElement)
DOMCI_CLASS(XULLabeledControlElement) DOMCI_CLASS(XULLabeledControlElement)
DOMCI_CLASS(XULButtonElement) DOMCI_CLASS(XULButtonElement)

View file

@ -23,7 +23,6 @@ class ProcessGlobal;
class SandboxPrivate; class SandboxPrivate;
class nsInProcessTabChildGlobal; class nsInProcessTabChildGlobal;
class nsWindowRoot; class nsWindowRoot;
class nsCSSCounterStyleRule;
#define NS_WRAPPERCACHE_IID \ #define NS_WRAPPERCACHE_IID \
{ 0x6f3179a1, 0x36f7, 0x4a5c, \ { 0x6f3179a1, 0x36f7, 0x4a5c, \
@ -281,7 +280,6 @@ private:
friend class SandboxPrivate; friend class SandboxPrivate;
friend class nsInProcessTabChildGlobal; friend class nsInProcessTabChildGlobal;
friend class nsWindowRoot; friend class nsWindowRoot;
friend class nsCSSCounterStyleRule;
void SetIsNotDOMBinding() void SetIsNotDOMBinding()
{ {

View file

@ -203,6 +203,11 @@ DOMInterfaces = {
'headerFile': 'mozilla/css/GroupRule.h', 'headerFile': 'mozilla/css/GroupRule.h',
}, },
'CSSCounterStyleRule': {
'nativeType': 'nsCSSCounterStyleRule',
'headerFile': 'nsCSSRules.h',
},
'CSSFontFaceRule': { 'CSSFontFaceRule': {
'nativeType': 'nsCSSFontFaceRule', 'nativeType': 'nsCSSFontFaceRule',
'headerFile': 'nsCSSRules.h', 'headerFile': 'nsCSSRules.h',

View file

@ -0,0 +1,23 @@
/* -*- 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/css-counter-styles-3/#the-csscounterstylerule-interface
*/
// https://drafts.csswg.org/css-counter-styles-3/#the-csscounterstylerule-interface
interface CSSCounterStyleRule : CSSRule {
attribute DOMString name;
attribute DOMString system;
attribute DOMString symbols;
attribute DOMString additiveSymbols;
attribute DOMString negative;
attribute DOMString prefix;
attribute DOMString suffix;
attribute DOMString range;
attribute DOMString pad;
attribute DOMString speakAs;
attribute DOMString fallback;
};

View file

@ -91,6 +91,7 @@ WEBIDL_FILES = [
'CSS.webidl', 'CSS.webidl',
'CSSAnimation.webidl', 'CSSAnimation.webidl',
'CSSConditionRule.webidl', 'CSSConditionRule.webidl',
'CSSCounterStyleRule.webidl',
'CSSFontFaceRule.webidl', 'CSSFontFaceRule.webidl',
'CSSFontFeatureValuesRule.webidl', 'CSSFontFeatureValuesRule.webidl',
'CSSGroupingRule.webidl', 'CSSGroupingRule.webidl',

View file

@ -43,6 +43,7 @@
#include "mozilla/dom/CSSFontFeatureValuesRuleBinding.h" #include "mozilla/dom/CSSFontFeatureValuesRuleBinding.h"
#include "mozilla/dom/CSSKeyframeRuleBinding.h" #include "mozilla/dom/CSSKeyframeRuleBinding.h"
#include "mozilla/dom/CSSKeyframesRuleBinding.h" #include "mozilla/dom/CSSKeyframesRuleBinding.h"
#include "mozilla/dom/CSSCounterStyleRuleBinding.h"
#include "StyleRule.h" #include "StyleRule.h"
#include "nsFont.h" #include "nsFont.h"
#include "nsIURI.h" #include "nsIURI.h"
@ -2913,7 +2914,6 @@ nsCSSCounterStyleRule::nsCSSCounterStyleRule(const nsCSSCounterStyleRule& aCopy)
, mName(aCopy.mName) , mName(aCopy.mName)
, mGeneration(aCopy.mGeneration) , mGeneration(aCopy.mGeneration)
{ {
SetIsNotDOMBinding();
for (size_t i = 0; i < ArrayLength(mValues); ++i) { for (size_t i = 0; i < ArrayLength(mValues); ++i) {
mValues[i] = aCopy.mValues[i]; mValues[i] = aCopy.mValues[i];
} }
@ -2945,7 +2945,6 @@ NS_IMPL_RELEASE_INHERITED(nsCSSCounterStyleRule, mozilla::css::Rule)
// implementation. // implementation.
NS_INTERFACE_MAP_BEGIN(nsCSSCounterStyleRule) NS_INTERFACE_MAP_BEGIN(nsCSSCounterStyleRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSCounterStyleRule) NS_INTERFACE_MAP_ENTRY(nsIDOMCSSCounterStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSCounterStyleRule)
NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule) NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule)
bool bool
@ -3350,6 +3349,5 @@ nsCSSCounterStyleRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
nsCSSCounterStyleRule::WrapObject(JSContext* aCx, nsCSSCounterStyleRule::WrapObject(JSContext* aCx,
JS::Handle<JSObject*> aGivenProto) JS::Handle<JSObject*> aGivenProto)
{ {
NS_NOTREACHED("We called SetIsNotDOMBinding() in our constructor"); return CSSCounterStyleRuleBinding::Wrap(aCx, this, aGivenProto);
return nullptr;
} }

View file

@ -652,7 +652,6 @@ public:
, mName(aName) , mName(aName)
, mGeneration(0) , mGeneration(0)
{ {
SetIsNotDOMBinding();
} }
private: private:
@ -676,6 +675,28 @@ public:
// WebIDL interface // WebIDL interface
uint16_t Type() const override; uint16_t Type() const override;
void GetCssTextImpl(nsAString& aCssText) const override; void GetCssTextImpl(nsAString& aCssText) const override;
// The XPCOM GetName is OK
// The XPCOM SetName is OK
// The XPCOM GetSystem is OK
// The XPCOM SetSystem is OK
// The XPCOM GetSymbols is OK
// The XPCOM SetSymbols is OK
// The XPCOM GetAdditiveSymbols is OK
// The XPCOM SetAdditiveSymbols is OK
// The XPCOM GetNegative is OK
// The XPCOM SetNegative is OK
// The XPCOM GetPrefix is OK
// The XPCOM SetPrefix is OK
// The XPCOM GetSuffix is OK
// The XPCOM SetSuffix is OK
// The XPCOM GetRange is OK
// The XPCOM SetRange is OK
// The XPCOM GetPad is OK
// The XPCOM SetPad is OK
// The XPCOM GetSpeakAs is OK
// The XPCOM SetSpeakAs is OK
// The XPCOM GetFallback is OK
// The XPCOM SetFallback is OK
// This function is only used to check whether a non-empty value, which has // This function is only used to check whether a non-empty value, which has
// been accepted by parser, is valid for the given system and descriptor. // been accepted by parser, is valid for the given system and descriptor.