Come feed reader uso
GreatNews, così ho voluto impostarlo come lettore predefinito per la nuova funzione di sottoscrizione dei feed di FF 2.0.
Risultato? Nulla! Alla sottoscrizione di un feed, GreatNews si avviava si, ma non succedeva nulla.
All'inizio ho pensato ad una mancanza di GN, ma cercando un pò ho trovato
qualcun altro col mio problema e sono arrivato alla
soluzione.
Il problema sembra quindi essere nel modo in cui Firefox manda gli argomenti al feed reader. Ho provato la patch di alta88 e funziona alla grande!
La patch consiste in questo: per prima cosa bisogna modificare una porzione del codice contenuto nel file
Feedconverter.js, che si trova nella sottocartella "components", nella directory di installazione di Firefox.
Il codice da sostituire parte dalla riga 313 ed è:
case "client":
var clientApp =
prefs.getComplexValue(PREF_SELECTED_APP, Ci.nsILocalFile);
//@line 373 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-release/WINNT_5.2_Depend/mozilla/browser/components/feeds/src/FeedConverter.js"
var ss =
Cc["@mozilla.org/browser/shell-service;1"].
getService(Ci.nsIShellService_MOZILLA_1_8_BRANCH);
ss.openApplicationWithURI(clientApp, spec);
break;
e va sostituito con:
case "client":
const PREF_SELECTED_APP_ARGS = "browser.feeds.handlers.application.args";
const PREF_SELECTED_APP_URIPREFIX = "browser.feeds.handlers.application.uriPrefix";
var clientApp = prefs.getComplexValue(PREF_SELECTED_APP, Ci.nsILocalFile);
var feedhandlerArgs = safeGetCharPref(PREF_SELECTED_APP_ARGS, Ci.nsIILocalFile);
var uriPrefix = safeGetCharPref(PREF_SELECTED_APP_URIPREFIX, Ci.nsIILocalFile);
var file = Cc["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(clientApp.persistentDescriptor);
var process = Cc["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
process.init(file);
if (uriPrefix) spec = uriPrefix + spec;
if (feedhandlerArgs)
var args = [feedhandlerArgs, spec];
else
var args = [spec];
process.run(false, args, args.length);
break;
Per finire, bisogna inserire questa istruzione nel 'user.js' (o nel 'prefs.js', o da 'about:config'):
user_pref("browser.feeds.handlers.application.uriPrefix","/feed:");