Repository: servo/servo (language: python)

Issue:
Support `justify-self` on absolutely positioned elements
We obey `align-self` but not `justify-self`:
https://github.com/servo/servo/blob/4f4b7b1abf8919ff045da0295a45111a890a75e5/components/layout_2020/positioned.rs#L494-L497
https://github.com/servo/servo/blob/4f4b7b1abf8919ff045da0295a45111a890a75e5/components/layout_2020/positioned.rs#L522-L525

```html
<!DOCTYPE html>
<div style="position: relative; width: 100px; height: 100px; border: 3px solid">
  <div style="position: absolute; align-self: center; justify-self: center; background: cyan; height: 50px; width: 50px"></div>
</div>
<div style="position: relative; width: 100px; height: 100px; border: 3px solid">
  <div style="position: absolute; align-self: center; justify-self: center; background: cyan; height: 50px; width: 50px; inset: 0"></div>
</div>
<div style="position: relative; width: 100px; height: 100px; border: 3px solid">
  <div style="position: absolute; align-self: center; justify-self: center; background: cyan; height: 25px; width: 25px; inset: 25px 0 0 25px"></div>
</div>
```

| Servo | Blink |
| - | - |
| ![](https://github.com/user-attachments/assets/9f4a9858-8e6e-4b1d-9ad0-b4ec54339427) | ![](https://github.com/user-attachments/assets/31a02097-e86d-49f1-a9e3-b4d8aa51c6a9) |


Discussion / hints:
I'd like to try this out 
![image](https://github.com/user-attachments/assets/7b4fc21e-fe0f-4672-ae8c-0dd315e1be5b)

i dont have to send in the test file as well right? 

Fix patch:
diff --git a/components/layout_2020/positioned.rs b/components/layout_2020/positioned.rs
index 0db018d20556d..7219463691487 100644
--- a/components/layout_2020/positioned.rs
+++ b/components/layout_2020/positioned.rs
@@ -492,7 +492,7 @@ impl HoistedAbsolutelyPositionedBox {
             end: box_offset.inline_end,
         };
         let inline_alignment = match inline_box_offsets.either_specified() {
-            true => AlignFlags::START | AlignFlags::SAFE,
+            true => style.clone_justify_self().0 .0,
             false => shared_fragment.resolved_alignment.inline,
         };
 


Test patch:
diff --git a/tests/wpt/meta/css/css-align/abspos/safe-justify-self-htb.html.ini b/tests/wpt/meta/css/css-align/abspos/safe-justify-self-htb.html.ini
deleted file mode 100644
index bafb7a7d2c2d6..0000000000000
--- a/tests/wpt/meta/css/css-align/abspos/safe-justify-self-htb.html.ini
+++ /dev/null
@@ -1,36 +0,0 @@
-[safe-justify-self-htb.html]
-  [.item 7]
-    expected: FAIL
-
-  [.item 8]
-    expected: FAIL
-
-  [.item 9]
-    expected: FAIL
-
-  [.item 10]
-    expected: FAIL
-
-  [.item 11]
-    expected: FAIL
-
-  [.item 12]
-    expected: FAIL
-
-  [.item 19]
-    expected: FAIL
-
-  [.item 20]
-    expected: FAIL
-
-  [.item 21]
-    expected: FAIL
-
-  [.item 22]
-    expected: FAIL
-
-  [.item 23]
-    expected: FAIL
-
-  [.item 24]
-    expected: FAIL