{"id":147,"date":"2010-01-23T22:53:56","date_gmt":"2010-01-24T02:53:56","guid":{"rendered":"http:\/\/screwedbydesign.com\/blog\/?p=147"},"modified":"2010-01-24T06:23:57","modified_gmt":"2010-01-24T10:23:57","slug":"status-update-jan-23","status":"publish","type":"post","link":"http:\/\/screwedbydesign.com\/blog\/2010\/01\/status-update-jan-23.php","title":{"rendered":"Status Update: January 23"},"content":{"rendered":"<p><strong>Progress<\/strong><\/p>\n<ul>\n<li>Began working towards this quarter&#8217;s <a href=\"https:\/\/wiki.mozilla.org\/Firefox\/Goals\/2010Q1\/IO_Reduction\">main-thread IO reduction goal<\/a> by creating an asynchronous version of <a href=\"http:\/\/hg.mozilla.org\/mozilla-central\/file\/b27f05c8743b\/dom\/interfaces\/base\/nsIContentPrefService.idl#l71\">nsIContentPrefService::getPref<\/a>. We currently use getPref every onLocationChange to check if there&#8217;s a page zoom setting saved for the site being loaded. This check happens on every page load and tab switch and sometimes multiple times for each (f.e. loading a link in new, focused tab fires onLocationChange when switching to the new tab, loading about:blank in that tab and then loading the final URL &#8211; arguably we can be a bit more intelligent about filtering these) and if it&#8217;s slow to return, the UI will be blocked while we wait for it. The downside to doing this is that in the cases where we&#8217;d previously be stuck waiting, unzoomed content will continue loading and then be set to the desired zoom level once we&#8217;ve gotten a result &#8211; sometimes leading to a distracting jump in size if the content&#8217;s already visible, but I think that&#8217;s definitely a hit worth taking. The API changes are covered in <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=539907\">bug 539907<\/a>, frontend in <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=541779\">bug 541779<\/a>.<\/li>\n<li>While working on the above, I ran across a few tests that check that entering and exiting print preview doesn&#8217;t interfere with the zoom level. Print preview works in a way that makes it rather difficult and fragile to do what I want, so I&#8217;ve decided to take advantage of our new ability to <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=487667\">clone documents<\/a> and make print preview open in a separate window. I&#8217;ll be posting a followup later this week with some builds to try out. Stay tuned!<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Progress Began working towards this quarter&#8217;s main-thread IO reduction goal by creating an asynchronous version of nsIContentPrefService::getPref. We currently use getPref every onLocationChange to check if there&#8217;s a page zoom setting saved for the site being loaded. This check happens on every page load and tab switch and sometimes multiple times for each (f.e. loading &hellip; <a href=\"http:\/\/screwedbydesign.com\/blog\/2010\/01\/status-update-jan-23.php\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Status Update: January 23<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/posts\/147"}],"collection":[{"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/comments?post=147"}],"version-history":[{"count":5,"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/posts\/147\/revisions"}],"predecessor-version":[{"id":152,"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/posts\/147\/revisions\/152"}],"wp:attachment":[{"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/media?parent=147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/categories?post=147"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/screwedbydesign.com\/blog\/wp-json\/wp\/v2\/tags?post=147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}