summaryrefslogtreecommitdiffstats
path: root/remoting/client/chromoting_client.h
Commit message (Collapse)AuthorAgeFilesLines
* MessageLoopProxy cleanups in remoting client.sergeyu@chromium.org2012-06-121-9/+7
| | | | | | | | | | | Replaced all usage of MessageLoopProxy with SingleThreadTaskRunner. Also includes some other minor cleanups, e.g. removed ClientContext::network_message_loop(). Review URL: https://chromiumcodereview.appspot.com/10454018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141589 0039d316-1c4b-4281-b951-d872f2087c98
* Replace ScopedThreadProxy with MessageLoopProxy & WeakPtrs.wez@chromium.org2012-06-071-2/+4
| | | | | | | | | | | | | | | | | | | This affects the following classes: * ChromotingClient * ChromotingInstance * HostUserInterface * It2MeHostUserInterface The MessageLoopProxy/WeakPtr combination requires that the WeakPtr is created on the thread referred to by the proxy; code in which that is hard to arrange usually has subtle race-conditions. This is a re-land of CL 1045404, replacing some CR_DEFINE_STATIC_LOCAL() instances with base::LazyInstance to avoid adding global initializers or finalizers. TEST=Existing unit-tests, and manual testing. Review URL: https://chromiumcodereview.appspot.com/10440107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141028 0039d316-1c4b-4281-b951-d872f2087c98
* [Chromoting] Initial plumbing for cursor shape.garykac@chromium.org2012-06-021-1/+5
| | | | | | | | | | | | | | | | | 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
* Revert 139623 - Replace ScopedThreadProxy with MessageLoopProxy & WeakPtrs.wez@chromium.org2012-05-301-4/+2
| | | | | | | | | | | | | | | | | | | | This affects the following classes: * ChromotingClient * ChromotingInstance * HostUserInterface * It2MeHostUserInterface The MessageLoopProxy/WeakPtr combination requires that the WeakPtr is created on the thread referred to by the proxy; code in which that is hard to arrange usually has subtle race-conditions. TEST=Existing unit-tests, and manual testing. Review URL: https://chromiumcodereview.appspot.com/10454040 TBR=wez@chromium.org Review URL: https://chromiumcodereview.appspot.com/10446088 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139633 0039d316-1c4b-4281-b951-d872f2087c98
* Replace ScopedThreadProxy with MessageLoopProxy & WeakPtrs.wez@chromium.org2012-05-301-2/+4
| | | | | | | | | | | | | | | | | This affects the following classes: * ChromotingClient * ChromotingInstance * HostUserInterface * It2MeHostUserInterface The MessageLoopProxy/WeakPtr combination requires that the WeakPtr is created on the thread referred to by the proxy; code in which that is hard to arrange usually has subtle race-conditions. TEST=Existing unit-tests, and manual testing. Review URL: https://chromiumcodereview.appspot.com/10454040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139623 0039d316-1c4b-4281-b951-d872f2087c98
* [Chromoting] Add a filter that will stop the host sending unnecessary ↵simonmorris@chromium.org2012-05-221-1/+0
| | | | | | | | | | | | clipboard events to the client. The host does not yet send any clipboard events to the client. A follow-up CL will make that happen. BUG=117473 Review URL: https://chromiumcodereview.appspot.com/10399052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138377 0039d316-1c4b-4281-b951-d872f2087c98
* Switch client to Pepper UDP API instead of Transport API.sergeyu@chromium.org2012-05-161-1/+6
| | | | | | | | 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-6/+1
| | | | | | | | | | | | 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-1/+6
| | | | | | | | | 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
* [Chromoting] Add plumbing to carry clipboard events from the host to the client.simonmorris@chromium.org2012-03-311-0/+6
| | | | | | | | | 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
* Refactor VideoStub interface to accept ownership of video packets.sergeyu@chromium.org2012-03-281-3/+4
| | | | | | | | | | | Previously VideoStub::ProcessVideoPacket() did not accept ownership of video packets. Instead the done callback was responsible for deleting the packet. Review URL: http://codereview.chromium.org/9827006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129355 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup error handling in the client plugin.sergeyu@chromium.org2012-03-021-1/+1
| | | | | | | | | | | | | | | - 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
* This CL makes several the following improvements to the Chromoting decoder ↵alexeypa@chromium.org2012-02-241-4/+1
| | | | | | | | | | | | | | | pipeline: 1. Only the clipping area, not the full frame, is drawn. This reduces the risk of out of memory situation on high page zoom levels. Screen updates are also incremental including scrolling scenarios. 2. Decoders now write pixels directly to the Pepper API backing store making it one memcpy less. 3. Scaling and panning is fully controlled by the plugin. The decoder only supplies the pixels it was asked for by the plugin. BUG=109938 Review URL: http://codereview.chromium.org/9331003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123573 0039d316-1c4b-4281-b951-d872f2087c98
* Refactoring of the client-side input pipeline and scaling dimension management.wez@chromium.org2011-12-221-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main changes are: * Express key-release, mouse coordinate scaling and clamping as InputStubs. * KeyEventTracker handles key release. * MouseInputFilter handles mouse scaling & clamping. * PepperInputHandler converts Pepper events to InputStub events. * Replace scaling ratios with host and view dimensions. This resulted in some related changes * The DecoderVp8 enforces a <=1:1 output-size before converting the frame. * The setScaleToFit() API now has no effect. * ChromotingView has become a pure interface again. Things this CL is currently missing: * Unit-tests for the new components. Future work: * Move the non-Pepper-specific input pipeline components to ChromotingClient. * Rework the decode / convert / scale / render pipeline. BUG=93552 TEST=remoting_unittests, and manual testing. Review URL: http://codereview.chromium.org/8985007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115511 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove unneeded forward declarations from remoting.thestig@chromium.org2011-11-111-5/+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-5/+3
| | | | | | | | | 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-4/+0
| | | | | | | | | | | | 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
* Switch remoting/protocol to new callbackssergeyu@chromium.org2011-10-071-6/+5
| | | | | | | | | | | There is still some code that uses old callbacks (particularly unittests) - I will convert them in a separate CL. BUG=None TEST=Unittests Review URL: http://codereview.chromium.org/8116021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104440 0039d316-1c4b-4281-b951-d872f2087c98
* Expose connection error code to the web app.sergeyu@chromium.org2011-10-011-8/+6
| | | | | | | | | 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
* Use MessageLoopProxy for network message loop.sergeyu@chromium.org2011-08-121-1/+1
| | | | | | | | | | | | | 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
* Modify Chromoting logging to hook into base logging.garykac@chromium.org2011-08-041-3/+0
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/7355011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95380 0039d316-1c4b-4281-b951-d872f2087c98
* 2. Implement scale-to-fit and clipping in DecoderVp8hclam@chromium.org2011-07-261-8/+0
| | | | | | | | | | | Perform color space conversion and scaling in DecoderVp8 using fast SIMD routines. Also move clipping to DecoderVp8 to save more CPU cycles. BUG=None TEST=None Review URL: http://codereview.chromium.org/7396005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94099 0039d316-1c4b-4281-b951-d872f2087c98
* Message validation in message dispatchers.sergeyu@chromium.org2011-07-211-8/+7
| | | | | | | | | BUG=70335 TEST=None Review URL: http://codereview.chromium.org/7466004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93296 0039d316-1c4b-4281-b951-d872f2087c98
* Conenct Chromoting plugin debug log to JS UI.garykac@chromium.org2011-07-071-3/+3
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/7262015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91779 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup client shutdown sequence.sergeyu@chromium.org2011-06-241-1/+3
| | | | | | | | | BUG=None TEST=Client doesn't crash when reloading the tab. Review URL: http://codereview.chromium.org/7241016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90443 0039d316-1c4b-4281-b951-d872f2087c98
* Remove support for non-sandboxed connections.sergeyu@chromium.org2011-06-241-2/+1
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/7240011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90393 0039d316-1c4b-4281-b951-d872f2087c98
* Initial key exchange implementation.sergeyu@chromium.org2011-06-011-3/+1
| | | | | | | | | BUG=None TEST=Unittests. Review URL: http://codereview.chromium.org/7006029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87547 0039d316-1c4b-4281-b951-d872f2087c98
* Convert Chromoting logging to appear in client debug-info div.garykac@chromium.org2011-05-231-0/+3
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/6621018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86304 0039d316-1c4b-4281-b951-d872f2087c98
* Remove cancel from RunnableFunctions.dmaclach@chromium.org2011-05-101-3/+3
| | | | | | | | | | | BUG=NONE TEST=BUILD Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=84060 Review URL: http://codereview.chromium.org/6690031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84740 0039d316-1c4b-4281-b951-d872f2087c98
* Chromoting to report roundtrip latencyhclam@chromium.org2011-05-061-0/+3
| | | | | | | | | | | | | | | | | Doing so by sending a sequence number, essentially the timestamp in every envet message. Capturer at the host will pick up the latest sequence number and pass it through the pipeline. Client will then receive it and determine the latency. This roundtrip latency number however doesn't include time in decoding and rendering. BUG=None TEST=None Review URL: http://codereview.chromium.org/6792038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84504 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 84060 - Remove cancel from RunnableFunctions.dmaclach@chromium.org2011-05-041-3/+3
| | | | | | | | | | | | BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/6690031 TBR=dmaclach@chromium.org Review URL: http://codereview.chromium.org/6927012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84063 0039d316-1c4b-4281-b951-d872f2087c98
* Remove cancel from RunnableFunctions.dmaclach@chromium.org2011-05-041-3/+3
| | | | | | | | | BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/6690031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84060 0039d316-1c4b-4281-b951-d872f2087c98
* Report capture and encode time for chromotinghclam@google.com2011-04-051-2/+2
| | | | | | | | | | | Add hooks to record these numbers and report them in the client. BUG=None TEST=None Review URL: http://codereview.chromium.org/6767009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80516 0039d316-1c4b-4281-b951-d872f2087c98
* Report decode and render latency for Chromotinghclam@google.com2011-04-051-1/+5
| | | | | | | | | | | Uses RunningAverage to record these numbers, added JS interface for reporting. BUG=None TEST=None Review URL: http://codereview.chromium.org/6767002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80515 0039d316-1c4b-4281-b951-d872f2087c98
* Measure bandwidth for chromoting video channelhclam@google.com2011-04-051-3/+10
| | | | | | | | | | | | | | | Define RunningAverage, TimedRunningAverage and use that to record video bandwidth. This doesn't account for overhead of protobuf envelop. However the number should be small that can be ignored. BUG=None TEST=None Review URL: http://codereview.chromium.org/6736009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80486 0039d316-1c4b-4281-b951-d872f2087c98
* Wire up the codepath from Javascript into Jingle for IQ packets.ajwong@chromium.org2011-03-071-0/+4
| | | | | | | | | | | Flushes out XmppProxy, the thread-safe interface that matches up Pepper with Jingle and plumbs a ConnectSandboxed method through everything so that the connection type can be chosen at runtime. BUG=51198 TEST=Check that stanzas are sent/received from JS, and that xmpp still works. Review URL: http://codereview.chromium.org/6603036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77148 0039d316-1c4b-4281-b951-d872f2087c98
* Chromoting protocol layers to receive and send login messageshclam@chromium.org2010-12-231-0/+3
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/6030007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70036 0039d316-1c4b-4281-b951-d872f2087c98
* Hook up client events to new protocol stubs.sergeyu@chromium.org2010-11-291-0/+11
| | | | | | | | | | | | Patch by garykac@chromium.com. Original review: http://codereview.chromium.org/5062001 BUG=none TEST=none Review URL: http://codereview.chromium.org/5345007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67594 0039d316-1c4b-4281-b951-d872f2087c98
* Use VideoStub interface on the host side.sergeyu@chromium.org2010-11-191-0/+1
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/5232004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66841 0039d316-1c4b-4281-b951-d872f2087c98
* Add VideoPacket struct for video packets. Refactor Decode interface to use it.sergeyu@chromium.org2010-11-091-7/+3
| | | | | | | | | | Various cleanups. BUG=None TEST=Unittests. Review URL: http://codereview.chromium.org/4476003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65590 0039d316-1c4b-4281-b951-d872f2087c98
* Chromoting: Rename HostConnection to ConnectionToHostgarykac@chromium.org2010-11-041-9/+9
| | | | | | | | | BUG=none TEST=build chrome, chromoting Review URL: http://codereview.chromium.org/4457002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65121 0039d316-1c4b-4281-b951-d872f2087c98
* Move protocol classes to the remoting::protocol namespacesergeyu@chromium.org2010-11-041-8/+8
| | | | | | | | | BUG=None TEST=compiles Review URL: http://codereview.chromium.org/4233005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65006 0039d316-1c4b-4281-b951-d872f2087c98
* Add VideoReader and VideoWriter interfaces.sergeyu@chromium.org2010-11-031-9/+23
| | | | | | | | | | | Implemented VideoReader and VideoWriter for RTP and Protobuf. BUG=53986 TEST=None Review URL: http://codereview.chromium.org/4229003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64878 0039d316-1c4b-4281-b951-d872f2087c98
* HostMessageDispatcher to parse control messageshclam@chromium.org2010-10-281-2/+3
| | | | | | | | | | | | Changed MessageReader and MessageDecoder to support parsing in HostMessageDispatcher. BUG=None TEST=None Review URL: http://codereview.chromium.org/4017002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64283 0039d316-1c4b-4281-b951-d872f2087c98
* Hook up communication between Chromoting plugin and JS so that it can notify ↵garykac@chromium.org2010-10-081-12/+5
| | | | | | | | | | | | | the JS UI of status changes. Push SetState handling down ChromotingView so that UI changes are contained in the View. BUG=54855 TEST=chromoting unittests Review URL: http://codereview.chromium.org/3446020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61977 0039d316-1c4b-4281-b951-d872f2087c98
* Use new Chromotocol code in host andclient.sergeyu@chromium.org2010-10-061-1/+3
| | | | | | | | | | | | | | 1. ProtocolDecoder renamed to MessagesDecoder and moved to remoting/protocol. 2. base/protocol_util.[h|cc] split into base/util.[h|cc] and protocol/util.[h|cc]. 3. Added StreamReader and StreamWriter classes for events and video channels. 4. Client and host changed to use the new protocol code. BUG=None TEST=Unittests Review URL: http://codereview.chromium.org/3595012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61723 0039d316-1c4b-4281-b951-d872f2087c98
* This is a monster CL.ajwong@chromium.org2010-10-041-4/+22
| | | | | | | | | | | | | | | | | | | | It started as an attempt to put the decoder onto another thread. However, this became complicated due to multiple object ownership transfers and coupling between the decode layer and the network layer; the decoder's states were highly coupled with how the network packets were processed. This could probably be broken up slightly, but at this point, it's easier to just commit as a whole The refactor includes: 1) Making the decoder interface unaware of "network packet" types. 2) Making the network layer process packets in order. 3) Threading through asynchronous APIs all over the place. 4) Simplifying the rectangle update protocol. 5) Cleaning up object lifetime and ownership semantics between the decode layer and the renderer. As of right now, the Verbatim format is still broken on the encode side because it uses the old protocol. BUG=52883, 57351 TEST=still connects to chromoting_simple_host Review URL: http://codereview.chromium.org/3305001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61402 0039d316-1c4b-4281-b951-d872f2087c98
* Rename (Host|Client)Message to Chromoting(Host|Client)Message.garykac@chromium.org2010-08-241-4/+4
| | | | | | | | | | | | | | | | Rename HostMessage and ClientMessage to Chromoting{Host|Client}Message to avoid conflicts with messages in X11. Actually, only ClientMessage needs to be changed due to conflict, but HostMessage is changed to keep the names consistent. BUG=none TEST=remoting unittests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=57112 Review URL: http://codereview.chromium.org/3161034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57255 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 57112 - Rename (Host|Client)Message to Chromoting(Host|Client)Message.thestig@chromium.org2010-08-231-4/+4
| | | | | | | | | | | | | | | | | Rename HostMessage and ClientMessage to Chromoting{Host|Client}Message to avoid conflicts with messages in X11. Actually, only ClientMessage needs to be changed due to conflict, but HostMessage is changed to keep the names consistent. BUG=none TEST=remoting unittests Review URL: http://codereview.chromium.org/3161034 TBR=garykac@chromium.org Review URL: http://codereview.chromium.org/3141036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57115 0039d316-1c4b-4281-b951-d872f2087c98
* Rename (Host|Client)Message to Chromoting(Host|Client)Message.garykac@chromium.org2010-08-231-4/+4
| | | | | | | | | | | | | | Rename HostMessage and ClientMessage to Chromoting{Host|Client}Message to avoid conflicts with messages in X11. Actually, only ClientMessage needs to be changed due to conflict, but HostMessage is changed to keep the names consistent. BUG=none TEST=remoting unittests Review URL: http://codereview.chromium.org/3161034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57112 0039d316-1c4b-4281-b951-d872f2087c98