Diff
Modified: trunk/Source/Platform/ChangeLog (133498 => 133499)
--- trunk/Source/Platform/ChangeLog 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/Platform/ChangeLog 2012-11-05 18:56:05 UTC (rev 133499)
@@ -1,3 +1,16 @@
+2012-11-05 Alok Priyadarshi <[email protected]>
+
+ [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
+ https://bugs.webkit.org/show_bug.cgi?id=99083
+
+ Reviewed by Stephen White.
+
+ Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
+
+ * chromium/public/WebContentLayerClient.h:
+ (WebContentLayerClient):
+ (WebKit::WebContentLayerClient::paintContents):
+
2012-11-01 Robert Kroeger <[email protected]>
[chromium] Provide WebKit API interface for platform gesture curves
Modified: trunk/Source/Platform/chromium/public/WebContentLayerClient.h (133498 => 133499)
--- trunk/Source/Platform/chromium/public/WebContentLayerClient.h 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/Platform/chromium/public/WebContentLayerClient.h 2012-11-05 18:56:05 UTC (rev 133499)
@@ -43,7 +43,8 @@
// optimizations.
#define WEBCONTENTLAYERCLIENT_HAS_OPAQUE 1
#define WEBCONTENTLAYERCLIENT_FLOAT_OPAQUE_RECT 1
- virtual void paintContents(WebCanvas*, const WebRect& clip, WebFloatRect& opaque) = 0;
+#define WEBCONTENTLAYERCLIENT_HAS_CANPAINTLCDTEXT 1
+ virtual void paintContents(WebCanvas*, const WebRect& clip, bool canPaintLCDText, WebFloatRect& opaque) = 0;
protected:
virtual ~WebContentLayerClient() { }
Modified: trunk/Source/WebCore/ChangeLog (133498 => 133499)
--- trunk/Source/WebCore/ChangeLog 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebCore/ChangeLog 2012-11-05 18:56:05 UTC (rev 133499)
@@ -1,3 +1,22 @@
+2012-11-05 Alok Priyadarshi <[email protected]>
+
+ [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
+ https://bugs.webkit.org/show_bug.cgi?id=99083
+
+ Reviewed by Stephen White.
+
+ Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
+
+ No new tests needed. This patch does not change anything functionally.
+
+ * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+ (WebCore::GraphicsLayerChromium::setContentsOpaque):
+ (WebCore::GraphicsLayerChromium::paint):
+ * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
+ (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
+ * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
+ (OpaqueRectTrackingContentLayerDelegate):
+
2012-11-05 Stephen White <[email protected]>
[chromium] Build fix after http://trac.webkit.org/changeset/133488.
Modified: trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp (133498 => 133499)
--- trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp 2012-11-05 18:56:05 UTC (rev 133499)
@@ -300,6 +300,7 @@
{
GraphicsLayer::setContentsOpaque(opaque);
m_layer->layer()->setOpaque(m_contentsOpaque);
+ m_opaqueRectTrackingContentLayerDelegate->setOpaque(m_contentsOpaque);
}
static bool copyWebCoreFilterOperationsToWebFilterOperations(const FilterOperations& filters, WebFilterOperations& webFilters)
@@ -868,7 +869,6 @@
void GraphicsLayerChromium::paint(GraphicsContext& context, const IntRect& clip)
{
- context.platformContext()->setDrawingToImageBuffer(true);
paintGraphicsLayerContents(context, clip);
}
Modified: trunk/Source/WebCore/platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp (133498 => 133499)
--- trunk/Source/WebCore/platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebCore/platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp 2012-11-05 18:56:05 UTC (rev 133499)
@@ -49,7 +49,7 @@
{
}
-void OpaqueRectTrackingContentLayerDelegate::paintContents(SkCanvas* canvas, const WebRect& clip, WebFloatRect& opaque)
+void OpaqueRectTrackingContentLayerDelegate::paintContents(SkCanvas* canvas, const WebRect& clip, bool canPaintLCDText, WebFloatRect& opaque)
{
PlatformContextSkia platformContext(canvas);
#if defined(SK_SUPPORT_HINTING_SCALE_FACTOR)
@@ -57,6 +57,10 @@
platformContext.setHintingScaleFactor(canvas->getTotalMatrix().getScaleX());
#endif
platformContext.setTrackOpaqueRegion(!m_opaque);
+ // FIXME: Rename PlatformContextSkia::setDrawingToImageBuffer to setCanPaintLCDText.
+ // I also suspect that a function on PlatformContextSkia is not really needed.
+ // GraphicsContext::setAllowsFontSmoothing can be used for this purpose.
+ platformContext.setDrawingToImageBuffer(!(canPaintLCDText && m_opaque));
GraphicsContext context(&platformContext);
// Record transform prior to painting, as all opaque tracking will be
Modified: trunk/Source/WebCore/platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h (133498 => 133499)
--- trunk/Source/WebCore/platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebCore/platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h 2012-11-05 18:56:05 UTC (rev 133499)
@@ -55,7 +55,7 @@
void setOpaque(bool opaque) { m_opaque = opaque; }
// WebKit::WebContentLayerClient implementation.
- virtual void paintContents(SkCanvas*, const WebKit::WebRect& clip, WebKit::WebFloatRect& opaque) OVERRIDE;
+ virtual void paintContents(SkCanvas*, const WebKit::WebRect& clip, bool canPaintLCDText, WebKit::WebFloatRect& opaque) OVERRIDE;
private:
GraphicsContextPainter* m_painter;
Modified: trunk/Source/WebKit/chromium/ChangeLog (133498 => 133499)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-11-05 18:56:05 UTC (rev 133499)
@@ -1,5 +1,27 @@
2012-11-05 Alok Priyadarshi <[email protected]>
+ [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
+ https://bugs.webkit.org/show_bug.cgi?id=99083
+
+ Reviewed by Stephen White.
+
+ Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
+
+ * src/LinkHighlight.cpp:
+ (WebKit::LinkHighlight::paintContents):
+ * src/LinkHighlight.h:
+ (LinkHighlight):
+ * src/NonCompositedContentHost.cpp:
+ (WebKit::NonCompositedContentHost::NonCompositedContentHost):
+ (WebKit::NonCompositedContentHost::setOpaque):
+ (WebKit::NonCompositedContentHost::paintContents):
+ * src/NonCompositedContentHost.h:
+ (NonCompositedContentHost):
+ * tests/OpaqueRectTrackingContentLayerDelegateTest.cpp:
+ (WebCore::TEST_F):
+
+2012-11-05 Alok Priyadarshi <[email protected]>
+
Unreviewed. Rolled DEPS.
* DEPS:
Modified: trunk/Source/WebKit/chromium/src/LinkHighlight.cpp (133498 => 133499)
--- trunk/Source/WebKit/chromium/src/LinkHighlight.cpp 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebKit/chromium/src/LinkHighlight.cpp 2012-11-05 18:56:05 UTC (rev 133499)
@@ -226,7 +226,7 @@
return pathHasChanged;
}
-void LinkHighlight::paintContents(WebCanvas* canvas, const WebRect& webClipRect, WebFloatRect&)
+void LinkHighlight::paintContents(WebCanvas* canvas, const WebRect& webClipRect, bool, WebFloatRect&)
{
if (!m_node || !m_node->renderer())
return;
Modified: trunk/Source/WebKit/chromium/src/LinkHighlight.h (133498 => 133499)
--- trunk/Source/WebKit/chromium/src/LinkHighlight.h 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebKit/chromium/src/LinkHighlight.h 2012-11-05 18:56:05 UTC (rev 133499)
@@ -58,7 +58,7 @@
void updateGeometry();
// WebContentLayerClient implementation.
- virtual void paintContents(WebCanvas*, const WebRect& clipRect, WebFloatRect& opaque) OVERRIDE;
+ virtual void paintContents(WebCanvas*, const WebRect& clipRect, bool canPaintLCDText, WebFloatRect& opaque) OVERRIDE;
// WebAnimationDelegate implementation.
virtual void notifyAnimationStarted(double time) OVERRIDE;
Modified: trunk/Source/WebKit/chromium/src/NonCompositedContentHost.cpp (133498 => 133499)
--- trunk/Source/WebKit/chromium/src/NonCompositedContentHost.cpp 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebKit/chromium/src/NonCompositedContentHost.cpp 2012-11-05 18:56:05 UTC (rev 133499)
@@ -41,7 +41,6 @@
NonCompositedContentHost::NonCompositedContentHost(WebViewImpl* webView)
: m_webView(webView)
- , m_opaque(true)
, m_showDebugBorders(false)
{
m_graphicsLayer = WebCore::GraphicsLayer::create(0, this);
@@ -50,9 +49,10 @@
#endif
m_graphicsLayer->setDrawsContent(true);
m_graphicsLayer->setAppliesPageScale(!m_webView->page()->settings()->applyPageScaleFactorInCompositor());
+ m_graphicsLayer->setContentsOpaque(true);
+ // FIXME: Remove LCD text setting after it is implemented in chromium.
WebContentLayer* layer = static_cast<WebCore::GraphicsLayerChromium*>(m_graphicsLayer.get())->contentLayer();
layer->setUseLCDText(true);
- layer->layer()->setOpaque(true);
#if !OS(ANDROID)
layer->setDrawCheckerboardForMissingTiles(true);
#endif
@@ -69,8 +69,7 @@
void NonCompositedContentHost::setOpaque(bool opaque)
{
- m_opaque = opaque;
- m_graphicsLayer->platformLayer()->setOpaque(opaque);
+ m_graphicsLayer->setContentsOpaque(opaque);
}
void NonCompositedContentHost::setScrollLayer(WebCore::GraphicsLayer* layer)
@@ -173,10 +172,11 @@
void NonCompositedContentHost::paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext& context, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& clipRect)
{
+ // FIXME: Remove LCD text setting after it is implemented in chromium.
// On non-android platforms, we want to render text with subpixel antialiasing on the root layer
// so long as the root is opaque. On android all text is grayscale.
#if !OS(ANDROID)
- if (m_opaque)
+ if (m_graphicsLayer->contentsOpaque())
context.platformContext()->setDrawingToImageBuffer(false);
#endif
context.translate(-m_layerAdjust);
Modified: trunk/Source/WebKit/chromium/src/NonCompositedContentHost.h (133498 => 133499)
--- trunk/Source/WebKit/chromium/src/NonCompositedContentHost.h 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebKit/chromium/src/NonCompositedContentHost.h 2012-11-05 18:56:05 UTC (rev 133499)
@@ -83,7 +83,6 @@
WebCore::IntSize m_viewportSize;
WebCore::IntSize m_layerAdjust;
- bool m_opaque;
bool m_showDebugBorders;
};
Modified: trunk/Source/WebKit/chromium/tests/OpaqueRectTrackingContentLayerDelegateTest.cpp (133498 => 133499)
--- trunk/Source/WebKit/chromium/tests/OpaqueRectTrackingContentLayerDelegateTest.cpp 2012-11-05 18:51:41 UTC (rev 133498)
+++ trunk/Source/WebKit/chromium/tests/OpaqueRectTrackingContentLayerDelegateTest.cpp 2012-11-05 18:56:05 UTC (rev 133499)
@@ -145,7 +145,7 @@
OpaqueRectTrackingContentLayerDelegate delegate(&painter);
WebFloatRect opaqueRect;
- delegate.paintContents(skCanvas(), canvasRect(), opaqueRect);
+ delegate.paintContents(skCanvas(), canvasRect(), false, opaqueRect);
EXPECT_EQ_RECT(WebFloatRect(0, 0, 400, 400), opaqueRect);
}
@@ -156,7 +156,7 @@
OpaqueRectTrackingContentLayerDelegate delegate(&painter);
WebFloatRect opaqueRect;
- delegate.paintContents(skCanvas(), canvasRect(), opaqueRect);
+ delegate.paintContents(skCanvas(), canvasRect(), false, opaqueRect);
EXPECT_EQ_RECT(WebFloatRect(0, 0, 0, 0), opaqueRect);
}
@@ -169,7 +169,7 @@
delegate.setOpaque(true);
WebFloatRect opaqueRect;
- delegate.paintContents(skCanvas(), canvasRect(), opaqueRect);
+ delegate.paintContents(skCanvas(), canvasRect(), false, opaqueRect);
EXPECT_EQ_RECT(WebFloatRect(0, 0, 0, 0), opaqueRect);
}
@@ -182,7 +182,7 @@
delegate.setOpaque(true);
WebFloatRect opaqueRect;
- delegate.paintContents(skCanvas(), canvasRect(), opaqueRect);
+ delegate.paintContents(skCanvas(), canvasRect(), false, opaqueRect);
EXPECT_EQ_RECT(WebFloatRect(0, 0, 0, 0), opaqueRect);
}
@@ -194,7 +194,7 @@
OpaqueRectTrackingContentLayerDelegate delegate(&painter);
WebFloatRect opaqueRect;
- delegate.paintContents(skCanvas(), canvasRect(), opaqueRect);
+ delegate.paintContents(skCanvas(), canvasRect(), false, opaqueRect);
EXPECT_EQ_RECT(WebFloatRect(partialRect.x(), partialRect.y(), partialRect.width(), partialRect.height()), opaqueRect);
}
@@ -207,7 +207,7 @@
WebFloatRect opaqueRect;
WebRect contentRect(11, 12, 389, 388);
- delegate.paintContents(skCanvas(), contentRect, opaqueRect);
+ delegate.paintContents(skCanvas(), contentRect, false, opaqueRect);
EXPECT_EQ_RECT(WebFloatRect(partialRect.x(), partialRect.y(), partialRect.width(), partialRect.height()), opaqueRect);
}
@@ -225,7 +225,7 @@
IntRect rectA;
WebFloatRect rectB;
- delegate.paintContents(&canvas, rectA, rectB);
+ delegate.paintContents(&canvas, rectA, false, rectB);
EXPECT_EQ(callback.hintingScale, hintingScale);
}
#endif