Transition to Firefox 4.0 in Natty

Registered by Chris Coulson on 2010-09-07

Firefox 4.0 will be released during the Natty cycle. We should transition to this version and also migrate packages currently using xulrunner 1.9.2 to 2.0

Blueprint information

Status:
Complete
Approver:
Martin Pitt
Priority:
High
Drafter:
Chris Coulson
Direction:
Needs approval
Assignee:
Chris Coulson
Definition:
Approved
Series goal:
Accepted for natty
Implementation:
Implemented
Milestone target:
milestone icon ubuntu-11.04-beta-1
Started by
Chris Coulson on 2010-11-02
Completed by
Chris Coulson on 2011-10-08

Related branches

Sprints

Whiteboard

* micahg [2011-03-09] Anything not ported by beta 1 will be dropped from natty, we can readd up to beta 2, otherwise, backport from the O series if it's needed once the package is ported
* micahg [2011-03-09] Changed my community work items to [mozillateam] since [micah-g] broke the WI tracker
* micahg [2011-03-04] Anyone can feel free to take any of the [micah-g] work items :)
* micahg [2011-03-04] Chnage my community work items to [micah-g] so they don't show up on the security team WI burndown charts
* micahg [2010-11-02] Added rdepends that need to be ported to xul-2.0/Firefox 4

* chrisccoulson [2010-11-13] GNOME 3 patchset - https://bugzilla.mozilla.org/show_bug.cgi?id=611953

* chrisccoulson [2010-11-15] Based on IRC discussion, we are adding abrowser back to Firefox for now, as there are several challenges to make it work properly from the xulrunner source, and I don't have time to resolve those yet.

Notable Firefox 4 changes and challenges:
1) omnijar packaging by default
- Default preferences are packed inside omni.jar, which means there is no way to change default preferences on an installed system.
- We can provide a system-wide preference file in /etc via an extension, which administrators can use to configure defaults.
- We won't be providing a mechanism to allow applications (ie, software center) to drop random preferences in the firefox directory. The only supported way to do this in the future will be via an extension or distribution bundle.

2) Packed extensions
- Extensions will not be unpacked by default. We will need to fix mozilla-devscripts for this and rebuild our extensions
- http://blog.mozilla.com/mwu/2010/09/10/extensions-now-installed-packed/

4) XPCOM component registration changes
- Affects everything shipping an XPCOM component, whether it is native or JS.
- See https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0

5) Depending on GNOME plans, we might need to add GSettings support where Firefox is currently using GConf

6) It currently provides an about:home handler, we need to investigate whether it provides the functionality that currently exists in ubufox

7) Translations:
- Now we don't have someone from the Desktop team dedicated to uploading Firefox translations, could these uploads be part of the packaging process?
- If we want to use the dev mode in po2xpi we should document the process
- Is po2xpi working properly? Are there any major bugs that need fixing?
- Usage of localized search engines.
- We should find out whether there are trademark issues in using translations that have not yet been submitted upstream

Wishlist items:
1) Experiment shipping translations as distribution bundles rather than extensions, so they stop cluttering the addons-manager
2) We should have a wiki summarizing the main Gecko API changes (ie, XPCOM component registration changes, removed interfaces etc), and maybe some examples for porting too

* Overview of languages where translations are present in Launchpad, but not upstream (see purple bars)
  * https://translations.launchpad.net/ubuntu/maverick/+source/firefox

* We rely on and encourage translation teams to upstream those translations themselves:
  * https://wiki.ubuntu.com/Translations/KnowledgeBase/Firefox

* Firefox Sync client side decryption demo
  - article: http://arstechnica.com/open-source/guides/2010/10/ars-examines-chrome-and-firefox-bookmark-sync-protocols.ars
  - code: http://hg.mozilla.org/labs/weaveweb/file/tip/workers/

Work items for natty-alpha-1:
[chrisccoulson] Drop abrowser from firefox source: DONE
[chrisccoulson] Port moz-gnome-pm to Firefox 4: DONE
[chrisccoulson] Copy some of the firefox packaging changes to xulrunner: DONE
[chrisccoulson] Review current Firefox patchset: DONE
[chrisccoulson] Rewrite launcher script to not use the slow upstream launcher scripts: DONE
[chrisccoulson] Provide a more useful and flexible profile migration tool, to avoid having to modify this for every new version: DONE
[chrisccoulson] Port ubufox to Firefox 4: DONE
[chrisccoulson] Upload Firefox 4: DONE

