Merge remote-tracking branch 'origin/tracking' into custom

This commit is contained in:
2024-04-11 15:58:11 +08:00
8 changed files with 286 additions and 25 deletions
@@ -908,6 +908,10 @@ VariablesView.prototype = {
// Copy current selection to clipboard. // Copy current selection to clipboard.
if (e.ctrlKey || e.metaKey) { if (e.ctrlKey || e.metaKey) {
let item = this.getFocusedItem(); let item = this.getFocusedItem();
if (!item) {
// No item is selected; do nothing.
return;
}
clipboardHelper.copyString( clipboardHelper.copyString(
item._nameString + item.separatorStr + item._valueString item._nameString + item.separatorStr + item._valueString
); );
@@ -7257,6 +7257,25 @@ exports.CSS_PROPERTIES = {
"unset" "unset"
] ]
}, },
"margin-block": {
"isInherited": false,
"subproperties": [
"margin-block-start",
"margin-block-end"
],
"supports": [
6,
8
],
"values": [
"-moz-calc",
"auto",
"calc",
"inherit",
"initial",
"unset"
]
},
"margin-block-end": { "margin-block-end": {
"isInherited": false, "isInherited": false,
"subproperties": [ "subproperties": [
@@ -7311,6 +7330,25 @@ exports.CSS_PROPERTIES = {
"unset" "unset"
] ]
}, },
"margin-inline": {
"isInherited": false,
"subproperties": [
"margin-inline-start",
"margin-inline-end"
],
"supports": [
6,
8
],
"values": [
"-moz-calc",
"auto",
"calc",
"inherit",
"initial",
"unset"
]
},
"margin-inline-end": { "margin-inline-end": {
"isInherited": false, "isInherited": false,
"subproperties": [ "subproperties": [
@@ -8246,6 +8284,24 @@ exports.CSS_PROPERTIES = {
"unset" "unset"
] ]
}, },
"padding-block": {
"isInherited": false,
"subproperties": [
"padding-block-start",
"padding-block-end"
],
"supports": [
6,
8
],
"values": [
"-moz-calc",
"calc",
"inherit",
"initial",
"unset"
]
},
"padding-block-end": { "padding-block-end": {
"isInherited": false, "isInherited": false,
"subproperties": [ "subproperties": [
@@ -8297,6 +8353,24 @@ exports.CSS_PROPERTIES = {
"unset" "unset"
] ]
}, },
"padding-inline": {
"isInherited": false,
"subproperties": [
"padding-inline-start",
"padding-inline-end"
],
"supports": [
6,
8
],
"values": [
"-moz-calc",
"calc",
"inherit",
"initial",
"unset"
]
},
"padding-inline-end": { "padding-inline-end": {
"isInherited": false, "isInherited": false,
"subproperties": [ "subproperties": [
+8 -6
View File
@@ -231,8 +231,13 @@ WorkerRunnable::Run()
{ {
bool targetIsWorkerThread = mBehavior == WorkerThreadModifyBusyCount || bool targetIsWorkerThread = mBehavior == WorkerThreadModifyBusyCount ||
mBehavior == WorkerThreadUnchangedBusyCount; mBehavior == WorkerThreadUnchangedBusyCount;
bool alreadyCanceled = IsCanceled() && !mCallingCancelWithinRun;
bool shouldCancelWorker = targetIsWorkerThread &&
mWorkerPrivate->AllPendingRunnablesShouldBeCanceled() &&
!IsCanceled() && !mCallingCancelWithinRun;
bool runnableWillRun = !alreadyCanceled && !shouldCancelWorker;
if (targetIsWorkerThread) { if (targetIsWorkerThread && runnableWillRun) {
// On a worker thread, a WorkerRunnable should only run when there is an // On a worker thread, a WorkerRunnable should only run when there is an
// underlying WorkerThreadPrimaryRunnable active, which means we should // underlying WorkerThreadPrimaryRunnable active, which means we should
// find a CycleCollectedJSContext. // find a CycleCollectedJSContext.
@@ -256,14 +261,11 @@ WorkerRunnable::Run()
} }
#endif #endif
if (IsCanceled() && !mCallingCancelWithinRun) { if (alreadyCanceled) {
return NS_OK; return NS_OK;
} }
if (targetIsWorkerThread && if (shouldCancelWorker) {
mWorkerPrivate->AllPendingRunnablesShouldBeCanceled() &&
!IsCanceled() && !mCallingCancelWithinRun) {
// Prevent recursion. // Prevent recursion.
mCallingCancelWithinRun = true; mCallingCancelWithinRun = true;
+4
View File
@@ -1474,6 +1474,10 @@ Declaration::GetPropertyValueInternal(
} }
MOZ_FALLTHROUGH; MOZ_FALLTHROUGH;
} }
case eCSSProperty_margin_block:
case eCSSProperty_margin_inline:
case eCSSProperty_padding_block:
case eCSSProperty_padding_inline:
case eCSSProperty_gap: { case eCSSProperty_gap: {
const nsCSSPropertyID* subprops = const nsCSSPropertyID* subprops =
nsCSSProps::SubpropertyEntryFor(aProperty); nsCSSProps::SubpropertyEntryFor(aProperty);
+83 -19
View File
@@ -1084,12 +1084,16 @@ protected:
bool ParseListStyle(); bool ParseListStyle();
bool ParseListStyleType(nsCSSValue& aValue); bool ParseListStyleType(nsCSSValue& aValue);
bool ParseMargin(); bool ParseMargin();
bool ParseMarginBlock();
bool ParseMarginInline();
bool ParseClipPath(nsCSSValue& aValue); bool ParseClipPath(nsCSSValue& aValue);
bool ParseTransform(bool aIsPrefixed, bool aDisallowRelativeValues = false); bool ParseTransform(bool aIsPrefixed, bool aDisallowRelativeValues = false);
bool ParseObjectPosition(); bool ParseObjectPosition();
bool ParseOutline(); bool ParseOutline();
bool ParseOverflow(); bool ParseOverflow();
bool ParsePadding(); bool ParsePadding();
bool ParsePaddingBlock();
bool ParsePaddingInline();
bool ParseQuotes(); bool ParseQuotes();
bool ParseTextAlign(nsCSSValue& aValue, bool ParseTextAlign(nsCSSValue& aValue,
const KTableEntry aTable[]); const KTableEntry aTable[]);
@@ -1188,6 +1192,10 @@ protected:
// Reused utility parsing routines // Reused utility parsing routines
void AppendValue(nsCSSPropertyID aPropID, const nsCSSValue& aValue); void AppendValue(nsCSSPropertyID aPropID, const nsCSSValue& aValue);
bool ParseBoxProperties(const nsCSSPropertyID aPropIDs[]); bool ParseBoxProperties(const nsCSSPropertyID aPropIDs[]);
bool ParseBoxPairProperties(int32_t aSingleVariantMask,
int32_t aPairVariantMask,
nsCSSPropertyID aStart,
nsCSSPropertyID aEnd);
bool ParseGroupedBoxProperty(int32_t aVariantMask, bool ParseGroupedBoxProperty(int32_t aVariantMask,
nsCSSValue& aValue, nsCSSValue& aValue,
uint32_t aRestrictions); uint32_t aRestrictions);
@@ -10107,25 +10115,10 @@ CSSParserImpl::ParseGridArea()
bool bool
CSSParserImpl::ParseGap() CSSParserImpl::ParseGap()
{ {
nsCSSValue first; return ParseBoxPairProperties(VARIANT_INHERIT,
if (ParseSingleTokenVariant(first, VARIANT_INHERIT, nullptr)) { VARIANT_LPCALC,
AppendValue(eCSSProperty_row_gap, first); eCSSProperty_row_gap,
AppendValue(eCSSProperty_column_gap, first); eCSSProperty_column_gap);
return true;
}
if (ParseNonNegativeVariant(first, VARIANT_LPCALC, nullptr) !=
CSSParseResult::Ok) {
return false;
}
nsCSSValue second;
auto result = ParseNonNegativeVariant(second, VARIANT_LPCALC, nullptr);
if (result == CSSParseResult::Error) {
return false;
}
AppendValue(eCSSProperty_row_gap, first);
AppendValue(eCSSProperty_column_gap,
result == CSSParseResult::NotFound ? first : second);
return true;
} }
// normal | [<number> <integer>?] // normal | [<number> <integer>?]
@@ -11448,6 +11441,33 @@ CSSParserImpl::ParseBoxProperties(const nsCSSPropertyID aPropIDs[])
return true; return true;
} }
bool
CSSParserImpl::ParseBoxPairProperties(int32_t aSingleVariantMask,
int32_t aPairVariantMask,
nsCSSPropertyID aStart,
nsCSSPropertyID aEnd)
{
nsCSSValue first;
if (ParseSingleTokenVariant(first, aSingleVariantMask, nullptr)) {
AppendValue(aStart, first);
AppendValue(aEnd, first);
return true;
}
if (ParseNonNegativeVariant(first, aPairVariantMask, nullptr) !=
CSSParseResult::Ok) {
return false;
}
nsCSSValue second;
auto result = ParseNonNegativeVariant(second, aPairVariantMask, nullptr);
if (result == CSSParseResult::Error) {
return false;
}
AppendValue(aStart, first);
AppendValue(aEnd,
result == CSSParseResult::NotFound ? first : second);
return true;
}
// Similar to ParseBoxProperties, except there is only one property // Similar to ParseBoxProperties, except there is only one property
// with the result as its value, not four. // with the result as its value, not four.
bool bool
@@ -12045,6 +12065,10 @@ CSSParserImpl::ParsePropertyByFunction(nsCSSPropertyID aPropID)
return ParseListStyle(); return ParseListStyle();
case eCSSProperty_margin: case eCSSProperty_margin:
return ParseMargin(); return ParseMargin();
case eCSSProperty_margin_block:
return ParseMarginBlock();
case eCSSProperty_margin_inline:
return ParseMarginInline();
case eCSSProperty_object_position: case eCSSProperty_object_position:
return ParseObjectPosition(); return ParseObjectPosition();
case eCSSProperty_outline: case eCSSProperty_outline:
@@ -12053,6 +12077,10 @@ CSSParserImpl::ParsePropertyByFunction(nsCSSPropertyID aPropID)
return ParseOverflow(); return ParseOverflow();
case eCSSProperty_padding: case eCSSProperty_padding:
return ParsePadding(); return ParsePadding();
case eCSSProperty_padding_block:
return ParsePaddingBlock();
case eCSSProperty_padding_inline:
return ParsePaddingInline();
case eCSSProperty_quotes: case eCSSProperty_quotes:
return ParseQuotes(); return ParseQuotes();
case eCSSProperty_text_decoration: case eCSSProperty_text_decoration:
@@ -15503,6 +15531,24 @@ CSSParserImpl::ParseMargin()
return ParseBoxProperties(kMarginSideIDs); return ParseBoxProperties(kMarginSideIDs);
} }
bool
CSSParserImpl::ParseMarginBlock()
{
return ParseBoxPairProperties(VARIANT_AUTO | VARIANT_INHERIT,
VARIANT_AUTO | VARIANT_LPCALC,
eCSSProperty_margin_block_start,
eCSSProperty_margin_block_end);
}
bool
CSSParserImpl::ParseMarginInline()
{
return ParseBoxPairProperties(VARIANT_AUTO | VARIANT_INHERIT,
VARIANT_AUTO | VARIANT_LPCALC,
eCSSProperty_margin_inline_start,
eCSSProperty_margin_inline_end);
}
bool bool
CSSParserImpl::ParseObjectPosition() CSSParserImpl::ParseObjectPosition()
{ {
@@ -15589,6 +15635,24 @@ CSSParserImpl::ParsePadding()
return ParseBoxProperties(kPaddingSideIDs); return ParseBoxProperties(kPaddingSideIDs);
} }
bool
CSSParserImpl::ParsePaddingBlock()
{
return ParseBoxPairProperties(VARIANT_AUTO | VARIANT_INHERIT,
VARIANT_AUTO | VARIANT_LPCALC,
eCSSProperty_padding_block_start,
eCSSProperty_padding_block_end);
}
bool
CSSParserImpl::ParsePaddingInline()
{
return ParseBoxPairProperties(VARIANT_AUTO | VARIANT_INHERIT,
VARIANT_AUTO | VARIANT_LPCALC,
eCSSProperty_padding_inline_start,
eCSSProperty_padding_inline_end);
}
bool bool
CSSParserImpl::ParseQuotes() CSSParserImpl::ParseQuotes()
{ {
+26
View File
@@ -2494,6 +2494,13 @@ CSS_PROP_SHORTHAND(
CSS_PROPERTY_UNITLESS_LENGTH_QUIRK | CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
CSS_PROPERTY_APPLIES_TO_PAGE_RULE, CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
"") "")
CSS_PROP_SHORTHAND(
margin-block,
margin_block,
MarginBlock,
CSS_PROPERTY_PARSE_FUNCTION |
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
"")
CSS_PROP_LOGICAL( CSS_PROP_LOGICAL(
margin-block-end, margin-block-end,
margin_block_end, margin_block_end,
@@ -2546,6 +2553,13 @@ CSS_PROP_MARGIN(
nullptr, nullptr,
offsetof(nsStyleMargin, mMargin), offsetof(nsStyleMargin, mMargin),
eStyleAnimType_Sides_Bottom) eStyleAnimType_Sides_Bottom)
CSS_PROP_SHORTHAND(
margin-inline,
margin_inline,
MarginInline,
CSS_PROPERTY_PARSE_FUNCTION |
CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
"")
CSS_PROP_LOGICAL( CSS_PROP_LOGICAL(
margin-inline-end, margin-inline-end,
margin_inline_end, margin_inline_end,
@@ -3245,6 +3259,12 @@ CSS_PROP_SHORTHAND(
CSS_PROPERTY_PARSE_FUNCTION | CSS_PROPERTY_PARSE_FUNCTION |
CSS_PROPERTY_UNITLESS_LENGTH_QUIRK, CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
"") "")
CSS_PROP_SHORTHAND(
padding-block,
padding_block,
PaddingBlock,
CSS_PROPERTY_PARSE_FUNCTION,
"")
CSS_PROP_LOGICAL( CSS_PROP_LOGICAL(
padding-block-end, padding-block-end,
padding_block_end, padding_block_end,
@@ -3303,6 +3323,12 @@ CSS_PROP_PADDING(
nullptr, nullptr,
offsetof(nsStylePadding, mPadding), offsetof(nsStylePadding, mPadding),
eStyleAnimType_Sides_Bottom) eStyleAnimType_Sides_Bottom)
CSS_PROP_SHORTHAND(
padding-inline,
padding_inline,
PaddingInline,
CSS_PROPERTY_PARSE_FUNCTION,
"")
CSS_PROP_LOGICAL( CSS_PROP_LOGICAL(
padding-inline-end, padding-inline-end,
padding_inline_end, padding_inline_end,
+23
View File
@@ -2927,6 +2927,17 @@ static const nsCSSPropertyID gMarginSubpropTable[] = {
eCSSProperty_UNKNOWN eCSSProperty_UNKNOWN
}; };
static const nsCSSPropertyID gMarginBlockSubpropTable[] = {
eCSSProperty_margin_block_start,
eCSSProperty_margin_block_end,
eCSSProperty_UNKNOWN
};
static const nsCSSPropertyID gMarginInlineSubpropTable[] = {
eCSSProperty_margin_inline_start,
eCSSProperty_margin_inline_end,
eCSSProperty_UNKNOWN
};
static const nsCSSPropertyID gOutlineSubpropTable[] = { static const nsCSSPropertyID gOutlineSubpropTable[] = {
// nsCSSDeclaration.cpp outputs the subproperties in this order. // nsCSSDeclaration.cpp outputs the subproperties in this order.
@@ -3023,6 +3034,18 @@ static const nsCSSPropertyID gPaddingSubpropTable[] = {
eCSSProperty_UNKNOWN eCSSProperty_UNKNOWN
}; };
static const nsCSSPropertyID gPaddingBlockSubpropTable[] = {
eCSSProperty_padding_block_start,
eCSSProperty_padding_block_end,
eCSSProperty_UNKNOWN
};
static const nsCSSPropertyID gPaddingInlineSubpropTable[] = {
eCSSProperty_padding_inline_start,
eCSSProperty_padding_inline_end,
eCSSProperty_UNKNOWN
};
static const nsCSSPropertyID gTextDecorationSubpropTable[] = { static const nsCSSPropertyID gTextDecorationSubpropTable[] = {
eCSSProperty_text_decoration_color, eCSSProperty_text_decoration_color,
eCSSProperty_text_decoration_line, eCSSProperty_text_decoration_line,
+64
View File
@@ -1810,6 +1810,22 @@ var gCSSProperties = {
other_values: [ "rect(3px 20px 15px 4px)", "rect(17px, 21px, 33px, 2px)" ], other_values: [ "rect(3px 20px 15px 4px)", "rect(17px, 21px, 33px, 2px)" ],
invalid_values: [ "rect(17px, 21px, 33, 2px)" ] invalid_values: [ "rect(17px, 21px, 33, 2px)" ]
}, },
"margin-inline": {
domProp: "marginInline",
inherited: false,
type: CSS_TYPE_TRUE_SHORTHAND,
subproperties: [ "margin-inline-start", "margin-inline-end" ],
initial_values: [ "0", "0px 0em" ],
other_values: [ "1px", "3em 1%", "5%",
"calc(2px) 1%",
"calc(-2px) 1%",
"calc(50%) 1%",
"calc(3*25px) calc(2px)",
"calc(25px*3) 1em",
"calc(3*25px + 50%) calc(3*25px - 50%)",
],
invalid_values: [ "5", "..25px", ".+5px", ".px", "-.px", "++5px", "-+4px", "+-3px", "--7px", "+-.6px", "-+.5px", "++.7px", "--.4px" ],
},
"margin-inline-end": { "margin-inline-end": {
domProp: "marginInlineEnd", domProp: "marginInlineEnd",
inherited: false, inherited: false,
@@ -1959,6 +1975,22 @@ var gCSSProperties = {
], ],
invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px" ] invalid_values: [ "-1px", "4px -2px", "inherit 2px", "2px inherit", "2", "2px 2", "2 2px" ]
}, },
"padding-inline": {
domProp: "paddingInline",
inherited: false,
type: CSS_TYPE_TRUE_SHORTHAND,
subproperties: [ "padding-inline-start", "padding-inline-end" ],
initial_values: [ "0", "0px 0em" ],
other_values: [ "1px", "3em 1%", "5%",
"calc(2px) 1%",
"calc(-2px) 1%",
"calc(50%) 1%",
"calc(3*25px) calc(2px)",
"calc(25px*3) 1em",
"calc(3*25px + 50%) calc(3*25px - 50%)",
],
invalid_values: [ "5", "..25px", ".+5px", ".px", "-.px", "++5px", "-+4px", "+-3px", "--7px", "+-.6px", "-+.5px", "++.7px", "--.4px" ],
},
"padding-inline-end": { "padding-inline-end": {
domProp: "paddingInlineEnd", domProp: "paddingInlineEnd",
inherited: false, inherited: false,
@@ -5269,6 +5301,22 @@ var gCSSProperties = {
], ],
invalid_values: [ "none" ], invalid_values: [ "none" ],
}, },
"margin-block": {
domProp: "marginBlock",
inherited: false,
type: CSS_TYPE_TRUE_SHORTHAND,
subproperties: [ "margin-block-start", "margin-block-end" ],
initial_values: [ "0", "0px 0em" ],
other_values: [ "1px", "3em 1%", "5%",
"calc(2px) 1%",
"calc(-2px) 1%",
"calc(50%) 1%",
"calc(3*25px) calc(2px)",
"calc(25px*3) 1em",
"calc(3*25px + 50%) calc(3*25px - 50%)",
],
invalid_values: [ "5", "..25px", ".+5px", ".px", "-.px", "++5px", "-+4px", "+-3px", "--7px", "+-.6px", "-+.5px", "++.7px", "--.4px" ],
},
"margin-block-end": { "margin-block-end": {
domProp: "marginBlockEnd", domProp: "marginBlockEnd",
inherited: false, inherited: false,
@@ -5531,6 +5579,22 @@ var gCSSProperties = {
alias_for: "inset-inline-end", alias_for: "inset-inline-end",
subproperties: [ "inset-inline-end" ], subproperties: [ "inset-inline-end" ],
}, },
"padding-block": {
domProp: "paddingBlock",
inherited: false,
type: CSS_TYPE_TRUE_SHORTHAND,
subproperties: [ "padding-block-start", "padding-block-end" ],
initial_values: [ "0", "0px 0em" ],
other_values: [ "1px", "3em 1%", "5%",
"calc(2px) 1%",
"calc(-2px) 1%",
"calc(50%) 1%",
"calc(3*25px) calc(2px)",
"calc(25px*3) 1em",
"calc(3*25px + 50%) calc(3*25px - 50%)",
],
invalid_values: [ "5", "..25px", ".+5px", ".px", "-.px", "++5px", "-+4px", "+-3px", "--7px", "+-.6px", "-+.5px", "++.7px", "--.4px" ],
},
"padding-block-end": { "padding-block-end": {
domProp: "paddingBlockEnd", domProp: "paddingBlockEnd",
inherited: false, inherited: false,