Title: [282911] branches/safari-612-branch
- Revision
- 282911
- Author
- repst...@apple.com
- Date
- 2021-09-22 21:29:12 -0700 (Wed, 22 Sep 2021)
Log Message
Cherry-pick r282045. rdar://problem/83429674
REGRESSION(r275515): pointer-events:none may get stuck in LFC runs
https://bugs.webkit.org/show_bug.cgi?id=229854
rdar://81165275
Reviewed by Alan Bujtas.
Source/WebCore:
We only update run style with diff >= StyleDifference::Repaint but pointer-events changes don't require repaint.
Test: fast/events/pointer-events-mutation.html
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::styleDidChange):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::styleDidChange):
Fix by pushing the new style to LFC unconditionally. This has no meaningful cost.
LayoutTests:
* fast/events/pointer-events-mutation-expected.txt: Added.
* fast/events/pointer-events-mutation.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282045 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Added Paths
Diff
Modified: branches/safari-612-branch/LayoutTests/ChangeLog (282910 => 282911)
--- branches/safari-612-branch/LayoutTests/ChangeLog 2021-09-23 04:29:08 UTC (rev 282910)
+++ branches/safari-612-branch/LayoutTests/ChangeLog 2021-09-23 04:29:12 UTC (rev 282911)
@@ -1,5 +1,49 @@
2021-09-22 Alan Coon <alanc...@apple.com>
+ Cherry-pick r282045. rdar://problem/83429674
+
+ REGRESSION(r275515): pointer-events:none may get stuck in LFC runs
+ https://bugs.webkit.org/show_bug.cgi?id=229854
+ rdar://81165275
+
+ Reviewed by Alan Bujtas.
+
+ Source/WebCore:
+
+ We only update run style with diff >= StyleDifference::Repaint but pointer-events changes don't require repaint.
+
+ Test: fast/events/pointer-events-mutation.html
+
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::styleDidChange):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::styleDidChange):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::styleDidChange):
+
+ Fix by pushing the new style to LFC unconditionally. This has no meaningful cost.
+
+ LayoutTests:
+
+ * fast/events/pointer-events-mutation-expected.txt: Added.
+ * fast/events/pointer-events-mutation.html: Added.
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282045 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2021-09-04 Antti Koivisto <an...@apple.com>
+
+ REGRESSION(r275515): pointer-events:none may get stuck in LFC runs
+ https://bugs.webkit.org/show_bug.cgi?id=229854
+ rdar://81165275
+
+ Reviewed by Alan Bujtas.
+
+ * fast/events/pointer-events-mutation-expected.txt: Added.
+ * fast/events/pointer-events-mutation.html: Added.
+
+2021-09-22 Alan Coon <alanc...@apple.com>
+
Cherry-pick r281920. rdar://problem/83429601
Braille display is blank in contenteditable elements when the field is followed by another element.
Added: branches/safari-612-branch/LayoutTests/fast/events/pointer-events-mutation-expected.txt (0 => 282911)
--- branches/safari-612-branch/LayoutTests/fast/events/pointer-events-mutation-expected.txt (rev 0)
+++ branches/safari-612-branch/LayoutTests/fast/events/pointer-events-mutation-expected.txt 2021-09-23 04:29:12 UTC (rev 282911)
@@ -0,0 +1,9 @@
+target1
+target2
+PASS
+PASS
+PASS
+PASS
+PASS
+PASS
+
Added: branches/safari-612-branch/LayoutTests/fast/events/pointer-events-mutation.html (0 => 282911)
--- branches/safari-612-branch/LayoutTests/fast/events/pointer-events-mutation.html (rev 0)
+++ branches/safari-612-branch/LayoutTests/fast/events/pointer-events-mutation.html 2021-09-23 04:29:12 UTC (rev 282911)
@@ -0,0 +1,23 @@
+<style>
+.none { pointer-events:none; }
+</style>
+<div class=target>target1</div>
+<div><span class=target>target2</span></div>
+<pre id=log></pre>
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function test(target, expected) {
+ const pass = document.elementFromPoint(target.offsetLeft + 5, target.offsetTop + 5) === expected;
+ log.textContent += pass ? "PASS\n" : "FAIL\n"
+
+}
+for (target of document.querySelectorAll(".target")) {
+ test(target, target);
+ target.classList.add("none");
+ test(target, target.parentElement);
+ target.classList.remove("none");
+ test(target, target);
+}
+</script>
Modified: branches/safari-612-branch/Source/WebCore/ChangeLog (282910 => 282911)
--- branches/safari-612-branch/Source/WebCore/ChangeLog 2021-09-23 04:29:08 UTC (rev 282910)
+++ branches/safari-612-branch/Source/WebCore/ChangeLog 2021-09-23 04:29:12 UTC (rev 282911)
@@ -1,5 +1,59 @@
2021-09-22 Alan Coon <alanc...@apple.com>
+ Cherry-pick r282045. rdar://problem/83429674
+
+ REGRESSION(r275515): pointer-events:none may get stuck in LFC runs
+ https://bugs.webkit.org/show_bug.cgi?id=229854
+ rdar://81165275
+
+ Reviewed by Alan Bujtas.
+
+ Source/WebCore:
+
+ We only update run style with diff >= StyleDifference::Repaint but pointer-events changes don't require repaint.
+
+ Test: fast/events/pointer-events-mutation.html
+
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::styleDidChange):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::styleDidChange):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::styleDidChange):
+
+ Fix by pushing the new style to LFC unconditionally. This has no meaningful cost.
+
+ LayoutTests:
+
+ * fast/events/pointer-events-mutation-expected.txt: Added.
+ * fast/events/pointer-events-mutation.html: Added.
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282045 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2021-09-04 Antti Koivisto <an...@apple.com>
+
+ REGRESSION(r275515): pointer-events:none may get stuck in LFC runs
+ https://bugs.webkit.org/show_bug.cgi?id=229854
+ rdar://81165275
+
+ Reviewed by Alan Bujtas.
+
+ We only update run style with diff >= StyleDifference::Repaint but pointer-events changes don't require repaint.
+
+ Test: fast/events/pointer-events-mutation.html
+
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::styleDidChange):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::styleDidChange):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::styleDidChange):
+
+ Fix by pushing the new style to LFC unconditionally. This has no meaningful cost.
+
+2021-09-22 Alan Coon <alanc...@apple.com>
+
Cherry-pick r281971. rdar://problem/83429744
Relative -webkit-scrollbar width value may lead to unstable layout
Modified: branches/safari-612-branch/Source/WebCore/rendering/RenderBlockFlow.cpp (282910 => 282911)
--- branches/safari-612-branch/Source/WebCore/rendering/RenderBlockFlow.cpp 2021-09-23 04:29:08 UTC (rev 282910)
+++ branches/safari-612-branch/Source/WebCore/rendering/RenderBlockFlow.cpp 2021-09-23 04:29:12 UTC (rev 282911)
@@ -2141,12 +2141,12 @@
};
if (shouldInvalidateLineLayoutPath())
invalidateLineLayoutPath();
+ }
#if ENABLE(LAYOUT_FORMATTING_CONTEXT)
- if (auto* lineLayout = modernLineLayout())
- lineLayout->updateStyle(*this);
+ if (auto* lineLayout = modernLineLayout())
+ lineLayout->updateStyle(*this);
#endif
- }
if (multiColumnFlow())
updateStylesForColumnChildren();
Modified: branches/safari-612-branch/Source/WebCore/rendering/RenderBox.cpp (282910 => 282911)
--- branches/safari-612-branch/Source/WebCore/rendering/RenderBox.cpp 2021-09-23 04:29:08 UTC (rev 282910)
+++ branches/safari-612-branch/Source/WebCore/rendering/RenderBox.cpp 2021-09-23 04:29:12 UTC (rev 282911)
@@ -412,10 +412,8 @@
clearOverridingContentSize();
#if ENABLE(LAYOUT_FORMATTING_CONTEXT)
- if (diff >= StyleDifference::Repaint) {
- if (auto* lineLayout = LayoutIntegration::LineLayout::containing(*this))
- lineLayout->updateStyle(*this);
- }
+ if (auto* lineLayout = LayoutIntegration::LineLayout::containing(*this))
+ lineLayout->updateStyle(*this);
#endif
}
Modified: branches/safari-612-branch/Source/WebCore/rendering/RenderInline.cpp (282910 => 282911)
--- branches/safari-612-branch/Source/WebCore/rendering/RenderInline.cpp 2021-09-23 04:29:08 UTC (rev 282910)
+++ branches/safari-612-branch/Source/WebCore/rendering/RenderInline.cpp 2021-09-23 04:29:12 UTC (rev 282911)
@@ -196,15 +196,13 @@
}
#if ENABLE(LAYOUT_FORMATTING_CONTEXT)
- if (diff >= StyleDifference::Repaint) {
- if (auto* lineLayout = LayoutIntegration::LineLayout::containing(*this)) {
- if (selfNeedsLayout()) {
- // FIXME: Add support for partial invalidation.
- if (auto* container = LayoutIntegration::LineLayout::blockContainer(*this))
- container->invalidateLineLayoutPath();
- } else
- lineLayout->updateStyle(*this);
- }
+ if (auto* lineLayout = LayoutIntegration::LineLayout::containing(*this)) {
+ if (diff >= StyleDifference::Repaint && selfNeedsLayout()) {
+ // FIXME: Add support for partial invalidation.
+ if (auto* container = LayoutIntegration::LineLayout::blockContainer(*this))
+ container->invalidateLineLayoutPath();
+ } else
+ lineLayout->updateStyle(*this);
}
#endif
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes