Issue #2828 - Part 1: Build and store the array of layer name tokens in the layer at-rules

This commit is contained in:
Francis Dominic Fajardo 2025-07-08 23:46:54 +08:00 committed by roytam1
commit 53e6317bfb
3 changed files with 92 additions and 41 deletions

View file

@ -746,6 +746,7 @@ class CSSLayerStatementRule final : public css::Rule,
{
public:
CSSLayerStatementRule(const nsTArray<nsString>& aNameList,
const nsTArray<nsTArray<nsString>>& aPathList,
uint32_t aLineNumber, uint32_t aColumnNumber);
CSSLayerStatementRule(const CSSLayerStatementRule& aCopy);
@ -768,6 +769,7 @@ public:
uint16_t Type() const override;
void GetCssTextImpl(nsAString& aCssText) const override;
void GetNameList(nsTArray<nsString>& aResult);
void GetPathList(nsTArray<nsTArray<nsString>>& aResult);
virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const override;
@ -777,6 +779,7 @@ protected:
virtual ~CSSLayerStatementRule();
nsTArray<nsString> mNameList;
nsTArray<nsTArray<nsString>> mPathList;
};
class CSSLayerBlockRule final : public css::GroupRule,
@ -784,6 +787,7 @@ class CSSLayerBlockRule final : public css::GroupRule,
{
public:
CSSLayerBlockRule(const nsString& aName,
const nsTArray<nsString>& aPath,
uint32_t aLineNumber, uint32_t aColumnNumber);
CSSLayerBlockRule(const CSSLayerBlockRule& aCopy);
@ -796,7 +800,9 @@ public:
virtual already_AddRefed<mozilla::css::Rule> Clone() const override;
virtual bool UseForPresentation(nsPresContext* aPresContext,
nsMediaQueryResultCacheKey& aKey) override;
void GetPath(nsTArray<nsString>& aResult);
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(CSSLayerBlockRule, GroupRule)
NS_DECL_ISUPPORTS_INHERITED
// nsIDOMCSSGroupingRule interface
@ -818,6 +824,7 @@ protected:
virtual ~CSSLayerBlockRule();
nsString mName;
nsTArray<nsString> mPath;
};
} // namespace mozilla