Title: [143945] trunk/Source/WebCore
Revision
143945
Author
jer.no...@apple.com
Date
2013-02-25 10:24:05 -0800 (Mon, 25 Feb 2013)

Log Message

AVFoundation.framework and QTKit.framework are lazy-loaded on every WebProcess launch
https://bugs.webkit.org/show_bug.cgi?id=110725

Reviewed by Eric Carlson.

When settings are changed, do not re-query the media engines (which causes their respective
frameworks to load). Instead, merely clear any previously loaded media engines so that
the media engine list will be re-queried the next time installedMediaEngines() is called.

(WebCore::MediaPlayer::resetMediaEngines): Renamed from requeryMediaEngines.
* platform/graphics/MediaPlayer.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::resetMediaEngines): Ditto.
* html/HTMLMediaElement.h:
* page/Settings.cpp:
(WebCore::Settings::setAVFoundationEnabled): Call renamed method.
(WebCore::Settings::setQTKitEnabled):  Ditto.
* platform/graphics/MediaPlayer.cpp:
(WebCore::installedMediaEngines): Only clear out previously queried engines.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (143944 => 143945)


--- trunk/Source/WebCore/ChangeLog	2013-02-25 18:21:54 UTC (rev 143944)
+++ trunk/Source/WebCore/ChangeLog	2013-02-25 18:24:05 UTC (rev 143945)
@@ -1,3 +1,25 @@
+2013-02-25  Jer Noble  <jer.no...@apple.com>
+
+        AVFoundation.framework and QTKit.framework are lazy-loaded on every WebProcess launch
+        https://bugs.webkit.org/show_bug.cgi?id=110725
+
+        Reviewed by Eric Carlson.
+
+        When settings are changed, do not re-query the media engines (which causes their respective
+        frameworks to load). Instead, merely clear any previously loaded media engines so that
+        the media engine list will be re-queried the next time installedMediaEngines() is called.
+
+        (WebCore::MediaPlayer::resetMediaEngines): Renamed from requeryMediaEngines.
+        * platform/graphics/MediaPlayer.h:
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::resetMediaEngines): Ditto.
+        * html/HTMLMediaElement.h:
+        * page/Settings.cpp:
+        (WebCore::Settings::setAVFoundationEnabled): Call renamed method.
+        (WebCore::Settings::setQTKitEnabled):  Ditto.
+        * platform/graphics/MediaPlayer.cpp:
+        (WebCore::installedMediaEngines): Only clear out previously queried engines.
+
 2013-02-25  Martin Robinson  <mrobin...@igalia.com>
 
         Try to fix the Windows gyp build after r143937

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (143944 => 143945)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2013-02-25 18:21:54 UTC (rev 143944)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2013-02-25 18:24:05 UTC (rev 143945)
@@ -4316,9 +4316,9 @@
     MediaPlayer::clearMediaCacheForSite(site);
 }
 
-void HTMLMediaElement::requeryMediaEngines()
+void HTMLMediaElement::resetMediaEngines()
 {
-    MediaPlayer::requeryMediaEngines();
+    MediaPlayer::resetMediaEngines();
 }
 
 void HTMLMediaElement::privateBrowsingStateDidChange()

Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (143944 => 143945)


--- trunk/Source/WebCore/html/HTMLMediaElement.h	2013-02-25 18:21:54 UTC (rev 143944)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h	2013-02-25 18:24:05 UTC (rev 143945)
@@ -316,7 +316,7 @@
     static void getSitesInMediaCache(Vector<String>&);
     static void clearMediaCache();
     static void clearMediaCacheForSite(const String&);
-    static void requeryMediaEngines();
+    static void resetMediaEngines();
 
     bool isPlaying() const { return m_playing; }
 

Modified: trunk/Source/WebCore/page/Settings.cpp (143944 => 143945)


--- trunk/Source/WebCore/page/Settings.cpp	2013-02-25 18:21:54 UTC (rev 143944)
+++ trunk/Source/WebCore/page/Settings.cpp	2013-02-25 18:24:05 UTC (rev 143945)
@@ -542,7 +542,7 @@
         return;
 
     gAVFoundationEnabled = enabled;
-    HTMLMediaElement::requeryMediaEngines();
+    HTMLMediaElement::resetMediaEngines();
 }
 #endif
 
@@ -553,7 +553,7 @@
         return;
 
     gQTKitEnabled = enabled;
-    HTMLMediaElement::requeryMediaEngines();
+    HTMLMediaElement::resetMediaEngines();
 }
 #endif
 

Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp (143944 => 143945)


--- trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp	2013-02-25 18:21:54 UTC (rev 143944)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp	2013-02-25 18:24:05 UTC (rev 143945)
@@ -200,15 +200,16 @@
 static MediaPlayerFactory* bestMediaEngineForTypeAndCodecs(const String& type, const String& codecs, const String& keySystem, const KURL&, MediaPlayerFactory* current = 0);
 static MediaPlayerFactory* nextMediaEngine(MediaPlayerFactory* current);
 
-enum RequeryEngineOptions { DoNotRequeryEngines, RequeryEngines };
-static Vector<MediaPlayerFactory*>& installedMediaEngines(RequeryEngineOptions requeryFlags = DoNotRequeryEngines )
+enum RequeryEngineOptions { DoNotResetEngines, ResetEngines };
+static Vector<MediaPlayerFactory*>& installedMediaEngines(RequeryEngineOptions requeryFlags = DoNotResetEngines )
 {
     DEFINE_STATIC_LOCAL(Vector<MediaPlayerFactory*>, installedEngines, ());
     static bool enginesQueried = false;
 
-    if (requeryFlags == RequeryEngines) {
+    if (requeryFlags == ResetEngines) {
         installedEngines.clear();
         enginesQueried = false;
+        return installedEngines;
     }
 
     if (!enginesQueried) {
@@ -1121,9 +1122,9 @@
 }
 #endif
 
-void MediaPlayer::requeryMediaEngines()
+void MediaPlayer::resetMediaEngines()
 {
-    installedMediaEngines(RequeryEngines);
+    installedMediaEngines(ResetEngines);
 }
 
 }

Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.h (143944 => 143945)


--- trunk/Source/WebCore/platform/graphics/MediaPlayer.h	2013-02-25 18:21:54 UTC (rev 143944)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.h	2013-02-25 18:24:05 UTC (rev 143945)
@@ -435,7 +435,7 @@
     void setTextTrackRepresentation(TextTrackRepresentation*);
 #endif
 
-    static void requeryMediaEngines();
+    static void resetMediaEngines();
 
 private:
     MediaPlayer(MediaPlayerClient*);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to