• Skip to main content
  • Select language
  • Skip to search
MDN Web Docs
  • Technologies
    • HTML
    • CSS
    • JavaScript
    • Graphics
    • HTTP
    • APIs / DOM
    • WebExtensions
    • MathML
  • References & Guides
    • Learn web development
    • Tutorials
    • References
    • Developer Guides
    • Accessibility
    • Game development
    • ...more docs
B2G OS
  1. MDN
  2. Archive of obsolete content
  3. B2G OS
  4. Firefox OS security
  5. Installing and updating applications

Installing and updating applications

In This Article
  1. Implementation overview
    1. App categories
    2. Assumptions about users
    3. Technical design parameters
    4. Developer considerations
  2. User experience
    1. Design principles
    2. Update types

This article serves as a guide to the application update process on Firefox OS.

Implementation overview

App categories

There are three basic categories of applications that are updated using this mechanism:

Core applications
The core applications (those that are shipped as part of the base Firefox OS, such as Dialer) are packaged, certified, pre-installed, and non-removable. These are only updated during a full system upgrade or an update of the Gonk and Gaia levels.
User-installed applications
Applications installed by the user are either packaged or hosted. The update policy for these is the primary topic of this article.
Pre-installed third-party apps
Apps that are pre-installed by the carrier or vendor, but are not part of the core operating system platform, are updated subject to the same rules and guidelines as user-installed applications.

Assumptions about users

For at least early versions of Firefox OS, the following assumptions are made about users:

  • Data transfer is slow, expensive, and intentionally constrained; in other words, we assume that the user has a slow data connection and a limited amount of traffic permitted each month.
  • We assume that the user has little or no access to WiFi; most updates will be performed over their cellular data connection.
  • Devices are rarely roaming.
  • Users keep their data service disabled by default, enabling it only to complete certain transactions.
  • Users keep and use multiple SIM cards.

These are all common user conditions in many countries, so they're fair assumptions to make. Our goal is to try to optimize the updating experience for people for which these apply. These assumptions generally won't negatively impact users that have cheap access to fast WiFi.

Technical design parameters

This section covers a few design principles for the implementation of application updates in Firefox OS:

  • For now, the device will periodically poll the Marketplace for updates; we will later evaluate the possibility of automatically pushing updates.
  • The Marketplace will know the current version of each app.
  • Updates can be downloaded and installed while the current version of the app is open with a low level of risk that this will break the currently-running app.

Developer considerations

There are a couple of considerations for developers to take note or, in regard to the application update model:

  • Web developers are used to users always being on the latest version of their site; keeping apps up-to-date emulates this model.
  • Security is also improved when as many users as possible are kept up-to-date.

User experience

Design principles

In order to have the best user experience possible in regard to application updating, a few core principles will be kept in mind:

  • Updates should minimize impact to the user; don't interrupt the user any more than necessary, don't adversely impact their connection speed, and so forth.
  • Don't charge the user to update their apps.
  • Minimize the consequences of failed updates.
  • Support backward compatibility for users who can't update their apps, or aren't able to update them often.
  • Avoid presenting users with unnecessary technical details.

Update types

There are three basic types of update:

Manual: individual
A user-initiated update of a single application
Manual: batch
A user-initiated update of multiple applications at once
Silent
A background, automated update

Document Tags and Contributors

Tags: 
  • Apps
  • Firefox OS
  • Guide
  • Installing
  • Updating
 Contributors to this page: chrisdavidmills, kscarfone, Sheppy
 Last updated by: chrisdavidmills, Feb 27, 2017, 2:06:55 AM
See also
  1. Build and install
    1. Build and install overview
    2. B2G OS build process summary
    3. Build prerequisites
    4. Preparing for your first build
    5. Building B2G OS
    6. B2G installer add-on
    7. Building B2G OS for Flame on Mac OS X
    8. Choosing how to run Gaia or B2G OS
    9. Compatible Devices
    10. Installing B2G OS on a mobile device
    11. Creating and applying B2G OS update packages
    12. Building and installing FOTA community builds
    13. B2G build variables reference sheet
  2. Porting B2G OS
    1. Porting overview
    2. Porting basics
    3. Porting on CyanogenMod
  3. Developing Gaia
    1. Developing Gaia overview
    2. Running the Gaia codebase
    3. Run Gaia on desktop using Mulet
    4. Understanding the Gaia codebase
    5. Making Gaia code changes
    6. Testing Gaia code changes
    7. Submitting a Gaia patch
    8. Gaia build system primer
    9. Different ways to run Gaia
    10. Make options reference
    11. Gaia tools reference
  4. B2G OS APIs