aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2019-12-03 13:38:55 -0500
committerSimon Sapin <simon.sapin@exyr.org>2019-12-09 09:57:48 +0100
commit6dad51f57032cbf8410fa38a60a5315fd0fc7da9 (patch)
tree08c8d234102de8aa25f5711dcbf2799045db3219
parentf31a88d85de2a7bdee65216b3b66b697b459a31d (diff)
downloadservo-6dad51f57032cbf8410fa38a60a5315fd0fc7da9.tar.gz
servo-6dad51f57032cbf8410fa38a60a5315fd0fc7da9.zip
layout: Ensure truncated fragment is updated with results of collecting inner fragment's stacking contexts.
-rw-r--r--components/layout/display_list/builder.rs12
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json23
-rw-r--r--tests/wpt/mozilla/tests/mozilla/text-overflow-ellipsis-stacking-context-ref.html1
-rw-r--r--tests/wpt/mozilla/tests/mozilla/text-overflow-ellipsis-stacking-context.html21
4 files changed, 54 insertions, 3 deletions
diff --git a/components/layout/display_list/builder.rs b/components/layout/display_list/builder.rs
index 4fd1b4b3988..0eceb02abdb 100644
--- a/components/layout/display_list/builder.rs
+++ b/components/layout/display_list/builder.rs
@@ -606,9 +606,15 @@ impl Fragment {
true
},
// FIXME: In the future, if #15144 is fixed we can remove this case. See #18510.
- SpecificFragmentInfo::TruncatedFragment(ref mut info) => info
- .full
- .collect_stacking_contexts_for_blocklike_fragment(state),
+ SpecificFragmentInfo::TruncatedFragment(ref mut info) => {
+ let _ = info
+ .full
+ .collect_stacking_contexts_for_blocklike_fragment(state);
+ // To ensure the caller updates this fragment's stacking context
+ // appropriately based on the un-truncated fragment's status,
+ // we don't pass on the result of collecting stacking contexts.
+ false
+ },
_ => false,
}
}
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index f9610ad6167..e307cd256f2 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -7511,6 +7511,18 @@
{}
]
],
+ "mozilla/text-overflow-ellipsis-stacking-context.html": [
+ [
+ "mozilla/text-overflow-ellipsis-stacking-context.html",
+ [
+ [
+ "/_mozilla/mozilla/text-overflow-ellipsis-stacking-context-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"mozilla/textarea_placeholder.html": [
[
"mozilla/textarea_placeholder.html",
@@ -9733,6 +9745,9 @@
"mozilla/test.txt": [
[]
],
+ "mozilla/text-overflow-ellipsis-stacking-context-ref.html": [
+ []
+ ],
"mozilla/textarea_placeholder_ref.html": [
[]
],
@@ -19498,6 +19513,14 @@
"9235007d960cc6c804a93c89f24881bedc3613c3",
"support"
],
+ "mozilla/text-overflow-ellipsis-stacking-context-ref.html": [
+ "14215e780ab4a0cf00ef23b8472636a393aeacf1",
+ "support"
+ ],
+ "mozilla/text-overflow-ellipsis-stacking-context.html": [
+ "791f028522972f0bffd31b6663369c896b39c088",
+ "reftest"
+ ],
"mozilla/textarea_placeholder.html": [
"6dd1f1e1e0c8250532db1afc1f6b876bfa1b6f8c",
"reftest"
diff --git a/tests/wpt/mozilla/tests/mozilla/text-overflow-ellipsis-stacking-context-ref.html b/tests/wpt/mozilla/tests/mozilla/text-overflow-ellipsis-stacking-context-ref.html
new file mode 100644
index 00000000000..14215e780ab
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/text-overflow-ellipsis-stacking-context-ref.html
@@ -0,0 +1 @@
+This page should successfully load.<p><span style="padding-left: 1px">…</span>
diff --git a/tests/wpt/mozilla/tests/mozilla/text-overflow-ellipsis-stacking-context.html b/tests/wpt/mozilla/tests/mozilla/text-overflow-ellipsis-stacking-context.html
new file mode 100644
index 00000000000..791f0285229
--- /dev/null
+++ b/tests/wpt/mozilla/tests/mozilla/text-overflow-ellipsis-stacking-context.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<link rel="match" href="text-overflow-ellipsis-stacking-context-ref.html">
+<style>
+ .ellipsis-overflow {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: inline-block;
+ width: 10px;
+ }
+
+ .stacking-context {
+ transform: translateX(1px);
+ display: inline-block;
+ width: 1px;
+
+ }
+</style>
+This page should successfully load.<p>
+<div class="stacking-context">
+ <div class="ellipsis-overflow"></div>
+</div>