summaryrefslogtreecommitdiffstats
path: root/content/browser/android/browser_media_player_manager.h
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-30 06:40:16 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-30 06:40:16 +0000
commit9d2cd33e9d1be6b1ff0a31f2b6a15e605c39ba3b (patch)
treebbab82f86944ec7ce856682f83a3bb849a8011ec /content/browser/android/browser_media_player_manager.h
parent40076a26f49d0494b2231fec5ec2ebb736fc9039 (diff)
downloadchromium_src-9d2cd33e9d1be6b1ff0a31f2b6a15e605c39ba3b.zip
chromium_src-9d2cd33e9d1be6b1ff0a31f2b6a15e605c39ba3b.tar.gz
chromium_src-9d2cd33e9d1be6b1ff0a31f2b6a15e605c39ba3b.tar.bz2
Migrate media::MediaPlayerManager::Create() to content::BrowserMediaPlayerManager.
This fixes a layering violation where content::RenderViewHost was forward declared in media code. It also lets content code use BrowserMediaPlayerManager directly without resorting to casting. BUG=263652 Review URL: https://chromiumcodereview.appspot.com/23735002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220520 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/android/browser_media_player_manager.h')
-rw-r--r--content/browser/android/browser_media_player_manager.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/content/browser/android/browser_media_player_manager.h b/content/browser/android/browser_media_player_manager.h
index 2685806..e7c227a 100644
--- a/content/browser/android/browser_media_player_manager.h
+++ b/content/browser/android/browser_media_player_manager.h
@@ -39,6 +39,13 @@ class CONTENT_EXPORT BrowserMediaPlayerManager
: public RenderViewHostObserver,
public media::MediaPlayerManager {
public:
+ // Permits embedders to provide an extended version of the class.
+ typedef BrowserMediaPlayerManager* (*Factory)(RenderViewHost*);
+ static void RegisterFactory(Factory factory);
+
+ // Returns a new instance using the registered factory if available.
+ static BrowserMediaPlayerManager* Create(RenderViewHost* rvh);
+
virtual ~BrowserMediaPlayerManager();
// RenderViewHostObserver overrides.
@@ -98,11 +105,7 @@ class CONTENT_EXPORT BrowserMediaPlayerManager
#endif
protected:
- friend MediaPlayerManager* MediaPlayerManager::Create(
- content::RenderViewHost*);
-
- // The instance of this class is supposed to be created by either Create()
- // method of MediaPlayerManager or the derived classes constructors.
+ // Clients must use Create() or subclass constructor.
explicit BrowserMediaPlayerManager(RenderViewHost* render_view_host);
// Message handlers.