9

2020年10月 Chrome 86 重要更新解读

 4 years ago
source link: https://zhuanlan.zhihu.com/p/281009581
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

2020年10月 Chrome 86 重要更新解读

Chrome 86 在2020年10月推出了稳定版,现已全面应用于Android、Chrome OS、Linux、macOS 和 Windows等平台,我们一起来看下这次的重要更新。

若要看全部更新,请移步(https://www.chromestatus.com/features#milestone=86)。

新增稳定功能

文件系统访问

还记得Chrome 83中的本地文件系统吗,当时的试验功能,现已稳定。通过调用 showOpenFilePicker 方法,你可以唤起文件选择窗口,进而通过返回的文件句柄对文件进行读写。代码如下:

async function getFileHandle() {
  const opts = {
    types: [
      {
        description: 'Text Files',
        accept: {
          'text/plain': ['.txt', '.text'],
          'text/html': ['.html', '.htm']
        }
      }
    ]
  };
  return await window.showOpenFilePicker(opts);
}

在写文件之前,浏览器会检查用户是否已授权写文件,若未授权,会先弹窗提示用户,再进行后续操作。

特别的是,调用 showDirectoryPicker 方法会打开文件目录,允许你获取多个文件,或者在目录中创建文件。这很适合IDE、媒体播放器等应用。

全面阻止所有非HTTPS混合内容下载

HTTPS混合内容错误是指初始网页通过安全的HTTPS链接加载,但页面中其他资源,比如图像,视频,样式表,脚本却通过不安全的HTTP链接加载,这样就会出现混合内容错误,也就是不安全因素。

攻击者可拦截不安全的下载地址,将程序替换成恶意软件、甚至访问更多的敏感信息。为管控这些风险,谷歌最终还是决定在Chrome中禁止加载不安全资源。

从 M82 开始,Chrome 就逐步警告及阻止混合内容的下载,到 M86,会完全阻止下载,时间表如下:

要想排查网站的混合内容,使用 Chrome 访问网页,打开开发者工具,选择“Security”-"Non-Secure Origin",就可以看到Mixed Content(小编身边的网站都是安全的,暂时没找到例子,请各位自行发掘)。

另外,从 M86 开始,图片类型的请求,会自动升级到 HTTPS,并且没有 HTTP 的降级,Audio/Video 类型的请求早在 M80 就开始进行了自动升级。

ParentNode.replaceChildren

目前,要想替换某DOM节点下的全部子节点,必须要先通过 innerHTML 或 removeChild 删除全部子节点,然后再逐个添加,比较麻烦。为此,Chrome 支持了 replaceChildren 方法,可以用参数中的子节点列表替换原有的全部子节点,代码如下:

parentNode.replaceChildren(newChildren);

更多信息,请移步

https://www.chromestatus.com/feature/6143552666992640​www.chromestatus.com

更醒目的 HTTP 安全警告

在我们访问 HTTPS 网页时,地址栏最左侧会显示一个锁定图标来表明当前网站是安全的,但如果 HTTPS 网页中嵌入的是并不安全的 HTTP 表单,浏览器则不会给出任何提示信息。而实际上已经有钓鱼网站通过这种方式来盗取用户的敏感信息了。

所以在 Chrome 86 中,如果 HTTPS 的网页中嵌入了不安全的 HTTP 表单,表单字段下方会有极为醒目的「此表单不安全」文本提示。

如果你无视提示警告继续提交表单信息,则会看到一个确认警告页面,告知你即将提交的信息并不安全。

后台标签页更省电

如果一个标签页在后台运行了五分钟以上,这个页面就会被暂时冻结,相应的 CPU 使用也会被限制在 1% 左右;如果页面支持自动刷新,唤醒时间被限制在每一分钟一次。

新增试用功能

WebHID

HID(Human Interface Device),人机界面设备。有很多长尾的HID,或者太新,或者太旧,或者不常见,导致无法被系统驱动支持。WebHID API,提供了通过JavaScript访问这些设备的方法。这会大大便利web游戏的操作性,可以使用摇杆、手柄、传感器、震动反馈等等设备。

调用的代码如下:

butOpenHID.addEventListener('click', async (e) => {
  const deviceFilter = { vendorId: 0x0fd9 };
  const opts = { filters: [deviceFilter] };
  const devices = await navigator.hid.requestDevice(opts);
  myDevice = devices[0];
  await myDevice.open();
  myDevice.addEventListener('inputreport', handleInpRpt);
});

当然,这些强大的API必须要用户授权才能调用。

多屏 Placement API

目前,你可以调用 window.screen() 来获取浏览器所在屏幕,但如果你有多个屏幕,只能获取当前所在的屏幕。

API调用方式及返回结果如下所示:

const screen = window.screen;
console.log(screen);
// {
//   availHeight: 1612,
//   availLeft: 0,
//   availTop: 23,
//   availWidth: 3008,
//   colorDepth: 24,
//   orientation: {...},
//   pixelDepth: 24,
//   width: 3008
// }

新推出的多屏 Placement API,允许你枚举电脑连接的所有屏幕,并且可以把浏览器窗口放置在特定的屏幕上。这会大大便利幻灯片以及金融相关应用。

在使用API之前,需要先请求许可,第一次请求时会向用户弹窗。

async function getPermission() {
  const opt = { name: 'window-placement' };
  try {
    const perm = await navigator.permissions.query(opt);
    return perm.state === 'granted';
  } catch {
    return false;
  }
}

获得授权后,调用window.getScreens()会返回 Screen 对象列表。

const screens = await window.getScreens();
console.log(screens);
// [
//   {id: 0, internal: false, primary: true, left: 0, ...},
//   {id: 1, internal: true, primary: false, left: 3008, ...},
// ]

:focus-visible

新的CSS选择器,允许你修改默认的focus样式,代码如下:

/* Focusing the button with a keyboard will
   show a dashed black line. */
button:focus-visible {
  outline: 4px dashed black;
}

/* Focusing the button with a mouse, touch,
   or stylus will show a subtle drop shadow. */
button:focus:not(:focus-visible) {
  outline: none;
  box-shadow: 1px 1px 5px rgba(1, 1, 0, .7);
}

对于列表项的数字或原点,可以使用 ::marker 伪元素,来改变其颜色、尺寸、形状等信息。

除此之外,还可以在设置界面选择「设置 > 高级 > 无障碍 > 短暂地突出显示焦点对象」,选择之后,焦点元素周围会有闪烁的蓝光,提供更为醒目的信息提示。

废弃&删除的功能

删除 WebComponents v0

Chrome 80版本已经在桌面和安卓端移除了 WebComponents v0,Chrome 86 进一步把它从WebView移除。这项移除包括Custom Elements v0, Shadow DOM v0, 和 HTML Imports。

移除对FTP的支持

Chrome FTP功能的使用量较低,而且实现有bug,存在安全隐患,何况各平台都有更好用的FTP客户端,不值得继续维护。所以从 M72 开始,Chrome 便已着手阉割 FTP 功能,先是去掉了 HTTP 代理,现在又开始完全移除 FTP 支持,据计划,到 Chrome 88,FTP 功能会被彻底禁用。

——————————————————————————————————————————

阿里巴巴集团淘系技术部官方账号。淘系技术部是阿里巴巴新零售技术的王牌军,支撑淘宝、天猫核心电商以及淘宝直播、闲鱼、躺平、阿里汽车、阿里房产等创新业务,服务9亿用户,赋能各行业1000万商家。我们打造了全球领先的线上新零售技术平台,并作为核心技术团队保障了11次双十一购物狂欢节的成功。

点击下方主页关注我们,你将收获更多来自阿里一线工程师的技术实战技巧&成长经历心得。另,不定期更新最新岗位招聘信息和简历内推通道,欢迎各位以最短路径加入我们。


Recommend

  • 33
    • 微信 mp.weixin.qq.com 4 years ago
    • Cache

    Chrome 86 重要更新解读

    Chrome 86 在2020年10月推出了稳定版,现已全面应用于 Android、Chrome OS、Linux、macOS 和 Windows等平台, 我们一起来看下这次的重要更新。若要看全部更新,请移步( https://www.chromestat...

  • 38
    • zhuanlan.zhihu.com 4 years ago
    • Cache

    TVM开发报告 - 2020年10月

    社区论坛(discuss.tvm.ai) 在十月份累计页面浏览量约14万2千次, 独立用户访问数达2300余次。同时社区也分别加入了一位committer(@junrushao1994)和一位reviewer(@areusch). 功能和特性方面,我们在TIR中增加了仿射映射工具来支持...

  • 11
    • 微信 mp.weixin.qq.com 4 years ago
    • Cache

    Chrome 87 重要更新解读

    2020年11月17日,Chrome 发布 M87,这是今年的最后一个正式版本(由于圣诞节原因,M88 稳定版推出要到2021年1月),Chrome 产品总监 Matt Waddell 在一篇博客文章中写道: 该版本是多年来Chrome浏览器性能获得最大提升的...

  • 12

    node.js 后端框架star 排名 2020年10月更新河南冠杰智能科技股份有限公司 研发总监发布时间以首个版本发布(0.x)为准。

  • 17

    加密资金流陷入2020年10月以来最低点 作者:Damanick Dantes   |   编译者:Maya   |   来源:CoinDesk时间:2021-3-30 14:50:0   |   浏览:  |   收藏...

  • 9
    • cdjax.com 4 years ago
    • Cache

    2020年10月

    月份:2020年10月 这次发布会苹果带来了iPhone 12系列和iPhone 12 Pro系列,各两款。 还是说一些不容易发现的细节: 1、5.4寸屏幕的mini的三围尺寸比4.7寸的iPhone 6/7/8还小一圈; 2、mini只支持物理单卡,但非国行版本可以通过e...

  • 11

    node.js 后端框架star 排名 2021年10月更新知著程序猿、古琴爱好者发布时...

  • 8
    • www.coingogo.com 3 years ago
    • Cache

    10月23日午间重要动态一览

    12:00 10月23日午间重要动态一览 7:00-12:00关键词:Terraform、Solana、工信部、李礼辉 1.Terraform Labs首席执行官正在起诉SEC; 2.北京城市副中心启动“北京法定数字货币试验区”建设; 3.Solana市值排名加密货币第...

  • 4
    • www.coingogo.com 3 years ago
    • Cache

    10月24日晚间重要动态一览

    21:00 10月24日晚间重要动态一览 12:00-21:00关键词:摩根大通、俄罗斯、王永利、周小川 1.摩根大通:通货膨胀推动了比特币的价格上涨; 2.俄罗斯加密行业协会抨击政府在监管部门“无所作为”; 3.北美矿企Hut 8 Minin...

  • 7

    可能在10月发布的苹果iPad和iPad Pro,会迎来史诗级更新 2022年08月23日07:13  新浪科技综合  

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK