Firefox/Meeting/18-Jul-2017
From MozillaWiki
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 4 This week I learned
- 5 Actions items
General Topics / Roundtable
(tips/tricks/FYI, productivity improvements, industry news)
- [bgrins] - Browser Toolbox now allowed by default (and without a prompt) in local builds. Bug 1375280
- [bgrins] - Demo of an experimental workflow for local development (pre-recorded 1 min video)
- Instructions for trying it. Feedback is most welcome (at the bottom of the doc, or via email)
- [mconley] Reminder: please don’t use beforeunload anywhere (eslintable, perhaps?)
- It kills bfcache, so going back to the page skips a fast path
- It means we can’t close the tab super-quickly
- ‘unload’ kills the bfcache but doesn’t have the same messaging overhead that ‘beforeunload’ has
- ...back in the day, pagehide was preferred over unload. Still true?
- [mikedeboer] PSA: add_task().skip() and add_task().only() are now available to three test suites
- Thanks Standard8 for the idea and ahal for the quick reviews!
- AWESOME
- https://bugzilla.mozilla.org/show_bug.cgi?id=1380470
Friends of the Firefox team
(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)
- Swapnesh Kumar Sahoo [:swapneshks]
- dw-dev
- Resolved bugs (excluding employees): https://mzl.la/2vwyIFR
- More than one bug fixed:
- :Perry Jiang
- Alejandro Rodriguez Salamanca
- Bao Quan [:beekill]
- Hemant Singh Patwal [:hhhh1612]
- Iaroslav Sheptykin
- Tomer Cohen :tomer
- flyingrub
- New contributors (🌟 = First Patch!)
- 🌟 Adolfo Jayme updated the “Print” item in the menu panel so that it has an ellipsis
- 🌟 Igor Timofeev [:ivtimofeev] improved static_asserts inside TelemetryHistogram.cpp
- 🌟emilyrcreager improved the :hover style for Firefox Account pictures in about:preferences
- 🌟Krishna improved some variable naming inside our Telemetry backend code
- 🌟Martin Boros cleaned up the capitalization in some about:welcomeback strings
- 🌟Nils M removed some unnecessary histogram clearing inside some of our Telemetry tests
- 🌟 Pooja Arora updated about.css to be more in-line with the Photon re-design
- 🌟Amola Singh (:amosingh) moved the URL zoom icon styling into urlbar-searchbar.inc.css
- 🌟Timothy Johnson added lastAccessed to the tabs WebExtension API
- More than one bug fixed:
Project Updates
Add-ons
- Out of process extensions is now on in Nightly for Windows users. Much excite about this. Please file any bugs you might find with this, we’ve been squashing a bunch down the last week.
- Context menu sub items can now have their own icons thanks to Swapnesh.
- Moz-extension URLs are now supported in the webRequest API.
- browsingData API can now remove cookies by hostname.
- Print preview can now be accessed from a WebExtension API. Thanks to dw-dev!
- And most importantly… In Firefox 57 WebExtensions will be the only add-on types loaded. Legacy add-ons are no more.
Activity Stream
- Attempting to enable by default in Nightly today after clearing out 20+ intermittents, perma-oranges, crashes, leaks, talos regressions in the last few weeks
- Some unexpected fixes attributed to enabling OOP extensions, AsyncShutdown and Bookmarks async API
- Thanks wcpan, Standard8, gbrown for fixing would-become-perma-fail tests
- File bugs: Bugzilla (Firefox/Activity Stream) or Github (mozilla/activity-stream)
- Current features: search, top sites, context menus, basic customization
- Sets browser.newtabpage.activity-stream.enabled to true
- Wrapped up development of Test Pilot add-on and moved all focus to system-addon
- Completed recruitment of ~10k Shield participants split 50% Tiles control and 50% Activity Stream experiment for measuring click, search and other interaction rates
Electrolysis (e10s)
- We recycle short-lived content processes now
- Pre-allocated content process no longer spawns before first paint
- e10s-multi team is now planning phase 2 now that 4 content processes are out the door
Firefox Core Engineering
- We have a sample of top crashers (by signature) from FF53 release crash pings (not reports), for 5/19-5/25, broken down by process type. Some interesting things there, sent to the stability@ list for further investigation.
- Updates to 64-bit begin in FF56 (stub installer introduced this in FF55).
- About to land: LZMA compression and SHA384 support for update downloads for FF56, reducing the size of the download and improving its security.
Form Autofill
- Fixed
- [Form Autofill Prevent Form Autofill dropdown from being applied to the dialog in Preferences]
- Feedback the profile usage (e.g. last used time) to parent for the persistence in ProfileStorage when submitting a form
- Sort the profile results for autocomplete popup by last used time
- Handle filling inexact matches for Form Autofill select elements on "address-level1" (states)[1]
- [Form Autofill Support "country-name" fields][2]
- Use a country-specific join character for joining address lines together[3]
- [Form Autofill Should prevent the dataloss when computing "address-line*" from "street-address" with 4 lines or more][4]
- [Form Autofill Display the updating door hanger to let users save a new address or update choosen address][5]
- Address phishing danger concerns about [Form Autofill][6]
- [Form Autofill Cache the computed fields in profileStorage][7]
- Store phone numbers in E.164 format[8]
- [Form Autofill Manage Profiles and Edit Profile dialogs refinements][9]
- [Form Autofill Fine tune the first time saving doorhanger][10]
- [Form Autofill Autofill fails on some of the main shopping sites][11]
- [Form Autofill The color of the doorhanger's anchor should align the other anchor icon][12]
- [Form Autofill Make Phishing Warning consistent no matter hovering on items or not.][13]
- [Form Autofill Darken the font color in the also fill notes based on the latest spec]
- In Progress (M4)
- Sync support is starting to land
- Credit card support
- Telemetry
Lint
- Andrew Halberstadt has landed improved hooks for git & hg which will lint your changed files on commit or prior to pushing. Setup instructions here.
- eslint-plugin-mozilla now has unit tests running in CI (mocha[epm])
- Rules recently enabled across the whole tree (some of these are harmonising existing rulesets):
- Work has also continued on bringing ESLint to more directories.
- dom/media/*.js
- Some testing/ directories
- extensions/pref
- Coming soon:
- ESLint 4 support (waiting on a dependency)
- require-await (bug 1381030)
Photon
Performance
- The browser UI has been disabled for a number of Talos tests that measure something very specific (example, SVG rendering) to avoid noise introduced when changing the UI
- Gathering profiles from automation for Talos is broken for many tests. I have patches waiting for review in this bug should fix that.
- Solved creeping tps regression (spoiler alert: not really a regression)
- Adding a test for location bar reflows
- Working on making the tab strip animate using smooth-scroll instead of requestAnimationFrame + scrollLeft / scrollRight.
- Removed most remaining Promise.jsm uses in the browser code, and it’s now blacklisted before first paint.
- browser_startup.js is now more reliable and has siblings:
- browser_startup_content.js covering scripts loaded when creating a new content process
- browser_startup_images.js catching images loaded before first paint but not displayed.
- Delayed things that were running off final-ui-startup in nsBrowserGlue.js for no good reason.
- Working on lazy loading lots of scripts currently loaded by browser.xul before first paint.
- Evelyn made it so that we now speculatively connect to autocompleted hostnames in the awesomebar.
- For the lack of a better header: sessionstore.js is now saved in compressed format as sessionstore.jsonlz4 to save your hard drive perf and should save some I/O cycles.
- Work is progressing on speeding up sessionstore’s FormData coll
Structure
- Built the prototype for adding the ability for the user to pin frequently-used items from the Page Action menu into the URL bar. This work adds a context menu to items in the action menu to control this. The prototype also added Page Action menu entries for Pocket and Screenshots (and as a next step, their existing buttons in the navbar will be removed). Eventually there will be an WebExtensions API so that Addons can extend this menu (but that work may not make 57).
- The bookmark star has moved into the URL bar. This (as with Pocket and Screenshots, mentioned above) is part of our work to consolidate actions you perform with the page into the Page Action menu.
- The sidebar button is now in the toolbar by default. This gives easy one-click access to toggle the sidebar.
- Customize Mode got a few updates. Its general style has been refreshed for Photon, and we’ve removed the “grid” style around the edges and shrinking-animation when opened. Also, the info panel that’s shown the first time a user enters customization mode (which helps explain that you can drag’n’drop items to move them around) has been replaced with a Photon critter – the Dragondrop. I hope you can appreciate this delightfully terrible pun. 😉
- The Library panel will now show Bookmarks and Downloads. (Bookmarks are already in Nightly, Downloads was built during the week but needs more work before landing).
- We also fixed a number of random polish bugs here and there. “Polish” bugs are changes that are not implementing new features, but are just fixing smaller issues with new or existing features. We’ll be seeing an increasing amount of these as we get closer to shipping, and focus on improving polish and quality overall.)
Animation
- Pin to Overflow animation landed, try it now! Right-click on a toolbarbutton and use “Pin to Overflow Menu” to see the awesome animation!
- The Stop/Reload animation landed also! We’ve got great feedback about speeding it up and making it less distracting, will be working on that soon.
- The Save to Pocket animation is going through review and should land soon. Once this lands, we should get the Bookmark animation quickly since they will be similar implementations.
- New arrow-panel animations are being worked on. Working through test failures right now.
- Work on the new Download notifications animation is in review
- The new tab loading/progress indicator is going through feedback passes with UX right now
Visuals
- Johann added a setting for Compact and Touch modes in customize mode
- Johann is working on resizing context menus and other menus when accessed through touch.
- Dao made it so that we color the Windows 10 title bar with the Windows accent color
- Dolske updated the pinned-tab glow style
- Dale implemented the new identity block appearance
- Dale updated the toolbar background colors on Mac and Windows.
- Nihanth is working on several bugs around the new sidebar styling (metabug)
Onboarding
- Now the onboarding tour would be hidden if the window width < 960px in case that a small window could bring difficulty in interacting with the onboarding tour. https://bugzilla.mozilla.org/show_bug.cgi?id=1358970
- The tour notification is implemented with the timing policy: mute on the 1st 5mins and each tour only has 2 chances to prompt with notification. Each chance includes 8 impressions and 5-days life time. https://bugzilla.mozilla.org/show_bug.cgi?id=1372067
- The tour notification sliding-up animation is removed
- The Default Browser tour now can show the alternative message when Firefox is default already. https://bugzilla.mozilla.org/show_bug.cgi?id=1374717
- Now UITour is able to highlight the single search bar with dropdown displayed, which will be used for v57 Address Bar tour later.https://bugzilla.mozilla.org/show_bug.cgi?id=1371542
Preferences
- The refined organization of the preferences has landed and should appear in Nightly builds very soon. This second reorg of the preferences will ship in Firefox 56. The previous reorg did not ship past Nightly.
- Soon the search box will float above the preferences while scrolling the page. This work is in progress.
- Working on fixing some content that wasn’t wrapping on narrow windows
- Going to be using a build-time switch for the Firefox 57 visual refresh work so QA can test the Firefox 56 reorganization using the actual builds we will be shipping.
Platform Audibles
- Storage API is now available in Nightly and ready for testing!
Privacy/Security
- No big updates yet.
- The Follow On Search Count addon was shipped to 54 population.
- Various fixes to one-off buttons placement on hidpi screens.
- The Location Bar now starts speculative connections for autoFill results. Evelyn is working on doing the same for other result types. (Already in the Photon perf update)
- Discussed an experimentation plan to change the awesomebar results mixup in preparation for the search bar unification. The awesomebar results mixup can now be changed through pref-based Shield Studies.
- The Places database connection is now initialized lazily on first request, rather than when any of the Places services is instantiated.
- Async Places transactions (Jank-free bookmarking UI) will be enabled in Nightly in the next days. Lots of fixes landed during the San Francisco All Hands and the week after it.
- Thanks to this work we are very close to Milestone 1 of synchronous bookmarks API removal, the edit bookmark panel now uses the new asynchronous API. More code is about to be converted.
- Lots of intermittent test failures became more frequent with sync to async changes and therefore could be fixed.
- Places is no more crashing in case of an unrecoverable db corruption, instead it sends telemetry. It is also no more running ANALYZE on a timer (Thanks to Mayank), instead it uses the new “PRAGMA optimize” on shutdown.
- Fixed a recent spike in async shutdown crashes due to Sqlite.jsm misuse from Activity Stream and Kinto-based blocklists.
- Restriction tokens in the Location Bar cannot be modified through prefs anymore. We are discussing plans to make them more coherent and useful (like using “?” to restrict to search and suggestions).
Sync / Firefox Accounts
- Removed most of the nested loops in the Sync code. We hope it will make profiling easier without Sync polluting stacktraces.
Test Pilot (written only)
- Page Shot, Activity Stream, Tab center, Pulse all graduated from Test Pilot
- New experiments coming next week
- We started a new blog to publish experiment results. Watch https://medium.com/firefox-test-pilot for new posts soon
Web Payments
- JonathanGB has started working on the front-end to support the Payment Request API with Basic Card
- Initial stub UI service and HTML file landed
- Next: Open and close a stub dialog when PaymentUIService's showPayment and abortPayment are called (respectively)
- Longer term front-end milestones/resources are being figured out
This week I learned
- [RyanVM] The next m-c -> Beta merge was moved up from August 7 to August 2.
Actions items
- Select a new meeting leader for August 1st meeting.
- Next meeting leader is: MattN