2010-02-01 Eric Carlson <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=34448
        <rdar://problem/7598130>

        RenderVideo::intrinsicSizeChanged infinite recursion

        * rendering/RenderImage.h:
        (WebCore::RenderImage::intrinsicSizeChanged): Make protected instead of private so it can
            be called by RenderVideo.
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::intrinsicSizeChanged): Call RenderMedia::intrinsicSizeChanged, not
            RenderVideo::intrinsicSizeChanged.
        (WebCore::RenderVideo::imageChanged): Call RenderMedia::imageChanged instead of 
            RenderImage::imageChanged.



git-svn-id: svn://svn.chromium.org/blink/trunk@54151 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 01ac50fb
2010-02-01 Eric Carlson <eric.carlson@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=34448
<rdar://problem/7598130>
RenderVideo::intrinsicSizeChanged infinite recursion
* rendering/RenderImage.h:
(WebCore::RenderImage::intrinsicSizeChanged): Make protected instead of private so it can
be called by RenderVideo.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::intrinsicSizeChanged): Call RenderMedia::intrinsicSizeChanged, not
RenderVideo::intrinsicSizeChanged.
(WebCore::RenderVideo::imageChanged): Call RenderMedia::imageChanged instead of
RenderImage::imageChanged.
2010-02-01 Nate Chapin <japhet@chromium.org> 2010-02-01 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov. Reviewed by Dimitri Glazkov.
......
...@@ -64,6 +64,8 @@ protected: ...@@ -64,6 +64,8 @@ protected:
bool isWidthSpecified() const; bool isWidthSpecified() const;
bool isHeightSpecified() const; bool isHeightSpecified() const;
virtual void intrinsicSizeChanged() { imageChanged(imagePtr()); }
private: private:
virtual const char* renderName() const { return "RenderImage"; } virtual const char* renderName() const { return "RenderImage"; }
...@@ -89,8 +91,6 @@ private: ...@@ -89,8 +91,6 @@ private:
virtual IntSize imageSize(float multiplier) const { return m_cachedImage ? m_cachedImage->imageSize(multiplier) : IntSize(); } virtual IntSize imageSize(float multiplier) const { return m_cachedImage ? m_cachedImage->imageSize(multiplier) : IntSize(); }
virtual WrappedImagePtr imagePtr() const { return m_cachedImage.get(); } virtual WrappedImagePtr imagePtr() const { return m_cachedImage.get(); }
virtual void intrinsicSizeChanged() { imageChanged(imagePtr()); }
int calcAspectRatioWidth() const; int calcAspectRatioWidth() const;
int calcAspectRatioHeight() const; int calcAspectRatioHeight() const;
......
...@@ -85,7 +85,7 @@ RenderVideo::~RenderVideo() ...@@ -85,7 +85,7 @@ RenderVideo::~RenderVideo()
void RenderVideo::intrinsicSizeChanged() void RenderVideo::intrinsicSizeChanged()
{ {
if (videoElement()->shouldDisplayPosterImage()) if (videoElement()->shouldDisplayPosterImage())
RenderVideo::intrinsicSizeChanged(); RenderMedia::intrinsicSizeChanged();
videoSizeChanged(); videoSizeChanged();
} }
...@@ -104,7 +104,7 @@ void RenderVideo::videoSizeChanged() ...@@ -104,7 +104,7 @@ void RenderVideo::videoSizeChanged()
void RenderVideo::imageChanged(WrappedImagePtr newImage, const IntRect* rect) void RenderVideo::imageChanged(WrappedImagePtr newImage, const IntRect* rect)
{ {
RenderImage::imageChanged(newImage, rect); RenderMedia::imageChanged(newImage, rect);
// Cache the image intrinsic size so we can continue to use it to draw the image correctly // Cache the image intrinsic size so we can continue to use it to draw the image correctly
// even after we know the video intrisic size but aren't able to draw video frames yet // even after we know the video intrisic size but aren't able to draw video frames yet
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment