Skip to content

windows 原生rdp集成问题修复 - #92

Merged
feigeCode merged 2 commits into
feigeCode:devfrom
paofu-cium:dev
Aug 23, 2026
Merged

windows 原生rdp集成问题修复#92
feigeCode merged 2 commits into
feigeCode:devfrom
paofu-cium:dev

Conversation

@paofu-cium

Copy link
Copy Markdown
Contributor

Closes #[issue number]

Description

Describe in English for the changes made in this pull request and the problem it solves.
Please keep 1 PR to solve 1 problem, and keep Small improvements should be small modifications to make PR easier to review and to merge.

Screenshot

Before After
[Put Before Screenshot here] [Put After Screenshot here]

Break Changes

Describe any breaking changes introduced by this pull request. If none, remove this section.

  • Change 1
- Old code snippet
+ New code snippet

How to Test

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.

Checklist

  • I have read the CONTRIBUTING document and followed the guidelines.
  • Reviewed the changes in this PR and confirmed AI generated code (If any) is accurate.
  • Passed cargo run for story tests related to the changes.
  • Tested macOS, Windows and Linux platforms performance (if the change is platform-specific)

ActiveX 宿主创建/更新边界/凭据应用/Connect 都会泵 COM 消息,
派发 pending GPUI 前台任务并重入已借用的 App:常驻后台任务
(AsyncApp::update, async_context.rs:165)直接 panic,同时
on_request_frame 的 handle.update(...).log_err() 跳帧且丢失
next_frame_callbacks,导致窗口白屏。

初始化重构为五个阶段,所有会泵消息的 COM 调用期间零 App 借用:
- Phase 1(借用内):纯 Rust 快照输入(HWND、generation、bounds、
  连接选项克隆),selection/proxy 检查前置
- Phase 2(无借用):create_with_owner 创建 ActiveX 宿主、
  update_bounds、parse_destination、连接选项与凭据准备
- Phase 3(借用内):shutdown 注册与失败路由(注册仍先于 connect,
  保持退出 drain 安全性)
- Phase 4(无借用):Connect
- Phase 5(借用内):attach

其他相关改动一并纳入:
- windows_native.rs 新增 parent_window_owner / create_with_owner
- remote_desktop 共享 crate 下沉 feature 与能力探测
- 连接测试分流与 provider guard 跳过逻辑
- render_contract_tests 重写三个契约测试:
  create/prepare/connect 全部无借用、Phase 2 无 GPUI 上下文
@feigeCode
feigeCode merged commit f6795ad into feigeCode:dev Aug 23, 2026
2 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants