Firefox/Meeting/11-Apr-2017
From MozillaWiki
Contents
- 1 Actions from last meeting
- 2 General Topics / Roundtable
- 3 Friends of the Firefox team
- 4 Project Updates
- 4.1 Add-ons
- 4.2 Activity Stream
- 4.3 Electrolysis (e10s)
- 4.4 Firefox Core Engineering
- 4.5 Form Autofill
- 4.6 Go Faster
- 4.7 Photon
- 4.8 Platform Audibles
- 4.9 Privacy/Security
- 4.10 Project Mortar (PDFium)
- 4.11 Quality of Experience
- 4.12 Search
- 4.13 Sync / Firefox Accounts
- 4.14 Storage Management
- 4.15 Test Pilot
- 4.16 This week I learned
Actions from last meeting
- Select a new meeting leader for April 25th meeting. Today’s meeting leader is: RyanVM
- Next meeting leader is: johannh!
General Topics / Roundtable
(tips/tricks/FYI, productivity improvements, industry news)
- [mconley] Performance Tips for Firefox Front-end Engineers. Feel free to share your experience or comment.
- [mconley] Kevin Jones and the lazytabs project
- Initial measurements suggest the potential for epic session restoration time wins
- [johannh] We disabled named property access in content scripts (for WebExtensions only for now) https://bugzilla.mozilla.org/show_bug.cgi?id=1353150
- Background reading on the excellent Lastpass exploit here https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6
- [johannh] Lithium are implementing a long-term fix for the SUMO localization issues based on a spec provided by Mozilla
- [standard8] ESLint no-undef is now enabled everywhere that the recommended config is (basically toolkit & browser). Mentored bugs happening to clean up rules within m-c.
Friends of the Firefox team
(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)
- Resolved bugs (excluding employees): https://mzl.la/2p3j0zu
- More than one bug fixed:
- Masatoshi Kimura [:emk]
- Prathiksha
- Tomislav Jovanovic :zombie
- New contributors (🌟 = First Patch!)
- 🌟 Bianca Danforth [:bdanforth] fixed a regression where we were showing “undefined” in one of our SafeBrowsing notification bars
- milindl made our history cleaners yield to the event loop more often by converting a lot of cleaning jobs into tasks
- 🌟 Leni Kadal modernized one of our tests for SSL error reports
- Paavini Nanda made the error messages from some of our Telemetry parsing backend more useful
- 🌟 Pauline turned on another flake8 rule for toolkit/components/telemetry
- 🌟 Matthew removed some unused imports from our Telemetry code
- Rajesh Kathiriya(:rajk) turned on ESLint for sanitizeDialog.js
- 🌟 sajid.ahmed added some useful warning messages to the console when using deprecated mozIStorageBaseStatement methods
- 🌟 Saurav Sachidanand removed unneeded markup from our SVG images
- 🌟 yiren wang fixed ESLint errors under browser/components/downloads
- More than one bug fixed:
Project Updates
Add-ons
- Here’s the Firefox 54 add-on compatibility report
- For WebExtensions
- We are getting close to landing streaming of downloads and the ability to filter http responses bytes as they come in
- APIs are now lazily loaded🎉
- About:home can now be overridden in chrome_settings_override https://bugzilla.mozilla.org/show_bug.cgi?id=1301315
Activity Stream
- 1.8.0 released to Test Pilot with more customization: editing top sites, showing 2 rows
- Initial Pocket integration discussion targeting 57 as in-addition or replacing highlights
- Greening of exported system add-on on pine branch to reduce starring efforts
- Thanks aki for tweaking build configs
- Progress with mozilla-central patches adding react / redux / reselect with related licenses, data storage / reducer framework, Places query optimizations
Electrolysis (e10s)
- Still on target to ship e10s-multi (4 content processes) in 55
- A bunch of work is also being uplifted to 54 to support this. If it turns out that we pass our release criteria on 54 on beta, we may consider turning on e10s-multi to some non-zero segment of our release population in 54. More details here.
- a11y support currently targeting Firefox 55
Firefox Core Engineering
- Doug Thayer has rewritten WebPageTest’s Firefox Add-on as a WebExtension...
- ... and is working on porting the Gecko Profiler to a WebExtension as well. 🎉🎉🎉
- Client-side stackwalking:
- The client-side machinery for sending stacks in crash pings (M+C) -- and using pingSender to send it right away -- has landed in 55. All but two of those bugs have been uplifted to Aurora 54.
- We’re working on the server-side processing for crash stacks to identify top crashers during 53 release.
- Updater:
- The Update Agent is going to begin as just a continuation of the download of the update, targeted for 55.
Form Autofill
- Resolved
- In Progress
- Improve subdialog.js to support multiple dialogs
- [Form Autofill] A utility library for handling full name and separated names
- Implement label element extraction logic of an input field for filling form
- [Form Autofill] Handle submit action for the formLike component that is not based on form element
- [Form Autofill] Collect information on how much time users spent on page with forms (w/wo form autofill)
- Add a chrome-only API to preview the text to be auto-filled in an <input>
- [Form Autofill] Implement an internal-only pseudo-class for highlighting elements with an autofilled value
Go Faster
- No updates.
Photon
Performance
- [florian] Filing lots of bugs in different areas:
- From jank noticed in profiles
- From ideas suggested by UX to improve perception of performance
- About adding tests to prevent regressions
- [florian] Already saw some front-end performance fixes:
- Tim fixed session store issues
- [mikedeboer] <3 the SessionCookies refactor
- Marco removed one sync layout flush when showing the awesomebar panel
- Dão fixed resizing the browser window when there are pinned tabs
- Work in progress patches to remove overhead from devtools menu initialization and sync initialization
- Tim fixed session store issues
- [mconley] requestIdleCallback is a thing you should be using. Need it in a JSM? In the works.
- [mconley] There is a non-zero cross-compartment boundary cost to just reaching into a JSM. The cross-compartment cost is being worked on, but be advised of the cost!
- [mconley] The JavaScript team suggests that arrow functions are faster and more memory efficient than function(){}.bind(this). florian has filed this bug to investigate doing a mass conversion.
- [mconley] Also, these useful counters exist which can be used to make sure we don’t add style flushes, unnecessary frame construction, unnecessary reflow. Use them in tests! (sfoster is doing an example of this here)
- [mconley] ehsan did a session on profiling last week, and recorded it. It shows him doing an improved analysis of some profiles, and walking through the perf.html tool.
- [mconley] nsIDOMWindowUtils.getBoundsWithoutFlushing
- [mikedeboer] nsIDOMWindowUtils.getRootBounds for getting dimensions of a window without flushing.
- [mikedeboer] nsIDOMWindowUtils.getScrollXY(false, scrollX = {}, scrollY = {}) for getting window scroll offsets without flushing.
- Oh no! Reflow!
- WebExtension that dumps stacks for uninterruptible reflow in our browser UI to the console
- Will become more useful slowly. Pull requests welcome!
- [dolske] 💯 on the name! +1
Structure
- Finished bug breakdowns
- Will continue to coordinate with UX, QE and others in case we’re missing something either now or when we start implementing
- Started actually writing code!
Animation
- sfoster is working on updating the panel and doorhanger animations (spec)
- squib is working on adding a pref that will enable/disable all new and old aesthetic animations
- jaws is working on reordering tab animations (spec)
Visuals
- Behind the scene changes to prepare more visible stuff that will land in 56 and 57
- nhnt11 made a new patch for changing our toolbar icons to SVG
- johannh working on merging our toolbar button styling code across platforms
Platform Audibles
- No updates.
Privacy/Security
- [johannh] Fixing some last bugs to get the new doorhangers ready in 53
- Johann and Nihanth have moved to Photon, the rest of the new Privacy/Security team are prioritising their work items right now.
Project Mortar (PDFium)
- Everyone is working on bugs. Nothing special to update this week. :)
Quality of Experience
- Preferences re-org has landed, search has also landed but is hidden behind the ‘browser.preferences.search’ pref in about:config.
- Everyone has transitioned to Photon by now.
Search
- Not much changed since last meeting: hi-res favicons and one-offs are almost ready to land and search suggestions are soon going to become opt-out.
- Miscellaneous fixes still happening.
Sync / Firefox Accounts
- No updates.
Storage Management
- Engaging with SV for testing, front-end devs moved to Photon now.
Test Pilot
- Snooze Tabs did a release last week
- Activity Stream, Tab Center and Pulse did releases this week
- Min Vid playback queues coming next week
- Test Pilot release going out today which uses mozAddonManager much more, fixing many weird corner case bugs
- The non-mozAddonManager code path still works for older Firefox, but will be removed soonish
- Finalized our Q2 OKRs
- As requested, Brown Bag about Screenshots engineering and product roadmap coming soon
This week I learned
- [mconley] Did you know about bsmedberg’s multi minidump tool?
- [jaws] Preferences re-org has landed, should be riding the 55 train
- It supports searching!