Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fennec port to webOS 3.x - any guidance?

22 views
Skip to first unread message

r...@octobang.com

unread,
Oct 25, 2011, 7:57:17 PM10/25/11
to
I'm very interested in trying to port Firefox Mobile to the HP
Touchpad as it looks like the native webOS browser is never going to
be improved, and with nearly 1m tablets in the market, there is a real
need for it. With the exception of having Flash, the native browser
quite honestly sucks wind (html5test.com scores it 195, whereas Fennec
on CM7 scores a very respectable 314). Any webOS fan who is being
honest will admit it.

I spent the better part of 15 years slinging cross-platform C/C++, so
am very interested in taking a crack at it. I saw the PreFox attempt,
but it was coded specifically for the Pre running webOS 1.4.x a couple
years ago - and the Palm PDK wasn't available back then. It also
looks like the tablet version of Fennec has come a long way since then
(been playing with the Aurora build on my TP dual-booting into CM7;
love the thumbnail concept which would port directly into the webOS
3.x panel interface).

That all being said - I've been poking around the MDN site for several
days now (mobile and desktop), and have not been able to find any form
of porting guide, and it appears that not all the 'Droid-specific code
lives under /mobile in the Mozilla codebase. Can anyone point me in
the right direction to get my feet wet on porting the Fennec browser
to a new target? With the new webOS 3.x PDK allowing for complete
apps to be written in C/C++, OpenGL GPU support, and fairly robust
native multimedia support (now including OGG-encoded media), it seems
like a much better target for a port than in the past.

Even though there is (regrettably, yet understandably) no interest in
a Mozilla-backed/sanctioned webOS port, I know there are a lot of
frustrated TP users that would love to have Firefox in its mobile
incarnation running on their tablets, and I'd like to try to make it
happen.

Help? Suggestions? Links to porting references?

Thanks in advance!

-R

Dave Townsend

unread,
Oct 26, 2011, 1:42:40 PM10/26/11
to
On 10/25/11 16:57, r...@octobang.com wrote:
> I'm very interested in trying to port Firefox Mobile to the HP
> Touchpad as it looks like the native webOS browser is never going to
> be improved, and with nearly 1m tablets in the market, there is a real
> need for it. With the exception of having Flash, the native browser
> quite honestly sucks wind (html5test.com scores it 195, whereas Fennec
> on CM7 scores a very respectable 314). Any webOS fan who is being
> honest will admit it.
>
> I spent the better part of 15 years slinging cross-platform C/C++, so
> am very interested in taking a crack at it. I saw the PreFox attempt,
> but it was coded specifically for the Pre running webOS 1.4.x a couple
> years ago - and the Palm PDK wasn't available back then.

The PDK certainly was available back then, it was a pre-requisite for
building PreFox and the widget code included in the patches there use
the PDK APIs for everything. Your options really are either to use that
code as a base or to potentially ignore the PDK entirely and look at
using the QT widget code (I hear QT is available for webOS).

For the PDK route I would expect that the build instructions for PreFox
with some tweaks to the build config would mostly work for a touchpad
build, though it'll only give you an older version of the Fennec code.
Updating the widget code to support the gfx acceleration and
cross-process communication that the current builds of Fennec rely on is
the next step that I never had the time or expertise to do.

Of course with the switch to native UI that the mobile team are doing
now I'm not sure that the XUL UI is going to be maintained anymore so
you may be just as stuck on Fennec as you are with the stock touchpad
browser.

arp...@gmail.com

unread,
Oct 26, 2011, 2:05:26 PM10/26/11
to
On Oct 26, 1:42 pm, Dave Townsend <dtowns...@mozilla.com> wrote:
> The PDK certainly was available back then, it was a pre-requisite for
> building PreFox and the widget code included in the patches there use
> the PDK APIs for everything. Your options really are either to use that
> code as a base or to potentially ignore the PDK entirely and look at
> using the QT widget code (I hear QT is available for webOS).

My mistake. I remember the PDK being released a while after I had
purchased my Pre, and I mistakenly assumed when you started the
project. If I'm going to look at using some form of chrome and
display rendering other than that bundled with Fennec, I'd just as
soon use the Panel-based elements built into webOS for the TP versus
using Qt.

> For the PDK route I would expect that the build instructions for PreFox
> with some tweaks to the build config would mostly work for a touchpad
> build, though it'll only give you an older version of the Fennec code.
> Updating the widget code to support the gfx acceleration and
> cross-process communication that the current builds of Fennec rely on is
> the next step that I never had the time or expertise to do.
>
> Of course with the switch to native UI that the mobile team are doing
> now I'm not sure that the XUL UI is going to be maintained anymore so
> you may be just as stuck on Fennec as you are with the stock touchpad
> browser.

