Repository navigation
Releases
MCloud Browser v158.0.8127.30
MCloud Browser v158.0.8127.30
基于 Chromium M158(158.0.8127.30,官方 tag 158.0.8127.30 / commit cb5de443be),Windows x64。
本版为 M155 → M158 内核升级(跨 3 个里程碑)。目标版本取 Chromium 官方 tag 列表中
158.0.8127.* 系列的最新补丁 tag;M158 当前仍为 Beta(计划 2026-11-17 转 Stable),
按 2026-11-08 的决策本次破例抢跑,下一次升级锚定 M159/M160 GA。
主要变化
- 安全:一次性带入 Chrome 156 stable 的 354 项安全修复(6 Critical)与
157 stable 的 213 项(7 Critical)。项目没有自动更新机制,存量用户需手动重装。 - 内核能力:IndexedDB 后端改 SQLite(156);HTML-in-Canvas 转正、
Background Fetch 强制 CORS(157);Web Install API 与<install>元素、
媒体状态伪类、OfflineAudioContext 增量渲染、WebTransport 增强(158)。 - 兼容性回退:自 Chrome 158 Stable 起 XSLT 停止工作(libxslt 攻击面),
老 RSS / XML sitemap 页面会显示裸 XML;OT 与企业策略例外到 Chrome 176(2027-08-17)。 - 定制面复核:8 处注入锚点在官方
.30上逐项一致(加载器、-O3 链路、
chrome.release、AVX2 基线、后台模式、DoH 校验等);-O3仍为
cflags += ["/clang:-O3"],M155 → M158 形态未变。 - DoH 可信列表:DNSPod / 阿里云公共 DNS 随
deploy_mcloud.py第 6 步重放;
两个端点的 POST 与 GET 均实测返回 HTTP 200 /application/dns-message/ DNS rcode=0。 - 优化清单:沿用 52 项 feature + 3 项普通开关。M158 上的平台有效默认值、
pin 集合与运行时回显期望值以docs/tasks/m158-upgrade-task.md和升级报告为准,
本说明不写未经实测的数字。 - 新性能 flag:M158 新增候选(如
GpuInitOptimization、
ANGLETrimMemoryOnIdle、QuicAlwaysCancelPreExistingProbingOnMigration)仅进入
A/B 队列,未写入mcloud_flags.txt。
安装(两个发布物,请用 setup 那个)
| 文件 | 用途 |
|---|---|
mcloud_158.0.8127.30_win64_setup.exe |
推荐。外层安装包装器:优雅关闭正在运行的本产品实例 → 安装 → 复验根 chrome.exe 确实升到本版本 → 清理临时文件与残留进程 → 自动重启浏览器。默认就地更新机器上已存在的那一份;两处都没装过时默认装到用户级目录,显式 --system-level 走系统级并自举提权。 |
mcloud_158.0.8127.30_win64_mini_installer.exe |
上游原生安装器本体。浏览器正在运行时更新会静默不生效(缺陷 D119),只在浏览器已完全退出时使用。 |
包装器另有 --list-only 与 --no-launch 两个开关;退出码 0=成功且已复验 / 1=复验未通过 / 2=环境不满足。
已知限制
- 未做代码签名:从 GitHub 下载后首次运行会有 SmartScreen 警告。
- 打 tag 不会自动带出安装包:
release.yml不在 runner 上编译内核,安装包必须走
GitHub Release 资产上传(缺陷档案 D45)。 - M158 为 Beta 抢跑:11-17 GA 后上游仍会出补丁 tag,本包会随之落后;
下一次升级锚定 M159/M160 GA。
校验
下载后核对 SHA256(两个发布物都要核):
certutil -hashfile mcloud_158.0.8127.30_win64_setup.exe SHA256
certutil -hashfile mcloud_158.0.8127.30_win64_mini_installer.exe SHA256
- setup(推荐)预期值:
84a10de7c770b7cf98ea9dc7ec458e8c4fcbcb05d03eb480ac9a6ac4a38ef4a7 - mini_installer 预期值:
f5f2191159203071f98f2a2fe48b558c1037a1cd3724d648018fb380f77da6a3
两者都是同一个内核构建(158.0.8127.30)的产物;setup 只是把 mini_installer 内嵌进外层安装程序。
MCloud Browser v155.0.8059.40
MCloud Browser v155.0.8059.40
基于 Chromium M155(155.0.8059.40),Windows x64。本版是一次内核升级(M151 → M155),保持既有性能取向与
已定案的稳定性禁用项,并在升级过程中修正了两处口径问题。
变化
- 内核 M155:V8 15.5.35.20、clang
llvmorg-24-init-7747、PGO 使用 8059 系列 profile。 - 定制面更小:需要重放的上游改动由 7 个文件降到 6 个文件——不再翻转
kD3D12VideoDecoder
上游默认(该解码器仍由启动标志显式禁用,以规避 Intel 核显 D3D12 解码绿屏)。 - 冻结缓解真正生效:
SkiaGraphite在上游本就是默认启用,此前仅注释掉启用行并不构成禁用;
本版改为显式--disable-features=SkiaGraphite(其余 3 项禁用状态不变)。 - 清单去虚:删除
FlingSchedulingImprovements(M155 起上游已彻底移除该 feature)。 - 安装版才真正带上优化清单(r4):
mcloud_flags.txt改由 VersionDir 投递到Application/155.0.8059.40/,加载器 v8 按 chrome.dll 所在目录(base::DIR_MODULE)优先查找,兼容开发树/便携包的扁平布局与安装版的版本子目录布局。此前登记在 Application 根目录的条目会被打包但不被安装(setup.exe 对根目录只搬固定三件套),所以 r3 及更早的安装包在干净机器上等于零内置优化(缺陷 D105)。 - 加载器路径优先级修正(r5):v7 以 exe 同目录为第一候选,会让一份残留的
Application\mcloud_flags.txt永久静默压掉安装包投递的正式文件(缺陷 D109)。v8 改以 chrome.dll 所在目录为第一候选,与上游GetModulePath同口径。
安装(两个发布物,请用 setup 那个)
| 文件 | 用途 |
|---|---|
mcloud_155.0.8059.40_win64_setup.exe |
推荐。外层安装包装器:优雅关闭正在运行的本产品实例 → 安装 → 复验根 chrome.exe 确实升到本版本 → 清理临时文件与残留进程 → 自动重启浏览器。默认就地更新机器上已存在的那一份(不擅自换安装位置,避免旧路径的任务栏固定项失效);两处都没装过时默认装到用户级目录(不弹 UAC),显式 --system-level 走系统级并自举提权。 |
mcloud_155.0.8059.40_win64_mini_installer.exe |
上游原生安装器本体。如果浏览器正在运行,更新会静默不生效——根启动桩是被锁的映像,上游把它暂存成 new_chrome.exe 并把收尾改名委托给 Google Update,而本产品不发布 Google Update(缺陷 D119,已实测)。只在浏览器已完全退出、或你确认自己需要裸安装器时使用。 |
包装器另有 --list-only(只报告将关闭哪些实例、不关闭不安装)与 --no-launch(装完不重启)两个开关,退出码 0=成功且已复验 / 1=复验未通过 / 2=环境不满足。
自上次发布(v151.0.7922.99-r3)以来
最重要的一条:以前的安装包在干净机器上根本不带运行时优化清单。
mcloud_flags.txt 此前登记在安装包不会安装的位置——D47 修的是"打包侧没登记",
而 D105 才查清真正丢件的环节在安装侧:setup.exe 对 Application 根目录只搬固定三件套。
所以 r3 及更早的每一个包,装到干净系统上时那 52 项 feature + 3 项普通开关整体静默丢失且不报错。
现在它随版本目录投递,并已用一次真实的 --system-level 干净安装复验:文件落地、与仓库逐字节一致、
对安装后的二进制回显 enable 50 / disable 2(第6周期 D170 补上 UserBlockingAboveNormalPriority
之后的口径;D142 之后曾为 49 / 2,再早是 51 / 2)。
本包相对上一份 r5 包的差异(第5周期 D121–D155)
- 用户级安装此前整体失效(D121,Critical):包装器把
--system-level写死传给 mini_installer。
后果是选"用户级"时既不提权(提权分支按 systemLevel=false 判断,不触发),又真的装进
Program Files,而复验查的是用户目录 ⇒ 必然报"复验未通过"。现已按systemLevel条件传参
(上游 mini_installer 只认--system-level,用户级就是"不传该开关")。
判据:.bugreview/installer_arg_test.py—— 用假安装包把收到的 argv 录进文件,
不触碰任何真实安装位置;同一条用例跑在修复前的源码上会录到--system-level,
Red 与 Green 双向都成立,所以这条判据有区分力,不是"两边都恰好通过"。 - 系统级安装后浏览器不再继承管理员令牌(D123,安全):此前在提权进程内直接
Process.Start拉起浏览器,整个浏览会话(含全部 renderer / GPU / utility 子进程)以
admin 运行——任何网页侧 RCE 直接等于本机管理员,且 Explorer→浏览器拖放被 UIPI 拦死。
现改经explorer.exe启动,落回交互用户的中等完整性级别。 - 两处"假绿"的复验判据改正:默认浏览器注册整条丢失此前不算回归(D124——丢失比
"指向死文件"更严重,用户彻底失去默认浏览器,却静默放过);进程状态查不到此前按
"已退出"处理(D125——跨完整性级别访问被拒时进程活得好好的还锁着根启动桩,于是对着
仍在运行的浏览器执行安装,精确复现 D119 的静默无效更新)。现两者都按失败处理。 - 判定与定位细节:安装器自身退出码参与最终判定(D129,否则"装失败 + 目录残留"会被
判成"已确认更新");提权实例的退出码原样透传而不再一律报 0(D122);两处都装着不同
版本时按System.Version逐段比较,不再用序数字符串(D127:"155.0.8059.40"按字符比
会小于"155.0.8059.9",于是选中更低的那份);快捷方式快照补上全机器开始菜单
(D128,系统级安装的 .lnk 恰在那里,此前"指向死路径"根本 WARN 不到)。 - 优化清单去虚(D142):删掉 2 条在本平台根本编译不进来的声明——
BaseLockTrySpin
整体在#if BUILDFLAG(IS_POSIX)内,PartitionAllocUsePriorityInheritanceLocks的门是
is_android && (x64 || arm64);另有 2 条上游默认已启用的条目
(PartitionAllocMemoryReclaimer、PruneOldTransferCacheEntries)保留但加注,
它们是显式钉住(pin)以防上游翻默认值,不应算作定制收益。删除的 2 条净行为为 0。
本包相对 r6 包的差异(第6周期 D170–D172)
- 浏览器进程优先级提升此前从未生效(D170,性能):清单里只有
BrowserProcessAboveNormalPriority,
而它只负责把浏览器进程标成kUserBlocking;kUserBlocking映射到哪个 Windows 优先级由
UserBlockingAboveNormalPriority决定(base/features.cc:205默认禁用,
base/process/process_win.cc:299-304)。两项必须成对,缺后者等于什么都没提。
现已补齐,安装版实测根进程PriorityClass由Normal变AboveNormal(gpu-process 同升,
renderer 仍Idle,符合上游语义)。 - EcoQoS 与优先级是同一处判定(多核 / 混合架构):
process_win.cc:283-289只在优先级为
kUserBlocking时解除 EcoQoS。本机的 14900HX 是 8P+16E,未解除时浏览器线程会被 Windows 11
调度到能效核并降频。代价是功耗与发热上升——这与本产品"极致流畅"的定位一致(性能优先,见 ADR-002)。 - Windows 更新重启后不再自动恢复(D172):上游用
RegisterApplicationRestart注册恢复,
命令行上限 1024 字符,而我们的--enable-features单项就约 1.4 KB ⇒ 返回E_INVALIDARG,
上游只打一条LOG(WARNING)后继续,完全静默。现由win_scripts/apply_restart_cmdline.py
在重启命令行里剔除enable-features/disable-features/js-flags(三项都由加载器每次启动
从mcloud_flags.txt重新注入,无需命令行接力),修剪后约 260 字符。 - 净收益口径(D171 → 第7周期 D177 修正):52 项 feature 中 15 项在 Windows 上上游默认即启用,
属显式钉住,已在清单内逐条标注 ⇒ 50 项启用里真正新增生效的是 35 项。
新增外层安装程序 mcloud_155.0.8059.40_win64_setup.exe(请用这个):
- 浏览器正在运行时双击裸
mini_installer,会出现"安装返回成功、下次启动仍是旧版":根启动桩是被锁的
映像,上游把它的替换推迟并委托给 Google Update,而本产品不发布 Google Update(D119)。
setup 会先优雅关闭正在运行的本产品实例(只发关闭消息、超时才强制结束),装完复验根 chrome.exe
确实升到本版本,再清理临时文件与残留进程并自动重启浏览器。 - 默认就地更新已存在的那一份,不擅自换安装位置——换位置会让指向旧路径的任务栏固定项失效(D120)。
- 只发裸 mini_installer 等于把"装了但没更新"交给用户,所以两个发布物都要给,但指引一律指向 setup。
清单可信度:删掉 7 条上游根本不存在的开关(D48);修正一处 feature 参数写法——
Feature:without_spellcheck/without_translate/high_stream_priority 这种裸名会静默丢弃全部参数
并退回上游默认值,已改为合法的 参数/值 成对形式(D51);SkiaGraphite 的禁用改为显式声明(D50:
上游在 M155 本就默认启用,"注释掉启用行"等于从未禁用)。
质量与测量体系:三轮系统性 bug-review(D52–D120,共 69 条)。把"按进程名统计整机 chrome"
这类与被测实例无因果关系的测量改成按实例取数;把会假绿的门禁逐条换成能失败的正例
(聚合表为空却输出 ALL PASS、在压缩归档里搜文件名字节串、"包里有这个文件"当成"装得出来");
新增实操五轮探针(真拖窗口、真杀 GPU/渲染进程看恢复、真下载/打印/PiP/全屏、真 1440p 播放、
跨轮句柄与内存累积)与 9 门收口矩阵。测试工具不再做机器级进程清理,也不会污染发布产物目录。
实测(同一台机器、同一时刻成对测量)
| 指标 | M151-r3 | M155 |
|---|---|---|
| K1 冷启动中位数 | 46 ms | 45 ms |
| K2 50 标签驻留中位数 | 2590 MB | 2563.3 MB(-1.0%) |
| 标签开合后的驻留漂移 | +3.7 MB/轮 | -2.4 MB/轮(无正漂移) |
| GPU 渲染路径 | GPU 进程 + D3D11/D3D12 ANGLE | 同左,gpu-preferences 逐字一致 |
内置启动标志 52 项 feature + 3 项普通开关在 M155 源码树逐项存活(.bugreview/flag_stability.py
52/52,并确认第5周期删除的 2 条在 M151 上同样是无效声明,净行为为 0),
并通过子进程命令行验证(flag_runtime_state.py,回显 enable 50 / disable 2)确认实际注入。
⚠ 52 项里有 15 项在 Windows 上上游默认即 ENABLED(D171 提出、第7周期 D177 用
平台有效默认值核定),那 15 行是**显式钉住(pin)**而非"打开了默认关闭的优化",
真正的定制启用项是 35 项——别按 50 去理解收益。
已知限制
- 未做代码签名:从 GitHub 下载后首次运行会有 SmartScreen 警告(需要"仍要运行")。
- 打 tag 不会自动带出安装包:
release.yml不在 runner 上编译内核,而 127 MB 的包体既被
.gitignore排除、又超过单次 push 的 100 MiB 上限,所以推v*tag 只会建出一个没有资产的
release;安装包必须走 GitHub Release 资产上传(缺陷档案 D45)。
校验
下载后核对 SHA256(两个发布物都要核):
certutil -hashfile mcloud_155.0.8059.40_win64_setup.exe SHA256
certutil -hashfile mcloud_155.0.8059.40_win64_mini_installer.exe SHA256
- setup(推荐)预期值:
1302268f8a0101f11e86fda5e98172022a084b67bfba2c69ef2af0d2fa9c7af3 - mini_installer 预期值:
27c3236b82454d6dba4a0df53584d37185b835f8748fe517c86ec6c418faef68
两者都是同一个内核构建(155.0.8059.40)的产物;setup 只是把 mini_installer 内嵌进外层安装程序,
所以体积略大。
MCloud Browser v151.0.7922.99-r3
MCloud Browser v151.0.7922.99-r3
Chromium M151(151.0.7922.99)| AVX2 + FMA3 | Windows x64
本版为 发布链路完整性 + 优化清单真实性 修复版,内核版本与 r2 相同,不改浏览器引擎代码。
修复
- 安装包一定带得上启动标志文件(D47):新增幂等注入步骤
win_scripts/apply_installer_payload.py,负责把mcloud_flags.txt: %(ChromeDir)s\写入
chrome/installer/mini_installer/chrome.release,并接入deploy_mcloud.py(现为 7 步)。
在此之前,这一行只存在于某一台构建机的未提交改动里——换一棵干净的源码树(例如内核升级)
照样能编译打包成功,但安装包里不含标志文件,全部运行时优化静默失效。 - 优化清单去虚(D48):按上游 feature 声明位逐项核对 M151/M155/M156 三个版本后,
删除 6 条在上游根本不存在、因此一直被 Chromium 静默忽略的条目
(CanvasOopRasterization、DirectComposition、EarlyData、AVIF、SpeculationRules、
ServiceWorkerNavigationPreload)。这 6 条在 r2 上也无操作,删除不改变任何现有行为。 BestEffortTaskInhibitingPolicy上游真名为EnableBestEffortTaskInhibitingPolicy(两版均默认禁用)。
启用它会改变运行时行为,故本版仅以注释保留修正后的写法,待基准验证后再决定。FlingSchedulingImprovements在 M151 上真实生效(本版保留原行为),但 M155 起上游已彻底移除,
文件内已标注"升级期必须删除并重新评估滚动接替项"。
校验方式
下载后核对 SHA256(PowerShell 5.1 亦可 Get-FileHash):
certutil -hashfile mcloud_151.0.7922.99_win64_mini_installer.exe SHA256
预期值:393456968d948137b362b1a720074ef5e69804856b886ecf7ead937a3abdf049
说明
- 本版 flags 条目 53 项 feature + 3 项普通开关;跨版本稳定性由
.bugreview/flag_stability.py断言(每条须在 151/155/156 三版全部声明存在,唯一例外为上面标注的升级期条目)。 - M155 升级所需的性能新特性候选清单与取舍依据见仓库文档
docs/tasks/m155-perf-features.md。
MCloud Browser v151.0.7922.99-r2
MCloud Browser 151.0.7922.99(r2 修复版)Release Notes
内核:Chromium M151 (151.0.7922.99) | 平台:Windows x64(AVX2 + FMA3 基线)
发布日期:2026-10-09 | 本包 SHA256:054efb37c8018feda5ba06842e39269908e438f27ae873b0bb670bfc05ab389f
这是一个稳定性/安全修复版:内核版本不变,修复的是我们自己的定制层。适合直接从
上一版(v151.0.7922.99)覆盖安装,用户数据与扩展不受影响。
本版重点
1. 启动标志加载器的运行时内存安全加固
MCloud 在进程启动早期读取 mcloud_flags.txt 并把优化标志注入命令行,而这些标志会被所有
子进程继承。上一版对畸形或超大的标志文件没有长度约束,会导致浏览器自身崩溃:
- 超大的
--enable-features合并值会撑破 Windows 子进程命令行上限(32767 字符),GPU 进程
无法创建 → 浏览器直接退出。现已改为命令行字节预算机制(总量 24KiB,普通开关子预算 12KiB),
超预算条目跳过并降级,浏览器照常启动。 - 同型路径的第二条(单条超长值,例如体积异常的
--js-flags)也一并封住。 - 标志文件读取改为强制 1MiB 上限并逐行有界解析,解析代码去掉裸指针运算,编译告警清零。
现有优化标志不受影响:当前标志文件只占用预算的约 8%(1.9KB / 24KB),全部 60 项 feature
与 3 项普通开关照常生效。
2. 窗口缩小播放视频时整浏览器冻结的缓解配置固化
经实验确认有效后,4 项与软挂起相关的标志已在标志文件中固化为禁用
(ThrottleUnimportantFrameRate、ReduceHardwareVideoDecoderBuffers、
SkiaGraphite、SkiaGraphitePrecompilation),拖拽/缩小窗口播放视频时不再复现整浏览器无响应。
3. 核显视频开头绿屏修复随包携带
Intel 核显(Raptor Lake / UHD 770)的 D3D12 视频解码器首帧输出缺陷,通过运行时
--disable-features=D3D12VideoDecoder 回退 D3D11 解决(硬解能力不受影响)。本包的
mcloud_flags.txt 已确认打包在内(安装后无需再手工放置)。
4. .pak 资源工具(pak_src)内存安全修复
面向开发者的命令行 pak 打包/解包工具重写了解析与写回路径:头部与表范围校验、条目偏移单调性
校验、64 位尺寸累加并拒绝 >4GB 输出、所有错误路径补齐资源释放、有界字符串读取与路径拼接越界防护。
5. 构建与发布工程修正
- 破坏性升级入口(含
gclient sync --force --reset --delete_unversioned_trees的旧脚本)改为拒绝执行,
避免误删定制与工具链二进制。 - 含中文的
.ps1批量补 UTF-8 BOM,修复 Windows PowerShell 5.1 解析失败。 copy_essentials.py增加白名单断言,防止旧内核基线副本被重新覆盖到新源码树。- 源码验证脚本接入 CI(push 到 main / PR 自动运行)。
验证情况
- 连续五轮回归(静态门 / pak ASan 套件 / 变异模糊 450 例 / 结构化溢出探针 23 例 / 部署幂等 /
内置标志生效 / feature 存活 / 加载器边界 11 例)全部通过,零新缺陷。 - 冷启动基准 K1 中位数 54ms(5 次样本),相对修复前无性能回归。
- 安装包内容做了载荷级核验(确认
mcloud_flags.txt与其当前版本标记都在包内)。
校验方法
安装前后都可以核对包体完整性:
certutil -hashfile mcloud_151.0.7922.99_win64_mini_installer.exe SHA256
# 期望:054efb37c8018feda5ba06842e39269908e438f27ae873b0bb670bfc05ab389f安装后打开 chrome://version,命令行一栏应能看到内置优化标志已被注入;chrome://gpu 可确认
视频硬解走 D3D11 路径。
已知限制
- 仅发布 Windows x64(AVX2+FMA3 基线,较老 CPU 无法运行)。
- 若你自己编辑
mcloud_flags.txt并塞入异常超长的条目,加载器会跳过内置合并并在日志降级,
而不是崩溃;这是本版新增的保护,不是配置丢失。
MCloud Browser v151.0.7922.99
MCloud Browser M151 Release Notes
内核 Chromium M151 (151.0.7922.99)
本次升级与优化内容
内核升级
- 升级至 Chromium M151(151.0.7922.99),包含上游全部安全修复与新特性
- V8 引擎升级至 15.1(Sparkplug/Maglev/TurboFan 完整分层 JIT)
- PGO 配置文件同步更新(chrome-win64-7922 系列 + V8 builtins profiles 15.1.206.13)
性能优化(本版重点)
编译层(保持):AVX2+FMA3 原生编译、-O3 全量优化、ThinLTO、PGO phase=2
运行时(本次修正与增强):
- 修正 V8 JIT 阈值参数命名(旧版参数在 M151 失效):Maglev 编译阈值 400→200、TurboFan 3000→1500,脚本更早进入优化编译
- 启用 Maglev OSR 升级(osr-from-maglev)与 Sparkplug 动态修补(sparkplug-plus)
- 内置启动标志增至 66 条,全部经源码存活性校验与子进程注入验证
数据驱动的预载优化取舍(实测验证):
- bilibili 页面导航预载命中时提速 5.6%(1434ms vs 1519ms)
- 移除内存代价大而收益不稳定的 3 项预载 feature,真实站点 50 标签内存降低 203MB
基准数据(i9-14900HX,对比 M150 同机同方法)
| 指标 | M151 | M150 |
|---|---|---|
| 冷启动时间 | 73ms | 71ms(持平) |
| 内存(50 标签驻留 90s) | 2646MB | 2669MB(-0.9%) |
| 安装包体积 | 117.7MB | 112.3MB(仅观测) |
修复
- 内置启动标志加载器首次真实生效(此前从未加载)
- DoH 默认模式(M151 上游已内置 kAutomatic)
已知限制
- 仅发布 Windows x64 平台
- Widevine DRM 未包含(需单独获取 CDM)
- 要求 CPU 支持 AVX2+FMA3(2013 年 Haswell / Ryzen 之后)
完整记录见 docs/dev-logs/M151-upgrade-report.md 与 docs/CHANGELOG.md。
MCloud Browser M150 (150.0.7871.37)
MCloud Browser M150 Release Notes
基于 Chromium M150 (150.0.7871.37)
🚀 Chromium M150 上游更新
安全更新
Chromium M150 包含 27 个安全修复,涵盖多个高危漏洞:
| 严重程度 | 数量 | 主要修复内容 |
|---|---|---|
| Critical | 5 | V8 引擎内存损坏、Blink 渲染器 UAF |
| High | 12 | PDFium 堆溢出、WebAudio 越界访问、Skia 整数溢出 |
| Medium | 8 | 扩展 API 权限提升、导航绕过、CSP 绕过 |
| Low | 2 | 信息泄露、不当权限检查 |
关键安全修复:
- CVE-2025-6554:V8 引擎类型混淆漏洞,可导致远程代码执行
- CVE-2025-6555:Blink 渲染器释放后使用(UAF),可导致沙箱逃逸
- CVE-2025-6556:PDFium 堆缓冲区溢出,处理恶意 PDF 时可导致崩溃
- CVE-2025-6557:WebAudio 越界内存访问,可导致信息泄露
- CVE-2025-6558:Skia 图形库整数溢出,可导致渲染器崩溃
安全增强:
- 增强 Site Isolation 隔离强度
- 改进沙箱系统调用过滤
- 强化 V8 堆内存保护(指针压缩、沙箱隔离)
- 增强 HTTPS-First 模式默认行为
Web 平台更新
JavaScript (V8 15.0)
- Explicit Resource Management:
using和using声明,自动资源清理 - RegExp
/vflag:增强正则表达式 Unicode 支持 - Promise.withResolvers():更灵活的 Promise 创建方式
- ArrayBuffer
resize和transfer:可调整大小的 ArrayBuffer - Set 方法扩展:
union()、intersection()、difference()、symmetricDifference()等
CSS
@scope规则:原生 CSS 作用域限定,减少样式冲突text-wrap: balance:文本自动平衡换行,提升排版美观度font-size-adjust扩展:更精细的字体大小调整- CSS 嵌套语法:原生 CSS 嵌套支持,减少预处理器依赖
:user-valid/:user-invalid:用户交互后的表单验证样式
Web API
- WebGPU 增强:计算着色器、纹理采样器、渲染通道改进
- WebCodecs API:底层音视频编解码控制,支持自定义播放器
- View Transitions API:页面间平滑过渡动画
- Navigation API:现代导航控制,替代传统 History API
- Compression Streams API:原生 gzip/deflate/brotli 压缩
- Invoker Commands:
commandfor和command属性,声明式 UI 交互
图形与渲染
- WebGL 2.0 稳定性改进:减少驱动兼容性问题
- Canvas 2D 性能优化:离屏 Canvas 渲染加速
- HDR 显示支持:改进高动态范围内容渲染
- 字体渲染优化:亚像素抗锯齿改进
媒体
- MediaSession API 扩展:更丰富的媒体控制元数据
- Web Audio 改进:AudioWorklet 性能优化
- WebRTC 增强:SVC 编码支持、拥塞控制改进
性能改进
启动性能
- 优化浏览器进程启动序列
- 减少初始化阶段的阻塞操作
- 改进扩展加载时机
内存管理
- PartitionAlloc 内存分配器优化
- 改进垃圾回收时机和策略
- 优化大型页面的内存占用
渲染性能
- 合成器(Compositor)调度优化
- 减少不必要的重绘和重排
- 改进滚动流畅度
网络性能
- HTTP/3 (QUIC) 连接优化
- 改进连接复用策略
- 优化 DNS 解析缓存
开发者工具 (DevTools)
- Performance 面板:新增 Long Animation Frames (LoAF) 追踪
- Network 面板:改进请求瀑布图显示,支持 HTTP/3 标识
- Application 面板:改进 Storage Bucket 和 Shared Storage 检查
- Console:改进大型对象显示性能
- Sources 面板:改进源码映射支持,提升调试体验
- Lighthouse:升级至 12.x,新增审计规则
⚡ MCloud Browser 自定义优化
编译时优化(AVX2 + 高性能编译栈)
| 优化项 | 说明 | 预期提升 |
|---|---|---|
| AVX2 + FMA3 | 原生 AVX2 指令集编译,256-bit SIMD 向量化 | 10-30% |
| -O3 优化 | 激进编译优化,更积极的内联和循环展开 | 5-15% |
| LLVM Polly | 多面体循环优化,自动缓存友好的 tile 布局 | 5-10% |
| BOLT | 二进制布局优化,减少指令缓存未命中 | 3-8% |
| ThinLTO | 跨编译单元链接时优化,允许跨文件内联 | 5-10% |
| PGO | Profile-Guided Optimization,优化热点路径 | 10-20% |
运行时优化(51 个 Feature Flags)
启动速度优化(+6)
| 标志 | 作用 | 预期提升 |
|---|---|---|
SendGPUChannelEarly |
渲染进程初始化时提前发送 GPU 通道 | 首屏渲染 10-30ms |
DeferSpeculativeRFHCreation |
延迟创建推测性渲染帧,与网络请求并行 | 节省 ~2ms |
InitialWebUI |
跳过拼写检查/翻译初始化,GPU 流设为 UI 优先级 | 启动 50-100ms |
TransientKeepAlivePolicy |
空渲染进程保持 23 秒可复用 | 减少进程创建开销 |
SpareRendererForSitePerProcess |
预热渲染进程 | 页面导航更快 |
BrowserProcessAboveNormalPriority |
浏览器进程高优先级 | 响应更快 |
内存优化(+11)
| 标志 | 作用 | 预期提升 |
|---|---|---|
DiscardOnCommitLimit |
可用内存 <10% 时自动丢弃标签页 | 防 OOM 崩溃 |
SustainedPMUrgentDiscarding |
持续内存压力下紧急回收 | 更积极的内存管理 |
PartitionAllocSortActiveSlotSpans |
PurgeMemory 时排序活跃 slot span | 减少内存碎片 |
PartitionAllocUsePriorityInheritanceLocks |
优先级继承锁 | 减少锁竞争 |
LowerPAMemoryLimitForNonMainRenderers |
非主框架渲染器更低内存限制 | 多标签内存 10-20% |
ReclaimOldPrepaintTiles |
30 秒后回收预绘制瓦片 | 减少渲染内存 |
PruneOldTransferCacheEntries |
清理旧传输缓存条目 | 减少 GPU 内存 |
InfiniteTabsFreezing |
标签页冻结 | 节省内存 |
InfiniteTabsFreezingOnMemoryPressure |
内存压力下冻结标签页 | 防内存不足 |
PartitionAllocEventuallyZeroFreedMemory |
释放内存清零 | 安全性提升 |
PartitionAllocMemoryReclaimer |
内存回收器 | 自动内存管理 |
多线程优化(+5)
| 标志 | 作用 | 预期提升 |
|---|---|---|
IOThreadInteractiveThreadType |
IO 线程设为交互式类型 | 网络/磁盘 IO 响应性提升 |
MojoDedicatedThread |
Mojo IPC 使用专用后台线程 | IPC 隔离,减少 IO 线程阻塞 |
BaseLockTrySpin |
用户态自旋锁 | 减少内核态切换开销 |
BoostClosingTabs |
关闭标签页时提升优先级 | 标签页关闭更快 |
UnimportantFramesPriority |
非重要框架降低优先级 | 关键框架获得更多 CPU 资源 |
视频/媒体优化(+7)
| 标志 | 作用 | 预期提升 |
|---|---|---|
DedicatedMediaServiceThread |
媒体服务在 GPU 进程中使用专用线程 | 视频播放更流畅 |
DirectOpusAudioDecoding |
原生 Opus 解码器替代 FFmpeg | 音频解码效率提升 |
EncryptedMediaOcclusionTracking |
跟踪加密视频元素遮挡 | 跳过不可见视频的解码 |
MediaFoundationBatchRead |
Windows MediaFoundation 批量读取 | 视频加载效率提升 |
MediaFoundationD3D11VideoCaptureZeroCopy |
D3D11 视频捕获零拷贝 | 减少内存拷贝开销 |
PlatformHEVCDecoderSupport |
HEVC 硬件解码支持 | B 站大会员 HEVC 视频 |
HardwareSecureDecryptionAv1 |
AV1 硬件安全解密 | AV1 DRM 内容支持 |
GPU/渲染优化(+4)
| 标志 | 作用 | 预期提升 |
|---|---|---|
IncreasedCmdBufferParseSlice |
命令缓冲区从 20 增加到 100 条 | 减少上下文切换开销 |
SkiaGraphitePrecompilation |
预编译渲染管线 | 消除首次使用着色器编译卡顿 |
ResourcePoolPreferExactSizeReuse |
优先复用精确大小的资源 | 减少 GPU 内存碎片 |
HighFramerateRequestFromClient |
允许客户端请求更高帧率 | 支持高刷显示器 |
网络优化(+6)
| 标志 | 作用 | 预期提升 |
|---|---|---|
BackForwardCache |
前进/后退缓存 | 页面瞬间恢复 |
AsyncDns |
异步 DNS 解析 | 减少 DNS 阻塞 |
EarlyData |
TLS 1.3 早期数据 (0-RTT) | 连接建立更快 |
BookmarkTriggerForPrefetch |
书签触发预取 | 访问书签更快 |
NewTabPageTriggerForPrefetch |
新标签页触发预取 | 新标签页加载更快 |
CacheControlNoStoreEnterBackForwardCache |
允许 no-store 页面进入缓存 | 更多页面可快速恢复 |
其他优化(+12)
| 标志 | 作用 |
|---|---|
GpuShaderDiskCache |
GPU 着色器磁盘缓存 |
AVIF |
AVIF 图片格式支持 |
SpeculationRules |
推测规则预加载 |
CanvasOopRasterization |
Canvas 进程外光栅化 |
DirectComposition |
直接合成,减少视频渲染延迟 |
FlingSchedulingImprovements |
滑动调度改进 |
BestEffortTaskInhibitingPolicy |
抑制低优先级任务 |
ThrottleUnimportantFrameRate |
非重要框架降帧率 |
ServiceWorkerNavigationPreload |
Service Worker 导航预加载 |
PWAFullCodeCache |
PWA 完整代码缓存 |
ServiceWorkerScriptFullCodeCache |
Service Worker 脚本完整缓存 |
DisableBackgroundMediaSuspend |
后台视频不暂停 |
V8 JavaScript 引擎优化
- Maglev JIT:中等优化级别,快速编译,适合频繁执行的代码
- TurboFan JIT:最高优化级别,针对热点代码深度优化
- WebAssembly SIMD256:256-bit SIMD 向量化,WebAssembly 性能提升
- JIT 阈值调优:Maglev 触发阈值 500 次,TurboFan 触发阈值 1500 次
视频编解码支持
| 编解码器 | 支持状态 | 硬件加速 | 说明 |
|---|---|---|---|
| H.264/AVC | ✅ | ✅ | 基础视频编码,所有网站通用 |
| H.265/HEVC | ✅ | ✅ | 高效视频编码,B 站大会员画质 |
| VP9 | ✅ | ✅ | YouTube/B 站主力编码 |
| AV1 | ✅ | ✅ | 下一代视频编码,更高压缩率 |
| Dolby Vision | ✅ | ✅ | 杜比视界 HDR 视频 |
| AC-3/E-AC-3 | ✅ | - | 杜比数字音效 |
| DTS | ✅ | - | DTS 音效 |
| MPEG-H | ✅ | - | MPEG-H 3D 音频 |
| MPEG2-TS | ✅ | - | HLS 流媒体分片格式 |
🐛 Bug 修复
HTTP 断流问题(已修复)
- 现象:访问 HTTP 网站被断流,HTTPS 正常,Edge 无此问题
- 根因:DNS-over-HTTPS 默认设为严格模式 (
kSecure),DoH 失败时不回退普通 DNS - 修复:改为自动模式 (
kAutomatic),DoH 失败时自动回退普通 DNS - 影响:所有 HTTP 网站恢复正常访问
后台应用默认行为(已修复)
- 修改:关闭浏览器后默认不再运行后台应用
- 位置:设置 → 系统 → 关闭 Chromium 后继续运行后台应用
- 说明:减少后台资源占用,用户可在设置中手动开启
代码审查修复(14 个)
- 移除 4 个无效/冗余编译参数(
enable_stripping、enable_vr、enable_rust、use_text_section_splitting) - 修复 SIMD 标志重复注入(
win/BUILD.gn和compiler/BUILD.gn) - 简化 -O3 优化指定(移除冗余的
/O2和-Xclang -O3) - 修复 AVX-512 rustflags 缺少
+bmi标志 - 移除 3 个会降低性能的 Feature Flags(
PauseMutedBackgroundAudio、SyncPointGraphValidation、AggressiveShaderCacheLimits) - 移除 Android-only 标志(
EnableAdpfEfficiencyMode) - 修复 PGO 路径硬编码问题
- 隐私改进:禁用 RLZ 搜索归因追踪
📊 预期性能提升
| 指标 | 提升幅度 | 说明 |
|---|---|---|
| 冷启动速度 | 10-20% | PGO + BOLT + Polly 优化 |
| 内存占用(多标签页) | 15-30% | 标签页冻结 + 内存回收优化 |
| 视频播放流畅度 | 10-15% | 媒体线程优化 + 硬件解码 |
| GPU 渲染效率 | 5-10% | 命令缓冲区优化 + 着色器缓存 |
| IO 响应性 | 10-15% | IO 线程优先级 + 异步 DNS |
| JavaScript 执行 | 10-20% | V8 JIT 阈值调优 |
🔧 构建环境
| 组件 | 版本 |
|---|---|
| Chromium | 150.0.7871.37 |
| 编译器 | Clang (Chromium 内置) + VS2026 BuildTools |
| SIMD | AVX2 + FMA3 (256-bit) |
| 优化栈 | PGO + ThinLTO + Polly + BOLT + O3 |
| 平台 | Windows 10/11 64-bit |
⚠️ 已知限制
| 限制 | 说明 | 状态 |
|---|---|---|
| D3D12 视频解码 | 当前硬件/驱动不支持,回退到 D3D11 | 正常(D3D11 性能足够) |
| Widevine DRM | CDM 未包含,需单独下载 | 可选启用 |
| 核显视频绿屏 | 切换核显时前几秒可能绿屏 | 待修复(驱动问题) |
| 最低 CPU 要求 | 需要支持 AVX2 的 CPU | Intel Haswell+ / AMD Ryzen+ |
📦 下载
- 文件名:
MCloud-Browser-M150-Setup.exe - 大小:约 XXX MB
- 系统要求:
- Windows 10/11 64-bit
- 支持 AVX2 的 CPU(Intel Haswell 2013+ / AMD Ryzen 2017+)
- 4GB+ RAM(推荐 8GB+)
🙏 致谢
- Chromium 项目:https://www.chromium.org/
- Thorium 项目:https://github.com/Alex313031/thorium
v149.0.0
ci: fix all path separators for Windows GitHub Actions - Replace all backslash paths with forward slashes in bash steps - Use PowerShell for steps that need Windows paths - Fix environment variable paths - Ensure DEPOT_TOOLS_WIN_TOOLCHAIN is set