Firefox/Meeting/10-Apr-2018
Contents
General Topics / Roundtable
- [Standard8] Considering changing Assert.throws/rejects to require a valid `expected` argument, to catch issues with tests that are catching something, but it is the wrong something. More details on bug 1452706.
- [jaws] Dark theme continues to expand to new areas. Please test and file bugs, this work is tracking Firefox 61 (mark bugs as blocking dark-theme-darkening metabug)
- [RyanVM] Nightly soft freeze starts on 26-April
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/2EyLwzn
More than one bug fixed:
- Manish Kumar (21 bugs!)
- Oriol Brufau [:Oriol]
- Tim Nguyen :ntim
- Tomislav Jovanovic :zombie
New contributors (🌟 = First Patch!)
- 🌟 Jake Nixon made it so that we show the Exit shortcut helper in the App Menu on Windows
- 🌟 kylemsguy removed some unnecessary content process Telemetry
- 🌟 Peter Dodds fixed how the Downloads Panel displays remaining download time in the Persian locale
- 🌟 Satish Pasupuleti [:satishp] added a WebExtension API for overriding document colours
- 🌟 ryanro1997 fixed up some of our tests to use the common TestUtils.topicObserved mechanism rather than a hand-rolled function
- 🌟 smswessem replaced the EmojiOne fallback emoji icon set with the MIT licensed Twemoji set
Project Updates
Add-ons
- Kris continued to remove old stuff related to legacy extensions. Jkt got in on the action too. Planning for the eventual removal of bootstrap.js continues.
- Assorted bugs in the webRequest (x2), pageAction, permissions (x2), downloads, devtools, and tabs (x2) APIs were fixed.
- Mossop fixed two quirks with the proxy API.
- Preloaded popups got more efficient. They are also more readable when a dark browser theme is in use.
- Oriol optimized browser.windows.get() and browser.tabs.query() in the case there are many windows and/or many tabs.
- New APIs to set high contrast mode and the default location for new tabs were added.
- Themes can now set the hover/focused state of toolbar items and the appearance of autocomplete popups.
- When an extension uses the browser.tabs.hide() API, users can now find out about hidden tabs in the UI. This video shows this in action.
- The groundwork has been laid for improved handling of events during browser startup.
Activity Stream
Dark theme landed in nightly
The thumbnail service will now use tracking protection when taking screenshots
[Soon] Recent downloads in your highlights section
Wide Layout Experiment early results are in: https://sql.telemetry.mozilla.org/dashboard/activity-stream-experiment-beta-60-wide-layout [moco only]
Neutral to slightly positive preference to wide layout in Beta 60
Browser Architecture
- No more XUL overlays!
- No more style overlays!
- Platform overlay code is being ripped out now!
- Fluent is finishing with DTD in Preferences
- mozIntl.getLocaleDisplays will land this week
Lint
- Linter hooks will now run on the entire tree if you change a configuration file
- Dan Banner enabled ESLint on osfile.jsm, nsURLFormatter.js and nsHelperAppDlg.js
- Enabling ESLint for more files in devtools so that we can get better coverage (note: some rules still disabled for those enabled directories).
Policy Engine
Finished work on policies for 60:
45 from the MVP
14 extras
- Tweaked names and arguments for some policies
- Everything uplifted to beta
- GPO templates almost done
- First request for a policy from someone!
Performance
PSA: Are you familiar with arewesmoothyet.com? If you care about reducing hangs, you should check it out!
In-progress dashboard for Background Hang Reporter (BHR) data. BHR collects a single stack from our Nightly population every time a hang is experienced by main threads, and sent along with Telemetry.
We’ve also started to break the graphs down into various components
Examples:
- Want to track your component? File an issue here!
Tab warming
Fixed a scrolling / checkerboarding glitch that some users were experiencing with warming enabled
Paint blank window on start-up
florian has a potential fix for the black area some Windows users are seeing on start-up
No more duplicated window when starting Firefox with a file or url provided on the command line
- dthayer is very close to moving ContentPrefService init off of the main thread. Bashing through shutdown leaks in automation.
- Gijs got rid of some sync IPC we were sending on every keypress when using the Findbar! 🎆🎉
- Gijs is also still working on making the blocklist more async. Hope to be at 100% async by the next meeting.
- felipe is joining us! Going to start focusing on content process performance
- Have you seen something land recently that should have a positive performance impact for our users? Submit it in this form so we can highlight it in our Performance Updates!
Privacy/Security
- We pushed a bunch of updates to the Facebook container extension: Now including Instagram and FB Messenger!
Chris Kerschbaumer added an assertion that new unprivileged about:pages have a CSP.
Please also don’t add new about: pages with chrome privileges. :-)
- Aakanksha fixed the “Remove Selected” button behavior when sorting sites in the Site Data Manager.
- Prathiksha moved 1000 lines of gIdentityHandler out of browser.js into their own file.
We’re happily removing more usage of unsafeInnerHTML and innerHTML in Firefox.
We updated the page info security section to reflect that it’s 2018 and websites store more information than cookies on your computer now.
That also means the last user of the cookie manager is gone and we removed it. You can use devtools instead if you want to inspect cookies in detail.
Address Bar & Search
- Search engine discovery from the Address Bar landed, you can add opensearch engines from the page action menu. A few follow-ups are being worked on.
- Address bar results composition for new (created from 57 on) profiles has been fixed across all the versions. “New” profiles get a unified urlbar and search suggestions first. Older or customized profiles won’t be changed.
Places
- Fixed a case where the browser picked a wrongly sized icon on popular websites, causing a blurry favicon on hi-dpi screens
- Fixed a regression in opening bookmarks from the sidebar using the keyboard
- Masayuki fixed a regression of tags autocompletion in the edit bookmarks dialog
- First part (out of 3) of the bookmark tags refactoring landed; tag queries are now using a new format that is independent from how tags are stored. Now breaking down the tagging API rewrite.
- Fixed a bug where changing the url of a place: query didn’t update its contents
More synchronous code removals:
unnecessary annotation lookups when opening a Places context menu and removed Annotations::GetPageAnnotationNames
Code maintainability improvements:
Sync / Firefox Accounts
- The Sync team is working with the Lockbox team to sync your Desktop passwords to iOS! 🔐 Expect more updates around this soon.
Kit, Thom, and Mark putting the finishing touches on the new bookmarks engine. ✨
There’s a draft of a blog post that you can review!
Ed is putting the finishing touches on FxA Messages (formerly Pushbox 🖐📦), a service for delivering large push payloads to Firefox.
This will be used for New Send Tab.
- Thom is reworking how Sync backfills history records, reworked the bookmarks engine to transparently switch between the new and old engines after flipping the `services.sync.engine.bookmarks.buffer` pref, dug into profiling the new engine, and fixed more tests. 🐞
- Mark optimized observer notifications in history sync. 👀
Test Pilot
- No updates this week.
Web Payments
- Milestone 1 completed!
- Milestone 2 is mainly focused on address/credit card add/edit screens that show in the PaymentRequest dialog
This week I learned
- [andreio] Browser toolbox storage inspection now allows for IndexedDB inspection in the main process https://bugzilla.mozilla.org/show_bug.cgi?id=1445160
- [mconley] If you’re investigating a regression from Telemetry, you have to take into account that the potential regressor was introduced in the build from the day before the regression started showing up in our graphs (due to two-Nightlies-per-day effects)
[johannh] nsIDocument has a docShell attribute! Whenever you have a document and need a docShell, just access document.docShell, instead of doing something like this.
There’s also a meta bug for it!
Would be a great candidate for an eslint rule :)
- Florian might be able to help someone write a script to do the mass find-and-replace
- [johannh] Addendum to Privacy/Security: We also added a new test utility for adding site storage/data called SiteDataTestUtils.jsm. It’s a little WIP right now, feel free to use, extend and contribute methods (:mak and :johannh are happy to review)