Work Items for natty-alpha-2:
[chrisccoulson] Port Firefox 4 to GSettings: DONE
[chrisccoulson] Update gjs to xulrunner 2.0: DONE
[chrisccoulson] drop weave after Firefox 4 is in the archive: DONE
[chrisccoulson] Update fennec to xulrunner 2.0: DONE

Work Items for natty-alpha-3:
[chrisccoulson] Investigate changing translations from addons to distribution bundles: DONE
[chrisccoulson] Review extension list in archive to see what can be pruned: DONE
[chrisccoulson] Investigate shipping unpacked translations: DONE
[micahg] Find Demo of Client side decryption of Firefox Sync: DONE
[chrisccoulson] prepare xulrunner-2.0: DONE
[chrisccoulson] Update conkeror to xulrunner 2.0: DONE
[micahg] Update gnome-chemistry-utils to xulrunner 2.0: DONE

Work Items:
[chrisccoulson] Update swt-gtk to xulrunner-2.0 or port to webkit: DONE
[micahg] Drop adblock-plus: DONE
[micahg] Drop all-in-one-sidebar: DONE
[chrisccoulson] Update bindwood to xulrunner 2.0: DONE
[micahg] Drop bugmail-extension: DONE
[micahg] Update chmsee to xulrunner 2.0: DONE
[chrisccoulson] Update deejayd to xulrunner 2.0: DONE
[micahg] Drop downloadstatusbar: DONE
[chrisccoulson] Update edbrowse to xulrunner 2.0: DONE
[micahg] Drop firebug: DONE
[micahg] Drop flashblock: DONE
[micahg] Drop flashgot: DONE
[micahg] Update gnome-shell to xulrunner 2.0: POSTPONED
[chrisccoulson] Update gnome-web-photo to xulrunner 2.0: DONE
[chrisccoulson] Update google-gadgets to xulrunner 2.0: POSTPONED
[micahg] Drop greasemonkey: DONE
[chrisccoulson] Update gxine to xulrunner 2.0: DONE
[chrisccoulson] Update instantbird to xulrunner 2.0: DONE
[chrisccoulson] Update mongodb to xulrunner 2.0: DONE
[chrisccoulson] Update moon to xulrunner 2.0: DONE
[micahg] Drop mozgest: DONE
[chrisccoulson] Update mozplugger to Firefox 4: DONE
[micahg] Drop notify-extension: DONE
[chrisccoulson] Drop prism (dead upstream): DONE
[micahg] Drop pwdhash: DONE
[chrisccoulson] Update vlc to xulrunner 2.0: DONE
[micahg] Drop webdeveloper: DONE
[dmitrij.ledkov] Update xiphos to xulrunner 2.0: DONE

Work items (ubuntu-11.04-beta-2):
[chrisccoulson] Update webfav to Firefox 4: DONE
[mozillateam] Drop libjdic-java from archive: DONE
[chrisccoulson] Update mozilla-devscripts to support unpacked extensions: DROPPED
[chrisccoulson] Figure out how to provide system-wide settings in /etc in the new world: DONE
[mozillateam] Drop libgtk2-mozembed-perl (no rdepends): DONE
[mozillateam] Update libjavascript-perl to xulrunner 2.0, or drop it from the archive (FTBFS, no rdepends): DONE
[mozillateam] Drop ubuntu-it-menu (no rdepends): DONE

Work items (ubuntu-11.04):
[lfaraone] Update sugar-firefox-activity to Firefox 4: POSTPONED
[dpm] Talk to Mozilla people about using user provided translations from Launchpad: POSTPONED
[mozillateam] Update eclipse to 3.6 (webkit), disable internal web browser and port remainder to xulrunner-2.0, or drop from archive: POSTPONED

pitti, 2011-11-05: Looks fine, approved. However, perhaps we should do some more aggressive removal of packaged extensions?

chrisccoulson, 2011-02-21, not spending any more time on google-gadgets. I've opened a bug report and attached my current work there (https://launchpad.net/bugs/722611). If nobody picks it up, we kill it.

chrisccoulson, 2011-10-05: Closing as complete now. All postponed items are either complete or obsolete after the removal of xulrunner in another blueprint

(?)

Work Items