2022年3月29日正式发布的Chrome 100,将带来了哪些新特性呢?
Chrome 100正式发布了Multi-Screen Window Placement API,可以用来查询设备所连接的多个屏幕的信息,并且将页面内容在指定屏幕中打开,其核心API如下:
window.getScreenDetails()
方法,用于获取显示器屏幕的信息(包括外接显示器);相比之下,window.screen只能获取当前浏览器页面所在的显示器屏幕信息;简单地说,Chrome支持多屏应用了。
一图胜千言,当我使用Keynote播放PPT时,它会在外接显示器上展示PPT内容,而在MacBook显示器上显示下一页内容以及当前时间,这样的话,演讲者可以把握演讲的时间节奏并且提前准备一下下一页要讲的内容(请忽略我的PTT水平。。。):
那么,对于Google Docs、语雀、石墨文档等文档应用,不妨可以使用Multi-Screen Window Placement API实现类似于Keynote的效果,用于演示场景。
其实,在金融、设计工具、游戏等应用中,都可以用到Multi-Screen Window Placement接口,将不同的内容展示到不同的屏幕,提高用户体验和工作效率。
Twitter、Discourse、Google Slides、itrix等团队表达了对Multi-Screen Window Placement API的兴趣,不过目前并没有看到实际案例,而Chrome团队所提供的Demo也过于简单。
Multi-Screen Window Placement提案还是挺有意思的,不过目前并没有成为正式标准,也没有得到Firefox和Safari的支持,这就很尴尬了。。。
Chrome 100开启了ECMAScript提案Array Grouping proposal的开发者试用(devloper trial),该提案目前处于Stage 3,为数组新增了groupBy和groupByToMap方法:
const array = [1, 2, 3, 4, 5];
// 返回值:{ odd: [1, 3, 5], even: [2, 4] }
array.groupBy((num) => {
return num % 2 === 0 ? "even" : "odd";
});
const odd = { odd: true };
const even = { even: true };
// 返回值: Map { {odd: true}: [1, 3, 5], {even: true}: [2, 4] }
array.groupByToMap((num, index, array) => {
return num % 2 === 0 ? even : odd;
});
根据Web Almanac 2021报告,Lodash的使用率仅次于jQuery和Modernizr,高于React,由此可见类似于goupBy等工具函数还是非常常用的:
如果哪天Lodash的常用函数都变成了ECMAScript的提案,大家也不必意外。。。
Chrome 95开始试用Reduce User Agent string information特性,试用期将于Chrome 100结束,具体的结束日期为2022年4月19日。Chrome 101开始,将逐步正式发布Reduce User Agent string information特性。
Reduce User Agent string information旨在简化User-Agent字符串,减少其信息量,缓解利用User-Agent字符串作为用户指纹,更好地保护用户隐私。同时,引导开发者使用更加保护用户隐私的User-Agent Client Hints来获取浏览器信息,降低大家对User-Agent字符串的依赖。
Chrome计划到Chrome 113彻底完成User Agent字符串的简化,不过从最终的结果来看,其实User-Agent的变化其实非常小。
以Chrome Windows用户为例,旧的User-Agent字符串是这样的:
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.1234.56 Safari/537.36
简化之后最终的User-Agent字符串是这样的:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36
Windows NT 6.3变成了Windows NT 10.0,Chrome/93.0.1234.56变成了Chrome/93.0.0.0,仅此而已。Windows的版本号被固定在了10.0,即使用户更新了操作系统,也不再变化了;Chrome的版本号仅保留大版本号,省略了小版本号。换句话说,我们依然可以通过User-Agent字符串获取浏览器的名称及其大版本号、操作系统的名称、区分桌面端和移动端。但是,我们无法通过User-Agent字符串获取浏览器的小版本号以及操作系统的版本了。另外,对于安卓端,手机的品牌及型号也不再提供。
User-Agent字符串所能提供的浏览器信息更加模糊了,这样有利于保护用户隐私。
如果开发者需要获取更加精确的浏览器信息,则需要使用User-Agent Client Hints,该特性在Chrome 89已上线。User-Agent Client Hints对应的HTTP请求Header字段如下表:
请求Header | 取值示例 |
---|---|
Sec-CH-UA | "Chromium";v="84", "Google Chrome";v="84" |
Sec-CH-UA-Mobile | ?1 |
Sec-CH-UA-Full-Version | "84.0.4143.2" |
Sec-CH-UA-Platform | "Android" |
Sec-CH-UA-Platform-Version | "10" |
Sec-CH-UA-Arch | "arm" |
Sec-CH-UA-Model | "Pixel 3" |
Sec-CH-UA-Bitness | "64" |
浏览器默认仅发送Sec-CH-UA、Sec-CH-UA-Mobile、Sec-CH-UA-Platform,与User-Agent所提供的信息量一致,如果服务端需要获取其他User-Agent Client Hints字段的话,则需要明确指定所需要的字段。这样做的好处在于,浏览器默认提供的用户信息更少了,同时浏览器及Web应用理论上能够记录、审计服务端所请求的信息量,能够更加主动地保护用户隐私。
Web端的监控服务,例如ARMS、Fundebug、Sentry等,若需要获取更加准确的客户端信息,则需要使用User-Agent Client Hints了。当然,建议使用User-Agent Client Hints需要获得用户的授权,插件以及应用端不应该帮用户做决定,否则这个特性对用户隐私的保护就没有实际意义了。
计划于今年9月份发布的Chrome 106将不再支持通过修改document.domain
来绕开同源策略(same origin policy)的限制,Chrome 100开始在控制台的Issues中打印warning信息。
例如,访问https://www.google.com时,其原本的document.domain取值为www.google.com,我将其修改为google.com之后,Issues中将会出现Deprecated Feature Used信息:
Relaxing the same-origin policy by setting "document.domain" is deprecated, and will be disabled by default in M106, around September 2022. To continue using this feature, please opt-out of origin-keyed agent clusters by sending an Origin-Agent-Cluster: ?0 header along with the HTTP response for the document and frames. See https://developer.chrome.com/blog/immutable-document-domain/ for more details.
好奇的小朋友可能就要问了,document.domain
看着就不应该支持修改,正经人谁改这个啊!
是这样的,当我们在https://parent.example.com中嵌入来自https://video.example.com的iframe页面时,两者的主域名都是example.com,但是子域名不同,因此不是同源(same-origin),如果将两者的document.domain都设为example.com的话,它们就变成同源了。因此,修改document.domain是为了绕开同源策略的限制,这样主页面和iframe页面就可以互相读取和修改DOM了,比如给内嵌视频增加autoplay属性。
同源策略(same origin policy)是Web应用最基本的安全基础之一,这么1行代码就轻易地绕开了?
这显然是一种hack的做法,违背了同源策略的初衷,存在安全风险,比如对于类似GitHub Pages这种网页托管服务来说,各个用户的子域名不同,主域名相同,这时理论上通过修改document.domain是可以绕开同源策略的限制的。
所以,Chrome决定堵住这个安全漏洞,修改document.domain将不能绕开同源策略的限制,Firefox也表示了支持。
如果你依然需要进行https://parent.example.com与https://video.example.com之间的通信,则可以使用postMessage()或者Channel Messaging API。
如果你依然需要通过修改document.domain绕开同源策略的限制,或者来不及进行改造的话,可以返回HTML文件时,增加以下Header:
Origin-Agent-Cluster: ?0
Chrome致力于让Web变得更加安全,为了这个目标,不停地折腾全世界的Web开发者,这种做法让人不得不服,谁叫它说了算,大家还是赶紧检查一下你的代码里面是否修改document.domain了吧!
根据Chrome Platform Status的数据,大概有0.5%的页面加载通过修改document.domain来绕开同源策略的限制,这个比例很低,但是考虑到Chrome的市场占有率,其绝对数量也是相当大,影响的用户和开发者并不少:
2008年,秘密开发2年的Chrome正式发布,14年之后,Chrome的版本号达到了100。
Chrome的UI设计基本上没什么变化,不过它的内核已经焕然一新了,Web技术获益于Chrome的推动得到了长足的进步。
相信Chrome 100只是起点,随着WebAssembly、WebGPU、HTTP/3等各种Web新技术得到应用,未来的Web会更加精彩!
这里,不妨模仿一下Atwood's Law:
Any application that can be written in Web, will eventually be written in Web.
我们已经看到AutoCAD、Google Earth、Phontoshop、Figama这样重量级的应用出现在Web中,性能瓶颈会被逐渐突破,未来类似于视频编辑、游戏、VR/VA等应用会越来越多。
本文由哈喽比特于2年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/MA824_IQKjS4Gv9I4hQJVA
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。