diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 35c3595..d20b82c 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,5 +1,23 @@
 2019-10-15  Zalan Bujtas  <zalan@apple.com>
 
+        [LFC][TFC] Use <col> to adjust the preferred column width.
+        https://bugs.webkit.org/show_bug.cgi?id=202997
+        <rdar://problem/56300345>
+
+        Reviewed by Antti Koivisto.
+
+        The <col> elment can set the preferred width on the table column. Let's take these values into account while computing the preferred width for columns.
+
+        * layout/tableformatting/TableFormattingContext.cpp:
+        (WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):
+        * layout/tableformatting/TableFormattingContext.h:
+        * layout/tableformatting/TableFormattingContextGeometry.cpp:
+        (WebCore::Layout::TableFormattingContext::Geometry::computedColumnWidth const):
+        * layout/tableformatting/TableGrid.h:
+        (WebCore::Layout::TableGrid::Column::columnBox const):
+
+2019-10-15  Zalan Bujtas  <zalan@apple.com>
+
         [LFC][TFC] Add support for colgroup/col
         https://bugs.webkit.org/show_bug.cgi?id=202991
         <rdar://problem/56294715>
diff --git a/Source/WebCore/layout/tableformatting/TableFormattingContext.cpp b/Source/WebCore/layout/tableformatting/TableFormattingContext.cpp
index dafdb97..bf1466f0 100644
--- a/Source/WebCore/layout/tableformatting/TableFormattingContext.cpp
+++ b/Source/WebCore/layout/tableformatting/TableFormattingContext.cpp
@@ -249,9 +249,15 @@
             columnIntrinsicWidths.minimum = std::max(slot->widthConstraints.minimum, columnIntrinsicWidths.minimum);
             columnIntrinsicWidths.maximum = std::max(slot->widthConstraints.maximum, columnIntrinsicWidths.maximum);
         }
+        // Now that we have the content driven min/max widths, check if <col> sets a preferred width on this column.
+        if (auto* columnBox = columns[columnIndex].columnBox()) {
+            if (auto columnPreferredWidth = geometry().computedColumnWidth(*columnBox)) {
+                // Let's stay at least as wide as the preferred width.
+                columnIntrinsicWidths.minimum = std::max(columnIntrinsicWidths.minimum, *columnPreferredWidth);
+            }
+        }
         columns[columnIndex].setWidthConstraints(columnIntrinsicWidths);
     }
-    // FIXME: Take column group elements into account.
 }
 
 LayoutUnit TableFormattingContext::computedTableWidth()
diff --git a/Source/WebCore/layout/tableformatting/TableFormattingContext.h b/Source/WebCore/layout/tableformatting/TableFormattingContext.h
index 4a6e603..747d207 100644
--- a/Source/WebCore/layout/tableformatting/TableFormattingContext.h
+++ b/Source/WebCore/layout/tableformatting/TableFormattingContext.h
@@ -47,6 +47,7 @@
     class Geometry : public FormattingContext::Geometry {
     public:
         ContentHeightAndMargin tableCellHeightAndMargin(const Box&) const;
+        Optional<LayoutUnit> computedColumnWidth(const Box& columnBox) const;
 
     private:
         friend class TableFormattingContext;
diff --git a/Source/WebCore/layout/tableformatting/TableFormattingContextGeometry.cpp b/Source/WebCore/layout/tableformatting/TableFormattingContextGeometry.cpp
index 421195e..18a2169 100644
--- a/Source/WebCore/layout/tableformatting/TableFormattingContextGeometry.cpp
+++ b/Source/WebCore/layout/tableformatting/TableFormattingContextGeometry.cpp
@@ -45,6 +45,15 @@
     return ContentHeightAndMargin { *height, { } };
 }
 
+Optional<LayoutUnit> TableFormattingContext::Geometry::computedColumnWidth(const Box& columnBox) const
+{
+    // Check both style and <col>'s width attribute.
+    // FIXME: Figure out what to do with calculated values, like <col style="width: 10%">.
+    if (auto computedWidthValue = computedContentWidth(columnBox, { }))
+        return computedWidthValue;
+    return columnBox.columnWidth();
+}
+
 }
 }
 
diff --git a/Source/WebCore/layout/tableformatting/TableGrid.h b/Source/WebCore/layout/tableformatting/TableGrid.h
index 70694a4..66ebad2 100644
--- a/Source/WebCore/layout/tableformatting/TableGrid.h
+++ b/Source/WebCore/layout/tableformatting/TableGrid.h
@@ -80,6 +80,8 @@
         void setLogicalWidth(LayoutUnit);
         LayoutUnit logicalWidth() const;
 
+        const Box* columnBox() const { return m_columnBox.get(); }
+
     private:
         friend class ColumnsContext;
         Column(const Box* columnBox);
