News: 1628148007

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Google hits undo on Chrome browser alert change that broke websites, web apps

(2021/08/05)


Google has temporarily reversed Chrome's removal of browser alert windows and other prompts created via cross-origin iframes after a rocky rollout over the past two weeks broke web apps and alarmed developers.

An iframe, or Inline Frame, is a portion of a web page embedded in another web page. When it includes resources from a different origin or domain, it's a cross-origin iframe.

Since March, 2020, the team behind Chromium, the open-source engine of Chrome, has been planning to limit the capabilities of cross-origin iframes because they're a security liability. Specifically, they allow an embedded resource like an ad to present a prompt as if it were the host domain.

[1]

"The current user experience is confusing, and has previously led to spoofs where sites pretend the message comes from Chrome or a different website," a Google engineer explained in the company's initial [2]Intent to Remove notice last year.

[3]

[4]

"Removing support for cross origin iframes’ ability to trigger the UI will not only prevent this kind of spoofing, but will also unblock further efforts to make the dialog more recognizable as part of the website rather than the browser."

Google's answer to spoofing has been to prevent JavaScript code in cross-origin iframes from calling the alert, prompt, and confirm methods on the browser's window object – which web developers use to show dialog boxes for user notifications and interaction.

[5]

By doing so, Google has broken more than a few web apps. And eventually, Google [6]plans to remove these prompt mechanisms completely (from same-origin contexts as well as cross-origin ones), again to prevent potential abuse.

The deprecation of window.alert , window.prompt , and window.confirm from cross-origin iframes took effect with the release of Chrome 92.0.4515.107 on July 20. Since then, applications like social dev environment [7]Codepen and Microsoft's [8]Azure Cosmos DB have encountered problems because they present users with alerts, notifications, and confirmation windows via cross-origin iframes.

[9]Be careful what you inline: Defunct video-hosting domain used to inject smut flicks into news articles, more

[10]Google reCAPTCHA service under the microscope: Questions raised over privacy promises, cookie use

[11]iFrame clickjacking countermeasures appear in Chrome source code. And it only took *checks calendar* three years

[12]If you want an example of how user concerns do not drive software development, check out this Google-backed API

In the [13]Chromium issue where the removal is being tracked, developers have been chiming in to express their dismay at the way this change has been forced upon the web community.

"This change has created quite a difficulty for us because we use a paid third party service embedded via iframe in our web app and I pass a small amount of limited custom JavaScript to that third party app when I instantiate their tool (to trigger some actions and customize part of the tool to the user)," [14]wrote one developer last week." ...With this change I am scrambling to implement an ugly window.parent.postMessage workaround because chunks of our web app are now broken for our tens of thousands of users."

"I'm an engineer for a large ERP company and work on a product where hundreds of large customers (hundreds of thousands of users) are no longer able to use the product due to the removal of cross origin dialogs," [15]wrote another developer.

[16]

"These customers generally choose to host the product themselves, which means signing up for the origin would fall on each of them individually. That isn't feasible for us or their IT departments. We internally are not even able to get it to work. We are also getting pushback on asking them to push out registry settings."

My team is working around the clock and weekends trying to rewrite our product around this change

"My team is working around the clock and weekends trying to rewrite our product around this change and simply need more time. This type of change should have been documented and warned about ahead of time in my opinion."

The outcry has proven voluble enough that Microsoft Edge last week [17]reverted the changes in its upstream Chromium code to restore dialogs in cross-origin iframes. Shortly thereafter, a Google engineer said Chrome has [18]disabled its deprecation until August 15 to provide developers with more time to rewrite their apps.

Google has even implemented a four-month opt-in " [19]reverse origin trial " that temporarily revives cross-origin prompts for Chrome users and gives developers retrofitting large web apps more time to find replacements for the exiled API methods.

"This is peak Chrome; what seems to be a reasonably good idea that's hampered because it was pushed out thoughtlessly without putting any serious effort into notifying the people affected or making sure that nothing else breaks, or making sure that it thoroughly solves the problem," wrote developer Daniel Shumway in [20]a post to Hacker News.

"The product owners at Chrome are smart, but they're careless and constantly break the web because they don't seem to have enough of a sense of gravitas or caution about what they're doing." ®

Get our [21]Tech Resources



[1] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YQu23TiGhmPLFCf@37SqtwAAAIA&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[2] https://groups.google.com/a/chromium.org/g/blink-dev/c/hTOXiBj3D6A/m/PVc8zwKTAwAJ

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YQu23TiGhmPLFCf@37SqtwAAAIA&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YQu23TiGhmPLFCf@37SqtwAAAIA&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YQu23TiGhmPLFCf@37SqtwAAAIA&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[6] https://github.com/whatwg/html/issues/6897#issuecomment-885773622

