Repository navigation
sync: from linuxdeepin/dde-session-shell - #555
Conversation
Reviewer's GuideThe pull request synchronizes the quick-login wallpaper fixes from dde-session-shell: it changes client-side background preparation to show only a validated blurred image or a solid fallback, performs later updates asynchronously with shared multi-screen state and stale-request protection, avoids synchronous SystemInfo probing, adds extensive isolated D-Bus regression tests, and documents the implementation and deferred wallpaper-service work. Sequence diagram for quick-login wallpaper preparation and fallbacksequenceDiagram
participant LockFrame
participant FullScreenBackground
participant WallpaperCache
participant Renderer
LockFrame->>FullScreenBackground: setScreen()
FullScreenBackground->>WallpaperCache: Get(effect, originPath)
alt Valid blurred image returned before timeout
WallpaperCache-->>FullScreenBackground: blurPath
FullScreenBackground->>FullScreenBackground: updateScreenBluBackground(blurPath)
FullScreenBackground->>Renderer: Render validated blurred image
else Timeout, D-Bus error, or invalid image
WallpaperCache-->>FullScreenBackground: Error or invalid path
FullScreenBackground->>Renderer: Render SOLID_BACKGROUND_COLOR
end
LockFrame->>FullScreenBackground: setVisible()
FullScreenBackground->>WallpaperCache: async Get(effect, originPath)
WallpaperCache-->>FullScreenBackground: blurPath or error
FullScreenBackground->>Renderer: Update all screens or retain solid fallback
State diagram for shared quick-login wallpaper requestsstateDiagram-v2
[*] --> Uninitialized
Uninitialized --> Loading: updateBlurBackground(path)
Loading --> Ready: onGetBlurBackgroundReply(valid blurPath)
Loading --> Failed: onGetBlurBackgroundReply(error or invalid image)
Ready --> Loading: updateBlurBackground(new path)
Ready --> Ready: updateScreenBluBackground(blurPath)
Failed --> Failed: updateBackground(same path)
Failed --> Uninitialized: visibleChanged(false)
Loading --> Uninitialized: visibleChanged(false)
Ready --> Uninitialized: last frame destroyed
Loading --> Uninitialized: newer backgroundRequestId
Ready --> Failed: local image preparation fails
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
545e42e to
edd4505
Compare
Synchronize source files from linuxdeepin/dde-session-shell. Source-pull-request: linuxdeepin/dde-session-shell#102
edd4505 to
bec1b81
Compare
deepin pr auto reviewAI 代码审查报告基本信息
修改文件列表
变更概述本 PR 从 dde-session-shell 主仓库同步代码变更,主要内容包括:
四维度分析维度1:语法逻辑(23/25)✓
分析:
潜在问题:
维度2:代码质量(23/25)✓
分析:
潜在问题:
维度3:代码性能(19/20)✓
分析:
潜在问题:
维度4:代码安全(30/30)✓
分析:
漏洞对比统计:新增漏洞 0 个,减少漏洞 0 个,持平 0 个 评分总结
改进建议
审查结论本 PR 是从 dde-session-shell 主仓库同步的代码变更,核心改进是将锁屏背景加载从同步嵌套事件循环模式重构为异步状态机模式,同时优化了系统信息 DBus 调用方式避免启动阻塞。代码质量高,注释完整,测试覆盖全面(609行背景回退测试 + 116行系统信息测试)。未发现安全漏洞,性能有显著改善。建议合入。 |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: deepin-ci-robot, yixinshark The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Synchronize source files from linuxdeepin/dde-session-shell.
Source-pull-request: linuxdeepin/dde-session-shell#102
Summary by Sourcery
Harden lock-screen initialization and fullscreen wallpaper handling against unavailable services, asynchronous failures, and multi-screen lifecycle changes.
Bug Fixes:
Enhancements:
Tests:
Chores: