diff --git a/browser/components/feeds/src/FeedConverter.js b/browser/components/feeds/src/FeedConverter.js index e9531d44ef9fe9c59d994114e8d61b4ddfdb444a..cd192906f223cdac6250fc5b84ae4bf4ff5cdb8f 100644 --- a/browser/components/feeds/src/FeedConverter.js +++ b/browser/components/feeds/src/FeedConverter.js @@ -447,10 +447,22 @@ var FeedResultService = { else spec = "feed:" + spec; - var ss = - Cc["@mozilla.org/browser/shell-service;1"]. - getService(Ci.nsIShellService); - ss.openApplicationWithURI(clientApp, spec); + // Retrieving the shell service might fail on some systems, most + // notably systems where GNOME is not installed. + try { + var ss = + Cc["@mozilla.org/browser/shell-service;1"]. + getService(Ci.nsIShellService); + ss.openApplicationWithURI(clientApp, spec); + } catch(e) { + // If we couldn't use the shell service, fallback to using a + // nsIProcess instance + var p = + Cc["@mozilla.org/process/util;1"]. + createInstance(Ci.nsIProcess); + p.init(clientApp); + p.run(false, [spec], 1); + } break; default: