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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform