Quantum Flow Engineering Newsletter #18

Mike Conley mconley at mozilla.com
Tue Aug 8 13:26:27 UTC 2017


>
> Mike Conley ported scrollbox to use smooth scrolling instead of JS driven
> scrolling <https://bugzilla.mozilla.org/show_bug.cgi?id=1356705>.  This
> affects most importantly scrolling the tab bar, and should make it more
> smooth by removing a lot of slow code that used to run and off-loading that
> work to the compositor through CSS-based smooth scrolling!  He notes
> <https://bugzilla.mozilla.org/show_bug.cgi?id=1356705#c67> on the bug
> that in order to achieve great performance some follow-ups may be needed.


Just to ensure credit is given where it's due - that was 95% Dão Gottwald's
work. I just helped push the last 5% over the line when he got focused on
getting square tabs landed. Thanks Dão!

On 4 August 2017 at 04:04, Ehsan Akhgari <ehsan.akhgari at gmail.com> wrote:

> Hi everyone,
>
> This has been a busy week.  A lot of fixes have landed, setting up the
> Firefox 57 cycle for a good start.  On the platform side, a notable change
> that will be in the upcoming Nightly is the fix for document.cookie using
> synchronous IPC.  This super popular API call slows down various web pages
> today in Firefox, and starting from tomorrow, the affected pages should
> experience a great speedup.  I have sometimes seen the slowdown caused by
> this one issue to amount to a second or more in some situations, thanks a
> lot to Amy and Josh for their hard work on this feature.  The readers of
> these newsletters know that the work on fixing this issue has gone on for a
> long time, and it's great to see it land early in the cycle.
>
> On the front-end side, more and more of the UI changes of Photon are
> landing in Nightly.  One of the overall changes that I have seen is that
> the interface is starting to feel a lot more responsive and snappy than it
> was around this time last year.  This is due to many different details.  A
> lot of work has gone into fixing rough edges in the performance of the
> existing code, some of which I have covered but most of which is under the Photon
> Performance project <https://bugzilla.mozilla.org/show_bug.cgi?id=1363750>.
> Also the new UI is built with performance in mind, so for example where
> animations are used, they use the compositor and don't run on the main
> thread.  All of the pieces of this performance puzzle are nicely coming to
> fit in together, and it is great to see that this hard work is paying off.
>
> On the Speedometer front, things are progressing with fast pace.  We have
> been fixing issues that have been on our list from the previous findings,
> which has somewhat slowed down the pace of finding new issues to work on.
> Although the SpiderMonkey team haven't waited around
> <https://bugzilla.mozilla.org/show_bug.cgi?id=1245279> and are
> continually finding new optimization opportunities out of further
> investigations.  There is still more work to be done there!
>
> I will now move own to acknowledge the great work of all of those who
> helped make Firefox faster last week.  I hope I am not mistakenly
> forgetting any names here!
>
>    - Andrew McCreight got rid of some cycle collector overhead
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1385459> related to
>    using QueryInterface to canonicalize the nsISupports pointers stored in the
>    purple buffer, and similarly for pointers encountered during traversal
>    of native roots <https://bugzilla.mozilla.org/show_bug.cgi?id=1385474>
>    as well.
>    - Kris Maglione added some utilities to BrowserUtils
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1383367> that should
>    help our front-end devs avoid synchronous layout and style flushes.
>    - Amy Chung got rid of the sync IPC messages in the cookie service
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1331680>! This was a
>    substantial amount of work and should eliminate jank on a number of sites
>    that get and set cookies frequently.
>    - Jessica Jong made us check a boolean flag instead of doing a linear
>    search looking for an attribute in order to determine whether an Element is
>    required <https://bugzilla.mozilla.org/show_bug.cgi?id=1385478>.
>    - André Bargull made String.prototype.toLower/UpperCase use direct VM
>    calls, and also added specialized unicode::CanLower/UpperCase overloads for
>    Latin1 characters
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1383647>.  He also added
>    an Ion-inline path for Reflect.getPrototypeOf()
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1385802>.  Additionally,
>    he made it possible to inline UnsafeGetReservedSlot when the object is
>    typed as MIRType::Value
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1383645>.  Last but not
>    least, he inlined ToObject when called with MIRType::Value
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1383644>.
>    - Mike Conley ported scrollbox to use smooth scrolling instead of JS
>    driven scrolling <https://bugzilla.mozilla.org/show_bug.cgi?id=1356705>.
>    This affects most importantly scrolling the tab bar, and should make it
>    more smooth by removing a lot of slow code that used to run and off-loading
>    that work to the compositor through CSS-based smooth scrolling!  He
>    notes <https://bugzilla.mozilla.org/show_bug.cgi?id=1356705#c67> on
>    the bug that in order to achieve great performance some follow-ups may be
>    needed.
>    - Olli Pettay avoided allocating element state objects needlessly when
>    saving the state of <input> and <select> elements
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1386582>.
>    - Tim Taubert and Michael Layzell collaborated on reducing the cost of
>    the FormDataListener event handler
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1373672> inside
>    sessionstore.
>    - C.J. Ku fine tuned nsDisplaySVGText::Paint() in several ways
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1385861>.
>    - Tom Schuster optimized String.prototype.indexOf/lastIndexOf for the
>    case where the search string is equal to the string itself
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1383646>.
>    - Tooru Fujisawa improved the inlining of RegExpMatcher,
>    RegExpSearcher and RegExpTester
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1366263> in IonMonkey.
>    - Nicholas Hurley ensured HTTP/2 pushes get canceled if they are
>    already in the cache
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1367551>.
>    - Jerry Shih deferred initializing some part of the platform font list
>    to the idle queue
>    <https://bugzilla.mozilla.org/show_bug.cgi?id=1368531>.
>    - Felipe Gomes updated the transitionend properties of <option>
>    elements used to implement <select> drop-downs in e10s mode in a deferred
>    task <https://bugzilla.mozilla.org/show_bug.cgi?id=1383205>.
>
> Cheers,
> --
> Ehsan
>
> _______________________________________________
> firefox-dev mailing list
> firefox-dev at mozilla.org
> https://mail.mozilla.org/listinfo/firefox-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/firefox-dev/attachments/20170808/5a8b9f90/attachment.html>


More information about the firefox-dev mailing list