Rubriky: Firefox

Spolehlivější mechanismus synchronizace záložek

Firefox Sync je služba pro synchronizaci nastavení, hesel, historie, otevřených panelů a samozřejmě záložek mezi více instalacemi Firefoxu, včetně mobilních verzí.

Bohužel Firefox Sync má (ale už ne na dlouho) problémy se synchronizací záložek, které je obtížné izolovat, zreprodukovat a opravit. Za jistých okolností tak může docházet k:

  • změně pořadí, zdvojování nebo ztrátě záložek, a to dočasně, ale někdy i trvale
  • smíchání záložek v různých složkách
  • synchronizaci nových záložek pouze na některá zařízení
  • po přesunu záložky k jejímu vrácení na původní místo

Proto Mozilla pracuje na novém mechanismu, který už je implementovaný v mobilních verzí Firefoxu pro Android a iOS, a ve verzi 61 bude i ve verzi pro počítače. Uživatelé betaverzí a Nightly ho můžou vyzkoušet po přepnutí předvolby. I když je formát synchronizovaných dat kompatibilní (vlastně se nemění), před finálním vydáním důrazně doporučujeme předem záložky zazálohovat.

Po technické stránce byl důvodem problémů původní generický přístup, který přistupoval k synchronizaci obecněji a nebral synchronizaci záložek jako unikátní a specifický případ použití. Na rozdíl od řešení některých jiných konkurenčních prohlížečů, Firefox data šifruje end-to-end. To znamená, že server a Mozilla vidí data (historii, záložky, hesla) pouze zašifrovaná a nemůže se do nich dívat, ale taky se nemůže ani centrálně postarat o jejich správnost.

Celou synchronizaci tak vlastně řeší sám Firefox a server mu slouží jenom jako prostředek posílání dat ostatním instalacím přihlášeným ke stejnému účtu. Každá jednotlivá instalace Firefoxu musí sama aplikovat změny a případné kolize vyřešit podle časových značek, které ale nutně nemusí jednoznačně určit, v jakém pořadí změny nastaly. U záložek je to speciálně obtížný problém, protože jsou svázané do složek, které se samy mohou různě přesouvat, duplikovat, měnit názvy apod. Podrobnosti o tom, jaké výzvy synchronizace přináší a jak je Mozilla řešila dříve a nyní najdete v tomto příspěvku na blogu.

8 komentářů k článku “Spolehlivější mechanismus synchronizace záložek”

  1. Zbyněk Král napsal(a)

    Jen bych se chtěl zeptat, bude se měnit i struktura záložek? Připadá mi zbytečně složité rozdělení na Záložky z mobilu a na Záložky z počítače, které se dále dělí na Nabídka záložek, Ostatní záložky a Lišta záložek (ta jediná je mi jasná).

    1. Michal Stanke napsal(a)

      O podobných plánech nevím, ale dávalo by smysl to trochu zjednodušit. Vyplníte prosím návrh formou bugu v Bugzille? https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Bookmarks%20%26%20History

  2. tutu napsal(a)

    Každá jednotlivá instalace Firefoxu musí sama aplikovat změny a případné kolize vyřešit podle časových značek, které ale nutně nemusí jednoznačně určit, v jakém pořadí změny nastaly.
    Protože časové značky mají nejmenší jednotku sekundu či minutu?

    1. Michal Stanke napsal(a)

      Protože času se nedá věřit. Jednak nemusí být na všech zařízeních stejný (posun o vteřiny je naprosto normální) a také pořadí, kdy ke změně došlo, nemusí odpovídat pořadí, kdy se klienti spojí se serverem a ty změny tam promítnou.

  3. tutu napsal(a)

    Takto nechápu.
    Když uložím záložku je snad jedno jaký čas je jinde než na mém lokálním zařízení.
    Kdyby měl správce záložek třeba větší časovou přesnost, mohl by být i možný stejný setříděný stav na jiném zažízení. Přeci synchronizuji jen své záložky. I kdyby jsem držel dva telefony v každé ruce jeden měl a na obou jeden do druhého chtěl synchronizovat, vždy by měla každá záložka unikátní čas, protože aby reakce ve stejný čas prostě možná není. A i kdyby každé zařízení mělo svůj lokální čas jiný, pořád by třídit jít mělo, sice by mohli vznikat duplikáty stejné záložky s jiným časem ale to by šlo vyřešit deduplikací.
    Přece čas na na nějakém synchronizačním uložišti mě zajímat nemusí, jsou to mé data nebo vlastníka uložiště.

    1. tutu napsal(a)

      Jinak synchronizaci ve firefoxu nepoužívám, naposledy jsem to zkoušel v nějaké v. 20 možná nižší a smazalo mi to poslední velké změny v blokovacím listu myslím ještě v adblocku plus.

    2. Michal Stanke napsal(a)

      Věřte mi, není to tak jednoduché. A nezáleží ani tak na čase, ale na pořadí, kdy se změny aplikují, a jak řešit ty kolize.

      Přestavte si třeba, že na notebooku smažete složku A a na stolním počítači časově později, ale předtím, než se vše sesynchronizovalo, do ní přidáte novou záložku.

      Nechte to na vývojářích, že to tentokrát opravdu udělají lépe.

      Tehdy fungoval Sync ještě jinak a doplňky si řešili jeho obsah sami. Teď s WebExtensions už je synchronizace standardnější. A můžete si taky vybrat, jestli vůbec doplňky a jejich nastavení synchronizovat, nebo ne.

  4. tutu napsal(a)

    Dobrá dík, nic jiného než to nechat na chytrých hlavách mi stejně nezbývá.