Mobile/Powersaving

From MozillaWiki
Jump to: navigation, search

Overview

On mobile devices we want to use the least amount of power, so the device's battery will last as long as possible. Users will likely notice what browsers are better in this and prefer them.

Metrics

Ideas

OS-level hinting

Different OSes have different application lifecycles. Depending on application states, we might want to do certain things. Information on different OSes is tracked here.

OS-level process control

The 'nuclear option': Use OS-level operations to make processes use low CPU % when they should. On Linux this can be done with SIG_STOP, SIG_CONT (see e.g. cpulimit). Note that we are **not** completely freezing the process, that would be too bug-prone.

Tracked in bug 568054

Uses:

  • Force plugins to use low CPU % (Flash etc.)
  • Throttle all tabs when battery is low (kind of like laptops dim their monitors on low battery).
    • User-controllable speed setting, to save power by throttling?

Availability: Probably Meego. Android lacks it in the Java API (but other signals are present, so perhaps it will be added), perhaps using the NDK it is possible though?

Benefits: Straightforward, simple to implement, guarantees the best results.

Status: Working proof of concept on desktop and on N900 for suspending and/or throttling the content process as desired.

Firefox-level control

A more messy option: Add separate options throughout our codebase to allow things to be temporarily frozen - JavaScript, animations, plugins, etc. etc.

Platform-specific control

  • On Android, processes have a lifecycle. We currently pause the main thread - but no others - when we get OnPause.
    • Should we do more in OnStop?
  • Need to investigate other OSes

Tests

Bugs

  • bug 446418 + dependencies - Investigate power management issues
  • bug 567339 - Excessive wake-ups after visiting start page