{"id":2770,"date":"2015-05-23T10:26:06","date_gmt":"2015-05-23T15:26:06","guid":{"rendered":"http:\/\/mikeconley.ca\/blog\/?p=2770"},"modified":"2023-12-20T16:25:10","modified_gmt":"2023-12-20T21:25:10","slug":"the-joy-of-coding-ep-15-osx-printing-returns","status":"publish","type":"post","link":"https:\/\/mikeconley.ca\/blog\/2015\/05\/23\/the-joy-of-coding-ep-15-osx-printing-returns\/","title":{"rendered":"The Joy of Coding (Ep. 15): OS X Printing Returns"},"content":{"rendered":"<p>In Episode 15, we kept working on the same bug as the last two episodes &#8211; proxying the printing dialog on OS X to the parent process from the content process. At the end of Episode 14, we&#8217;d finished the serialization bits, and put in the infrastructure for deserialization. In this episode, we did the rest of the deserialization work.<\/p>\n<p>And then we attempted to print a test page. <strong>And it worked!<\/strong><\/p>\n<p><strong>We did it!<\/strong><\/p>\n<p><a href=\"http:\/\/imgur.com\/vQ180V8\"><img decoding=\"async\" title=\"source: imgur.com\" src=\"http:\/\/i.imgur.com\/vQ180V8.gif\" alt=\"\" \/><\/a><\/p>\n<p>Then, we cleaned up the patches and posted them up for review. I had a lot of questions about my Objective-C++ stuff, specifically with regards to memory management (it seems as if some things in Objective-C++ are memory managed, and it&#8217;s not immediately obvious what that applies to). So I&#8217;ve requested review, and I hope to hear back from someone more experienced soon!<\/p>\n<p>I also plugged a new show that&#8217;s starting up! If you&#8217;re a designer, and want to see how a designer at Mozilla does their work, you&#8217;ll love <a href=\"https:\/\/www.youtube.com\/watch?v=okcBcDOkeLw\">The Design Hour<\/a>, by <a href=\"https:\/\/twitter.com\/iamrvazquez\">Ricardo Vazquez<\/a>. His design chops are formidable, and he shows you exactly how he operates. It&#8217;s great!<\/p>\n<p>Finally, I failed to mention that I&#8217;m on holiday next week, so I can&#8217;t stream live. I have, however, pre-recorded a shorter Episode 16, which should air at the right time slot next week. The show must go on!<\/p>\n<p><a href=\"https:\/\/www.evernote.com\/l\/AbK7tOjDu3lCL5AXFy6MvHUDJY0NizLt34k\">Episode Agenda<\/a><\/p>\n<h2>References<\/h2>\n<p><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1091112\">Bug 1091112 &#8211; Print dialog doesn&#8217;t get focus automatically, if e10s is enabled<\/a>\u00a0&#8211; <a href=\"https:\/\/www.evernote.com\/l\/AbI7nTQXK7BC46pLTwYTI2MFzgXVLTPkpPQ\">Notes<\/a><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/air.mozilla.org\/the-joy-of-coding-mconley-livehacks-on-firefox-episode-15\/video\/\" width=\"896\" height=\"524\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Episode 15, we kept working on the same bug as the last two episodes &#8211; proxying the printing dialog on OS X to the parent process from the content process. At the end of Episode 14, we&#8217;d finished the serialization bits, and put in the infrastructure for deserialization. In this episode, we did the [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[874,1117,861],"tags":[1137,1108,1069,125,1103,35,1107],"class_list":["post-2770","post","type-post","status-publish","format-standard","hentry","category-firefox-mozilla-2","category-livecoding","category-mozilla-2","tag-cocoa","tag-cpow","tag-e10s","tag-firefox","tag-livehacking","tag-mozilla","tag-printing"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prmTy-IG","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/comments?post=2770"}],"version-history":[{"count":1,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2770\/revisions"}],"predecessor-version":[{"id":2771,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2770\/revisions\/2771"}],"wp:attachment":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/media?parent=2770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/categories?post=2770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/tags?post=2770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}