mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 23:38:38 +09:00
Issue #2045 - Part 3: Implement cascade origin tracking to CSS parser
The CSS parser already knows the cascade origin, but it is using a different enum for storing it.
This commit is contained in:
parent
7f3f90eed4
commit
b0f0972314
1 changed files with 21 additions and 0 deletions
|
|
@ -1525,6 +1525,9 @@ protected:
|
|||
// enum type be signed.
|
||||
css::SheetParsingMode mParsingMode : 3;
|
||||
|
||||
// Indicates the cascade origin of the sheet.
|
||||
mozilla::SheetType mLevel;
|
||||
|
||||
// True if we are in parsing rules for the chrome.
|
||||
bool mIsChrome : 1;
|
||||
|
||||
|
|
@ -1656,6 +1659,7 @@ CSSParserImpl::CSSParserImpl()
|
|||
mHashlessColorQuirk(false),
|
||||
mUnitlessLengthQuirk(false),
|
||||
mParsingMode(css::eAuthorSheetFeatures),
|
||||
mLevel(mozilla::SheetType::Doc),
|
||||
mIsChrome(false),
|
||||
mViewportUnitsEnabled(true),
|
||||
mHTMLMediaMode(false),
|
||||
|
|
@ -1799,6 +1803,22 @@ CSSParserImpl::ParseSheet(const nsAString& aInput,
|
|||
}
|
||||
|
||||
mParsingMode = mSheet->ParsingMode();
|
||||
switch (mParsingMode) {
|
||||
case css::eAgentSheetFeatures:
|
||||
mLevel = mozilla::SheetType::Agent;
|
||||
break;
|
||||
|
||||
case css::eUserSheetFeatures:
|
||||
mLevel = mozilla::SheetType::User;
|
||||
break;
|
||||
|
||||
case css::eAuthorSheetFeatures:
|
||||
mLevel = mozilla::SheetType::Doc;
|
||||
break;
|
||||
|
||||
default:
|
||||
MOZ_CRASH("impossible value for aType");
|
||||
}
|
||||
mIsChrome = dom::IsChromeURI(aSheetURI);
|
||||
mReusableSheets = aReusableSheets;
|
||||
|
||||
|
|
@ -1824,6 +1844,7 @@ CSSParserImpl::ParseSheet(const nsAString& aInput,
|
|||
ReleaseScanner();
|
||||
|
||||
mParsingMode = css::eAuthorSheetFeatures;
|
||||
mLevel = mozilla::SheetType::Doc;
|
||||
mIsChrome = false;
|
||||
mReusableSheets = nullptr;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue