{"id":172,"date":"2002-11-15T12:44:00","date_gmt":"2002-11-15T17:44:00","guid":{"rendered":"http:\/\/crazedmonkey.com\/blog\/uncategorised\/no_mozilla_xpi_uninstall.html"},"modified":"2006-10-15T19:34:31","modified_gmt":"2006-10-16T00:34:31","slug":"no_mozilla_xpi_uninstall","status":"publish","type":"post","link":"http:\/\/crazedmonkey.com\/blog\/computers\/no_mozilla_xpi_uninstall.html","title":{"rendered":"Unable to uninstall XPI packages in Mozilla"},"content":{"rendered":"<p>I&#8217;ve received a few hits from people searching for &#8220;xpi uninstall&#8221; or &#8220;mozilla xpi uninstall&#8221; from Google. As it turns out, my weblog is #1 for those keywords, even outranking the <a href=\"http:\/\/www.mozilla.org\/start\/1.0\/faq\/troubleshooting.html\" title=\"Mozilla 1.0 FAQ: Troubleshooting\"> Mozilla troubleshooting FAQ<\/a>. As a follow-up to <a href=\"http:\/\/crazedmonkey.com\/blog\/2002\/11\/12#w0046\" title=\"Mozilla XPI application developers are talentless wankers\">this post<\/a>, I will tell you that <a href=\"http:\/\/www.mozilla.org\/start\/1.0\/faq\/troubleshooting.html#10.9\" title=\"How do I uninstall something installed from an XPI?\">there is no way to uninstall XPI packages<\/a>. This is a <a href=\"http:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=7884\" title=\"Unable to uninstall .xpi packages\">known bug in Mozilla 1.0<\/a> and has been for quite some time. You are probably out of luck and might have to uninstall and then reinstall Mozilla. There <em>might<\/em> be a way to manually remove the package from Mozilla&#8217;s registry and RDF files, but it&#8217;s not obvious. If you find a way, please publish a link to the instructions.<\/p>\n<p>So how does <a href=\"http:\/\/optimoz.mozdev.org\/\">Optimoz<\/a> perform the uninstall? Looking at the <a href=\"http:\/\/www.mozdev.org\/source\/browse\/optimoz\/mozgest\/mozgest\/content\/pref\/pref-mozgest.js?rev=1.9&#038;content-type=text\/x-cvsweb-markup\" title=\"Optimoz pref-mozgest.js version 1.9 from CVS\">Optimoz preferences code<\/a> it appears as though the developers have taken the code used to uninstall themes and hacked it to uninstall their XPI package. Look for the <code>mozgestUninstall()<\/code> function in that source file to get a better idea of what is going on. It appears that Optimoz is installed in the Chrome registry. On uninstall, the package is removed from the registry and all references to Optimoz are removed from Mozilla&#8217;s RDF files.<\/p>\n<p>That Mozilla does not even provide its developers with a proper method of uninstalling installed XPI applications is horribly poor planning. A sure sign of things gone awry is when third-party developers have to produce hacks to obtain basic functionality which should have been supplied automatically. Unfortunately, this happens all too often in the world of development. Before I die, I hope everyone can finally get it right.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve received a few hits from people searching for &#8220;xpi uninstall&#8221; or &#8220;mozilla xpi uninstall&#8221; from Google. As it turns out, my weblog is #1 for those keywords, even outranking the <a href=\"http:\/\/www.mozilla.org\/start\/1.0\/faq\/troubleshooting.html\" title=\"Mozilla 1.0 FAQ: Troubleshooting\"> Mozilla troubleshooting FAQ<\/a>. As a follow-up to <a href=\"http:\/\/crazedmonkey.com\/blog\/2002\/11\/12#w0046\" title=\"Mozilla XPI application developers are talentless wankers\">this post<\/a>, I&nbsp;&hellip;&nbsp;<a class=\"read_more\" href=\"http:\/\/crazedmonkey.com\/blog\/computers\/no_mozilla_xpi_uninstall.html\" rel=\"bookmark\" title=\"Continue reading &ldquo;Unable to uninstall XPI packages in Mozilla&rdquo;\"><span>Read more<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[4],"tags":[],"_links":{"self":[{"href":"http:\/\/crazedmonkey.com\/blog\/wp-json\/wp\/v2\/posts\/172"}],"collection":[{"href":"http:\/\/crazedmonkey.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/crazedmonkey.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/crazedmonkey.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/crazedmonkey.com\/blog\/wp-json\/wp\/v2\/comments?post=172"}],"version-history":[{"count":0,"href":"http:\/\/crazedmonkey.com\/blog\/wp-json\/wp\/v2\/posts\/172\/revisions"}],"wp:attachment":[{"href":"http:\/\/crazedmonkey.com\/blog\/wp-json\/wp\/v2\/media?parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/crazedmonkey.com\/blog\/wp-json\/wp\/v2\/categories?post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/crazedmonkey.com\/blog\/wp-json\/wp\/v2\/tags?post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}