summaryrefslogtreecommitdiffstats
path: root/remoting/proto
Commit message (Collapse)AuthorAgeFilesLines
* Remove shaped desktop support from remoting host and client.sergeyu2016-03-251-8/+4
| | | | | | | | | We no longer need to support shaped desktop, so the corresponding code can be removed. Review URL: https://codereview.chromium.org/1827043004 Cr-Commit-Position: refs/heads/master@{#383340}
* Add UMA histograms for more detailed latency tracking on the CRD host.sergeyu2015-09-301-0/+13
| | | | | | | | | | | | | | | | | | | | Previously only two delays in CRD hosts were tracked: capture time and encode time. This CL adds 4 other values that are now measured on the host, sent to the client and logged to UMA: - capture_pending_time: time between input event being received and when the next frame starts capturing. - capture_overhead_time: extra latency for the capturer caused by IPC and threading. - encode_pending_time: delay between capturer and encoder. - send_pending_time: time encoded packets wait in the send queue. VideoFramePump is responsible for measuring all latency values sent to the client except for capture_time_ms which is still measured by the capturer. Review URL: https://codereview.chromium.org/1365663003 Cr-Commit-Position: refs/heads/master@{#351504}
* Clarify the semantics of |VideoPacket.use_desktop_shape|.wez2015-07-201-2/+4
| | | | | | | | BUG=446288 Review URL: https://codereview.chromium.org/1240813004 Cr-Commit-Position: refs/heads/master@{#339516}
* Add touch events to the protocol, the stub layer, and to the client plugin.rkuroiwa2015-02-262-0/+52
| | | | | | | | | | | | | | | | | - Add TouchEvent and TouchEventPoint messages to the input event protocol. - Extend the InputStub interface with an InjectTouchEvent() method. - Update InputEventTracker to track touch points, and to cancel them when ReleaseAll() is called. - Implement touch handling in the client plugin, but off by default. The web-app may choose to enable touch handling if desired. - Add a TouchInputScaler that scales and clamps touch points, similarly to the MouseInputFilter, for use by both client and host. BUG=314515 Review URL: https://codereview.chromium.org/799233004 Cr-Commit-Position: refs/heads/master@{#318284}
* Implement video frame acknowledgements in the chromoting protocol.sergeyu2015-02-241-0/+12
| | | | | | | | | | | | | | | | | | Added frame_id field in the VideoPacket message. Client now acknowledges every frame that has frame_id set by sending VideoAck messages after the corresponding frame is decoded and rendered. On the host the VideoAck messages are processed by the new VideoFeedbackStub, which is implemented in CaptureScheduler. CaptureScheduler limits number of unacknowledged frames to 4. This number was chosen experimentally to minimize latency (using remoting_perftests). BUG=448838 Review URL: https://codereview.chromium.org/850983002 Cr-Commit-Position: refs/heads/master@{#317824}
* Rename sequence_number to timestamp.sergeyu2015-01-082-4/+5
| | | | | | | | | | | | The sequence_number field is used to send events timestamp. That name was confusing. Renamed sequence_number to timestamp in EventMessage and latest_sequence_number to last_event_timestamp in VideoPacket. TBR=nasko@chromium.org Review URL: https://codereview.chromium.org/836183002 Cr-Commit-Position: refs/heads/master@{#310592}
* gn format // (the rest, except mojo)scottmg2014-12-031-1/+1
| | | | | | | | | | | | | | Excluded mojo because I think that needs to happen on the other side. At gn --version = 306668 for which roll is in CQ. R=brettw@chromium.org TBR=scherkus@chromium.org BUG=348474 Review URL: https://codereview.chromium.org/774353003 Cr-Commit-Position: refs/heads/master@{#306708}
* Use int64 more pervasively in storing time s/ms/us values.pkasting2014-10-141-2/+2
| | | | | | | | | | | | The various To/From[Milli,Micro]Seconds() functions all use int64. Convert some other intermediary types to int64 to avoid type conversions along the way. BUG=81439 TEST=none Review URL: https://codereview.chromium.org/641263002 Cr-Commit-Position: refs/heads/master@{#299578}
* Add some remoting targets to GN build.Brett Wilson2014-08-252-0/+17
| | | | | | | | | | | | | | | Since GN runs its scripts in a different current directory than GYP, I had to update the remoting html template script to be able to handle this situation. Also includes many misc linking fixes: - Sets enable_nacl to false. - Add renderer context menu component - Adds many missing files R=sergeyu@chromium.org Review URL: https://codereview.chromium.org/498773005 Cr-Commit-Position: refs/heads/master@{#291731}
* Add basic perf tests for chromoting protocol.sergeyu@chromium.org2014-07-251-0/+3
| | | | | | | | | | | | | | This CL doesn't yet include any emulation of network characteristics (latency, bandwidth, etc.). I'm going to implement it in a separate CL. BUG=394067 R=rmsousa@chromium.org, ttuttle@chromium.org TBR=ttuttle@chromium.org (DEPS on net in remoting/test) Review URL: https://codereview.chromium.org/394883008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285429 0039d316-1c4b-4281-b951-d872f2087c98
* Extend VideoControl to allow clients to request lossless modes.wez@chromium.org2014-05-301-0/+4
| | | | | | | | | | | | - Lossless encode/color requests may be ignored by codecs. - VideoEncoderVpx supports lossless color when using VP9. - The --enable-i444 flag now controls the default color mode for VP9. BUG=260879,134202 Review URL: https://codereview.chromium.org/304653002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273752 0039d316-1c4b-4281-b951-d872f2087c98
* Add TextEvent message in the protocolsergeyu@chromium.org2014-03-272-3/+10
| | | | | | | | | | | | The new message will be used for non-keyboard input methods and software keyboards. BUG=270356 R=lambroslambrou@chromium.org, nasko@chromium.org Review URL: https://codereview.chromium.org/197613004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259968 0039d316-1c4b-4281-b951-d872f2087c98
* Remove deprecated_flags field from VideoPacketsergeyu@chromium.org2014-03-201-3/+0
| | | | | | | | BUG=290169 Review URL: https://codereview.chromium.org/195893041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258280 0039d316-1c4b-4281-b951-d872f2087c98
* Add VP9 decode support to the remoting client.wez@chromium.org2013-10-221-0/+1
| | | | | | | | BUG=260879 Review URL: https://codereview.chromium.org/26921005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230003 0039d316-1c4b-4281-b951-d872f2087c98
* Simplify VideoEncoder interface.sergeyu@chromium.org2013-09-131-44/+5
| | | | | | | | | | | This should also avoid assert in the linked bug. BUG=284775 R=wez@chromium.org Review URL: https://codereview.chromium.org/23477059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223152 0039d316-1c4b-4281-b951-d872f2087c98
* Added support of relative mouse motion in Chromoting.alexeypa@chromium.org2013-09-091-0/+4
| | | | | | | | | | | | | | This CL makes the client plugin treat a completely transparent mouse cursor as an indication that the host switched to relative mouse mode. If the browser rejects or cancels the mouse lock for any reason, the plugin sets the cursor to the standard arrow pointer until a new cursor is set by the host. The webapp has to send the 'allowMouseLock' message to enable this behavior. BUG=132613 Review URL: https://chromiumcodereview.appspot.com/23484015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222110 0039d316-1c4b-4281-b951-d872f2087c98
* Added JsonMessage to the control channel.jamiewalch@chromium.org2013-08-132-0/+12
| | | | | | | | | | This adds the client plumbing needed to get an arbitrary JSON message from client to host, or vice versa. This will allow us to extend the protocol at short notice, without needing to wait for client plugin changes to be promoted to Stable. BUG= Review URL: https://chromiumcodereview.appspot.com/22477006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217127 0039d316-1c4b-4281-b951-d872f2087c98
* Accumulate wheel ticks client-side and prefer ticks to pixels when scrolling ↵jamiewalch@chromium.org2013-07-281-2/+4
| | | | | | | | | | on Linux. BUG=180715 Review URL: https://chromiumcodereview.appspot.com/20540003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214096 0039d316-1c4b-4281-b951-d872f2087c98
* Chromoting: fixing caps lock issue with mac host.weitaosu@chromium.org2013-06-261-0/+10
| | | | | | | | | | | | | | | | | The caps lock key doesn't work on a mac host: it doesn't toggle the caps lock state and the remote keyboard outputs upper or lower case letters depending on the caps lock state of the last local keyboard used. For example, if there are two local keyboards: keyboard 1 has caps lock on and keyboard 2 has caps lock off. If keyboard 1 was used last, the remote keyboard will output upper case letters; and if keyboard 2 was used last, lower case letters. Here are all the changes to fix the caps lock problem: 1. The KeyEvent proto buffer now contains a modifier_state field. 2. The client will set caps lock and num lock on the modifier_state field in the key event message appropriately. 3. The mac host now uses CGEventCreateKeyboardEvent/CGEventPost instead of the deprecated CGPostKeyBoardEvent to inject key events on a mac. 4. The mac host will set the caps lock flag with a key event if caps lock is on in the event message. 5. Update the unit tests for the key events. BUG=248275 Review URL: https://chromiumcodereview.appspot.com/16035018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208633 0039d316-1c4b-4281-b951-d872f2087c98
* Added the desktop shape fields to VideoPacket.alexeypa@chromium.org2013-06-211-0/+5
| | | | | | | | If the host passes the desktop shape region in a VideoPacket the client will use it to draw transparent regions. The client also informs the web-app of the desktop shape changes, so it can set the input passthrough region correctly. Review URL: https://chromiumcodereview.appspot.com/17511004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207789 0039d316-1c4b-4281-b951-d872f2087c98
* Protocol-level changes required to support PIN-less authentication.jamiewalch@chromium.org2013-05-102-0/+15
| | | | | | | | | | | | This CL adds the protocol messages needed to support PIN-less authentication, and the C++ glue to route them as far as the HostStub and get the reply back to a client callback. BUG=156182 Review URL: https://chromiumcodereview.appspot.com/14715012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199371 0039d316-1c4b-4281-b951-d872f2087c98
* Set the initial resolution of an RDP session to the client screen resolution ↵alexeypa@chromium.org2013-04-192-0/+7
| | | | | | | | | | | | | | | | | | 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
* Rename ClientDimensions to ClientResolution and add pixel-size and DPI fields.wez@chromium.org2013-02-132-5/+14
| | | | | | | | | | | This CL also updates the client and host protocol handlers to the new name. BUG=172404 Review URL: https://chromiumcodereview.appspot.com/12220092 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182115 0039d316-1c4b-4281-b951-d872f2087c98
* Remove mousewheel tick handling from client, protocol and host.wez@chromium.org2013-01-032-8/+0
| | | | | | | | | | | | Recent hosts use the mousewheel pixel-unit values. BUG=155668 TEST=Manually verify that mousewheel events work between client & host. Review URL: https://chromiumcodereview.appspot.com/11734023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175047 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Linux: change protobuf default option to allow building"nyquist@chromium.org2012-11-126-0/+12
| | | | | | | | | | | | | | | | | This reverts commit baefae90f294a981c973bffbdd3eccabfe796b6a. The change broke Chrome for Android because non-vanilla protobuf-lite Java files were generated. Original review: https://codereview.chromium.org/11228038/ TBR=phajdan.jr BUG=160256 Review URL: https://codereview.chromium.org/11359146 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167242 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: change protobuf default option to allow buildingphajdan.jr@chromium.org2012-11-076-12/+0
| | | | | | | | | | | | | | | | | | with unpatched system protobuf. This is a preparation for landing https://codereview.chromium.org/11231046/ and a solution chosen because our custom protobuf changes will not be accepted upstream. Setting defaults to optimize for lite runtime and retain unknown fields makes it possible to use the same .proto files with system protobuf. BUG=157155 TEST=none Review URL: https://codereview.chromium.org/11228038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166534 0039d316-1c4b-4281-b951-d872f2087c98
* Protocol plumbing for audio toggle.rmsousa@chromium.org2012-10-182-0/+6
| | | | | | | | | BUG= Review URL: https://chromiumcodereview.appspot.com/11192042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162637 0039d316-1c4b-4281-b951-d872f2087c98
* Add sub-pixel accuracy deltas in mouse wheel events.wez@chromium.org2012-10-131-2/+8
| | | | | | | | | | | | | | Pixel-based deltas are more consistent across platforms and reflect the client-side acceleration settings. Sub-pixel accuracy may be required in future to support high-DPI devices. BUG=155668,145875 TEST=Manually verify that mouse-wheel events are still sent correctly to hosts. Review URL: https://chromiumcodereview.appspot.com/11151004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161730 0039d316-1c4b-4281-b951-d872f2087c98
* Remove support for Windows-style keycodes.wez@chromium.org2012-09-111-1/+1
| | | | | | | | | BUG=145057 Review URL: https://chromiumcodereview.appspot.com/10894050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155905 0039d316-1c4b-4281-b951-d872f2087c98
* Removed Vorbis from the audio codecs and replaced it with Opus.kxing@chromium.org2012-08-231-1/+1
| | | | | | Review URL: https://chromiumcodereview.appspot.com/10832418 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153008 0039d316-1c4b-4281-b951-d872f2087c98
* Speex encoding/decoding.kxing@chromium.org2012-08-211-1/+2
| | | | | | Review URL: https://chromiumcodereview.appspot.com/10831246 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152637 0039d316-1c4b-4281-b951-d872f2087c98
* Changed AudioPacket data to a repeated field.kxing@chromium.org2012-08-161-2/+5
| | | | | | | | | BUG= Review URL: https://chromiumcodereview.appspot.com/10827324 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151825 0039d316-1c4b-4281-b951-d872f2087c98
* Implement ChannelMultiplexer.sergeyu@chromium.org2012-08-082-0/+28
| | | | | | | | | | | ChannelMultiplexer allows multiple logical channels to share a single underlying transport channel. BUG=137135 Review URL: https://chromiumcodereview.appspot.com/10830046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150484 0039d316-1c4b-4281-b951-d872f2087c98
* Add DPI information to video packets.jamiewalch@chromium.org2012-07-141-0/+5
| | | | | | | | | | | | | | | The intention is that capturers can add this information and the client can make use of it to up-scale the desktop if it DPI is larger than that of the host by an integer multiple. For example, a standard-DPI host viewed on a retina-display Macbook Pro would no longer look tiny. BUG=135089 TEST=EncoderVp8Test.TestDpiPropagation Review URL: https://chromiumcodereview.appspot.com/10736046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146715 0039d316-1c4b-4281-b951-d872f2087c98
* Created a protocol buffer for AudioPacket.kxing@chromium.org2012-06-052-1/+53
| | | | | | | | | | BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10527005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140578 0039d316-1c4b-4281-b951-d872f2087c98
* [Chromoting] Initial plumbing for cursor shape.garykac@chromium.org2012-06-022-0/+14
| | | | | | | | | | | | | | | | | 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
* Add a message to allow clients to control the video channel.wez@chromium.org2012-05-032-0/+6
| | | | | | | | | | | | | Currently only enabling/disabling of video updates is controllable, which will be used to allow clients to suspend updates while their tab is not visible. This will be manually testable once the client is updated to hook visibility notifications to send pause/resume messages. BUG=107285 Review URL: http://codereview.chromium.org/10285005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135071 0039d316-1c4b-4281-b951-d872f2087c98
* Add ClientDimensions message to control channel.wez@chromium.org2012-04-272-1/+7
| | | | | | | | | | | This allows the client to indicate the tab dimensions so the host can resize to match. BUG=110212 Review URL: http://codereview.chromium.org/10223019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134180 0039d316-1c4b-4281-b951-d872f2087c98
* This CL removes the unused trace.proto definition and build target, and ↵wez@chromium.org2012-04-115-64/+4
| | | | | | | | | | | | makes all protobuf fields "optional". Fields marked required cause protobuf messages to be silently ignored if those fields are not present. By moving the fields to be optional we have more flexibility to remove fields in future. All of the previously-required fields were in client-to-host messages; clients will need to continue to provide those fields at least until all hosts are updated not to require them - this is primarily relevant for the KeyEvent "keycode" field. Review URL: http://codereview.chromium.org/10024003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131698 0039d316-1c4b-4281-b951-d872f2087c98
* Add the plumbing that will carry a clipboard item from a chromoting client ↵simonmorris@chromium.org2012-03-162-3/+14
| | | | | | | | | | | to a host. BUG=117473 Review URL: http://codereview.chromium.org/9646013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127195 0039d316-1c4b-4281-b951-d872f2087c98
* [Chromoting] Rename usb_keycode proto field to be consistent with keycode field.garykac@chromium.org2012-03-081-1/+1
| | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/9623008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125509 0039d316-1c4b-4281-b951-d872f2087c98
* Add usb_key_code to Chromotocol key events.garykac@chromium.org2012-02-281-2/+7
| | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/9446001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123856 0039d316-1c4b-4281-b951-d872f2087c98
* Remove BeginSessionDeprecated.sergeyu@chromium.org2012-02-212-12/+0
| | | | | | | | | | | | | Once M17 is released no clients will need BeginSession message from the host, so it's safe to remove it. BUG=104670 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=121055 Review URL: https://chromiumcodereview.appspot.com/9243021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122899 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 121055 - Remove BeginSessionDeprecated.sergeyu@chromium.org2012-02-092-2/+14
| | | | | | | | | | | | | | Once M17 is released no clients will need BeginSession message from the host, so it's safe to remove it. BUG=104670 Review URL: https://chromiumcodereview.appspot.com/9243021 TBR=sergeyu@chromium.org Review URL: https://chromiumcodereview.appspot.com/9369037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121261 0039d316-1c4b-4281-b951-d872f2087c98
* Remove BeginSessionDeprecated.sergeyu@chromium.org2012-02-082-14/+2
| | | | | | | | | | | Once M17 is released no clients will need BeginSession message from the host, so it's safe to remove it. BUG=104670 Review URL: https://chromiumcodereview.appspot.com/9243021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121055 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor channel dispatchers on the host side.sergeyu@chromium.org2011-11-181-2/+1
| | | | | | | | | | | The new HostControlDispatcher manages reading and writing to and from control channel on the host side. Similarly HostEventDispatcher is responsible for reading and, in future, writing to and from the event channel. Review URL: http://codereview.chromium.org/8468022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110625 0039d316-1c4b-4281-b951-d872f2087c98
* Remove old Authentication code that we don't use or need.sergeyu@chromium.org2011-11-054-69/+14
| | | | | | | | | | | | 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
* client-side wheel mouse supportgarykac@chromium.org2011-10-171-1/+3
| | | | | | | | | | BUG=none TEST=manual Review URL: http://codereview.chromium.org/6697024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105774 0039d316-1c4b-4281-b951-d872f2087c98
* Chromoting: Undo any mouse-downs that haven't been mouse-upped.garykac@chromium.org2011-09-261-1/+2
| | | | | | | | | | BUG=97466 TEST=manual Review URL: http://codereview.chromium.org/7973016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102687 0039d316-1c4b-4281-b951-d872f2087c98
* Unify gyp rules for running protoc.evan@chromium.org2011-08-182-119/+10
| | | | | | | | | | | | | - Add a protoc.gypi that can be gyp-included into any gyp file that wants to build .proto files. - Convert two remoting gyp files to use this new protoc.gypi. (Also fixes a bug in one of those remoting gyp files; a mistaken path was causing it to always rebuild under Xcode.) Review URL: http://codereview.chromium.org/7621073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97366 0039d316-1c4b-4281-b951-d872f2087c98