summaryrefslogtreecommitdiffstats
path: root/remoting/protocol/connection_to_host.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove dead code in ConnectionToHostsergeyu@chromium.org2014-05-071-2/+0
| | | | | | | | TBR=jamiewalch@chromium.org Review URL: https://codereview.chromium.org/269313005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268843 0039d316-1c4b-4281-b951-d872f2087c98
* Smart reconnect part II - plugin and hostkelvinp@chromium.org2014-05-011-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL serves to make the experience below better “I typically have to manually reconnect 20-40 times per day when working remotely, about 10 reconnects are due to wifi zone changes, and 20 are due to closing my laptop screen (Chromebook Pixel). “ - A customer Cause: 1. The current implementation of connectivity is not very reliable. It typically takes 5 seconds for us to grey out the app when there is no network connectivity. The app feels irresponsive to network connectivity There are three factors that causes the connection to drop 2. When the client is suspended, the host times out in 1 min. This is particular common when the user closes the lid of the laptop and walk to another room for meeting. (P1) 3. When the client is not suspended, but cannot reach the host (network changes, host_is_offline) a. If the timeout is less than 1 min, it will try to reconnect, however, the reconnect could takes up to 2 min. Most people won't have that kind of patience to wait for the reconnect. (P2) b. If the timeout is larger than 1 min, it will timeout. Fix: 1. To Fix (1) In a healthy connection, the host send video frames to the client periodically. We can improve the reliability of connection detection to within 1s by checking whether we have received any frames within the last second. 2. To Fix (1) and (2b), we listens for the change in connection state of the session, if it transits from CONNECTED to FAILED and the host is not offline, we reconnect. In order for this to work smoothly, this change increases the timeout of session initiation and session accept. 3. To Fix (3a), when we detect the network connectivity is up again. We will let the transport layer to re-negotiate the transport channels. However, if it doesn't finishes its job within 5 second, the plugin to transit to FAILED state so that the webapp can reconnect 4. I have written an unittest for the video_channel_monitoring code and tested out the app on the chromebook pixel. The experience definitely feels better. BUG=264300 Review URL: https://codereview.chromium.org/243483004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267384 0039d316-1c4b-4281-b951-d872f2087c98
* Reimplemented string array resources.jamiewalch@chromium.org2014-03-071-2/+1
| | | | | | | | | BUG=270362 R=lambroslambrou@chromium.org Review URL: https://codereview.chromium.org/187313007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255669 0039d316-1c4b-4281-b951-d872f2087c98
* Show connection type in web-app.jamiewalch@chromium.org2014-01-091-0/+4
| | | | | | | | | | This is mostly boilerplate to get the OnSessionRouteChange notification up to the web-app. The web-app then includes it in the stats panel. In the common case where all channels have the same type, it displays it as "connection: <type>"; if the types differ they are displayed individually. BUG=134528 Review URL: https://codereview.chromium.org/126123002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243947 0039d316-1c4b-4281-b951-d872f2087c98
* Android Chromoting - Close the Desktop view on disconnectionlambroslambrou@chromium.org2014-01-091-5/+4
| | | | | | | | | | | | If the session becomes disconnected, this hides the desktop display instead of leaving it visible and non-interactive. BUG=325593 TEST=Disconnect the session by killing the host process. Review URL: https://codereview.chromium.org/105943010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243800 0039d316-1c4b-4281-b951-d872f2087c98
* Add the beginnings of a Chromoting Android appsolb@chromium.org2013-07-191-0/+6
| | | | | | | | | | | | | | | Currently, this has only the following capabilities: + Authenticate using a Google account on the phone + Query and display the host list from the Chromoting directory server + Connect to and communicate with the host service over XMPP/ICE + Establish peer-to-peer channels for communicating with the host service Notable missing features are: - Display the host's desktop - Handle any kind of input Review URL: https://chromiumcodereview.appspot.com/19506004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212496 0039d316-1c4b-4281-b951-d872f2087c98
* Make AudioPlayer optional in ChromotingClientsolb@chromium.org2013-07-101-1/+2
| | | | | | | | Passing in a null pointer now disables the audio stream. Review URL: https://chromiumcodereview.appspot.com/18452006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210769 0039d316-1c4b-4281-b951-d872f2087c98
* Remove XmppProxy and JavascriptSignalStrategy.sergeyu@chromium.org2013-06-131-5/+3
| | | | | | | | | | | | | Instead of using XmppProxy and JavascriptSignalStrategy to provide signaling for the client the client plugin now uses the new PepperSignalStrategy class which implements SignalStrategy interface directly. R=garykac@chromium.org Review URL: https://codereview.chromium.org/16168008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206220 0039d316-1c4b-4281-b951-d872f2087c98
* Call ChromotingClient::Initialize() before any packets can arrive.alexeypa@chromium.org2013-04-131-0/+1
| | | | | | | | | | This CL introduces new ConnectionToHost::State::AUTHENTICATED that ChromotingClient uses as a signal to initialize video and audio decoders. The new state is reported as 'CONNECTED' to the webapp to avoid changing the interface between the plugin and webapp. BUG=229927 Review URL: https://chromiumcodereview.appspot.com/14109011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194079 0039d316-1c4b-4281-b951-d872f2087c98
* Clean-up inline members of nested classes (remoting/)hans@chromium.org2012-08-091-0/+2
| | | | | | | | | | | | | | | | Due to a bug, the Clang-plugin style checker failed to warn about inline constructors, destructors, non-empty virtual methods, etc. for nested classes. The plugin has been fixed, and this patch is part of a clean-up of all the code that now causes the plugin to issue errors. BUG=139346 Review URL: https://chromiumcodereview.appspot.com/10855076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150913 0039d316-1c4b-4281-b951-d872f2087c98
* Show connection state in the Chromoting client UI.sergeyu@chromium.org2012-07-231-0/+12
| | | | | | | | | | | | Now screen is desaturated when we get notification that video channel is not working. BUG=131411 Review URL: https://chromiumcodereview.appspot.com/10692179 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147830 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ChromotingView to ClientUserInterface. Clean it up.sergeyu@chromium.org2012-07-231-0/+1
| | | | | | | | | | | | | ChromotingView wasn't really doing what it was initially meant to do, now FrameProducer and FrameConsumer interfaces are used to process video stream. Renamed and simplified that interface. Also moved implementation from PepperView to ChromotingInstance. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=147595 Review URL: https://chromiumcodereview.appspot.com/10703144 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147828 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 147595 - Rename ChromotingView to ClientUserInterface. Clean it up.sergeyu@chromium.org2012-07-201-1/+0
| | | | | | | | | | | | | | ChromotingView wasn't really doing what it was initially meant to do, now FrameProducer and FrameConsumer interfaces are used to process video stream. Renamed and simplified that interface. Also moved implementation from PepperView to ChromotingInstance. Review URL: https://chromiumcodereview.appspot.com/10703144 TBR=sergeyu@chromium.org Review URL: https://chromiumcodereview.appspot.com/10800048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147596 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ChromotingView to ClientUserInterface. Clean it up.sergeyu@chromium.org2012-07-201-0/+1
| | | | | | | | | | | ChromotingView wasn't really doing what it was initially meant to do, now FrameProducer and FrameConsumer interfaces are used to process video stream. Renamed and simplified that interface. Also moved implementation from PepperView to ChromotingInstance. Review URL: https://chromiumcodereview.appspot.com/10703144 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147595 0039d316-1c4b-4281-b951-d872f2087c98
* Use callback interface for state notifications in Session interface.sergeyu@chromium.org2012-07-121-5/+5
| | | | | | | | | | | | | | Previously remoting::protocol::Session interface was using base::Callback for state change and route change notifications. Using callback interface makes code simpler in many places. I'm also going to add new method to that interface to fix linked bug. BUG=131411 Review URL: https://chromiumcodereview.appspot.com/10702132 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146455 0039d316-1c4b-4281-b951-d872f2087c98
* Added piping for sending audio packets from host to client.kxing@chromium.org2012-06-251-1/+6
| | | | | | Review URL: https://chromiumcodereview.appspot.com/10532211 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143977 0039d316-1c4b-4281-b951-d872f2087c98
* Removed the dead function OnVideoPacket().kxing@chromium.org2012-06-051-3/+0
| | | | | | | | | | BUG=131209 TEST= Review URL: https://chromiumcodereview.appspot.com/10538011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140567 0039d316-1c4b-4281-b951-d872f2087c98
* [Chromoting] Initial plumbing for cursor shape.garykac@chromium.org2012-06-021-0/+1
| | | | | | | | | | | | | | | | | This cl contains: * protocol for sending cursor shape on control channel from host to client * cross-platform (Pepper) client code for rendering host cursor * Linux host support for reading current cursor shape Separate CLs will follow with Mac and Windows host support. BUG=116229 TEST=none Review URL: https://chromiumcodereview.appspot.com/10382184 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140205 0039d316-1c4b-4281-b951-d872f2087c98
* Don't depend on MessageLoopProxy in remoting protocol code.sergeyu@chromium.org2012-05-241-8/+4
| | | | | | Review URL: https://chromiumcodereview.appspot.com/10332304 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138731 0039d316-1c4b-4281-b951-d872f2087c98
* Switch client to Pepper UDP API instead of Transport API.sergeyu@chromium.org2012-05-161-2/+2
| | | | | | | | BUG=109630 Review URL: https://chromiumcodereview.appspot.com/10284008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137487 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 136692 - Switch client to Pepper UDP API instead of Transport API.sergeyu@chromium.org2012-05-141-2/+2
| | | | | | | | | | | | BUG=109630 Review URL: https://chromiumcodereview.appspot.com/10284008 TBR=sergeyu@chromium.org Review URL: https://chromiumcodereview.appspot.com/10387113 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136908 0039d316-1c4b-4281-b951-d872f2087c98
* Switch client to Pepper UDP API instead of Transport API.sergeyu@chromium.org2012-05-111-2/+2
| | | | | | | | | BUG=109630 Review URL: https://chromiumcodereview.appspot.com/10284008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136692 0039d316-1c4b-4281-b951-d872f2087c98
* Add notifyClientDimensions API to the Chromoting Client plugin.wez@chromium.org2012-05-011-0/+1
| | | | | | | | | | BUG=110212 TEST=Will be testable via subsequent API-consumer CL. Review URL: http://codereview.chromium.org/10262019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134671 0039d316-1c4b-4281-b951-d872f2087c98
* [Chromoting] Let the client plugin pass clipboard items to the host.simonmorris@chromium.org2012-04-041-0/+3
| | | | | | | | BUG=117473 Review URL: https://chromiumcodereview.appspot.com/9958015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130683 0039d316-1c4b-4281-b951-d872f2087c98
* [Chromoting] Add plumbing to carry clipboard events from the host to the client.simonmorris@chromium.org2012-03-311-0/+3
| | | | | | | | | BUG=117473 Review URL: http://codereview.chromium.org/9921034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130023 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup error handling in the client plugin.sergeyu@chromium.org2012-03-021-12/+5
| | | | | | | | | | | | | | | - Added new ErrorCode enum to pass error codes everywhere except between the webapp and the plugin. - Signaling timeout when connection now is interpreted as disconnect instead of error condition (see bug 112739). - Fixed webapp to properly handle unknown error codes. BUG=112739 Review URL: http://codereview.chromium.org/9567033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124606 0039d316-1c4b-4281-b951-d872f2087c98
* Fix crash on disconnectdcaiafa@chromium.org2012-02-041-2/+2
| | | | | | | | | | | | | | | | This change wraps the end of the input pipeline (ClientEventDispatcher) in a forwarder (newly introduced InputFilter). This abstraction relieves ChromotingInstance, and everything else, from the awkward and (provably) bug-prone task of tracking the component's lifetime. It also allows the input pipeline to be initialized alongside the connection, making for a simpler contract and providing better code readability, among other things. BUG=112116 Review URL: http://codereview.chromium.org/9320047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120449 0039d316-1c4b-4281-b951-d872f2087c98
* Implement V2 authentication support in the client plugin.sergeyu@chromium.org2012-01-241-4/+5
| | | | | | | | | | | | | Changed client plugin interface so that it receives information needed to for V2 authentication. Also moved authenticator creation out of ConnectionToHost. BUG=105214 Review URL: http://codereview.chromium.org/9195004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118828 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 118805 - Implement V2 authentication support in the client plugin.sergeyu@chromium.org2012-01-241-5/+4
| | | | | | | | | | | | | | | | Changed client plugin interface so that it receives information needed to for V2 authentication. Also moved authenticator creation out of ConnectionToHost. BUG=105214 Review URL: http://codereview.chromium.org/9195004 TBR=sergeyu@chromium.org Review URL: https://chromiumcodereview.appspot.com/9146032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118806 0039d316-1c4b-4281-b951-d872f2087c98
* Implement V2 authentication support in the client plugin.sergeyu@chromium.org2012-01-241-4/+5
| | | | | | | | | | | | | Changed client plugin interface so that it receives information needed to for V2 authentication. Also moved authenticator creation out of ConnectionToHost. BUG=105214 Review URL: http://codereview.chromium.org/9195004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118805 0039d316-1c4b-4281-b951-d872f2087c98
* Remove task.h and finish base::Bind() migration.ajwong@chromium.org2012-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Over 341 CLs, in ~3 months, touching 3251 unique files! Top 5 most CLs: (121) jhawkins ( 45) dcheng ( 24) achuith ( 23) csilv ( 12) tfarina ( 12) groby ~1000 files touched: (918) jhawkins 100+ files touched: (486) ajwong (385) willchan (372) dcheng (126) csilv (123) fischman (112) sergeyu 49+ files touched: (65) tfarina (57) acolwell (52) adamk (49) tzik BUG=35223 TEST=existing Review URL: http://codereview.chromium.org/9114020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116748 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor SignalStrategy so that it can be reused for multiple connections.sergeyu@chromium.org2012-01-031-10/+4
| | | | | | | | | | | Also updated SessionManager implementation so that session managers can be created before signaling is connected. BUG=107276 Review URL: http://codereview.chromium.org/9005034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116192 0039d316-1c4b-4281-b951-d872f2087c98
* Add AUTHENTICATED session state.sergeyu@chromium.org2011-12-061-4/+0
| | | | | | | | | | | Also removed AUTHENTICATED state from ConnectionToHost - We no longer need it there. BUG=105214 Review URL: http://codereview.chromium.org/8774017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113146 0039d316-1c4b-4281-b951-d872f2087c98
* Remove event_channel() and control_channel() from Session interface.sergeyu@chromium.org2011-11-221-8/+3
| | | | | | | | Now all channels are created using CreateStreamChannel() as they should be! Review URL: http://codereview.chromium.org/8587053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111045 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor client channel dispatchers.sergeyu@chromium.org2011-11-181-9/+4
| | | | | | | | | | The new ClientControlDispatcher and ClientEventDispatcher manage control and event channels. Review URL: http://codereview.chromium.org/8574025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110648 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove unneeded forward declarations from remoting.thestig@chromium.org2011-11-111-2/+0
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/8536002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109593 0039d316-1c4b-4281-b951-d872f2087c98
* Move code in src/remoting to the new callbacks.sergeyu@chromium.org2011-11-101-2/+0
| | | | | | | | | BUG=None TEST=Remoting still works. Review URL: http://codereview.chromium.org/8493020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109367 0039d316-1c4b-4281-b951-d872f2087c98
* Remove old Authentication code that we don't use or need.sergeyu@chromium.org2011-11-051-0/+3
| | | | | | | | | | | | Also removed some auth-related protobufs that we don't currenly use. BUG=None TEST=IT2Me still works. Review URL: http://codereview.chromium.org/8351084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108759 0039d316-1c4b-4281-b951-d872f2087c98
* removing unnecessary includeamit@chromium.org2011-11-021-1/+0
| | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/8386018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108343 0039d316-1c4b-4281-b951-d872f2087c98
* Expose connection error code to the web app.sergeyu@chromium.org2011-10-011-14/+19
| | | | | | | | | BUG=91402 TEST=None Review URL: http://codereview.chromium.org/8038054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103601 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup ConnectionToHost of non-P2P-API code.sergeyu@chromium.org2011-09-221-20/+1
| | | | | | | | | BUG=74951 TEST=Compiles Review URL: http://codereview.chromium.org/7981026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102311 0039d316-1c4b-4281-b951-d872f2087c98
* Add flag to use P2P Transport API.sergeyu@chromium.org2011-09-131-0/+6
| | | | | | | | | BUG=51198 TEST=Manual Review URL: http://codereview.chromium.org/7740061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100811 0039d316-1c4b-4281-b951-d872f2087c98
* Pass SessionConfig by reference instead of pointer.sergeyu@chromium.org2011-09-101-1/+1
| | | | | | | | | BUG=88600 TEST=Unittests Review URL: http://codereview.chromium.org/7796026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100587 0039d316-1c4b-4281-b951-d872f2087c98
* Use MessageLoopProxy for network message loop.sergeyu@chromium.org2011-08-121-3/+5
| | | | | | | | | | | | | When we switch to P2P Pepper API we will need to run networking code on the main plugin thread. Switching to MessageLoopProxy for network thread, so that it's easier to switch network thread in the future. BUG=None TEST=None Review URL: http://codereview.chromium.org/7633009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96651 0039d316-1c4b-4281-b951-d872f2087c98
* Remove video_channel() from Session interfacesergeyu@chromium.org2011-08-111-25/+24
| | | | | | | | | | | BUG=None TEST=Unittests. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=96089 Review URL: http://codereview.chromium.org/7508044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96301 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 96089 - Remove video_channel() from Session interfacesergeyu@chromium.org2011-08-101-5/+0
| | | | | | | | | | | | BUG=None TEST=Unittests. Review URL: http://codereview.chromium.org/7508044 TBR=sergeyu@chromium.org Review URL: http://codereview.chromium.org/7604021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96106 0039d316-1c4b-4281-b951-d872f2087c98
* Remove video_channel() from Session interfacesergeyu@chromium.org2011-08-091-0/+5
| | | | | | | | | BUG=None TEST=Unittests. Review URL: http://codereview.chromium.org/7508044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96089 0039d316-1c4b-4281-b951-d872f2087c98
* Resolve addresses of STUN/Relay servers in JingleInfoRequest.sergeyu@chromium.org2011-08-091-0/+3
| | | | | | | | | BUG=83242 TEST=NAT traversal works Review URL: http://codereview.chromium.org/7598004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96060 0039d316-1c4b-4281-b951-d872f2087c98
* Asynchronous initialization in SessionManager.sergeyu@chromium.org2011-07-281-8/+10
| | | | | | | | | BUG=90213 TEST=NAT traversal works reliably. Review URL: http://codereview.chromium.org/7461087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94491 0039d316-1c4b-4281-b951-d872f2087c98
* Expose nat_traversal flag to host and client plugins.sergeyu@chromium.org2011-07-261-5/+6
| | | | | | | | | BUG=90213 TEST=None Review URL: http://codereview.chromium.org/7471054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94119 0039d316-1c4b-4281-b951-d872f2087c98