Chrome 90 发布

谷歌发布了Chrome 90网络浏览器,同时作为Chrome基础的免费Chromium项目也发布了稳定版本。 Chrome 浏览器的特点是使用 Google 徽标、崩溃时发送通知的系统、播放受保护视频内容 (DRM) 的模块、自动安装更新的系统以及搜索时传输 RLZ 参数。 Chrome 91 的下一个版本计划于 25 月 XNUMX 日发布。

Chrome 90 的主要变化:

  • 默认情况下,在地址栏中输入主机名时,所有用户都可以通过 HTTPS 打开站点。 例如,当您输入主机example.com时,会默认打开https://example.com这个站点,如果打开时出现问题,则会回滚到http://example.com。 为了控制默认“https://”的使用,建议设置“chrome://flags#omnibox-default-typed-navigations-to-https”。
  • 现在可以为窗口分配不同的标签,以在桌面面板中直观地分隔它们。 当使用单独的浏览器窗口执行不同的任务时(例如,为工作任务、个人兴趣、娱乐、延迟材料等打开单独的窗口时),对更改窗口名称的支持将简化工作组织。 当您右键单击选项卡栏中的空白区域时,会通过出现的上下文菜单中的“添加窗口标题”项来更改名称。 在应用程序面板中更改名称后,将显示所选名称,而不是活动选项卡中的站点名称,这在链接到单独帐户的不同窗口中打开相同站点时非常有用。 会话之间的绑定保持不变,重新启动后,窗口将恢复为所选名称。
    Chrome 90 发布
  • 添加了隐藏“阅读列表”的功能,而无需更改“chrome://flags”(“chrome://flags#read-later”)中的设置。 要隐藏,您现在可以使用右键单击书签栏时显示的上下文菜单底部的“显示阅读列表”选项。 让我们提醒您,在上一个版本中,当某些用户单击地址栏中的星号时,除了“添加书签”按钮之外,还会出现第二个按钮“添加到阅读列表”,并且在该按钮的右上角书签面板中会出现“阅读列表”菜单,其中列出了之前添加到列表中的所有页面。 当您从列表中打开页面时,该页面会被标记为已读。 列表中的页面也可以手动标记为已读或未读,或从列表中删除。
  • 添加了对网络分段的支持,以防止基于在不用于永久存储信息的区域中存储标识符(“Supercookies”)来跟踪站点之间的用户移动的方法。 由于缓存的资源存储在公共命名空间中,因此无论原始域如何,一个站点都可以通过检查该资源是否在缓存中来确定另一个站点正在加载资源。 这种保护基于网络分段(网络分区)的使用,其本质是在共享缓存中添加额外的记录与打开主页的域的绑定,这限制了仅针对移动跟踪脚本的缓存覆盖范围到当前站点(iframe 中的脚本将无法检查资源是否是从其他站点下载的)。 分段的代价是缓存效率降低,导致页面加载时间略有增加(最多增加 1.32%,但对于 80% 的网站增加 0.09-0.75%)。
  • 补充了阻止发送HTTP、HTTPS和FTP请求的网络端口黑名单,以防止NAT滑流攻击,允许在浏览器中打开攻击者专门准备的网页时建立网络从攻击者的服务器到用户系统上的任何 UDP 或 TCP 端口的连接,尽管使用内部地址范围(192.168.xx、10.xxx)。 将 554(RTSP 协议)和 10080(用于 Amanda backup 和 VMWare vCenter)添加到禁止端口列表中。 此前,端口 69、137、161、554、1719、1720、1723、5060、5061 和 6566 已被封锁。
  • 添加了对在浏览器中使用 XFA 表单打开 PDF 文档的初步支持。
  • 对于部分用户,已激活新的设置部分“Chrome 设置 > 隐私和安全 > 隐私沙箱”,允许您管理 FLoC API 的参数,旨在确定用户兴趣的类别,无需个人身份识别,无需参考访问特定站点的历史记录。
  • 当用户连接到启用了集中管理的配置文件时,现在会显示更清晰的通知,其中包含允许的操作列表。
  • 减少了权限请求界面的干扰。 现在,用户可能拒绝的请求会被自动阻止,并在地址栏中显示相应的指示器,用户可以通过该指示器转到按站点管理权限的界面。
    Chrome 90 发布
  • 包括对英特尔 CET(英特尔控制流执行技术)扩展的支持,以针对使用面向返回的编程(ROP,面向返回的编程)技术构建的漏洞提供硬件保护。
  • 将浏览器转变为使用包容性术语的工作仍在继续。 “master_preferences”文件已重命名为“initial_preferences”,以避免伤害那些认为“master”一词暗示其祖先曾经受奴役的用户的感情。 为了保持兼容性,对“master_preferences”的支持将在浏览器中保留一段时间。 此前,浏览器已经摆脱了“白名单”、“黑名单”和“本机”等词的使用。
  • 在Android版本中,启用“Lite”流量节省模式后,通过移动运营商网络连接下载视频时的码率会降低,这将降低启用流量资费的用户的成本。 “Lite”模式还提供通过 HTTPS 从公共可用资源(不需要身份验证)请求的图像压缩。
  • 新增AV1视频格式编码器,专门针对基于WebRTC协议的视频会议进行了优化。 在视频会议中使用AV1可以提高压缩效率并提供在带宽为30 kbit/sec的频道上广播的能力。
  • 在 JavaScript 中,Array、String 和 TypedArrays 对象实现了 at() 方法,该方法允许您使用相对索引(相对位置指定为数组索引),包括指定相对于末尾的负值(例如, “arr.at(-1)”将返回数组的最后一个元素)。
  • JavaScript 为正则表达式添加了“.indices”属性,其中包含一个数组,其中包含匹配组的开始和结束位置。 仅当使用“/d”标志执行正则表达式时才填充该属性。 const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 — 所有匹配组 // → [0, 2] console.log(m.indices[1]); // 1 是第一组匹配 // → [0, 1] console.log(m.indices[2]); // 2 - 第二组比赛 // → [1, 2]
  • 启用内联缓存的“超级”属性(例如 super.x)的性能已得到优化。 使用“super”的性能现在接近访问常规属性的性能。
  • 由于使用内联部署,从 JavaScript 调用 WebAssembly 函数的速度显着加快。 此优化目前仍处于实验阶段,需要使用“-turbo-inline-js-wasm-calls”标志运行。
  • 添加了 WebXR 深度传感 API,它允许您确定用户环境中的对象与用户设备之间的距离,例如,以创建更真实的增强现实应用程序。 让我们提醒您,WebXR API 允许您统一使用各种类型的虚拟现实设备,从固定 3D 头盔到基于移动设备的解决方案。
  • WebXR AR 照明估计功能已经稳定,允许 WebXR AR 会话确定环境照明参数,从而使模型具有更自然的外观并更好地与用户环境融合。
  • Origin Trials 模式(需要单独激活的实验性功能)添加了多个目前仅限于 Android 平台的新 API。 Origin Trial 意味着能够使用从 localhost 或 127.0.0.1 下载的应用程序中的指定 API,或者在注册并接收在特定站点的有限时间内有效的特殊令牌之后。
    • getCurrentBrowsingContextMedia() 方法,可以捕获反映当前选项卡内容的 MediaStream 视频流。 与类似的 getDisplayMedia() 方法不同,当调用 getCurrentBrowsingContextMedia() 时,会向用户呈现一个简单的对话框,以确认或阻止使用选项卡内容传输视频的操作。
    • Insertable Streams API,允许您操作通过 MediaStreamTrack API 传输的原始媒体流,例如摄像头和麦克风数据、屏幕捕获结果或中间编解码器解码数据。 WebCodec 接口用于呈现原始帧,并生成类似于 WebRTC Insertable Streams API 基于 RTCPeerConnections 生成的流。 在实用方面,新的 API 允许应用机器学习技术来实时识别或注释对象等功能,或者在编码之前或编解码器解码之后添加背景剪辑等效果。
    • 能够将资源打包成包(Web Bundle),以组织更有效地加载大量附带文件(CSS 样式、JavaScript、图像、iframe)。 Web Bundle 试图消除现有对 JavaScript 文件包 (webpack) 支持的缺点:包本身(而不是其组成部分)可能会出现在 HTTP 缓存中; 包完全下载后才能开始编译和执行; CSS 和图像等其他资源必须以 JavaScript 字符串的形式进行编码,这会增加大小并需要另一个解析步骤。
    • 支持 WebAssembly 中的异常处理。
  • 稳定了声明式 Shadow DOM API,以在 Shadow DOM 中创建新的根分支,例如将导入的第三方元素样式及其关联的 DOM 子分支与主文档分开。 建议的声明式 API 允许您仅使用 HTML 来取消固定 DOM 分支,而无需编写 JavaScript 代码。
  • 纵横比 CSS 属性,允许您将纵横比显式绑定到任何元素(仅指定高度或宽度时自动计算缺失的尺寸),实现了在动画期间插值的功能(从一个元素平滑过渡)与另一个的纵横比)。
  • 添加了通过伪类“:state()”反映 CSS 中自定义 HTML 元素状态的功能。 该功能的实现类似于标准 HTML 元素根据用户交互更改其状态的能力。
  • CSS 属性“appearance”现在支持值“auto”,默认设置为和,并且在 Android 平台上还可以用于, , ,和。
  • “overflow”CSS 属性中添加了对“clip”值的支持,设置后,超出块的内容将被剪切到块允许的溢出限制,而无法滚动。 通过新的 CSS 属性“overflow-clip-margin”设置确定在剪切开始之前内容可以超出框的实际边框多远的值。 与“overflow:hidden”相比,使用“overflow:clip”可以获得更好的性能。
    Chrome 90 发布Chrome 90 发布
  • Feature-Policy HTTP 标头已被新的 Permissions-Policy 标头取代,以控制权限委派和高级功能的启用,其中包括对结构化字段值的支持(例如,您现在可以指定“Permissions-Policy: geolocation” =()”而不是“功能-策略:地理位置‘无’”)。
  • 加强了针对使用协议缓冲区进行处理器中指令的推测执行引起的攻击的保护。 保护是通过将“application/x-protobuffer”MIME类型添加到从未嗅探过的MIME类型列表中来实现的,该列表通过跨源读取阻止机制进行处理。 此前,MIME 类型“application/x-protobuf”已包含在类似列表中,但“application/x-protobuffer”被排除在外。
  • 文件系统访问 API 实现了将文件中的当前位置移至其结尾之外的功能,并在通过 FileSystemWritableFileStream.write() 调用进行后续写入期间用零填充由此产生的间隙。 此功能允许您创建具有空白空间的稀疏文件,并显着简化写入具有无序到达的数据块的文件流的组织(例如,这是在 BitTorrent 中实践的)。
  • 添加了 StaticRange 构造函数,其中实现了轻量级 Range 类型,不需要在每次 DOM 树更改时更新所有关联对象。
  • 实现了指定元素宽度和高度参数的功能指定在元素内部。 此功能允许您计算元素的长宽比,通过类比它是如何完成的, 和。
  • WebRTC 中删除了对 RTP 数据通道的非标准化支持,建议使用基于 SCTP 的数据通道。
  • navigator.plugins 和 navigator.mimeTypes 属性现在始终返回空值(Flash 支持结束后,不再需要这些属性)。
  • 针对 Web 开发人员的工具进行了大量的小改进,并添加了新的 CSS 调试工具 flexbox。
    Chrome 90 发布

