aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/webidls/CSSStyleDeclaration.webidl8
-rw-r--r--components/style/properties/helpers.mako.rs8
-rw-r--r--components/style/properties/longhand/position.mako.rs11
3 files changed, 22 insertions, 5 deletions
diff --git a/components/script/dom/webidls/CSSStyleDeclaration.webidl b/components/script/dom/webidls/CSSStyleDeclaration.webidl
index 0f0b483d0b1..4314eca74f9 100644
--- a/components/script/dom/webidls/CSSStyleDeclaration.webidl
+++ b/components/script/dom/webidls/CSSStyleDeclaration.webidl
@@ -321,6 +321,14 @@ partial interface CSSStyleDeclaration {
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString right;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString left;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString bottom;
+ [SetterThrows, TreatNullAs=EmptyString] attribute DOMString offset-block-start;
+ [SetterThrows, TreatNullAs=EmptyString] attribute DOMString offsetBlockStart;
+ [SetterThrows, TreatNullAs=EmptyString] attribute DOMString offset-block-end;
+ [SetterThrows, TreatNullAs=EmptyString] attribute DOMString offsetBlockEnd;
+ [SetterThrows, TreatNullAs=EmptyString] attribute DOMString offset-inline-start;
+ [SetterThrows, TreatNullAs=EmptyString] attribute DOMString offsetInlineStart;
+ [SetterThrows, TreatNullAs=EmptyString] attribute DOMString offset-inline-end;
+ [SetterThrows, TreatNullAs=EmptyString] attribute DOMString offsetInlineEnd;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString height;
[SetterThrows, TreatNullAs=EmptyString] attribute DOMString minHeight;
diff --git a/components/style/properties/helpers.mako.rs b/components/style/properties/helpers.mako.rs
index 274dc35c998..4fdbeda88c8 100644
--- a/components/style/properties/helpers.mako.rs
+++ b/components/style/properties/helpers.mako.rs
@@ -563,13 +563,15 @@
side = maybe_side[0]
elif len(maybe_size) == 1:
size = maybe_size[0]
+ def phys_ident(side, phy_side):
+ return to_rust_ident(name.replace(side, phy_side).replace("offset-", ""))
%>
% if side is not None:
use logical_geometry::PhysicalSide;
match wm.${to_rust_ident(side)}_physical_side() {
% for phy_side in PHYSICAL_SIDES:
PhysicalSide::${phy_side.title()} => {
- ${caller.inner(physical_ident=to_rust_ident(name.replace(side, phy_side)))}
+ ${caller.inner(physical_ident=phys_ident(side, phy_side))}
}
% endfor
}
@@ -581,9 +583,9 @@
physical_size = ("width", "height")
%>
if wm.is_vertical() {
- ${caller.inner(physical_ident=to_rust_ident(name.replace(size, physical_size[1])))}
+ ${caller.inner(physical_ident=phys_ident(size, physical_size[1]))}
} else {
- ${caller.inner(physical_ident=to_rust_ident(name.replace(size, physical_size[0])))}
+ ${caller.inner(physical_ident=phys_ident(size, physical_size[0]))}
}
% else:
<% raise Exception("Don't know what to do with logical property %s" % name) %>
diff --git a/components/style/properties/longhand/position.mako.rs b/components/style/properties/longhand/position.mako.rs
index 0d05c2253d8..1600045e609 100644
--- a/components/style/properties/longhand/position.mako.rs
+++ b/components/style/properties/longhand/position.mako.rs
@@ -3,15 +3,22 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
<%namespace name="helpers" file="/helpers.mako.rs" />
-<% from data import ALL_SIZES %>
+<% from data import ALL_SIZES, PHYSICAL_SIDES, LOGICAL_SIDES %>
<% data.new_style_struct("Position", inherited=False) %>
-% for side in ["top", "right", "bottom", "left"]:
+// "top" / "left" / "bottom" / "right"
+% for side in PHYSICAL_SIDES:
${helpers.predefined_type(side, "LengthOrPercentageOrAuto",
"computed::LengthOrPercentageOrAuto::Auto",
animatable=True)}
% endfor
+// offset-* logical properties, map to "top" / "left" / "bottom" / "right"
+% for side in LOGICAL_SIDES:
+ ${helpers.predefined_type("offset-" + side, "LengthOrPercentageOrAuto",
+ "computed::LengthOrPercentageOrAuto::Auto",
+ animatable=True, logical=True)}
+% endfor
<%helpers:longhand name="z-index" animatable="True">
use values::NoViewportPercentage;