Source/WebCore/ChangeLog

 12011-06-20 Mahesh Kumar <mahesh4gnu@gmail.com>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.fill.destination-atop.html
 6 https://bugs.webkit.org/show_bug.cgi?id=48292
 7
 8 and
 9
 10 Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop.html
 11 https://bugs.webkit.org/show_bug.cgi?id=48302
 12
 13 * html/canvas/CanvasRenderingContext2D.cpp:
 14 (WebCore::CanvasRenderingContext2D::shouldDisplayTransparencyElsewhere): Added CompositeDestinationAtop
 15 to draw transparency elsewhere for destination-atop
 16
1172011-06-19 MORITA Hajime <morrita@google.com>
218
319 Reviewed by Dimitri Glazkov.
89232

Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp

@@bool CanvasRenderingContext2D::shouldDis
15101510 // See 4.8.11.1.3 Compositing
15111511 // CompositeSourceAtop and CompositeDestinationOut are not listed here as the platforms already
15121512 // implement the specification's behavior.
 1513 // As per the HTML Canvas spec (http://www.whatwg.org/specs/web-apps/current-work/complete/the-canvas-element.html)
 1514 // For source-atop, the expected behavior when S= Transparent(T) & D=Opaque(O) or vice-versa
 1515 // S = O, D= T =>Expected Canvas Color = T
 1516 // S = T, D= O =>Expected Canvas Color = O => i.e. we don't need to clear the Source => NO need for CompositeSourceAtop
 1517 // But for destination-top,the expected behavior S= Transparent(T) & D=Opaque(O) or vice-versa
 1518 // S = O, D= T =>Expected Canvas Color = T
 1519 // S = T, D= O =>Expected Canvas Color = T => i.e. we need to clear the Source => Need for CompositeDestinationAtop
 1520
15131521 return state().m_globalComposite == CompositeSourceIn || state().m_globalComposite == CompositeSourceOut
1514  || state().m_globalComposite == CompositeDestinationIn;
 1522 || state().m_globalComposite == CompositeDestinationIn || state().m_globalComposite == CompositeDestinationAtop;
15151523}
15161524
15171525template<class T> void CanvasRenderingContext2D::displayTransparencyElsewhere(const T& area)
88923

LayoutTests/ChangeLog

 12011-06-20 Mahesh Kumar <mahesh4gnu@gmail.com>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.fill.destination-atop.html
 6 https://bugs.webkit.org/show_bug.cgi?id=48292
 7
 8 and
 9
 10 Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop.html
 11 https://bugs.webkit.org/show_bug.cgi?id=48302
 12
 13 * canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop-expected.txt: Added
 14 a trailing line
 15 * fast/canvas/canvas-composite-alpha.html: Rebaselined for destination-atop test case
 16 * platform/chromium/test_expectations.txt: Removed passing test case
 17 * platform/gtk/Skipped: Ditto
 18 * platform/mac/Skipped: Ditto
 19 * platform/qt/Skipped: Ditto
 20
1212011-06-19 MORITA Hajime <morrita@google.com>
222
323 Reviewed by Dimitri Glazkov.
89232

LayoutTests/canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop-expected.txt

11Passed
 2
88923

LayoutTests/fast/canvas/canvas-composite-alpha.html

