summaryrefslogtreecommitdiffstats
path: root/remoting/host/desktop_session_agent.h
Commit message (Collapse)AuthorAgeFilesLines
* Simplify ScreenCapturer interface.sergeyu@chromium.org2013-04-231-3/+0
| | | | | | | | Removed Stop() and InvalidateRegion() from ScreenCapturer interface. Review URL: https://codereview.chromium.org/14305004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195887 0039d316-1c4b-4281-b951-d872f2087c98
* Refactored the disconnect window such that it can be owned by the desktop ↵alexeypa@chromium.org2013-04-051-7/+0
| | | | | | | | | | | | | | | | environment. This CL adds two new classes: HostWindow and HostWindowProxy. HostWindow is a non thread-safe base class for platform-specific implementations of the disconnect and continue windows. HostWindowProxy implements thread switching logic (using a ref-counted HostWindowProxy::Core). The combination of HostWindow and HostWindowProxy allows DesktopEnvironment to create the disconnect window on the network thread and run it on the UI thread. This is the 1st CL (out of 2) that deprecates the HostUserInterface class and moves responsibility to create the local UI to the corresponding DesktopEnvironment instances. The follow up CL will migrate the continue window logic. BUG=104544 Review URL: https://chromiumcodereview.appspot.com/13212009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192473 0039d316-1c4b-4281-b951-d872f2087c98
* DesktopEnvironment is now responsible for creation of the local input monitor.alexeypa@chromium.org2013-03-251-5/+0
| | | | | | | | | | | | LocalInputMonitor instances use the ClientSessionControl interface to pass notification about local mouse movements and to disconnect the client session when the disconnect shortcut (Ctrl+Alt+Esc) is pressed. This CL also completely removes the MouseMoveObserver interface (along with its implementation in ChromotingHost) since it is not used any more. BUG=104544 Review URL: https://chromiumcodereview.appspot.com/12594009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190444 0039d316-1c4b-4281-b951-d872f2087c98
* Removed task runners from the DesktopEnviroment interface and introduced ↵alexeypa@chromium.org2013-03-251-11/+20
| | | | | | | | | | | | | | | | 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-2/+2
| | | | | | | | | | 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-1/+11
| | | | | | | | | | | 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
* Adding a unit test to verify the IPC channel between the network and desktop ↵alexeypa@chromium.org2013-02-071-0/+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
* Pass a DesktopEnvironmentFactory when starting a DesktopProcess, allow the ↵alexeypa@chromium.org2013-02-041-6/+4
| | | | | | | | | | | caller to control the kind of desktop environment to be created. BUG=104544 Review URL: https://chromiumcodereview.appspot.com/12087073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180443 0039d316-1c4b-4281-b951-d872f2087c98
* Merge methods of media::SharedBufferFactory interface into ↵alexeypa@chromium.org2013-01-311-6/+2
| | | | | | | | media::ScreenCapturer::Delegate. It is useful because both interfaces are implemented by the same class usually while creation of the capturer can be controlled by another (factory) class. Review URL: https://codereview.chromium.org/12087063 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179903 0039d316-1c4b-4281-b951-d872f2087c98
* Move screen capturers from remoting/capturer to media/video/capturer/screensergeyu@chromium.org2013-01-281-12/+14
| | | | | | | | | | | | | | | | 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
* Remove unused VideoFrameCapturer::size_most_recent() method.alexeypa@chromium.org2013-01-091-0/+4
| | | | | | | | | BUG=104544 Review URL: https://chromiumcodereview.appspot.com/11821004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175734 0039d316-1c4b-4281-b951-d872f2087c98
* Added audio support to the multiprocess host.alexeypa@chromium.org2012-12-271-0/+23
| | | | | | | | | | | 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-0/+37
| | | | | | | | | | | | | | | 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 Secure Attention Sequence in multiprocess mode.alexeypa@chromium.org2012-12-071-7/+22
| | | | | | | | | BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11447021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171664 0039d316-1c4b-4281-b951-d872f2087c98
* Added support of keyboard, mouse and clipboard events to DesktopSessionAgent.alexeypa@chromium.org2012-11-301-0/+23
| | | | | | | | | 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
* The video capturer now runs in a separate process.alexeypa@chromium.org2012-11-271-6/+5
| | | | | | | | | | | | | | 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
* DesktopSessionAgent now hosts the video capturer and provides necessary ↵alexeypa@chromium.org2012-11-271-15/+82
| | | | | | | | | | | plumbing to drive it via an IPC channel. BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11413022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169587 0039d316-1c4b-4281-b951-d872f2087c98
* [Chromoting] The desktop process now creates a pre-connected pipe and passes ↵alexeypa@chromium.org2012-10-251-0/+84
(with some help of the daemon) its client-end handle to the network process. The network process will request screen/audio capturing and input injection services using the created channel. Accompanying changes: - The daemon can request other processes to crash in response to critical protocol errors. - Both network and desktop processes exit if the connection to the daemon has been disconnected. - CreateConnectedIpcChannel() function moved to remoting/host/win/launch_process_with_token.h - IPC::Channel::GenerateUniqueRandomChannelID() is used to generate a unique channel name. - Added unit tests for DesktopProcess. - Made 'remote_desktop' compilable on all platforms. BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11231060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164006 0039d316-1c4b-4281-b951-d872f2087c98