除了创新和错误修复之外,新版本还消除了 37 个漏洞。 许多漏洞是通过使用 AddressSanitizer、MemorySanitizer、控制流完整性、LibFuzzer 和 AFL 工具进行自动化测试而发现的。 目前还没有发现任何严重问题可以让人们绕过所有级别的浏览器保护并在沙箱环境之外的系统上执行代码。 作为发现当前版本漏洞的现金奖励计划的一部分,Google 支付了 19 个价值 54000 美元的奖励(20000 个 10000 美元奖励、5000 个 3000 美元奖励、2000 个 1000 美元奖励、500 个 6 美元奖励、XNUMX 个 XNUMX 美元奖励、XNUMX 个 XNUMX 美元奖励和 XNUMX 个 XNUMX 美元奖励) )。)。 XNUMX项奖励的金额尚未确定。

另外,值得注意的是,昨天,在修正版本89.0.4389.128形成之后,但在Chrome 90发布之前,发布了另一个漏洞利用程序,该漏洞使用了Chrome 0中未修复的新89.0.4389.128day漏洞。 目前尚不清楚这个问题是否已在 Chrome 90 中得到修复。与第一种情况一样,该漏洞仅涵盖一个漏洞,并且不包含绕过沙箱隔离的代码(当使用“--no-sandbox”标志运行 Chrome 时) ,当在 Windows 平台上打开网页(允许运行记事本)时,就会发生该漏洞。 与新漏洞相关的漏洞影响 WebAssembly 技术。

来源: opennet.ru

添加评论