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

Side by Side 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: It's random enough. + REBASE 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_MEDIA_DESKTOP_STREAMS_REGISTRY_H_ 5 #ifndef CHROME_BROWSER_MEDIA_DESKTOP_STREAMS_REGISTRY_H_
6 #define CHROME_BROWSER_MEDIA_DESKTOP_STREAMS_REGISTRY_H_ 6 #define CHROME_BROWSER_MEDIA_DESKTOP_STREAMS_REGISTRY_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
11 #include "chrome/browser/media/desktop_media_list.h" 11 #include "chrome/browser/media/desktop_media_list.h"
12 #include "url/gurl.h" 12 #include "url/gurl.h"
13 13
14 // DesktopStreamsRegistry is used to store accepted desktop media streams for 14 // DesktopStreamsRegistry is used to store accepted desktop media streams for
15 // Desktop Capture API. Single instance of this class is created per browser in 15 // Desktop Capture API. Single instance of this class is created per browser in
16 // MediaCaptureDevicesDispatcher. 16 // MediaCaptureDevicesDispatcher.
17 class DesktopStreamsRegistry { 17 class DesktopStreamsRegistry {
18 public: 18 public:
19 DesktopStreamsRegistry(); 19 DesktopStreamsRegistry();
20 ~DesktopStreamsRegistry(); 20 ~DesktopStreamsRegistry();
21 21
22 // Adds new stream to the registry. Called by the implementation of 22 // Adds new stream to the registry. Called by the implementation of
23 // desktopCapture.chooseDesktopMedia() API after user has approved access to 23 // desktopCapture.chooseDesktopMedia() API after user has approved access to
24 // |source| for the |origin|. Returns identifier of the new stream. 24 // |source| for the |origin|. Returns identifier of the new stream.
25 // |render_frame_id| refers to the RenderFrame requesting the stream.
25 std::string RegisterStream(int render_process_id, 26 std::string RegisterStream(int render_process_id,
26 int render_view_id, 27 int render_frame_id,
27 const GURL& origin, 28 const GURL& origin,
28 const content::DesktopMediaID& source, 29 const content::DesktopMediaID& source,
29 const std::string& extension_name); 30 const std::string& extension_name);
30 31
31 // Validates stream identifier specified in getUserMedia(). Returns null 32 // Validates stream identifier specified in getUserMedia(). Returns null
32 // DesktopMediaID if the specified |id| is invalid, i.e. wasn't generated 33 // DesktopMediaID if the specified |id| is invalid, i.e. wasn't generated
33 // using RegisterStream() or if it was generated for a different origin. 34 // using RegisterStream() or if it was generated for a different
34 // Otherwise returns ID of the source and removes it from the registry. 35 // RenderFrame/origin. Otherwise returns ID of the source and removes it from
36 // the registry.
35 content::DesktopMediaID RequestMediaForStreamId(const std::string& id, 37 content::DesktopMediaID RequestMediaForStreamId(const std::string& id,
36 int render_process_id, 38 int render_process_id,
37 int render_view_id, 39 int render_frame_id,
38 const GURL& origin, 40 const GURL& origin,
39 std::string* extension_name); 41 std::string* extension_name);
40 42
41 private: 43 private:
42 // Type used to store list of accepted desktop media streams. 44 // Type used to store list of accepted desktop media streams.
43 struct ApprovedDesktopMediaStream { 45 struct ApprovedDesktopMediaStream {
44 ApprovedDesktopMediaStream(); 46 ApprovedDesktopMediaStream();
45 47
46 int render_process_id; 48 int render_process_id;
47 int render_view_id; 49 int render_frame_id;
48 GURL origin; 50 GURL origin;
49 content::DesktopMediaID source; 51 content::DesktopMediaID source;
50 std::string extension_name; 52 std::string extension_name;
51 }; 53 };
52 typedef std::map<std::string, ApprovedDesktopMediaStream> StreamsMap; 54 typedef std::map<std::string, ApprovedDesktopMediaStream> StreamsMap;
53 55
54 // Helper function that removes an expired stream from the registry. 56 // Helper function that removes an expired stream from the registry.
55 void CleanupStream(const std::string& id); 57 void CleanupStream(const std::string& id);
56 58
57 StreamsMap approved_streams_; 59 StreamsMap approved_streams_;
58 60
59 DISALLOW_COPY_AND_ASSIGN(DesktopStreamsRegistry); 61 DISALLOW_COPY_AND_ASSIGN(DesktopStreamsRegistry);
60 }; 62 };
61 63
62 #endif // CHROME_BROWSER_MEDIA_DESKTOP_STREAMS_REGISTRY_H_ 64 #endif // CHROME_BROWSER_MEDIA_DESKTOP_STREAMS_REGISTRY_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc ('k') | chrome/browser/media/desktop_streams_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698