<div dir="ltr"><div><div><div><div><div><div><div><div>Hey all,<br><br></div>The third installment, a few days late.<br><br><b>2015-05-26 & 2015-05-29<br><br></b></div><b>Summary<br><br></b></div>The pace has not eased up this week, we have been busy trying to land last minute patches for the June 2nd marketing push. Edouard, has landed his first two patches. Vlad updated post-verification redirect for Pocket. Zach fixed a problem where we were sending "display name" to Pocket without the user's consent, and also updated the Permissions screen to be more user friendly. The entire team pushed hard to make marketing email opt-in a reality.<br><br></div><b>Contributors<br><br></b></div><div>Edouard, our new intern, has landed his first two patches [1][2]. The first smooths out the avatar change sad path, and the second measures the number of times a user reloads a page. Thank you Edouard, it's great to see you contributing so quickly!<br><br></div><div>Riadh, another of our incoming interns, keeps landing patches too [3]. Riadh's latest patch cleans up unused AMD dependencies from each module. Thanks Riadh, I'm looking forward to having you on the team for the summer!<br></div><div><br><div><b>Interns<br></b></div><div><br>I promised Edouard's email address. I encourage you to introduce yourself to him at <a href="mailto:eoger@mozilla.com">eoger@mozilla.com</a>.</div><div><br></div></div><b>Pocket<br><br></b></div><div>Three Pocket related issues were resolved this week. <br><br>Vlad updated the "verification_redirect=always" behavior [4] to always redirect in the new tab if the user verifies in the same browser, while the original tab shows a "Proceed" button that allows the user to return to the relier from that tab too.<br></div><div><b><br></b></div><div>Zach and Ryan Feeley collaborated to update the permissions screen [5] to be a bit more user friendly, and Zach also fixed a problem where a user's display name was being sent to Pocket even though the user did not grant this permission [6].<br></div><div><b><br></b></div><div><b>Marketing email opt-in<br><br></b></div><div>My major effort of the week was to try to land marketing email opt-in [7]. The feature gives en & en-US users the ability to opt-in to Mozilla marketing email. Marketing email is managed by the "Basket" server [8][9]. This seemed like a small feature request to begin with. It ended up requiring the effort of the entire team.<br><br></div><div>The primary difficulty is communication with Basket occurs via a secret key based API. We would either have to bundle our secret key in client code (not great) or proxy basket requests from the user to basket via a server we control so we can keep our secret key hidden. We chose the 2nd. We also chose to make the proxy server accept OAuth tokens since we are pretty good at the OAuth dance.<br><br></div><div>Four patches[10][11][12][12a], and 2 servers later, we have a (mostly)[13] working flow. There are so many new parts that were put together in haste that chances are this will *not* make the train 38 release on Monday. We have new servers and everything they entail, huge patches, and almost 0 test time.<br><br></div><div>I want to thank Zach, Vlad, Ryan Kelly, Ryan Feeley, and John Morrison for all the help, code, design updates, testing, and time they gave putting this feature together. What seemed like an easy request ended up being a beast.<br></div><div><b><br></b></div><b>Sync over WebChannels/First run<br><br></b></div><div>The request to uplift the Sync over WebChannels patch into Fx 39 was denied [14]. The volume of late patches landing in 38.05 and 39 has caused non-essential patches to be deferred so that quality can be maintained.<br></div><div><b><br></b></div><b>Upcoming<br><br></b></div><div><ul><li>Train 38 will be kicked out the door on Monday, June 1st, a day before the June 2nd spring campaign starts.</li><li>Sai, the 2nd of our summer interns, starts on Monday! </li></ul></div><div>Until next time,<br>Shane<br><br>------------------<br><br>[1] - <a href="https://github.com/mozilla/fxa-content-server/pull/2446">https://github.com/mozilla/fxa-content-server/pull/2446</a><br>[2] - <a href="https://github.com/mozilla/fxa-content-server/pull/2455">https://github.com/mozilla/fxa-content-server/pull/2455</a><br>[3] - <a href="https://github.com/mozilla/fxa-content-server/pull/2448">https://github.com/mozilla/fxa-content-server/pull/2448</a><br>[4] - <a href="https://github.com/mozilla/fxa-content-server/pull/2447">https://github.com/mozilla/fxa-content-server/pull/2447</a><br>[5] - <a href="https://github.com/mozilla/fxa-content-server/pull/2442">https://github.com/mozilla/fxa-content-server/pull/2442</a><br>[6] - <a href="https://github.com/mozilla/fxa-content-server/pull/2478">https://github.com/mozilla/fxa-content-server/pull/2478</a><br>[7] - <a href="https://github.com/mozilla/fxa-content-server/pull/2452">https://github.com/mozilla/fxa-content-server/pull/2452</a><br>[8] - <a href="https://basket.readthedocs.org/en/latest/index.html">https://basket.readthedocs.org/en/latest/index.html</a><br>[9] - <a href="https://github.com/mozilla/basket">https://github.com/mozilla/basket</a><br>[10] - <a href="https://github.com/mozilla/fxa-content-server/pull/2460">https://github.com/mozilla/fxa-content-server/pull/2460</a><br>[11] - <a href="https://github.com/mozilla/fxa-content-server/pull/2485">https://github.com/mozilla/fxa-content-server/pull/2485</a><br>[12] - <a href="https://github.com/mozilla/fxa-content-server/pull/2460">https://github.com/mozilla/fxa-content-server/pull/2460</a><br></div><div>[12a] - <a href="https://github.com/mozilla/fxa-content-experiments/pull/6">https://github.com/mozilla/fxa-content-experiments/pull/6</a></div><div>[13] - <a href="https://github.com/mozilla/fxa-content-server/pull/2452#discussion_r31282974">https://github.com/mozilla/fxa-content-server/pull/2452#discussion_r31282974</a><br>[14] - <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1146904">https://bugzilla.mozilla.org/show_bug.cgi?id=1146904</a><br><br><b></b></div></div>