Firefox/Meeting/15-Jan-2019
Today’s meeting leader is: johannh
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 3.1 Activity Stream
- 3.2 Add-ons / Web Extensions
- 3.3 Application Services (Sync / Firefox Accounts / Push)
- 3.4 Browser Architecture
- 3.5 Developer Tools
- 3.6 Console
- 3.7 Debugger
- 3.8 Layout Tools
- 3.9 Remote Debugging
- 3.10 Fission
- 3.11 Other
- 3.12 Fission
- 3.13 Fluent
- 3.14 Lint
- 3.15 NodeJS
- 3.16 Performance
- 3.17 Policy Engine
- 3.18 Privacy/Security
- 3.19 Search and Navigation
- 3.20 Test Pilot
- 3.21 Web Payments
- 4 This week I learned
General Topics / Roundtable
- [mconley] We now have ChromeUtils.releaseAssert
[mconley] Using promiseDocumentFlushed to avoid flushes? Great! Just a few things:
We’re going to be landing a patch soon that’ll cause the returned Promise to reject if the DOM is modified within the callback.
Avoid using window.top.promiseDocumentFlushed unless you’re certain that the subframe you’re querying won’t be re-parented via swapFrameLoaders. Details with example instance.
- [RyanVM] Nightly soft freeze and Fx65 RC starts next week
Friends of the Firefox team
Introductions
- New Student Project: Fluent Migrations (watch out for email)
Resolved bugs (excluding employees)
Fixed more than one bug
Florens Verschelde [:fvsch]
Tim Nguyen :ntim
New contributors (🌟 = first patch)
🌟 dhyey35 removed some dead code from the all_files_referenced test
🌟 edward.i.wu got rid of a spurious console warning when running a WebExtension with background.persistent set to true
🌟 John Lin removed some unused rules from our global.css files
🌟 Kaio Augusto de Camargo made it so that we don’t log a warning if referencing an expired Telemetry scalar probe
🌟 matthewacha removed “use strict”; from one of our ES6 modules - those are running in strict mode by default.
🌟 mattheww improved the performance when loading breakpoints in the debugger for a page with many scripts!
Project Updates
Activity Stream
Add-ons / Web Extensions
- Extensions’ keyboard shortcuts can now be managed/overridden from about:addons
Ongoing work on:
User opt-in for extensions in private browsing windows
Rebuilding about:addons in HTML
- Old Lightweight Themes (LWTs) on addons.mozilla.org will be converted to XPI packaged themes next week
Application Services (Sync / Firefox Accounts / Push)
- No Desktop updates this week. Continuing our work to port Places to Rust for mobile.
Browser Architecture
https://blog.nightly.mozilla.org/2019/01/14/moving-to-a-profile-per-install-architecture/
Coming in 67
See bug 1455707 and bug 1474285
- `<xul:browser>` has been converted to a Custom Element (bug 1441935, source)
- Other XBL binding removals since last meeting: `scrollbox` (bug 1454357), `popup-scrollbars` (bug 1454363), `numberbox` (bug 1437641), `tabmodalprompt` (bug 1512048), `richlistbox` (bug 1472558), `autocomplete-richlistbox` (bug 1516876), `categories-list` (bug 1516448), `arrowscrollbox-clicktoscroll` (bug 1516266), `datetime-popup` (bug 1512489), `download-subview-toolbarbutton` (bug 1509388)
Developer Tools
End of last year: lots of polish, cleanup, a11y improvements and bug fixing across all of DevTools.
Huge shoutout to debugger community for all of their work during the winter break.
Console
- Autocomplete custom properties on Array, Number and String literals
- Export to Clipboard landed thanks to Jefry Lagrange (644412)
Debugger
- Major cleanup pass done to remove old unused source-map logic debugger actors
- Mouse selection when debugger is paused fixed (1177346)
- Fixed "Nested event loops do not suspend scroll events" (1044074)
- Search within files is now cancelable
- Worker debugging is coming! (pr) Enable devtools.debugger.features.windowless-workers
- All of the debugger’s worker, packages, and css sources are in MC
Layout Tools
- Polishing recently shipped features: Flexbox Inspector and Changes Panel
- Alert()/prompt()/confirm() work again (bug 1273997) in RDM
Remote Debugging
- Go to `about:debugging-new`, available in Nightly only, no pref needed
- Landed: Support several USB runtimes simultaneously (1507126)
- Landed: Show USB devices before Firefox is ready (1508956)
- Landed: Disabling service worker debugging if multie10s is true (1488502)
- Landed: Stopping ADB when you close about:debugging (1492700)
- Soon: Worker support for remote devices
- Current target Fx68 for preffing new about:debugging on
Fission
- Lots of progress, notable: Highlighter-utils module is gone! (1504185) => we can now use fronts directly
Other
- Shader Editor to be removed (1342237)
Fission
- No updates this week.
Fluent
New student project started up last week. Goals are:
convert more strings to Fluent
increase tool support
research porting the fluent-rs parser to wasm and replacing the JS Fluent parser with the wasm fluent-rs parser
Lint
- Work continues on enabling ESLint for more DOM directories and other core directories.
NodeJS
- No updates this week.
Performance
- In Q1 we are focusing our efforts on startup performance. This time we’ll care both about first paint performance (which already received optimization efforts previously and is close to parity with Chrome) and the time to render the home page.
- Doug landed his document splitting work that should enable faster rendering and is investigating creating a warmup service to preload Firefox files when the OS starts.
- Felipe’s tab animation patch is going through review.
- The code of the old about:performance is gone (both front-end and back-end pieces) and some test coverage was added.
- Gijs continued his browser adjustment work (adding telemetry and about:support visibility), improved Pocket’s startup behavior, and removed some more feed code. The plan is to queue up an experiment (for the browser adjustment work) to see if this impacts page load speed in the wild on the beta channel.
- mconley is unblocking enabling the background process priority manager, by removing the HAL stuff that was leftover from FxOS.
Perf.html improvements deployed recently:
Tooltips in the thread activity graph indicating the meaning of colors (most frequent request we got during the all-hands!)
602x285px
Memory track
602x96px
Category colors in the stack chart 602x338px
Policy Engine
- No updates this week.
Privacy/Security
- Our Content Blocking UI got another revamp, including a new cookies subpanel in the site identity popup:
- We’re eliminating some interesting performance regressions from enabling cookie restrictions by default.
- Erica is working on another Shield study on content blocking breakage
- Baku refactored some of URL-Classifier to prepare it for future endeavors, including a neat new way to manually classify URLs on about:url-classifier
- Baku and Johann eliminated some Evil Traps with malicious use of window.open()
Search:
- Work continues on switching built-in search engines to WebExtensions, intention to land after the next merge
- [mkaply] Just an FYI, new Google search codes have landed for all products.
- (From Activity Stream) Hand-off from content to address bar in preparation for Private Browsing search
Quantum Bar:
- Implemented switch-to-tab with mouse and keyboard
- Increased results size in touch mode
- Reimplemented performance telemetry
- Implementing results removal (through history) from the dropdown
- Cleaned up various pointless attributes and functionality from the urlbar bindings
- Implemented UrlbarInput::handleRevert and Escape key handling
- Implemented typeRestrictToken
- Results are now consistent with the legacy address bar
- Fixed handling of non-url entries
Places:
- Places will now properly replace corrupt databases on startup
Test Pilot
- Test Pilot is ending – 😲😭
- Site shutting down next week (1/22)
- Public comms going out today (blog post)
- Existing experiments are going to AMO and will remain installed/functional (although might change)
- The Test Pilot addon will be uninstalled when people visit the site
Screenshots will live on in Desktop
Development has stopped, except for warning users, then removing the server component NOOOO!😭
Ian will be doing that work over the next 1-2 Firefox releases
Targeting early H2 for Screenshots server shutdown😭😭
- Thanks for your help over the past few years, especially Mossop, aswan, kmag
Web Payments
- Development is on pause
This week I learned
- [Gijs] Mossop found out through painful experience that our nsIFile APIs on Windows and *nix platforms can return different errors if files don’t exist and you try to do something with them (like removing them) - NS_ERROR_FILE_NOT_FOUND (Windows) and NS_ERROR_FILE_TARGET_DOES_NOT_EXIST (*nix, or at least Mac). See https://bugzilla.mozilla.org/show_bug.cgi?id=1519200 .
- [Standard8] There is shell autocompletion for mach (bash/zsh at least).