Closed Bug 943878 (firefox-mulet) Opened 7 years ago Closed 4 years ago

Firefox Mulet

Categories

(Core :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: gerard-majax, Assigned: ochameau)

References

(Depends on 1 open bug)

Details

(Whiteboard: [systemsfe])

We want to do strange things: building Firefox with MOZ_B2G. Calling it Mulet, since I can't remember this very nice swedish name proposed by jonas :(
I could build it as a new product based on a merge of browser and b2g. Launching the resulting binary worked, though some issue with browser.xul not being at the correct place lead to a couple of days of head scratching to get a UI. Thanks to :ochameau I got the correct lead and checking to find out what was wrong.

I suspect some other components were missing, since after the UI correctly showed up, close to nothing was working: opening preferences did work, but any browsing was not even triggering anything ; js console did not showed, etc.

After discussing with :ochameau and :vingtetun, I will pursue this with only hacking inside the browser product.
(In reply to Alexandre LISSY :gerard-majax from comment #1)
> 
> After discussing with :ochameau and :vingtetun, I will pursue this with only
> hacking inside the browser product.

What's the rationale for doing that?
I think we rather need a new 'mulet' product that will mostly do build system magic to get some pieces from browser/ and some from b2g/.
(In reply to Fabrice Desré [:fabrice] from comment #2)
> (In reply to Alexandre LISSY :gerard-majax from comment #1)
> > 
> > After discussing with :ochameau and :vingtetun, I will pursue this with only
> > hacking inside the browser product.
> 
> What's the rationale for doing that?
> I think we rather need a new 'mulet' product that will mostly do build
> system magic to get some pieces from browser/ and some from b2g/.

Creating a new product that would be able to build Firefox correctly sounds like a lot of work with various copy paste of manifests/makefiles. We really want everything that is currently shipped in Firefox. It sounds really easy to miss preferences and pieces coming from anywhere in the m-c repo!
Whereas if we just add optional extensions during firefox product, we just have to add some ifdef here and there. But my _mozilla_ build system knowledges being close to zero, I may not be aware of tricks to get a kind of alias 'mulet' product that would just build the 'firefox' product as-is plus some additional b2g things.
Build system tips are welcomed!
Depends on: 961514
Depends on: 961519
Depends on bug 874984 as xul scrollbars are broken due to content.css being applied also to firefox chrome elements.
Depends on: 874984
console.log not working in all apps but the system app.
Depends on: 896523
Depends on: 961655
Depends on: 961659
Depends on: 961745
Morphing this bug to a meta bug to track all necessary work to make b2g work seemleslly into Firefox.
So moving build-related work into bug 961745.
Assignee: lissyx+mozillians → poirot.alex
Depends on: 961777
Depends on: 961784
Here is a branch of most of dependent bugs (with some bonuses, like simulator merge with b2g desktop):
https://github.com/ochameau/mozilla-central/tree/mulet

With this branch you get a working mulet. Firefox is still bad looking, but most of everything works.
At least gaia start, you can launch apps and the few I tried were working.

The main issues are the brute disabling of reuseGlobal pref that completely broke firefox (bug 961777),
and crashes on startup if the camera app is installed.

Here is the current steps to test it:
$ git remote add ochameau git@github.com:ochameau/mozilla-central.git
$ git fetch ochameau
$ git checkout ochameau/mulet
$ mach build
$ ./obj/dist/bin/firefox-bin -profile ~/gaia/profile -chrome chrome://browser/content/browser.xul
-- enable responsive mode
-- turn touch event mode on
-- open chrome://b2g/content/shell.html in a tab
Depends on: 962075
Depends on: 962092
New changesets, simplifying b2g start:
https://github.com/ochameau/mozilla-central/tree/mulet

$ mach build
$ ./obj/dist/bin/firefox-bin -profile ~/gaia/profile
-- Now b2g should be automatically opened in a tab, with responsive mode, touch events and devtools.

Note that, for now, it only work with non-debug, non-desktop gaia profile
(i.e. DESKTOP=1/DEBUG=1 will make it fail)

Also, the crashes related to the camera app only occurs with debug builds.
Depends on: 962183
Depends on: 962572
Depends on: 962584
Depends on: 963234
Depends on: 963239
Depends on: 963258
No luck with the crash, but bug 963239 is going to address a whole bunch of breakages.

I pushed a rebased version of the branch on github with all patches from all dependent bugs.
Depends on: 964778
Depends on: 961780
Blocks: 967539
I push to the git branch quite often, after rebasing on recent master:
  https://github.com/ochameau/mozilla-central/tree/mulet

The mulet works quite well from a user perspective.
(In reply to Alexandre Poirot (:ochameau) from comment #10)
> I push to the git branch quite often, after rebasing on recent master:
>   https://github.com/ochameau/mozilla-central/tree/mulet
> 
> The mulet works quite well from a user perspective.

Can you rework that to be a clone of https://github.com/mozilla/gecko-dev ? It seems that your master is based on the old hashes, but not necessarily your mulet branch?
Whiteboard: [systemsfe]
(In reply to Axel Hecht [:Pike] from comment #11)
> Can you rework that to be a clone of https://github.com/mozilla/gecko-dev ?
> It seems that your master is based on the old hashes, but not necessarily
> your mulet branch?

We are planning to spawn a project branch for the mulet.
Let's do that.

Gregor, can you help setting up such branch?
Flags: needinfo?(anygregor)
Depends on: 968789
Let's see how it looks on mac and windows:
  https://tbpl.mozilla.org/?tree=Try&rev=73f969823c87
Depends on: 968907
Depends on: 963490
Flags: needinfo?(anygregor)
Depends on: 981664
Depends on: 981690
Alias: firefox-mulet
Looking forward to testing this out. I'll keep monitoring this for MDN-docs readiness.
Keywords: dev-doc-needed
Depends on: 994659
Depends on: 994669
Depends on: 997096
Depends on: 999631
Depends on: 1000122
Significant step reached: Mulet is running all xpcshell/mochitest (with just a few blacklisted):
  https://tbpl.mozilla.org/?tree=Try&rev=50519e76486e
Another try with rebased patch queue + some new changesets:
  https://tbpl.mozilla.org/?tree=Try&rev=b620c9971a60
Tests are still green (still with a mulet specific blacklist that looks quite small)
New set of patches on mulet:
  https://github.com/ochameau/mozilla-central/tree/mulet
Still mostly green:
  https://tbpl.mozilla.org/?tree=Try&rev=15087eb5ff49

Fixed:
- app install from marketplace,
- permission prompts,
- performance issue,
- integrates gaia helpers into responsive UI.
Depends on: 1009088
Depends on: 1009090
Depends on: 1016030
Depends on: 1023197
Depends on: 1023200
Depends on: 1023264
Depends on: 1030679
Depends on: 1031085
Depends on: 1035226
Depends on: 1042143
Depends on: 1043016
Depends on: 978726
Depends on: 1046377
Depends on: 1052544
Depends on: 1053185
Depends on: 1043699
Depends on: 1063824
Depends on: 1067840
Depends on: 1068006
Depends on: 1072443
Depends on: 1082001
Depends on: 1093533
No longer depends on: 1093533
Depends on: 1094362, 1094369
Depends on: 1095451
Depends on: 1097624
Depends on: 1104644
Depends on: 1112779
Depends on: 1128924
Depends on: 1129037
Depends on: 1129164
No longer blocks: 967539
Depends on: 967539
Depends on: 1188335
Depends on: 1188336
Depends on: 1188337
Depends on: 1188338
Depends on: 1188585
Depends on: 1188759
Depends on: 1201070
Depends on: 1205196
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.