[7] https://github.com/reactjs/reactjs.org/pull/3827

[8] https://twitter.com/southpolesteve/status/1422973696621350913?s=20

[9] https://www.theregister.com/2021/07/22/vid_me_video_hijacking/

[10] https://www.theregister.com/2020/11/02/google_ad_privacy/

[11] https://www.theregister.com/2019/08/19/clickjacking_countermeasures_chrome/

[12] https://www.theregister.com/2019/12/06/chrome_app_detection_api_privacy/

[13] https://bugs.chromium.org/p/chromium/issues/detail?id=1065085

[14] https://bugs.chromium.org/p/chromium/issues/detail?id=1065085#c24

[15] https://bugs.chromium.org/p/chromium/issues/detail?id=1065085#c37

[16] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YQu23TiGhmPLFCf@37SqtwAAAIA&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[17] https://bugs.chromium.org/p/chromium/issues/detail?id=1065085#c40

[18] https://bugs.chromium.org/p/chromium/issues/detail?id=1065085#c41

[19] https://developer.chrome.com/origintrials/#/register_trial/2541156089743802369

[20] https://news.ycombinator.com/item?id=28055802

[21] https://whitepapers.theregister.com/



Anonymous Coward

Causing a lot of applications to break for a while was probably the only way the gain significantly meaningful attention. Who reads the docs? And if they they read the docs, who pays attention to deprecation warnings? Might as well be sounding off about climate change. On this one, Google gets a pass.

Anonymous Coward

If they'd attempted to notify people and been ignored this would be much less of an issue.

I like how you made sure to get the first post and make it pro-Google, that looks really natural. On this website we tend to favour the big players and not take the piss.

Yes, I am being sarcastic.

bofh1961

Tightening security always breaks stuff. Users prioritise functionality over security so developers do too. Others get to fix the security holes - after they've been exploited.

"Tightening security always breaks stuff"

Mike 137

Sometimes it even breaks security. Recently, without any warning Firefox disabled a perfectly safe security plugin that had provided control over cross-domain content because it was considered to be "not signed". It worked though (for ages), but now it no longer protects me.

As a security professional I do so wish these externally provided "security" measures were optional, not forced on us without the choice.

Hmm ...

Blofeld's Cat

" Specifically, they allow an embedded resource like an ad to present a prompt as if it were the host domain. "

Perhaps the developers forgot where Google derives most of its revenue from.

"The grand emperor has sent me here to inform you that the spice ads must flow."

"Chrome has disabled its deprecation until August 15"

Pascal Monett

2022 ?

No, seriously, just ten more days ? How generous, Google.

It's obvious you are not the one putting in the overtime your changes have imposed.

Now that you've caused the stink, you could at least give something like 60 days for developers to analyze, define and implement the required changes.

It's not like the Web will break in that time anyway.

Re: "Chrome has disabled its deprecation until August 15"

Anonymous Coward

But ten days is enough for Google to throw untested code into Chrome and force it on the masses. They are just passing on their Best Practices to other companies to follow their lead in throwing out untested code.

Next those companies need to also learn how to ignore their clients screams when things fail to work.

So what of...

Sgt_Oddball

Card payment services? Alot of them use an embedded iFrame to offload liability within the PCI-DSS compliance framework. Think of a large company with many different brands taking payments, do you a) Certify each and every site to the top PCI-DSS level 1 merchant compliance with all the security checks that entails, b) Create a separate entity to handle all payments for all sites and use an iFrame to handle the payment (thus meaning no money is put through each individual site but only the payment service, and only needs one site to be fully scrutinised). Or c) Hand it over to a 3rd party provider like PayPal for example... again via an iFrame.

Re: So what of...

Robert Grant

So what? Do they pop up Javascript alerts?

Chrome is not a browser

elsergiovolador

When people realise that Chrome is no longer a browser but a tool to use Google Apps?

If you want a real browser download Firefox.

Anonymous Coward

Breaking the appalling CosmosDB UI in Azure Portal can only increase world happiness.

Shame

tiggity

Google do a lot of bad things with chrome, but this was a good thing for security (& web apps that fail due to this deserve it, too much cross origin js fuckery around (too much js full stop, but that's a separate rant)).

At least they will reinstate it in a while

The browser is the new operating system

trevorde

Don't forget to test your app on:

* previous versions of Google Chrome (for those orgs who fix on a particular version)

* Firefox

* Microsoft Edge

* Internet Explorer 6

Hmmm ... an arrogant bouquet with a subtle suggestion of POLYVINYL
CHLORIDE ...