| Index: Source/core/svg/graphics/SVGImageChromeClient.cpp
|
| diff --git a/Source/core/svg/graphics/SVGImageChromeClient.cpp b/Source/core/svg/graphics/SVGImageChromeClient.cpp
|
| index b85338301f7218577e07ad01bfc4a5d356b56b54..9903b2e06d858451b4f6ac50495cb1e73e9efeb0 100644
|
| --- a/Source/core/svg/graphics/SVGImageChromeClient.cpp
|
| +++ b/Source/core/svg/graphics/SVGImageChromeClient.cpp
|
| @@ -63,10 +63,12 @@ void SVGImageChromeClient::invalidateContentsAndRootView(const IntRect& r)
|
|
|
| void SVGImageChromeClient::scheduleAnimation()
|
| {
|
| - // FIXME: This should not be called after chromeDestroyed, but
|
| - // crbug.com/350907 seems to indicate it can be. Adding this
|
| - // ASSERT until we have a LayoutTest to reproduce this!
|
| - ASSERT(m_image);
|
| + // m_image can be 0 here when the SVGImage is (invalid and) destroyed -
|
| + // deferring destruction of it's Page, and said page contains a plugin and
|
| + // a marquee (or presumably other entity that schedules animations using
|
| + // the ScriptedAnimationController). The core issue is of course the
|
| + // deferred destruction since it creates this race window in the first
|
| + // place. (Relevant test: svg/as-image/svg-invalid-image-1.html)
|
| if (!m_image)
|
| return;
|
| // Because a single SVGImage can be shared by multiple pages, we can't key
|
|
|