<div dir="ltr"><div>Almost everyone is back from Hawaii, so we returned to the regular program yesterday.<br><br></div><b>Theme: Hawaii follow-up</b><br><br><ul><li>Divya Biyani has started interning with us for the next 3 months! Divya is a student from India, and has been actively contributing to the content server for a couple of months already. <br><br></li><li>After coordinating with jrgm, we have a tentative holiday train schedule:</li><ul><li>train-75 should ship to production this week.</li><li>train-76 was cut earlier this week.</li><li>train-76 should ship to production next week.</li><li>Nothing will catch fire over the holidays and both jrgm and jbuck can relax.<br><br></li></ul><li>Hawaii follow-up</li><ul><li>Several l10n woes are in the process of being fixed.</li><ul><li>l10n extraction w/ ES2015 is broken because we use an old version of jsxgettext. The new version extracts from ES2015 but is not API compatible with the old version. Vlad has a fix for this.</li><li>l10n translation context - We use "Sign-in" to mean two different things [2] - One is a header, one on a button. The one on the button has a different semantic meaning since it's an imperative meaning "hey, press this to sign in". In many languages these would have two distinct translations. gettext and the l10n world use something called "message context" to give translators some context into where the string is used, and the context can be used to provide different translations. Vlad has a fix to extract context from the .js files and get it to the .po files, I have a fix to select the correct string from the translated .po/.json files and insert it into the DOM.</li></ul><li>There are several long-standing issues where the browser's Sync state and FxA can come out of sync (pun-intended) [3]. This can happen for a variety of reasons: e10s has some localStorage issues, it's possible for a user to kill their session locally, the user could have preferences set to "Never remember history", or the user could be in private browsing mode. The outcome is that a user who clicks "Manage account" from the browser's preferences has to sign in again, possibly going through signin confirmation, and possibly never getting to settings. In Hawaii, we had a yack session with Mark and Kit from the Sync team and devised a basic browser handshake - when FxA loads, it sends a message to the browser that requests any signed in user's information. If the browser responds, we use the information as the current user's session data. I have patches to both the browser and FxA that implements the handshake, but there are problems. First, I don't have time to finish this until after "connect another device" has completed, and second, we aren't sure how to handle private browsing mode. In PBM, does a user who loads FxA from "Manage account" expect to be signed in to FxA? My personal opinion is that they should. Others disagree. We will need to chat with data stewards and possibly others to find out the best path forward.</li><li>In Hawaii, Vijay showed off a great demo of "Account History". He has opened a feature doc at [4]. Next steps are to provide feedback and see if there is room for it within our OKRs.</li><li>In Hawaii, Vlad showed of an equally great demo of Sync backups. If he has a video, he should show it off! Next steps are to talk about it next year.<br><br></li></ul><li>Divya is working on fixing the "displayedProfileImage is undefined" error in [5].<br><br></li><li>Connect another device work is slow going. I'm writing and testing as quickly as I can, Vlad is reviewing and providing valuable feedback as quickly as he can. I have been sharding off smaller PRs to make Vlad's review life a bit simpler. Hopefully we can get at least two merged today [6][7], which should leave one last PR [8].<br><br></li><li>We are running out of DB connections on fxa-dev boxes which results in failing tests. [9] jrgm went through and updated the number of max connections on a bunch of boxes last night to mitigate this. Thanks John!<br><br></li><li>We have decided - it's OK to use ternary, just not nested ternary. A new eslint rule will be introduced. [10]<br><br></li><li>Ryan Feeley is working on a new Sync onboarding flow and doing smaller pieces as experiments. The copy is in progress, and he requests feedback. [11]<br><br></li><li>Vijay has a PR merged into Firefox for iOS that allows us to deep link to the sign in form and pre-fill the user's email! Nice work Vijay! This should go out with the next version of Fx for iOS. [12]<br><br></li><li>There is another outstanding Fx for iOS issue where users were immediately redirected back to Sync prefs. We "fixed" this on the content server by not sending a "login" message to Fx for iOS until after a few seconds has elapsed, but we need to come back around and prepare a better solution (what that means is still in the air). [13]<br><br></li><li>Browsers need to be updated to follow the backoff protocol. If a browser requests a token from the token server and the token server asks the browser to retry after N number of seconds, the browser will ignore the suggestion and immediately re-request the token. This can end up with lots of browsers trying to fetch tokens over and over again, which ends up looking a lot like a DDOS attack.<br></li></ul><p>Shane<br></p><p><br></p><p>[1] - <a href="https://www.gnome.org/outreachy/">https://www.gnome.org/outreachy/</a><br>[2] - <a href="https://github.com/mozilla/fxa-content-server/issues/3128">https://github.com/mozilla/fxa-content-server/issues/3128</a><br>[3] - <a href="https://github.com/mozilla/fxa-content-server/issues/4252">https://github.com/mozilla/fxa-content-server/issues/4252</a><br>[4] - <a href="https://docs.google.com/document/d/1d9N1pcEIP8TW4YRw05pUepvoXUv-JyRjTocAj8jYdOQ/">https://docs.google.com/document/d/1d9N1pcEIP8TW4YRw05pUepvoXUv-JyRjTocAj8jYdOQ/</a><br>[5] - <a href="https://github.com/mozilla/fxa-content-server/pull/4502">https://github.com/mozilla/fxa-content-server/pull/4502</a><br>[6] - <a href="https://github.com/mozilla/fxa-content-server/pull/4518">https://github.com/mozilla/fxa-content-server/pull/4518</a><br>[7] - <a href="https://github.com/mozilla/fxa-content-server/pull/4519">https://github.com/mozilla/fxa-content-server/pull/4519</a><br>[8] - <a href="https://github.com/mozilla/fxa-content-server/pull/4370">https://github.com/mozilla/fxa-content-server/pull/4370</a><br>[9] - <a href="https://github.com/mozilla/fxa-auth-db-mysql/issues/194">https://github.com/mozilla/fxa-auth-db-mysql/issues/194</a><br>[10] - <a href="https://github.com/mozilla/fxa-content-server/issues/4504">https://github.com/mozilla/fxa-content-server/issues/4504</a><br>[11] - <a href="https://docs.google.com/document/d/1nFQSCWeVtPqelUzQErBXcph2sRPLUCbqyPlchIzyR1Q">https://docs.google.com/document/d/1nFQSCWeVtPqelUzQErBXcph2sRPLUCbqyPlchIzyR1Q</a><br>[12] - <a href="https://github.com/mozilla-mobile/firefox-ios/pull/2249">https://github.com/mozilla-mobile/firefox-ios/pull/2249</a><br>[13] - <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1289480">https://bugzilla.mozilla.org/show_bug.cgi?id=1289480</a><br></p></div>