{"id":4523,"date":"2012-03-15T13:47:36","date_gmt":"2012-03-15T20:47:36","guid":{"rendered":"http:\/\/blog.mozilla.org\/addons\/?p=4523"},"modified":"2012-03-19T08:31:45","modified_gmt":"2012-03-19T15:31:45","slug":"compatibility-for-firefox-12","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/","title":{"rendered":"Add-on Compatibility for Firefox 12"},"content":{"rendered":"<p>Firefox 12 will be pushed to the beta channel this week, meaning I&#8217;m late with my add-on compatibility report :(. Sorry for that, but other things have been taking my time. This won&#8217;t delay the Firefox 13 compatibility work, which I&#8217;ll begin right away.<\/p>\n<h3>Firefox 11 compat (addendum)<\/h3>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=712649\">Components.utils.getWeakReference(null) should fail silently<\/a>. A change to the way that call failed broke NoScript and potentially other add-ons, but it was reverted before release so things should be back to normal.<\/li>\n<\/ul>\n<p>For more information about Firefox 11 compatibility, please read the <a href=\"http:\/\/blog.mozilla.org\/addons\/2012\/01\/27\/compatibility-for-firefox-11\/\">full compatibility update<\/a>.<\/p>\n<h3>Firefox 12<\/h3>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=711838\">Remove the Jetpack service<\/a>. Very old versions of the Add-ons SDK relied on this service in Firefox. Add-ons using this service must have been broken for a very long time anyway, so we encourage all developers to update the SDK version they&#8217;re working on. Visit our <a href=\"https:\/\/addons.mozilla.org\/en-US\/developers\">Developer Hub<\/a> for more info.<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=419231\">The styling of the Customize Toolbar window could be improved<\/a>. This shouldn&#8217;t break any extension, but if you add toolbar buttons or other widgets, it&#8217;s worth giving them a test. Themes are probably affected by this change.<\/li>\n<li><del><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=566489\">Enable inline autocomplete again<\/a>. Add-ons that tap into the location bar and its autocomplete \/ suggestions should check if anything breaks.<\/del> <strong>Update:<\/strong> this ended up being shifted to Firefox 13.<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=672681\">addDownload should be made asynchronous<\/a>. Quote: &#8220;Now users of nsIDownloadHistory cannot rely on the history entry to be present after the addDownload method returns. They should use nsINavHistoryObserver or another technique to wait for the target URI to be visited, if needed. The &#8216;link-visited&#8217; observer topic cannot be used because it is notified before the history entry is saved.&#8221;<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=566700\">Remove sharp variables<\/a>. This is a fairly obscure JavaScript feature, but it&#8217;s worth mentioning that it is gone now.<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=713747\">Rip out non-UniversalXPConnect privilege manager functionality<\/a>. This mostly concerns web developers and intranet developers who request higher privileges for web content. The <em>enablePrivilege<\/em> function is being phased out and this is one step in that direction.<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=730219\">&#8216;chromemargin&#8217; attribute changed behavior<\/a>. A bug in the way the <em>chromemargin<\/em> attribute worked allowed some add-on developers to move around the minimize \/ maximize \/ close buttons. Recent changes in this code closed that bug and also break these add-ons. It doesn&#8217;t look like this change is going to be reverted, but some alternatives have been proposed in the bug.<\/li>\n<\/ul>\n<h3>\u00a0XPCOM Changes<\/h3>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=675221\">Remove XPCOM proxies<\/a>. Specifically, the <em>nsIProxyObjectManager<\/em> interface is no more.<\/li>\n<li><del><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=713825\">Move nsIDocCharset and nsIDocumentCharsetInfo into docshell<\/a>. Both interfaces are gone, as well as <em>gBrowser.documentCharsetInfo<\/em>.<\/del> <strong>Update:<\/strong> it was pointed out to me that these interfaces were only moved around, not merged or removed.<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=617539\">Get rid of _MOZILLA_2_0_BRANCH interfaces<\/a>. This was just finished with the removal of <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=672166\">nsIScreen_MOZILLA_2_0_BRANCH<\/a>.<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=682611\">Decom nsRange<\/a>. Affected interfaces: <em>nsIDOMNSRange<\/em>, <em>nsIRangeUtils<\/em> and <em>nsIRange<\/em>.<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=711721\">Merge nsIScriptError and nsIScriptError2<\/a>. <em>nsIScriptError2<\/em> is gone.<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=714752\">Make imgIContainerObserver::FrameChanged take an imgIRequest*<\/a>. This change only affects binary add-ons, if any.<\/li>\n<\/ul>\n<p>Other important changes are noted in <a href=\"https:\/\/developer.mozilla.org\/en\/Firefox_12_for_developers\">Firefox 12 for developers<\/a>.<\/p>\n<h3>New Developer Features in 12<\/h3>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=102699\">Implement text\/html for @mozilla.org\/xmlextras\/domparser<\/a>. This bug is over 10 years old!<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=525816\">XMLHttpRequest should allow to specify a network timeout<\/a>. This give you more control on waiting times for XHR requests. The XHR object now has a <em>timeout<\/em> property (measured in ms) and an <em>ontimeout<\/em> event.<\/li>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=497543\">Provide a thumbnail service<\/a>. As part of the upcoming New Tab Page feature (see next section), there&#8217;s a new thumbnail service that makes it easier to generate page thumbnails. There&#8217;s no documentation about it yet, but you can have a look at the <a href=\"https:\/\/hg.mozilla.org\/mozilla-central\/file\/066e52b8906b\/browser\/components\/thumbnails\/PageThumbs.jsm\">JSM code here<\/a>.<\/li>\n<\/ul>\n<h3>Coming Up in Firefox 13<\/h3>\n<p>These 2 points are big enough that they&#8217;re worth mentioning in advance:<\/p>\n<ul>\n<li><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=455553\">New Tab Page feature<\/a>. Firefox 13 will no longer show a blank page when you open a new tab. It&#8217;ll now show suggestions based on past activity. This overlaps with the features of several existing add-ons, so some breakage is to be expected. I would like to direct your attention to this bug: <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=724217\">New Tab Page should be user skinnable<\/a>. This is an apparently easy fix that would greatly help theme developers. If you have some time to work on this, please submit a patch. <strong>Update:<\/strong> note in the comments below that there may be a solution for the theme problem already.<\/li>\n<li>Firefox 13 will have <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=728429\">mandatory ASLR on Windows<\/a> for binary components. Kyle Huey explains what this means in <a href=\"http:\/\/blog.kylehuey.com\/post\/18120485831\/address-space-layout-randomization-now-mandatory-for\">his blog<\/a>.<\/li>\n<\/ul>\n<p>Please let me know in the comments if there&#8217;s anything missing or incorrect on these lists.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Firefox 12 will be pushed to the beta channel this week, meaning I&#8217;m late with my add-on compatibility report :(. Sorry for that, but other things have been taking my &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/\">Read more<\/a><\/p>\n","protected":false},"author":173,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[388,44,295],"tags":[278877,278873,278876,12898,12902,12905],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Add-on Compatibility for Firefox 12 - Mozilla Add-ons Community Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jorge Villalobos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/\",\"name\":\"Add-on Compatibility for Firefox 12 - Mozilla Add-ons Community Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#website\"},\"datePublished\":\"2012-03-15T20:47:36+00:00\",\"dateModified\":\"2012-03-19T15:31:45+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/a098261b4b5510d408ff31f492606925\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/addons\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Add-on Compatibility for Firefox 12\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#website\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/\",\"name\":\"Mozilla Add-ons Community Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.mozilla.org\/addons\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/a098261b4b5510d408ff31f492606925\",\"name\":\"Jorge Villalobos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6d1966118f16e4b99a6e3ad07883be33?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6d1966118f16e4b99a6e3ad07883be33?s=96&d=mm&r=g\",\"caption\":\"Jorge Villalobos\"},\"description\":\"Jorge is the Product Manager for addons.mozilla.org\",\"url\":\"https:\/\/blog.mozilla.org\/addons\/author\/jvillalobosmozilla-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Add-on Compatibility for Firefox 12 - Mozilla Add-ons Community Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/","twitter_misc":{"Written by":"Jorge Villalobos","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/","url":"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/","name":"Add-on Compatibility for Firefox 12 - Mozilla Add-ons Community Blog","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/addons\/#website"},"datePublished":"2012-03-15T20:47:36+00:00","dateModified":"2012-03-19T15:31:45+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/a098261b4b5510d408ff31f492606925"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/addons\/2012\/03\/15\/compatibility-for-firefox-12\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/addons\/"},{"@type":"ListItem","position":2,"name":"Add-on Compatibility for Firefox 12"}]},{"@type":"WebSite","@id":"https:\/\/blog.mozilla.org\/addons\/#website","url":"https:\/\/blog.mozilla.org\/addons\/","name":"Mozilla Add-ons Community Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.mozilla.org\/addons\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/a098261b4b5510d408ff31f492606925","name":"Jorge Villalobos","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/addons\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6d1966118f16e4b99a6e3ad07883be33?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6d1966118f16e4b99a6e3ad07883be33?s=96&d=mm&r=g","caption":"Jorge Villalobos"},"description":"Jorge is the Product Manager for addons.mozilla.org","url":"https:\/\/blog.mozilla.org\/addons\/author\/jvillalobosmozilla-com\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts\/4523"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/users\/173"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/comments?post=4523"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/posts\/4523\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/media?parent=4523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/categories?post=4523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/addons\/wp-json\/wp\/v2\/tags?post=4523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}