Diff
Modified: trunk/LayoutTests/ChangeLog (245274 => 245275)
--- trunk/LayoutTests/ChangeLog 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/LayoutTests/ChangeLog 2019-05-14 13:20:54 UTC (rev 245275)
@@ -1,3 +1,22 @@
+2019-05-14 Javier Fernandez <[email protected]>
+
+ Implement "line-break: anywhere"
+ https://bugs.webkit.org/show_bug.cgi?id=181169
+ <rdar://problem/48507088>
+
+ Reviewed by Myles C. Maxfield.
+
+ Some of the new tests added to verify the new 'line-break:
+ anywhere' feature and its different behavior to what 'word-break:
+ break-all' may provide, fail due to several bugs present in
+ current WebKit's trunk.
+
+ * TestExpectations:
+ - webkit.org/b/197409
+ - webkit.org/b/197411
+ - webkit.org/b/197411
+ - webkit.org/b/197430
+
2019-05-13 Wenson Hsieh <[email protected]>
[iOS] When running layout tests that tap in the same location, subsequent tests fail to fire click handlers
Modified: trunk/LayoutTests/TestExpectations (245274 => 245275)
--- trunk/LayoutTests/TestExpectations 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/LayoutTests/TestExpectations 2019-05-14 13:20:54 UTC (rev 245275)
@@ -1990,6 +1990,14 @@
webkit.org/b/197277 imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-004.html [ ImageOnlyFailure ]
webkit.org/b/197277 imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-005.html [ ImageOnlyFailure ]
+webkit.org/b/197409 imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-016.html [ ImageOnlyFailure ]
+webkit.org/b/197409 imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-019.html [ ImageOnlyFailure ]
+webkit.org/b/197411 imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-018.html [ ImageOnlyFailure ]
+webkit.org/b/197411 imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-021.html [ ImageOnlyFailure ]
+webkit.org/b/197411 imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-022.html [ ImageOnlyFailure ]
+webkit.org/b/197430 imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-023.html [ ImageOnlyFailure ]
+webkit.org/b/197430 imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-024.html [ ImageOnlyFailure ]
+
########################################
### START OF display: contents failures
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (245274 => 245275)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2019-05-14 13:20:54 UTC (rev 245275)
@@ -1,3 +1,54 @@
+2019-05-14 Javier Fernandez <[email protected]>
+
+ Implement "line-break: anywhere"
+ https://bugs.webkit.org/show_bug.cgi?id=181169
+ <rdar://problem/48507088>
+
+ Reviewed by Myles C. Maxfield.
+
+ New tests to verify the new line-break: anywhere feature and how
+ it behaves different to 'word-break: break-all'.
+
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-001.html:
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-002.html:
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-003-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-003.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-004-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-004.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-005-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-005.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-006-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-006.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-007-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-007.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-008-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-008.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-009-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-009.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-010-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-010.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-011-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-011.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-012-expected.html: Added.
+ * web-platform-tests/css/css-text/line-break/line-break-anywhere-012.html: Added.
+ * web-platform-tests/css/css-text/parsing/line-break-valid-expected.txt:
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-016-expected.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-016.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-017-expected.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-017.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-018-expected.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-018.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-019-expected.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-019.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-021-expected.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-021.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-022-expected.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-022.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-023-expected.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-023.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-024-expected.html: Added.
+ * web-platform-tests/css/css-text/word-break/word-break-break-all-024.html: Added.
+
2019-05-07 Antoine Quint <[email protected]>
[Pointer Events] isPrimary property of pointercancel events should match previous events for that pointer
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-001.html (245274 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-001.html 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-001.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -1,8 +1,9 @@
-<!DOCTYPE html>
+<!DOCTYPE html>
<html lang=en>
<meta charset="utf-8">
<title>CSS Text Test: line-break: anywhere</title>
<link rel="author" title="Florian Rivoal" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
<link rel="help" href=""
<link rel="match" href=""
<meta name="flags" content="">
@@ -28,5 +29,5 @@
<p>Test passes if there is a green rectangle below and no red.</p>
<div id=green></div>
-<!-- with line breaks everywhere, none of the following characters should stick out from under the green div -->
+<!-- with line breaks everywhere, none of the following characters should stick out from under the green div -->
<div id=test>aa-a.a)a,a)a aa⁠a‍a・a</div>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-002.html (245274 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-002.html 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-002.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -1,8 +1,9 @@
-<!DOCTYPE html>
+<!DOCTYPE html>
<html lang=en>
<meta charset="utf-8">
<title>CSS Text Test: line-break: anywhere</title>
<link rel="author" title="Florian Rivoal" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
<link rel="help" href=""
<link rel="match" href=""
<meta name="flags" content="">
@@ -21,12 +22,12 @@
color: red;
font-family: monospace;
line-break: anywhere;
- -webkit-hyphens: auto;
+ hyphens: auto;
}
</style>
<p>Test passes if there is a green rectangle below and no red.</p>
<div id=green></div>
-<!-- Hyphenation, if it occurs, will produce a hyphen that sticks out from under the green rectangle.
- Also, if the words fails to be wrapped between all letters, letters will also stick out from under the green rectangle -->
+<!-- Hyphenation, if it occurs, will produce a hyphen that sticks out from under the green rectangle.
+ Also, if the words fails to be wrapped between all letters, letters will also stick out from under the green rectangle -->
<div id=test>no hyphenation</div>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-003-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-003-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-003-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html lang="en" >
+<head>
+<meta charset="utf-8">
+<title>word-break: break-all, latin</title>
+<link rel='author' title='Richard Ishida' href=''>
+<style type='text/css'>
+.test { word-break: break-all; }
+/* the CSS below is not part of the test */
+.test, .ref { border: 1px solid orange; margin: 20px; padding: 10px; width: 390px; font: 36px/1 sans-serif; }
+</style>
+</head>
+<body>
+<div id='instructions'>Test passes if the two orange boxes are the same.</div>
+<div class="ref"><span>Latin latin latin lati<br/>n</span></div>
+<div class="ref"><span>Latin latin latin lati<br/>n</span></div>
+</body>
+</html>
\ No newline at end of file
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-003.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-003.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-003.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang=en>
+<meta charset="utf-8">
+<title>CSS Text Test: line-break: anywhere</title>
+<link rel="author" title="Javier Fernandez" href="" />
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<link rel="match" href=""
+<meta name="flags" content="">
+<meta name="assert" content="line-break: anywhere means lines may break between any two typographic letter units.">
+<style type='text/css'>
+.test { line-break: anywhere; }
+/* the CSS below is not part of the test */
+.test, .ref { border: 1px solid orange; margin: 20px; padding: 10px; width: 390px; font: 36px/1 sans-serif; }
+</style>
+</head>
+<body>
+<div id='instructions'>Test passes if the two orange boxes are the same.</div>
+<div class="test"><div id="testdiv"><span id="testspan">Latin latin latin latin</span></div></div>
+<div class="ref"><span>Latin latin latin lati<br/>n</span></div>
+<script>
+var sentenceWidth = document.getElementById('testspan').offsetWidth
+document.getElementById('testdiv').style.width = String(sentenceWidth - 5)+'px'
+</script>
+</body>
+</html>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-004-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-004-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-004-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-004.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-004.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-004.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: line-break: anywhere</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="The second word is broken, despite the word-break: keep-all, because line-break: anywhere disregarde any prohibition against line breaks mandate by word-break.">
+<style>
+div {
+ position: relative;
+ font-size: 25px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 4ch;
+ line-height: 1;
+ word-break: keep-all;
+ line-break: anywhere;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XX X<br>XX</div>
+ <div class="test">XX XXX</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-005-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-005-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-005-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-005.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-005.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-005.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: overflow-wrap:break-word + white-space:break-spaces</title>
+<link rel="author" title="Javier Fernandez" href="" />
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<link rel="help" href=""
+<link rel="match" href=""
+<meta name="assert" content="line-break: anywhere + break-spaces do allow a break
+between the last character of a word and the first space of a sequence of preserved
+spaces even if there is a previous breaking opportunity">
+<style>
+div {
+ font: 25px/1 Ahem;
+ width: 4ch;
+ line-height: 1;
+}
+.red {
+ position: absolute;
+ white-space: pre;
+ color: red;
+ background: green;
+ z-index: -1;
+}
+.test {
+ white-space: break-spaces;
+ line-break: anywhere;
+ color: green;
+}
+</style>
+<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+<div class="red">X XX<br> XX <br>X XX<br> X</div>
+<div class="test">X XX XX X XX X</div>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-006-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-006-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-006-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-006.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-006.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-006.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: line-break: anywhere</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="line-break: anywhere' disgregard the prohibition against line breaks introduced by characters with the GL character class">
+<style>
+div {
+ position: relative;
+ font-size: 25px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 4ch;
+ line-break: anywhere;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XXXX<br> XXX<br>X X <br>X</div>
+ <div class="test">XXXX XXXX X X</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-007-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-007-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-007-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-007.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-007.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-007.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="line-break:anywhere allows breaking opportunities around punctuaction characters.">
+<style>
+div {
+ position: relative;
+ font-size: 20px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 5ch;
+ line-break: anywhere;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">X XXX<br>XX</div>
+ <div class="test">X XX...</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-008-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-008-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-008-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-008.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-008.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-008.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="break-all breaks between the last two letters, because breaking opportunities between the punctuaction characters are forbidden.">
+<style>
+div {
+ position: relative;
+ font-size: 20px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 5ch;
+ white-space: pre-wrap;
+ line-break: anywhere;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">X XXX<br>XX</div>
+ <div class="test">X XX...</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-009-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-009-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-009-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-009.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-009.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-009.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: line-break: anywhere</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="line-break: anywhere' disgregard the prohibition against line breaks introduced by characters with the GL character class">
+<style>
+div {
+ position: relative;
+ font-size: 25px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 4ch;
+ white-space: break-spaces;
+ line-break: anywhere;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XXXX<br> XXX<br>X X <br>X</div>
+ <div class="test">XXXX XXXX X X</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-010-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-010-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-010-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-010.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-010.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-010.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: line-break: anywhere</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="line-break: anywhere' disgregard the prohibition against line breaks introduced by characters with the GL character class">
+<style>
+div {
+ position: relative;
+ font-size: 25px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 4ch;
+ white-space: break-spaces;
+ line-break: anywhere;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XXXX<br> XXX<br>X X <br>X</div>
+ <div class="test">XXXX XXXX X X</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-011-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-011-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-011-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-011.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-011.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-011.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="line-break:anywhere allows breaking opportunities around slash characters.">
+<style>
+div {
+ position: relative;
+ font-size: 20px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 5ch;
+ line-break: anywhere;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">X XXX<br>XX</div>
+ <div class="test">X XX///</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-012-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-012-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-012-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-012.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-012.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-012.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="5.3. Line Breaking Strictness: the line-break property" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="line-break:anywhere allows breaking opportunities around slash characters.">
+<style>
+div {
+ position: relative;
+ font-size: 20px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 5ch;
+ line-break: anywhere;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">X XXX<br>XX</div>
+ <div class="test">X XX\\\</div>
+</body>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/line-break-valid-expected.txt (245274 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/line-break-valid-expected.txt 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/line-break-valid-expected.txt 2019-05-14 13:20:54 UTC (rev 245275)
@@ -3,5 +3,5 @@
PASS e.style['line-break'] = "loose" should set the property value
PASS e.style['line-break'] = "normal" should set the property value
PASS e.style['line-break'] = "strict" should set the property value
-FAIL e.style['line-break'] = "anywhere" should set the property value assert_not_equals: property should be set got disallowed value ""
+PASS e.style['line-break'] = "anywhere" should set the property value
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-016-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-016-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-016-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-016.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-016.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-016.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="break-all breaks between the last two letters, because breaking opportunities between the punctuaction characters are forbidden.">
+<style>
+div {
+ position: relative;
+ font-size: 20px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 8ch;
+ word-break: break-all;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XX XX<br>XXXX</div>
+ <div class="test">XX XXX...</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-017-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-017-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-017-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-017.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-017.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-017.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href=""
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href=""
+<link rel="help" href=""
+<link rel="help" href=""
+<meta name="flags" content="ahem">
+<link rel="match" href=""
+<meta name="assert" content="break-all + break-spaces do not allow a break
+between the last character of a word and the first space of a sequence of preserved spaces
+if there are other wrapping opportunities earlier in the line.">
+<style>
+div {
+ font: 25px/1 Ahem;
+ width: 4ch;
+}
+.red {
+ position: absolute;
+ white-space: pre;
+ color: red;
+ background: green;
+ z-index: -1;
+}
+.test {
+ white-space: break-spaces;
+ word-break: break-all;
+ color: green;
+}
+</style>
+<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+<div class="red">X<br>XX X<br>X X <br>XX X</div>
+<div class="test">X XX XX X XX X</div>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-018-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-018-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-018-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-018.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-018.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-018.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href=""
+<link rel="help" href=""
+<link rel="match" href=""
+<meta name="assert" content="word-break: break-all' must honors line breaking behavior introduced by characters with the GL character class">
+<style>
+div {
+ position: relative;
+ font-size: 25px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 4ch;
+ word-break: break-all;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XXX <br>X XX<br>XX X<br>X</div>
+ <div class="test">XXXX XXXX X X</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-019-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-019-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-019-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-019.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-019.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-019.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href=""
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href=""
+<link rel="help" href=""
+<link rel="help" href=""
+<link rel="match" href=""
+<meta name="assert" content="break-all breaks between the last two letters, because breaking opportunities between the punctuaction characters are forbidden.">
+<style>
+div {
+ position: relative;
+ font-size: 20px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 8ch;
+ white-space: pre-wrap;
+ word-break: break-all;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XX XX<br>XXXX</div>
+ <div class="test">XX XXX...</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-021-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-021-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-021-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-021.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-021.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-021.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href=""
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href=""
+<link rel="help" href=""
+<link rel="help" href=""
+<link rel="match" href=""
+<meta name="assert" content="word-break: break-all' must honor line breaking behavior introduced by characters with the GL character class">
+<style>
+div {
+ position: relative;
+ font-size: 25px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 4ch;
+ white-space: pre-wrap;
+ word-break: break-all;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XXX <br>X XX<br>XX X<br>X</div>
+ <div class="test">XXXX XXXX X X</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-022-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-022-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-022-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-022.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-022.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-022.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href=""
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href=""
+<link rel="help" href=""
+<link rel="help" href=""
+<link rel="match" href=""
+<meta name="assert" content="word-break: break-all' must honor line breaking behavior introduced by characters with the GL character class">
+<style>
+div {
+ position: relative;
+ font-size: 25px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 4ch;
+ white-space: break-spaces;
+ word-break: break-all;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XXX <br>X XX<br>XX <br>X X</div>
+ <div class="test">XXXX XXXX X X</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-023-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-023-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-023-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-023.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-023.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-023.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="break-all breaks between the last two letters, because breaking opportunities between the backslashes characters are forbidden.">
+<style>
+div {
+ position: relative;
+ font-size: 20px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 8ch;
+ word-break: break-all;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XX XXX<br>XXXX</div>
+ <div class="test">XX XXX\\\</div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-024-expected.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-024-expected.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-024-expected.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Reference File</title>
+<link rel="author" title="Florian Rivoal" href=""
+<style>
+div {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div></div>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-024.html (0 => 245275)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-024.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-024.html 2019-05-14 13:20:54 UTC (rev 245275)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break: break-all</title>
+<link rel="author" title="Javier Fernandez Garcia-Boente" href=""
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href=""
+<link rel="help" href=""
+<meta name="flags" content="">
+<link rel="match" href=""
+<meta name="assert" content="break-all breaks between the last two letters, because breaking opportunities between the slashes characters are forbidden.">
+<style>
+div {
+ position: relative;
+ font-size: 20px;
+ font-family: Ahem;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+ color: red;
+ z-index: -1;
+}
+.test {
+ color: green;
+ width: 8ch;
+ word-break: break-all;
+}
+</style>
+<body>
+ <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+ <div class="red">XX XX<br>XXXX</div>
+ <div class="test">XX XXX///</div>
+</body>
Modified: trunk/Source/WebCore/ChangeLog (245274 => 245275)
--- trunk/Source/WebCore/ChangeLog 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/Source/WebCore/ChangeLog 2019-05-14 13:20:54 UTC (rev 245275)
@@ -1,3 +1,53 @@
+2019-05-14 Javier Fernandez <[email protected]>
+
+ Implement "line-break: anywhere"
+ https://bugs.webkit.org/show_bug.cgi?id=181169
+ <rdar://problem/48507088>
+
+ Reviewed by Myles C. Maxfield.
+
+ The CSS WG resolved [1] to add a new value 'anywhere' to the 'line-break'
+ CSS property in order to allow additional breaking opportunities not
+ considered in the definition of the 'word-break: break-all'.
+
+ [1] https://github.com/w3c/csswg-drafts/issues/1171
+
+ Tests: imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-003.html
+ imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-004.html
+ imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-005.html
+ imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-006.html
+ imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-007.html
+ imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-008.html
+ imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-009.html
+ imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-010.html
+ imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-011.html
+ imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-012.html
+ imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-016.html
+ imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-017.html
+ imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-018.html
+ imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-019.html
+ imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-021.html
+ imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-022.html
+ imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-023.html
+ imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-024.html
+
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+ (WebCore::CSSPrimitiveValue::operator LineBreak const):
+ * css/CSSProperties.json:
+ * css/CSSValueKeywords.in:
+ * css/parser/CSSParserFastPaths.cpp:
+ (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
+ * rendering/BreakLines.h:
+ (WebCore::nextBreakablePositionBreakCharacter):
+ (WebCore::isBreakable):
+ * rendering/RenderText.cpp:
+ (WebCore::mapLineBreakToIteratorMode):
+ (WebCore::RenderText::computePreferredLogicalWidths):
+ * rendering/line/BreakingContext.h:
+ (WebCore::BreakingContext::handleText):
+ * rendering/style/RenderStyleConstants.h:
+
2019-05-13 Yusuke Suzuki <[email protected]>
Unreviewed, build fix after 245258, missing ThreadSpecific.h include
Modified: trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h (245274 => 245275)
--- trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h 2019-05-14 13:20:54 UTC (rev 245275)
@@ -1644,6 +1644,9 @@
case LineBreak::AfterWhiteSpace:
m_value.valueID = CSSValueAfterWhiteSpace;
break;
+ case LineBreak::Anywhere:
+ m_value.valueID = CSSValueAnywhere;
+ break;
}
}
@@ -1685,6 +1688,8 @@
return LineBreak::Strict;
case CSSValueAfterWhiteSpace:
return LineBreak::AfterWhiteSpace;
+ case CSSValueAnywhere:
+ return LineBreak::Anywhere;
default:
break;
}
Modified: trunk/Source/WebCore/css/CSSProperties.json (245274 => 245275)
--- trunk/Source/WebCore/css/CSSProperties.json 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/Source/WebCore/css/CSSProperties.json 2019-05-14 13:20:54 UTC (rev 245275)
@@ -5547,7 +5547,8 @@
"value": "after-white-space",
"status": "non-standard",
"comment": "Added in https://trac.webkit.org/changeset/7763"
- }
+ },
+ "anywhere"
],
"specification": {
"category": "css-text",
Modified: trunk/Source/WebCore/css/CSSValueKeywords.in (245274 => 245275)
--- trunk/Source/WebCore/css/CSSValueKeywords.in 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in 2019-05-14 13:20:54 UTC (rev 245275)
@@ -789,6 +789,7 @@
// normal
strict
after-white-space
+anywhere
// -webkit-appearance
// The order here must match the order in the ControlPart enum in ThemeTypes.h.
Modified: trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp (245274 => 245275)
--- trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp 2019-05-14 13:20:54 UTC (rev 245275)
@@ -731,8 +731,8 @@
return valueID == CSSValueAuto || valueID == CSSValueNone || valueID == CSSValueAntialiased || valueID == CSSValueSubpixelAntialiased;
case CSSPropertyWebkitLineAlign:
return valueID == CSSValueNone || valueID == CSSValueEdges;
- case CSSPropertyLineBreak: // auto | loose | normal | strict | after-white-space
- return valueID == CSSValueAuto || valueID == CSSValueLoose || valueID == CSSValueNormal || valueID == CSSValueStrict || valueID == CSSValueAfterWhiteSpace;
+ case CSSPropertyLineBreak: // auto | loose | normal | strict | after-white-space | anywhere
+ return valueID == CSSValueAuto || valueID == CSSValueLoose || valueID == CSSValueNormal || valueID == CSSValueStrict || valueID == CSSValueAfterWhiteSpace || valueID == CSSValueAnywhere;
case CSSPropertyWebkitLineSnap:
return valueID == CSSValueNone || valueID == CSSValueBaseline || valueID == CSSValueContain;
case CSSPropertyWebkitMarginAfterCollapse:
Modified: trunk/Source/WebCore/rendering/BreakLines.h (245274 => 245275)
--- trunk/Source/WebCore/rendering/BreakLines.h 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/Source/WebCore/rendering/BreakLines.h 2019-05-14 13:20:54 UTC (rev 245275)
@@ -187,12 +187,25 @@
return nextBreakablePosition<UChar, NonBreakingSpaceBehavior::IgnoreNonBreakingSpace, CanUseShortcut::No>(lazyBreakIterator, stringView.characters16(), stringView.length(), startPosition);
}
-inline bool isBreakable(LazyLineBreakIterator& lazyBreakIterator, unsigned startPosition, Optional<unsigned>& nextBreakable, bool breakNBSP, bool canUseShortcut, bool keepAllWords)
+inline unsigned nextBreakablePositionBreakCharacter(LazyLineBreakIterator& lazyBreakIterator, unsigned startPosition)
{
+ auto stringView = lazyBreakIterator.stringView();
+ ASSERT(startPosition <= stringView.length());
+ // FIXME: Can/Should we implement this using a Shared Iterator (performance issue)
+ // https://bugs.webkit.org/show_bug.cgi?id=197876
+ NonSharedCharacterBreakIterator iterator(stringView);
+ Optional<unsigned> next = ubrk_following(iterator, startPosition);
+ return next.valueOr(stringView.length());
+}
+
+inline bool isBreakable(LazyLineBreakIterator& lazyBreakIterator, unsigned startPosition, Optional<unsigned>& nextBreakable, bool breakNBSP, bool canUseShortcut, bool keepAllWords, bool breakAnywhere)
+{
if (nextBreakable && nextBreakable.value() >= startPosition)
return startPosition == nextBreakable;
- if (keepAllWords) {
+ if (breakAnywhere)
+ nextBreakable = nextBreakablePositionBreakCharacter(lazyBreakIterator, startPosition);
+ else if (keepAllWords) {
if (breakNBSP)
nextBreakable = nextBreakablePositionKeepingAllWords(lazyBreakIterator, startPosition);
else
Modified: trunk/Source/WebCore/rendering/RenderText.cpp (245274 => 245275)
--- trunk/Source/WebCore/rendering/RenderText.cpp 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/Source/WebCore/rendering/RenderText.cpp 2019-05-14 13:20:54 UTC (rev 245275)
@@ -704,6 +704,7 @@
switch (lineBreak) {
case LineBreak::Auto:
case LineBreak::AfterWhiteSpace:
+ case LineBreak::Anywhere:
return LineBreakIteratorMode::Default;
case LineBreak::Loose:
return LineBreakIteratorMode::Loose;
@@ -828,6 +829,7 @@
// Note the deliberate omission of word-wrap and overflow-wrap from this breakAll check. Those
// do not affect minimum preferred sizes. Note that break-word is a non-standard value for
// word-break, but we support it as though it means break-all.
+ bool breakAnywhere = style.lineBreak() == LineBreak::Anywhere && style.autoWrap();
bool breakAll = (style.wordBreak() == WordBreak::BreakAll || style.wordBreak() == WordBreak::BreakWord) && style.autoWrap();
bool keepAllWords = style.wordBreak() == WordBreak::KeepAll;
bool canUseLineBreakShortcut = iteratorMode == LineBreakIteratorMode::Default;
@@ -876,7 +878,7 @@
continue;
}
- bool hasBreak = breakAll || isBreakable(breakIterator, i, nextBreakable, breakNBSP, canUseLineBreakShortcut, keepAllWords);
+ bool hasBreak = breakAll || isBreakable(breakIterator, i, nextBreakable, breakNBSP, canUseLineBreakShortcut, keepAllWords, breakAnywhere);
bool betweenWords = true;
unsigned j = i;
while (c != '\n' && !isSpaceAccordingToStyle(c, style) && c != '\t' && (c != softHyphen || style.hyphens() == Hyphens::None)) {
@@ -884,7 +886,7 @@
if (j == length)
break;
c = string[j];
- if (isBreakable(breakIterator, j, nextBreakable, breakNBSP, canUseLineBreakShortcut, keepAllWords) && characterAt(j - 1) != softHyphen)
+ if (isBreakable(breakIterator, j, nextBreakable, breakNBSP, canUseLineBreakShortcut, keepAllWords, breakAnywhere) && characterAt(j - 1) != softHyphen)
break;
if (breakAll) {
betweenWords = false;
Modified: trunk/Source/WebCore/rendering/line/BreakingContext.h (245274 => 245275)
--- trunk/Source/WebCore/rendering/line/BreakingContext.h 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/Source/WebCore/rendering/line/BreakingContext.h 2019-05-14 13:20:54 UTC (rev 245275)
@@ -713,7 +713,8 @@
// which is only possible if the word is the first thing on the line.
bool breakWords = m_currentStyle->breakWords() && ((m_autoWrap && (!m_width.committedWidth() && !m_width.hasCommittedReplaced())) || m_currWS == WhiteSpace::Pre);
bool midWordBreak = false;
- bool breakAll = m_currentStyle->wordBreak() == WordBreak::BreakAll && m_autoWrap;
+ bool breakAnywhere = m_currentStyle->lineBreak() == LineBreak::Anywhere && m_autoWrap;
+ bool breakAll = (m_currentStyle->wordBreak() == WordBreak::BreakAll || breakAnywhere) && m_autoWrap;
bool keepAllWords = m_currentStyle->wordBreak() == WordBreak::KeepAll;
float hyphenWidth = 0;
auto iteratorMode = mapLineBreakToIteratorMode(m_blockStyle.lineBreak());
@@ -755,7 +756,7 @@
// A single preserved leading white-space doesn't fulfill the 'betweenWords' condition, however it's indeed a
// soft-breaking opportunty so we may want to avoid breaking in the middle of the word.
if (m_atStart && m_currentCharacterIsSpace && !previousCharacterIsSpace) {
- m_hasFormerOpportunity = true;
+ m_hasFormerOpportunity = !breakAnywhere;
breakWords = false;
canBreakMidWord = breakAll;
}
@@ -790,7 +791,7 @@
}
Optional<unsigned> nextBreakablePosition = m_current.nextBreakablePosition();
- bool betweenWords = c == '\n' || (m_currWS != WhiteSpace::Pre && !m_atStart && isBreakable(m_renderTextInfo.lineBreakIterator, m_current.offset(), nextBreakablePosition, breakNBSP, canUseLineBreakShortcut, keepAllWords)
+ bool betweenWords = c == '\n' || (m_currWS != WhiteSpace::Pre && !m_atStart && isBreakable(m_renderTextInfo.lineBreakIterator, m_current.offset(), nextBreakablePosition, breakNBSP, canUseLineBreakShortcut, keepAllWords, breakAnywhere)
&& (style.hyphens() != Hyphens::None || (m_current.previousInSameNode() != softHyphen)));
m_current.setNextBreakablePosition(nextBreakablePosition);
@@ -953,7 +954,7 @@
wrapW = wrapWidthOffset;
// Auto-wrapping text should not wrap in the middle of a word once it has had an
// opportunity to break after a word.
- m_hasFormerOpportunity = true;
+ m_hasFormerOpportunity = !breakAnywhere;
breakWords = false;
canBreakMidWord = breakAll;
}
Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (245274 => 245275)
--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h 2019-05-14 04:32:16 UTC (rev 245274)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h 2019-05-14 13:20:54 UTC (rev 245275)
@@ -533,7 +533,8 @@
Loose,
Normal,
Strict,
- AfterWhiteSpace
+ AfterWhiteSpace,
+ Anywhere
};
enum class Resize : uint8_t {