Firefox/Meeting/28-Feb-2017
From MozillaWiki
Contents
Actions from last meeting
- Next meeting leader will be mconley.
General Topics / Roundtable (tips/tricks/FYI, productivity improvements, industry news)
- The Sync team has been experimenting with using the ‘elm’ twig and ‘hg evolve’ for collaborating. We wrote up our experience, please take a look and suggest improvements.
- [standard8] ESLint no-undef (no undefined) rule has been enabled for toolkit/. browser/ is in progress. See devmo for more hints. Ask in #eslint if you need help.
- [mconley] Talos profiling support is now fixed; this was accidentally broken a month back.
- Note that the option is --geckoProfile now, --spsProfile is deprecated
Friends of the Firefox team
- Resolved bugs (excluding employees): https://mzl.la/2mpsGpV
- More than one bug fixed:
- Deepa
- Mayank
- Svetlana Orlik
- Tomislav Jovanovic :zombie
- Vedant Sareen [:fionn_mac]
- New contributors (🌟 = First Patch!)
- 🌟 Chandler got rid of some leftover SVGs we were packaging
- 🌟 Timothy Pan fixed a graphics glitch in the fullscreen mode warning dialog
- Deepa cleaned up some of our macOS theming code
- kevin.kwong.chip fixed a graphics glitch in about:addons
- More than one bug fixed:
Project Updates
Add-ons
- Just in case you didn’t get the memo we blogged about the plans up to Firefox 57.
- In Firefox 54 for WebExtensions:
- Sidebar API
- Protocol handlers
- Privacy APIs
- DevTools APIs, devtools panel API landed eg. Redux DevTools or see this video
- URL overrides for about:home and about:newtab
- Exciting blog post coming next week detailing this.
- Currently unsure if WebExtensions installation permissions will land in 54 or 55, most likely 55.
- Out of process extensions coming in 55.
Activity Stream
- Removing dependence on Add-on SDK for landing in mozilla-central as a result of Talos testing and deprecation of APIs. Starting with API replacing / inlining, bootstrapping / loader alternatives, testing infrastructure.
- Identified individual modules with clearly defined interfaces that can be profiled, reviewed and landed in smaller separate parts. Our intention is to get help/feedback from other Firefox engineers on the individual issues in each of those modules. For example:
- Places queries: land these as a separate patch that can be profiled, optimized, and reviewed
- Leverage existing code / land code directly in MC for modules we feel need to be more stable/integrated into Firefox, and also to reduce code duplication. For example
- Metadata Parsing / Metadata store: we would like to work with/get patches reviewed so that the existing places metadata parser can use our metadata rules, instead of using our existing metadata parser
- ColorAnalyzer / Screenshots: this code only requires a few bug fixes and additions to what is already landed in M-C
- Use the system add-on architecture where we feel we need to iterate more quickly, such as our UI code
Content Handling Enhancement
- Download progress indication redesign (bug 1270006, bug 1270012, bug 1338984) reviewed and will land in a matter of days.
Electrolysis (e10s)
- Planning is currently underway to do an e10s-multi experiment on a future release. Currently defining cohort sizes.
- Native Stacks are now available for BHR on Windows, and stacks are starting to trickle in for tab switch spinners.
- Mozilla has a symbol server containing symbols we use for Breakpad, and the symbolication service.
- How it works: you hand the symbolication service a stack containing a program counter (gathered by StackWalk), and an array of module versions.
- The service resolves this to a symbolicated stack. It downloads symbols from the symbol server, caches, then maps them.
- The production server is undergoing a rewrite to make it snappier; should be ready in March.
- mconley found a case where we’ll show tab switch spinners when blocked by JS, even with force-painting. Working on a patch.
Firefox Core Engineering
- Looked into “one” problematic Aurora 51 client that was messing up our graphs.
- Looking into lack of application of hotfix for websense in 47 and 48 (despite users actually having the hotfix).
- pingSender should be fully functional and out of QA this week. Will be used for sending crash pings on Nightly, Aurora, and Beta next week.
- Starting to work on a background download service for updates.
Form Autofill
- Team met for a workweek in Taipei
- Discussions with layout/DOM on platform dependencies
- Got form fill working with Enter from autocomplete
- Finalizing preferences design with UX
- Discussed l10n for system add-ons
- Synced eslint rules with toolkit/browser
- Refactored from frame to process scope using JSMs
- Other related refactoring of other components/modules
- Add built-in logging behind a pref
- Using form autofill handler for filling to avoid a second cache
- Defined scope of future milestones
- Collecting data on the form structures of targeted US e-retailers
- Fixed
- Fill the selected autofill profile when an autocomplete entry is chosen
- [Form Autofill Prevent duplicate autocomplete search registration]
- [Form Autofill Add built-in debug logging to ease debugging]
- add a new profile item <binding> and make rich-result-popup append item accordingly
- Fallback to form history if there is no form autofill profile saved
- Replace async getEnabledStatus with initialProcessData for content process init
- Hide the result without primary label in ProfileAutoCompleteResult
- Implement two column layout for profile item binding
- Make adjustHeight method adapt profile item list
- Form autofill popup won't apply to an auto-focused input until it's refocused
- In Progress
Go Faster
- Tracking system add-on uptake over time
- Looking into the persistent ~6% that don’t seem to apply updates
- Going to repeat this for other types of update (blocklist, onecrl, etc)
- https://bugzilla.mozilla.org/show_bug.cgi?id=1323547
- OneCRL = Certificate revocation list.
- Planning to replace hotfix w/ system add-ons soon
Platform UI and other Platform Audibles
- jessica and scottwu have been working on proper localization support for the Date/Time pickers
- Reminder: ~2 weeks, non-Flash plugins are not supported by default
- [jaws] Work for the <select> dropdown has finished; riding the 54 train. Let jaws or mconley know if you see any issues.
Privacy/Security
- More polish work around the permissions project (53) and in-context password warning (52) project.
- Test Pilot experiments progress: Tracking Protection concluded, Containers is about to launch.
- Team had a work week last week in MV.
- Immediate priority (as concluded from work week): Containers, Shavar improvements, SafeBrowsing v4, more permissions polish (including about:permissions replacement), shield study on privacy prefs breakage
Quality of Experience
- Lightweight themes will soon be implemented purely through CSS variables once bug 864562 lands
- We are close to getting the new (Web Extension-based) themes to show up in the Add-ons Manager. This work is being tracked in bug 1330349
- Blog post announcing Theming API by dolske: https://blog.mozilla.org/addons/2017/02/24/improving-themes-in-firefox/
- Improvements to importing are ongoing
- Turning on automatic migration/import on nightly, aurora and early beta starting with 54
- Running another experiment on beta 53 to see why/when people don’t like us importing their history/bookmarks from another browser (with a survey)
- Dão added some limits so we don’t import ALL THE HISTORY all the time when importing from Chrome (currently looking at 6 months and 2000 urls as a limit)
- Gijs tried to make history import not hang quite so much by reducing main thread communication
- Looking at improving things for bookmarks imports next…
- Turning automatic import on for Nightly, Aurora, and Beta, but not Release. Large number of people want to revert auto-import; we’re going to prompt them with a survey on Beta.
- Preferences reorg/search
- The work to reorganize the Preferences continues to push forward. Going through review cycles now. We are hoping to get the reorganization work to land at the beginning of the Nightly 55 release cycle.
- Integrating search within the Preferences is also on-going, and will also likely land in the 55 release cycle though the two projects are not tied to each other.
- Six (6!) GSOC applicants for Boosting Sessionstore Performance project so far
- Can I have more than one? ;-P
Search
- Some Awesomebar and Places fixes.
- High-rez favicons are coming.
- The Cliqz test pilot experiment shipped a bug fix update last week.
- Currently working on more telemetry probes in the awesomebar and search bar.
Sync / Firefox Accounts
- Bookmark repair work landing this week. This is important for unblocking iOS sync.
- New UI to show all synced tabs in the panel.
Test Pilot
- Try some new experiments!
- Launched last week: Snooze Tabs and Pulse
- Launching tomorrow (Wednesday): Containers
- Containers are currently in Nightly. Test Pilot is being used to measure engagement and iterate on the UI. Read more about the goals and plans here.
- Page Shot in FF 54
- Page Shot will now be a bootstrapped addon + embedded WebExtension, and will ship as a system addon. Read more details here.
- Questions/comments? #pageshot on IRC. (We’re working on creating a mailing list / Discourse group for the Page Shot transition into Firefox. Link to be added async)
- Please submit your ideas for new Firefox features!
This week I learned
- [paolo] I’ve learned from :rexboy that you can use “animation-play-state: paused;” and a negative “animation-delay” controlled from JavaScript to show a specific frame of a CSS animation. This was useful for the new download progress indicator to control height and brightness at the same time.
- [felipe] Prefs.reset() might not work as you expect if you’re using defaultPrefs:
let prefs = new Preferences(); prefs.set(“foobar”, true); prefs.reset(“foobar”); // this is fine let prefs = new Preferences({defaultBranch: true}); prefs.set(“foobar”, true); prefs.reset(“foobar”); // this doesn’t work 😱
- [mconley] We bought Pocket