mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-31 19:47:32 +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.
|
// enum type be signed.
|
||||||
css::SheetParsingMode mParsingMode : 3;
|
css::SheetParsingMode mParsingMode : 3;
|
||||||
|
|
||||||
|
// Indicates the cascade origin of the sheet.
|
||||||
|
mozilla::SheetType mLevel;
|
||||||
|
|
||||||
// True if we are in parsing rules for the chrome.
|
// True if we are in parsing rules for the chrome.
|
||||||
bool mIsChrome : 1;
|
bool mIsChrome : 1;
|
||||||
|
|
||||||
|
|
@ -1656,6 +1659,7 @@ CSSParserImpl::CSSParserImpl()
|
||||||
mHashlessColorQuirk(false),
|
mHashlessColorQuirk(false),
|
||||||
mUnitlessLengthQuirk(false),
|
mUnitlessLengthQuirk(false),
|
||||||
mParsingMode(css::eAuthorSheetFeatures),
|
mParsingMode(css::eAuthorSheetFeatures),
|
||||||
|
mLevel(mozilla::SheetType::Doc),
|
||||||
mIsChrome(false),
|
mIsChrome(false),
|
||||||
mViewportUnitsEnabled(true),
|
mViewportUnitsEnabled(true),
|
||||||
mHTMLMediaMode(false),
|
mHTMLMediaMode(false),
|
||||||
|
|
@ -1799,6 +1803,22 @@ CSSParserImpl::ParseSheet(const nsAString& aInput,
|
||||||
}
|
}
|
||||||
|
|
||||||
mParsingMode = mSheet->ParsingMode();
|
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);
|
mIsChrome = dom::IsChromeURI(aSheetURI);
|
||||||
mReusableSheets = aReusableSheets;
|
mReusableSheets = aReusableSheets;
|
||||||
|
|
||||||
|
|
@ -1824,6 +1844,7 @@ CSSParserImpl::ParseSheet(const nsAString& aInput,
|
||||||
ReleaseScanner();
|
ReleaseScanner();
|
||||||
|
|
||||||
mParsingMode = css::eAuthorSheetFeatures;
|
mParsingMode = css::eAuthorSheetFeatures;
|
||||||
|
mLevel = mozilla::SheetType::Doc;
|
||||||
mIsChrome = false;
|
mIsChrome = false;
|
||||||
mReusableSheets = nullptr;
|
mReusableSheets = nullptr;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue