写点什么

Chrome 54 终结 YouTube 的 Flash 内嵌技术

  • 2016-10-19
  • 本文字数:1686 字

    阅读完需:约 6 分钟

谷歌已经启动了 Chrome 54 项目。最新发布的版本进一步地边缘化 Flash,转而使用 HTML5 在浏览器里内嵌 YouTube 视频,同时包含了大量问题修复和功能改进。

谷歌移除 Flash 的工作已经进行了一段时间,发布的多个更新强化了用户和开发者对 HTML5 的使用体验。

YouTube 从 2015 年 1 月份开始使用 HTML5 作为默认的视频内嵌技术,谷歌在去年改变了 Chromium 处理网站 Flash 的方式。

从 Chrome 45 开始,浏览器在运行最重要的内容并暂停其它 Flash 内容之前会先检测网页中是否包含了 Flash 内容。

Chrome 54 稳定版重写了 YouTube 内嵌 Flash 的方式,当检测到有内嵌的 Flash YouTube 视频,浏览器会自动使用 HTML5 替代它。谷歌表示这个变化是“为了减少 Flash 在 Chrome 中的使用”。

Chrome 54 还带来了 Custom Elements 规范的 v1 版本。

Custom Elements v1:可重用 Web 组件这篇博文里,谷歌工程师 Eric Bidelman 说,通过使用自定义元素,“Web 开发者可以创建新的 HTML 标签,弥补已有标签的不足,也可以对其他开发者开发的组件进行扩展”。另外,跟 v0 版本不一样的是,v1 版本的 API 在设计上有很大不同。

关于如何遵循 v1 规范为一个元素定义 JavaScript API,Bidelman 说:

自定义元素的功能是通过 ES2015 类来定义的,ES2015 扩展了 HTMLElement。扩展 HTMLElement 可以保证自定义元素会继承整个 DOM API,也就是说,为这个类添加的任何一个属性 / 方法都会成为自定义元素 DOM 接口的一部分。本质上,就是使用这个类为你的标签创建 JavaScript API。

Bidelman 举了 AppDrawer 这个例子来说明如何定义 DOM 接口,其中类的属性被映射成 HTML 属性:

复制代码
class AppDrawer extends HTMLElement {
// A getter/setter for an open property.
get open() {
return this.hasAttribute('open');
}
set open(val) {
// Reflect the value of the open property as an HTML attribute.
if (val) {
this.setAttribute('open', '');
} else {
this.removeAttribute('open');
}
this.toggleDrawer();
}
// A getter/setter for a disabled property.
get disabled() {
return this.hasAttribute('disabled');
}
set disabled(val) {
// Reflect the value of the disabled property as an HTML attribute.
if (val) {
this.setAttribute('disabled', '');
} else {
this.removeAttribute('disabled');
}
}
// Can define constructor arguments if you wish.
constructor() {
// If you define a ctor, always call super() first!
// This is specific to CE and required by the spec.
super();
// Setup a click listener on <app-drawer> itself.
this.addEventListener('click', e => {
// Don't toggle the drawer if it's disabled.
if (this.disabled) {
return;
}
this.toggleDrawer();
});
}
toggleDrawer() {
...
}
}
customElements.define('app-drawer', AppDrawer);
</app-drawer>

关于更多自定义元素的信息,包括自定义元素的扩展和重构,请参看这里

Chrome 54 还包括了大量安全方面的问题修复。尽管谷歌没有透露太多关于这些问题的细节,Richard Bustamante 在稳定通道更新里还是列出了总共21 个安全问题修复,包括6 个“高”安全级别问题。其中一个是URL 欺骗漏洞相关问题,有一个是全局XSS 问题(CVE-2016-5181),还有一个Blink 引擎的堆溢出问题(CVE-2016-5182)。谷歌的PDF 软件包PDFium 有三个高级别的问题修复。

从谷歌公布的 Chrome 54 已移除和不再推荐使用的 API 列表来看,最新版本的 Chrome 不允许跨域访问 window.onunload 事件处理器,为的是让 Chrome 和 HTML 规范保持一致。HTTP/0.9 不再被推荐使用(开发者应该转向 HTTP/2),initTouchEvent 被移除。

Chrome 55 计划在今年 11 月发布。

查看英文原文: Chrome 54 Kills YouTube Flash Embeds


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-10-19 19:003197
用户头像

发布了 322 篇内容, 共 143.4 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

三菱课堂笔记 编程基础(ST语言篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 机械安全入门

万里无云万里天

自动化 三菱

数据库管理软件Navicat Premium 15 for Mac(数据库开发工具)

Mac相关知识分享

Mac软件 mac软件下载 数据库管理软件

三菱课堂笔记 变频器节能

万里无云万里天

自动化 三菱

三菱课堂笔记 变频器入门

万里无云万里天

自动化 三菱

三菱课堂笔记 GOT入门

万里无云万里天

自动化 三菱

IBM:能力出海与企业出海的数字化能力

财见

三菱课堂笔记 MELSEC F系列基础

万里无云万里天

自动化 三菱

三菱课堂笔记 MELSEC iQ-F系列基础

万里无云万里天

自动化 三菱

三菱课堂笔记 串行通讯(MELSEC iQ-R系列篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 过程PLC基础

万里无云万里天

自动化 三菱

三菱课堂笔记 变频器A800系列基础(操作篇)

万里无云万里天

自动化 三菱

文件同步对比工具Beyond Compare 4 for Mac v4.4.7中文版

Mac相关知识分享

Mac Mac软件 文件同步对比工具 mac下载

三菱课堂笔记 GX Works2基础

万里无云万里天

自动化 三菱

2024年影响力排名显示:KIIT在印度最具影响力的大学中名列第六

财见

三菱课堂笔记 变频器维护(800系列对应版)

万里无云万里天

自动化 三菱

Final Cut Pro X for Mac(fcpx视频剪辑) v10.7.1简体中文版

Mac相关知识分享

mac软件下载 FCPX软件 FCPX下载 fcpx剪辑 mac下载

三菱课堂笔记 变频器A800系列基础(功能篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 以太网(MELSEC iQ-R系列篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 MELSEC iQ-R系列安全CPU · 安全远程IO

万里无云万里天

自动化 三菱

三菱课堂笔记 FA网络入门

万里无云万里天

自动化 三菱

三菱课堂笔记 编程基础

万里无云万里天

自动化 三菱

三菱课堂笔记 过程PLC入门

万里无云万里天

自动化 三菱

三菱课堂笔记 配电控制设备基础(低压断路器篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 配电控制设备基础(电磁接触器篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 编程应用(梯形图语言 MELSEC iQ-R系列篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 MELSEC iQ-R系列基础

万里无云万里天

自动化 三菱

Chrome 54终结YouTube的Flash内嵌技术_JavaScript_James Chesters_InfoQ精选文章