[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

simon.fraser at apple.com simon.fraser at apple.com
Thu Apr 8 00:28:33 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 04ec04d2999872452126968f7fb6d23b5865cd55
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Dec 9 00:40:00 2009 +0000

    2009-12-08  Simon Fraser  <simon.fraser at apple.com>
    
            Reviewed by Dan Bernstein.
    
            <rdar://problem/7295070> WebKit video fullscreen keeps playing after closing the window
    
            Fix a leak of the QTMovieView when exiting fullscreen video, and remove the
            old workaround.
    
            * WebView/WebVideoFullscreenController.mm:
            (-[WebVideoFullscreenController windowDidLoad]): Set the movie view as the contentView directly.
            (-[WebVideoFullscreenController setMediaElement:WebCore::]): Cast the contentView to a movie view.
            (-[WebVideoFullscreenController windowDidExitFullscreen]): Remove the old workaround.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51879 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index 376c6d3..80b5e30 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,17 @@
+2009-12-08  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        <rdar://problem/7295070> WebKit video fullscreen keeps playing after closing the window
+        
+        Fix a leak of the QTMovieView when exiting fullscreen video, and remove the
+        old workaround.
+
+        * WebView/WebVideoFullscreenController.mm:
+        (-[WebVideoFullscreenController windowDidLoad]): Set the movie view as the contentView directly.
+        (-[WebVideoFullscreenController setMediaElement:WebCore::]): Cast the contentView to a movie view.
+        (-[WebVideoFullscreenController windowDidExitFullscreen]): Remove the old workaround.
+
 2009-12-08  Dmitry Titov  <dimich at chromium.org>
 
         Rubber-stamped by David Levin.
diff --git a/WebKit/mac/WebView/WebVideoFullscreenController.mm b/WebKit/mac/WebView/WebVideoFullscreenController.mm
index 7b17cf3..946da90 100644
--- a/WebKit/mac/WebView/WebVideoFullscreenController.mm
+++ b/WebKit/mac/WebView/WebVideoFullscreenController.mm
@@ -49,11 +49,8 @@ SOFT_LINK_POINTER(QTKit, QTMovieRateDidChangeNotification, NSString *)
 {
     SEL _controllerActionOnAnimationEnd;
     WebWindowScaleAnimation *_fullscreenAnimation; // (retain)
-    QTMovieView *_movieView; // (retain)
 }
 - (void)animateFromRect:(NSRect)startRect toRect:(NSRect)endRect withSubAnimation:(NSAnimation *)subAnimation controllerAction:(SEL)controllerAction;
-- (QTMovieView *)movieView;
-- (void)setMovieView:(QTMovieView *)movieView;
 @end
 
 @interface WebVideoFullscreenController(HUDWindowControllerDelegate) <WebVideoFullscreenHUDWindowControllerDelegate>
@@ -90,7 +87,7 @@ SOFT_LINK_POINTER(QTKit, QTMovieRateDidChangeNotification, NSString *)
     WebVideoFullscreenWindow *window = [self fullscreenWindow];
     QTMovieView *view = [[getQTMovieViewClass() alloc] init];
     [view setFillColor:[NSColor clearColor]];
-    [window setMovieView:view];
+    [window setContentView:view];
     [view setControllerVisible:NO];
     [view setPreservesAspectRatio:YES];
     if (_mediaElement)
@@ -109,10 +106,10 @@ SOFT_LINK_POINTER(QTKit, QTMovieRateDidChangeNotification, NSString *)
 {
     _mediaElement = mediaElement;
     if ([self isWindowLoaded]) {
-        QTMovieView *movieView = [[self fullscreenWindow] movieView];
+        QTMovieView *movieView = (QTMovieView *)[[self fullscreenWindow] contentView];
         QTMovie *movie = _mediaElement->platformMedia().qtMovie;
 
-        ASSERT(movieView);
+        ASSERT(movieView && [movieView isKindOfClass:[getQTMovieViewClass() class]]);
         ASSERT(movie);
         [movieView setMovie:movie];
         [[NSNotificationCenter defaultCenter] addObserver:self
@@ -144,9 +141,6 @@ SOFT_LINK_POINTER(QTKit, QTMovieRateDidChangeNotification, NSString *)
 
 - (void)windowDidExitFullscreen
 {
-    // If we don't clear the movie, underlying movie data structures are leaked and the movie keeps playing <rdar://problem/7295070>
-    [[[self fullscreenWindow] movieView] setMovie:nil];
-
     [self clearFadeAnimation];
     [[self window] close];
     [self setWindow:nil];
@@ -337,20 +331,6 @@ static NSWindow *createBackgroundFullscreenWindow(NSRect frame, int level)
     [super dealloc];
 }
 
-- (QTMovieView *)movieView
-{
-    return _movieView;
-}
-
-- (void)setMovieView:(QTMovieView *)movieView
-{
-    if (_movieView == movieView)
-        return;
-    [_movieView release];
-    _movieView = [movieView retain];
-    [self setContentView:_movieView];
-}
-
 - (BOOL)resignFirstResponder
 {
     return NO;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list