If the team is looking at switching to a native UI, then I would
definitely rather take advantage of the webOS UI elements as long as
the core event handlers, layout managers, and canvas rendering code
could be leveraged per the architecture pages I read on the mobile
site. Might actually make the browser run much faster on the TP than
it would otherwise by leveraging the native UI elements. Not that the
Aurora release for Android running on my TP's CM7 install is a slouch
- it actually runs faster than the native CM7 browser from what I've
seen.

That being said - is perusing the PreFox code changes to work with the
PDK be a good place to start to see what the porting points are?

Thanks for the reply!

Dave Townsend

unread,
Oct 26, 2011, 2:48:29 PM10/26/11
to
This will be a little different to how PreFox does things right now. It
means you'll basically be developing a webOS UI from scratch then
embedding the gecko rendering inside it somehow. As I recall it is
relatively straightforward to do that with webOS, you'll just have to
implement the code to pass messages between the UI and gecko. The widget
code is likely the place to put that.

> That being said - is perusing the PreFox code changes to work with the
> PDK be a good place to start to see what the porting points are?

Certainly that code is a good example of the sorts of things you need to
do to port the browser to any platform. In particular the code in the
widget directory is the main thing that sort of sits between the OS and
gecko. It is expected to take OS level events (finger taps, orientation
changes, etc.) and convert them into gecko events. It is also part of
the code responsible for creating a graphics surface that gecko can
paint to to have to show up on screen. There are of course other bits to
note, particularly font handling and build config changes. Thankfully
webOS is similar enough to android that you can take a lot of the
changes they made and tweak them to work for webOS.

dan

unread,
Jan 11, 2012, 11:58:53 AM1/11/12
to
Any update on that port?

Btw on my box when following the instructions on prefox building, the
patching of app/mobile.js fails. Any idea as to why?

See below.

Cheers,
Daniel

dan@kubuntu11:~/prefox/mobile$ hg -v qpush jit
(working directory not at a head)
applying zoom
patching file chrome/content/AnimatedZoom.js
chrome/content/AnimatedZoom.js
applying gestures
patching file chrome/content/browser-ui.js
Hunk #1 succeeded at 779 (offset 56 lines).
chrome/content/browser-ui.js
applying resize
patching file chrome/content/browser.js
Hunk #1 succeeded at 543 (offset -31 lines).
chrome/content/browser.js
applying mozphone
patching file components/Makefile.in
components/Makefile.in
applying dpi
patching file app/mobile.js
app/mobile.js
applying branding
patching file branding/palm/Makefile.in
patching file branding/palm/configure.sh
patching file branding/palm/content/Makefile.in
patching file branding/palm/content/favicon32.png
patching file branding/palm/content/jar.mn
patching file branding/palm/content/logo.png
patching file branding/palm/content/logoWordmark.png
patching file branding/palm/locales/Makefile.in
patching file branding/palm/locales/en-US/brand.dtd
patching file branding/palm/locales/en-US/brand.properties
patching file branding/palm/locales/jar.mn
patching file confvars.sh
adding branding/palm/Makefile.in
adding branding/palm/configure.sh
adding branding/palm/content/Makefile.in
adding branding/palm/content/favicon32.png
adding branding/palm/content/jar.mn
adding branding/palm/content/logo.png
adding branding/palm/content/logoWordmark.png
adding branding/palm/locales/Makefile.in
adding branding/palm/locales/en-US/brand.dtd
adding branding/palm/locales/en-US/brand.properties
adding branding/palm/locales/jar.mn
branding/palm/Makefile.in
branding/palm/configure.sh
branding/palm/content/Makefile.in
branding/palm/content/favicon32.png
branding/palm/content/jar.mn
branding/palm/content/logo.png
branding/palm/content/logoWordmark.png
branding/palm/locales/Makefile.in
branding/palm/locales/en-US/brand.dtd
branding/palm/locales/en-US/brand.properties
branding/palm/locales/jar.mn
confvars.sh
applying jit
patching file app/mobile.js
transaction abort!
rollback completed
cleaning up working directory...resolving manifests
getting app/mobile.js
getting chrome/content/AnimatedZoom.js
getting chrome/content/browser-ui.js
getting chrome/content/browser.js
getting components/Makefile.in
getting confvars.sh
done
abort: no username supplied (see "hg help config")
dan@kubuntu11:~/prefox/mobile$





0 new messages