[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

philn at webkit.org philn at webkit.org
Wed Dec 22 17:57:26 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit e21fbade1663f9b4a316b732c49267d16acf22fa
Author: philn at webkit.org <philn at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Dec 3 08:39:04 2010 +0000

    2010-12-02  Philippe Normand  <pnormand at igalia.com>
    
            Reviewed by Eric Carlson.
    
            Theme not updated when MediaPlayer m_private engine changes
            https://bugs.webkit.org/show_bug.cgi?id=50228
    
            Trigger a new rendering of the media element when the private
            media-player backend is updated.
    
            * html/HTMLMediaElement.cpp:
            (WebCore::HTMLMediaElement::mediaPlayerEngineUpdated):
            * html/HTMLMediaElement.h:
            * platform/graphics/MediaPlayer.cpp:
            (WebCore::MediaPlayer::MediaPlayer):
            (WebCore::MediaPlayer::load):
            * platform/graphics/MediaPlayer.h:
            (WebCore::MediaPlayerClient::mediaPlayerEngineUpdated):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73249 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index e41e6c1..096a290 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2010-12-02  Philippe Normand  <pnormand at igalia.com>
+
+        Reviewed by Eric Carlson.
+
+        Theme not updated when MediaPlayer m_private engine changes
+        https://bugs.webkit.org/show_bug.cgi?id=50228
+
+        Trigger a new rendering of the media element when the private
+        media-player backend is updated.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaPlayerEngineUpdated):
+        * html/HTMLMediaElement.h:
+        * platform/graphics/MediaPlayer.cpp:
+        (WebCore::MediaPlayer::MediaPlayer):
+        (WebCore::MediaPlayer::load):
+        * platform/graphics/MediaPlayer.h:
+        (WebCore::MediaPlayerClient::mediaPlayerEngineUpdated):
+
 2010-12-03  Yonathan Randolph  <yonathan at gmail.com>
 
         Reviewed by Alexey Proskuryakov.
diff --git a/WebCore/html/HTMLMediaElement.cpp b/WebCore/html/HTMLMediaElement.cpp
index c96bb1e..4962f8e 100644
--- a/WebCore/html/HTMLMediaElement.cpp
+++ b/WebCore/html/HTMLMediaElement.cpp
@@ -1961,6 +1961,15 @@ void HTMLMediaElement::mediaPlayerRenderingModeChanged(MediaPlayer*)
 }
 #endif
 
+void HTMLMediaElement::mediaPlayerEngineUpdated(MediaPlayer*)
+{
+    beginProcessingMediaPlayerCallback();
+    LOG(Media, "HTMLMediaElement::mediaPlayerEngineUpdated");
+    if (renderer())
+        renderer()->updateFromElement();
+    endProcessingMediaPlayerCallback();
+}
+
 PassRefPtr<TimeRanges> HTMLMediaElement::buffered() const
 {
     if (!m_player)
diff --git a/WebCore/html/HTMLMediaElement.h b/WebCore/html/HTMLMediaElement.h
index 61221b8..edaf76c 100644
--- a/WebCore/html/HTMLMediaElement.h
+++ b/WebCore/html/HTMLMediaElement.h
@@ -227,6 +227,7 @@ private:
     virtual bool mediaPlayerRenderingCanBeAccelerated(MediaPlayer*);
     virtual void mediaPlayerRenderingModeChanged(MediaPlayer*);
 #endif
+    virtual void mediaPlayerEngineUpdated(MediaPlayer*);
 
     void loadTimerFired(Timer<HTMLMediaElement>*);
     void asyncEventTimerFired(Timer<HTMLMediaElement>*);
diff --git a/WebCore/platform/graphics/MediaPlayer.cpp b/WebCore/platform/graphics/MediaPlayer.cpp
index 54b941c..235c1fd 100644
--- a/WebCore/platform/graphics/MediaPlayer.cpp
+++ b/WebCore/platform/graphics/MediaPlayer.cpp
@@ -262,6 +262,8 @@ MediaPlayer::MediaPlayer(MediaPlayerClient* client)
         m_currentMediaEngine = engines[0];
         m_private.clear();
         m_private.set(engines[0]->constructor(this));
+        if (m_mediaPlayerClient)
+            m_mediaPlayerClient->mediaPlayerEngineUpdated(this);
     }
 #endif
 }
@@ -303,6 +305,8 @@ void MediaPlayer::load(const String& url, const ContentType& contentType)
         m_currentMediaEngine = engine;
         m_private.clear();
         m_private.set(engine->constructor(this));
+        if (m_mediaPlayerClient)
+            m_mediaPlayerClient->mediaPlayerEngineUpdated(this);
 #if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
         m_private->setMediaPlayerProxy(m_playerProxy);
 #endif
@@ -312,8 +316,11 @@ void MediaPlayer::load(const String& url, const ContentType& contentType)
 
     if (m_private)
         m_private->load(url);
-    else
+    else {
         m_private.set(createNullMediaPlayer(this));
+        if (m_mediaPlayerClient)
+            m_mediaPlayerClient->mediaPlayerEngineUpdated(this);
+    }
 }    
 
 bool MediaPlayer::hasAvailableVideoFrame() const
diff --git a/WebCore/platform/graphics/MediaPlayer.h b/WebCore/platform/graphics/MediaPlayer.h
index c9c042b..a506a6e 100644
--- a/WebCore/platform/graphics/MediaPlayer.h
+++ b/WebCore/platform/graphics/MediaPlayer.h
@@ -136,6 +136,8 @@ public:
     // the movie size has changed
     virtual void mediaPlayerSizeChanged(MediaPlayer*) { }
 
+    virtual void mediaPlayerEngineUpdated(MediaPlayer*) { }
+
 #if USE(ACCELERATED_COMPOSITING)
     // whether the rendering system can accelerate the display of this MediaPlayer.
     virtual bool mediaPlayerRenderingCanBeAccelerated(MediaPlayer*) { return false; }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list