From 0c37c0db8f3ad975a24717c6b34fdc83db1967ad Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 30 Dec 2022 22:37:02 +0000 Subject: [PATCH 1/7] Issue #2075 - Part 1: Rename offset-* logical properties to inset-* This adds aliases behind a pref with the old offset-* names --- layout/style/nsCSSPropAliasList.h | 16 ++++++++++++++++ layout/style/nsCSSPropList.h | 24 ++++++++++++------------ modules/libpref/init/all.js | 4 ++++ 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/layout/style/nsCSSPropAliasList.h b/layout/style/nsCSSPropAliasList.h index 1881c22d9d..2b95974ab7 100644 --- a/layout/style/nsCSSPropAliasList.h +++ b/layout/style/nsCSSPropAliasList.h @@ -50,6 +50,22 @@ CSS_PROP_ALIAS(word-wrap, overflow_wrap, WordWrap, "") +CSS_PROP_ALIAS(offset-block-start, + inset_block_start, + OffsetBlockStart, + "layout.css.offset-logical-properties.enabled") +CSS_PROP_ALIAS(offset-block-end, + inset_block_end, + OffsetBlockEnd, + "layout.css.offset-logical-properties.enabled") +CSS_PROP_ALIAS(offset-inline-start, + inset_inline_start, + OffsetInlineStart, + "layout.css.offset-logical-properties.enabled") +CSS_PROP_ALIAS(offset-inline-end, + inset_inline_end, + OffsetInlineEnd, + "layout.css.offset-logical-properties.enabled") CSS_PROP_ALIAS(-moz-transform-origin, transform_origin, MozTransformOrigin, diff --git a/layout/style/nsCSSPropList.h b/layout/style/nsCSSPropList.h index ae5de51e5a..bd749df5b4 100644 --- a/layout/style/nsCSSPropList.h +++ b/layout/style/nsCSSPropList.h @@ -2979,9 +2979,9 @@ CSS_PROP_POSITION( offsetof(nsStylePosition, mObjectPosition), eStyleAnimType_Custom) CSS_PROP_LOGICAL( - offset-block-end, - offset_block_end, - OffsetBlockEnd, + inset-block-end, + inset_block_end, + InsetBlockEnd, CSS_PROPERTY_PARSE_VALUE | CSS_PROPERTY_STORES_CALC | CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH | @@ -2996,9 +2996,9 @@ CSS_PROP_LOGICAL( CSS_PROP_NO_OFFSET, eStyleAnimType_None) CSS_PROP_LOGICAL( - offset-block-start, - offset_block_start, - OffsetBlockStart, + inset-block-start, + inset_block_start, + InsetBlockStart, CSS_PROPERTY_PARSE_VALUE | CSS_PROPERTY_STORES_CALC | CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH | @@ -3012,9 +3012,9 @@ CSS_PROP_LOGICAL( CSS_PROP_NO_OFFSET, eStyleAnimType_None) CSS_PROP_LOGICAL( - offset-inline-end, - offset_inline_end, - OffsetInlineEnd, + inset-inline-end, + inset_inline_end, + InsetInlineEnd, CSS_PROPERTY_PARSE_VALUE | CSS_PROPERTY_STORES_CALC | CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH | @@ -3028,9 +3028,9 @@ CSS_PROP_LOGICAL( CSS_PROP_NO_OFFSET, eStyleAnimType_None) CSS_PROP_LOGICAL( - offset-inline-start, - offset_inline_start, - OffsetInlineStart, + inset-inline-start, + inset_inline_start, + InsetInlineStart, CSS_PROPERTY_PARSE_VALUE | CSS_PROPERTY_STORES_CALC | CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH | diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 8e9a780512..209603f1ef 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -2570,6 +2570,10 @@ pref("layout.css.background-blend-mode.enabled", true); // Is support for background-clip:text enabled? pref("layout.css.background-clip-text.enabled", true); +// Is support for the non-standard offset-* logical property aliases enabled? +// These map to their inset-* equivalents. +pref("layout.css.offset-logical-properties.enabled", true); + // Is support for CSS text-combine-upright (tate-chu-yoko) enabled? pref("layout.css.text-combine-upright.enabled", true); // Is support for CSS text-combine-upright: digits 2-4 enabled? From 07af4123d1efc04f0fd03e3b462ee1d7bfd8440d Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sat, 31 Dec 2022 01:29:03 +0000 Subject: [PATCH 2/7] Issue #2075 - Part 2: Update devtools for inset-* --- devtools/client/shared/components/tabs/tabs.css | 2 +- devtools/client/themes/common.css | 2 +- devtools/client/themes/widgets.css | 2 +- devtools/server/actors/highlighters.css | 4 ++-- layout/style/res/html.css | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/devtools/client/shared/components/tabs/tabs.css b/devtools/client/shared/components/tabs/tabs.css index 0e70549c55..12901c4026 100644 --- a/devtools/client/shared/components/tabs/tabs.css +++ b/devtools/client/shared/components/tabs/tabs.css @@ -46,7 +46,7 @@ .tabs .all-tabs-menu { position: absolute; top: 0; - offset-inline-end: 0; + inset-inline-end: 0; width: 15px; height: 100%; border-inline-start: 1px solid var(--theme-splitter-color); diff --git a/devtools/client/themes/common.css b/devtools/client/themes/common.css index 133770150c..8b807d0dba 100644 --- a/devtools/client/themes/common.css +++ b/devtools/client/themes/common.css @@ -652,7 +652,7 @@ checkbox:-moz-focusring { .devtools-searchinput-clear { position: absolute; top: 3.5px; - offset-inline-end: 7px; + inset-inline-end: 7px; padding: 0; border: 0; width: 16px; diff --git a/devtools/client/themes/widgets.css b/devtools/client/themes/widgets.css index a8c1dc7349..3e5fa457ee 100644 --- a/devtools/client/themes/widgets.css +++ b/devtools/client/themes/widgets.css @@ -216,7 +216,7 @@ content: ""; position: absolute; top: 1px; - offset-inline-start: 0; + inset-inline-start: 0; width: 12px; height: 22px; background-repeat: no-repeat; diff --git a/devtools/server/actors/highlighters.css b/devtools/server/actors/highlighters.css index 87375ea36a..3cc9265851 100644 --- a/devtools/server/actors/highlighters.css +++ b/devtools/server/actors/highlighters.css @@ -521,8 +521,8 @@ width: 16px; height: 16px; position: absolute; - offset-inline-start: 3px; - offset-block-start: 3px; + inset-inline-start: 3px; + inset-block-start: 3px; box-shadow: 0px 0px 0px black; border: solid 1px #fff; } diff --git a/layout/style/res/html.css b/layout/style/res/html.css index 8593abaab7..0ce8901252 100644 --- a/layout/style/res/html.css +++ b/layout/style/res/html.css @@ -809,8 +809,8 @@ input[type="date"] > xul|datetimebox { dialog { position: absolute; - offset-inline-start: 0; - offset-inline-end: 0; + inset-inline-start: 0; + inset-inline-end: 0; color: black; margin: auto; border-width: initial; From 48087df576063eb7733600bb89d98ca1a06224f4 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sat, 31 Dec 2022 01:30:14 +0000 Subject: [PATCH 3/7] Issue #2075 - Part 3: Regenerate devtools CSS database Using `mach devtools-css-db` --- .../shared/css/generated/properties-db.js | 88 +++++++++++++++++-- 1 file changed, 80 insertions(+), 8 deletions(-) diff --git a/devtools/shared/css/generated/properties-db.js b/devtools/shared/css/generated/properties-db.js index cff6dcf686..bb6ab1e5e8 100644 --- a/devtools/shared/css/generated/properties-db.js +++ b/devtools/shared/css/generated/properties-db.js @@ -3144,10 +3144,10 @@ exports.CSS_PROPERTIES = { "mix-blend-mode", "object-fit", "object-position", - "offset-block-end", - "offset-block-start", - "offset-inline-end", - "offset-inline-start", + "inset-block-end", + "inset-block-start", + "inset-inline-end", + "inset-inline-start", "opacity", "order", "-moz-orient", @@ -6913,6 +6913,78 @@ exports.CSS_PROPERTIES = { "unset" ] }, + "inset-block-end": { + "isInherited": false, + "subproperties": [ + "inset-block-end" + ], + "supports": [ + 6, + 8 + ], + "values": [ + "-moz-calc", + "auto", + "calc", + "inherit", + "initial", + "unset" + ] + }, + "inset-block-start": { + "isInherited": false, + "subproperties": [ + "inset-block-start" + ], + "supports": [ + 6, + 8 + ], + "values": [ + "-moz-calc", + "auto", + "calc", + "inherit", + "initial", + "unset" + ] + }, + "inset-inline-end": { + "isInherited": false, + "subproperties": [ + "inset-inline-end" + ], + "supports": [ + 6, + 8 + ], + "values": [ + "-moz-calc", + "auto", + "calc", + "inherit", + "initial", + "unset" + ] + }, + "inset-inline-start": { + "isInherited": false, + "subproperties": [ + "inset-inline-start" + ], + "supports": [ + 6, + 8 + ], + "values": [ + "-moz-calc", + "auto", + "calc", + "inherit", + "initial", + "unset" + ] + }, "isolation": { "isInherited": false, "subproperties": [ @@ -7852,7 +7924,7 @@ exports.CSS_PROPERTIES = { "offset-block-end": { "isInherited": false, "subproperties": [ - "offset-block-end" + "inset-block-end" ], "supports": [ 6, @@ -7870,7 +7942,7 @@ exports.CSS_PROPERTIES = { "offset-block-start": { "isInherited": false, "subproperties": [ - "offset-block-start" + "inset-block-start" ], "supports": [ 6, @@ -7888,7 +7960,7 @@ exports.CSS_PROPERTIES = { "offset-inline-end": { "isInherited": false, "subproperties": [ - "offset-inline-end" + "inset-inline-end" ], "supports": [ 6, @@ -7906,7 +7978,7 @@ exports.CSS_PROPERTIES = { "offset-inline-start": { "isInherited": false, "subproperties": [ - "offset-inline-start" + "inset-inline-start" ], "supports": [ 6, From 1b22ef40f9b735fd661504ffd926c96bd8db503f Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sat, 31 Dec 2022 01:32:15 +0000 Subject: [PATCH 4/7] Issue #2075 - Part 4: Update tests * Update reftests to use inset-* * Update property database * Update logical properties test --- .../css-grid/grid-align-content-001-ref.html | 20 +-- .../css-grid/grid-item-align-001-ref.html | 12 +- .../css-grid/grid-item-align-002-ref.html | 2 +- .../css-grid/grid-item-align-003-ref.html | 10 +- .../css-grid/grid-item-justify-001-ref.html | 2 +- .../css-grid/grid-item-justify-002-ref.html | 2 +- .../grid-justify-content-001-ref.html | 24 ++-- .../css-grid/grid-row-gap-001-ref.html | 20 +-- ...rid-placement-auto-row-sparse-001-ref.html | 98 ++++++------- .../rtl-grid-placement-definite-001-ref.html | 16 +-- ...rid-placement-auto-row-sparse-001-ref.html | 98 ++++++------- ...rid-placement-auto-row-sparse-001-ref.html | 114 +++++++-------- layout/style/test/property_database.js | 132 +++++++++++------- .../style/test/test_logical_properties.html | 4 +- 14 files changed, 295 insertions(+), 259 deletions(-) diff --git a/layout/reftests/css-grid/grid-align-content-001-ref.html b/layout/reftests/css-grid/grid-align-content-001-ref.html index f67baf5307..ab4ad2d298 100644 --- a/layout/reftests/css-grid/grid-align-content-001-ref.html +++ b/layout/reftests/css-grid/grid-align-content-001-ref.html @@ -45,20 +45,20 @@ item3 { grid-area: 3 / 3; } .vlr { writing-mode: vertical-lr; direction:rtl; } .vrl { writing-mode: vertical-rl; direction:ltr; } -.aend *, .aflexend * { offset-block-start:25px; } -.acenter * { offset-block-start:12.5px; } +.aend *, .aflexend * { inset-block-start:25px; } +.acenter * { inset-block-start:12.5px; } -.aspace-between item2 { offset-block-start:12.5px; } -.aspace-between item3 { offset-block-start:25px; } +.aspace-between item2 { inset-block-start:12.5px; } +.aspace-between item3 { inset-block-start:25px; } -.aspace-around item1 { offset-block-start:4.1666px; } -.aspace-around item2 { offset-block-start:12.5px; } -.aspace-around item3 { offset-block-start:20.8333px; } +.aspace-around item1 { inset-block-start:4.1666px; } +.aspace-around item2 { inset-block-start:12.5px; } +.aspace-around item3 { inset-block-start:20.8333px; } -.aspace-evenly item1 { offset-block-start:6.25px; } -.aspace-evenly item2 { offset-block-start:12.5px; } -.aspace-evenly item3 { offset-block-start:18.75px; } +.aspace-evenly item1 { inset-block-start:6.25px; } +.aspace-evenly item2 { inset-block-start:12.5px; } +.aspace-evenly item3 { inset-block-start:18.75px; } .astretch2 { grid-template-rows: 1fr 5px 7px; } .astretch3 { grid-template-rows: 15.5px 17.5px 7px; } diff --git a/layout/reftests/css-grid/grid-item-align-001-ref.html b/layout/reftests/css-grid/grid-item-align-001-ref.html index 35bb263ac7..e1d9172304 100644 --- a/layout/reftests/css-grid/grid-item-align-001-ref.html +++ b/layout/reftests/css-grid/grid-item-align-001-ref.html @@ -34,7 +34,7 @@ span { border-block-start: 2px solid blue; border-inline-start: 2px solid lime; margin: 1px 1px 2px 2px; - offset-inline-start: 1px; + inset-inline-start: 1px; } abs1,abs2,abs3,abs4 { @@ -63,11 +63,11 @@ abs4 { display:none; } .astart,.aflexstart,.aleft,.aright,.astretch1,.astretch2,.astretch2,.astretch3, .astretch4,.astretch5,.astretch6,.astretch7,.aauto { - offset-block-start: 3px; + inset-block-start: 3px; } -.aend,.aflexend { offset-block-start: 9px; } -.acenter { offset-block-start: 5px; margin-block-start:2px; } +.aend,.aflexend { inset-block-start: 9px; } +.acenter { inset-block-start: 5px; margin-block-start:2px; } .hl .astretch2, .hr .astretch2 { height: 15px; } .hl .astretch3, .hr .astretch3 { height: 15px; } @@ -80,7 +80,7 @@ abs4 { display:none; } .astretch7 { width:0; height:9px; } .hl .hr {margin-left:4px;} -.hl .vl {offset-block-start: 1px; offset-inline-start:3px;} +.hl .vl {inset-block-start: 1px; inset-inline-start:3px;} .hl .vl.aend, .hl .vl.aflexend { margin-top: 7px; } .hl .vl.acenter { margin-top:4px; } @@ -115,7 +115,7 @@ abs4 { display:none; } .hr .vrl.aend, .hr .vrl.aflexend {margin-top:9px; margin-right:-7px; } .hr .vrl.acenter {margin-top:6px; margin-right:-3px; } -.vl span { offset-block-start: 1px; offset-inline-start: 3px; } +.vl span { inset-block-start: 1px; inset-inline-start: 3px; } .vl .astretch4 { width:15px; } .vl .astretch5 { width:13px; } diff --git a/layout/reftests/css-grid/grid-item-align-002-ref.html b/layout/reftests/css-grid/grid-item-align-002-ref.html index 73d60d4c20..de59dea26d 100644 --- a/layout/reftests/css-grid/grid-item-align-002-ref.html +++ b/layout/reftests/css-grid/grid-item-align-002-ref.html @@ -28,7 +28,7 @@ separator { clear:both; display:block; height:6px; } wrap { display: block; position: relative; - offset-inline-start:1px; + inset-inline-start:1px; background: white; block-size:20px; inline-size:32px; diff --git a/layout/reftests/css-grid/grid-item-align-003-ref.html b/layout/reftests/css-grid/grid-item-align-003-ref.html index f83366cdaa..a2f14f869e 100644 --- a/layout/reftests/css-grid/grid-item-align-003-ref.html +++ b/layout/reftests/css-grid/grid-item-align-003-ref.html @@ -29,7 +29,7 @@ separator { clear:both; display:block; height:6px; } wrap { display: block; position: relative; - offset-inline-start:1px; + inset-inline-start:1px; background: white; block-size:20px; inline-size:32px; @@ -65,10 +65,10 @@ abs4 { right: 35px; } .vlr { writing-mode: vertical-lr; direction:rtl; } .vrl { writing-mode: vertical-rl; direction:ltr; } -.unsafe.hl.aend, .unsafe.hl.aflexend { offset-block-start:-15px; } -.unsafe.vrl.aend, .unsafe.vrl.aflexend { offset-inline-start:-15px; } -.unsafe.hl.acenter { offset-block-start:-7px; } -.unsafe.vrl.acenter { offset-inline-start:-7px; } +.unsafe.hl.aend, .unsafe.hl.aflexend { inset-block-start:-15px; } +.unsafe.vrl.aend, .unsafe.vrl.aflexend { inset-inline-start:-15px; } +.unsafe.hl.acenter { inset-block-start:-7px; } +.unsafe.vrl.acenter { inset-inline-start:-7px; } .astretch2 { width:40px; height:15px; } .astretch3 { height:15px; } .astretch4 { width:0; } diff --git a/layout/reftests/css-grid/grid-item-justify-001-ref.html b/layout/reftests/css-grid/grid-item-justify-001-ref.html index 99c8536454..cfe1095546 100644 --- a/layout/reftests/css-grid/grid-item-justify-001-ref.html +++ b/layout/reftests/css-grid/grid-item-justify-001-ref.html @@ -29,7 +29,7 @@ separator { clear:both; display:block; height:6px; } wrap { display: block; position: relative; - offset-inline-start: 1px; + inset-inline-start: 1px; background: white; block-size: 20px; inline-size: 32px; diff --git a/layout/reftests/css-grid/grid-item-justify-002-ref.html b/layout/reftests/css-grid/grid-item-justify-002-ref.html index 39e7d26f0e..c723bc3915 100644 --- a/layout/reftests/css-grid/grid-item-justify-002-ref.html +++ b/layout/reftests/css-grid/grid-item-justify-002-ref.html @@ -29,7 +29,7 @@ separator { clear:both; display:block; height:6px; } wrap { display: block; position: relative; - offset-inline-start: 1px; + inset-inline-start: 1px; background: white; block-size: 20px; inline-size: 32px; diff --git a/layout/reftests/css-grid/grid-justify-content-001-ref.html b/layout/reftests/css-grid/grid-justify-content-001-ref.html index fa92e6cbf4..5e43a86bb4 100644 --- a/layout/reftests/css-grid/grid-justify-content-001-ref.html +++ b/layout/reftests/css-grid/grid-justify-content-001-ref.html @@ -45,21 +45,21 @@ item3 { grid-area: 3 / 3; } .vlr { writing-mode: vertical-lr; direction:rtl; } .vrl { writing-mode: vertical-rl; direction:ltr; } -.jend * , .jflexend * { offset-inline-start:17px; } -.jcenter * { offset-inline-start:8.5px; } -.hr.jleft * , .vlr.jleft * { offset-inline-start:17px; } -.hl.jright * , .vrl.jright * , .vl.jright * , .vr.jright * { offset-inline-start:17px; } +.jend * , .jflexend * { inset-inline-start:17px; } +.jcenter * { inset-inline-start:8.5px; } +.hr.jleft * , .vlr.jleft * { inset-inline-start:17px; } +.hl.jright * , .vrl.jright * , .vl.jright * , .vr.jright * { inset-inline-start:17px; } -.jspace-between item2 { offset-inline-start:8.5px; } -.jspace-between item3 { offset-inline-start:17px; } +.jspace-between item2 { inset-inline-start:8.5px; } +.jspace-between item3 { inset-inline-start:17px; } -.jspace-around item1 { offset-inline-start:2.85px; } -.jspace-around item2 { offset-inline-start:8.5px; } -.jspace-around item3 { offset-inline-start:14.16px; } +.jspace-around item1 { inset-inline-start:2.85px; } +.jspace-around item2 { inset-inline-start:8.5px; } +.jspace-around item3 { inset-inline-start:14.16px; } -.jspace-evenly item1 { offset-inline-start:4.25px; } -.jspace-evenly item2 { offset-inline-start:8.5px; } -.jspace-evenly item3 { offset-inline-start:12.75px; } +.jspace-evenly item1 { inset-inline-start:4.25px; } +.jspace-evenly item2 { inset-inline-start:8.5px; } +.jspace-evenly item3 { inset-inline-start:12.75px; } .jstretch2 { grid-template-columns:1fr 7px 5px; } .jstretch3 { grid-template-columns:19.5px 15.5px 5px; } diff --git a/layout/reftests/css-grid/grid-row-gap-001-ref.html b/layout/reftests/css-grid/grid-row-gap-001-ref.html index cfa815514a..34b8b1ddb4 100644 --- a/layout/reftests/css-grid/grid-row-gap-001-ref.html +++ b/layout/reftests/css-grid/grid-row-gap-001-ref.html @@ -45,20 +45,20 @@ item3 { grid-area: 5 / 3; } .vlr { writing-mode: vertical-lr; direction:rtl; } .vrl { writing-mode: vertical-rl; direction:ltr; } -.aend *, .aflexend * { offset-block-start:23px; } -.acenter * { offset-block-start:11.5px; } +.aend *, .aflexend * { inset-block-start:23px; } +.acenter * { inset-block-start:11.5px; } -.aspace-between item2 { offset-block-start:11.5px; } -.aspace-between item3 { offset-block-start:23px; } +.aspace-between item2 { inset-block-start:11.5px; } +.aspace-between item3 { inset-block-start:23px; } -.aspace-around item1 { offset-block-start:4.1666px; } -.aspace-around item2 { offset-block-start:11.5px; } -.aspace-around item3 { offset-block-start:18.8333px; } +.aspace-around item1 { inset-block-start:4.1666px; } +.aspace-around item2 { inset-block-start:11.5px; } +.aspace-around item3 { inset-block-start:18.8333px; } -.aspace-evenly item1 { offset-block-start:6.25px; } -.aspace-evenly item2 { offset-block-start:11.5px; } -.aspace-evenly item3 { offset-block-start:16.75px; } +.aspace-evenly item1 { inset-block-start:6.25px; } +.aspace-evenly item2 { inset-block-start:11.5px; } +.aspace-evenly item3 { inset-block-start:16.75px; } .astretch2 { grid-template-rows: 1fr 1px 5px 1px 7px; } .astretch3 { grid-template-rows: 14.5px 1px 16.3333px 1px 7px; } diff --git a/layout/reftests/css-grid/rtl-grid-placement-auto-row-sparse-001-ref.html b/layout/reftests/css-grid/rtl-grid-placement-auto-row-sparse-001-ref.html index 205e718f95..9200835bfd 100644 --- a/layout/reftests/css-grid/rtl-grid-placement-auto-row-sparse-001-ref.html +++ b/layout/reftests/css-grid/rtl-grid-placement-auto-row-sparse-001-ref.html @@ -21,126 +21,126 @@ span { } .test1 .a { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; inline-size: 20px; block-size: 20px; } .test1 .b { - offset-block-start: 20px; - offset-inline-start: 20px; + inset-block-start: 20px; + inset-inline-start: 20px; inline-size: 60px; block-size: 20px; } .test1 .c { - offset-block-start: 0; - offset-inline-start: 80px; + inset-block-start: 0; + inset-inline-start: 80px; inline-size: 60px; block-size: 40px; } .test1 .e { - offset-block-start: 20px; - offset-inline-start: 0px; + inset-block-start: 20px; + inset-inline-start: 0px; } .test1 .d2 { - offset-block-start: 0px; - offset-inline-start: 40px; + inset-block-start: 0px; + inset-inline-start: 40px; } .test2 .a { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; inline-size: 60px; block-size: 20px; } .test2 .b { - offset-block-start: 20px; - offset-inline-start: 20px; + inset-block-start: 20px; + inset-inline-start: 20px; inline-size: 20px; block-size: 20px; } .test2 .c { - offset-block-start: 0; - offset-inline-start: 80px; + inset-block-start: 0; + inset-inline-start: 80px; inline-size: 60px; block-size: 40px; } .test2 .e { - offset-block-start: 20px; - offset-inline-start: 0px; + inset-block-start: 20px; + inset-inline-start: 0px; } .test2 .d2 { - offset-block-start: 20px; - offset-inline-start: 40px; + inset-block-start: 20px; + inset-inline-start: 40px; } .test3 .a { - offset-block-start: 0; - offset-inline-start: 0; + inset-block-start: 0; + inset-inline-start: 0; inline-size: 60px; block-size: 40px; } .test3 .b { - offset-block-start: 40px; - offset-inline-start: 20px; + inset-block-start: 40px; + inset-inline-start: 20px; inline-size: 60px; block-size: 20px; } .test3 .c { - offset-block-start: 60px; - offset-inline-start: 0px; + inset-block-start: 60px; + inset-inline-start: 0px; inline-size: 60px; block-size: 40px; } -.test3 .d { offset-block-start: 60px; offset-inline-start:60px; } +.test3 .d { inset-block-start: 60px; inset-inline-start:60px; } .test3 .e { - offset-block-start: 20px; - offset-inline-start: 60px; + inset-block-start: 20px; + inset-inline-start: 60px; } .test3 .d2 { - offset-block-start: 80px; - offset-inline-start: 60px; + inset-block-start: 80px; + inset-inline-start: 60px; } .test4 .c { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; inline-size: 60px; block-size: 40px; } -.test4 .d { offset-block-start: 40px; } +.test4 .d { inset-block-start: 40px; } .test4 .e { - offset-block-start: 20px; - offset-inline-start: 0px; + inset-block-start: 20px; + inset-inline-start: 0px; } .test4 .d2 { - offset-block-start: 40px; - offset-inline-start: 20px; + inset-block-start: 40px; + inset-inline-start: 20px; } .test5 .c { - offset-block-start: 20px; - offset-inline-start: 0; + inset-block-start: 20px; + inset-inline-start: 0; inline-size: 60px; block-size: 20px; } .test5 .e { - offset-block-start: 20px; - offset-inline-start: 60px; + inset-block-start: 20px; + inset-inline-start: 60px; } .test5 .d2 { - offset-block-start: 0px; - offset-inline-start: 20px; + inset-block-start: 0px; + inset-inline-start: 20px; } -.test6 { offset-inline-start: 0px; offset-block-start: 20px;} +.test6 { inset-inline-start: 0px; inset-block-start: 20px;} .test6d2 { - offset-block-start: 20px; - offset-inline-start: 140px; + inset-block-start: 20px; + inset-inline-start: 140px; } .test6e { - offset-block-start: 20px; - offset-inline-start: 160px; + inset-block-start: 20px; + inset-inline-start: 160px; } diff --git a/layout/reftests/css-grid/rtl-grid-placement-definite-001-ref.html b/layout/reftests/css-grid/rtl-grid-placement-definite-001-ref.html index 743b917efa..70287b3ab7 100644 --- a/layout/reftests/css-grid/rtl-grid-placement-definite-001-ref.html +++ b/layout/reftests/css-grid/rtl-grid-placement-definite-001-ref.html @@ -24,26 +24,26 @@ span { } .a { - offset-inline-start: 40px; - offset-block-start: 0px; + inset-inline-start: 40px; + inset-block-start: 0px; inline-size: 60px; block-size: 40px; } .b { - offset-inline-start: 20px; - offset-block-start: 40px; + inset-inline-start: 20px; + inset-block-start: 40px; inline-size: 60px; block-size: 20px; } .c { - offset-inline-start: 80px; - offset-block-start: 40px; + inset-inline-start: 80px; + inset-block-start: 40px; inline-size: 60px; block-size: 20px; } .d { - offset-inline-start: 0px; - offset-block-start: 0px; + inset-inline-start: 0px; + inset-block-start: 0px; inline-size: 20px; block-size: 60px; } diff --git a/layout/reftests/css-grid/vlr-grid-placement-auto-row-sparse-001-ref.html b/layout/reftests/css-grid/vlr-grid-placement-auto-row-sparse-001-ref.html index bc90a09556..4a1e6f81e0 100644 --- a/layout/reftests/css-grid/vlr-grid-placement-auto-row-sparse-001-ref.html +++ b/layout/reftests/css-grid/vlr-grid-placement-auto-row-sparse-001-ref.html @@ -25,126 +25,126 @@ span { } .test1 .a { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; inline-size: 20px; block-size: 20px; } .test1 .b { - offset-block-start: 20px; - offset-inline-start: 20px; + inset-block-start: 20px; + inset-inline-start: 20px; inline-size: 60px; block-size: 20px; } .test1 .c { - offset-block-start: 0; - offset-inline-start: 80px; + inset-block-start: 0; + inset-inline-start: 80px; inline-size: 60px; block-size: 40px; } .test1 .e { - offset-block-start: 20px; - offset-inline-start: 0px; + inset-block-start: 20px; + inset-inline-start: 0px; } .test1 .d2 { - offset-block-start: 0px; - offset-inline-start: 40px; + inset-block-start: 0px; + inset-inline-start: 40px; } .test2 .a { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; inline-size: 60px; block-size: 20px; } .test2 .b { - offset-block-start: 20px; - offset-inline-start: 20px; + inset-block-start: 20px; + inset-inline-start: 20px; inline-size: 20px; block-size: 20px; } .test2 .c { - offset-block-start: 0; - offset-inline-start: 80px; + inset-block-start: 0; + inset-inline-start: 80px; inline-size: 60px; block-size: 40px; } .test2 .e { - offset-block-start: 20px; - offset-inline-start: 0px; + inset-block-start: 20px; + inset-inline-start: 0px; } .test2 .d2 { - offset-block-start: 20px; - offset-inline-start: 40px; + inset-block-start: 20px; + inset-inline-start: 40px; } .test3 .a { - offset-block-start: 0; - offset-inline-start: 0; + inset-block-start: 0; + inset-inline-start: 0; inline-size: 60px; block-size: 40px; } .test3 .b { - offset-block-start: 40px; - offset-inline-start: 20px; + inset-block-start: 40px; + inset-inline-start: 20px; inline-size: 60px; block-size: 20px; } .test3 .c { - offset-block-start: 60px; - offset-inline-start: 0px; + inset-block-start: 60px; + inset-inline-start: 0px; inline-size: 60px; block-size: 40px; } -.test3 .d { offset-block-start: 60px; offset-inline-start:60px; } +.test3 .d { inset-block-start: 60px; inset-inline-start:60px; } .test3 .e { - offset-block-start: 20px; - offset-inline-start: 60px; + inset-block-start: 20px; + inset-inline-start: 60px; } .test3 .d2 { - offset-block-start: 80px; - offset-inline-start: 60px; + inset-block-start: 80px; + inset-inline-start: 60px; } .test4 .c { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; inline-size: 60px; block-size: 40px; } -.test4 .d { offset-block-start: 40px; } +.test4 .d { inset-block-start: 40px; } .test4 .e { - offset-block-start: 20px; - offset-inline-start: 0px; + inset-block-start: 20px; + inset-inline-start: 0px; } .test4 .d2 { - offset-block-start: 40px; - offset-inline-start: 20px; + inset-block-start: 40px; + inset-inline-start: 20px; } .test5 .c { - offset-block-start: 20px; - offset-inline-start: 0; + inset-block-start: 20px; + inset-inline-start: 0; inline-size: 60px; block-size: 20px; } .test5 .e { - offset-block-start: 20px; - offset-inline-start: 60px; + inset-block-start: 20px; + inset-inline-start: 60px; } .test5 .d2 { - offset-block-start: 0px; - offset-inline-start: 20px; + inset-block-start: 0px; + inset-inline-start: 20px; } -.test6 { offset-inline-start: 0px; offset-block-start: 20px;} +.test6 { inset-inline-start: 0px; inset-block-start: 20px;} .test6d2 { - offset-block-start: 20px; - offset-inline-start: 140px; + inset-block-start: 20px; + inset-inline-start: 140px; } .test6e { - offset-block-start: 20px; - offset-inline-start: 160px; + inset-block-start: 20px; + inset-inline-start: 160px; } diff --git a/layout/reftests/css-grid/vrl-grid-placement-auto-row-sparse-001-ref.html b/layout/reftests/css-grid/vrl-grid-placement-auto-row-sparse-001-ref.html index 7d2fe1e9e7..a495cceffc 100644 --- a/layout/reftests/css-grid/vrl-grid-placement-auto-row-sparse-001-ref.html +++ b/layout/reftests/css-grid/vrl-grid-placement-auto-row-sparse-001-ref.html @@ -25,144 +25,144 @@ span { } .test1 .a { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; inline-size: 20px; block-size: 20px; } .test1 .b { - offset-block-start: 20px; - offset-inline-start: 20px; + inset-block-start: 20px; + inset-inline-start: 20px; inline-size: 60px; block-size: 20px; } .test1 .c { - offset-block-start: 0; - offset-inline-start: 80px; + inset-block-start: 0; + inset-inline-start: 80px; inline-size: 60px; block-size: 40px; } .test1 .d { - offset-block-start: 0; - offset-inline-start: 0; + inset-block-start: 0; + inset-inline-start: 0; } .test1 .e { - offset-block-start: 20px; - offset-inline-start: 0; + inset-block-start: 20px; + inset-inline-start: 0; } .test1 .d2 { - offset-block-start: 0; - offset-inline-start: 40px; + inset-block-start: 0; + inset-inline-start: 40px; } .test2 .a { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; inline-size: 60px; block-size: 20px; } .test2 .b { - offset-block-start: 20px; - offset-inline-start: 20px; + inset-block-start: 20px; + inset-inline-start: 20px; inline-size: 20px; block-size: 20px; } .test2 .c { - offset-block-start: 0; - offset-inline-start: 80px; + inset-block-start: 0; + inset-inline-start: 80px; inline-size: 60px; block-size: 40px; } .test2 .d { - offset-block-start: 0; - offset-inline-start: 0; + inset-block-start: 0; + inset-inline-start: 0; } .test2 .e { - offset-block-start: 20px; - offset-inline-start: 0; + inset-block-start: 20px; + inset-inline-start: 0; } .test2 .d2 { - offset-block-start: 20px; - offset-inline-start: 40px; + inset-block-start: 20px; + inset-inline-start: 40px; } .test3 .a { - offset-block-start: 0; - offset-inline-start: 0; + inset-block-start: 0; + inset-inline-start: 0; inline-size: 60px; block-size: 40px; } .test3 .b { - offset-block-start: 40px; - offset-inline-start: 20px; + inset-block-start: 40px; + inset-inline-start: 20px; inline-size: 60px; block-size: 20px; } .test3 .c { - offset-block-start: 60px; - offset-inline-start: 0; + inset-block-start: 60px; + inset-inline-start: 0; inline-size: 60px; block-size: 40px; } -.test3 .d { offset-block-start: 60px; offset-inline-start:60px; } +.test3 .d { inset-block-start: 60px; inset-inline-start:60px; } .test3 .e { - offset-block-start: 20px; - offset-inline-start: 60px; + inset-block-start: 20px; + inset-inline-start: 60px; } .test3 .d2 { - offset-block-start: 80px; - offset-inline-start: 60px; + inset-block-start: 80px; + inset-inline-start: 60px; } .test4 .c { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; inline-size: 60px; block-size: 40px; } .test4 .d { - offset-block-start: 40px; - offset-inline-start: 0; + inset-block-start: 40px; + inset-inline-start: 0; } .test4 .e { - offset-block-start: 20px; - offset-inline-start: 0px; + inset-block-start: 20px; + inset-inline-start: 0px; } .test4 .d2 { - offset-block-start: 40px; - offset-inline-start: 20px; + inset-block-start: 40px; + inset-inline-start: 20px; } .test5 .c { - offset-block-start: 20px; - offset-inline-start: 0; + inset-block-start: 20px; + inset-inline-start: 0; inline-size: 60px; block-size: 20px; } .test5 .d { - offset-block-start: 0; - offset-inline-start: 0; + inset-block-start: 0; + inset-inline-start: 0; } .test5 .e { - offset-block-start: 20px; - offset-inline-start: 60px; + inset-block-start: 20px; + inset-inline-start: 60px; } .test5 .d2 { - offset-block-start: 0; - offset-inline-start: 20px; + inset-block-start: 0; + inset-inline-start: 20px; } .test6 { - offset-inline-start: 0; - offset-block-start: 20px; + inset-inline-start: 0; + inset-block-start: 20px; } .test6d2 { - offset-block-start: 20px; - offset-inline-start: 140px; + inset-block-start: 20px; + inset-inline-start: 140px; } .test6e { - offset-block-start: 20px; - offset-inline-start: 160px; + inset-block-start: 20px; + inset-inline-start: 160px; } diff --git a/layout/style/test/property_database.js b/layout/style/test/property_database.js index 0abe930832..9eb7efc38c 100644 --- a/layout/style/test/property_database.js +++ b/layout/style/test/property_database.js @@ -5403,8 +5403,68 @@ var gCSSProperties = { ], invalid_values: [ "none", "5" ] }, - "offset-block-end": { - domProp: "offsetBlockEnd", + "inset-block-end": { + domProp: "insetBlockEnd", + inherited: false, + type: CSS_TYPE_LONGHAND, + logical: true, + get_computed: logical_box_prop_get_computed, + /* FIXME: run tests with multiple prerequisites */ + prerequisites: { "position": "relative" }, + /* XXX 0 may or may not be equal to auto */ + initial_values: [ "auto" ], + other_values: [ "32px", "-3em", "12%", + "calc(2px)", + "calc(-2px)", + "calc(50%)", + "calc(3*25px)", + "calc(25px*3)", + "calc(3*25px + 50%)", + ], + invalid_values: [] + }, + "inset-block-start": { + domProp: "insetBlockStart", + inherited: false, + type: CSS_TYPE_LONGHAND, + logical: true, + get_computed: logical_box_prop_get_computed, + /* FIXME: run tests with multiple prerequisites */ + prerequisites: { "position": "relative" }, + /* XXX 0 may or may not be equal to auto */ + initial_values: [ "auto" ], + other_values: [ "32px", "-3em", "12%", + "calc(2px)", + "calc(-2px)", + "calc(50%)", + "calc(3*25px)", + "calc(25px*3)", + "calc(3*25px + 50%)", + ], + invalid_values: [] + }, + "inset-inline-end": { + domProp: "insetInlineEnd", + inherited: false, + type: CSS_TYPE_LONGHAND, + logical: true, + get_computed: logical_box_prop_get_computed, + /* FIXME: run tests with multiple prerequisites */ + prerequisites: { "position": "relative" }, + /* XXX 0 may or may not be equal to auto */ + initial_values: [ "auto" ], + other_values: [ "32px", "-3em", "12%", + "calc(2px)", + "calc(-2px)", + "calc(50%)", + "calc(3*25px)", + "calc(25px*3)", + "calc(3*25px + 50%)", + ], + invalid_values: [] + }, + "inset-inline-start": { + domProp: "insetInlineStart", inherited: false, type: CSS_TYPE_LONGHAND, logical: true, @@ -5426,62 +5486,38 @@ var gCSSProperties = { "offset-block-start": { domProp: "offsetBlockStart", inherited: false, - type: CSS_TYPE_LONGHAND, + type: CSS_TYPE_SHORTHAND_AND_LONGHAND, logical: true, get_computed: logical_box_prop_get_computed, - /* FIXME: run tests with multiple prerequisites */ - prerequisites: { "position": "relative" }, - /* XXX 0 may or may not be equal to auto */ - initial_values: [ "auto" ], - other_values: [ "32px", "-3em", "12%", - "calc(2px)", - "calc(-2px)", - "calc(50%)", - "calc(3*25px)", - "calc(25px*3)", - "calc(3*25px + 50%)", - ], - invalid_values: [] + alias_for: "inset-block-start", + subproperties: [ "inset-block-start" ], }, - "offset-inline-end": { - domProp: "offsetInlineEnd", + "offset-block-end": { + domProp: "offsetBlockEnd", inherited: false, - type: CSS_TYPE_LONGHAND, + type: CSS_TYPE_SHORTHAND_AND_LONGHAND, logical: true, get_computed: logical_box_prop_get_computed, - /* FIXME: run tests with multiple prerequisites */ - prerequisites: { "position": "relative" }, - /* XXX 0 may or may not be equal to auto */ - initial_values: [ "auto" ], - other_values: [ "32px", "-3em", "12%", - "calc(2px)", - "calc(-2px)", - "calc(50%)", - "calc(3*25px)", - "calc(25px*3)", - "calc(3*25px + 50%)", - ], - invalid_values: [] + alias_for: "inset-block-end", + subproperties: [ "inset-block-end" ], }, "offset-inline-start": { domProp: "offsetInlineStart", inherited: false, - type: CSS_TYPE_LONGHAND, + type: CSS_TYPE_SHORTHAND_AND_LONGHAND, logical: true, get_computed: logical_box_prop_get_computed, - /* FIXME: run tests with multiple prerequisites */ - prerequisites: { "position": "relative" }, - /* XXX 0 may or may not be equal to auto */ - initial_values: [ "auto" ], - other_values: [ "32px", "-3em", "12%", - "calc(2px)", - "calc(-2px)", - "calc(50%)", - "calc(3*25px)", - "calc(25px*3)", - "calc(3*25px + 50%)", - ], - invalid_values: [] + alias_for: "inset-inline-start", + subproperties: [ "inset-inline-start" ], + }, + "offset-inline-end": { + domProp: "offsetInlineEnd", + inherited: false, + type: CSS_TYPE_SHORTHAND_AND_LONGHAND, + logical: true, + get_computed: logical_box_prop_get_computed, + alias_for: "inset-inline-end", + subproperties: [ "inset-inline-end" ], }, "padding-block-end": { domProp: "paddingBlockEnd", @@ -5635,8 +5671,8 @@ function logical_box_prop_get_computed(cs, property) if (/^-moz-/.test(property)) { property = physicalize(property.substring(5), inlineMapping, ""); - } else if (/^offset-(block|inline)-(start|end)/.test(property)) { - property = property.substring(7); // we want "top" not "offset-top", e.g. + } else if (/^(offset|inset)-(block|inline)-(start|end)/.test(property)) { + property = property.replace("offset-", "").replace("inset-", ""); // we want "top" not "offset-top", e.g. property = physicalize(property, blockMapping, "block-"); property = physicalize(property, inlineMapping, "inline-"); } else if (/-(block|inline)-(start|end)/.test(property)) { diff --git a/layout/style/test/test_logical_properties.html b/layout/style/test/test_logical_properties.html index f1265496dc..a6947791cb 100644 --- a/layout/style/test/test_logical_properties.html +++ b/layout/style/test/test_logical_properties.html @@ -94,7 +94,7 @@ function init() { type == CSS_TYPE_LONGHAND && gCSSProperties[p].logical) && /-inline-end/.test(p)) { var valueType; - if (/margin|padding|width|offset/.test(p)) { + if (/margin|padding|width|inset|offset/.test(p)) { valueType = "length"; } else if (/color/.test(p)) { valueType = "color"; @@ -110,7 +110,7 @@ function init() { blockEnd: p.replace("-inline-end", "-block-end"), type: valueType }; - if (/^offset/.test(p)) { + if (/^(offset|inset)/.test(p)) { group.left = "left"; group.right = "right"; group.top = "top"; From e38f362d44e1fc131e3a395014a6a6c9960e067b Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sat, 31 Dec 2022 10:19:45 +0000 Subject: [PATCH 5/7] Issue #2075 - Part 5: Allow logical aliases in the property database. --- layout/style/test/test_property_database.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/layout/style/test/test_property_database.html b/layout/style/test/test_property_database.html index 30e6618fcb..e7751cf0b8 100644 --- a/layout/style/test/test_property_database.html +++ b/layout/style/test/test_property_database.html @@ -123,13 +123,15 @@ for (var prop in gCSSProperties) { } /* - * Test that only longhand properties are listed as logical properties. + * Test that only longhand properties or its aliases are listed as logical + * properties. */ for (var prop in gCSSProperties) { var entry = gCSSProperties[prop]; if (entry.logical) { - is(entry.type, CSS_TYPE_LONGHAND, - "property '" + prop + "' is listed as CSS_TYPE_LONGHAND due to its " + + ok(entry.type == CSS_TYPE_LONGHAND || + (entry.alias_for && gCSSProperties[entry.alias_for].logical), + "property '" + prop + "' is listed as CSS_TYPE_LONGHAND or is an alias due to it " + "being a logical property"); } } From 86782b8f397a83fd775d73a1c8c2f0cf5f97bd14 Mon Sep 17 00:00:00 2001 From: Martok Date: Wed, 4 Jan 2023 20:48:25 +0100 Subject: [PATCH 6/7] Issue #1382 - RegExpShared::groupsTemplate_ cannot be a GCPtr since RegExpShared is managed by C++ --- js/src/vm/RegExpObject.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/src/vm/RegExpObject.h b/js/src/vm/RegExpObject.h index 17d961eede..547746529a 100644 --- a/js/src/vm/RegExpObject.h +++ b/js/src/vm/RegExpObject.h @@ -134,8 +134,8 @@ class RegExpShared bool canStringMatch; bool marked_; - uint32_t numNamedCaptures_; - GCPtr groupsTemplate_; + uint32_t numNamedCaptures_; + HeapPtr groupsTemplate_; RegExpCompilation compilationArray[4]; From 5b438179add49e98fe1fef643f92c2bf91e7a7a9 Mon Sep 17 00:00:00 2001 From: Job Bautista Date: Thu, 5 Jan 2023 13:12:29 +0800 Subject: [PATCH 7/7] Issue #2079 - Fix linking libxul on *nix when using a linker other than bfd. Don't mark the .kPStaticModules section as relro for bfd, as the linkers on Windows and Mac don't do this anyway. Add a section insert of .kPStaticModules to config/expandlibs_exec.py, which seems to be the primary cause of linking bustage on gold, lld, and mold. --- config/expandlibs_exec.py | 1 + toolkit/library/StaticXULComponents.ld | 5 ----- toolkit/library/libxul.mk | 15 --------------- 3 files changed, 1 insertion(+), 20 deletions(-) delete mode 100644 toolkit/library/StaticXULComponents.ld diff --git a/config/expandlibs_exec.py b/config/expandlibs_exec.py index c053430229..fe9a7f6ebb 100644 --- a/config/expandlibs_exec.py +++ b/config/expandlibs_exec.py @@ -45,6 +45,7 @@ SECTION_INSERT_BEFORE = [ ('.text', '.fini'), ('.rodata', '.rodata1'), ('.data.rel.ro', '.dynamic'), + ('.kPStaticModules', '.data.rel.ro'), ('.data', '.data1'), ] diff --git a/toolkit/library/StaticXULComponents.ld b/toolkit/library/StaticXULComponents.ld deleted file mode 100644 index e4fe728134..0000000000 --- a/toolkit/library/StaticXULComponents.ld +++ /dev/null @@ -1,5 +0,0 @@ -SECTIONS { - .data.rel.ro : { - *(.kPStaticModules) - } -} diff --git a/toolkit/library/libxul.mk b/toolkit/library/libxul.mk index f9fbe9edcc..01a4048700 100644 --- a/toolkit/library/libxul.mk +++ b/toolkit/library/libxul.mk @@ -39,21 +39,6 @@ ifeq ($(OS_ARCH),SunOS) OS_LDFLAGS += -Wl,-z,defs endif -# BFD ld doesn't create multiple PT_LOADs as usual when an unknown section -# exists. Using an implicit linker script to make it fold that section in -# .data.rel.ro makes it create multiple PT_LOADs. That implicit linker -# script however makes gold misbehave, first because it doesn't like that -# the linker script is given after crtbegin.o, and even past that, replaces -# the default section rules with those from the script instead of -# supplementing them. Which leads to a lib with a huge load of sections. -ifneq (OpenBSD,$(OS_TARGET)) -ifneq (WINNT,$(OS_TARGET)) -ifdef LD_IS_BFD -OS_LDFLAGS += $(topsrcdir)/toolkit/library/StaticXULComponents.ld -endif -endif -endif - ifdef _MSC_VER get_first_and_last = dumpbin -exports $1 | grep _NSModule@@ | sort -k 3 | sed -n 's/^.*?\([^@]*\)@@.*$$/\1/;1p;$$p' else