Skip to content

Releases

MCloud Browser v158.0.8127.30

Choose a tag to compare

@Mcloud136 Mcloud136 released this 09 Nov 07:50

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

Choose a tag to compare

@Mcloud136 Mcloud136 released this 12 Oct 13:16

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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 05:36

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

Choose a tag to compare

@github-actions github-actions released this 09 Oct 14:29

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

Choose a tag to compare

@Mcloud136 Mcloud136 released this 06 Aug 16:40

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)

Choose a tag to compare

@Mcloud136 Mcloud136 released this 19 Jun 21:35

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 /v flag:增强正则表达式 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+)

🙏 致谢


完整更新日志:v149.0.7827.53...v150.0.7871.37

v149.0.0

Choose a tag to compare

@Mcloud136 Mcloud136 released this 10 Jun 09:38
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