Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resize #39819

Merged
merged 28 commits into from
Apr 29, 2024
Merged

Resize #39819

merged 28 commits into from
Apr 29, 2024

Conversation

ibeckermayer
Copy link
Contributor

@ibeckermayer ibeckermayer commented Mar 26, 2024

This adds resize capabilities to Teleport. This required several changes to IronRDP:

TODO:

changelog: Adds resize capability to windows desktop sessions.

probakowski and others added 14 commits March 19, 2024 20:55
…eenSpecs to the backend. Currently just gets logged in the WDS
This message is now used both after the connection is first established
and after the connection executes a Deactivation-Reactivation Sequence.

This fits snugly in to our existing message flow and ensures that the fast
path processor is updated appropriately whenever a Deactivation-Reactivation
Sequence is executed due to a resize event.
…). Screen resize works in this commit, though its still the case that if you do so before the channel is announced by the rdp server, it will end the session
…r until we're alerted by a new callback mechanism of the DisplayControlClient that the server has sent us its capabilities. This prevents an error where we send a resize before this event, which results either in an RDP error (if the channel is not opened) or a dropped event (if the server has not sent its capabilities yet).
Copy link
Collaborator

@zmb3 zmb3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good aside from inconsistent capitalization of acronyms.

web/packages/teleport/src/lib/tdp/client.ts Outdated Show resolved Hide resolved
web/packages/teleport/src/lib/tdp/client.ts Show resolved Hide resolved
web/packages/teleport/src/lib/tdp/codec.ts Outdated Show resolved Hide resolved
web/packages/teleport/src/lib/tdp/codec.ts Outdated Show resolved Hide resolved
@ibeckermayer ibeckermayer enabled auto-merge April 29, 2024 19:27
@ibeckermayer ibeckermayer added this pull request to the merge queue Apr 29, 2024
@zmb3 zmb3 removed this pull request from the merge queue due to a manual request Apr 29, 2024
@ibeckermayer ibeckermayer enabled auto-merge April 29, 2024 19:56
@ibeckermayer ibeckermayer added this pull request to the merge queue Apr 29, 2024
Merged via the queue into master with commit f2a51ed Apr 29, 2024
43 checks passed
@ibeckermayer ibeckermayer deleted the isaiah/resize branch April 29, 2024 20:32
@public-teleport-github-review-bot

@ibeckermayer See the table below for backport results.

Branch Result
branch/v15 Failed

ibeckermayer pushed a commit that referenced this pull request Apr 29, 2024
* Resize

* ???

* ???

* Fixes to compile

* Updates to latest IronRDP with dvc fix, cleans up some of the debug code

* Hooks up resize listener on the client and sends changes as ClientScreenSpecs to the backend. Currently just gets logged in the WDS

* Handles the new DeactivateAll ProcessorOutput

* hooks up client_write_screen_resize

* Renames tdp Connection Initialized to Connection Activated
This message is now used both after the connection is first established
and after the connection executes a Deactivation-Reactivation Sequence.

This fits snugly in to our existing message flow and ensures that the fast
path processor is updated appropriately whenever a Deactivation-Reactivation
Sequence is executed due to a resize event.

* Switch monitor orientation based on width/height

* remove superfluous canvas size sync

* Updates to the most up-to-date hash for IronRDP (not merged to master). Screen resize works in this commit, though its still the case that if you do so before the channel is announced by the rdp server, it will end the session

* Updates to the most recent hash for IronRDP feat/dynamic-resize

* Adds a mechanism to withhold sending resize requests to the RDP server until we're alerted by a new callback mechanism of the DisplayControlClient that the server has sent us its capabilities. This prevents an error where we send a resize before this event, which results either in an RDP error (if the channel is not opened) or a dropped event (if the server has not sent its capabilities yet).

* Refactoring after update to the tip of Devolutions/IronRDP#424

* Adds windowOnResize to story

* adds Determine Toolchain Versions and cache paths and Print versions steps to os-compatibility-test.yaml

* fixes debug log formatting

* Updates to local IronRDP and later IronRDP api

* updates to IronRDP latest rev on Devolutions/IronRDP#430

* reverting mistaken changes

* throttle -> debounce and naming changes

* js renamings

* updates to IronRDP master

---------

Co-authored-by: Przemko Robakowski <[email protected]>
@ibeckermayer ibeckermayer mentioned this pull request Apr 29, 2024
github-merge-queue bot pushed a commit that referenced this pull request Apr 30, 2024
* Resize

* ???

* ???

* Fixes to compile

* Updates to latest IronRDP with dvc fix, cleans up some of the debug code

* Hooks up resize listener on the client and sends changes as ClientScreenSpecs to the backend. Currently just gets logged in the WDS

* Handles the new DeactivateAll ProcessorOutput

* hooks up client_write_screen_resize

* Renames tdp Connection Initialized to Connection Activated
This message is now used both after the connection is first established
and after the connection executes a Deactivation-Reactivation Sequence.

This fits snugly in to our existing message flow and ensures that the fast
path processor is updated appropriately whenever a Deactivation-Reactivation
Sequence is executed due to a resize event.

* Switch monitor orientation based on width/height

* remove superfluous canvas size sync

* Updates to the most up-to-date hash for IronRDP (not merged to master). Screen resize works in this commit, though its still the case that if you do so before the channel is announced by the rdp server, it will end the session

* Updates to the most recent hash for IronRDP feat/dynamic-resize

* Adds a mechanism to withhold sending resize requests to the RDP server until we're alerted by a new callback mechanism of the DisplayControlClient that the server has sent us its capabilities. This prevents an error where we send a resize before this event, which results either in an RDP error (if the channel is not opened) or a dropped event (if the server has not sent its capabilities yet).

* Refactoring after update to the tip of Devolutions/IronRDP#424

* Adds windowOnResize to story

* adds Determine Toolchain Versions and cache paths and Print versions steps to os-compatibility-test.yaml

* fixes debug log formatting

* Updates to local IronRDP and later IronRDP api

* updates to IronRDP latest rev on Devolutions/IronRDP#430

* reverting mistaken changes

* throttle -> debounce and naming changes

* js renamings

* updates to IronRDP master

---------

Co-authored-by: Przemko Robakowski <[email protected]>
ibeckermayer pushed a commit that referenced this pull request May 4, 2024
`screen_size` is meant to be a static override of the screen size,
however this property was mistakenly lost when
#39819 was merged.

This commit restores the behavior of `screen_size` by ignoring resizes
when it is set.
github-merge-queue bot pushed a commit that referenced this pull request May 6, 2024
* Ignores resizes when a desktop has `screen_size` set

`screen_size` is meant to be a static override of the screen size,
however this property was mistakenly lost when
#39819 was merged.

This commit restores the behavior of `screen_size` by ignoring resizes
when it is set.

* hasSizeOverride and //nolint
ibeckermayer pushed a commit that referenced this pull request May 6, 2024
* Ignores resizes when a desktop has `screen_size` set

`screen_size` is meant to be a static override of the screen size,
however this property was mistakenly lost when
#39819 was merged.

This commit restores the behavior of `screen_size` by ignoring resizes
when it is set.

* hasSizeOverride and //nolint
github-merge-queue bot pushed a commit that referenced this pull request May 6, 2024
* Ignores resizes when a desktop has `screen_size` set

`screen_size` is meant to be a static override of the screen size,
however this property was mistakenly lost when
#39819 was merged.

This commit restores the behavior of `screen_size` by ignoring resizes
when it is set.

* hasSizeOverride and //nolint
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants