Text can wrap between hyphens and commas
authormmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 May 2018 03:47:54 +0000 (03:47 +0000)
committermmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 May 2018 03:47:54 +0000 (03:47 +0000)
https://bugs.webkit.org/show_bug.cgi?id=185899
<rdar://problem/40118983>

Reviewed by Zalan Bujtas.

Source/WebCore:

Chrome, Firefox, and ICU all agree that text shouldn't wrap there.

Test: fast/text/line-break-hyphen-comma.html

* rendering/BreakLines.cpp:

LayoutTests:

* fast/text/line-break-hyphen-comma-expected.html: Added.
* fast/text/line-break-hyphen-comma.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232103 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/text/line-break-hyphen-comma-expected.html [new file with mode: 0644]
LayoutTests/fast/text/line-break-hyphen-comma.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/BreakLines.cpp

index aa249cd..b868a71 100644 (file)
@@ -1,3 +1,14 @@
+2018-05-22  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Text can wrap between hyphens and commas
+        https://bugs.webkit.org/show_bug.cgi?id=185899
+        <rdar://problem/40118983>
+
+        Reviewed by Zalan Bujtas.
+
+        * fast/text/line-break-hyphen-comma-expected.html: Added.
+        * fast/text/line-break-hyphen-comma.html: Added.
+
 2018-05-22  David Fenton  <david_fenton@apple.com>
 
         Update test expectations for newly imported css-text layout tests
diff --git a/LayoutTests/fast/text/line-break-hyphen-comma-expected.html b/LayoutTests/fast/text/line-break-hyphen-comma-expected.html
new file mode 100644 (file)
index 0000000..3a73b8c
--- /dev/null
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body>
+This test makes sure that there is no line break allowed between a hyphen and a comma. The test passes if there is no line break below.
+<div style="font: 100px monospace;">-,</div>
+</body>
+</html>
diff --git a/LayoutTests/fast/text/line-break-hyphen-comma.html b/LayoutTests/fast/text/line-break-hyphen-comma.html
new file mode 100644 (file)
index 0000000..317c396
--- /dev/null
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body>
+This test makes sure that there is no line break allowed between a hyphen and a comma. The test passes if there is no line break below.
+<div style="width: 80px; font: 100px monospace;">-,</div>
+</body>
+</html>
index ff273a0..21a24ef 100644 (file)
@@ -1,3 +1,17 @@
+2018-05-22  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Text can wrap between hyphens and commas
+        https://bugs.webkit.org/show_bug.cgi?id=185899
+        <rdar://problem/40118983>
+
+        Reviewed by Zalan Bujtas.
+
+        Chrome, Firefox, and ICU all agree that text shouldn't wrap there.
+
+        Test: fast/text/line-break-hyphen-comma.html
+
+        * rendering/BreakLines.cpp:
+
 2018-05-22  Simon Fraser  <simon.fraser@apple.com>
 
         Add notifyutil callbacks to dump the memory cache, and the list of live Pages and Documents
index 7e15990..9c339ce 100644 (file)
@@ -64,7 +64,7 @@ WEBCORE_EXPORT const unsigned char lineBreakTable[][lineBreakTableColumnCount] =
     { B(0, 0, 0, 0, 0, 0, 0, 1), B(0, 0, 0, 0, 0, 0, 0, 0), 0, B(0, 0, 0, 1, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 1, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 1, 0, 0, 0, 0, 0) }, // *
     { B(0, 0, 0, 0, 0, 0, 0, 1), B(0, 0, 0, 0, 0, 0, 0, 0), 0, B(0, 0, 0, 1, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 1, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 1, 0, 0, 0, 0, 0) }, // +
     { B(0, 0, 0, 0, 0, 0, 0, 1), B(0, 0, 0, 0, 0, 0, 0, 0), 0, B(0, 0, 0, 1, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 1, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 1, 0, 0, 0, 0, 0) }, // ,
-    { B(1, 1, 1, 1, 1, 1, 1, 1), B(1, 1, 1, 1, 1, 0, 1, 0), 0, B(0, 1, 1, 1, 1, 1, 1, 1), F, F, F, B(1, 1, 1, 1, 1, 1, 1, 1), F, F, F, B(1, 1, 1, 1, 1, 1, 1, 1) }, // - Note: breaking before '0'-'9' is handled hard-coded in shouldBreakAfter().
+    { B(1, 1, 1, 1, 1, 1, 1, 1), B(1, 1, 1, 0, 1, 0, 1, 0), 0, B(0, 1, 1, 1, 1, 1, 1, 1), F, F, F, B(1, 1, 1, 1, 1, 1, 1, 1), F, F, F, B(1, 1, 1, 1, 1, 1, 1, 1) }, // - Note: breaking before '0'-'9' is handled hard-coded in shouldBreakAfter().
     { B(0, 0, 0, 0, 0, 0, 0, 1), B(0, 0, 0, 0, 0, 0, 0, 0), 0, B(0, 0, 0, 1, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 1, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 1, 0, 0, 0, 0, 0) }, // .
     { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), 0, B(0, 0, 0, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 0, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 0, 0, 0, 0, 0, 0) }, // /
     DI,  DI,  DI,  DI,  DI,  DI,  DI,  DI,  DI,  DI, // 0-9