Commit f7a823fe authored by trchen@chromium.org's avatar trchen@chromium.org

Remove transparency clip, use 'bound' in CompositingRecorder instead.

The purpose of the transparency clip is to give Skia raster hints so that
a transparent layer can be sized according to the bounding box of contents
being composited. The clip itself should be no-op, but will actually cause
anti-alias artifact for transformed contents.

Removing the transparency clip and use compositing bound will allow Skia
to take account of anti-aliasing to properly size the transparent layer.

BUG=524859

Review URL: https://codereview.chromium.org/1311633004

git-svn-id: svn://svn.chromium.org/blink/trunk@201202 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 3bf815f2
...@@ -122,7 +122,6 @@ crbug.com/519002 storage/indexeddb/pending-version-change-stuck.html [ Pass Time ...@@ -122,7 +122,6 @@ crbug.com/519002 storage/indexeddb/pending-version-change-stuck.html [ Pass Time
crbug.com/519003 [ Mac ] svg/batik/text/xmlSpace.svg [ Failure Pass ] crbug.com/519003 [ Mac ] svg/batik/text/xmlSpace.svg [ Failure Pass ]
crbug.com/519005 webaudio/stereopannernode-no-glitch.html [ Pass Timeout ] crbug.com/519005 webaudio/stereopannernode-no-glitch.html [ Pass Timeout ]
crbug.com/410949 http/tests/security/local-image-from-remote-whitelisted.html [ Failure Pass ] crbug.com/410949 http/tests/security/local-image-from-remote-whitelisted.html [ Failure Pass ]
crbug.com/463358 [ Linux Mac Debug ] transforms/2d/hindi-rotated.html [ ImageOnlyFailure ]
crbug.com/356828 fast/dom/gc-dom-tree-lifetime.html [ Pass Timeout ] crbug.com/356828 fast/dom/gc-dom-tree-lifetime.html [ Pass Timeout ]
crbug.com/518902 accessibility/AccessibilityScrollbar-leak.html [ Failure Pass ] crbug.com/518902 accessibility/AccessibilityScrollbar-leak.html [ Failure Pass ]
crbug.com/518915 [ Android ] accessibility/aria-labelledby-on-input.html [ Crash Pass ] crbug.com/518915 [ Android ] accessibility/aria-labelledby-on-input.html [ Crash Pass ]
...@@ -198,6 +197,17 @@ crbug.com/418091 [ SnowLeopard Debug ] inspector/elements/bidi-dom-tree.html [ P ...@@ -198,6 +197,17 @@ crbug.com/418091 [ SnowLeopard Debug ] inspector/elements/bidi-dom-tree.html [ P
crbug.com/449242 [ SnowLeopard Debug ] fast/css/word-spacing-characters-complex-text.html [ Pass Crash ] crbug.com/449242 [ SnowLeopard Debug ] fast/css/word-spacing-characters-complex-text.html [ Pass Crash ]
crbug.com/419696 [ Mac Debug ] fast/text/font-linux-normalize.html [ Crash Pass ] crbug.com/419696 [ Mac Debug ] fast/text/font-linux-normalize.html [ Crash Pass ]
crbug.com/524859 fast/css/transformed-mask.html [ NeedsRebaseline ]
crbug.com/524859 fast/reflections/opacity-reflection-transform.html [ NeedsRebaseline ]
crbug.com/524859 fast/transforms/transform-on-inline.html [ NeedsRebaseline ]
crbug.com/524859 fast/text/complex-text-opacity.html [ NeedsManualRebaseline ]
# crbug.com/498021 [ Linux ] fast/text/complex-text-opacity.html [ ImageOnlyFailure ]
# crbug.com/509025 [ Yosemite ] fast/text/complex-text-opacity.html [ Failure ]
# crbug.com/521730 [ Win10 ] fast/text/complex-text-opacity.html [ Failure Timeout Failure Failure ]
crbug.com/524859 transforms/2d/hindi-rotated.html [ NeedsManualRebaseline ]
# crbug.com/463358 [ Linux Mac Debug ] transforms/2d/hindi-rotated.html [ ImageOnlyFailure ]
# crbug.com/521764 [ Win10 ] transforms/2d/hindi-rotated.html [ Failure Timeout ]
crbug.com/498539 http/tests/inspector/elements/styles/selector-line.html [ Pass Timeout ] crbug.com/498539 http/tests/inspector/elements/styles/selector-line.html [ Pass Timeout ]
crbug.com/498539 http/tests/inspector/network/network-datareceived.html [ Pass Timeout ] crbug.com/498539 http/tests/inspector/network/network-datareceived.html [ Pass Timeout ]
crbug.com/498539 [ Win ] inspector/tracing/decode-resize.html [ Failure Timeout ] crbug.com/498539 [ Win ] inspector/tracing/decode-resize.html [ Failure Timeout ]
...@@ -843,7 +853,6 @@ crbug.com/498021 [ Linux ] http/tests/misc/xslt-bad-import.html [ Failure ] ...@@ -843,7 +853,6 @@ crbug.com/498021 [ Linux ] http/tests/misc/xslt-bad-import.html [ Failure ]
crbug.com/498021 [ Linux ] http/tests/security/contentTypeOptions/nosniff-script-without-content-type-blocked.html [ Failure ] crbug.com/498021 [ Linux ] http/tests/security/contentTypeOptions/nosniff-script-without-content-type-blocked.html [ Failure ]
crbug.com/498021 [ Linux ] svg/custom/use-on-symbol-inside-pattern.svg [ Failure ] crbug.com/498021 [ Linux ] svg/custom/use-on-symbol-inside-pattern.svg [ Failure ]
crbug.com/498021 [ Linux ] fast/forms/month/month-appearance-l10n.html [ ImageOnlyFailure ] crbug.com/498021 [ Linux ] fast/forms/month/month-appearance-l10n.html [ ImageOnlyFailure ]
crbug.com/498021 [ Linux ] fast/text/complex-text-opacity.html [ ImageOnlyFailure ]
crbug.com/498021 [ Linux ] fast/text/ellipsis-stroked.html [ ImageOnlyFailure ] crbug.com/498021 [ Linux ] fast/text/ellipsis-stroked.html [ ImageOnlyFailure ]
crbug.com/498021 [ Linux ] fast/text/emphasis-complex.html [ ImageOnlyFailure ] crbug.com/498021 [ Linux ] fast/text/emphasis-complex.html [ ImageOnlyFailure ]
crbug.com/498021 [ Linux ] fast/text/international/complex-joining-using-gpos.html [ ImageOnlyFailure ] crbug.com/498021 [ Linux ] fast/text/international/complex-joining-using-gpos.html [ ImageOnlyFailure ]
...@@ -1066,7 +1075,6 @@ crbug.com/509025 [ Yosemite ] fast/encoding/denormalised-voiced-japanese-chars.h ...@@ -1066,7 +1075,6 @@ crbug.com/509025 [ Yosemite ] fast/encoding/denormalised-voiced-japanese-chars.h
crbug.com/509025 [ Yosemite ] fast/forms/submit/submit-appearance-basic.html [ Failure ] crbug.com/509025 [ Yosemite ] fast/forms/submit/submit-appearance-basic.html [ Failure ]
crbug.com/509025 [ Yosemite ] fast/overflow/scrollRevealButton.html [ Failure ] crbug.com/509025 [ Yosemite ] fast/overflow/scrollRevealButton.html [ Failure ]
crbug.com/509025 [ Yosemite ] fast/ruby/nested-ruby.html [ Failure ] crbug.com/509025 [ Yosemite ] fast/ruby/nested-ruby.html [ Failure ]
crbug.com/509025 [ Yosemite ] fast/text/complex-text-opacity.html [ Failure ]
crbug.com/509025 [ Yosemite ] fast/text/drawBidiText.html [ Failure ] crbug.com/509025 [ Yosemite ] fast/text/drawBidiText.html [ Failure ]
crbug.com/509025 [ Yosemite ] fast/text/emoticons.html [ Failure ] crbug.com/509025 [ Yosemite ] fast/text/emoticons.html [ Failure ]
crbug.com/509025 [ Yosemite ] fast/text/emphasis-complex.html [ Failure ] crbug.com/509025 [ Yosemite ] fast/text/emphasis-complex.html [ Failure ]
...@@ -1251,7 +1259,6 @@ crbug.com/521730 [ Win10 ] editing/selection/vertical-rl-ltr-extend-line-forward ...@@ -1251,7 +1259,6 @@ crbug.com/521730 [ Win10 ] editing/selection/vertical-rl-ltr-extend-line-forward
crbug.com/521730 [ Win10 ] fast/dynamic/text-combine.html [ Failure Failure Failure Timeout ] crbug.com/521730 [ Win10 ] fast/dynamic/text-combine.html [ Failure Failure Failure Timeout ]
crbug.com/521730 [ Win10 ] fast/encoding/denormalised-voiced-japanese-chars.html [ Failure Failure Failure Timeout ] crbug.com/521730 [ Win10 ] fast/encoding/denormalised-voiced-japanese-chars.html [ Failure Failure Failure Timeout ]
crbug.com/521730 [ Win10 ] fast/ruby/base-shorter-than-text.html [ Failure Failure Timeout Failure ] crbug.com/521730 [ Win10 ] fast/ruby/base-shorter-than-text.html [ Failure Failure Timeout Failure ]
crbug.com/521730 [ Win10 ] fast/text/complex-text-opacity.html [ Failure Timeout Failure Failure ]
crbug.com/521730 [ Win10 ] fast/text/emphasis-combined-text.html [ Failure Timeout Failure Failure ] crbug.com/521730 [ Win10 ] fast/text/emphasis-combined-text.html [ Failure Timeout Failure Failure ]
crbug.com/521730 [ Win10 ] fast/text/emphasis-complex.html [ Failure Timeout Failure Failure ] crbug.com/521730 [ Win10 ] fast/text/emphasis-complex.html [ Failure Timeout Failure Failure ]
crbug.com/521730 [ Win10 ] fast/text/emphasis-vertical.html [ Failure Failure Timeout Failure ] crbug.com/521730 [ Win10 ] fast/text/emphasis-vertical.html [ Failure Failure Timeout Failure ]
...@@ -1458,7 +1465,6 @@ crbug.com/521764 [ Win10 ] svg/text/non-bmp-positioning-lists.svg [ ImageOnlyFai ...@@ -1458,7 +1465,6 @@ crbug.com/521764 [ Win10 ] svg/text/non-bmp-positioning-lists.svg [ ImageOnlyFai
crbug.com/521764 [ Win10 ] svg/text/obb-paintserver.html [ ImageOnlyFailure Pass Timeout ] crbug.com/521764 [ Win10 ] svg/text/obb-paintserver.html [ ImageOnlyFailure Pass Timeout ]
crbug.com/521764 [ Win10 ] svg/text/text-selection-fonts-01-t.svg [ ImageOnlyFailure Timeout ] crbug.com/521764 [ Win10 ] svg/text/text-selection-fonts-01-t.svg [ ImageOnlyFailure Timeout ]
crbug.com/521764 [ Win10 ] svg/text/text-selection-intro-05-t.svg [ Failure Timeout ] crbug.com/521764 [ Win10 ] svg/text/text-selection-intro-05-t.svg [ Failure Timeout ]
crbug.com/521764 [ Win10 ] transforms/2d/hindi-rotated.html [ Failure Timeout ]
crbug.com/521764 [ Win10 ] animations/interpolation/background-position-origin-interpolation.html [ Failure Pass ] crbug.com/521764 [ Win10 ] animations/interpolation/background-position-origin-interpolation.html [ Failure Pass ]
crbug.com/521764 [ Win10 ] animations/interpolation/background-size-interpolation.html [ Failure Pass ] crbug.com/521764 [ Win10 ] animations/interpolation/background-size-interpolation.html [ Failure Pass ]
crbug.com/521764 [ Win10 ] animations/interpolation/font-size-zoom-interpolation.html [ Pass Timeout ] crbug.com/521764 [ Win10 ] animations/interpolation/font-size-zoom-interpolation.html [ Pass Timeout ]
......
...@@ -211,20 +211,16 @@ void DeprecatedPaintLayerPainter::paintLayerContents(GraphicsContext* context, c ...@@ -211,20 +211,16 @@ void DeprecatedPaintLayerPainter::paintLayerContents(GraphicsContext* context, c
// so they are nested properly. // so they are nested properly.
ClipPathHelper clipPathHelper(context, m_paintLayer, paintingInfo, rootRelativeBounds, rootRelativeBoundsComputed, offsetFromRoot, paintFlags); ClipPathHelper clipPathHelper(context, m_paintLayer, paintingInfo, rootRelativeBounds, rootRelativeBoundsComputed, offsetFromRoot, paintFlags);
Optional<LayerClipRecorder> clipRecorder;
Optional<CompositingRecorder> compositingRecorder; Optional<CompositingRecorder> compositingRecorder;
// Blending operations must be performed only with the nearest ancestor stacking context. // Blending operations must be performed only with the nearest ancestor stacking context.
// Note that there is no need to composite if we're painting the root. // Note that there is no need to composite if we're painting the root.
// FIXME: this should be unified further into DeprecatedPaintLayer::paintsWithTransparency(). // FIXME: this should be unified further into DeprecatedPaintLayer::paintsWithTransparency().
bool shouldCompositeForBlendMode = (!m_paintLayer.layoutObject()->isDocumentElement() || m_paintLayer.layoutObject()->isSVGRoot()) && m_paintLayer.stackingNode()->isStackingContext() && m_paintLayer.hasNonIsolatedDescendantWithBlendMode(); bool shouldCompositeForBlendMode = (!m_paintLayer.layoutObject()->isDocumentElement() || m_paintLayer.layoutObject()->isSVGRoot()) && m_paintLayer.stackingNode()->isStackingContext() && m_paintLayer.hasNonIsolatedDescendantWithBlendMode();
if (shouldCompositeForBlendMode || m_paintLayer.paintsWithTransparency(paintingInfo.globalPaintFlags())) { if (shouldCompositeForBlendMode || m_paintLayer.paintsWithTransparency(paintingInfo.globalPaintFlags())) {
clipRecorder.emplace(*context, *m_paintLayer.layoutObject(), DisplayItem::TransparencyClip, FloatRect compositingBounds = FloatRect(m_paintLayer.paintingExtent(paintingInfo.rootLayer, paintingInfo.paintDirtyRect, paintingInfo.globalPaintFlags()));
m_paintLayer.paintingExtent(paintingInfo.rootLayer, paintingInfo.paintDirtyRect, paintingInfo.globalPaintFlags()),
&paintingInfo, LayoutPoint(), paintFlags);
compositingRecorder.emplace(*context, *m_paintLayer.layoutObject(), compositingRecorder.emplace(*context, *m_paintLayer.layoutObject(),
WebCoreCompositeToSkiaComposite(CompositeSourceOver, m_paintLayer.layoutObject()->style()->blendMode()), WebCoreCompositeToSkiaComposite(CompositeSourceOver, m_paintLayer.layoutObject()->style()->blendMode()),
m_paintLayer.layoutObject()->opacity()); m_paintLayer.layoutObject()->opacity(), &compositingBounds);
} }
DeprecatedPaintLayerPaintingInfo localPaintingInfo(paintingInfo); DeprecatedPaintLayerPaintingInfo localPaintingInfo(paintingInfo);
......
...@@ -140,7 +140,6 @@ static WTF::String clipTypeAsDebugString(DisplayItem::Type type) ...@@ -140,7 +140,6 @@ static WTF::String clipTypeAsDebugString(DisplayItem::Type type)
DEBUG_STRING_CASE(ClipPopupListBoxFrame); DEBUG_STRING_CASE(ClipPopupListBoxFrame);
DEBUG_STRING_CASE(ClipSelectionImage); DEBUG_STRING_CASE(ClipSelectionImage);
DEBUG_STRING_CASE(PageWidgetDelegateClip); DEBUG_STRING_CASE(PageWidgetDelegateClip);
DEBUG_STRING_CASE(TransparencyClip);
DEBUG_STRING_CASE(ClipPrintedPage); DEBUG_STRING_CASE(ClipPrintedPage);
DEFAULT_CASE; DEFAULT_CASE;
} }
......
...@@ -125,7 +125,6 @@ public: ...@@ -125,7 +125,6 @@ public:
ClipPopupListBoxFrame, ClipPopupListBoxFrame,
ClipSelectionImage, ClipSelectionImage,
PageWidgetDelegateClip, PageWidgetDelegateClip,
TransparencyClip,
ClipPrintedPage, ClipPrintedPage,
ClipLast = ClipPrintedPage, ClipLast = ClipPrintedPage,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment