Framework: Firefox 67.0 breaks Vaadin 8

Created on 22 May 2019  路  12Comments  路  Source: vaadin/framework

With the new Firefox release 67.0 Vaadin 8 is broken, both on Linux and Windows 10 machines.

https://demo.vaadin.com/sampler/
Can be opened on Chrome/Chromium and with Firefox 66.0.5 (Windows), but not with FF 67.0 on neither Windows nor Linux.

Most helpful comment

Additional note: sometimes the app may break at load because of the issue, sometimes during the usage.

All 12 comments

I just checked the https://demo.vaadin.com/sampler/ on my Firefox 67.0 as i just updated it and i can confirm this.
In the console i see this error occuring multiple times.
This does not show up in Chrome.

Wed May 22 12:39:09 GMT+200 2019 com.vaadin.client.ApplicationConfiguration SEVERE: (InvalidCharacterError) : String contains an invalid character com.google.gwt.core.client.JavaScriptException: (InvalidCharacterError) : String contains an invalid character at Unknown.kLb(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.VKb(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.vte(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Qse(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.lse(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.wse(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.KOd(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Pic(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Hic(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Wic(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.d3b(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.kec(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.kGc(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Qad(com.vaadin.demo.sampler.AppWidgetSet-3.js) at Unknown.$h(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.di(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Ai(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Di(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Ci/<(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.anonymous(com.vaadin.demo.sampler.AppWidgetSet-3.js) at Unknown.__installRunAsyncCode(https://demo.vaadin.com/sampler/VAADIN/widgetsets/com.vaadin.demo.sampler.AppWidgetSet/com.vaadin.demo.sampler.AppWidgetSet.nocache.js?1558521547992) at Unknown.__gwtInstallCode(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Qi(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.mj(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.anonymous(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Ai(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Di(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.Ci/<(https://demo.vaadin.com/sampler/ line 9 > scriptElement) at Unknown.anonymous(https://demo.vaadin.com/sampler/VAADIN/widgetsets/com.vaadin.demo.sampler.AppWidgetSet/deferredjs/AB8E0A7908A2A696EE46E149915F3EB6/3.cache.js) at Unknown.anonymous(Unknown) line 9 > scriptElement:1:3063

Basic hello world app created with archetype seems to work. @samo4b was this in your own app or in Sampler?

The reason is apparently that Firefox has added a feature called U2F, which overrides any variable named u2f. See this https://jsfiddle.net/6cewp2Lj/

But the seems to be projected to possibly upcoming 2.9 version: https://github.com/gwtproject/gwt/issues/9619

I can confirm that the 8.8-SNAPSHOT version and the released 8.8.2 works also with our internal application with FF 67.0 in Linux and Windows 10 environments.

Good and quick work, team!

Just wondering if you guys have a deterministic example where the problem occurs. I tested most of our application with 7 and 8 and non had the problem. Is there some kind of special feature we have to use to get this "u2f" generated or just bad luck?

You can go to WEB-INF/VAADIN folder and find the actual widgetset file, and decompress it. Then use e.g. grep to check if it contains "u2f".

Presumably the minifier uses a, b, c,...aa, ab, .... aaa, ... for method names and variables. When you have a large enough widget set then it will get to using u2f at some point

Thanks Artur and Tatu!

Additional note: sometimes the app may break at load because of the issue, sometimes during the usage.

Was this page helpful?
0 / 5 - 0 ratings