Chrome 54终结YouTube的Flash内嵌技术

谷歌已经启动了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  itself.\    this.addEventListener('click', e =\u0026gt; {\      // Don't toggle the drawer if it's disabled.\      if (this.disabled) {\        return;\      }\      this.toggleDrawer();\    });\  }\\  toggleDrawer() {\    ...\  }\}\\customElements.define('app-drawer', AppDrawer);\
\\

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

\\

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)关注我们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值