Modified: trunk/Source/WebCore/ChangeLog (247755 => 247756)
--- trunk/Source/WebCore/ChangeLog 2019-07-23 23:24:58 UTC (rev 247755)
+++ trunk/Source/WebCore/ChangeLog 2019-07-24 00:02:05 UTC (rev 247756)
@@ -1,3 +1,18 @@
+2019-07-23 Tim Horton <timothy_hor...@apple.com>
+
+ Long press hint has half blue shape in Feedly.com
+ https://bugs.webkit.org/show_bug.cgi?id=200053
+ <rdar://problem/53323369>
+
+ Reviewed by Simon Fraser.
+
+ No new tests, because TextIndicator snapshots are not yet testable.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paintForegroundForFragments):
+ Paint ChildBlockBackgrounds when painting selection AND backgrounds;
+ only exclude it when doing a selection-only paint.
+
2019-07-23 Chris Fleizach <cfleiz...@apple.com>
AX: CrashTracer: com.apple.WebKit.WebContent at WebKit: WebKit::WebSpeechSynthesisClient::speak
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (247755 => 247756)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2019-07-23 23:24:58 UTC (rev 247755)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2019-07-24 00:02:05 UTC (rev 247756)
@@ -4900,11 +4900,15 @@
// We have to loop through every fragment multiple times, since we have to repaint in each specific phase in order for
// interleaving of the fragments to work properly.
- bool selectionOnly = localPaintingInfo.paintBehavior.containsAny({ PaintBehavior::SelectionAndBackgroundsOnly, PaintBehavior::SelectionOnly });
- paintForegroundForFragmentsWithPhase(selectionOnly ? PaintPhase::Selection : PaintPhase::ChildBlockBackgrounds, layerFragments,
- context, localPaintingInfo, localPaintBehavior, subtreePaintRootForRenderer);
-
- if (!selectionOnly) {
+ bool selectionOnly = localPaintingInfo.paintBehavior.contains(PaintBehavior::SelectionOnly);
+ bool selectionAndBackgroundsOnly = localPaintingInfo.paintBehavior.contains(PaintBehavior::SelectionAndBackgroundsOnly);
+
+ if (!selectionOnly)
+ paintForegroundForFragmentsWithPhase(PaintPhase::ChildBlockBackgrounds, layerFragments, context, localPaintingInfo, localPaintBehavior, subtreePaintRootForRenderer);
+
+ if (selectionOnly || selectionAndBackgroundsOnly)
+ paintForegroundForFragmentsWithPhase(PaintPhase::Selection, layerFragments, context, localPaintingInfo, localPaintBehavior, subtreePaintRootForRenderer);
+ else {
paintForegroundForFragmentsWithPhase(PaintPhase::Float, layerFragments, context, localPaintingInfo, localPaintBehavior, subtreePaintRootForRenderer);
paintForegroundForFragmentsWithPhase(PaintPhase::Foreground, layerFragments, context, localPaintingInfo, localPaintBehavior, subtreePaintRootForRenderer);
paintForegroundForFragmentsWithPhase(PaintPhase::ChildOutlines, layerFragments, context, localPaintingInfo, localPaintBehavior, subtreePaintRootForRenderer);