ArmLightweightBrowser

Differences between revisions 7 and 8
Revision 7 as of 2009-12-01 23:24:31
Size: 4888
Editor: pool-72-75-130-247
Comment:
Revision 8 as of 2009-12-02 00:17:00
Size: 5744
Editor: g230017189
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
 * '''Contributors''': Paul Larson, David Sugar  * '''Contributors''': Paul Larson, David Sugar, Alexander Sack
Line 10: Line 10:
Mozilla Firefox is a fairly heavy web browser and suffers from less than optimal performance on ARM due to issues such as cache size.  Lighter-weight web browsers should be investigated, and a more appropriate one should be picked as a default for ARM based releases. Standard-compliance is essential, along with support for modern browser user experiences such as tabbed browsing, form fill-in, extensions, media playback, Java support, etc. For these reasons, a consensus emerged at UDS in favor of Chromium. Mozilla Firefox is a fairly heavy web browser and suffers from less than optimal performance on ARM due to issues such as cache size. While trying to optimize the firefox performance even further this cycle, a lightweight browser that has potential to replace firefox feature for ARM based releases will be selected and evaluated. Standard-compliance is essential, along with support for modern browser user experiences such as tabbed browsing, form fill-in, extensions, media playback, Java support, etc. For these reasons, a consensus emerged at UDS in favor of Chromium.
Line 14: Line 14:
To improve the user experience, the Ubuntu Netbook Edition for ARM now offers Google Chromium as the default desktop browser. Variant A: To improve the user experience, the Ubuntu Netbook Edition for ARM now ships Google Chromium as a desktop browser. An ARM optimized firefox is still available from software center.

Variant B: firefox is still the default browser and comes with optimized performance by moving to the optimized armv7 instruction set.
Line 18: Line 20:
There are performance issues using Firefox on arm hardware. This blueprint was originally a question as well as a goal to try and find a lighter wight browser, perhaps based on webkit. There were reports about performance issues during Karmic cycle for firefox. Chromium Browser appears to be a promising candidate as it was designed from ground up with security, speed and size in mind; however, firefox will still be a major player, and hence this spec also defines actions to optimize firefox as much as possible for arm.
Line 22: Line 24:
Browsing is an essential user experience. This blueprint addresses issues which detract from that experience on small cache arm processors when using Firefox. Browsing is an essential user experience. This blueprint addresses issues which detract from that experience on small cache arm processors when using Firefox (Karmic).
Line 32: Line 34:
We will package Chromium for main and add it to the UNE seed. We will package Chromium for main and add it to the UNE seed. On top we will try to optimize firefox by making use of thumb2 and by optimizing the firefox build even further.
Line 36: Line 38:
We need to package Chromium in main and built it successfully for armv7 for Lucid. The UNE seed needs to be modified to insert Chromium in place of Firefox, and the default account skeleton needs to be changed to select chromium as the user's "default" browser in GNOME.  * We need to package Chromium in main and built it successfully for armv7 for Lucid.
 * we need to evaluate chromium and file/drive bugs upstream for issues encountered
   * ensure that as many errors in testsuite get fixed
   * ensure that we have a good runtime experience on a arm UNE desktop
   * ensure that most important plugins work (flash, totem, java, etc.)
 * Benchmark Firefox and Chromium and prepare a comparsion of both options
 * Decide whether we are comfortable to move to chromium
 * adjust the UNE seeds based on the outcome of above items.

Summary

Mozilla Firefox is a fairly heavy web browser and suffers from less than optimal performance on ARM due to issues such as cache size. While trying to optimize the firefox performance even further this cycle, a lightweight browser that has potential to replace firefox feature for ARM based releases will be selected and evaluated. Standard-compliance is essential, along with support for modern browser user experiences such as tabbed browsing, form fill-in, extensions, media playback, Java support, etc. For these reasons, a consensus emerged at UDS in favor of Chromium.

Release Note

Variant A: To improve the user experience, the Ubuntu Netbook Edition for ARM now ships Google Chromium as a desktop browser. An ARM optimized firefox is still available from software center.

