summaryrefslogtreecommitdiffstats
path: root/remoting/host/desktop_session_proxy.h
Commit message (Collapse)AuthorAgeFilesLines
* Revert 248045 "Use webrtc::MouseCursorMonitor for cursor shapes"benwells@chromium.org2014-01-311-20/+5
| | | | | | | | | | | | | | | | | | | | | > Use webrtc::MouseCursorMonitor for cursor shapes > > Use webrtc::MouseCursorMonitor for cursor shapes instead of > webrtc::VideoFrameCapturer, in preparation for deprecating cursor shape > functionality in the latter. > > BUG=324033 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247689 > > Review URL: https://codereview.chromium.org/92473002 This caused errors on a windows memory bot. See bug for details. TBR=dcaiafa@chromium.org Review URL: https://codereview.chromium.org/151163002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248139 0039d316-1c4b-4281-b951-d872f2087c98
* Use webrtc::MouseCursorMonitor for cursor shapesdcaiafa@chromium.org2014-01-301-5/+20
| | | | | | | | | | | | | | Use webrtc::MouseCursorMonitor for cursor shapes instead of webrtc::VideoFrameCapturer, in preparation for deprecating cursor shape functionality in the latter. BUG=324033 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247689 Review URL: https://codereview.chromium.org/92473002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248045 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 247689 "Use webrtc::MouseCursorMonitor for cursor shapes"gavinp@chromium.org2014-01-291-20/+5
| | | | | | | | | | | | | | | | | | > Use webrtc::MouseCursorMonitor for cursor shapes > > Use webrtc::MouseCursorMonitor for cursor shapes instead of > webrtc::VideoFrameCapturer, in preparation for deprecating cursor shape > functionality in the latter. > > BUG=324033 > > Review URL: https://codereview.chromium.org/92473002 TBR=dcaiafa@chromium.org Review URL: https://codereview.chromium.org/149563003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247691 0039d316-1c4b-4281-b951-d872f2087c98
* Use webrtc::MouseCursorMonitor for cursor shapesdcaiafa@chromium.org2014-01-291-5/+20
| | | | | | | | | | | | Use webrtc::MouseCursorMonitor for cursor shapes instead of webrtc::VideoFrameCapturer, in preparation for deprecating cursor shape functionality in the latter. BUG=324033 Review URL: https://codereview.chromium.org/92473002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247689 0039d316-1c4b-4281-b951-d872f2087c98
* Remove dependency on skia from remotingsergeyu@chromium.org2013-12-161-2/+0
| | | | | | | | | | | | | | Remoting uses types in webrtc/modules/desktop_capture to represent rectangles, vectors and regions. This CL removes a few places left where we were still using Skia types and removes Skia from DEPS. Also removed leftover InvalidateRegion() declaration from desktop_session_proxy.h . R=jamiewalch@chromium.org Review URL: https://codereview.chromium.org/112453002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240925 0039d316-1c4b-4281-b951-d872f2087c98
* Update include paths in remoting for base/process changes.rsesek@chromium.org2013-07-231-1/+1
| | | | | | | | | BUG=242290 R=alexeypa@chromium.org Review URL: https://codereview.chromium.org/19653007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213110 0039d316-1c4b-4281-b951-d872f2087c98
* Remove screen capturers from media/video/capture/screen.sergeyu@chromium.org2013-06-071-5/+5
| | | | | | | | | | | | Screen capturers have been moved to webrtc. This change switches chromoting and getUserMedia() to the new copy of the capturers in webrtc and removes old copy from media. TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/15692018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204966 0039d316-1c4b-4281-b951-d872f2087c98
* Use webrtc::DesktopCapturer for screen capturer implementation.sergeyu@chromium.org2013-05-161-8/+12
| | | | | | | | | | | | | Screen capturers are being moved from media/video/capture/screen to third_party/webrtc. This CL is an intermediate step in that process. Depends on https://webrtc-codereview.appspot.com/1322007/ TBR=brettw@chromium.org (third_party/webrtc dependency) Review URL: https://chromiumcodereview.appspot.com/13983010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200504 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 198844 "Move sequenced_task_runner to base/task"dbeam@chromium.org2013-05-081-1/+1
| | | | | | | | | | | | | | | | | Reverting revisions that rely on r198820 so to unbreak the build. > Move sequenced_task_runner to base/task > > BUG= > R=akalin@chromium.org > > Review URL: https://codereview.chromium.org/14927008 TBR=brettw@chromium.org Review URL: https://codereview.chromium.org/14985007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198848 0039d316-1c4b-4281-b951-d872f2087c98
* Move sequenced_task_runner to base/taskbrettw@chromium.org2013-05-081-1/+1
| | | | | | | | | BUG= R=akalin@chromium.org Review URL: https://codereview.chromium.org/14927008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198844 0039d316-1c4b-4281-b951-d872f2087c98
* Set the initial resolution of an RDP session to the client screen resolution ↵alexeypa@chromium.org2013-04-191-7/+11
| | | | | | | | | | | | | | | | | | if it is available. Changes in this CL: - The version of the control channel is increased to 3. This allows the host and client to tell if the peer supports capabilities negotiation or not. - The client and host negotiate supported capabilities by sending each other a list of the supported capabilities. Capabilities supported by both client and host are assumed to be enabled. - The client plugin and webapp negotiate the list of capabilities supported by the client. The webapp has the final word. - The DesktopEnvironment interface was extended to provide the list of all supported capabilities and receive the results of negotiation with the client. - Added the 'sendInitialResolution' capability. When it is enabled the client sends its screen resolution to the host once the connection has been established. - DesktopSessionProxy now waits for the client screen resolution when the 'sendInitialResolution' capability is enabled. BUG=230893 Review URL: https://chromiumcodereview.appspot.com/13932020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195192 0039d316-1c4b-4281-b951-d872f2087c98
* Removed task runners from the DesktopEnviroment interface and introduced ↵alexeypa@chromium.org2013-03-251-18/+12
| | | | | | | | | | | | | | | | ScreenControls/ClientSessionControl interfaces. This CL removes all task runners that used to be passed to methods of DesktopEnviroment and DesktopEnviromentFactory interfaces. Instead each object implementing these interfaces receives the set of task runners it needs in the constructor. This change makes DesktopEnviroment and DesktopEnviromentFactory interfaces cleaner and easier to implement. Added the ScreenControls interface used by the client session to change the screen resolution. Objects implementing ScreenControls are created by DesktopEnvironment::CreateScreenControls() method. DesktopEnviromentFactory::Create() now receives a pointer to the ClientSessionControl interface providing a way to pause, resume, and disconnect the client session. It also receives notifications about the local mouse movements to temporarily block the remote input. The ClientSessionControl interface will be hooked up to the local impit monitor and the host UI once they will be moved to DesktopEnvironment. BUG=104544 Review URL: https://chromiumcodereview.appspot.com/12879006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190345 0039d316-1c4b-4281-b951-d872f2087c98
* Rename EventExecutor to InputInjector.wez@chromium.org2013-03-241-4/+4
| | | | | | | | | | This is part of general naming clean-up under remoting/ and will help keep lambroslambrou@ happy. Review URL: https://chromiumcodereview.appspot.com/12760012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190163 0039d316-1c4b-4281-b951-d872f2087c98
* Pass the client resolutin updates to the daemon and desktop processes and ↵alexeypa@chromium.org2013-03-181-0/+8
| | | | | | | | | | | create a desktop resizer in the desktop process. BUG=196316 Review URL: https://chromiumcodereview.appspot.com/12678009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188673 0039d316-1c4b-4281-b951-d872f2087c98
* Reworked the plumbing required to pass the client resolution to the desktop ↵alexeypa@chromium.org2013-03-181-1/+0
| | | | | | | | | | | | | | | | resizer. This is mostly a renaming CL: - DesktopSessionParams -> ScreenResolution - OnClientResolutionChanged() -> SetScreenResolution(). Also added validation of ScreenResolution before passing it to session controllers. BUG=196316 Review URL: https://codereview.chromium.org/12678008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188661 0039d316-1c4b-4281-b951-d872f2087c98
* ResizingHostObserver is created by the desktop environment together with ↵alexeypa@chromium.org2013-03-091-0/+2
| | | | | | | | | | | | | | | | | other stubs. ResizingHostObserver is responsible to resizing the host desktop so that it matches the client resolution. This CL makes the desktop environment responsible for creation of ResizingHostObserver object along with other stubs. Related changes: - Added a new interface: SessionController. Objects implementing it will be responsible for handling control events. The client resolution change is the only supported event at the moment. - Removed OnClientResolutionChanged() from the host status observer. - The multi-process host does not handle OnClientResolutionChanged() notifications at the moment. BUG=137696 Review URL: https://chromiumcodereview.appspot.com/12545026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187130 0039d316-1c4b-4281-b951-d872f2087c98
* DesktopSessionProxy should be owned by the event executor and audio/video ↵alexeypa@chromium.org2013-03-081-43/+62
| | | | | | | | | | | | | | | | | | capturers it creates. This CL makes sure that a DesktopSessionProxy object is owned by the event executor and audio/video capturers it creates and nobody else. This change is requied in order to be able create the desktop environment late (in ClientSession::OnConnectionChannelsConnected()) and keep it around until the event executor and audio/video capturers have been created. This in turn makes sure that |curtain_activated| flag can be properly set when an instance of desktop environment is created. Related changes in this CL: - Received audio/video packets are posted to the corresponding threads via weak pointers. The pointers are invalidated when the corresponding capturer is stopped. - DesktopSessionConnector registration keeps a raw pointer to DesktopSessionProxy. DesktopSessionProxy makes sure that the registration is undone in the destructor. - DesktopSessionProxy makes sure it is deleted on the proper thread, so all members are deleted on the same thread they were created on. BUG=137696 Review URL: https://chromiumcodereview.appspot.com/12374098 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187044 0039d316-1c4b-4281-b951-d872f2087c98
* Adding a unit test to verify the IPC channel between the network and desktop ↵alexeypa@chromium.org2013-02-071-8/+7
| | | | | | | | | | | | | | | processes. Related changes: - The fake screen capturer now uses shared buffers when they available. - DesktopSessionAgent frees the client end handle of the network-to-desktop pipe once the connection has been established. BUG=134694 Review URL: https://chromiumcodereview.appspot.com/12096071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181221 0039d316-1c4b-4281-b951-d872f2087c98
* Move screen capturers from remoting/capturer to media/video/capturer/screensergeyu@chromium.org2013-01-281-9/+10
| | | | | | | | | | | | | | | | Screen capturers will be used in content, and so they have to be moved to avoid dependency on remoting/capturer in content. Beside moving the files this CL also renames classes as follows: remoting::VideoFrameCapturer -> media::ScreenCapturer remoting::VideoFrame -> media::ScreenCaptureFrame remoting::CaptureData -> media::ScreenCaptureData BUG=134249 Review URL: https://codereview.chromium.org/12047101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179218 0039d316-1c4b-4281-b951-d872f2087c98
* RefCounted types should not have public destructors, remoting/ edition.rsleevi@chromium.org2013-01-281-8/+7
| | | | | | | | | | | For pure virtual interfaces where the caller/client manages the lifetime, this CL makes their destructors protected. BUG=172421, 123295 Review URL: https://chromiumcodereview.appspot.com/12089012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179098 0039d316-1c4b-4281-b951-d872f2087c98
* Making DesktopEnvironment a factory class used by ClientSession to create ↵alexeypa@chromium.org2013-01-161-14/+19
| | | | | | | | | | | | | | | | | audio/video capturers and event executor for a pacticular desktop environment. Other related changes: - AudioCapturer and VideoFrameCapturer are owned by AudioScheduler and VideoScheduler correspondingly. - Both AudioScheduler and VideoScheduler can now be stopped completely asynchronously. - AudioScheduler::SetEnabled() changed to Pause() to match the corresponding method provided by VideoScheduler. - ClientSession::Stop() is synchronous now. BUG=104544 Review URL: https://chromiumcodereview.appspot.com/11778049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177161 0039d316-1c4b-4281-b951-d872f2087c98
* Added audio support to the multiprocess host.alexeypa@chromium.org2012-12-271-1/+25
| | | | | | | | | | | The desktop session agent running in the user's session now captures audio and sends serialized audio packets over IPC to the network process. BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11611007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174706 0039d316-1c4b-4281-b951-d872f2087c98
* Show the disconnect window and monitor the local mouse input when running ↵alexeypa@chromium.org2012-12-271-7/+25
| | | | | | | | | | | | | | | the multiprocess host. Supporting changes in this CL: - Desktop session agent now start only after receiving JID of the authenticated client. - The desktop process terminates if an unknown or unexpected message is received. BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11512005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174694 0039d316-1c4b-4281-b951-d872f2087c98
* Move screen capturers to remoting/capturer.sergeyu@chromium.org2012-12-181-4/+4
| | | | | | | | | | | | Separating screen capturer code from the rest of remoting code so that it can be reused for screen capturing in WebRTC. Also added struct MouseCursorShape to avoid protobuf dependency. BUG=134249 Review URL: https://codereview.chromium.org/11470028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173789 0039d316-1c4b-4281-b951-d872f2087c98
* Added support of keyboard, mouse and clipboard events to DesktopSessionAgent.alexeypa@chromium.org2012-11-301-0/+14
| | | | | | | | | BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11417094 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170393 0039d316-1c4b-4281-b951-d872f2087c98
* Added support of mouse cursor shape updates to DesktopSessionAgent.alexeypa@chromium.org2012-11-281-1/+8
| | | | | | | | | BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11412115 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170050 0039d316-1c4b-4281-b951-d872f2087c98
* The video capturer now runs in a separate process.alexeypa@chromium.org2012-11-271-0/+129
Changes in this CL: 1. Introduces DesktopSessionProxy class wrapping the network end of the network-to-desktop IPC channel. The class provides a callable interface integrating the remote video capturer with the desktop enviroment object maintained by the networking code. 2. DesktopSessionProxy supports multiple "DesktopAttached" requests gacefully switching between desktop process instances. 3. DesktopSessionProxy uses shared buffers to pass video frames between processes. BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11417015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169719 0039d316-1c4b-4281-b951-d872f2087c98