diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs
index 16ff6a6d307..c7e1cd1ed04 100644
--- a/components/layout/fragment.rs
+++ b/components/layout/fragment.rs
@@ -963,20 +963,19 @@ impl Fragment {
fn style_specified_intrinsic_inline_size(&self) -> IntrinsicISizesContribution {
let flags = self.quantities_included_in_intrinsic_inline_size();
let style = self.style();
- let (min_inline_size, specified) =
- if flags.contains(INTRINSIC_INLINE_SIZE_INCLUDES_SPECIFIED) {
- (model::specified(style.min_inline_size(), Au(0)),
- MaybeAuto::from_style(style.content_inline_size(), Au(0)).specified_or_zero())
- } else {
- (Au(0), Au(0))
- };
+ let specified = if flags.contains(INTRINSIC_INLINE_SIZE_INCLUDES_SPECIFIED) {
+ Au::max(model::specified(style.min_inline_size(), Au(0)),
+ MaybeAuto::from_style(style.content_inline_size(), Au(0)).specified_or_zero())
+ } else {
+ Au(0)
+ };
// FIXME(#2261, pcwalton): This won't work well for inlines: is this OK?
let surrounding_inline_size = self.surrounding_intrinsic_inline_size();
IntrinsicISizesContribution {
content_intrinsic_sizes: IntrinsicISizes {
- minimum_inline_size: min_inline_size,
+ minimum_inline_size: specified,
preferred_inline_size: specified,
},
surrounding_size: surrounding_inline_size,
diff --git a/tests/ref/basic.list b/tests/ref/basic.list
index e762048e1ca..6d98644daef 100644
--- a/tests/ref/basic.list
+++ b/tests/ref/basic.list
@@ -294,6 +294,7 @@ experimental == rtl_simple.html rtl_simple_ref.html
== table_containing_block_a.html table_containing_block_ref.html
== table_expansion_to_fit_a.html table_expansion_to_fit_ref.html
== table_float_translation_a.html table_float_translation_ref.html
+== table_intrinsic_style_specified_width_a.html table_intrinsic_style_specified_width_ref.html
== table_padding_a.html table_padding_ref.html
== table_percentage_capping_a.html table_percentage_capping_ref.html
== table_percentage_width_a.html table_percentage_width_ref.html
diff --git a/tests/ref/table_intrinsic_style_specified_width_a.html b/tests/ref/table_intrinsic_style_specified_width_a.html
new file mode 100644
index 00000000000..42b72c63246
--- /dev/null
+++ b/tests/ref/table_intrinsic_style_specified_width_a.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ |
+Foo foo foo foo foo foo foo foo
+foo foo foo foo foo foo foo foo
+foo foo foo foo foo foo foo foo
+foo foo foo foo foo foo foo foo
+ |
+
+
+
diff --git a/tests/ref/table_intrinsic_style_specified_width_ref.html b/tests/ref/table_intrinsic_style_specified_width_ref.html
new file mode 100644
index 00000000000..20eb6836c39
--- /dev/null
+++ b/tests/ref/table_intrinsic_style_specified_width_ref.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ |
+Foo foo foo foo foo foo foo foo
+foo foo foo foo foo foo foo foo
+foo foo foo foo foo foo foo foo
+foo foo foo foo foo foo foo foo
+ |
+
+
+