151151 { source: [0, 0, 0, 0], composition: [0, 255, 255, 32], destination: [0, 255, 255, 127] }
152152 ],
153153 [
154  { source: [255, 0, 0, 255], composition: [0, 255, 0, 255], destination: [0, 255, 0, 255] },
 154 { source: [255, 0, 0, 255], composition: [0, 255, 0, 255], destination: [0,0,0,0] },
155155 { source: [255, 0, 0, 255], composition: [255, 0, 0, 255], destination: [0, 0, 0, 0] },
156  { source: [255, 0, 0, 255], composition: [254, 1, 0, 255], destination: [0, 255, 0, 1] },
157  { source: [0, 0, 0, 0], composition: [0, 0, 0, 0], destination: [255, 0, 0, 255] },
158  { source: [0, 255, 0, 1], composition: [255, 0, 0, 1], destination: [255, 0, 0, 255] },
159  { source: [0, 0, 0, 0], composition: [0, 0, 0, 0], destination: [0, 255, 0, 255] },
160  { source: [255, 0, 0, 127], composition: [126, 126, 0, 127], destination: [0, 255, 0, 127] },
161  { source: [255, 0, 0, 255], composition: [128, 127, 0, 255], destination: [0, 255, 0, 127] },
162  { source: [255, 0, 0, 127], composition: [0, 255, 0, 127], destination: [0, 255, 0, 255] },
163  { source: [127, 0, 0, 255], composition: [63, 63, 0, 255], destination: [0, 126, 0, 127] },
164  { source: [126, 0, 0, 127], composition: [0, 126, 0, 127], destination: [0, 127, 0, 255] },
165  { source: [255, 0, 0, 127], composition: [255, 0, 0, 127], destination: [255, 0, 0, 63] },
166  { source: [255, 127, 0, 32], composition: [255, 111, 0, 32], destination: [255, 64, 0, 63] },
167  { source: [255, 0, 0, 191], composition: [126, 126, 0, 191], destination: [0, 255, 0, 127] },
168  { source: [255, 0, 255, 191], composition: [126, 126, 255, 191], destination: [0, 255, 255, 127] }
 156 { source: [255, 0, 0, 255], composition: [254, 1, 0, 255], destination: [0,0,0,0] },
 157 { source: [0, 0, 0, 0], composition: [0, 0, 0, 0], destination: [0,0,0,0] },
 158 { source: [0, 255, 0, 1], composition: [255, 0, 0, 1], destination: [0,0,0,0] },
 159 { source: [0, 0, 0, 0], composition: [0, 0, 0, 0], destination: [0,0,0,0] },
 160 { source: [255, 0, 0, 127], composition: [126, 126, 0, 127], destination: [0,0,0,0] },
 161 { source: [255, 0, 0, 255], composition: [128, 127, 0, 255], destination: [0,0,0,0] },
 162 { source: [255, 0, 0, 127], composition: [0, 255, 0, 127], destination: [0,0,0,0] },
 163 { source: [127, 0, 0, 255], composition: [63, 63, 0, 255], destination: [0,0,0,0] },
 164 { source: [126, 0, 0, 127], composition: [0, 126, 0, 127], destination: [0,0,0,0] },
 165 { source: [255, 0, 0, 127], composition: [255, 0, 0, 127], destination: [0,0,0,0] },
 166 { source: [255, 127, 0, 32], composition: [255, 111, 0, 32], destination: [0,0,0,0] },
 167 { source: [255, 0, 0, 191], composition: [126, 126, 0, 191], destination: [0,0,0,0] },
 168 { source: [255, 0, 255, 191], composition: [126, 126, 255, 191], destination: [0,0,0,0] }
169169 ],
170170 [
171171 { source: [255, 0, 0, 255], composition: [255, 255, 0, 255], destination: [0, 255, 0, 255] },
88923

LayoutTests/platform/chromium/test_expectations.txt

@@BUGCR62301 : canvas/philip/tests/2d.patt
19821982BUGWK48288 : canvas/philip/tests/2d.composite.operation.clear.html = TEXT
19831983BUGWK48289 : canvas/philip/tests/2d.composite.operation.darker.html = TEXT
19841984BUGWK39177 : canvas/philip/tests/2d.composite.uncovered.fill.copy.html = TEXT
1985 BUGWK39177 : canvas/philip/tests/2d.composite.uncovered.fill.destination-atop.html = TEXT
19861985BUGWK39177 : canvas/philip/tests/2d.composite.uncovered.image.copy.html = TEXT
19871986BUGWK39177 : canvas/philip/tests/2d.composite.uncovered.image.destination-atop.html = TEXT
19881987BUGWK39177 : canvas/philip/tests/2d.composite.uncovered.image.destination-in.html = TEXT
19891988BUGWK39177 : canvas/philip/tests/2d.composite.uncovered.image.source-in.html = TEXT
19901989BUGWK39177 : canvas/philip/tests/2d.composite.uncovered.image.source-out.html = TEXT
19911990BUGWK39177 : canvas/philip/tests/2d.composite.uncovered.pattern.copy.html = TEXT
1992 BUGWK39177 : canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop.html = TEXT
19931991BUGWK45991 : canvas/philip/tests/2d.pattern.image.undefined.html = TEXT
19941992BUGWK45991 : canvas/philip/tests/2d.text.draw.baseline.bottom.html = TEXT
19951993BUGWK45991 : canvas/philip/tests/2d.text.draw.baseline.hanging.html = TEXT
88923

LayoutTests/platform/gtk/Skipped

@@canvas/philip/tests/2d.drawImage.broken.
10941094canvas/philip/tests/2d.composite.operation.clear.html
10951095canvas/philip/tests/2d.composite.operation.darker.html
10961096canvas/philip/tests/2d.composite.uncovered.fill.copy.html
1097 canvas/philip/tests/2d.composite.uncovered.fill.destination-atop.html
10981097canvas/philip/tests/2d.composite.uncovered.image.copy.html
10991098canvas/philip/tests/2d.composite.uncovered.image.destination-atop.html
11001099canvas/philip/tests/2d.composite.uncovered.image.destination-in.html
11011100canvas/philip/tests/2d.composite.uncovered.image.source-in.html
11021101canvas/philip/tests/2d.composite.uncovered.image.source-out.html
11031102canvas/philip/tests/2d.composite.uncovered.pattern.copy.html
1104 canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop.html
11051103canvas/philip/tests/2d.drawImage.broken.html
11061104canvas/philip/tests/2d.imageData.create1.type.html
11071105canvas/philip/tests/2d.imageData.create2.type.html
88923

LayoutTests/platform/mac/Skipped

@@canvas/philip/tests/2d.composite.operati
154154# effort out to change the spec to the webkit canvas model.
155155canvas/philip/tests/2d.composite.operation.darker.html
156156canvas/philip/tests/2d.composite.uncovered.fill.copy.html
157 canvas/philip/tests/2d.composite.uncovered.fill.destination-atop.html
158157canvas/philip/tests/2d.composite.uncovered.image.copy.html
159158canvas/philip/tests/2d.composite.uncovered.image.destination-atop.html
160159canvas/philip/tests/2d.composite.uncovered.image.destination-in.html
161160canvas/philip/tests/2d.composite.uncovered.image.source-in.html
162161canvas/philip/tests/2d.composite.uncovered.image.source-out.html
163162canvas/philip/tests/2d.composite.uncovered.pattern.copy.html
164 canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop.html
165163canvas/philip/tests/2d.imageData.object.round.html
166164canvas/philip/tests/2d.imageData.object.wrap.html
167165
88923

LayoutTests/platform/qt/Skipped

@@tables/mozilla/bugs/bug99948.html
18461846canvas/philip/tests/2d.composite.operation.clear.html
18471847canvas/philip/tests/2d.composite.operation.darker.html
18481848canvas/philip/tests/2d.composite.uncovered.fill.copy.html
1849 canvas/philip/tests/2d.composite.uncovered.fill.destination-atop.html
18501849canvas/philip/tests/2d.composite.uncovered.image.copy.html
18511850canvas/philip/tests/2d.composite.uncovered.image.destination-atop.html
18521851canvas/philip/tests/2d.composite.uncovered.image.destination-in.html
18531852canvas/philip/tests/2d.composite.uncovered.image.source-in.html
18541853canvas/philip/tests/2d.composite.uncovered.image.source-out.html
18551854canvas/philip/tests/2d.composite.uncovered.pattern.copy.html
1856 canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop.html
18571855canvas/philip/tests/2d.drawImage.broken.html
18581856canvas/philip/tests/2d.gradient.radial.cone.behind.html
18591857canvas/philip/tests/2d.gradient.radial.cone.beside.html
88923