summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/MediaPlayer.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-05-24 11:24:40 +0100
committerBen Murdoch <benm@google.com>2011-06-02 09:53:15 +0100
commit81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch)
tree7a9e5ed86ff429fd347a25153107221543909b19 /Source/WebCore/platform/graphics/MediaPlayer.cpp
parent94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff)
downloadexternal_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.zip
external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.gz
external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.bz2
Merge WebKit at r80534: Intial merge by Git
Change-Id: Ia7a83357124c9e1cdb1debf55d9661ec0bd09a61
Diffstat (limited to 'Source/WebCore/platform/graphics/MediaPlayer.cpp')
-rw-r--r--Source/WebCore/platform/graphics/MediaPlayer.cpp78
1 files changed, 64 insertions, 14 deletions
diff --git a/Source/WebCore/platform/graphics/MediaPlayer.cpp b/Source/WebCore/platform/graphics/MediaPlayer.cpp
index 8eed0d2..70576a5 100644
--- a/Source/WebCore/platform/graphics/MediaPlayer.cpp
+++ b/Source/WebCore/platform/graphics/MediaPlayer.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -153,19 +153,27 @@ static MediaPlayerPrivateInterface* createNullMediaPlayer(MediaPlayer* player)
struct MediaPlayerFactory {
WTF_MAKE_NONCOPYABLE(MediaPlayerFactory); WTF_MAKE_FAST_ALLOCATED;
public:
- MediaPlayerFactory(CreateMediaEnginePlayer constructor, MediaEngineSupportedTypes getSupportedTypes, MediaEngineSupportsType supportsTypeAndCodecs)
+ MediaPlayerFactory(CreateMediaEnginePlayer constructor, MediaEngineSupportedTypes getSupportedTypes, MediaEngineSupportsType supportsTypeAndCodecs,
+ MediaEngineGetSitesInMediaCache getSitesInMediaCache, MediaEngineClearMediaCache clearMediaCache, MediaEngineClearMediaCacheForSite clearMediaCacheForSite)
: constructor(constructor)
, getSupportedTypes(getSupportedTypes)
- , supportsTypeAndCodecs(supportsTypeAndCodecs)
+ , supportsTypeAndCodecs(supportsTypeAndCodecs)
+ , getSitesInMediaCache(getSitesInMediaCache)
+ , clearMediaCache(clearMediaCache)
+ , clearMediaCacheForSite(clearMediaCacheForSite)
+
{
}
CreateMediaEnginePlayer constructor;
MediaEngineSupportedTypes getSupportedTypes;
MediaEngineSupportsType supportsTypeAndCodecs;
+ MediaEngineGetSitesInMediaCache getSitesInMediaCache;
+ MediaEngineClearMediaCache clearMediaCache;
+ MediaEngineClearMediaCacheForSite clearMediaCacheForSite;
};
-static void addMediaEngine(CreateMediaEnginePlayer, MediaEngineSupportedTypes, MediaEngineSupportsType);
+static void addMediaEngine(CreateMediaEnginePlayer, MediaEngineSupportedTypes, MediaEngineSupportsType, MediaEngineGetSitesInMediaCache, MediaEngineClearMediaCache, MediaEngineClearMediaCacheForSite);
static MediaPlayerFactory* bestMediaEngineForTypeAndCodecs(const String& type, const String& codecs, MediaPlayerFactory* current = 0);
static MediaPlayerFactory* nextMediaEngine(MediaPlayerFactory* current);
@@ -189,12 +197,14 @@ static Vector<MediaPlayerFactory*>& installedMediaEngines()
return installedEngines;
}
-static void addMediaEngine(CreateMediaEnginePlayer constructor, MediaEngineSupportedTypes getSupportedTypes, MediaEngineSupportsType supportsType)
+static void addMediaEngine(CreateMediaEnginePlayer constructor, MediaEngineSupportedTypes getSupportedTypes, MediaEngineSupportsType supportsType,
+ MediaEngineGetSitesInMediaCache getSitesInMediaCache, MediaEngineClearMediaCache clearMediaCache, MediaEngineClearMediaCacheForSite clearMediaCacheForSite)
{
ASSERT(constructor);
ASSERT(getSupportedTypes);
ASSERT(supportsType);
- installedMediaEngines().append(new MediaPlayerFactory(constructor, getSupportedTypes, supportsType));
+
+ installedMediaEngines().append(new MediaPlayerFactory(constructor, getSupportedTypes, supportsType, getSitesInMediaCache, clearMediaCache, clearMediaCacheForSite));
}
static const AtomicString& applicationOctetStream()
@@ -281,6 +291,7 @@ MediaPlayer::MediaPlayer(MediaPlayerClient* client)
, m_volume(1.0f)
, m_muted(false)
, m_preservesPitch(true)
+ , m_privateBrowsing(false)
#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
, m_playerProxy(0)
#endif
@@ -354,6 +365,7 @@ void MediaPlayer::loadWithNextMediaEngine(MediaPlayerFactory* current)
#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
m_private->setMediaPlayerProxy(m_playerProxy);
#endif
+ m_private->setPrivateBrowsingMode(m_privateBrowsing);
m_private->setPreload(m_preload);
m_private->setPreservesPitch(preservesPitch());
}
@@ -698,24 +710,24 @@ double MediaPlayer::maximumDurationToCacheMediaTime() const
return m_private->maximumDurationToCacheMediaTime();
}
-unsigned long MediaPlayer::decodedFrames() const
+unsigned MediaPlayer::decodedFrameCount() const
{
- return m_private->decodedFrames();
+ return m_private->decodedFrameCount();
}
-unsigned long MediaPlayer::droppedFrames() const
+unsigned MediaPlayer::droppedFrameCount() const
{
- return m_private->droppedFrames();
+ return m_private->droppedFrameCount();
}
-unsigned long MediaPlayer::audioBytesDecoded() const
+unsigned MediaPlayer::audioDecodedByteCount() const
{
- return m_private->audioBytesDecoded();
+ return m_private->audioDecodedByteCount();
}
-unsigned long MediaPlayer::videoBytesDecoded() const
+unsigned MediaPlayer::videoDecodedByteCount() const
{
- return m_private->videoBytesDecoded();
+ return m_private->videoDecodedByteCount();
}
void MediaPlayer::reloadTimerFired(Timer<MediaPlayer>*)
@@ -724,6 +736,44 @@ void MediaPlayer::reloadTimerFired(Timer<MediaPlayer>*)
loadWithNextMediaEngine(m_currentMediaEngine);
}
+void MediaPlayer::getSitesInMediaCache(Vector<String>& sites)
+{
+ Vector<MediaPlayerFactory*>& engines = installedMediaEngines();
+ unsigned size = engines.size();
+ for (unsigned i = 0; i < size; i++) {
+ if (!engines[i]->getSitesInMediaCache)
+ continue;
+ Vector<String> engineSites;
+ engines[i]->getSitesInMediaCache(engineSites);
+ sites.append(engineSites);
+ }
+}
+
+void MediaPlayer::clearMediaCache()
+{
+ Vector<MediaPlayerFactory*>& engines = installedMediaEngines();
+ unsigned size = engines.size();
+ for (unsigned i = 0; i < size; i++) {
+ if (engines[i]->clearMediaCache)
+ engines[i]->clearMediaCache();
+ }
+}
+
+void MediaPlayer::clearMediaCacheForSite(const String& site)
+{
+ Vector<MediaPlayerFactory*>& engines = installedMediaEngines();
+ unsigned size = engines.size();
+ for (unsigned i = 0; i < size; i++) {
+ if (engines[i]->clearMediaCacheForSite)
+ engines[i]->clearMediaCacheForSite(site);
+ }
+}
+
+void MediaPlayer::setPrivateBrowsingMode(bool privateBrowsingMode)
+{
+ m_privateBrowsing = privateBrowsingMode;
+ m_private->setPrivateBrowsingMode(m_privateBrowsing);
+}
// Client callbacks.
void MediaPlayer::networkStateChanged()