Make Mozilla build/run on IOS



Firefox for Android Graveyard
6 years ago
5 years ago


(Reporter: romaxa, Unassigned)


(Depends on: 1 bug)




6 years ago
I think we should take all recent patches fixes for IOS and make fennec/gecko build and run on IOS out of mozilla-central.

After that we could test and measure performance and figure out possibilities of writing native support for IOS.

Not sure if component correct for this bug, fix me if not
Here is something to start from:

It is the clone of + bug 682873 ipc-ios patch, rebased against one month old mozilla-central.
Plus there are some hacks in order get simple xul app work on iOS with Gecko process running on remote Linux machine.
Depends on: 682873
The first try with iOS sdk6.0:

It builds. Didn't run it on device yet.
I pulled a fresh mozilla-central and had to do minor patch unbitrotting, but also hit this error:

In file included from /Users/mfinkle/source/mozilla-ios/mozilla/widget/uikit/
/Users/mfinkle/source/mozilla-ios/mozilla/widget/uikit/nsWindow.h:131:16: warning: 'nsWindow::CaptureRollupEvents' hides overloaded virtual function
    NS_IMETHOD CaptureRollupEvents(nsIRollupListener *aListener,
../../dist/include/nsIWidget.h:1214:16: note: hidden overloaded virtual function 'nsIWidget::CaptureRollupEvents' declared here
    NS_IMETHOD CaptureRollupEvents(nsIRollupListener* aListener, bool aDoCapture) = 0;
/Users/mfinkle/source/mozilla-ios/mozilla/widget/uikit/ error: allocating an object of abstract class type 'nsWindow'
../../dist/include/mozilla/ModuleUtils.h:27:16: note: expanded from macro 'NS_GENERIC_FACTORY_CONSTRUCTOR'
    inst = new _InstanceClass();                                              \
../../dist/include/nsIWidget.h:1214:16: note: unimplemented pure virtual method 'CaptureRollupEvents' in 'nsWindow'
    NS_IMETHOD CaptureRollupEvents(nsIRollupListener* aListener, bool aDoCapture) = 0;
Bug 701760 changed the signature of CaptureRollupEvents. Fixing that locally and continuing my build...

Comment 5

5 years ago
I guess in order to avoid additional troubles it is better to use
I don't have any ios6.0 compatible device a the moment. Before I used ios4.1 sdk to build fennec and jailbroken iPad1 running 5.0.1 to run fennec. This is how I've installed it that time:

1. Here is Fennec desktop file I've used:
2. <iPad># mkdir /Applications/
3. <desktop/mozilla-central>$ scp .hg/patches/ root@<device>:/Applications/
4. <desktop/mozilla-central>$ scp -r <obj-dir>/dist/bin/* root@<device>:/Applications/
5. reboot iPad in order to see Fennec icon
btw, when running from terminal widget doesn't get activated. So, Info.plist is necessary.
I had a patch in my queue for building an app bundle for Firefox (desktop, not fennec):
You need to log in before you can comment on or make changes to this bug.