Hey,
TL;DR: if like me you still use your Firefox OS phone because, well, it
works well, and you’re not interested in Pokemon Go, I went ahead and
fixed some of my most frustrating bugs that were in Gaia master.
You can find my code there:
So I’m still using my Firefox OS phone for several reasons: it works for
me, I could potentially fix bugs on it, it’s nice, it’s not tracking me.
I got bored of telling my friends “I’m using it because I could fix bugs
but I don’t have the time right now” and I decided to actually fix some.
Because my free time is currently very limited I didn’t take the time to
write or update tests for this. Still I wanted to bring these changes to
the list in case other users are interested like me. And maybe the team
working on the transition will want to take them or some of them.
So here are my fixes:
- build system: a late change made restarting an app after pushing it
to the device broken. Note: it’s still broken for other reasons that
I haven’t debugged yet. - system (note: l10n change): add a title to the captive portal
notification. This one was driving me crazy for a very long time
because it was so disgraceful. But in the latest months there was a
change that showed “undefined” instead of nothing as a title. This
was it and I added this. - keyboard: for some months we couldn’t revert the suggestion when the
first word in an input was corrected. I’m still not sure why it’s
happening in this case only, I think this is a gecko deeper issue
but I went ahead and implemented what was suggested in the keyboard
code. - intl: before we stopped there was an ongoing effort to port our l10n
usage to l20n and gecko’s Intl implementation. But latest commit had
some bugs or behaviors I didn’t want:
o relative time format used {} as placeholders instead of {{}}. As
a result they were not replaced.
o l20n.js is replacing a l10n-id without any translation by the id
itself. While I understand the rationale this is breaking the
quck settings extension, so I changed the behavior to the
previous one: silently ignoring. - search engines: I added Qwant
This comes with the only warranty that it works for me.
What will be my next changes ? I honestly don’t know. I’ll see what
frustrates me the most. Also I’m stuck with this version of gecko of
last March for now.
Here are the things from the top of my head, not especially in this order:
- actually fixing the build system to restart apps after pushing
(first point above) - keyboard: after selecting a correction on the suggestion bar, a
space is added automatically, which is not right if we want to add a
point. Instead we should wait and see what’s the next character
added by the user, and if it’s not a punctuation add a space at
that time. - go back to the older homescreen with groups, the new one is useless.
And in the same time removing the “pin website” feature from
browser, merely keeping “add to homescreen”. - understand why my geolocation doesn’t work at all
- implement seconds in the clock’s timer
- allow “(123) 123 123” phone numbers to be recognized in the SMS
application (very old request by dholbert, very easy, yet nobody
from the community managed to implement it)
I accept PR on this branch although I don’t expect to receive any.
What are the next later steps ? I have ideas but I don’t know if I’ll
ever be able to do them.
For things like the SMS app, I think (like others, I know it’s not
something new) that a web server on the phone would be useful, so that
we don’t rely on proprietary APIs. Yet while some favor a nodejs server,
I think a Rust-based server would be better-suited:
- smaller footprint
- can link to binary easily
- memory-safe
Either several microservers on different domains, or one server with
several endpoints. The first solution seems more flexible to me.
I’m not sure how this fits to the whole migration process as I haven’t
followed anything. So feel free to disagree with me, anyway I won’t
argue with you
I hope this has been useful to some, thanks for reading !
Julien