写点什么

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:003176
用户头像

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

关注

评论

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

浅谈全面预算在交通运输与物流行业的应用

用友BIP

全面预算

2023年度解决方案大奖花落用友,人才发展解决方案备受瞩目

用友BIP

数智人力

国外主机引领你的网站征服全球!

一只扑棱蛾子

国外主机

智慧垃圾分类处理3D可视化系统

2D3D前端可视化开发

智慧环卫 智慧垃圾处理 智慧垃圾分类 智慧环保

略施小计,拥有自己的GPT

高端章鱼哥

人工智能 GPT ChatGPT

6 种方式读取 Springboot 的配置,老鸟都这么玩(原理+实战)

快乐非自愿限量之名

开发语言 spring-boot

低代码应用搭建平台,基于低代码快速开发管理系统

互联网工科生

低代码 低代码开发 JNPF

国内首发|性能飙升100% 焱融全闪存储成功适配 InfiniBand 400Gbps 网络

焱融科技

#分布式文件存储 #文件存储 #全闪存储 #高性能存储

前端如何入门 Go 语言

高端章鱼哥

前端 Go 语言

谷歌推出“能讲会听”的大语言模型 AudioPaLM,实现语音理解和生成

Zilliz

谷歌 AIGC 大语言模型

EMQ & 明道云:零代码高效构建工业物联网设备管理平台

EMQ映云科技

IoT 工业物联网 明道云

SOFAStack 的下一个五年

SOFAStack

开源 SOFA 程序员 java

两行CSS帮助页面提升了近7倍渲染性能!

高端章鱼哥

CSS 前端

3DCAT实时云渲染助力上海市乡村振兴可视化平台,展现数字乡村的魅力

3DCAT实时渲染

云渲染 数字孪生实时云渲染

超越极限!80Gbps高速传输,让您的数据瞬间飞速传递

镭速

集团公司该如何构建信息化系统?

优秀

信息化系统

数字孪生城市革命!低代码开发平台引爆智慧未来

EquatorCoco

低代码 低代码开发 数字孪生城市

镭速——简单、快速、自动备份数据到云端

镭速

共建智能汽车数据管理方案 | 4.15 IoTDB X EMQ 主题 Meetup 回顾

Apache IoTDB

智能汽车 emq IoTDB

国企为什么要建设数智底座?

用友BIP

数智底座 Pass平台

一文了解Java低代码开发平台

互联网工科生

Java 低代码 JNPF java低代码开发平台

个推文案圈人模型助力TT语音智选人群,实现消息推送点击率提升120%

个推

消息推送 移动开发

阿里云EMAS超级App助力Agmo电动车超级应用程序发布

移动研发平台EMAS

阿里云 超级app解决方案

2023-06-25:redis中什么是缓存穿透?该如何解决?

福大大架构师每日一题

redis 福大大架构师每日一题

Wise 的平台工程 KPI 探索之旅

快乐非自愿限量之名

KPI 平台工程 wise

实录分享 | Alluxio Operator一体化部署方案

Alluxio

分布式 operator Alluxio 大数据 开源 容器化部署

AI+低代码:解密AI赋能,释放创新力量!

快乐非自愿限量之名

AI 低代码

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