@ -39,14 +39,7 @@ export default class VectorBasePlatform extends BasePlatform {
constructor ( ) {
super ( ) ;
// The 'animations' are really low framerate and look terrible.
// Also it re-starts the animation every time you set the badge,
// and we set the state each time, even if the value hasn't changed,
// so we'd need to fix that if enabling the animation.
this . favicon = new Favico ( { animation : 'none' } ) ;
this . showUpdateCheck = false ;
this . _updateFavicon ( ) ;
this . startUpdateCheck = this . startUpdateCheck . bind ( this ) ;
this . stopUpdateCheck = this . stopUpdateCheck . bind ( this ) ;
}
@ -55,6 +48,24 @@ export default class VectorBasePlatform extends BasePlatform {
return 'Vector Base Platform' ; // no translation required: only used for analytics
}
/ * *
* Delay creating the ` Favico ` instance until first use ( on the first notification ) as
* it uses canvas , which can trigger a permission prompt in Firefox ' s resist
* fingerprinting mode .
* See https : //github.com/vector-im/riot-web/issues/9605.
* /
get favicon ( ) {
if ( this . _favicon ) {
return this . _favicon ;
}
// The 'animations' are really low framerate and look terrible.
// Also it re-starts the animation every time you set the badge,
// and we set the state each time, even if the value hasn't changed,
// so we'd need to fix that if enabling the animation.
this . _favicon = new Favico ( { animation : 'none' } ) ;
return this . _favicon ;
}
_updateFavicon ( ) {
try {
// This needs to be in in a try block as it will throw