summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--third_party/WebKit/LayoutTests/ChangeLog19
-rw-r--r--third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint-expected.txt16
-rw-r--r--third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html12
-rw-r--r--third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-imageSmoothingEnabled-repaint.js73
-rw-r--r--third_party/WebKit/Source/WebCore/ChangeLog23
-rw-r--r--third_party/WebKit/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp6
-rw-r--r--third_party/WebKit/Source/WebKit/chromium/ChangeLog11
-rw-r--r--third_party/WebKit/Source/WebKit/chromium/DEPS2
8 files changed, 161 insertions, 1 deletions
diff --git a/third_party/WebKit/LayoutTests/ChangeLog b/third_party/WebKit/LayoutTests/ChangeLog
index 3389ba5..ccc31b2 100644
--- a/third_party/WebKit/LayoutTests/ChangeLog
+++ b/third_party/WebKit/LayoutTests/ChangeLog
@@ -1,3 +1,22 @@
+2012-06-14 Justin Novosad <junov@chromium.org>
+
+ [Chromium] webkitImageSmoothingEnabled canvas property does not work on redraw
+ https://bugs.webkit.org/show_bug.cgi?id=89018
+
+ Reviewed by Stephen White.
+
+ New layout test that verifies that disabling image smoothing on a 2d
+ canvas continues to work after multiple paint cycles.
+
+ * fast/canvas/canvas-imageSmoothingEnabled-repaint-expected.txt: Added.
+ * fast/canvas/canvas-imageSmoothingEnabled-repaint.html: Added.
+ * fast/canvas/script-tests/canvas-imageSmoothingEnabled-repaint.js: Added.
+ (draw):
+ (testResult):
+ (TestControllerPaint):
+ (BrowserPaint):
+ (onLoadHandler):
+
2012-06-14 Stephen Chenney <schenney@chromium.org>
[svg] SVGResources applied to Text with Incorrect Transformations in non-CG Implementations
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint-expected.txt b/third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint-expected.txt
new file mode 100644
index 0000000..092f51c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint-expected.txt
@@ -0,0 +1,16 @@
+Tests that disabling the imageSmoothingEnabled attribute still works after multiple repaints
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Test that the image is not filtered
+PASS left_of_center_pixel.data[0] is 255
+PASS left_of_center_pixel.data[1] is 0
+PASS left_of_center_pixel.data[2] is 0
+PASS right_of_center_pixel.data[0] is 0
+PASS right_of_center_pixel.data[1] is 255
+PASS right_of_center_pixel.data[2] is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html b/third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html
new file mode 100644
index 0000000..ffc4b20
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+ <canvas id="destination" width="300" height="300"></canvas>
+ <canvas id="source" width="300" height="300"></canvas>
+ <script src="script-tests/canvas-imageSmoothingEnabled-repaint.js"></script>
+ <script src="../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-imageSmoothingEnabled-repaint.js b/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-imageSmoothingEnabled-repaint.js
new file mode 100644
index 0000000..f8c0833
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-imageSmoothingEnabled-repaint.js
@@ -0,0 +1,73 @@
+// This is a regression test for bug https://bugs.webkit.org/show_bug.cgi?id=89018
+
+description("Tests that disabling the imageSmoothingEnabled attribute still works after multiple repaints");
+var dstCanvas = document.getElementById("destination");
+var dstCtx = dstCanvas.getContext('2d');
+var srcCanvas = document.getElementById("source");
+var srcCtx = srcCanvas.getContext('2d');
+
+
+var srcCanvas, srcCtx, dstCanvas, dstCtx;
+
+function draw()
+{
+ srcCtx.clearRect(0, 0, 300, 300);
+ dstCtx.clearRect(0, 0, 300, 300);
+ srcCtx.fillStyle = "rgb(255, 0, 0)";
+ srcCtx.fillRect(0, 0, 1, 1);
+ srcCtx.fillStyle = "rgb(0, 255, 0)";
+ srcCtx.fillRect(1, 0, 1, 1);
+ dstCtx.webkitImageSmoothingEnabled = false;
+ dstCtx.drawImage(srcCanvas, 0, 0, 2, 1, 0, 0, 300, 300);
+}
+
+function testResult() {
+ debug("Test that the image is not filtered");
+ left_of_center_pixel = dstCtx.getImageData(149, 150, 1, 1);
+ shouldBe("left_of_center_pixel.data[0]", "255");
+ shouldBe("left_of_center_pixel.data[1]", "0");
+ shouldBe("left_of_center_pixel.data[2]", "0");
+ right_of_center_pixel = dstCtx.getImageData(150, 150, 1, 1);
+ shouldBe("right_of_center_pixel.data[0]", "0");
+ shouldBe("right_of_center_pixel.data[1]", "255");
+ shouldBe("right_of_center_pixel.data[2]", "0");
+ finishJSTest();
+}
+
+// Bug 89018 requires 2 draw iteration in order to manifest itself.
+var drawIterations = 2;
+
+// Unrolled repaint loop for running the test in DumpRenderTree
+function TestControllerPaint() {
+ while (drawIterations > 0) {
+ draw();
+ layoutTestController.display();
+ drawIterations = drawIterations - 1;
+ }
+ draw();
+ testResult();
+}
+
+// Repaint loop for running the test in the browser
+function BrowserPaint(){
+ draw();
+ if (drawIterations > 0) {
+ drawIterations = drawIterations - 1;
+ window.webkitRequestAnimationFrame(BrowserPaint);
+ } else {
+ testResult();
+ }
+}
+
+function onLoadHandler()
+{
+ if (window.layoutTestController) {
+ TestControllerPaint();
+ } else {
+ BrowserPaint();
+ }
+}
+
+window.jsTestIsAsync = true;
+window.onload = onLoadHandler;
+
diff --git a/third_party/WebKit/Source/WebCore/ChangeLog b/third_party/WebKit/Source/WebCore/ChangeLog
index ba4fbda..bbad940 100644
--- a/third_party/WebKit/Source/WebCore/ChangeLog
+++ b/third_party/WebKit/Source/WebCore/ChangeLog
@@ -1,3 +1,26 @@
+2012-06-14 Justin Novosad <junov@chromium.org>
+
+ [Chromium] webkitImageSmoothingEnabled canvas property does not work on redraw
+ https://bugs.webkit.org/show_bug.cgi?id=89018
+
+ Reviewed by Stephen White.
+
+ Test: fast/canvas/canvas-imageSmoothingEnabled-repaint.html
+
+ When an accelerated canvas layer prepares its texture for the
+ compositor, it must send a notification to skia to invalidate texture
+ proprties that are cached by skia, since the compositor may modify them.
+ The use case this fixes is when a canvas to canvas copy is performed
+ with webkitImageSmoothingEnabled=false on the destination canvas.
+ The backing texture of the source canvas will be set to "nearest"
+ filtering by skia in order to perform the copy. Then, the compositor
+ sets filtering back to "linear" when the source canvas is drawn.
+ Skia is designed to only update GL attributes when required, so errors
+ occur when the skia-side GL state cache is out of sync.
+
+ * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
+ (WebCore::Canvas2DLayerBridge::prepareTexture):
+
2012-06-14 Jon Honeycutt <jhoneycutt@apple.com>
Fix some failing tests on Windows by resetting the page scale factor
diff --git a/third_party/WebKit/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp b/third_party/WebKit/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp
index bb02fe8..0df0b83 100644
--- a/third_party/WebKit/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp
+++ b/third_party/WebKit/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp
@@ -141,6 +141,12 @@ unsigned Canvas2DLayerBridge::prepareTexture(WebTextureUpdater& updater)
return m_frontBufferTexture;
}
+ if (m_canvas) {
+ // Notify skia that the state of the backing store texture object will be touched by the compositor
+ GrRenderTarget* renderTarget = reinterpret_cast<GrRenderTarget*>(m_canvas->getDevice()->accessRenderTarget());
+ if (renderTarget)
+ renderTarget->asTexture()->invalidateCachedState();
+ }
return m_backBufferTexture;
}
diff --git a/third_party/WebKit/Source/WebKit/chromium/ChangeLog b/third_party/WebKit/Source/WebKit/chromium/ChangeLog
index 6cbf683..b8ef591 100644
--- a/third_party/WebKit/Source/WebKit/chromium/ChangeLog
+++ b/third_party/WebKit/Source/WebKit/chromium/ChangeLog
@@ -1,3 +1,14 @@
+2012-06-14 Justin Novosad <junov@chromium.org>
+
+ [Chromium] webkitImageSmoothingEnabled canvas property does not work on redraw
+ https://bugs.webkit.org/show_bug.cgi?id=89018
+
+ Reviewed by Stephen White.
+
+ Rolling chromium DEPS to 141884
+
+ * DEPS:
+
2012-06-14 Alexander Pavlov <apavlov@chromium.org>
[Chromium] Unreviewed, build fix for Mac 10.5
diff --git a/third_party/WebKit/Source/WebKit/chromium/DEPS b/third_party/WebKit/Source/WebKit/chromium/DEPS
index a39fe0a..dec86d2 100644
--- a/third_party/WebKit/Source/WebKit/chromium/DEPS
+++ b/third_party/WebKit/Source/WebKit/chromium/DEPS
@@ -32,7 +32,7 @@
vars = {
'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
- 'chromium_rev': '141410'
+ 'chromium_rev': '141884'
}
deps = {