Conversation
Added new Wayland protocol treeland-prelaunch-splash-v2.xml to support enhanced prelaunch splash screen functionality. This version introduces a splash object that allows bidirectional communication between the compositor and applications. Key improvements include proper object lifecycle management where callers can destroy splash objects to dismiss them, and compositors can send events like timeouts back to callers. The protocol also adds support for instance IDs to handle multiple application instances and requires sandbox engine names for security context identification. Log: Added new prelaunch splash screen protocol with enhanced object management and bidirectional communication Influence: 1. Test splash screen creation with valid app_id, instance_id, and sandbox_engine_name 2. Verify splash object destruction properly dismisses the splash screen 3. Test compositor events like timeout notifications through the splash object 4. Validate multiple splash instances for non-singleton applications 5. Check XWayland window matching with splash screens 6. Test optional icon buffer functionality with null and valid buffers feat: 添加预启动闪屏协议 v2 版本 新增 Wayland 协议 treeland-prelaunch-splash-v2.xml 以支持增强的预启动闪 屏功能。此版本引入了闪屏对象,支持合成器和应用程序之间的双向通信。主要改 进包括正确的对象生命周期管理,调用者可以销毁闪屏对象来关闭闪屏,合成器可 以通过对象发送超时等事件给调用者。协议还增加了实例 ID 支持以处理多个应用 程序实例,并要求沙盒引擎名称用于安全上下文识别。 Log: 新增预启动闪屏协议,支持增强的对象管理和双向通信 Influence: 1. 测试使用有效的 app_id、instance_id 和 sandbox_engine_name 创建闪屏 2. 验证销毁闪屏对象是否正确关闭闪屏 3. 测试合成器通过闪屏对象发送的超时等事件通知 4. 验证非单例应用程序的多个闪屏实例 5. 检查 XWayland 窗口与闪屏的匹配机制 6. 测试可选图标缓冲区功能,包括空值和有效缓冲区
deepin pr auto review这份代码审查针对新增的 Wayland 协议扩展 以下是详细的审查意见: 1. 语法与规范性
2. 代码逻辑与功能
3. 代码安全
4. 代码性能
总结与修改建议代码建议对 <?xml version="1.0" encoding="UTF-8"?>
<protocol name="treeland_prelaunch_splash_v2">
<copyright><![CDATA[
SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
SPDX-License-Identifier: MIT
]]></copyright>
<interface name="treeland_prelaunch_splash_manager_v2" version="1">
<description summary="prelaunch splash screen manager">
This interface is a manager for creating prelaunch splash screens.
<!-- ... (描述保持不变) ... -->
</description>
<request name="destroy" type="destructor">
<description summary="destroy the manager"/>
</request>
<request name="create_splash">
<description summary="create a new splash screen">
Creates a new prelaunch splash screen and returns a splash object.
The `app_id` is a string that identifies the application. The compositor
will use this ID together with `sandbox_engine_name` to match the splash
screen with the actual application window when it appears. This
matching mechanism should also work for XWayland windows.
The `instance_id` identifies a specific application instance, allowing
multiple splashes for non-singleton applications. The compositor can
use this to associate a splash with a particular launch instance.
Callers MUST provide a non-empty `sandbox_engine_name` string which
identifies the sandboxing/container.
</description>
<arg name="splash" type="new_id" interface="treeland_prelaunch_splash_v2" summary="new splash object"/>
<arg name="app_id" type="string" summary="the application ID (required, non-empty)"/>
<arg name="instance_id" type="string" summary="the application instance ID"/>
<arg name="sandbox_engine_name" type="string" summary="the sandbox engine / security context name (required, non-empty)"/>
<arg name="icon_buffer" type="object" interface="wl_buffer" allow-null="true" summary="optional icon image as wl_buffer (e.g. wl_shm)"/>
</request>
</interface>
<interface name="treeland_prelaunch_splash_v2" version="1">
<description summary="prelaunch splash screen object">
Represents a single prelaunch splash screen created by the manager.
The caller can destroy this object to dismiss the corresponding splash.
The compositor may also send events through this object, for example
to notify the caller that the splash was closed due to a timeout.
After the 'timeout' event is sent, this object is inert and the client
should destroy it.
</description>
<!-- 新增:超时事件 -->
<event name="timeout">
<description summary="the splash was closed due to a timeout">
The splash screen was closed by the compositor because the
application window did not appear within the expected time frame.
The client should destroy this object upon receiving this event.
</description>
</event>
<request name="destroy" type="destructor">
<description summary="dismiss and destroy the splash">
Dismisses the splash screen and destroys this object.
</description>
</request>
</interface>
</protocol> |
zccrs
approved these changes
Feb 10, 2026
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: wineee, zccrs 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added new Wayland protocol treeland-prelaunch-splash-v2.xml to support enhanced prelaunch splash screen functionality. This version introduces a splash object that allows bidirectional communication between the compositor and applications. Key improvements include proper object lifecycle management where callers can destroy splash objects to dismiss them, and compositors can send events like timeouts back to callers. The protocol also adds support for instance IDs to handle multiple application instances and requires sandbox engine names for security context identification.
Log: Added new prelaunch splash screen protocol with enhanced object management and bidirectional communication
Influence:
feat: 添加预启动闪屏协议 v2 版本
新增 Wayland 协议 treeland-prelaunch-splash-v2.xml 以支持增强的预启动闪 屏功能。此版本引入了闪屏对象,支持合成器和应用程序之间的双向通信。主要改
进包括正确的对象生命周期管理,调用者可以销毁闪屏对象来关闭闪屏,合成器可
以通过对象发送超时等事件给调用者。协议还增加了实例 ID 支持以处理多个应用
程序实例,并要求沙盒引擎名称用于安全上下文识别。
Log: 新增预启动闪屏协议,支持增强的对象管理和双向通信
Influence: