速览
- Firefox 将禁用 TLS 1.0/1.1
- React 16.13.0 发布
- Chrome 新增 "默认为访客" 模式以进行无状态浏览
- GitHub 正式收购 npm
Firefox 74 发布
Mozilla 在 3 月 10 日发布了 Firefox 74 版本。Firefox 74 做了一些安全优化以及增加了一些新功能。
安全更新
Firefox 74 将禁用基于 TLS 1.0 和 TSL 1.1 协议的网站,不支持 TLS 1.2 版的网站将显示一个错误页面。
这将是首个禁止访问使用 TLS 1.0 和 TLS 1.1 的 HTTPS 网站的浏览器版本。
Mozilla 计划今年停用并在以后删除 Firefox Web 浏览器中对 FTP 协议的支持。
由于 FTP 本身的安全问题,早在 2015 年 Google 和 Mozilla 工程师开始讨论如何从 Chrome 和 Firefox Web 浏览器中删除 FTP。两家公司都已经限制了与 FTP 相关的某些功能。Mozilla 开始阻止 Firefox 61 中网页上加 FTP 的资源,而 Google 在 Chrome 76 中放弃了代理支持。
就 FTP 本身安全性来讲,最好能使用 FTPS,FTPS是一种对常用的文件传输协议(FTP)添加传输层安全(TLS)和安全套接层(SSL)加密协议支持的扩展协议。
看到这个更新下的评论挺有趣的,哈哈哈。。。
安全漏洞修复:https://www.mozilla.org/en-US/security/advisories/mfsa2020-08/
开发者
Firefox 的 Debugger 增加了对嵌套 Web Worker 进行调试的支持,现在可以暂停并通过断点逐步执行它们。
Firefox 增加了对新的 JavaScript 可选链接运算符(?.)和 CSS text-underline-position 的支持。
- 可选链操作符 ?.:能够去读取一个被连接对象的深层次的属性的值而无需明确校验链条上每一个引用的有效性。
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
};
const dogName = adventurer.dog?.name;
console.log(dogName);
// expected output: undefined
- text-underline-position:当 text-decoration 属性的值设置为 underline 之后,可以用 text-underline-position 属性为其设置下划线的位置。
/* 只设置一个属性值 */
text-underline-position: auto;
text-underline-position: under;
text-underline-position: left;
text-underline-position: right;
/* 设置多个属性值 */
text-underline-position: under left;
text-underline-position: right under;
/* 全局属性值 */
text-underline-position: inherit;
text-underline-position: initial;
text-underline-position: unset;
React 16.13.0 发布
新增 Render 期间某些更新的警告
在渲染期间,React 组件不应在其他组件中引起副作用。
支持 setState 在渲染期间调用,但仅针对同一 component。如果 setState 在其他组件上的渲染期间调用,现在将看到警告:
Warning: Cannot update a component from inside the function body of a different component.
此警告将帮助您查找由于意外状态更改导致的应用程序错误。在极少数情况下由于渲染而有意要更改另一个组件的状态的情况,可以将 setState 调用包装到 useEffect 中 。
新增样式规则冲突的警告
当动态应用包含 CSS 属性的简写和简写版本的 style 时,特定的更新组合可能会导致样式不一致。例如:
<div style={toggle ?
{ background: 'blue', backgroundColor: 'red' } :
{ backgroundColor: 'red' }
}>
...
</div>
现在, React 检测到样式规则冲突并记录警告。要解决此问题,请勿在 style 道具中混合使用同一 CSS 属性的简写版本和简写版本。
新增一些不推荐使用的字符串引用的警告
字符串引用是一个旧的旧式API,不建议使用,以后将不推荐使用:
<Button ref="myRef" />
(一般不要将 String Refs 与 Refs 混淆,后者仍然得到完全支持。)
将来,我们将提供一个自动化脚本( codemod )以从 String Refs 迁移。但是,在少数情况下无法自动迁移。此版本仅在弃用之前针对那些情况添加了新的警告。
弃用 React.createFactory
React.createFactory用于使用工厂模式创建 React 组件,实际使用过程中完全可以用 JSX 代替, 此版本向 React.createFactory 添加了弃用警告。它将在以后的主要版本中删除。
或者你还可以用下面的方法达到同样的效果:
let createFactory = type => React.createElement.bind(null, type);
弃用 ReactDOM.unstable_createPortal 正式支持 ReactDOM.createPortal
Portal 可以有一个很形象的翻译 —— “传送门”。引用 程墨大佬的解释:曾经有一款游戏就叫做 Portal,玩家手上一杆很厉害很科幻的枪,朝墙上开一枪,就可以开出两个“传送门”,人钻进这个传送门,可以从另一个传送门里走出来,也就是说,两个不同位置的传送门之间形成了对接。
在 React 中 Portals 提供了一种很好的将子节点渲染到父组件以外的 DOM 节点的方式。
例如:我们在写一个弹出框组件 Modal 时,这个组件其实不属于父组件,但是由于我们要把它显示出来,我们必须要把它挂在到父组件下,这是就可以用到 createPortal,我们将它渲染到父组件以外,但是我们可以通过 "传送门" 把它弹出来~
Chrome 新增“默认为访客”模式以进行无状态浏览
Chrome 浏览器的 Windows,Linux 和 macOS 高级用户现在可以使用新的“默认为访客模式”功能。该功能允许用户将网络浏览器配置为始终以访客模式启动。在这种浏览模式下,Chrome 退出浏览器后将删除计算机上的所有浏览活动,从而为用户提供“从会话到会话的无状态浏览体验”。
GitHub 正式收购 npm
3月14日 GitHub 正式完成了对 npm,Inc 的收购,博客中称将集成 GitHub 和 npm 来提高开源软件供应链的安全性,并使开发者能够跟踪从 GitHub 拉取请求到修复它的 npm 软件包版本的更改。
开源安全是一个重要的全球性问题,随着 GitHub Security Lab 的最新发布和 GitHub 的内置安全公告, GitHub 已做好充分准备,可以发挥作用。