[webkit-dev] Layering violations
Nikolas Zimmermann
zimmermann at physik.rwth-aachen.de
Thu Oct 7 00:50:58 PDT 2010
Good morning webkit folks,
many of the filter classes in platform/graphics/filters use
ImageBuffers getUnmultipliedImageData function, which returns a
PassRefPtr<ImageData>.
The ImageData class lives in html/. The only way to access the data
contained in the ImageData class is to grab a CanvasPixelArray (which
lives in html/canvas) using the data() method.
What's the proper way to fix this layering violation? Moving both
ImageData* and CanvasPixelArray* to platform/graphics?
One has to keep in mind that we're generating wrappers for both
ImageData & CanvasPixelArray, both have associated IDL files.
As side note: ImageData is refcounted, the CanvasPixelArray is
refcounted, and the data contained in the CanvasPixelArray is
refcounted (WTF::ByteArray).
For ImageBuffer it makes no sense to encapsulate the WTF::ByteArray in
CanvasPixelArray, we could directly store it in the ImageData class,
it's just one more refcounted object, which is useless for the purpose
of the get..ImageData function.
I'm looking for the right way to fix this long standing layering
violation. Feedback appreciated!
Cheers,
Niko
More information about the webkit-dev
mailing list