Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: content/renderer/browser_plugin/browser_plugin.h

Issue 11093080: <webview>: First stab at implementing media permission request for guests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Implement first allow/deny wins, still requires preventDefault impl + now tests pass. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/browser_plugin/browser_plugin.h
diff --git a/content/renderer/browser_plugin/browser_plugin.h b/content/renderer/browser_plugin/browser_plugin.h
index 571804f1cee724e54b728a7380aea0b3a07dbf3f..836871517bc7596fce2c35469c0207b29ee74897 100644
--- a/content/renderer/browser_plugin/browser_plugin.h
+++ b/content/renderer/browser_plugin/browser_plugin.h
@@ -121,6 +121,9 @@ class CONTENT_EXPORT BrowserPlugin :
bool InBounds(const gfx::Point& point) const;
gfx::Point ToLocalCoordinates(const gfx::Point& point) const;
+ // Called by browser plugin binding.
+ void OnListenerCallMediaAccess(int request_id, bool allow);
+
// WebKit::WebPlugin implementation.
virtual WebKit::WebPluginContainer* container() const OVERRIDE;
@@ -238,6 +241,8 @@ class CONTENT_EXPORT BrowserPlugin :
// Informs the BrowserPlugin that guest has changed its size in autosize mode.
void SizeChangedDueToAutoSize(const gfx::Size& old_view_size);
+ bool HasEventListeners(const std::string& event_name);
+
// Indicates whether a damage buffer was used by the guest process for the
// provided |params|.
static bool UsesDamageBuffer(
@@ -282,6 +287,14 @@ class CONTENT_EXPORT BrowserPlugin :
void OnUpdatedName(int instance_id, const std::string& name);
void OnUpdateRect(int instance_id,
const BrowserPluginMsg_UpdateRect_Params& params);
+ // Requests media access permission from the embedder.
+ void OnRequestMediaAccess(int instance_id,
+ int request_id,
+ const GURL& security_origin);
+ // Informs the BrowserPlugin that the guest's request for media access has
+ // been allowed or denied by the embedder.
+ void RespondMediaAccess(int request_id, bool allow);
+
int instance_id_;
base::WeakPtr<RenderViewImpl> render_view_;
@@ -320,6 +333,8 @@ class CONTENT_EXPORT BrowserPlugin :
gfx::Size last_view_size_;
bool size_changed_in_flight_;
bool allocate_instance_id_sent_;
+ typedef std::set<int> MediaAccessPendingRequestIds;
+ MediaAccessPendingRequestIds media_access_pending_request_ids_;
// BrowserPlugin outlives RenderViewImpl in Chrome Apps and so we need to
// store the BrowserPlugin's BrowserPluginManager in a member variable to

Powered by Google App Engine
This is Rietveld 408576698