On 17/10/2014 00:32, Nicholas Nethercote wrote:
> Thanks for the replies so far! I deliberately left this question vague
> to see what kind of responses people would give. But mostly I'm
> interested in code whose awfulness impacts users in a serious way.
> Ones where refactoring/rewriting efforts would be valuable. That
> excludes code that no longer exists :)

A lot of early FxOS code both in gecko and gaia was hacked together in
no time during caffeine-fueled work weeks by jet-lagged developers. Some
of it was cleaned up but some is still with us, mostly in gaia I'd say,
where it often does have an impact on end users. A few things that come
to mind:

- In some applications transitions between a panel or a similar UI state
are not atomic so if you tap fast enough funny things happen.

- We often store application data in the DOM again making for funny bugs
when we update the DOM asynchronously while the user is interacting with
the application.

- I'm not really sure all of our IndexedDB uses are doing transactions
properly. We had (and possibly still have) multiple places where we were
doing things that should have been atomic in different transactions
(because of async_storage.js for example) and we assumed that a
transaction succeeded if the last request succeeded (but not the
transaction itself).

- Dual-SIM support is still partially done. Some things work, some
things kinda work, some things don't work at all (e.g. use SIMs from two
different countries and only the first one's country prefix will be
recognized correctly when matching numbers).

- Last but not least issues in horribly buggy Android binary blobs were
worked around in gecko, some of those workarounds ended up being
duplicated in different pieces of code as refactorings came and went, e.g.:

http://dxr.mozilla.org/mozilla-central/source/gfx/layers/RotatedBuffer.cpp#403
http://dxr.mozilla.org/mozilla-central/source/gfx/layers/client/TextureClient.cpp#226

I know we blacklist drivers on desktops too; what makes this worse is
that we can't ask users to update their drivers on their phones and
these horrors keep creeping into our codebase and we don't know when
we'll be able to get rid of them (or if we'll remember all the places we
put them in).

 Gabriele

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to