Notizie: puoi sempre seguire i nostri aggiornamenti su Twitter (@MozillaItalia) e Facebook (/MozillaItalia)

Autore Topic: Firefox e compatibilità con le estensioni  (Letto 1196 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Borgata

  • Post: 624
Firefox e compatibilità con le estensioni
« il: 20 Luglio 2013 19:15:07 »
Mi è capitato di recente di discutere sul modo in cui Firefox gestisce la compatibilità delle estensioni.
Da un punto di vista molto empirico, sembra che tale gestione sia abbastanza confusionaria, ma immagino che semplicemente ci siano certe "regole" che non conosco e che possono chiarire come funziona.

Partiamo da quello che so/credo di sapere/ho scoperto:
  • Viene controllato il file install.rdf dell'estensione, che contiene i tag min e max version.
    Purtroppo questo semplice metodo non basta a gestire la compatibilità dell'estensione. In certi casi, nonostante la modifica manuale del valore per max version, l'estensione non si installa. Un esempio qui.
  • Viene controllata una qualche risorsa remota, linkata nel file install.rdf (e forse altrove). A quanto pare questa ha priorità sul tag max version. Mi era capitato proprio questo qualche tempo fa, se ne era discusso qui, ed avevo risolto eliminando il link.
  • Da FF10 pare che le estensioni siano considerate compatibili di default, tranne alcune eccezioni come le estensioni che includono binari e che devono essere ogni volta rimpacchettate. Qui un link che ne parla.

Ora, questa lista è sicuramente incompleta, perchè non spiega diversi casi che sono capitati.
Qualcuno ha un'idea più chiara di come la cosa funzioni?

PS: ho aperto il topic qui e non nella sezione delle estensioni perchè riguarda firefox in generale. Spero di non aver sbagliato.

Edit by Iceberg: i link erano non funzionanti, corretta la loro sintassi.
« Ultima modifica: 21 Luglio 2013 00:51:54 da Iceberg »

Offline Iceberg

  • Moderatore
  • Post: 9232
Re: Firefox e compatibilità con le estensioni
« Risposta #1 il: 21 Luglio 2013 00:14:51 »
Il file install.rdf per il controllo di compatibilità conta, ma molto meno che in passato.
Il controllo viene effettuato on line sul sito addons.mozilla.org (AMO).
In base a quanto specificato dall'autore, che può quindi aumentare il valore maxVersion di una sua estensione senza farne una nuova versione con un nuovo file install.rdf. Questo se ritiene che la sua estensione sia compatibile con successive versioni di Firefox senza necessità di alcuna modifica.
Inoltre, come scrivi, tranne alcune eccezioni le estensioni sono considerate compatibili di default con le nuove versioni di Firefox.
Modificando manualmente il file install.rdf non sempre si ottiene il risultato voluto in quanto prevale il maxVersion che viene trovato su AMO. Questo vale anche per le estensioni installate da file.

Se imposti "Lavora non in linea", non potendo Firefox verificare on line viene considerato il valore presente nel file install.rdf.
Attenzione alla memoria.
Se provi ad installare da file l'estensione modificata che riporti "Easy YouTube Video Downloader 6.8" parte la verifica on line e l'estensione non viene installata in quanto non compatibile. Questo dato viene salvato. Se ora metti Firefox off line e riprovi otterrai lo stesso risultato: non compatibile. Se invece la prova off line fosse stata fatta subito l'installazione sarebbe andata a buon fine.
L'informazione che "Easy YouTube Video Downloader 6.8" non è compatibile viene salvata in un file che non si cancella (o svuota) anche cancellando tutto. Va cancellato a mano.
Questo spiega perché la stessa estensione sulla stessa versione di Firefox (installata da file) quasi sempre non si installa ma talvolta sì. Si installa se capita (per caso o volutamente) che non c'era connessione al momento della verifica.

Per le estensioni non presenti su AMO è più semplice, vale il dato riportato nel file install.rdf.
A meno che non venga creato, e specificato nel file install.rdf, un updateURL personalizzato.

Per installare "Easy YouTube Video Downloader 6.8" con il controllo on line non basta cambiare il maxVersion ma va fatta una nuova estensione. Questa nuova estensione non sarà presente su AMO (l'abbiamo appena inventata) e varrà il valore presente nel file install.rdf.

Offline Borgata

  • Post: 624
Re: Firefox e compatibilità con le estensioni
« Risposta #2 il: 21 Luglio 2013 10:11:18 »
Ti ringrazio per la spiegazione, molto chiara.

Immagino che il controllo su AMO sia legato all'ID univoco dell'estensione, e di conseguenza non ci sia nessun URL da eliminare come nel caso che ho likato in precedenza (dove l'URL era contenuto nel tag <em:updateURL >).
Immagino che neanche creando un URL personalizzato "finto" possa aggirare il problema (o forse si, se fatto con criterio? Chi ha maggiore priorità?).

Ne approfitto per farti un ultimo paio di domande:
- qual'è il file che memorizza i tentativi di installazione e che occorre cancellare? Forse addons.sqlite?
- per "fare una nuova estensione" basta modificarne l'id in install.rdf? O bisogna rimpacchettare tutto con strumenti appositi?

Offline Iceberg

  • Moderatore
  • Post: 9232
Re: Firefox e compatibilità con le estensioni
« Risposta #3 il: 21 Luglio 2013 14:25:56 »
L'url da eliminare c'è per le estensioni che hanno un controllo personalizzato, creato dall'autore.
Negli altri casi, la quasi totalità dei casi, è sottointeso il controllo su AMO.
Per un ID alternativo ti consiglio una forma di questo tipo:
EasyYouTubeDownloader@borgata.it
Gli ID in questa forma non vanno racchiusi fra parentesi graffe
Non essendo questo ID registrato su AMO il controllo di compatibilità dipende esclusivamente da quanto specificato nel file install.rdf.

Modificato il file install.rdf con la nuova maxVersion e il nuovo ID comprimi il tutto in formato zip che poi rinominerai in xpi.
Attenzione a non comprimere con un livello di sottocartelle di troppo, estrai quanto hai creato e verifica che il risultato è identico a quello che ottieni estraendo altre estensioni.

Sì il file è addons.sqlite. Cancellando questo file esso verrà ricreato e inizialmente conterrà meno informazioni di prima. Non so dirti se questa operazione è priva di controindicazioni. Alcune informazioni perse erano utili oppure superflue (e in seguito nuovamente raccolte)? Propenderei per la seconda ipotesi ma non ci metterei la mano sul fuoco.

L'autore nel file install.rdf può specificare strictCompatibility = true, se manca questa riga è sottointeso = false.
In questo caso le estensioni non sono compatibili di default con le nuove versioni senza l'esplicito consenso dell'autore. Consenso che può arrivare con una nuova versione oppure modificando il maxVersion che l'autore ha impostato su AMO.

Offline Borgata

  • Post: 624
Re: Firefox e compatibilità con le estensioni
« Risposta #4 il: 21 Luglio 2013 17:25:42 »
Perfetto, grazie ;)

Offline Iceberg

  • Moderatore
  • Post: 9232
Re: Firefox e compatibilità con le estensioni
« Risposta #5 il: 21 Luglio 2013 18:59:47 »
Importante precisazione.

Ho scritto con troppa leggerezza che è semplice cambiare l'ID di una estensione.
Questo valore quasi sempre si trova anche in altri file dell'estensione.
Nel caso dell'estensione di esempio nel file harness-options.json.
Prendi questa possibilità come ultima strada dopo averle provate tutte.

Normalmente lascia perdere questa procedura, cambia solo il maxVersion e installa l'estensione con Firefox non in linea.

Offline Borgata

  • Post: 624
Re: Firefox e compatibilità con le estensioni
« Risposta #6 il: 21 Luglio 2013 23:58:36 »
Immaginavo, in ogni caso avrei fatto una ricerca a tappeto dell'id all'interno dell'estensione.

Appena trovo un'altra estensione che mi da lo stesso problema (quella d'esempio nel frattempo è stata aggiornata) provo a vedere se con un updateURL fasullo riesco ad aggirare il problema.
Per caso hai sotto mano della documentazione su come creare un updateurl personalizzato?

Offline Iceberg

  • Moderatore
  • Post: 9232
Re: Firefox e compatibilità con le estensioni
« Risposta #7 il: 22 Luglio 2013 00:06:23 »
Trovi le istruzioni su come si crea un updateURL in questa pagina:
https://developer.mozilla.org/en-US/docs/Install_Manifests#updateURL

Offline Borgata

  • Post: 624
Re: Firefox e compatibilità con le estensioni
« Risposta #8 il: 22 Luglio 2013 08:59:20 »
Ottimo, grazie. :)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.