aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/layout/table_wrapper.rs8
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json24
-rw-r--r--tests/wpt/mozilla/tests/css/table_margin_a.html36
-rw-r--r--tests/wpt/mozilla/tests/css/table_margin_ref.html24
4 files changed, 91 insertions, 1 deletions
diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs
index 4f40a94e28e..01800ce3487 100644
--- a/components/layout/table_wrapper.rs
+++ b/components/layout/table_wrapper.rs
@@ -766,7 +766,13 @@ fn initial_computed_inline_size(block: &mut BlockFlow,
containing_block_inline_size);
match inline_size_from_style {
MaybeAuto::Auto => {
- MaybeAuto::Specified(min(containing_block_inline_size, preferred_width_of_all_columns))
+ if preferred_width_of_all_columns + table_border_padding <= containing_block_inline_size {
+ MaybeAuto::Specified(preferred_width_of_all_columns + table_border_padding)
+ } else if minimum_width_of_all_columns > containing_block_inline_size {
+ MaybeAuto::Specified(minimum_width_of_all_columns)
+ } else {
+ MaybeAuto::Auto
+ }
}
MaybeAuto::Specified(inline_size_from_style) => {
MaybeAuto::Specified(max(inline_size_from_style - table_border_padding,
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index 98dbd60fcbb..a5ea9fc0845 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -5220,6 +5220,18 @@
"url": "/_mozilla/css/table_intrinsic_style_specified_width_a.html"
}
],
+ "css/table_margin_a.html": [
+ {
+ "path": "css/table_margin_a.html",
+ "references": [
+ [
+ "/_mozilla/css/table_margin_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/table_margin_a.html"
+ }
+ ],
"css/table_margin_auto_a.html": [
{
"path": "css/table_margin_auto_a.html",
@@ -20586,6 +20598,18 @@
"url": "/_mozilla/css/table_intrinsic_style_specified_width_a.html"
}
],
+ "css/table_margin_a.html": [
+ {
+ "path": "css/table_margin_a.html",
+ "references": [
+ [
+ "/_mozilla/css/table_margin_ref.html",
+ "=="
+ ]
+ ],
+ "url": "/_mozilla/css/table_margin_a.html"
+ }
+ ],
"css/table_margin_auto_a.html": [
{
"path": "css/table_margin_auto_a.html",
diff --git a/tests/wpt/mozilla/tests/css/table_margin_a.html b/tests/wpt/mozilla/tests/css/table_margin_a.html
new file mode 100644
index 00000000000..b95a3a3ef29
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/table_margin_a.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <link rel="match" href="table_margin_ref.html" />
+ <style type="text/css">
+ table.ombox {
+ margin: 0 0 0 50%;
+ background: #f9f9f9;
+ }
+
+ td, tr, table {
+ padding: 0;
+ margin: 0;
+ }
+
+ .template-documentation {
+ width: 100%;
+ background-color: #ecfcf4;
+ padding: 0;
+ }
+ </style>
+ </head>
+ <body>
+ <div class="template-documentation">
+ <table class="ombox">
+ <tr>
+ <td>
+ This is a test. This line is large, large enough so that it will wrap.
+ Issue #12748, for which this test was created, is about the table margin not behaving correctly.
+ </td>
+ </tr>
+ </table>
+ </div>
+ </body>
+</html>
diff --git a/tests/wpt/mozilla/tests/css/table_margin_ref.html b/tests/wpt/mozilla/tests/css/table_margin_ref.html
new file mode 100644
index 00000000000..fa5c4f88d82
--- /dev/null
+++ b/tests/wpt/mozilla/tests/css/table_margin_ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <style type="text/css">
+ .ombox {
+ margin-left: 50%;
+ background: #f9f9f9;
+ padding: 2px;
+ }
+ .template-documentation {
+ background-color: #ecfcf4;
+ width: 100%;
+ }
+ </style>
+ </head>
+ <body>
+ <div class="template-documentation">
+ <div class="ombox">
+ This is a test. This line is large, large enough so that it will wrap.
+ Issue #12748, for which this test was created, is about the table margin not behaving correctly.
+ </div>
+ </div>
+ </body>
+</html>