{"id":2707,"date":"2015-04-10T12:00:54","date_gmt":"2015-04-10T17:00:54","guid":{"rendered":"http:\/\/mikeconley.ca\/blog\/?p=2707"},"modified":"2023-12-20T16:25:11","modified_gmt":"2023-12-20T21:25:11","slug":"the-joy-of-coding-ep-9-more-view-source-hacking","status":"publish","type":"post","link":"https:\/\/mikeconley.ca\/blog\/2015\/04\/10\/the-joy-of-coding-ep-9-more-view-source-hacking\/","title":{"rendered":"The Joy of Coding (Ep. 9): More View Source Hacking!"},"content":{"rendered":"<p>In this episode<sup id=\"rf1-2707\"><a href=\"#fn1-2707\" title=\"A note that I also tried an experiment where I keep my camera running during the entire session, and place the feed into the bottom right-hand corner of the recording. It looks like there were some synchronization issues between audio and video, which are a bit irritating. Sorry about that! I&#8217;ll see what I can do about that.\" rel=\"footnote\">1<\/a><\/sup>, I continued the work we had started in Episode 8, by trying to make it so that we don&#8217;t hit the network when viewing the source of a page in multi-process Firefox.<\/p>\n<p>It was a little bit of a slog &#8211; after some thinking, I decided to undo some of the work we had done in the previous episode, and then I set up the messaging infrastructure for talking to the remote browser in the view source window.<\/p>\n<p>I also rebased and landed a patch that we had written in the previous episode, after fixing up some nits<sup id=\"rf2-2707\"><a href=\"#fn2-2707\" title=\"and dropping a nit having conversed with :gabor about it\" rel=\"footnote\">2<\/a><\/sup>.<\/p>\n<p>Then, I (re)-learned that flipping the &#8220;remote&#8221; attribute of a browser is not enough in order for it to run out-of-process; I have to remove it from the DOM, and then re-add it. And once it&#8217;s been re-added, I have to reload any frame scripts that I had loaded in the previous incarnation of the browser.<\/p>\n<p>Anyhow, by the end of the episode, we were able to view the source from a remote browser inside a remote view source browser!<sup id=\"rf3-2707\"><a href=\"#fn3-2707\" title=\"We were still loading it off the network though, so I need to figure out what&#8217;s going on there in the next episode.\" rel=\"footnote\">3<\/a><\/sup> That&#8217;s a pretty big deal!<\/p>\n<p><a href=\"https:\/\/www.evernote.com\/l\/AbLun5JFFh9I7qIwF85PVis5EmQuAxg5NWg\">Episode Agenda<\/a><\/p>\n<h2>References<\/h2>\n<p><a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1025146\">Bug 1025146 &#8211; [e10s] Never load the source off of the network when viewing source<\/a> &#8211; <a href=\"https:\/\/www.evernote.com\/l\/AbKJ3Z1m90ZLuZuThyXIsGaLuRi-dHUmETg\">Notes<\/a><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/air.mozilla.org\/the-joy-of-coding-mconley-livehacks-on-firefox-episode-9\/video\/\" width=\"896\" height=\"524\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<hr class=\"footnotes\"><ol class=\"footnotes\" style=\"list-style-type:decimal\"><li id=\"fn1-2707\"><p >A note that I also tried an experiment where I keep my camera running during the entire session, and place the feed into the bottom right-hand corner of the recording. It looks like there were some synchronization issues between audio and video, which are a bit irritating. Sorry about that! I&#8217;ll see what I can do about that.&nbsp;<a href=\"#rf1-2707\" class=\"backlink\" title=\"Return to footnote 1.\">&#8617;<\/a><\/p><\/li><li id=\"fn2-2707\"><p >and dropping a nit having conversed with :gabor about it&nbsp;<a href=\"#rf2-2707\" class=\"backlink\" title=\"Return to footnote 2.\">&#8617;<\/a><\/p><\/li><li id=\"fn3-2707\"><p >We were still loading it off the network though, so I need to figure out what&#8217;s going on there in the next episode.&nbsp;<a href=\"#rf3-2707\" class=\"backlink\" title=\"Return to footnote 3.\">&#8617;<\/a><\/p><\/li><\/ol>","protected":false},"excerpt":{"rendered":"<p>In this episode1, I continued the work we had started in Episode 8, by trying to make it so that we don&#8217;t hit the network when viewing the source of a page in multi-process Firefox. It was a little bit of a slog &#8211; after some thinking, I decided to undo some of the work [&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":[5,874,1117,861],"tags":[1108,1069,125,1103,35,1126],"class_list":["post-2707","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-firefox-mozilla-2","category-livecoding","category-mozilla-2","tag-cpow","tag-e10s","tag-firefox","tag-livehacking","tag-mozilla","tag-view-source"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prmTy-HF","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2707","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=2707"}],"version-history":[{"count":2,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2707\/revisions"}],"predecessor-version":[{"id":2709,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2707\/revisions\/2709"}],"wp:attachment":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/media?parent=2707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/categories?post=2707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/tags?post=2707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}