Huge filter area cause hangs and malloc failures
https://bugs.webkit.org/show_bug.cgi?id=75711
Reviewed by Dean Jackson.
Filtering an element with a child that had a huge negative text-indent
was extremely slow, because transparencyClipBox() returned a huge rect.
Add a method, paintingExtent(), that wraps transparencyClipBox()
and intersects it with the paintDirtyRect to constrain the size
of the rect used for filters and transparency layers.
Transparency layer extent is not testable in layout tests.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintingExtent):
(WebCore::RenderLayer::beginTransparencyLayers): Floating point literals are required
to avoid ambiguous constructor call.
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
* rendering/RenderLayer.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105092
268f45cc-cd09-0410-ab3c-
d52691b4dbfc