1. 环境
项目 值
360安全浏览器 17.0.1065.0(安装于 %APPDATA%\360se6\Application\17.0.1065.0)
操作系统 Windows 10 Pro 25H2,内部版本 26200.9457,AMD64
系统语言 zh-CN
显示器 3840×2160,缩放 150%(渲染进程参数 --device-scale-factor=1.5)
关键设置 设置 → 个性化 → 颜色 → 应用模式 = 深色(HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme = 0)
浏览器自带夜间模式 Preferences → "sedarkmode": { "enable": true, "mode_type": 1, "opacity_value": 2 }(mode_type: 1 为日间模式)
2. 复现步骤
设置 → 个性化 → 颜色 → 选择模式 = 自定义 → 应用模式 = 深色
完全退出 360安全浏览器后重新启动
打开「下载」管理窗口(Ctrl+J,或点击工具栏下载图标)
观察列表中每一行的文件名、日期、大小
对照:把第 1 步的「应用模式」改为浅色,其余不变,重复第 2–4 步 → 显示完全正常。
3. 实际结果 / 期望结果
实际结果:每行的文件图标、「安全」角标、「打开文件 / 打开目录 / 删除」按钮都正常显示,但文件名、日期、大小文字完全看不见(白底白字)。
期望结果:文件名应按皮肤中定义的深色显示(color="000000E6")。
4. 量化证据(对截图逐像素测量)
采样位置 皮肤中定义的颜色 实测值 结论
普通行 · 文件名区 000000E6(黑 90%) 该区域 14,774 个像素全部为纯白 rgb(255,255,255),无任何非白像素 ❌ 文字被画成白色
普通行 · 「打开文件」 000000E6(黑 90%) rgb(31,31,31) ✅ 正常
高亮行 · 文件名区 悬停色 color_hot="03B752" rgb(3,183,82) = #03B752 ✅ 与 color_hot 完全一致
高亮行 · 大小区 00000066(黑 40%,叠在 #EBEBEB 上应约为 #8D8D8D) rgb(245,245,245) —— 比它所在的行背景 rgb(235,235,235) 还要亮 ❌ 被画成白色(且保留了 alpha)
行背景位图 Dl_BG_Normal.9.png — 中心为不透明纯白 rgb(255,255,255) 背景不随主题变化
列表底色 bgcolor="F3F3F3" / download_bg_grey.9.png #F3F3F3 rgb(243,243,243) ✅ 一致
关键推理:同一个窗口、同一批颜色字面量,<labelbutton>(打开文件)渲染正确,而 <link> / <label>(文件名、大小、状态)被画成白色 —— 说明这三处文本并非按皮肤的 color 绘制。
5. 定位分析(给工程师的技术线索)
5.1 窗口本体
标题:下载;窗口类:Chrome_WidgetWin_2;归属:360se.exe 主进程(非扩展弹窗)
承载模块:NotifyDown.dll,内部窗口名 NotifyDown_DownloadWnd
5.2 相关皮肤文件
路径:%APPDATA%\360se6\Application\17.0.1065.0\skin\iframe.srx(ZIP 包)
iframe/download/download_mgr_dlg.xml —— 下载窗口主定义
iframe/download/download_item_finished.xml(及 _downloading / _paused / _failed / _deleted)—— 列表行模板
5.3 行模板中与问题直接相关的片段
xml
<root name="download_item" bgsrc="Dl_BG_Normal.9.png" layout_width="fill_parent" layout_height="60" ...>
...
<labelbutton name="item_open" text="打开文件" ... font="109"
color="000000E6" color_hot="000000E6" color_pressed="000000E6" .../>
<link name="task_name_link" ... font="109"
color="000000E6" color_hot="03B752" pressed_color="029C4A" />
<label name="task_size" ... font="105" color="00000066" .../>
<label name="task_status" ... font="105" color="00000066" .../>
5.4 观察到的矛盾点
item_open 与 task_name_link 使用完全相同的 color="000000E6":前者渲染为 rgb(31,31,31)(正常),后者被渲染成白色。
task_name_link 的 color_hot="03B752"(彩色、非灰阶)在悬停状态下能正确生效(实测 rgb(3,183,82))。
同皮肤包中 iframe/omnibox_result_view.xml 使用 color="0000009A",而夜间皮肤 se12nightwallpaper/.../omnibox_result_view.xml 使用 color="FFFFFF9A",两者均带 auto_color="false"。可见皮肤字色格式为 RRGGBBAA,且 auto_color="false" 是官方用于「锁定字面颜色、不随主题自动反色」的属性。
给下载行模板中带 color 的 <link> / <label> 补上 auto_color="false"(共 23 处)后,随浏览器重启加载验证,字色仍为白色 —— 说明这三处文本不读取皮肤的 color / auto_color。
5.5 背景侧的情况
行背景来自位图 iframe/download/Dl_BG_Normal.9.png(40×48):内部为不透明纯白 #FFFFFF,透明圆角 + 洋红(#FF00FF)1px 九宫格边。
该位图被 5 个下载行模板以及 download_newtask_dlg.xml、myvideo_item.xml、tray_item_news.xml、tray_item_video.xml 共用。
整个 iframe/download/ 目录下不存在任何 dark / night 变体;se13.srx、se16.srx 等皮肤均不覆盖 iframe/download。
因此深色主题下「文字按主题取白 + 背景位图固定为白」的错配必然发生。
5.6 推测的成因
下载列表控件(DownloadListView)对 task_name_link / task_size / task_status 这三个具名元素自行按当前主题取色绘制,覆盖了皮肤配置;而 <labelbutton> 等按钮仍走皮肤引擎的字面颜色路径,所以表现不一致。
6. 已排除的其他原因
可能原因 检查结果
强制暗色(force dark / auto dark)实验开关 Local State → browser.enabled_labs_experiments 仅 ["disable-direct-write"],无相关项
Windows 高对比度 SPI_GETHIGHCONTRAST 返回 flags=0x7E,HIGHCONTRASTON 位未置位 → 未开启
显示缩放 / DPI 150%,仅影响尺寸,与配色无关
扩展注入样式 已装 7 个扩展(360AI翻译专家、ScriptCat、找券券及 2 个 360 内置组件等),无任何暗色/主题注入类扩展
缓存脏数据 下载窗口 UI 包版本与浏览器版本一致,磁盘上无旧副本
浏览器自带「夜间模式」 sedarkmode.enable 在设置页中仅控制「插件栏右侧显示夜间模式按钮」,并非本次的触发开关(mode_type 为 1,即日间)
7. 已尝试且无效的规避(供参考)
给 download_item_*.xml 中带 color 的 <label> / <link> 补 auto_color="false"(共 23 处)→ 重启加载后无效。
将行背景替换为深色位图 + 行内图标转浅色 + 行内按钮改白字 → 文字变可读,但「浅色窗口里嵌一块深色列表」观感不佳,不是可接受的方案。
以上两次改动均已完整回滚,当前浏览器为原版未修改状态(iframe.srx SHA256 已核对一致)。
8. 影响面
所有把 Windows「应用模式」设为深色的用户(Windows 10 / 11 均提供该独立选项,可与深色任务栏并存)都会遇到:打开下载管理窗口时文件名、日期、大小完全不可见,无法判断下载了什么、是否完成,只能靠文件图标和「安全」角标猜测,严重影响可用性。
9. 建议修复方向
首选:让下载列表行的文字取色与行背景使用同一套主题来源 —— 深色主题下同时提供深色行背景,或让控件取色遵循皮肤中的 color / auto_color="false"。
低成本兼容:为 iframe.srx → iframe/download/download_item_*.xml 增加深色变体(深色行背景位图 + 浅色字色),随主题切换。
兜底:至少让 <link> / <label> 与同一行内的 <labelbutton> 行为一致(后者在深色主题下正确使用了 color="000000E6")。
临时规避话术(可告知用户):设置 → 个性化 → 颜色 → 选择模式 = 深色,同时把应用模式 = 浅色(任务栏 / 开始菜单仍保持深色)。此方法经实测可完全恢复正常显示。
|
|
|
|
|
|
评论
直达楼层