2009-04-22 Simon Fraser <simon.fraser@apple.com>

        Reviewed by Adele Peterson

        <rdar://problem/6702882> QT movie's video fails to be displayed after switching between tabs
        <rdar://problem/6754957> Resizing Web browser window and hitting play will cause video blocks and artifacting

        When in a media document, MediaPlayerPrivateQTKit uses a QTMovieView which may get
        layer backing under some circumstances. However, drawing the view via
        displayRectIgnoringOpacity:inContext: bypasses any layer setup that AppKit normally performs.
        So when in the media document, we draw via displayRectIgnoringOpacity:.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::paint):

git-svn-id: svn://svn.chromium.org/blink/trunk@42759 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 484a1ef7
2009-04-22 Simon Fraser <simon.fraser@apple.com>
Reviewed by Adele Peterson
<rdar://problem/6702882> QT movie's video fails to be displayed after switching between tabs
<rdar://problem/6754957> Resizing Web browser window and hitting play will cause video blocks and artifacting
When in a media document, MediaPlayerPrivateQTKit uses a QTMovieView which may get
layer backing under some circumstances. However, drawing the view via
displayRectIgnoringOpacity:inContext: bypasses any layer setup that AppKit normally performs.
So when in the media document, we draw via displayRectIgnoringOpacity:.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::paint):
2009-04-22 Timothy Hatcher <timothy@apple.com> 2009-04-22 Timothy Hatcher <timothy@apple.com>
Fix a crash in Mail when forwarding a specific HTML email. Fix a crash in Mail when forwarding a specific HTML email.
...@@ -867,7 +867,13 @@ void MediaPlayerPrivate::paint(GraphicsContext* context, const IntRect& r) ...@@ -867,7 +867,13 @@ void MediaPlayerPrivate::paint(GraphicsContext* context, const IntRect& r)
} }
} }
[view displayRectIgnoringOpacity:paintRect inContext:newContext]; if (m_player->inMediaDocument()) {
// If we're using a QTMovieView in a media document, the view may get layer-backed. AppKit won't update
// the layer hosting correctly if we call displayRectIgnoringOpacity:inContext:, so use displayRectIgnoringOpacity:
// in this case. See <rdar://problem/6702882>.
[view displayRectIgnoringOpacity:paintRect];
} else
[view displayRectIgnoringOpacity:paintRect inContext:newContext];
} }
#if DRAW_FRAME_RATE #if DRAW_FRAME_RATE
......
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