大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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

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

关注

评论

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

怎样徒手写一个React

helloworld1024fd

JavaScript

从零手写react-router

helloworld1024fd

JavaScript

太强了!阿里巴巴最新开源303页Spring全家桶高级笔记,深入瓦解源码

Geek_0c76c3

Java 开源 程序员 架构 开发

React源码分析8-状态更新的优先级机制

goClient1992

React

技术内幕 | StarRocks Pipeline 执行框架(上)

StarRocks

数据库

实践了上万次,原来这些才是敏捷测试需要遵循的原则

敏捷开发

敏捷 测试 单元测试

啃透Alibaba这份面试通关宝典,信心倍增!我成功拿下今年第15个Offer

Geek_0c76c3

Java 数据库 开源 程序员 架构

阿里全新推出:微服务突击手册,把所有操作都写出来了|超清PDF

程序知音

Java 微服务 阿里 SpringCloud 后端技术

阿里大牛强力推荐:springboot实战派文档,采用知识点+实例的形势,深入了解

Geek_0c76c3

数据库 spring 开源 程序员 架构

人工智能软件及服务细分市场数据监测报告合集

易观分析

人工智能 报告

面试官:你说说Vue中的组件和插件有什么区别?

CoderBin

vue.js 面试 前端 组件 10月月更

基础设施 NFTScan 正式发布 Avalanche 网络 NFT 浏览器

NFT Research

区块链 NFT web3 数据基础设施 Avalanche

京东的“618”高并发秒杀终极版教程!(Java语言设计)

程序知音

Java 架构 并发编程 高并发 后端技术

TDengine 3.0 中如何编译、创建和使用自定义函数

TDengine

数据库 tdengine 开源 时序数据库

React源码分析7-state计算流程和优先级

goClient1992

React

leetcode 220. Contains Duplicate III 存在重复元素 III(困难)

okokabcd

LeetCode 数据结构与算法

云安全将进入黄金时代 - Gartner 报告解读

HummerCloud

云计算 云安全 Gartner

JPEX推出竞猜世界杯冠军球队活动,质押平台通证赢奖金

股市老人

在 Go 语言中使用 exec 包执行 Shell 命令

宇宙之一粟

Shell Go 语言 10月月更

中国CRM要超车,没有弯道

ToB行业头条

一步步实现React-Hooks核心原理

helloworld1024fd

JavaScript

太神了!阿里p7大佬总结的Java面试心得,起始—进阶—突击,一应俱全!

Geek_0c76c3

Java 数据库 开源 程序员 架构

鹅厂二面,nginx回忆录

有态度的马甲

腾讯强推Spring Security速成笔记太香了!认证授权一键搞定

程序知音

Java 架构 spring security 后端技术 Spirng

idea启动build过慢

拾光师

IDEA 10月月更

阿里老表总结的“JVM核心笔记”,让我瞬涨7K!

程序知音

Java 架构 性能优化 JVM 后端技术

一文带你理解@RefreshScope注解实现动态刷新原理

JAVA旭阳

Java spring 10月月更

自己手写一个redux

helloworld1024fd

JavaScript

打造面向工业4.0的智能工厂01|云边协同架构助力视觉AI缺陷检测应用构建

EMQ映云科技

AI 物联网 IoT emqx 10月月更

一文带你玩转ProtoBuf

王中阳Go

Go 微服务 RPC protobuf 10月月更

《数字经济全景白皮书》证券财富管理篇 重磅发布

易观分析

金融 证券

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