Chromium Code Reviews| Index: content/browser/renderer_host/media/media_stream_manager.h |
| diff --git a/content/browser/renderer_host/media/media_stream_manager.h b/content/browser/renderer_host/media/media_stream_manager.h |
| index 4349a7046fefe5d176a0d2d11dd91d355e8700a6..2e8468f18f110d962c74a78c5c0ae5f022c110ad 100644 |
| --- a/content/browser/renderer_host/media/media_stream_manager.h |
| +++ b/content/browser/renderer_host/media/media_stream_manager.h |
| @@ -141,9 +141,6 @@ class CONTENT_EXPORT MediaStreamManager |
| int capture_session_id) OVERRIDE; |
| virtual void DevicesEnumerated(MediaStreamType stream_type, |
| const StreamDeviceInfoArray& devices) OVERRIDE; |
| - virtual void Error(MediaStreamType stream_type, |
| - int capture_session_id, |
| - MediaStreamProviderError error) OVERRIDE; |
| // Implements base::SystemMonitor::DevicesChangedObserver. |
| virtual void OnDevicesChanged( |
| @@ -158,21 +155,20 @@ class CONTENT_EXPORT MediaStreamManager |
| // generated stream (or when using --use-fake-ui-for-media-stream). |
| void UseFakeUI(scoped_ptr<FakeMediaStreamUIProxy> fake_ui); |
| - // This object gets deleted on the UI thread after the IO thread has been |
| - // destroyed. So we need to know when IO thread is being destroyed so that |
| - // we can delete VideoCaptureManager and AudioInputDeviceManager. |
| - // We also must call this function explicitly in tests which use |
| - // TestBrowserThreadBundle, because the notification happens too late in that |
| - // case (see http://crbug.com/247525#c14). |
| - virtual void WillDestroyCurrentMessageLoop() OVERRIDE; |
| + // Used by test to find a StreamDeviceInfo that currently has been |
| + // requested and match the input arguments. If such a StreamDeviceInfo is |
| + // found it is copied to |device_info|. |
| + bool FindRequestedDeviceInfo(const std::string& source_id, |
|
Jói
2013/10/28 11:48:17
If this is never intended to be used by production
tommi (sloooow) - chröme
2013/10/28 13:48:23
ping
perkj_chrome
2013/10/29 08:52:17
Done.
perkj_chrome
2013/10/29 08:52:17
Done.
|
| + int render_process_id, |
| + int render_view_id, |
| + MediaStreamRequestType type, |
| + StreamDeviceInfo* device_info); |
| protected: |
| // Used for testing. |
| MediaStreamManager(); |
| private: |
| - friend class MockMediaStreamDispatcherHost; |
| - |
| // Contains all data needed to keep track of requests. |
| class DeviceRequest; |
| @@ -187,6 +183,11 @@ class CONTENT_EXPORT MediaStreamManager |
| typedef std::map<std::string, DeviceRequest*> DeviceRequests; |
| + // This object gets deleted on the UI thread after the IO thread has been |
| + // destroyed. So we need to know when IO thread is being destroyed so that |
|
tommi (sloooow) - chröme
2013/10/28 13:48:23
nit: "when the IO thread"
perkj_chrome
2013/10/29 08:52:17
Done.
|
| + // we can delete VideoCaptureManager and AudioInputDeviceManager. |
| + virtual void WillDestroyCurrentMessageLoop() OVERRIDE; |
| + |
| // Initializes the device managers on IO thread. Auto-starts the device |
| // thread and registers this as a listener with the device managers. |
| void InitializeDeviceManagersOnIOThread(); |
| @@ -196,16 +197,23 @@ class CONTENT_EXPORT MediaStreamManager |
| void NotifyDevicesChanged(MediaStreamType stream_type, |
| const StreamDeviceInfoArray& devices); |
| - |
| void HandleAccessRequestResponse(const std::string& label, |
| const MediaStreamDevices& devices); |
| void StopStreamFromUI(const std::string& label); |
| + void DoCancelRequest(const std::string& label); |
| + |
| + void DoStopStreamDevice(int render_process_id, |
| + int render_view_id, |
| + const std::string& device_id); |
| + |
| + void DoEnumerateDevices(const std::string& label); |
| + |
| // Helpers. |
| // Checks if all devices that was requested in the request identififed by |
| // |label| has been opened and set the request state accordingly. |
| void HandleRequestDone(const std::string& label, |
| - DeviceRequest* request); |
| + DeviceRequest* request); |
| void StopDevice(const StreamDeviceInfo& device_info); |
| // Returns true if a request for devices has been completed and the devices |
| // has either been opened or an error has occurred. |
| @@ -213,36 +221,47 @@ class CONTENT_EXPORT MediaStreamManager |
| MediaStreamProvider* GetDeviceManager(MediaStreamType stream_type); |
| void StartEnumeration(DeviceRequest* request); |
| std::string AddRequest(DeviceRequest* request); |
| - void RemoveRequest(DeviceRequests::iterator it); |
| + void DeleteRequest(DeviceRequests::iterator it); |
| void ClearEnumerationCache(EnumerationCache* cache); |
| void PostRequestToUI(const std::string& label); |
| void HandleRequest(const std::string& label); |
| + bool SetupTabCaptureRequest(DeviceRequest* request); |
| + bool SetupScreenCaptureRequest(DeviceRequest* request); |
| // Returns true if a device with |device_id| has already been requested by |
| // |render_process_id| and |render_view_id| of type |type|. If it has been |
| - // requested, |device_info| contain information about the the device. |
| + // requested, |device_info| contain information about the device. |
| bool FindExistingRequestedDeviceInfo(int render_process_id, |
| int render_view_id, |
| + GURL security_origin, |
|
tommi (sloooow) - chröme
2013/10/28 13:48:23
const GURL&
perkj_chrome
2013/10/29 08:52:17
Done.
|
| MediaStreamRequestType type, |
| const std::string& device_id, |
| + MediaStreamType device_type, |
| StreamDeviceInfo* device_info, |
| MediaRequestState* request_state) const; |
| - // Sends cached device list to a client corresponding to the request |
| - // identified by |label|. |
| - void SendCachedDeviceList(EnumerationCache* cache, const std::string& label); |
| + void FinalizeGenerateStream(const std::string& label, |
| + DeviceRequest* request); |
| + void FinalizeRequestFailed(const std::string& label); |
| + void FinalizeOpenDevice(const std::string& label, |
| + DeviceRequest* request); |
| + void FinalizeMediaAccessRequest(const std::string& label, |
| + const MediaStreamDevices& devices); |
| + void FinalizeEnumerateDevices(const std::string& label, |
| + DeviceRequest* request); |
| // Helpers to start and stop monitoring devices. |
| void StartMonitoring(); |
| void StopMonitoring(); |
| - // Finds and returns the raw device id corresponding to the given |
| - // |device_guid|. Returns true if there was a raw device id that matched the |
| - // given |device_guid|, false if nothing matched it. |
| - bool TranslateGUIDToRawId( |
| + bool TransLateRequestedSourceIdToDeviceId(MediaStreamRequest* request); |
| + // Finds and returns the device id corresponding to the given |
| + // |source_id|. Returns true if there was a raw device id that matched the |
| + // given |source_id|, false if nothing matched it. |
| + bool TranslateSourceIdToDeviceId( |
| MediaStreamType stream_type, |
| const GURL& security_origin, |
| - const std::string& device_guid, |
| - std::string* raw_device_id); |
| + const std::string& source_id, |
| + std::string* device_id); |
| // Device thread shared by VideoCaptureManager and AudioInputDeviceManager. |
| scoped_ptr<base::Thread> device_thread_; |