Variant B: firefox is still the default browser and comes with optimized performance by moving to the optimized armv7 instruction set.

Rationale

There were reports about performance issues during Karmic cycle for firefox. Chromium Browser appears to be a promising candidate as it was designed from ground up with security, speed and size in mind; however, firefox will still be a major player, and hence this spec also defines actions to optimize firefox as much as possible for arm.

User stories

Browsing is an essential user experience. This blueprint addresses issues which detract from that experience on small cache arm processors when using Firefox (Karmic).

Assumptions

That we can find an alternative that will still satisfy user needs including access to media (plugins), Java, flash (as it becomes available for Arm), as well as being sufficiently standards-compliant and meeting user expectations of a modern web browser.

That the Firefox user experience is too poor on ARM and cannot be easily fixed.

Design

We will package Chromium for main and add it to the UNE seed. On top we will try to optimize firefox by making use of thumb2 and by optimizing the firefox build even further.

Implementation

  • We need to package Chromium in main and built it successfully for armv7 for Lucid.
  • we need to evaluate chromium and file/drive bugs upstream for issues encountered
    • ensure that as many errors in testsuite get fixed
    • ensure that we have a good runtime experience on a arm UNE desktop
    • ensure that most important plugins work (flash, totem, java, etc.)
  • Benchmark Firefox and Chromium and prepare a comparsion of both options
  • Decide whether we are comfortable to move to chromium
  • adjust the UNE seeds based on the outcome of above items.

UI Changes

Not applicable.

Code Changes

There may be a patch needed for armv7. If so I am sure upstream adoption will not be a problem.

Effort

A few days may be spent optimizing and re-building Firefox.

This may require up to several weeks to build, test, then commit changes to make this happen.

Risks

After optimizing Firefox and building Chromium we may not find as great a difference in user experience as anticipated. Worst case we simply continue using Firefox.

Migration

The user can export bookmarks from Firefox to migrate to Chromium. Stored account passwords and other aspects cannot be migrated easy, however.

Test/Demo Plan

We need to test Chromium on Arm side by side with Firefox to see how well this solves the performance issues we are addressing before committing to change the seed.

Unresolved issues

There is no UbuntuOne bookmark integration for Chromium at this time.

BoF agenda and discussion

From UDS:

Why does firefox perform poorly on ARM and what should we do about it?

  • small cache on arm processors
  • memory usage
  • availability of plugins
  • usability (some plugins do not match certain environments such as touchscreens)

Can firefox be optimized for Ubuntu and/or ARM enough to compensate for performance issues?

  • Firefox replacements must support (in order of priority):
    • quick on ARM
    • UNR/touchscreen/small screen/scrolling
    • Good/Fast support for JavaScript

    • support for Flash
    • good extension support (unless it causes more problems)
    • Java

Considerations

  • memory usage and performance, what happens when opening lots of instances, lots of tabs, etc
  • Responsive upstream

Issues

  • which webkit, google vs ubuntu libwebkit?

Review

  • midori frustrating to use at times
  • epiphany limited but works, functional
    • uses webkit
    • "works" but limited by comparison to firefox
  • Konquerer - khtml, huge kde dependencies
  • Chromium
    • different user experience from firefox
    • is fast & gtk based

    • uses considerably less memory
    • Theming issues

Notes

  • can we improve/optimize firefox/xulrunner? Is there significant improvement gains even possible?
    • opinion not significant opportunity

ACTIONS

  • Determine the status of Java applets [and JIT?] on ARM Cortex-A8
  • Chromium on Arm performance
  • Chromium build issues on armv7
  • Mobile team to initially package Chromium
  • investigate with desktop team and security team who will own it, and how to handle updates
  • upload to archive (Michael Casadevall)
  • investigate test suite on arm
  • benchmarking over multiple browsers over all supported platforms


CategorySpec

Specs/ArmLightweightBrowser (last edited 2010-01-29 10:23:45 by g224090217)