Title: [109162] trunk/Source/WebCore
- Revision
- 109162
- Author
- [email protected]
- Date
- 2012-02-28 15:53:12 -0800 (Tue, 28 Feb 2012)
Log Message
Unreviewed, rolling out r108834.
http://trac.webkit.org/changeset/108834
https://bugs.webkit.org/show_bug.cgi?id=79840
Seems to cause a number of crashes under
FrameView::doDeferredRepaints (Requested by jamesr__ on
#webkit).
Patch by Sheriff Bot <[email protected]> on 2012-02-28
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw):
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::imageContentChanged):
(WebCore::SVGImageCache::redrawTimerFired):
* svg/graphics/SVGImageCache.h:
(SVGImageCache):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (109161 => 109162)
--- trunk/Source/WebCore/ChangeLog 2012-02-28 23:44:56 UTC (rev 109161)
+++ trunk/Source/WebCore/ChangeLog 2012-02-28 23:53:12 UTC (rev 109162)
@@ -1,3 +1,22 @@
+2012-02-28 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r108834.
+ http://trac.webkit.org/changeset/108834
+ https://bugs.webkit.org/show_bug.cgi?id=79840
+
+ Seems to cause a number of crashes under
+ FrameView::doDeferredRepaints (Requested by jamesr__ on
+ #webkit).
+
+ * svg/graphics/SVGImage.cpp:
+ (WebCore::SVGImage::draw):
+ * svg/graphics/SVGImage.h:
+ * svg/graphics/SVGImageCache.cpp:
+ (WebCore::SVGImageCache::imageContentChanged):
+ (WebCore::SVGImageCache::redrawTimerFired):
+ * svg/graphics/SVGImageCache.h:
+ (SVGImageCache):
+
2012-02-29 Mario Sanchez Prada <[email protected]>
[GTK] Add support for nested event loops in RunLoop
Modified: trunk/Source/WebCore/svg/graphics/SVGImage.cpp (109161 => 109162)
--- trunk/Source/WebCore/svg/graphics/SVGImage.cpp 2012-02-28 23:44:56 UTC (rev 109161)
+++ trunk/Source/WebCore/svg/graphics/SVGImage.cpp 2012-02-28 23:53:12 UTC (rev 109162)
@@ -210,7 +210,7 @@
if (!m_page)
return;
- FrameView* view = frameView();
+ FrameView* view = m_page->mainFrame()->view();
GraphicsContextStateSaver stateSaver(*context);
context->setCompositeOperation(compositeOp);
@@ -255,14 +255,6 @@
return toRenderBox(rootElement->renderer());
}
-FrameView* SVGImage::frameView() const
-{
- if (!m_page)
- return 0;
-
- return m_page->mainFrame()->view();
-}
-
bool SVGImage::hasRelativeWidth() const
{
if (!m_page)
Modified: trunk/Source/WebCore/svg/graphics/SVGImage.h (109161 => 109162)
--- trunk/Source/WebCore/svg/graphics/SVGImage.h 2012-02-28 23:44:56 UTC (rev 109161)
+++ trunk/Source/WebCore/svg/graphics/SVGImage.h 2012-02-28 23:53:12 UTC (rev 109162)
@@ -34,7 +34,6 @@
namespace WebCore {
-class FrameView;
class ImageBuffer;
class Page;
class RenderBox;
@@ -54,7 +53,6 @@
void drawSVGToImageBuffer(ImageBuffer*, const IntSize&, float zoom, ShouldClearBuffer);
RenderBox* embeddedContentBox() const;
- FrameView* frameView() const;
virtual bool isSVGImage() const { return true; }
virtual IntSize size() const;
Modified: trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp (109161 => 109162)
--- trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp 2012-02-28 23:44:56 UTC (rev 109161)
+++ trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp 2012-02-28 23:53:12 UTC (rev 109162)
@@ -21,7 +21,6 @@
#include "SVGImageCache.h"
#if ENABLE(SVG)
-#include "FrameView.h"
#include "GraphicsContext.h"
#include "ImageBuffer.h"
#include "RenderSVGRoot.h"
@@ -82,18 +81,13 @@
for (ImageDataMap::iterator it = m_imageDataMap.begin(); it != end; ++it)
it->second.imageNeedsUpdate = true;
- // If we're in the middle of layout, start redrawing dirty
- // images on a timer; otherwise it's safe to draw immediately.
-
- FrameView* frameView = m_svgImage->frameView();
- if (frameView && frameView->needsLayout()) {
- if (!m_redrawTimer.isActive())
- m_redrawTimer.startOneShot(0);
- } else
- redraw();
+ // Start redrawing dirty images with a timer, as imageContentChanged() may be called
+ // by the FrameView of the SVGImage which is currently in FrameView::layout().
+ if (!m_redrawTimer.isActive())
+ m_redrawTimer.startOneShot(0);
}
-void SVGImageCache::redraw()
+void SVGImageCache::redrawTimerFired(Timer<SVGImageCache>*)
{
ImageDataMap::iterator end = m_imageDataMap.end();
for (ImageDataMap::iterator it = m_imageDataMap.begin(); it != end; ++it) {
@@ -111,11 +105,6 @@
m_svgImage->imageObserver()->animationAdvanced(m_svgImage);
}
-void SVGImageCache::redrawTimerFired(Timer<SVGImageCache>*)
-{
- redraw();
-}
-
Image* SVGImageCache::lookupOrCreateBitmapImageForRenderer(const RenderObject* renderer)
{
ASSERT(renderer);
Modified: trunk/Source/WebCore/svg/graphics/SVGImageCache.h (109161 => 109162)
--- trunk/Source/WebCore/svg/graphics/SVGImageCache.h 2012-02-28 23:44:56 UTC (rev 109161)
+++ trunk/Source/WebCore/svg/graphics/SVGImageCache.h 2012-02-28 23:53:12 UTC (rev 109162)
@@ -70,7 +70,6 @@
private:
SVGImageCache(SVGImage*);
- void redraw();
void redrawTimerFired(Timer<SVGImageCache>*);
struct ImageData {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes