

{"id":1676,"date":"2016-05-02T00:00:59","date_gmt":"2016-05-01T22:00:59","guid":{"rendered":"http:\/\/fabsk.eu\/blog\/?p=1676"},"modified":"2016-05-01T15:41:53","modified_gmt":"2016-05-01T13:41:53","slug":"firefox-problematic-extensions-slow-closing-extensions-data-loss","status":"publish","type":"post","link":"https:\/\/fabsk.eu\/blog\/2016\/05\/02\/firefox-problematic-extensions-slow-closing-extensions-data-loss\/","title":{"rendered":"Firefox: problematic extensions, slow closing, extensions data loss"},"content":{"rendered":"<p>For (at least) several months, the first start-up of Firefox after a Linux logout gives me a session-restore page, indicating that it did not stopped properly. It also causes data loss in some add-ons. After some investigation, it turned out the causes were the following:<\/p>\n<ul>\n<li>Some add-ons made closing Firefox very slow (about 1 minute!): there is a conflict between \u00ab\u00a0<a href=\"https:\/\/addons.mozilla.org\/en-GB\/firefox\/addon\/privacy-badger-firefox\/\">Privacy Badger<\/a>\u00a0\u00bb et \u00ab\u00a0<a href=\"https:\/\/addons.mozilla.org\/en-GB\/firefox\/addon\/self-destructing-cookies\/\">Self Destructing Cookies<\/a>\u00ab\u00a0, and also \u00ab\u00a0<a href=\"https:\/\/addons.mozilla.org\/en-GB\/firefox\/addon\/tab-memory-usage\/\">Tab Memory Usage<\/a>\u00a0\u00bb by itself is a problem.<\/li>\n<li>When closing the Linux session, the session managers of the desktop environments (KDE, XFCE, Unity) gives the programs some time to shutdown properly (7-15 seconds I think). In my case, Firefox was killed every single time. This timeout not being configurable (without modifying the code et recompiling), the only solutions were either make the closing faster or manually closing Firefox before disconnecting. I find the way Windows handles it better: after the timeout, it asks the user if he wants to kill the remaining programs.<br \/>Now that I disabled \u00ab\u00a0Self Destructing Cookies\u00a0\u00bb and \u00ab\u00a0Tab Memory Usage\u00a0\u00bb, it takes a bit less that 10s for Firefox to stop, which it still not enough for it to close properly 100% of the time.<\/li>\n<li>The add-ons using the \u00ab\u00a0<a href=\"https:\/\/developer.mozilla.org\/en-US\/Add-ons\/SDK\/High-Level_APIs\/simple-storage\">Simple storage<\/a>\u00a0\u00bb API (like <a href=\"https:\/\/addons.mozilla.org\/en-GB\/firefox\/addon\/mykanji\/\">MyKanji<\/a>) save their data on the disk when the browser stops (even if the data was not modified recently!), and the data may be lost if the browser is killed at this moment.<\/li>\n<\/ul>\n<p>Conclusions:<\/p>\n<ul>\n<li>It may be one of the reasons why Mozilla wants to normalize the add-ons API (in addition to the security and the multi-process browser). Investigating the conflicting add-ons can be time-consuming, and a majority of users may think that Firefox itself is slow. Once I disabled the offending add-ons, my browser had a second youth.<\/li>\n<li>Hard-coded time-outs (also known as \u00ab\u00a0magic numbers\u00a0\u00bb) are bad. It&rsquo;s better to have a default value and a configurable setting (even if not documented).<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>For (at least) several months, the first start-up of Firefox after a Linux logout gives me a session-restore page, indicating that it did not stopped properly. It also causes data loss in some add-ons. After some investigation, it turned out the causes were the following: Some add-ons made closing Firefox very slow (about 1 minute!): [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,6,19],"tags":[],"class_list":["post-1676","post","type-post","status-publish","format-standard","hentry","category-firefox","category-informatique","category-linux","\"lang=\"en"],"_links":{"self":[{"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/posts\/1676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/comments?post=1676"}],"version-history":[{"count":7,"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/posts\/1676\/revisions"}],"predecessor-version":[{"id":1686,"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/posts\/1676\/revisions\/1686"}],"wp:attachment":[{"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/media?parent=1676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/categories?post=1676"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabsk.eu\/blog\/wp-json\/wp\/v2\/tags?post=1676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}