Firefox/Meeting/25-Apr-2017

From MozillaWiki
Jump to: navigation, search

Actions from last meeting

  • Select a new meeting leader for May 9th meeting.
  • Today’s meeting leader is: Johannh
  • Next meeting leader is: Tim Spurway

General Topics / Roundtable

(tips/tricks/FYI, productivity improvements, industry news)

  • [johannh] We’ve rolled back from Lithium to Kitsune for now.
  • [flod] (read-only, on a plane) Localization has now moved from Aurora to Central as part of project Dawn. As a consequence, it’s even more important to not land broken localization pieces to mozilla-central, because it impacts all languages. If you have any doubts about localization while working on your patches, please ping or NI :flod (or :pike)

Friends of the Firefox team

(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)

Project Updates

Add-ons

Activity Stream

  • Test Pilot Activity Stream
    • Get Activity Stream (Dev channel): https://s3.amazonaws.com/moz-activity-streams-dev/dist/latest.html
    • Activity Stream support for Pocket has landed in Test Pilot version (dev channel). Experiment launches May 1st. (thanks csadilek)
    • Updated to latest eslint-plugin-mozilla which now supports mozilla-central external repositories, but need to disable no-useless-parameters as we support older than Firefox 55 (thanks Standard8)
  • Activity Stream system add-on
    • Search feed and UI landed
    • TelemetrySender landed
    • Top Sites feed landed

Electrolysis (e10s)

Firefox Core Engineering

  • Flash
    • Telemetry experiment ran on Nightly 55 from April 14 - April 23.
    • Shield Study defaulting to click-to-play will start on Release 53 in the next week and run for six weeks.
    • Default and (slight) additional UI land in 55.
  • Crash
    • Crash pings contain raw stacks (opt-out) as of Beta 54.
    • Crash pings exist for main, content, and GPU processes as of Beta 54.
    • Crash pings are sent via pingSender (i.e. right away) as of Beta 54.
    • Only one bug did not get uplifted to 54 -- a new data point added to the crash ping (a form of client crash id) as of 55.
    • Working on identifying top crashers (by signature) currently. Intending to land while 55 is on Nightly.
  • Install/Update
    • Continue with phase 1 of the Update Agent, which will continue/complete the download of an update even if a session ends.
    • Looking into trying to encourage users on FF4.0 - FF35.0 to update past 35 prior to September 2017 (when their update server, aus3, expires).
    • Fun with Nahimic: it can (and has) prevented updates. Follow 1356637 for updates.

Form Autofill

Lint

  • Eslint-plugin-mozilla can now be used via npm for external projects. It includes a “recommended” config which is the one originally in toolkit/.
  • Current efforts (mainly mentored bugs):
    • Consolidate the current configurations to remove duplicate rules & make it clearer where there are differences in the tree
    • Get the whole tree based around the recommended config (currently only parts are, e.g. toolkit/ browser/ security/ storage/ js/ - missing items like services/, accessibility).
  • Future efforts:
    • General improvements for ESLint to make it easier to work with for developers, quicker to set up, e.g. editor integration, commit hooks, ./mach bootstrap integration etc.
    • Where subtrees have extra rules turned on/off, see if we can harmonise those across the whole tree.
    • Optimise our rule handling as best we can, and turn on more rules.
  • Services.prefs.addObserver, Services.obs.notifyObservers and Services.obs.addObserver’s last parameter is now optional (bug 1355216), and ESLint will report providing a falsy value for them (bug 1356569).

Photon

