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

Unified Diff: chrome/browser/media/desktop_streams_registry.h

Issue 364123002: [Cross-Site Isolation] Migrate entire MediaStream verticals to be per-RenderFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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: chrome/browser/media/desktop_streams_registry.h
diff --git a/chrome/browser/media/desktop_streams_registry.h b/chrome/browser/media/desktop_streams_registry.h
index 90fb3651722c442879baaf395f7d9ae01c49ad60..f0ea6ace917f76ae7f5fef5e792fa4ea718ea355 100644
--- a/chrome/browser/media/desktop_streams_registry.h
+++ b/chrome/browser/media/desktop_streams_registry.h
@@ -11,6 +11,10 @@
#include "chrome/browser/media/desktop_media_list.h"
#include "url/gurl.h"
+namespace content {
+class WebContents;
+}
+
// DesktopStreamsRegistry is used to store accepted desktop media streams for
// Desktop Capture API. Single instance of this class is created per browser in
// MediaCaptureDevicesDispatcher.
@@ -22,29 +26,31 @@ class DesktopStreamsRegistry {
// Adds new stream to the registry. Called by the implementation of
// desktopCapture.chooseDesktopMedia() API after user has approved access to
// |source| for the |origin|. Returns identifier of the new stream.
- std::string RegisterStream(int render_process_id,
- int render_view_id,
+ // Note: |web_contents| refers to the WebContents requesting the stream. The
+ // |web_contents| pointer is only used for verification, and will never be
+ // dereferenced.
+ std::string RegisterStream(const content::WebContents* web_contents,
ncarter (slow) 2014/07/10 01:17:51 My expectation of which types to use where goes so
const GURL& origin,
const content::DesktopMediaID& source,
const std::string& extension_name);
// Validates stream identifier specified in getUserMedia(). Returns null
// DesktopMediaID if the specified |id| is invalid, i.e. wasn't generated
- // using RegisterStream() or if it was generated for a different origin.
- // Otherwise returns ID of the source and removes it from the registry.
- content::DesktopMediaID RequestMediaForStreamId(const std::string& id,
- int render_process_id,
- int render_view_id,
- const GURL& origin,
- std::string* extension_name);
+ // using RegisterStream() or if it was generated for a different
+ // web_contents/origin. Otherwise returns ID of the source and removes it from
+ // the registry.
+ content::DesktopMediaID RequestMediaForStreamId(
+ const std::string& id,
+ const content::WebContents* web_contents,
+ const GURL& origin,
+ std::string* extension_name);
private:
// Type used to store list of accepted desktop media streams.
struct ApprovedDesktopMediaStream {
ApprovedDesktopMediaStream();
- int render_process_id;
- int render_view_id;
+ const content::WebContents* web_contents; // Never dereference this!
ncarter (slow) 2014/07/10 01:17:51 Because of the possibility of address reuse, point
miu 2014/07/10 22:16:12 Good insight. Fixed.
GURL origin;
content::DesktopMediaID source;
std::string extension_name;

Powered by Google App Engine
This is Rietveld 408576698