核心组件
- graphic_2d
- graphic_surface
- window_manager
- graphic_3d
TOPIC 02 / 08 · ARKUI → ROSEN → DISPLAY
梳理 ArkUI、Rosen 渲染服务、Surface 与窗口管理之间的职责和关键缓冲区路径。
先确认问题发生在哪一层,再沿接口检查所有权、缓冲区格式、同步与时序。动态条目只在证据和相关性达到公开阈值后出现。
RELATED SIGNALS
摘要待补:fix(render_service_base): fix ShadowBatching redundant drawing in ShadowPass Created-by: songmengxiang_ Commit-by: songmengxiang Merged-by: openharmony_ci Description: **Description:** **Issue number:** https://gitcode.com/openharmony/graphic_graphic_2d/issues/25287 **Test & Result:** **CodeCheck:** <table> <thead> <tr> <th>类型</th> <th>自检项</th> <th>自检结果</th> </tr> </thead> <tbody> <tr> <td rowspan="2"><strong>多线程</strong></td> <td>在类的成员变量中定义了vector/map/list等容器类型,且在多个成员函数中有操作时,需要加锁保护</td> <td>自检结果:pass</td> </tr> <tr> <td>定义全局变量,在多个函数中都有操作时,需要加锁保护</td> <td>自检结果:pass</td> </tr> <tr> <td rowspan="4"><strong>内存操作</strong></td> <td>调用外部接口时,确认是否对返回值做了判空判断,尤其外部接口返回了nullptr的情况,避免进程崩溃</td> <td>自检结果:pass</td> </tr> <tr> <td>内存操作优先使用安全函数,并检查其返回值</td> <td>自检结果:pass</td> </tr> <tr> <td>注意每个异常退出流程,是否都已经将资源释放(推荐使用RAII)</td> <td>自检结果:pass</td> </tr> <tr> <td>隐式内存分配场景:realpath、ReadParcelable序列化、cJSON相关函数时等,需主动释放或使用智能指针</td> <td>自检结果:pass</td> </tr> <tr> <td rowspan="3"><strong>外部输入</strong></td> <td>所
摘要待补:当前证据不足,仅展示原题与来源。
摘要待补:add isinuse Created-by: AZ22 Commit-by: wangdi Merged-by: openharmony_ci Description: **Description:** add isinuse **Issue number:** https://gitcode.com/openharmony/window_window_manager/issues/15344 **Test & Result:** **CodeCheck:** <table> <tr> <th>类型</th><th>自检项</th><th>自检结果</th> </tr> <tr> <td rowspan="2">多线程相关</td><td>在类的成员变量中定义了vector/map/list等容器类型,且在多个成员函数中有操作时,需要加锁保护</td><td>自检结果:Pass</td> </tr> <tr> <td>定义全局变量,在多个函数中都有操作时,需要加锁保护</td><td>自检结果:Pass</td> </tr> <tr> <td rowspan="4">内存相关</td><td>调用外部接口时,确认是否对返回值做了判断,尤其外部接口返回了nullptr的情况,避免进程崩溃</td><td>自检结果:Pass</td> </tr> <tr> <td>调用安全函数时,如memcpy_s等,是否检查其返回值</td><td>自检结果:Pass</td> </tr> <tr> <td>检查函数中是否涉及了内存或资源申请(如文件句柄),注意每个异常退出流程,是否都已经将资源释放(推荐使用RAII)</td><td>自检结果:Pass</td> </tr> </tr> <tr> <td>隐式内存分配场景:realpath、ReadParcelable序列化、cJSON相关函数时等,需主动释放或使用智能指针</td><td>自检结果:Pass</td> </tr> <tr> <td rowspan="4">校验外部输入</td><td>使用nlohmann:json解析外部输入时,需判断参数类型是否符合预期</td><td>自检结果:Pass</td> </tr> <tr> <td>所有外部输入均不可信,需判断外部输入是否直接作为内存分配的大小,数组下标、循环条件、SQL查询等</td><td>自检结果:Pass</td> </tr> <tr>
摘要待补:限制单 pid 的 RSRenderService 连接数 Created-by: chuchengcheng Commit-by: chuchengcheng Merged-by: openharmony_ci Description: **Description:** `RSRenderService::CreateConnection` 对单个 calling pid 可建立的连接数没有上限,恶意客户端可不断创建连接耗尽 RenderService 连接与内存资源(DoS)。 本 PR: 1. 新增 `MAX_CONNECTION_COUNT_PER_PID = 64`(`rs_common_def.h`);`CreateConnection` 加锁前后双重校验,新建连接(非 token 复用)达上限即拒绝返回 nullptr;`pidConnectionCounts_` 计数,新建自增、`RemoveConnection` 时自减并在归零后擦除。 2. `GetConnection`/`RemoveConnection` 适配 `ConnectionEntry`(含 remotePid 字段)。 **Issue number:** #25421 **Test & Result:** - 静态检查:`git diff --check` 通过;改动行人工核对符合 `.clang-format`(ColumnLimit 120)。 - 未补单测:`RSRenderService` 的 `vsyncManager_`/`screenManager_`/`renderProcessManager_` 默认 nullptr(仅 `Init()` 填充),单测里 `MakeSptr()` 后 `CreateConnection` 首次即 null 解引崩溃,无法用公开 API 建 64 条连接触发上限;状态注入需 `#define private public`,经评估不引入。64-cap 由集成/手工覆盖。 - 单测/构建未在本地执行(缺构建机入口),需 CI 确认。 **CodeCheck:** <table> <thead> <tr> <th>类型</th> <th>自检项</th> <th>自检结果</th> </tr> </thead> <tbody> <tr> <td rowspan="2"><strong>多线程</strong></td> <td>在类的成员变量中定义了vector/map/list等容器类型,且在多个成员函数中有操作时,需要加锁保护</td> <td>Pass:connections_/pidConnecti
摘要待补:窗口透传插帧开关调用方参数 Created-by: gcw_sPCsris4 Commit-by: gcw_sPCsris4 Merged-by: openharmony_ci Description: **Description:** 窗口透传插帧开关调用方参数 **Issue number:** https://gitcode.com/openharmony/window_window_manager/issues/15337 **Test & Result:** Pass **CodeCheck:** <table> <tr> <th>类型</th><th>自检项</th><th>自检结果</th> </tr> <tr> <td rowspan="2">多线程相关</td><td>在类的成员变量中定义了vector/map/list等容器类型,且在多个成员函数中有操作时,需要加锁保护</td><td>自检结果:Pass</td> </tr> <tr> <td>定义全局变量,在多个函数中都有操作时,需要加锁保护</td><td>自检结果:Pass</td> </tr> <tr> <td rowspan="4">内存相关</td><td>调用外部接口时,确认是否对返回值做了判断,尤其外部接口返回了nullptr的情况,避免进程崩溃</td><td>自检结果:Pass</td> </tr> <tr> <td>调用安全函数时,如memcpy_s等,是否检查其返回值</td><td>自检结果:Pass</td> </tr> <tr> <td>检查函数中是否涉及了内存或资源申请(如文件句柄),注意每个异常退出流程,是否都已经将资源释放(推荐使用RAII)</td><td>自检结果:Pass</td> </tr> </tr> <tr> <td>隐式内存分配场景:realpath、ReadParcelable序列化、cJSON相关函数时等,需主动释放或使用智能指针</td><td>自检结果:Pass</td> </tr> <tr> <td rowspan="4">校验外部输入</td><td>使用nlohmann:json解析外部输入时,需判断参数类型是否符合预期</td><td>自检结果:Pass</td> </tr> <tr> <td>所有外部输入均不可信,需判断外部输入是否直接作为内存分配的大小,数组下标、循环条件、SQL查询等</td><td>自检结果:Pass</td>
摘要待补:skip prevaldate tdd when not support Created-by: shi_guoquan Commit-by: s30023221 Merged-by: openharmony_ci Description: **Description:** skip prevaldate tdd when not support **Issue number:** https://gitcode.com/openharmony/graphic_graphic_2d/issues/25445 **Test & Result:** pass **CodeCheck:** <table> <thead> <tr> <th>类型</th> <th>自检项</th> <th>自检结果</th> </tr> </thead> <tbody> <tr> <td rowspan="2"><strong>多线程</strong></td> <td>在类的成员变量中定义了vector/map/list等容器类型,且在多个成员函数中有操作时,需要加锁保护</td> <td>自检结果:pass</td> </tr> <tr> <td>定义全局变量,在多个函数中都有操作时,需要加锁保护</td> <td>自检结果:pass</td> </tr> <tr> <td rowspan="4"><strong>内存操作</strong></td> <td>调用外部接口时,确认是否对返回值做了判空判断,尤其外部接口返回了nullptr的情况,避免进程崩溃</td> <td>自检结果:pass</td> </tr> <tr> <td>内存操作优先使用安全函数,并检查其返回值</td> <td>自检结果:pass</td> </tr> <tr> <td>注意每个异常退出流程,是否都已经将资源释放(推荐使用RAII)</td> <td>自检结果:pass</td> </tr> <tr> <td>隐式内存分配场景:realpath、ReadParcelable序列化、cJSON相关函数时等,需主动释放或使用智能指针</td> <td>自检结果:pass</td> </tr> <tr> <td rowspan="3"><strong>外部输入</strong></td> <td>所有外部输
摘要待补:Co-Authored-By: Agent Signed-off-by: 周思远 <zhousiyuan8@huawei.com> AI[100%] Human Fixed[0%] Human[0%] AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local>
摘要待补:支持模式切换 Created-by: chenjunliang26 Commit-by: chenjunliang26 Merged-by: openharmony_ci Description: **Description:** 支持模式切换 **Issue number:** 支持模式切换 **Test & Result:** 支持模式切换 **CodeCheck:** <table> <tr> <th>类型</th><th>自检项</th><th>自检结果</th> </tr> <tr> <td rowspan="2">多线程相关</td><td>在类的成员变量中定义了vector/map/list等容器类型,且在多个成员函数中有操作时,需要加锁保护</td><td>自检结果:</td> </tr> <tr> <td>定义全局变量,在多个函数中都有操作时,需要加锁保护</td><td>自检结果:</td> </tr> <tr> <td rowspan="4">内存相关</td><td>调用外部接口时,确认是否对返回值做了判断,尤其外部接口返回了nullptr的情况,避免进程崩溃</td><td>自检结果:</td> </tr> <tr> <td>调用安全函数时,如memcpy_s等,是否检查其返回值</td><td>自检结果:</td> </tr> <tr> <td>检查函数中是否涉及了内存或资源申请(如文件句柄),注意每个异常退出流程,是否都已经将资源释放(推荐使用RAII)</td><td>自检结果:</td> </tr> </tr> <tr> <td>隐式内存分配场景:realpath、ReadParcelable序列化、cJSON相关函数时等,需主动释放或使用智能指针</td><td>自检结果:</td> </tr> <tr> <td rowspan="4">校验外部输入</td><td>使用nlohmann:json解析外部输入时,需判断参数类型是否符合预期</td><td>自检结果:</td> </tr> <tr> <td>所有外部输入均不可信,需判断外部输入是否直接作为内存分配的大小,数组下标、循环条件、SQL查询等</td><td>自检结果:</td> </tr> <tr> <td>外部输入的路径不可信,需使用realpath做标准化处理,并判断路径的合法性</td><td>自检结果:</td> </tr>