Performance

  • Lots of sync reflow bugs filed, thanks! We now have a big backlog to triage.
  • Several fixes landed for sync reflows, especially around interactions with the tab bar (thank Dão!) and the awesomebar.
  • Starting to profile startup, and there’s a lot of room for improvement there (loading JS modules lazily from nsBrowserGlue (bug 1358921), loading the blocklist from JSON instead of parsing a big XML file (https://bugzilla.mozilla.org/show_bug.cgi?id=1257565).
  • A few tips:
    • Avoid calling .focus() several times in a row, each focus call currently flushes layout.
    • Avoid using setTimeout(..., 0), Services.tm.dispatchToMainThread(...) has less overhead.
    • Avoid using Preferences.jsm (especially during startup) if it’s only to have support for default values.
    • Avoid importing NetUtil.jsm only to use newURI, use Services.io.newURI directly instead.

Structure

  • Work starting on page action menu
  • Ongoing work on the hamburger and overflow panel
  • Ongoing work on having more than one level of nesting within panel subviews (the slide-to-the-side thing in panels) and update their styling
    • All the previous stuff is / will be behind a pref. We aim to flip that pref on Nightly in the near future. :-)
  • We swapped the sidebar to the right… and then swapped it back again. Expect more updates to sidebars in the future (with the side of the window stuff still under investigation).

Animation

Visuals

Onboarding

Preferences

Platform Audibles

  • Pending results of experiment, Flash will be marked as click-to-activate by default starting soon in Nightly. Pending results of SHIELD study this will ride to 55 release.
  • Initial page navigation numbers comparing Chrome and Firefox:
  • A bug that caused windows to be ghosts if touch events were sent is causing large CC pauses in nightly and beta. Fix in tomorrow’s Nightly.
  • Initial data shows that mean-time-between-failure (MTBF) for input jank:
    • MTBF for long input pauses (>2.5s) is 2.27 usage hours
    • MTBF for short pauses (250ms) is 0.29 usage hours
    • See https://gist.github.com/bsmedberg/53b6cc561bb4fc5685abfa175fde3342
    • Caveats:
      • Pending input when the computer sleeps could inflate this (unlikely)
        • Now fixed 1357742
      • Multiple input during a single hang event could inflate this (likely)
        • Being fixed in bug 1357457
  • 70+% of nightly users last week saw GC pauses >0.5s
  • ASK: if you see slow things, please install/use the gecko profiler and file bugs!

Privacy/Security

  • jkt wrote a blog post about the new “Always Open In This Container” feature in containers.
  • freddyb is writing a series of ESLint rules to catch common security problems in Firefox code. First victim: Eval and implied eval.

Project Mortar (PDFium)

  • Three milestones are set for better estimating our release schedule
    • Milestone 1 (target on Q2): feature landing. We are still trying to land our significant bits into mozilla-central, which are:
      • bug 558184 and 1344942: JSPlugin and plugin binary process creation and loading
      • bug 1345330: pull in Chromium source code (PDFium + Pepper API layer) into the tree and build with Firefox
      • bug 1269760: pdf printing (to paper). The most challenged part is converting PDF to EMF printing format on Windows, because we rely on PDFium to do the conversion. This means that the sandbox for plugin binary processes should allow PDFium to create device contexts and even access files. We are discussing with the Sandbox team
    • Milestone 2: release polish. (We haven't figured out the release target but the conversation is ongoing)
      • focus on performance and stability (meta bug 1286791), telemetry and test automation for future proofing
  • Milestone 3: script support. will NOT in the first release. Still investigating its product value

Search

Sync / Firefox Accounts

  • Work week in MTV this week

Test Pilot

  • Min Vid is celebrating its largest release yet with the addition of a play and history queue. Add media you want to watch to your upcoming queue, or replay something you missed by clicking the history tab. Min Vid currently works on YouTube, SoundCloud, Vimeo, and direct links to audio or video.
  • Pulse has added occasional (less than once a day) prompting for feedback to help avoid biased data. If you want to help Firefox improve performance on your favorite sites, this is your chance. The data from this experiment goes directly to the Firefox Product team to help prioritize improvements.
  • Snooze Tabs has gone world wide now supporting 23 locales. In addition to using Snooze Tabs in your favorite language, you'll also find an Undo button when deleting a snoozed tab.
  • Firefox Screenshots is in Beta 2 preffed-off by default. We’ll enable it very soon for everyone, or you can jump the gun by toggling extensions.screenshots.system-disabled . If you run into anything fishy, please let #screenshots know

This week I learned

  • [johannh] Aside from BrowserTestUtils, there’s also a TestUtils module that implements test framework agnostic helper functions.
  • [Standard8] There is a Mercurial commit hook for ESLint - see Mossop’s blog post for how to use it.