mirror of https://github.com/vector-im/riot-web
				
				
				
			Merge pull request #9616 from vector-im/jryans/delay-favicon
Delay creating the `Favico` instancepull/9617/head
						commit
						8cb7eeecd2
					
				|  | @ -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
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 J. Ryan Stinnett
						J. Ryan Stinnett