[Therion] Mapiah, again

Tarquin Wilton-Jones tarquin.wilton-jones at ntlworld.com
Thu Jun 12 10:58:58 CEST 2025


On 12/06/2025 09:11, Bruce Mutton wrote:
> Sounds exciting.  I’m still on Windows I’m afraid, so would like to try 
> the web app while there is no Windows install.
> 
> I’m missing something – all I get on Brave, Chrome and Edge Browsers is 
> a blank white screen.


Uncaught ReferenceError: _flutter is not defined at webapp/:51:7

<script src="flutter.js" defer></script>
...
   <script>
     window.addEventListener('load', function (ev) {
       // Download main.dart.js
       _flutter.loader...  <--------- Error happens here

_flutter does not exist in the global scope. I have not looked too far 
into why, because the flutter code has been minified, and is very 
difficult to read as a result. You do not need to minify code. Your 
server will support gzipping and other compression anyway, and that can 
do a better job than a minifier - your server sends things compressed 
using brotli already, which is extremely efficient at compression. The 
bonus is that other people will then be able to read the code and help 
you with it.

I don't know if this is the problem, but in flutter.js, the very first 
line performs a sniff that is bound to go wrong in some browsers, since 
it thinks Google and "Edg/" are the only browser vendors using Chromium, 
which is absolutely not the case. There are several other vendors using 
Chromium, and they have a right to use their own vendor string. Sniffing 
like that is very bad form, since it requires browser vendors to falsify 
information in order to make your app work correctly. (I work for one of 
those browser vendors, and we are forced to pretend our product is made 
by Google, which it isn't. However, many other vendors quite rightfully 
want to identify themselves correctly.)

Use object detection instead. The subsequent code uses object detection 
with its typeof checks - a more normal method would be:

if( window.ImageDecoder ) {
   //do a thing that uses it.


More information about the Therion mailing list