Diff
Modified: branches/safari-607-branch/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,7 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244173. rdar://problem/28160396
+
2019-04-10 Alan Coon <[email protected]>
Cherry-pick r243819. rdar://problem/49725678
Modified: branches/safari-607-branch/JSTests/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/JSTests/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/JSTests/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,7 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244122. rdar://problem/50132675
+
2019-04-09 Alan Coon <[email protected]>
Cherry-pick r243639. rdar://problem/49725710
Deleted: branches/safari-607-branch/JSTests/stress/map-b3-licm-infinite-loop.js (244797 => 244798)
--- branches/safari-607-branch/JSTests/stress/map-b3-licm-infinite-loop.js 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/JSTests/stress/map-b3-licm-infinite-loop.js 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,25 +0,0 @@
-let count = 0;
-function foo() {
- ++count;
- if (count === 1000000)
- throw new Error;
-}
-noInline(foo);
-
-function test() {
- let map = new Map();
-
- let count = 0;
- for (let i = 1000000 % 0; ; ) {
- if (!map.has(i)) {
- map.set(i, i);
- }
- foo();
- }
-
- return map;
-}
-
-try {
- test();
-} catch {}
Modified: branches/safari-607-branch/LayoutTests/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/LayoutTests/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/LayoutTests/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,11 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244173. rdar://problem/28160396
+
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244174. rdar://problem/28160396
+
2019-04-10 Alan Coon <[email protected]>
Cherry-pick r243841. rdar://problem/49725678
Deleted: branches/safari-607-branch/LayoutTests/fast/text/trailing-word-detection-expected.txt (244797 => 244798)
--- branches/safari-607-branch/LayoutTests/fast/text/trailing-word-detection-expected.txt 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/LayoutTests/fast/text/trailing-word-detection-expected.txt 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,6 +0,0 @@
-PASS '-apple-trailing-word' in element.style is true
-PASS window.getComputedStyle(element).getPropertyValue('color') is "rgb(0, 128, 0)"
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
Deleted: branches/safari-607-branch/LayoutTests/fast/text/trailing-word-detection.html (244797 => 244798)
--- branches/safari-607-branch/LayoutTests/fast/text/trailing-word-detection.html 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/LayoutTests/fast/text/trailing-word-detection.html 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src=""
-<style>
-@supports (-apple-trailing-word: auto) {
- #test {
- color: rgb(0, 128, 0);
- }
-}
-</style>
-</head>
-<body>
-<div id="test"></div>
-<script>
-let element = document.getElementById("test");
-shouldBeTrue("'-apple-trailing-word' in element.style");
-shouldBeEqualToString("window.getComputedStyle(element).getPropertyValue('color')", "rgb(0, 128, 0)");
-</script>
-<script src=""
-</body>
-</html>
Added: branches/safari-607-branch/LayoutTests/fast/text/trailing-word-expected.html (0 => 244798)
--- branches/safari-607-branch/LayoutTests/fast/text/trailing-word-expected.html (rev 0)
+++ branches/safari-607-branch/LayoutTests/fast/text/trailing-word-expected.html 2019-04-30 20:13:09 UTC (rev 244798)
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body>
+This test makes sure that -apple-trailing-word: -apple-partially-balanced breaks lines correctly.
+<div style="font-family: Ahem;">
+<div>ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF GHI JKL<br>MNO</div>
+<div>ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF GHI<br>JKL MNO</div>
+<div>ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF G H<br>I J K</div>
+<div>ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF GHI JKL<br>MNO PQRS</div>
+<div>ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF GHI JKL<br>MNO PQRS TUV WXYZ ABC DEF GHI JKL MNO PQRS TUV<br>WXYZ</div>
+</div>
+</body>
+</html>
Added: branches/safari-607-branch/LayoutTests/fast/text/trailing-word.html (0 => 244798)
--- branches/safari-607-branch/LayoutTests/fast/text/trailing-word.html (rev 0)
+++ branches/safari-607-branch/LayoutTests/fast/text/trailing-word.html 2019-04-30 20:13:09 UTC (rev 244798)
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body>
+This test makes sure that -apple-trailing-word: -apple-partially-balanced breaks lines correctly.
+<div style="font-family: Ahem;">
+<div>ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF GHI JKL MNO</div>
+<div style="-apple-trailing-word: -apple-partially-balanced;">ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF GHI JKL MNO</div>
+<div style="-apple-trailing-word: -apple-partially-balanced;">ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF G H I J K</div>
+<div style="-apple-trailing-word: -apple-partially-balanced;">ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF GHI JKL MNO PQRS</div>
+<div style="-apple-trailing-word: -apple-partially-balanced;">ABC DEF GHI JKL MNO PQRS TUVW XYZ ABC DEF GHI JKL MNO PQRS TUV WXYZ ABC DEF GHI JKL MNO PQRS TUV WXYZ</div>
+</div>
+</body>
+</html>
Modified: branches/safari-607-branch/LayoutTests/platform/gtk/TestExpectations (244797 => 244798)
--- branches/safari-607-branch/LayoutTests/platform/gtk/TestExpectations 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/LayoutTests/platform/gtk/TestExpectations 2019-04-30 20:13:09 UTC (rev 244798)
@@ -3158,7 +3158,7 @@
webkit.org/b/160248 fast/text/combining-mark-paint.html [ ImageOnlyFailure ]
webkit.org/b/160248 fast/text/synthetic-bold-transformed.html [ ImageOnlyFailure ]
-webkit.org/b/160248 fast/text/trailing-word-detection.html [ Failure ]
+webkit.org/b/160248 fast/text/trailing-word.html [ ImageOnlyFailure ]
webkit.org/b/160249 fast/shrink-wrap/rect-shrink-wrap.html [ ImageOnlyFailure ]
Added: branches/safari-607-branch/LayoutTests/platform/mac/fast/text/trailing-word-parse-expected.txt (0 => 244798)
--- branches/safari-607-branch/LayoutTests/platform/mac/fast/text/trailing-word-parse-expected.txt (rev 0)
+++ branches/safari-607-branch/LayoutTests/platform/mac/fast/text/trailing-word-parse-expected.txt 2019-04-30 20:13:09 UTC (rev 244798)
@@ -0,0 +1,41 @@
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 0
+PASS declaration.getPropertyValue('-apple-trailing-word') is ""
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 1
+PASS declaration.getPropertyValue('-apple-trailing-word') is "initial"
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 1
+PASS declaration.getPropertyValue('-apple-trailing-word') is "-webkit-partially-balanced"
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "-webkit-partially-balanced"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 0
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 0
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 0
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 0
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 0
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 0
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 1
+PASS declaration.getPropertyValue('-apple-trailing-word') is "auto"
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS cssRule.type is cssRule.STYLE_RULE
+PASS declaration.length is 0
+PASS computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText is "auto"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: branches/safari-607-branch/LayoutTests/platform/mac/fast/text/trailing-word-parse.html (0 => 244798)
--- branches/safari-607-branch/LayoutTests/platform/mac/fast/text/trailing-word-parse.html (rev 0)
+++ branches/safari-607-branch/LayoutTests/platform/mac/fast/text/trailing-word-parse.html 2019-04-30 20:13:09 UTC (rev 244798)
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<script src=""
+</head>
+<body>
+ <div id="p"></div>
+ <script type="text/_javascript_">
+ function testPartiallyBalancedIsValid(stylesheet, target) {
+ cssRule = stylesheet.cssRules.item(0);
+ shouldBe("cssRule.type", "cssRule.STYLE_RULE");
+ declaration = cssRule.style;
+ shouldBe("declaration.length", "1");
+ shouldBeEqualToString("declaration.getPropertyValue('-apple-trailing-word')", "-webkit-partially-balanced");
+ computedStyle = window.getComputedStyle(target, null);
+ shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "-webkit-partially-balanced");
+ stylesheet.deleteRule(0);
+ }
+
+ function testEmptyIsNone(stylesheet, target) {
+ cssRule = stylesheet.cssRules.item(0);
+ shouldBe("cssRule.type", "cssRule.STYLE_RULE");
+ declaration = cssRule.style;
+ shouldBe("declaration.length", "0");
+ shouldBeEqualToString("declaration.getPropertyValue('-apple-trailing-word')", "");
+ computedStyle = window.getComputedStyle(target, null);
+ shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "auto");
+ stylesheet.deleteRule(0);
+ }
+
+ function testInitialIsNone(stylesheet, target) {
+ cssRule = stylesheet.cssRules.item(0);
+ shouldBe("cssRule.type", "cssRule.STYLE_RULE");
+ declaration = cssRule.style;
+ shouldBe("declaration.length", "1");
+ shouldBeEqualToString("declaration.getPropertyValue('-apple-trailing-word')", "initial");
+ computedStyle = window.getComputedStyle(target, null);
+ shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "auto");
+ stylesheet.deleteRule(0);
+ }
+
+ function testInvalidRule(stylesheet, target) {
+ cssRule = stylesheet.cssRules.item(0);
+ shouldBe("cssRule.type", "cssRule.STYLE_RULE");
+ declaration = cssRule.style;
+ shouldBe("declaration.length", "0");
+ computedStyle = window.getComputedStyle(target, null);
+ shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "auto");
+ stylesheet.deleteRule(0);
+ }
+
+ function testNoneIsValid(stylesheet, target) {
+ cssRule = stylesheet.cssRules.item(0);
+ shouldBe("cssRule.type", "cssRule.STYLE_RULE");
+ declaration = cssRule.style;
+ shouldBe("declaration.length", "1");
+ shouldBeEqualToString("declaration.getPropertyValue('-apple-trailing-word')", "auto");
+ computedStyle = window.getComputedStyle(target, null);
+ shouldBeEqualToString("computedStyle.getPropertyCSSValue('-apple-trailing-word').cssText", "auto");
+ stylesheet.deleteRule(0);
+ }
+
+ var styleElement = document.createElement("style");
+ document.head.appendChild(styleElement);
+ stylesheet = styleElement.sheet;
+ var target = document.getElementById("p");
+
+ stylesheet.insertRule("#p { }", 0);
+ testEmptyIsNone(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: initial; }", 0);
+ testInitialIsNone(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: -apple-partially-balanced; }", 0);
+ testPartiallyBalancedIsValid(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: -apple-partially-balanced -apple-partially-balanced -apple-partially-balanced; }", 0);
+ testInvalidRule(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: garbage; }", 0);
+ testInvalidRule(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: garbage -apple-partially-balanced; }", 0);
+ testInvalidRule(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: -apple-partially-balanced garbage; }", 0);
+ testInvalidRule(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: garbage -apple-partially-balanced garbage; }", 0);
+ testInvalidRule(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: -apple-partially-balanced garbage -apple-partially-balanced; }", 0);
+ testInvalidRule(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: auto; }", 0);
+ testNoneIsValid(stylesheet, target);
+
+ stylesheet.insertRule("#p { -apple-trailing-word: ; }", 0);
+ testInvalidRule(stylesheet, target);
+ </script>
+<script src=""
+</body>
+</html>
+
Modified: branches/safari-607-branch/LayoutTests/platform/win/TestExpectations (244797 => 244798)
--- branches/safari-607-branch/LayoutTests/platform/win/TestExpectations 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/LayoutTests/platform/win/TestExpectations 2019-04-30 20:13:09 UTC (rev 244798)
@@ -3000,7 +3000,7 @@
fast/ruby/ruby-expansion-cjk-5.html [ ImageOnlyFailure ]
fast/text/combining-mark-paint.html [ ImageOnlyFailure ]
fast/text/synthetic-bold-transformed.html [ ImageOnlyFailure ]
-fast/text/trailing-word-detection.html [ Failure ]
+fast/text/trailing-word.html [ ImageOnlyFailure ]
# TestRunner::addChromeInputField() and focusWebView() not implemented
fast/forms/focus-option-control-on-page.html [ Skip ]
Modified: branches/safari-607-branch/PerformanceTests/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/PerformanceTests/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/PerformanceTests/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,7 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244174. rdar://problem/28160396
+
2019-04-10 Alan Coon <[email protected]>
Cherry-pick r243841. rdar://problem/49725678
Modified: branches/safari-607-branch/PerformanceTests/MotionMark/resources/debug-runner/motionmark.css (244797 => 244798)
--- branches/safari-607-branch/PerformanceTests/MotionMark/resources/debug-runner/motionmark.css 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/PerformanceTests/MotionMark/resources/debug-runner/motionmark.css 2019-04-30 20:13:09 UTC (rev 244798)
@@ -209,6 +209,7 @@
#intro .start-benchmark p {
color: hsl(11, 72%, 50%);
margin-bottom: 1em;
+ -apple-trailing-word: -apple-partially-balanced;
}
#intro .start-benchmark button {
Modified: branches/safari-607-branch/Source/_javascript_Core/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/Source/_javascript_Core/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/_javascript_Core/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,15 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244122. rdar://problem/50132675
+
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244173. rdar://problem/28160396
+
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244174. rdar://problem/28160396
+
2019-04-10 Alan Coon <[email protected]>
Cherry-pick r243841. rdar://problem/49725678
Modified: branches/safari-607-branch/Source/_javascript_Core/Configurations/Version.xcconfig (244797 => 244798)
--- branches/safari-607-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2019-04-30 20:13:09 UTC (rev 244798)
@@ -24,7 +24,7 @@
MAJOR_VERSION = 607;
MINOR_VERSION = 2;
TINY_VERSION = 6;
-MICRO_VERSION = 1;
+MICRO_VERSION = 0;
NANO_VERSION = 1;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION);
Modified: branches/safari-607-branch/Source/_javascript_Core/b3/testb3.cpp (244797 => 244798)
--- branches/safari-607-branch/Source/_javascript_Core/b3/testb3.cpp 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/_javascript_Core/b3/testb3.cpp 2019-04-30 20:13:09 UTC (rev 244798)
@@ -16327,51 +16327,6 @@
compileAndRun<void>(proc);
}
-void testInfiniteLoopDoesntCauseBadHoisting()
-{
- Procedure proc;
- if (proc.optLevel() < 2)
- return;
- BasicBlock* root = proc.addBlock();
- BasicBlock* header = proc.addBlock();
- BasicBlock* loadBlock = proc.addBlock();
- BasicBlock* postLoadBlock = proc.addBlock();
-
- Value* arg = root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0);
- root->appendNewControlValue(proc, Jump, Origin(), header);
-
- header->appendNewControlValue(
- proc, Branch, Origin(),
- header->appendNew<Value>(proc, Equal, Origin(),
- arg,
- header->appendNew<Const64Value>(proc, Origin(), 10)), header, loadBlock);
-
- PatchpointValue* patchpoint = loadBlock->appendNew<PatchpointValue>(proc, Void, Origin());
- patchpoint->effects = Effects::none();
- patchpoint->effects.writesLocalState = true; // Don't DCE this.
- patchpoint->setGenerator(
- [&] (CCallHelpers& jit, const StackmapGenerationParams&) {
- // This works because we don't have callee saves.
- jit.emitFunctionEpilogue();
- jit.ret();
- });
-
- Value* badLoad = loadBlock->appendNew<MemoryValue>(proc, Load, Int64, Origin(), arg, 0);
-
- loadBlock->appendNewControlValue(
- proc, Branch, Origin(),
- loadBlock->appendNew<Value>(proc, Equal, Origin(),
- badLoad,
- loadBlock->appendNew<Const64Value>(proc, Origin(), 45)), header, postLoadBlock);
-
- postLoadBlock->appendNewControlValue(proc, Return, Origin(), badLoad);
-
- // The patchpoint early ret() works because we don't have callee saves.
- auto code = compileProc(proc);
- RELEASE_ASSERT(!proc.calleeSaveRegisterAtOffsetList().size());
- invoke<void>(*code, static_cast<uint64_t>(55)); // Shouldn't crash dereferncing 55.
-}
-
// Make sure the compiler does not try to optimize anything out.
NEVER_INLINE double zero()
{
@@ -17943,8 +17898,6 @@
RUN(testLoopWithMultipleHeaderEdges());
- RUN(testInfiniteLoopDoesntCauseBadHoisting());
-
if (isX86()) {
RUN(testBranchBitAndImmFusion(Identity, Int64, 1, Air::BranchTest32, Air::Arg::Tmp));
RUN(testBranchBitAndImmFusion(Identity, Int64, 0xff, Air::BranchTest32, Air::Arg::Tmp));
Modified: branches/safari-607-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (244797 => 244798)
--- branches/safari-607-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2019-04-30 20:13:09 UTC (rev 244798)
@@ -24,7 +24,7 @@
MAJOR_VERSION = 607;
MINOR_VERSION = 2;
TINY_VERSION = 6;
-MICRO_VERSION = 1;
+MICRO_VERSION = 0;
NANO_VERSION = 1;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION);
Modified: branches/safari-607-branch/Source/WTF/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/Source/WTF/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WTF/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,7 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244122. rdar://problem/50132675
+
2019-04-09 Alan Coon <[email protected]>
Cherry-pick r243639. rdar://problem/49725710
Modified: branches/safari-607-branch/Source/WTF/WTF.xcodeproj/project.pbxproj (244797 => 244798)
--- branches/safari-607-branch/Source/WTF/WTF.xcodeproj/project.pbxproj 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WTF/WTF.xcodeproj/project.pbxproj 2019-04-30 20:13:09 UTC (rev 244798)
@@ -388,7 +388,6 @@
70ECA60A1B02426800449739 /* AtomicStringImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AtomicStringImpl.cpp; sourceTree = "<group>"; };
70ECA60B1B02426800449739 /* SymbolImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SymbolImpl.h; sourceTree = "<group>"; };
70ECA60C1B02426800449739 /* UniquedStringImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UniquedStringImpl.h; sourceTree = "<group>"; };
- 79038E05224B05A7004C0738 /* SpanningTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpanningTree.h; sourceTree = "<group>"; };
7936D6A91C99F8AE000D1AED /* SmallPtrSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmallPtrSet.h; sourceTree = "<group>"; };
793BFADD9CED44B8B9FBCA16 /* StdUnorderedMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdUnorderedMap.h; sourceTree = "<group>"; };
795212021F42588800BD6421 /* SingleRootGraph.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SingleRootGraph.h; sourceTree = "<group>"; };
@@ -1078,7 +1077,6 @@
A8A4730C151A825B004123FF /* SizeLimits.cpp */,
7936D6A91C99F8AE000D1AED /* SmallPtrSet.h */,
A30D412D1F0DE13F00B71954 /* SoftLinking.h */,
- 79038E05224B05A7004C0738 /* SpanningTree.h */,
A8A4730D151A825B004123FF /* Spectrum.h */,
A8A4730E151A825B004123FF /* StackBounds.cpp */,
A8A4730F151A825B004123FF /* StackBounds.h */,
Modified: branches/safari-607-branch/Source/WTF/wtf/BackwardsGraph.h (244797 => 244798)
--- branches/safari-607-branch/Source/WTF/wtf/BackwardsGraph.h 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WTF/wtf/BackwardsGraph.h 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016-2019 Apple Inc. All rights reserved.
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -29,7 +29,6 @@
#include <wtf/GraphNodeWorklist.h>
#include <wtf/Noncopyable.h>
#include <wtf/SingleRootGraph.h>
-#include <wtf/SpanningTree.h>
#include <wtf/StdLibExtras.h>
namespace WTF {
@@ -58,23 +57,6 @@
}
};
- {
- // Loops are a form of terminality (you can loop forever). To have a loop, you need to
- // have a back edge. An edge u->v is a back edge when u is a descendent of v in the
- // DFS spanning tree of the Graph.
- SpanningTree<Graph> spanningTree(graph);
- for (unsigned i = 0; i < graph.numNodes(); ++i) {
- if (typename Graph::Node node = graph.node(i)) {
- for (typename Graph::Node successor : graph.successors(node)) {
- if (spanningTree.isDescendent(node, successor)) {
- addRootSuccessor(node);
- break;
- }
- }
- }
- }
- }
-
for (unsigned i = 0; i < graph.numNodes(); ++i) {
if (typename Graph::Node node = graph.node(i)) {
if (!graph.successors(node).size())
Deleted: branches/safari-607-branch/Source/WTF/wtf/SpanningTree.h (244797 => 244798)
--- branches/safari-607-branch/Source/WTF/wtf/SpanningTree.h 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WTF/wtf/SpanningTree.h 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2019 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include <wtf/GraphNodeWorklist.h>
-
-template<typename Graph>
-class SpanningTree {
-public:
- SpanningTree(Graph& graph)
- : m_graph(graph)
- , m_data(graph.template newMap<Data>())
- {
- ExtendedGraphNodeWorklist<typename Graph::Node, unsigned, typename Graph::Set> worklist;
- worklist.push(m_graph.root(), 0);
-
- size_t number = 0;
-
- while (GraphNodeWith<typename Graph::Node, unsigned> item = worklist.pop()) {
- typename Graph::Node block = item.node;
- unsigned successorIndex = item.data;
-
- // We initially push with successorIndex = 0 regardless of whether or not we have any
- // successors. This is so that we can assign our prenumber. Subsequently we get pushed
- // with higher successorIndex values. We finally push successorIndex == # successors
- // to calculate our post number.
- ASSERT(!successorIndex || successorIndex <= m_graph.successors(block).size());
-
- if (!successorIndex)
- m_data[block].pre = number++;
-
- if (successorIndex < m_graph.successors(block).size()) {
- unsigned nextSuccessorIndex = successorIndex + 1;
- // We need to push this even if this is out of bounds so we can compute
- // the post number.
- worklist.forcePush(block, nextSuccessorIndex);
-
- typename Graph::Node successorBlock = m_graph.successors(block)[successorIndex];
- worklist.push(successorBlock, 0);
- } else
- m_data[block].post = number++;
- }
- }
-
- // Returns true if a is a descendent of b.
- // Note a is a descendent of b if they're equal.
- bool isDescendent(typename Graph::Node a, typename Graph::Node b)
- {
- return m_data[b].pre <= m_data[a].pre
- && m_data[b].post >= m_data[a].post;
- }
-
-private:
- struct Data {
- size_t pre;
- size_t post;
- };
-
- Graph& m_graph;
- typename Graph::template Map<Data> m_data;
-};
Modified: branches/safari-607-branch/Source/WebCore/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,36 +1,15 @@
-2019-04-30 Alan Coon <[email protected]>
+2019-04-24 Alan Coon <[email protected]>
- Cherry-pick r244632. rdar://problem/50344188
+ Revert r244120. rdar://problem/50132675
- Do not restart WebRTC stats timer if backend is stopped
- https://bugs.webkit.org/show_bug.cgi?id=197257
- <rdar://problem/50095879>
-
- Reviewed by Eric Carlson.
-
- We used to stop and reschedule the stat gathering timer in case the
- gathering delay is changing. Timer should not be rescheduled if the backend is stopped.
-
- * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
- (WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
-
-
- git-svn-id: https://svn.webkit.org/repository/webkit/trunk@244632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+2019-04-24 Alan Coon <[email protected]>
- 2019-04-24 Youenn Fablet <[email protected]>
+ Revert r244173. rdar://problem/28160396
- Do not restart WebRTC stats timer if backend is stopped
- https://bugs.webkit.org/show_bug.cgi?id=197257
- <rdar://problem/50095879>
+2019-04-24 Alan Coon <[email protected]>
- Reviewed by Eric Carlson.
+ Revert r244174. rdar://problem/28160396
- We used to stop and reschedule the stat gathering timer in case the
- gathering delay is changing. Timer should not be rescheduled if the backend is stopped.
-
- * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
- (WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
-
2019-04-10 Alan Coon <[email protected]>
Cherry-pick r243841. rdar://problem/49725678
Modified: branches/safari-607-branch/Source/WebCore/Configurations/Version.xcconfig (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/Configurations/Version.xcconfig 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/Configurations/Version.xcconfig 2019-04-30 20:13:09 UTC (rev 244798)
@@ -24,7 +24,7 @@
MAJOR_VERSION = 607;
MINOR_VERSION = 2;
TINY_VERSION = 6;
-MICRO_VERSION = 1;
+MICRO_VERSION = 0;
NANO_VERSION = 1;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION);
Modified: branches/safari-607-branch/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp 2019-04-30 20:13:09 UTC (rev 244798)
@@ -847,7 +847,7 @@
m_statsFirstDeliveredTimestamp = timestamp;
callOnMainThread([protectedThis = makeRef(*this), this, timestamp, report] {
- if (m_backend && m_statsLogTimer.repeatInterval() != statsLogInterval(timestamp)) {
+ if (m_statsLogTimer.repeatInterval() != statsLogInterval(timestamp)) {
m_statsLogTimer.stop();
m_statsLogTimer.startRepeating(statsLogInterval(timestamp));
}
Modified: branches/safari-607-branch/Source/WebCore/PAL/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/PAL/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/PAL/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,11 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244173. rdar://problem/28160396
+
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244174. rdar://problem/28160396
+
2019-04-10 Alan Coon <[email protected]>
Cherry-pick r243841. rdar://problem/49725678
Modified: branches/safari-607-branch/Source/WebCore/PAL/Configurations/Version.xcconfig (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2019-04-30 20:13:09 UTC (rev 244798)
@@ -24,7 +24,7 @@
MAJOR_VERSION = 607;
MINOR_VERSION = 2;
TINY_VERSION = 6;
-MICRO_VERSION = 1;
+MICRO_VERSION = 0;
NANO_VERSION = 1;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION);
Modified: branches/safari-607-branch/Source/WebCore/css/CSSProperties.json (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/css/CSSProperties.json 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/css/CSSProperties.json 2019-04-30 20:13:09 UTC (rev 244798)
@@ -6709,10 +6709,7 @@
"name-for-methods": "TrailingWord",
"enable-if": "ENABLE_CSS_TRAILING_WORD"
},
- "status": {
- "status": "non-standard",
- "comment": "Needed for feature-detecting the Safari browser. Implementation has no effect."
- }
+ "status": "non-standard"
},
"-apple-pay-button-style": {
"codegen-properties": {
Modified: branches/safari-607-branch/Source/WebCore/page/DOMWindow.cpp (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/page/DOMWindow.cpp 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/page/DOMWindow.cpp 2019-04-30 20:13:09 UTC (rev 244798)
@@ -488,9 +488,6 @@
if (m_performance)
m_performance->clearResourceTimings();
-
- JSDOMWindowBase::fireFrameClearedWatchpointsForWindow(this);
- InspectorInstrumentation::frameWindowDiscarded(*frame(), this);
}
#if ENABLE(GAMEPAD)
Modified: branches/safari-607-branch/Source/WebCore/rendering/SimpleLineLayout.cpp (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/rendering/SimpleLineLayout.cpp 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/rendering/SimpleLineLayout.cpp 2019-04-30 20:13:09 UTC (rev 244798)
@@ -240,6 +240,10 @@
SET_REASON_AND_RETURN_IF_NEEDED(FlowHasNonAutoLineBreak, reasons, includeReasons);
if (style.nbspMode() != NBSPMode::Normal)
SET_REASON_AND_RETURN_IF_NEEDED(FlowHasWebKitNBSPMode, reasons, includeReasons);
+#if ENABLE(CSS_TRAILING_WORD)
+ if (style.trailingWord() != TrailingWord::Auto)
+ SET_REASON_AND_RETURN_IF_NEEDED(FlowHasNonAutoTrailingWord, reasons, includeReasons);
+#endif
if (style.hyphens() == Hyphens::Auto) {
auto textReasons = canUseForText(style.hyphenString(), style.fontCascade(), WTF::nullopt, false, includeReasons);
if (textReasons != NoReason)
Modified: branches/safari-607-branch/Source/WebCore/rendering/SimpleLineLayoutCoverage.cpp (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/rendering/SimpleLineLayoutCoverage.cpp 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/rendering/SimpleLineLayoutCoverage.cpp 2019-04-30 20:13:09 UTC (rev 244798)
@@ -135,6 +135,9 @@
case FlowHasNonAutoLineBreak:
stream << "line-break is not auto";
break;
+ case FlowHasNonAutoTrailingWord:
+ stream << "-apple-trailing-word is not auto";
+ break;
case FlowHasSVGFont:
stream << "SVG font";
break;
Modified: branches/safari-607-branch/Source/WebCore/rendering/SimpleLineLayoutCoverage.h (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/rendering/SimpleLineLayoutCoverage.h 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/rendering/SimpleLineLayoutCoverage.h 2019-04-30 20:13:09 UTC (rev 244798)
@@ -66,6 +66,7 @@
FlowHasTextFillBox = 1LLU << 28,
FlowHasBorderFitLines = 1LLU << 29,
FlowHasNonAutoLineBreak = 1LLU << 30,
+ FlowHasNonAutoTrailingWord = 1LLU << 31,
FlowHasSVGFont = 1LLU << 32,
FlowTextIsEmpty = 1LLU << 33,
FlowTextHasSoftHyphen = 1LLU << 34,
Modified: branches/safari-607-branch/Source/WebCore/rendering/line/BreakingContext.h (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/rendering/line/BreakingContext.h 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/rendering/line/BreakingContext.h 2019-04-30 20:13:09 UTC (rev 244798)
@@ -97,7 +97,11 @@
: m_lineBreaker(lineBreaker)
, m_resolver(resolver)
, m_current(resolver.position())
- , m_lineBreak(resolver.position())
+#if ENABLE(CSS_TRAILING_WORD)
+ , m_lineBreakHistory(InlineIterator(resolver.position()), block.style().trailingWord() == TrailingWord::PartiallyBalanced ? 5 : 1)
+#else
+ , m_lineBreakHistory(InlineIterator(resolver.position()), 1)
+#endif
, m_block(block)
, m_lastObject(m_current.renderer())
, m_nextObject(nullptr)
@@ -130,7 +134,7 @@
}
RenderObject* currentObject() { return m_current.renderer(); }
- InlineIterator lineBreak() { return m_lineBreak; }
+ InlineIterator lineBreak() { return m_lineBreakHistory.current(); }
LineWidth& lineWidth() { return m_width; }
bool atEnd() { return m_atEnd; }
@@ -149,6 +153,9 @@
bool canBreakAtThisPosition();
void commitAndUpdateLineBreakIfNeeded();
InlineIterator handleEndOfLine();
+#if ENABLE(CSS_TRAILING_WORD)
+ InlineIterator optimalLineBreakLocationForTrailingWord();
+#endif
float computeAdditionalBetweenWordsWidth(RenderText&, TextLayout*, UChar, WordTrailingSpace&, HashSet<const Font*>& fallbackFonts, WordMeasurements&, const FontCascade&, bool isFixedPitch, unsigned lastSpace, float lastSpaceWordSpacing, float wordSpacingForWordMeasurement, unsigned offset);
@@ -155,7 +162,7 @@
void clearLineBreakIfFitsOnLine(bool ignoringTrailingSpace = false)
{
if (m_width.fitsOnLine(ignoringTrailingSpace) || m_lastWS == WhiteSpace::NoWrap || m_hangsAtEnd)
- m_lineBreak.clear();
+ m_lineBreakHistory.clear();
m_hangsAtEnd = false;
}
@@ -162,7 +169,7 @@
void commitLineBreakClear()
{
m_width.commit();
- m_lineBreak.clear();
+ m_lineBreakHistory.clear();
m_hangsAtEnd = false;
}
@@ -169,16 +176,77 @@
void commitLineBreakAtCurrentWidth(RenderObject& object, unsigned offset = 0, Optional<unsigned> nextBreak = Optional<unsigned>())
{
m_width.commit();
- m_lineBreak.moveTo(object, offset, nextBreak);
+ m_lineBreakHistory.moveTo(object, offset, nextBreak);
m_hangsAtEnd = false;
}
private:
+ // This class keeps a sliding window of the past n locations for an InlineIterator.
+ class InlineIteratorHistory : private Vector<InlineIterator, 1> {
+ public:
+ InlineIteratorHistory() = delete;
+ InlineIteratorHistory(const InlineIterator& initial, size_t capacity)
+ : m_capacity(capacity)
+ {
+ ASSERT(capacity > 0);
+ this->append(initial);
+ }
+
+ void push(const WTF::Function<void(InlineIterator& modifyMe)>& updater)
+ {
+ ASSERT(!this->isEmpty());
+ if (m_capacity != 1)
+ this->insert(0, InlineIterator(this->at(0)));
+ updater(this->at(0));
+ if (m_capacity != 1)
+ this->resize(m_capacity);
+ }
+
+ void update(const WTF::Function<void(InlineIterator& modifyMe)>& updater)
+ {
+ ASSERT(!this->isEmpty());
+ updater(this->at(0));
+ }
+
+ RenderObject* renderer() const { return this->at(0).renderer(); }
+ unsigned offset() const { return this->at(0).offset(); }
+ Optional<unsigned> nextBreakablePosition() const { return this->at(0).nextBreakablePosition(); }
+ bool atTextParagraphSeparator() const { return this->at(0).atTextParagraphSeparator(); }
+ UChar previousInSameNode() const { return this->at(0).previousInSameNode(); }
+ const InlineIterator& get(size_t i) const { return this->at(i); };
+ const InlineIterator& current() const { return get(0); }
+ size_t historyLength() const { return this->size(); }
+
+ void moveTo(RenderObject& object, unsigned offset, Optional<unsigned> nextBreak = WTF::nullopt)
+ {
+ push([&](InlineIterator& modifyMe) {
+ modifyMe.moveTo(object, offset, nextBreak);
+ });
+ }
+
+ void increment()
+ {
+ update([](InlineIterator& modifyMe) {
+ modifyMe.increment();
+ });
+ }
+
+ void clear()
+ {
+ push([](InlineIterator& modifyMe) {
+ modifyMe.clear();
+ });
+ }
+
+ private:
+ const size_t m_capacity;
+ };
+
LineBreaker& m_lineBreaker;
InlineBidiResolver& m_resolver;
InlineIterator m_current;
- InlineIterator m_lineBreak;
+ InlineIteratorHistory m_lineBreakHistory;
InlineIterator m_startOfIgnoredSpaces;
RenderBlockFlow& m_block;
@@ -274,8 +342,10 @@
{
if (fitsOnLineOrHangsAtEnd()) {
RenderObject& br = *m_current.renderer();
- m_lineBreak.moveToStartOf(br);
- m_lineBreak.increment();
+ m_lineBreakHistory.push([&](InlineIterator& modifyMe) {
+ modifyMe.moveToStartOf(br);
+ modifyMe.increment();
+ });
// A <br> always breaks a line, so don't let the line be collapsed
// away. Also, the space at the end of a line with a <br> does not
@@ -394,9 +464,9 @@
// it after moving to next line (in clearFloats() func)
if (m_floatsFitOnLine && m_width.fitsOnLineExcludingTrailingWhitespace(m_block.logicalWidthForFloat(floatingObject))) {
m_lineBreaker.positionNewFloatOnLine(floatingObject, m_lastFloatFromPreviousLine, m_lineInfo, m_width);
- if (m_lineBreak.renderer() == m_current.renderer()) {
- ASSERT(!m_lineBreak.offset());
- m_lineBreak.increment();
+ if (m_lineBreakHistory.renderer() == m_current.renderer()) {
+ ASSERT(!m_lineBreakHistory.offset());
+ m_lineBreakHistory.increment();
}
} else
m_floatsFitOnLine = false;
@@ -682,9 +752,9 @@
auto& combineRenderer = downcast<RenderCombineText>(*m_current.renderer());
combineRenderer.combineTextIfNeeded();
// The length of the renderer's text may have changed. Increment stale iterator positions
- if (iteratorIsBeyondEndOfRenderCombineText(m_lineBreak, combineRenderer)) {
+ if (iteratorIsBeyondEndOfRenderCombineText(m_lineBreakHistory.current(), combineRenderer)) {
ASSERT(iteratorIsBeyondEndOfRenderCombineText(m_resolver.position(), combineRenderer));
- m_lineBreak.increment();
+ m_lineBreakHistory.increment();
m_resolver.increment();
}
}
@@ -850,8 +920,10 @@
// additional whitespace.
if (!m_width.fitsOnLineIncludingExtraWidth(charWidth)) {
lineWasTooWide = true;
- m_lineBreak.moveTo(renderObject, m_current.offset(), m_current.nextBreakablePosition());
- m_lineBreaker.skipTrailingWhitespace(m_lineBreak, m_lineInfo);
+ m_lineBreakHistory.push([&](InlineIterator& modifyMe) {
+ modifyMe.moveTo(renderObject, m_current.offset(), m_current.nextBreakablePosition());
+ m_lineBreaker.skipTrailingWhitespace(modifyMe, m_lineInfo);
+ });
}
}
if ((lineWasTooWide || !m_width.fitsOnLine()) && !m_hangsAtEnd) {
@@ -859,26 +931,28 @@
// no more content, and a hyphenated single word would end up on a line by itself. This looks
// bad so just don't allow it.
if (canHyphenate && !m_width.fitsOnLine() && (m_nextObject || !renderText.containsOnlyHTMLWhitespace(m_current.offset(), renderText.text().length() - m_current.offset()) || isLineEmpty)) {
- tryHyphenating(renderText, font, style.locale(), consecutiveHyphenatedLines, m_blockStyle.hyphenationLimitLines(), style.hyphenationLimitBefore(), style.hyphenationLimitAfter(), lastSpace, m_current.offset(), m_width.currentWidth() - additionalTempWidth, m_width.availableWidth(), isFixedPitch, m_collapseWhiteSpace, lastSpaceWordSpacing, m_lineBreak, m_current.nextBreakablePosition(), m_lineBreaker.m_hyphenated);
+ m_lineBreakHistory.push([&](InlineIterator& modifyMe) {
+ tryHyphenating(renderText, font, style.locale(), consecutiveHyphenatedLines, m_blockStyle.hyphenationLimitLines(), style.hyphenationLimitBefore(), style.hyphenationLimitAfter(), lastSpace, m_current.offset(), m_width.currentWidth() - additionalTempWidth, m_width.availableWidth(), isFixedPitch, m_collapseWhiteSpace, lastSpaceWordSpacing, modifyMe, m_current.nextBreakablePosition(), m_lineBreaker.m_hyphenated);
+ });
if (m_lineBreaker.m_hyphenated) {
m_atEnd = true;
return false;
}
}
- if (m_lineBreak.atTextParagraphSeparator()) {
+ if (m_lineBreakHistory.atTextParagraphSeparator()) {
if (!stoppedIgnoringSpaces && m_current.offset() > 0)
ensureCharacterGetsLineBox(m_lineWhitespaceCollapsingState, m_current);
- m_lineBreak.increment();
+ m_lineBreakHistory.increment();
m_lineInfo.setPreviousLineBrokeCleanly(true);
- wordMeasurement.endOffset = m_lineBreak.offset();
+ wordMeasurement.endOffset = m_lineBreakHistory.offset();
}
// Check if the last breaking position is a soft-hyphen.
if (!hyphenated && style.hyphens() != Hyphens::None) {
Optional<unsigned> lastBreakingPositon;
const RenderObject* rendererAtBreakingPosition = nullptr;
- if (m_lineBreak.offset() || m_lineBreak.nextBreakablePosition()) {
- lastBreakingPositon = m_lineBreak.offset();
- rendererAtBreakingPosition = m_lineBreak.renderer();
+ if (m_lineBreakHistory.offset() || m_lineBreakHistory.nextBreakablePosition()) {
+ lastBreakingPositon = m_lineBreakHistory.offset();
+ rendererAtBreakingPosition = m_lineBreakHistory.renderer();
} else if (m_current.nextBreakablePosition() && m_current.nextBreakablePosition().value() <= m_current.offset()) {
// We might just be right after the soft-hyphen
lastBreakingPositon = m_current.nextBreakablePosition().value();
@@ -899,9 +973,9 @@
hyphenated = characterBeforeBreakingPosition.value() == softHyphen;
}
}
- if (m_lineBreak.offset() && m_lineBreak.offset() != (unsigned)wordMeasurement.endOffset && !wordMeasurement.width) {
+ if (m_lineBreakHistory.offset() && m_lineBreakHistory.offset() != (unsigned)wordMeasurement.endOffset && !wordMeasurement.width) {
if (charWidth) {
- wordMeasurement.endOffset = m_lineBreak.offset();
+ wordMeasurement.endOffset = m_lineBreakHistory.offset();
wordMeasurement.width = charWidth;
}
}
@@ -925,7 +999,7 @@
if (!stoppedIgnoringSpaces && m_current.offset())
ensureCharacterGetsLineBox(m_lineWhitespaceCollapsingState, m_current);
commitLineBreakAtCurrentWidth(renderObject, m_current.offset(), m_current.nextBreakablePosition());
- m_lineBreak.increment();
+ m_lineBreakHistory.increment();
m_lineInfo.setPreviousLineBrokeCleanly(true);
return true;
}
@@ -942,7 +1016,7 @@
if (midWordBreak && !U16_IS_TRAIL(c) && !(U_GET_GC_MASK(c) & U_GC_M_MASK)) {
// Remember this as a breakable position in case
// adding the end width forces a break.
- m_lineBreak.moveTo(renderObject, m_current.offset(), m_current.nextBreakablePosition());
+ m_lineBreakHistory.moveTo(renderObject, m_current.offset(), m_current.nextBreakablePosition());
midWordBreak &= (breakWords || breakAll);
}
@@ -1007,7 +1081,7 @@
if (!m_currentCharacterIsWS && previousCharacterIsWS) {
if (m_autoWrap && m_currentStyle->breakOnlyAfterWhiteSpace())
- m_lineBreak.moveTo(renderObject, m_current.offset(), m_current.nextBreakablePosition());
+ m_lineBreakHistory.moveTo(renderObject, m_current.offset(), m_current.nextBreakablePosition());
}
if (m_collapseWhiteSpace && m_currentCharacterIsSpace && !m_ignoringSpaces)
@@ -1050,10 +1124,13 @@
// Don't try to hyphenate at the final break of a block, since this means there is
// no more content, and a hyphenated single word would end up on a line by itself. This looks
// bad so just don't allow it.
- if (canHyphenate && (m_nextObject || isLineEmpty))
- tryHyphenating(renderText, font, style.locale(), consecutiveHyphenatedLines, m_blockStyle.hyphenationLimitLines(), style.hyphenationLimitBefore(), style.hyphenationLimitAfter(), lastSpace, m_current.offset(), m_width.currentWidth() - additionalTempWidth, m_width.availableWidth(), isFixedPitch, m_collapseWhiteSpace, lastSpaceWordSpacing, m_lineBreak, m_current.nextBreakablePosition(), m_lineBreaker.m_hyphenated);
+ if (canHyphenate && (m_nextObject || isLineEmpty)) {
+ m_lineBreakHistory.push([&](InlineIterator& modifyMe) {
+ tryHyphenating(renderText, font, style.locale(), consecutiveHyphenatedLines, m_blockStyle.hyphenationLimitLines(), style.hyphenationLimitBefore(), style.hyphenationLimitAfter(), lastSpace, m_current.offset(), m_width.currentWidth() - additionalTempWidth, m_width.availableWidth(), isFixedPitch, m_collapseWhiteSpace, lastSpaceWordSpacing, modifyMe, m_current.nextBreakablePosition(), m_lineBreaker.m_hyphenated);
+ });
+ }
- if (!hyphenated && m_lineBreak.previousInSameNode() == softHyphen && style.hyphens() != Hyphens::None) {
+ if (!hyphenated && m_lineBreakHistory.previousInSameNode() == softHyphen && style.hyphens() != Hyphens::None) {
hyphenated = true;
m_atEnd = true;
}
@@ -1177,8 +1254,8 @@
inline InlineIterator BreakingContext::handleEndOfLine()
{
- if (m_lineBreak == m_resolver.position()) {
- if (!m_lineBreak.renderer() || !m_lineBreak.renderer()->isBR()) {
+ if (m_lineBreakHistory.current() == m_resolver.position()) {
+ if (!m_lineBreakHistory.renderer() || !m_lineBreakHistory.renderer()->isBR()) {
// we just add as much as possible
if (m_blockStyle.whiteSpace() == WhiteSpace::Pre && !m_current.offset()) {
if (m_lastObject)
@@ -1185,7 +1262,8 @@
commitLineBreakAtCurrentWidth(*m_lastObject, m_lastObject->isText() ? m_lastObject->length() : 0);
else
commitLineBreakClear();
- } else if (m_lineBreak.renderer()) {
+ }
+ else if (m_lineBreakHistory.renderer()) {
// Don't ever break in the middle of a word if we can help it.
// There's no room at all. We just have to be on this line,
// even though we'll spill out.
@@ -1193,31 +1271,74 @@
}
}
// make sure we consume at least one char/object.
- if (m_lineBreak == m_resolver.position())
- m_lineBreak.increment();
+ if (m_lineBreakHistory.current() == m_resolver.position())
+ m_lineBreakHistory.increment();
} else if (!m_current.offset() && !m_width.committedWidth() && m_width.uncommittedWidth() && !m_hadUncommittedWidthBeforeCurrent) {
// Do not push the current object to the next line, when this line has some content, but it is still considered empty.
// Empty inline elements like <span></span> can produce such lines and now we just ignore these break opportunities
// at the start of a line, if no width has been committed yet.
// Behave as if it was actually empty and consume at least one object.
- m_lineBreak.increment();
+ m_lineBreakHistory.increment();
}
// Sanity check our whitespace collapsing transitions.
- TrailingObjects::CollapseFirstSpaceOrNot collapsed = checkWhitespaceCollapsingTransitions(m_lineWhitespaceCollapsingState, m_lineBreak);
+ TrailingObjects::CollapseFirstSpaceOrNot collapsed = checkWhitespaceCollapsingTransitions(m_lineWhitespaceCollapsingState, m_lineBreakHistory.current());
- m_trailingObjects.updateWhitespaceCollapsingTransitionsForTrailingBoxes(m_lineWhitespaceCollapsingState, m_lineBreak, collapsed);
+ m_trailingObjects.updateWhitespaceCollapsingTransitionsForTrailingBoxes(m_lineWhitespaceCollapsingState, m_lineBreakHistory.current(), collapsed);
// We might have made lineBreak an iterator that points past the end
// of the object. Do this adjustment to make it point to the start
// of the next object instead to avoid confusing the rest of the
// code.
- if (m_lineBreak.offset()) {
- m_lineBreak.setOffset(m_lineBreak.offset() - 1);
- m_lineBreak.increment();
+ if (m_lineBreakHistory.offset()) {
+ m_lineBreakHistory.update([](InlineIterator& modifyMe) {
+ modifyMe.setOffset(modifyMe.offset() - 1);
+ modifyMe.increment();
+ });
}
- return m_lineBreak;
+#if ENABLE(CSS_TRAILING_WORD)
+ if (m_blockStyle.trailingWord() == TrailingWord::PartiallyBalanced)
+ return optimalLineBreakLocationForTrailingWord();
+#endif
+ return m_lineBreakHistory.current();
}
+#if ENABLE(CSS_TRAILING_WORD)
+inline InlineIterator BreakingContext::optimalLineBreakLocationForTrailingWord()
+{
+ const unsigned longTrailingWordLength = 20;
+ const float optimalTrailingLineRatio = 0.1;
+ InlineIterator lineBreak = m_lineBreakHistory.current();
+ if (!lineBreak.renderer() || !m_lineInfo.isFirstLine() || bidiNextSkippingEmptyInlines(*lineBreak.root(), lineBreak.renderer()) || !is<RenderText>(lineBreak.renderer()))
+ return lineBreak;
+ RenderText& renderText = downcast<RenderText>(*lineBreak.renderer());
+ // Don't even bother measuring if our remaining line has many characters
+ if (renderText.text().length() == lineBreak.offset() || renderText.text().length() - lineBreak.offset() > longTrailingWordLength)
+ return lineBreak;
+ bool canUseLineBreakShortcut = m_renderTextInfo.lineBreakIterator.mode() == LineBreakIteratorMode::Default;
+ bool breakNBSP = m_autoWrap && m_currentStyle->nbspMode() == NBSPMode::Space;
+ Optional<unsigned> nextBreakablePosition = lineBreak.nextBreakablePosition();
+ isBreakable(m_renderTextInfo.lineBreakIterator, lineBreak.offset() + 1, nextBreakablePosition, breakNBSP, canUseLineBreakShortcut, m_currentStyle->wordBreak() == WordBreak::KeepAll);
+ if (!nextBreakablePosition || nextBreakablePosition.value() != renderText.text().length())
+ return lineBreak;
+ const RenderStyle& style = lineStyle(renderText, m_lineInfo);
+ const FontCascade& font = style.fontCascade();
+ HashSet<const Font*> dummyFonts;
+ InlineIterator best = lineBreak;
+ for (size_t i = 1; i < m_lineBreakHistory.historyLength(); ++i) {
+ const InlineIterator& candidate = m_lineBreakHistory.get(i);
+ if (candidate.renderer() != lineBreak.renderer())
+ return best;
+ float width = textWidth(renderText, candidate.offset(), renderText.text().length() - candidate.offset(), font, 0, font.isFixedPitch(), m_collapseWhiteSpace, dummyFonts);
+ if (width > m_width.availableWidth())
+ return best;
+ if (width / m_width.availableWidth() > optimalTrailingLineRatio) // Subsequent line is long enough
+ return candidate;
+ best = candidate;
+ }
+ return best;
}
+#endif
+
+}
Modified: branches/safari-607-branch/Source/WebCore/rendering/style/RenderStyle.h (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/rendering/style/RenderStyle.h 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/rendering/style/RenderStyle.h 2019-04-30 20:13:09 UTC (rev 244798)
@@ -799,7 +799,7 @@
bool shouldPlaceBlockDirectionScrollbarOnLeft() const;
#if ENABLE(CSS_TRAILING_WORD)
- TrailingWord trailingWord() const { return TrailingWord::Auto; }
+ TrailingWord trailingWord() const { return static_cast<TrailingWord>(m_rareInheritedData->trailingWord); }
#endif
#if ENABLE(APPLE_PAY)
@@ -1259,7 +1259,7 @@
void setTextSecurity(TextSecurity security) { SET_VAR(m_rareInheritedData, textSecurity, static_cast<unsigned>(security)); }
#if ENABLE(CSS_TRAILING_WORD)
- void setTrailingWord(TrailingWord) { }
+ void setTrailingWord(TrailingWord v) { SET_VAR(m_rareInheritedData, trailingWord, static_cast<unsigned>(v)); }
#endif
#if ENABLE(APPLE_PAY)
Modified: branches/safari-607-branch/Source/WebCore/rendering/style/StyleRareInheritedData.cpp (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/rendering/style/StyleRareInheritedData.cpp 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/rendering/style/StyleRareInheritedData.cpp 2019-04-30 20:13:09 UTC (rev 244798)
@@ -131,6 +131,9 @@
#if PLATFORM(IOS_FAMILY)
, touchCalloutEnabled(RenderStyle::initialTouchCalloutEnabled())
#endif
+#if ENABLE(CSS_TRAILING_WORD)
+ , trailingWord(static_cast<unsigned>(RenderStyle::initialTrailingWord()))
+#endif
, hangingPunctuation(RenderStyle::initialHangingPunctuation().toRaw())
, paintOrder(static_cast<unsigned>(RenderStyle::initialPaintOrder()))
, capStyle(RenderStyle::initialCapStyle())
@@ -226,6 +229,9 @@
#if PLATFORM(IOS_FAMILY)
, touchCalloutEnabled(o.touchCalloutEnabled)
#endif
+#if ENABLE(CSS_TRAILING_WORD)
+ , trailingWord(o.trailingWord)
+#endif
, hangingPunctuation(o.hangingPunctuation)
, paintOrder(o.paintOrder)
, capStyle(o.capStyle)
@@ -348,6 +354,9 @@
&& textZoom == o.textZoom
&& lineSnap == o.lineSnap
&& lineAlign == o.lineAlign
+#if ENABLE(CSS_TRAILING_WORD)
+ && trailingWord == o.trailingWord
+#endif
&& hangingPunctuation == o.hangingPunctuation
&& paintOrder == o.paintOrder
&& capStyle == o.capStyle
Modified: branches/safari-607-branch/Source/WebCore/rendering/style/StyleRareInheritedData.h (244797 => 244798)
--- branches/safari-607-branch/Source/WebCore/rendering/style/StyleRareInheritedData.h 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebCore/rendering/style/StyleRareInheritedData.h 2019-04-30 20:13:09 UTC (rev 244798)
@@ -145,6 +145,10 @@
unsigned touchCalloutEnabled : 1;
#endif
+#if ENABLE(CSS_TRAILING_WORD)
+ unsigned trailingWord : 1;
+#endif
+
unsigned hangingPunctuation : 4;
unsigned paintOrder : 3; // PaintOrder
Modified: branches/safari-607-branch/Source/WebInspectorUI/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/Source/WebInspectorUI/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebInspectorUI/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,7 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244173. rdar://problem/28160396
+
2019-04-10 Alan Coon <[email protected]>
Cherry-pick r243819. rdar://problem/49725678
Modified: branches/safari-607-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (244797 => 244798)
--- branches/safari-607-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,7 +1,7 @@
MAJOR_VERSION = 607;
MINOR_VERSION = 2;
TINY_VERSION = 6;
-MICRO_VERSION = 1;
+MICRO_VERSION = 0;
NANO_VERSION = 1;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION);
Modified: branches/safari-607-branch/Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js (244797 => 244798)
--- branches/safari-607-branch/Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js 2019-04-30 20:13:09 UTC (rev 244798)
@@ -155,6 +155,7 @@
WI.CSSKeywordCompletions.InheritedProperties = new Set([
// Compatibility (iOS 12): `inherited` didn't exist on `CSSPropertyInfo`
"-apple-color-filter",
+ "-apple-trailing-word",
"-webkit-animation-trigger",
"-webkit-aspect-ratio",
"-webkit-border-horizontal-spacing",
@@ -786,6 +787,9 @@
"-apple-pay-button-type": [
"plain", "buy", "set-up", "donate", "check-out", "book", "subscribe",
],
+ "-apple-trailing-word": [
+ "auto", "-webkit-partially-balanced",
+ ],
"-webkit-alt": [
"attr()",
],
Modified: branches/safari-607-branch/Source/WebKit/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/Source/WebKit/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebKit/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,11 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244173. rdar://problem/28160396
+
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244174. rdar://problem/28160396
+
2019-04-19 Kocsen Chung <[email protected]>
Cherry-pick r244458. rdar://problem/50041560
Modified: branches/safari-607-branch/Source/WebKit/Configurations/Version.xcconfig (244797 => 244798)
--- branches/safari-607-branch/Source/WebKit/Configurations/Version.xcconfig 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebKit/Configurations/Version.xcconfig 2019-04-30 20:13:09 UTC (rev 244798)
@@ -24,7 +24,7 @@
MAJOR_VERSION = 607;
MINOR_VERSION = 2;
TINY_VERSION = 6;
-MICRO_VERSION = 1;
+MICRO_VERSION = 0;
NANO_VERSION = 1;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION);
Modified: branches/safari-607-branch/Source/WebKitLegacy/mac/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/Source/WebKitLegacy/mac/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebKitLegacy/mac/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,11 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244173. rdar://problem/28160396
+
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244174. rdar://problem/28160396
+
2019-04-10 Alan Coon <[email protected]>
Cherry-pick r243841. rdar://problem/49725678
Modified: branches/safari-607-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig (244797 => 244798)
--- branches/safari-607-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig 2019-04-30 20:13:09 UTC (rev 244798)
@@ -24,7 +24,7 @@
MAJOR_VERSION = 607;
MINOR_VERSION = 2;
TINY_VERSION = 6;
-MICRO_VERSION = 1;
+MICRO_VERSION = 0;
NANO_VERSION = 1;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION).$(NANO_VERSION);
Modified: branches/safari-607-branch/Source/cmake/WebKitFeatures.cmake (244797 => 244798)
--- branches/safari-607-branch/Source/cmake/WebKitFeatures.cmake 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Source/cmake/WebKitFeatures.cmake 2019-04-30 20:13:09 UTC (rev 244798)
@@ -108,6 +108,7 @@
WEBKIT_OPTION_DEFINE(ENABLE_CSS_PAINTING_API "Toggle CSS Painting API support" PRIVATE OFF)
WEBKIT_OPTION_DEFINE(ENABLE_CSS_SCROLL_SNAP "Toggle CSS snap scroll support" PRIVATE OFF)
WEBKIT_OPTION_DEFINE(ENABLE_CSS_SELECTORS_LEVEL4 "Toggle CSS Selectors Level 4 support" PRIVATE ON)
+ WEBKIT_OPTION_DEFINE(ENABLE_CSS_TRAILING_WORD "Toggle CSS trailing word support" PRIVATE OFF)
WEBKIT_OPTION_DEFINE(ENABLE_CURSOR_VISIBILITY "Toggle cursor visibility support" PRIVATE OFF)
WEBKIT_OPTION_DEFINE(ENABLE_CUSTOM_SCHEME_HANDLER "Toggle Custom Scheme Handler support" PRIVATE OFF)
WEBKIT_OPTION_DEFINE(ENABLE_C_LOOP "Enable CLoop interpreter" PRIVATE ${ENABLE_C_LOOP_DEFAULT})
Modified: branches/safari-607-branch/Tools/ChangeLog (244797 => 244798)
--- branches/safari-607-branch/Tools/ChangeLog 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Tools/ChangeLog 2019-04-30 20:13:09 UTC (rev 244798)
@@ -1,3 +1,11 @@
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244173. rdar://problem/28160396
+
+2019-04-24 Alan Coon <[email protected]>
+
+ Revert r244174. rdar://problem/28160396
+
2019-04-17 Ryan Haddad <[email protected]>
Cherry-pick r240301. rdar://problem/49984116
Modified: branches/safari-607-branch/Tools/Scripts/webkitperl/FeatureList.pm (244797 => 244798)
--- branches/safari-607-branch/Tools/Scripts/webkitperl/FeatureList.pm 2019-04-30 20:09:44 UTC (rev 244797)
+++ branches/safari-607-branch/Tools/Scripts/webkitperl/FeatureList.pm 2019-04-30 20:13:09 UTC (rev 244798)
@@ -262,6 +262,9 @@
{ option => "css-selectors-level4", desc => "Toggle CSS Selectors Level 4 support",
define => "ENABLE_CSS_SELECTORS_LEVEL4", value => \$cssSelectorsLevel4Support },
+ { option => "css-trailing-word", desc => "Toggle CSS trailing word support",
+ define => "ENABLE_CSS_TRAILING_WORD", value => \$cssTrailingWordSupport },
+
{ option => "cursor-visibility", desc => "Toggle cursor visibility support",
define => "ENABLE_CURSOR_VISIBILITY", value => \$cursorVisibilitySupport },