Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Unified Diff: third_party/WebKit/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm

Issue 39293: WebKit merge 41447:41498 [third_party/WebKit] (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: remove CRLF Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
===================================================================
--- third_party/WebKit/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm (revision 11154)
+++ third_party/WebKit/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm (working copy)
@@ -187,6 +187,7 @@
, m_startedPlaying(false)
, m_isStreaming(false)
, m_visible(false)
+ , m_rect()
#if DRAW_FRAME_RATE
, m_frameCountWhilePlaying(0)
, m_timeStartedPlaying(0)
@@ -295,8 +296,11 @@
addedCustomMethods = true;
}
+ // delay callbacks as we *will* get notifications during setup
+ [m_objcObserver.get() setDelayCallbacks:YES];
+
m_qtMovieView.adoptNS([[QTMovieView alloc] init]);
- setRect(m_player->rect());
+ setSize(m_player->size());
NSView* parentView = m_player->frameView()->documentView();
[parentView addSubview:m_qtMovieView.get()];
#ifdef BUILDING_ON_TIGER
@@ -317,6 +321,8 @@
// Note that we expect mainThreadSetNeedsDisplay to be invoked only when synchronous drawing is requested.
if (!m_player->inMediaDocument())
wkQTMovieViewSetDrawSynchronously(m_qtMovieView.get(), YES);
+
+ [m_objcObserver.get() setDelayCallbacks:NO];
}
void MediaPlayerPrivate::detachQTMovieView()
@@ -732,18 +738,19 @@
m_player->timeChanged();
}
-void MediaPlayerPrivate::setRect(const IntRect& r)
+void MediaPlayerPrivate::setSize(const IntSize& size)
{
if (!m_qtMovieView)
return;
+ m_rect.setSize(size);
if (m_player->inMediaDocument())
// We need the QTMovieView to be placed in the proper location for document mode.
- [m_qtMovieView.get() setFrame:r];
+ [m_qtMovieView.get() setFrame:m_rect];
else {
// We don't really need the QTMovieView in any specific location so let's just get it out of the way
// where it won't intercept events or try to bring up the context menu.
- IntRect farAwayButCorrectSize(r);
+ IntRect farAwayButCorrectSize(m_rect);
farAwayButCorrectSize.move(-1000000, -1000000);
[m_qtMovieView.get() setFrame:farAwayButCorrectSize];
}
@@ -803,8 +810,14 @@
[NSGraphicsContext setCurrentContext:newContext];
[(id<WebKitVideoRenderingDetails>)qtVideoRenderer drawInRect:paintRect];
[NSGraphicsContext restoreGraphicsState];
- } else
+ } else {
+ if (m_player->inMediaDocument() && r != m_rect) {
+ // the QTMovieView needs to be placed in the proper location for document mode
+ m_rect = r;
+ [view setFrame:m_rect];
+ }
[view displayRectIgnoringOpacity:paintRect inContext:newContext];
+ }
#if DRAW_FRAME_RATE
// Draw the frame rate only after having played more than 10 frames.

Powered by Google App Engine
This is Rietveld 408576698