Chromium Code Reviews| Index: content/browser/browser_plugin/browser_plugin_guest.h |
| diff --git a/content/browser/browser_plugin/browser_plugin_guest.h b/content/browser/browser_plugin/browser_plugin_guest.h |
| index 3c8254fa1d3e396818ff939dda40ed133e27d069..7ac8416b985a94cd590f5ff99e7e2f80a0931fb9 100644 |
| --- a/content/browser/browser_plugin/browser_plugin_guest.h |
| +++ b/content/browser/browser_plugin/browser_plugin_guest.h |
| @@ -53,6 +53,7 @@ namespace content { |
| class BrowserPluginHostFactory; |
| class BrowserPluginEmbedder; |
| class RenderProcessHost; |
| +struct MediaStreamRequest; |
| // A browser plugin guest provides functionality for WebContents to operate in |
| // the guest role and implements guest specific overrides for ViewHostMsg_* |
| @@ -119,6 +120,10 @@ class CONTENT_EXPORT BrowserPluginGuest : public NotificationObserver, |
| const std::string& request_method) OVERRIDE; |
| virtual bool HandleContextMenu(const ContextMenuParams& params) OVERRIDE; |
| virtual void RendererUnresponsive(WebContents* source) OVERRIDE; |
| + virtual void RequestMediaAccessPermission( |
| + WebContents* web_contents, |
| + const content::MediaStreamRequest* request, |
| + const content::MediaResponseCallback& callback) OVERRIDE; |
| void UpdateRect(RenderViewHost* render_view_host, |
| const ViewHostMsg_UpdateRect_Params& params); |
| @@ -166,6 +171,11 @@ class CONTENT_EXPORT BrowserPluginGuest : public NotificationObserver, |
| // Kill the guest process. |
| void Terminate(); |
| + // Allows or denies media access request. |
|
Charlie Reis
2012/10/17 06:18:45
nit: Allows or denies a media access request, afte
lazyboy
2012/10/17 09:09:53
Done.
|
| + void AllowMediaAccess(WebContents* embedder_web_contents, |
| + int request_id, |
| + bool allow); |
|
Charlie Reis
2012/10/17 06:18:45
nit: should_allow
lazyboy
2012/10/17 09:09:53
Done.
|
| + |
| // Overridden in tests. |
| virtual bool ViewTakeFocus(bool reverse); |
| // If possible, navigate the guest to |relative_index| entries away from the |
| @@ -186,6 +196,11 @@ class CONTENT_EXPORT BrowserPluginGuest : public NotificationObserver, |
| float scale_factor); |
| private: |
| + typedef std::pair<content::MediaStreamRequest, content::MediaResponseCallback> |
| + MediaStreamRequestAndCallbackPair; |
| + typedef std::map<int, MediaStreamRequestAndCallbackPair> |
| + MediaStreamRequestsMap; |
| + |
| friend class TestBrowserPluginGuest; |
| BrowserPluginGuest(int instance_id, |
| @@ -234,6 +249,11 @@ class CONTENT_EXPORT BrowserPluginGuest : public NotificationObserver, |
| int pending_update_counter_; |
| base::TimeDelta guest_hang_timeout_; |
| bool visible_; |
| + // A map to store WebContents's media request object and callback. |
| + // We need to store these because we need a roundtrip to the embedder to know |
| + // if we allow or disallow the request. The key of the map is unique only for |
| + // a given BrowserPluginGuest. |
| + MediaStreamRequestsMap media_requests_map_; |
| DISALLOW_COPY_AND_ASSIGN(BrowserPluginGuest); |
| }; |