上周,谷歌针对安卓版 Chrome 浏览器 79.0 版本中的一个错误问题而发布了修复补丁,该问题将致使某些安卓应用的用户数据丢失或被重置。web
这个已知的错误问题,目前只会影响那些构建并运行于 WebView 之上的安卓应用,那些依赖于 WebView 组件的安卓应用可能将没法正常运行。 WebView 至关因而一个微缩版的 Chrome 浏览器。在安卓平台上,WebView 会被嵌入到其余的应用中,用于呈现 web 内容而无需显示完整的 Chrome 浏览器界面,而且还常常被当作一个容器,用来将 web 应用如同独立移动应用同样安装在安卓设备上。浏览器
Chrome 浏览器于本月中旬发布了全新的 79.0 版本,而出现上述问题的缘由在于 Chrome 79.0.3945.79 版本更改了用户档案文件夹目录的位置。当用户将 Chrome 浏览器从 78 升级为 79 版本以后,由 AppCache、fileSystem、localStorage、IndexedDB、Service Workers、WebSQL 等 API 接口生成的用户数据,却仍被留在了以前的位置而不会被正确地移动到新目录中。cookie
在最初的问题报告中,只提到来自 localStorage 和 WebSQL 的数据会受到影响,但实际上其余的 API 也受到了这一问题的困扰。而其余的存储区域,好比 cookies 和 sessionStorage 等并无受到影响。session
在此次更新以后,一些安卓平台的用户发现不少应用忽然出现了不明缘由的被重置、数据丢失以及没法登录帐号的问题。这些用户大都不知道这些出现问题的应用是运行于 Chrome/WebView 之上的,也并不清楚出现问题的真正缘由是什么。许多受影响的用户在谷歌应用商店的评价中给了这些应用一星差评,而无辜躺枪的应用开发者们又跑去向谷歌官方抱怨,认为此次更新出现问题的责任并不在他们这一边,他们不该该为此承担这样的结果。网站
实际上这些应用的数据并无丢失,只是放错了位置。Chrome 开发团队利用周末加班的时间针对这一问题进行了干预,并关闭了 79.0 版本的升级入口,以防止更多安卓用户及应用中枪。spa
因为 Chrome 浏览器是分阶段对更新进行推送的,所以这项有问题的更新相对来讲并未对太多的安卓用户形成影响。首轮更新原计划准备推送给大约 50% 的用户,而当更新入口关闭时,大约有不到 15% 的安卓用户进行了更新,这一数字实际比最初问题报告中提到的要小得多。blog
当此次更新的问题刚刚被爆出来时,Chrome 开发团队的工程师们实际上并不能肯定他们忘记转移的旧版本用户数据是否还存在于用户的设备上,他们很是担忧用户数据在更新的过程当中被完全、永久地删除了。但在进一步的调查以后,开发团队发现用户数据仍然是完整的,因而紧急开发了修复补丁以便在一周时间内帮助全部受影响的用户恢复数据。接口
谷歌从上周开始向用户推送最新的安卓版 Chrome 79.0.3945.93 版本,这一版修复更新将会修正上一版本中出现的数据错误问题。此外,安卓设备上的 WebView 组件也将与这一修正版 Chrome 同步进行更新,以便修复那些受影响的应用,并完全消除全部的隐患。开发
谷歌官方表示,最新的修复补丁将帮助安卓用户从新获取此前丢失的应用数据,全部受此问题困扰的网站站长及应用开发者不须要进行任何额外的操做,只须要等待官方的推送并进行更新便可解决全部问题。同步