summaryrefslogtreecommitdiffstats
path: root/content/public/common/media_stream_request.h
Commit message (Collapse)AuthorAgeFilesLines
* TODO(sergeyu): Replace with MEDIA_DESKTOP_AUDIO_CAPTURE.anujk.sharma2014-11-141-3/+1
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/649543002 Cr-Commit-Position: refs/heads/master@{#304173}
* VideoCaptureManager: registering UMA no-frames-produced-by-source as ↵mcasas2014-10-151-2/+0
| | | | | | | | | | | | | | | | Media.VideoCapture.Event This is a tentative CL to consolidate the counting of video capture sources that produce no frames (muted). ATM these are wrongly counted, and IMHO they are more relevant when compared to the amount of capture sessions that went right and/or failed to start. BUG=422822 Review URL: https://codereview.chromium.org/653493003 Cr-Commit-Position: refs/heads/master@{#299689}
* Add new media request result MEDIA_DEVICE_FAILED_DUE_TO_SHUTDOWN.grunell2014-09-251-0/+1
| | | | | | | | | | | Use it at appropriate places. Also add corresponding UMA histogram value. BUG=416233 Review URL: https://codereview.chromium.org/586223002 Cr-Commit-Position: refs/heads/master@{#296809}
* Stricter default RequestMediaAccessPermission and CheckMediaAccessPermission ↵grunell2014-09-251-1/+1
| | | | | | | | | | | | | | | | implementations. We should not end up in the default implementation and want to track if this happens. * Add new media stream result, "not supported". * Add an error log in RenderFrameHostDelegate and WebContentsDelegate default implementations of the above functions and in Request... also use the new result. BUG=416233 NOTRY=true Review URL: https://codereview.chromium.org/584383002 Cr-Commit-Position: refs/heads/master@{#296779}
* Fix enum used in UMA histogram WebRTC.UserMediaRequest.Resultandresp@chromium.org2014-08-151-10/+12
| | | | | | | | | BUG=399835 Review URL: https://codereview.chromium.org/464263002 Cr-Commit-Position: refs/heads/master@{#289846} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289846 0039d316-1c4b-4281-b951-d872f2087c98
* The old implementation didn't distinguish 'ConstraintNotSatisfiedError' in ↵jiajia.qin@intel.com2014-08-121-0/+1
| | | | | | | | | | | | | | | content side. It uses TrackStartError to summarize all the track error. This is inconsistent with the spec. In this Cl, I add the name of the constraint which cause the ConstraintNotSatisfiedError R=tommi@chromium.org, yzshen@chromium.org, creis@chromium.org, miu@chromium.org BUG=397057 Review URL: https://codereview.chromium.org/391703002 Cr-Commit-Position: refs/heads/master@{#288921} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288921 0039d316-1c4b-4281-b951-d872f2087c98
* [Cross-Site Isolation] Migrate entire MediaStream verticals to be ↵miu@chromium.org2014-07-171-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | per-RenderFrame. Much of this change is search-and-replace RenderView-->RenderFrame and render_view_id-->render_frame_id. However, the following significant changes have also been made, mainly to simplify/clarify/clean-up the same LOC that would have had to be changed anyway: 1. Desktop and Tab capture APIs now "register" a WebContents instance, rather than a RenderViewHost. This is a more-appropriate choice than registering a RenderFrameHost, and simplifies a lot of code. 2. Removed unnecessary "prepending" and "stripping" of the first part of the tab capture device ID in special circumstances. It is no longer necessary. 3. TabCaptureRegistry uses WebContentsObserver to detect all fullscreen changes, rather than the deprecated NotificationObserver scheme. 4. Fixes for buggy MediaStreamImpl tear-down: MediaStreamDispatcher is now explicitly owned by MediaStreamImpl, to ensure it is destroyed only after it is no longer needed. Also, weak pointers to MediaStreamImpl are invalidated before MSI data members are destroyed (it was observed during testing that outstanding callbacks were firing *after* the data members were destroyed). Testing: 1. All relevant content_unittests and browser_tests run. 2. Manually engaged tab capture and desktop capture using Google Cast extension and "Desktop Capture Example" (https://developer.chrome.com/extensions/samples) to test screen picker UI. 3. Ran WebRTC demo: http://apprtc.appspot.com 4. Confirmed Flash webcam and microphone input. 5. Checked tab capture/recording/audio indicators. 6. Confirmed HTML5 and Flash fullscreen-within-tab functionality during tab capture. BUG=304341,323223,320200,163100,338445 TEST=See "Testing" above. TBR=kenrb@chromium.org Review URL: https://codereview.chromium.org/364123002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283702 0039d316-1c4b-4281-b951-d872f2087c98
* Support for audio output devices for getMediaDevices.grunell@chromium.org2014-06-041-2/+7
| | | | | | | | | | | | * This CL depends on https://codereview.chromium.org/287383002/ * There's no caching or monitoring in this CL. * Browser test will be done in follow-up CL. (That's pending blink interface landing.) BUG=338511 Review URL: https://codereview.chromium.org/312773002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274823 0039d316-1c4b-4281-b951-d872f2087c98
* Per navigation sticky media permissions.tommi@chromium.org2014-05-051-2/+11
| | | | | | | | | | | This fixes an issue with getUserMedia where users have to repeatedly allow getUserMedia requests made by the same page. The approach is to cache granted media access flags with the navigation entry. The access is not granted to other instances of the same page and is not persisted. BUG=269719,263333 Review URL: https://codereview.chromium.org/262763004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268187 0039d316-1c4b-4281-b951-d872f2087c98
* [Media] Add user gesture reporting for API calls to midi and media streams.gbillock@chromium.org2014-03-281-0/+4
| | | | | | | | BUG=332115 Review URL: https://codereview.chromium.org/185863003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260257 0039d316-1c4b-4281-b951-d872f2087c98
* Creates a way to pass the desktop capture notification window ID/handle to ↵jiayl@chromium.org2014-03-271-2/+4
| | | | | | | | | | | | | | | webrtc::ScreenCapturer. Combined with http://webrtc-codereview.appspot.com/10299004/, this change will make it possible to exclude the notification window from the captured image. The window ID is passed through these objects/methods: ScreenCaptureNotificationUI::OnStarted --> MediaStreamUIProxy::OnStarted --> MediaStreamManager --> VideoCaptureManager --> DesktopCaptureDevice -->webrtc::ScreenCapturer. BUG=https://code.google.com/p/webrtc/issues/detail?id=2789 Review URL: https://codereview.chromium.org/210533002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259978 0039d316-1c4b-4281-b951-d872f2087c98
* Add different error codes for getUserMedia.tommyw@chromium.org2014-03-141-0/+16
| | | | | | | | | | | | The spec now says that the error name is UA specific so I have now Implemented a few different ones. This patch is depending on a Blink Patch. BUG=132812 Review URL: https://codereview.chromium.org/180633008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257081 0039d316-1c4b-4281-b951-d872f2087c98
* Enable platform echo cancellation through the AudioRecord path.ajm@chromium.org2013-12-131-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Re-land https://codereview.chromium.org/99033003/ with a CrOS build fix. TBR=tommi Including the original CL description here: Add a platform effects mask member to AudioParameters. This allows the availability of platform effects (currently AEC) to be plumbed up to MediaStreamDependencyFactory, where they can be reconciled with the media constraints to determine if the effects should be enabled. When this is the case, the constraints will be modified to disable the corresponding software effect in PeerConnection. The availability is controlled by a whitelist of device models in AudioManagerAndroid, which for AEC, currently consists of Nexus 5 and Nexus 7. AudioManagerAndroid will use the AudioRecord path iff the platform AEC is enabled. TESTED=Using apprtc on a N5 and N7 (whitelisted): - The AudioRecord input path is used. - The platform AEC is enabled and the software AEC (in PeerConnection) is disabled. - Calls have good echo cancellation quality. Using apprtc with ?audio=googEchoCancellation=false on a N5 and N7: - The OpenSLES input path is used. - Both the platform and software AEC are disabled. Using apprtc on Nexus 4 (non-whitelisted): - The OpenSLES input path is used. - The platform AEC is disabled and the software AEC is enabled. Using apprtc on Galaxy S2 (running ICS): - The OpenSLES input path is used. audio_android_unittest.cc passes on N5, N7 and Galaxy S2 Review URL: https://codereview.chromium.org/115413002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240787 0039d316-1c4b-4281-b951-d872f2087c98
* This CL move all parsing of constraints used in a call to gUM from ↵perkj@chromium.org2013-12-131-3/+0
| | | | | | | | | | | | | | | | | | MediaStreamImpl to the MediaStreamManager. The purpose is to be able to support all kinds of constraints when selecting what device to use. More specifically, this CL make sure that the sourceID constraint can be used as both optional and mandatory constraint. It move the parsing of what type of stream (device, tab capture or screen capture) that should be created to MediaStreamManager since that is also decided by constraints. In the end, more advanced constraints should be possible,like selecting the the camera that supports a certain resolution. BUG=325153,325692 R=hclam@chromium.org, joi@chromium.org, tommi@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/102353006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240607 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 240548 "Enable platform echo cancellation through the Aud..."hashimoto@chromium.org2013-12-131-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Causing compile failure on Chromium OS bots: chromeos-chrome-33.0.1738.0_alpha-r1: media/audio/cras/audio_manager_cras.cc:126:10: error: no matching constructor chromeos-chrome-33.0.1738.0_alpha-r1: for initialization of 'media::AudioParameters' chromeos-chrome-33.0.1738.0_alpha-r1: return AudioParameters( Logs: http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20%28x86%29/builds/18585 http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20%28amd64%29/builds/12929 http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20%28daisy%29/builds/14979 http://build.chromium.org/p/chromium.memory/builders/Chromium%20OS%20%28amd64%29%20ASAN/builds/8140 http://build.chromium.org/p/chromium.memory/builders/Chromium%20OS%20%28x86%29%20ASAN/builds/7509 > Enable platform echo cancellation through the AudioRecord path. > > Add a platform effects mask member to AudioParameters. This allows the > availability of platform effects (currently AEC) to be plumbed up to > MediaStreamDependencyFactory, where they can be reconciled with the > media constraints to determine if the effects should be enabled. When > this is the case, the constraints will be modified to disable the > corresponding software effect in PeerConnection. > > The availability is controlled by a whitelist of device models in > AudioManagerAndroid, which for AEC, currently consists of Nexus 5 and > Nexus 7. > > AudioManagerAndroid will use the AudioRecord path iff the platform > AEC is enabled. > > TESTED=Using apprtc on a N5 and N7 (whitelisted): > - The AudioRecord input path is used. > - The platform AEC is enabled and the software AEC (in PeerConnection) > is disabled. > - Calls have good echo cancellation quality. > > Using apprtc with ?audio=googEchoCancellation=false on a N5 and N7: > - The OpenSLES input path is used. > - Both the platform and software AEC are disabled. > > Using apprtc on Nexus 4 (non-whitelisted): > - The OpenSLES input path is used. > - The platform AEC is disabled and the software AEC is enabled. > > Using apprtc on Galaxy S2 (running ICS): > - The OpenSLES input path is used. > > audio_android_unittest.cc passes on N5, N7 and Galaxy S2 > > TBR=jschuh > > Review URL: https://codereview.chromium.org/99033003 TBR=ajm@chromium.org Review URL: https://codereview.chromium.org/110303003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240592 0039d316-1c4b-4281-b951-d872f2087c98
* Enable platform echo cancellation through the AudioRecord path.ajm@chromium.org2013-12-131-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a platform effects mask member to AudioParameters. This allows the availability of platform effects (currently AEC) to be plumbed up to MediaStreamDependencyFactory, where they can be reconciled with the media constraints to determine if the effects should be enabled. When this is the case, the constraints will be modified to disable the corresponding software effect in PeerConnection. The availability is controlled by a whitelist of device models in AudioManagerAndroid, which for AEC, currently consists of Nexus 5 and Nexus 7. AudioManagerAndroid will use the AudioRecord path iff the platform AEC is enabled. TESTED=Using apprtc on a N5 and N7 (whitelisted): - The AudioRecord input path is used. - The platform AEC is enabled and the software AEC (in PeerConnection) is disabled. - Calls have good echo cancellation quality. Using apprtc with ?audio=googEchoCancellation=false on a N5 and N7: - The OpenSLES input path is used. - Both the platform and software AEC are disabled. Using apprtc on Nexus 4 (non-whitelisted): - The OpenSLES input path is used. - The platform AEC is disabled and the software AEC is enabled. Using apprtc on Galaxy S2 (running ICS): - The OpenSLES input path is used. audio_android_unittest.cc passes on N5, N7 and Galaxy S2 TBR=jschuh Review URL: https://codereview.chromium.org/99033003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240548 0039d316-1c4b-4281-b951-d872f2087c98
* Reland review 34393006: Refactor MediaStreamManager to not output real ↵perkj@chromium.org2013-11-281-4/+0
| | | | | | | | | | | | | | | | | device id. https://src.chromium.org/viewvc/chrome?revision=232766&view=revision Refactor MediaStreamManager to never output physical device ids. It now output sourceId in the form of a HMAC. DeviceMessageFilter now don't need to create a source id. This also fix a bug that made the source ids useless unless you have called gum once. Note that the sourceIds are still just using the security origin as salt. Next step is to add a random number that is stored in the profile. BUG= 269139,313192 Review URL: https://codereview.chromium.org/88283002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237825 0039d316-1c4b-4281-b951-d872f2087c98
* Change MediaStreamManager to stop only affected devices when a USB device is ↵perkj@chromium.org2013-11-251-0/+2
| | | | | | | | | | | | | | | unplugged and notify the render process. Prior to this change we stopped all devices in a MediaStream if one device was unplugged. BUG=315585 TEST= Make sure you have a microphone, headset and a camera attached. On https://src.chromium.org/chrome/trunk/src/chrome/test/data/webrtc/manual/peerconnection.html click on request user media. Unplug the camera and make sure you can still hear yourself. Review URL: https://codereview.chromium.org/75193003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237069 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 232766 "Refactor MediaStreamManager to never output real ..."vrk@chromium.org2013-11-051-0/+4
| | | | | | | | | | | | | | | | | | | > Refactor MediaStreamManager to never output real device id. It now always output sourceId in the form of a HMAC. > DeviceMessageFilter now don't need to create a source id. > This also fix a bug that made the source ids useless unless you have called gum once. > Note that the sourceIds are still just using the security origin as salt. Next step is to add a random number that is stored in the profile somehow. > > This cl also make sure all public APIs are asynchronous by making sure all requests are posted on the UI thread and handled later. Before this change - there were code paths that posted on the UI thread and others that did not that could potentially happen after a request was cancelled. This also make it easier to fail a request based on the input arguments. > > BUG=269139 > > Review URL: https://codereview.chromium.org/34393006 TBR=perkj@chromium.org Review URL: https://codereview.chromium.org/60753002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233063 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor MediaStreamManager to never output real device id. It now always ↵perkj@chromium.org2013-11-041-4/+0
| | | | | | | | | | | | | | | | output sourceId in the form of a HMAC. DeviceMessageFilter now don't need to create a source id. This also fix a bug that made the source ids useless unless you have called gum once. Note that the sourceIds are still just using the security origin as salt. Next step is to add a random number that is stored in the profile somehow. This cl also make sure all public APIs are asynchronous by making sure all requests are posted on the UI thread and handled later. Before this change - there were code paths that posted on the UI thread and others that did not that could potentially happen after a request was cancelled. This also make it easier to fail a request based on the input arguments. BUG=269139 Review URL: https://codereview.chromium.org/34393006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232766 0039d316-1c4b-4281-b951-d872f2087c98
* Update comments for MediaStreamRequest::requesting_*_id and ↵justinlin@chromium.org2013-10-251-12/+6
| | | | | | | | | | | MediaStreamRequest::render_*_id to make the distinction more clear. BUG=311027 NOTRY=true Review URL: https://codereview.chromium.org/40553003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231100 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for crbug/310432 Tab Capture Indicator stays on after MediaStream is stoppedperkj@chromium.org2013-10-241-2/+12
| | | | | | | | | BUG=310432 TEST = please see repro step in the defect. Review URL: https://codereview.chromium.org/39853002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230719 0039d316-1c4b-4281-b951-d872f2087c98
* Rename MEDIA_SYSTEM_AUDIO_CAPTURE to MEDIA_LOOPBACK_AUDIO_CAPTUREsergeyu@chromium.org2013-09-251-1/+1
| | | | | | | | | | The old name didn't reflect the meaning. R=joi@chromium.org, tommi@chromium.org Review URL: https://codereview.chromium.org/23498052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225124 0039d316-1c4b-4281-b951-d872f2087c98
* Populate video capture facing mode for device enumeration.wjia@chromium.org2013-09-231-0/+14
| | | | | | | | | | | | This will help JS writer to display info about the camera. This is enabled for Android only, since it makes sense for mobile device. BUG=https://code.google.com/p/webrtc/issues/detail?id=2393 R=avi@chromium.org, palmer@chromium.org, tsepez@chromium.org, vrk@chromium.org Review URL: https://codereview.chromium.org/24340002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224788 0039d316-1c4b-4281-b951-d872f2087c98
* Implicit audio output device selection for getUserMedia.tommi@chromium.org2013-09-101-12/+46
| | | | | | | | | | | | | When a non-default input device is selected, do a best-effort selection of a matching output device. This is used to switch output of media stream audio tracks to the output device that matches the currently open capture device (microphone). An typical example is to support switching to USB headsets when in a audio/video call. This does not affect the audio output of non-webrtc related audio elements and only happens when there's exactly 1 active audio capture device in the page. BUG=276894 Review URL: https://chromiumcodereview.appspot.com/23731007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222187 0039d316-1c4b-4281-b951-d872f2087c98
* Add DesktopMediaId type to identify desktop media source.sergeyu@chromium.org2013-08-091-2/+6
| | | | | | | | | | | | | Also replaced content::MEDIA_SCREEN_VIDEO_CAPTURE with content::MEDIA_DESKTOP_VIDEO_CAPTURE which will be used to identify all types of desktop media sources. BUG=237907 R=jam@chromium.org, xians@chromium.org Review URL: https://codereview.chromium.org/22370010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@216617 0039d316-1c4b-4281-b951-d872f2087c98
* Enable audio desktop mirroring.hshi@chromium.org2013-08-011-0/+3
| | | | | | | | | | | | | | | Define getUserMedia mandatory constraint {chromeMediaSource:"system"} to indicate audio loopback (post-mix system audio). Add plumbing in MediaCaptureDevicesDispatcher, AudioManagerCras and CrasInputStream classes to support the loopback path. BUG=261383 TEST=manually verify audio mirroring with a modified extension R=dalecurtis@chromium.org, miu@chromium.org, piman@chromium.org, xians@chromium.org Review URL: https://codereview.chromium.org/20847002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215077 0039d316-1c4b-4281-b951-d872f2087c98
* Implement DesktopMediaPickerModel.sergeyu@chromium.org2013-07-311-1/+2
| | | | | | | | | | | DesktopMediaPickerModel will be used by Desktop Media Picker UI. BUG=237907 TBR=brettw@chromium.org (new third-party deps) Review URL: https://chromiumcodereview.appspot.com/19672011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214853 0039d316-1c4b-4281-b951-d872f2087c98
* Implement Chromium backend for getSourceInfos()vrk@chromium.org2013-07-171-5/+18
| | | | | | | | BUG=240710,https://code.google.com/p/webrtc/issues/detail?id=1571 Review URL: https://chromiumcodereview.appspot.com/16806002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211922 0039d316-1c4b-4281-b951-d872f2087c98
* content: Migrate from googleurl/ includes to url/ ones.tfarina@chromium.org2013-07-091-1/+1
| | | | | | | | | BUG=229660 TBR=darin@chromium.org Review URL: https://codereview.chromium.org/18868005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210626 0039d316-1c4b-4281-b951-d872f2087c98
* Support cancellation of pending media stream requests at UI side.wjia@chromium.org2013-07-091-0/+5
| | | | | | | | | | | | | | | | | When a page has more than one media stream requests, they are currently stored in a queue in MediaCaptureDevicesDispatcher till they are executed sequentially. This results in annoying and confusing popup of infobar for each remaining request when browser navigates away from the page or reload the page. This patch uses triplet (render_process_id, render_view_id, page_request_id) as identifier for a request to allow the client to cancel the request. BUG=252904 R=joaodasilva@chromium.org, joi@chromium.org, sky@chromium.org, xians@chromium.org Review URL: https://codereview.chromium.org/18647011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210579 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup interfaces used to deliver notifications about MediaStream state ↵sergeyu@chromium.org2013-04-291-0/+19
| | | | | | | | | | | | | | from content to chrome. 1. Added MediaStreamUI interface that is used by the content layer to deliver notifications about state of each particular stream to the chrome. 2. Removed corresponding notifications from content::MediaObserver interface. 3. Cleaned up MediaStreamUIController, so now it always uses WebContents pointers to identify tabs. Review URL: https://chromiumcodereview.appspot.com/13695002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197038 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for screen video stream in getUserMedia().sergeyu@chromium.org2013-02-041-0/+3
| | | | | | | | | | | | Screen capturing is disabled by default and can be enabled using --enable-screen-capturing flag. User notifications need to be implemented before we can enable this feature by default. BUG=134249 Review URL: https://codereview.chromium.org/11680003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180502 0039d316-1c4b-4281-b951-d872f2087c98
* Ensures that WebRTC works for device selections using a different sample ↵henrika@chromium.org2013-01-231-0/+19
| | | | | | | | | | | | | | | rate than default. See https://docs.google.com/a/google.com/document/d/1Gi5Hmtfz_d6WSoSXwhgK4q7yBgjL7cTcgez-URFdZV4/edit for more details regarding this CL. In addition, I have introduced base::ThreadChecker in WebRtcAudioCapturer to make it less flexible in how it can be called. It feels better to add restrictions given the existing usage than to "allow almost anything" as is the case now. BUG=164058 TEST=A long list of WebRTC demos plus content and media unit tests. Also did browser_tests locally. Review URL: https://chromiumcodereview.appspot.com/11783059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178287 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a problem where OpenDevice would open the wrong device if multiple are ↵pastarmovj@chromium.org2013-01-151-1/+7
| | | | | | | | | | | | | | | | | avaiable. The issue comes from the fact the OpenDevice should not select the device based on the user prefence but on the client request passed in the requested_device_id. Only if this is not possible will it use the default device. BUG=166925 TEST=Manual: Plug multiple capture devices and try to select each one in flash settings. Review URL: https://chromiumcodereview.appspot.com/11820050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176908 0039d316-1c4b-4281-b951-d872f2087c98
* StreamDeviceInfo is basically a MediaStreamDevice but with two extra ↵xians@chromium.org2012-12-181-13/+14
| | | | | | | | | | | | | | variables, and we can remove lots of code by letting StreamDeviceInfo have a MediaStreamDevice as a member variable instead. Also MediaStreamType is typedef of MediaStreamDeviceType, I remember the reason for doing it is simply using a shorter name for MediaStreamDeviceType. We can also merge them to make the code more readable. BUG=137645 TEST=content_unittests Review URL: https://chromiumcodereview.appspot.com/11530007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173613 0039d316-1c4b-4281-b951-d872f2087c98
* Make sure that all OpenDevice requests are scrutinized against the audio and ↵pastarmovj@google.com2012-12-131-0/+15
| | | | | | | | | | | video policies. BUG=159404 TEST=unit_tests,browser_tests,Manually by setting the policy and observing flapper obey it. Review URL: https://codereview.chromium.org/11446042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172877 0039d316-1c4b-4281-b951-d872f2087c98
* This CL is part of https://codereview.chromium.org/11316275/, but only ↵xians@chromium.org2012-12-121-5/+8
| | | | | | | | | | | | | | | | | | | | | | | contains the changes related to the infobar. The new design for the media infobar included in this patch: # Use the confirm infobar for media, this will make the media infobar be consistent with other infobars in chrome like Geolocation. # Remove the devices array in the media_stream_request since the infobar does not have a device dropdown any more. # "Allow" will be sticky by default. # Start using the device selection UI in the content settings. Note, "Deny" is not sticky in this patch, it can't be done since the media code in content settings needs a big refactoring to handle the exceptions properly. It will be addressed in another CL. BUG=163895 TEST=content_unittests, pyauto webrtc functional tests. and manual tests like: select a device via content setting media go to https://webrtc-demos.appspot.com/html/pc1.html, and make a call. Review URL: https://chromiumcodereview.appspot.com/11434084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172610 0039d316-1c4b-4281-b951-d872f2087c98
* Begin adding support for tab mirroring via the MediaStream audio/video capturingmiu@chromium.org2012-09-111-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | framework. Expanded the scope of the content::MediaStreamDeviceType enum to support the new concept of "internal capture devices." From there, many modules were tweaked to account for the new concept. In some cases, significant new functionality was added (described below). In this change, tab mirroring audio and video capture devices have been introduced, but stubbed-out. The following proposal provides more backrgound on this and the overall motivation for the code changes at-hand: http://dev.chromium.org/developers/design-documents/extensions/proposed-changes/apis-under-development/webrtc-tab-content-capture Significant changes: 1. content/common/media and content/public/common -- a) Expand content::MediaStreamDeviceType enum; b) Update media_stream::StreamOptions so that extension API bindings can ask for any of the MediaStreamTypes. 2. content/browser/renderer_host/media -- Minor refactoring: MediaStreamManager handles all MediaStreamDeviceTypes. Only supports EnumerateDevices and OpenDevice for physical device types. Add new GenerateStreamForDevice() API. 3. chrome/browser/media and chrome/browser/ui -- Enhance "Allow/Deny and device selection" infobar to handle all MediaStreamDeviceTypes. Review URL: https://chromiumcodereview.appspot.com/10912004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155925 0039d316-1c4b-4281-b951-d872f2087c98
* MediaStreamDevice contains a Map, and it should clean up the memory in its ↵xians@chromium.org2012-08-281-0/+4
| | | | | | | | | | | destructor. BUG=129322,129329 TEST=tools/valgrind/valgrind.sh --tool=memcheck --num-callers=30 --gen-suppressions=all --leak-check=yes --show-possibly-lost=no --suppressions=tools/valgrind/memcheck/suppressions.txt --db-attach=no ./chrome/test/functional/webrtc_call.py Review URL: https://chromiumcodereview.appspot.com/10877008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153661 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: [WebRTC] Use GURL type to replace the std::string type of security ↵yujie.mao@intel.com2012-05-251-2/+3
| | | | | | | | | | | | origin BUG=None TEST=content_unittests, html <video> local capture preview Review URL: https://chromiumcodereview.appspot.com/10442008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139034 0039d316-1c4b-4281-b951-d872f2087c98
* Adding a new InfoBar that will be displayed when a webpage requests access tomacourteau@chromium.org2012-02-291-2/+2
| | | | | | | | | | | the user's video camera or microphone (via WebRTC). BUG=105115 TEST= Review URL: http://codereview.chromium.org/9463025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124159 0039d316-1c4b-4281-b951-d872f2087c98
* Preparation work for adding the Media Stream infobar. The behaviour is the samemacourteau@chromium.org2012-02-241-0/+72
as without this patch (and everything is still behind a flag). BUG=105115 TEST= Review URL: http://codereview.chromium.org/9360018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123418 0039d316-1c4b-4281-b951-d872f2087c98