Chtěl bych se podělit o čerstvou zkušenost. Třeba se to někomu bude hodit.
Nedávno jsem upgradnul z Ubuntu 18.04 přes 20.04 ma 22.04. Byl to nightmare, ale o tomhle tento blog nebude. Dnes jsem s hrůzou zjistil, že další věc, která přestala fungovat, jsou scripty v tampermonkey ve firefoxu. Kdybych tady měl jenom cizí scripty, jednoduše bych je stáhnul znovu a bylo by vystaráno. Ale mám tady desítku vlastních scriptů na různé dost důležité pracovní záležitosti (registrování klientů a podobně). Velmi nerad bych je psal znovu.
Samozřejmě mám backupy, ale ty mi moc nepomohly. Problém je totiž v tom, že firefox už není nativní program Ubuntu, teď běží jako snap. Snapy nemám rád, tahle epizoda mě v tom jenom utvrdila.
Nebudu zdržovat popisem co všechno jsem zkoušel, dostaneme se hned k výsledku.
Scripty v tampermonkey jsou uloženy v adresáři
.mozilla/firefox/ipyr8373.default-1479389394427/storage/default/moz-extension+++acbf3e13-8c53-4974-98fb-d5dbc026955e^userContextId=4294967295/idb
Konstanta acbf3e13 odpovídá Tampermonkey beta, kterou používám. Tampermonkey stabilní verze má konstantu ff498834, o tom si povíme později. Zbytek kódu byl v nové verzi odlišný, pravděpodobně je vygenerován náhodně.
Zásadní problém je v umístění této cesty. Ve standardním firefoxu tato cesta začíná přímo v home, kdežto v případě snapu tato cesta začíná v ~/snap/firefox/common/
Abych dostal zpátky moje scripty, stačilo smazat adresář v ~/snap/firefox/common/.mozilla/firefox/ipyr8373.default-1479389394427/storage/default/moz-extension+++acbf3e13*
a zkopírovat ~/.mozilla/firefox/ipyr8373.default-1479389394427/storage/default/moz-extension+++acbf3e13* do ~/snap/firefox/common/.mozilla/firefox/ipyr8373.default-1479389394427/storage/default
rm -rf ~/snap/firefox/common/.mozilla/firefox/ipyr8373.default-1479389394427/storage/default/moz-extension+++acbf3e13* cp -ar ~/.mozilla/firefox/ipyr8373.default-1479389394427/storage/default/moz-extension+++acbf3e13* ~/snap/firefox/common/.mozilla/firefox/ipyr8373.default-1479389394427/storage/default
Pokud jsem zkopíroval jenom files a nechal jsem jméno adresáře tak, jak bylo, tampermonkey prohlásil, že jsou data corruptnutá. Když jsem ten adresář pojmenoval tak, jak v původním firefoxu, všechno fungovalo. Evidentně je to číslo, které je součástí jména adresáře, použito ke kryptování obsahu databáze.
Poznámka – Stabilní verze tampermonkey je v adresáři moz-extension+++ff498834–0880–4c74–862e-c17d45c8795d^userContextId=4294967295 , takže je potřeba hledat ff498834
Nejjednodušší cesta, jak zjistit, kam firefox sejvuje scripty je sejvnout nový script a podívat se, který file byl změněný a pak hledat podobné adresáře v ~/.mozilla
find ~/snap/firefox/common/.mozilla/firefox/ -mmin 1
Tak to je přibližně všechno, snad to někomu pomůže.