Source Project Of Mozilla Firefox Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Abstract-This project is part of the ongoing Open Web Applications effort led by Mozilla[1] to liberate users from the closed, locked apps and app stores. Open Web Applications bring the power and the freedom of the web to desktops, tablets, and cellphones. The objective of this project is to implement an open web application for editing rich text documents.

Keywords: web app, open source, documents, repository, IndexedDB


In modern world, the phrase 'Using a computer' has become equivalent t 'Using an internet'. Today many people prefer web applications to the dedicated desktop softwares. The couple of examples where this migration is happening are chatting with friends, shopping online, listening music, checking emails and many more. Since the behavior of people is changing, the tools on the computer in which the behaviors are expressed needs to be changed as well. The void that exists between the traditional desktop softwares and the web applications is what has motivated Mozilla to launch a new experiment of what is called as Open Web Apps (OWA).

The open Web is a great platform for rich applications. It would be even better if it had additional capabilities to ease discovery, acquisition, installation and use of apps, while also enabling monetization for developers. We designed and built a prototype of a system for open Web apps: Apps built using HTML/CSS/JavaScript that work both on computers and mobile phones, have many of the characteristics that users find compelling about native apps and provide developers with open and flexible distribution options.



These new types of applications that we envision can be defined by the following factors.

Integrable: They provide the rich experience and the convenience of desktop applications but preserve the web special features as well.

They are Discoverable.


Built from Standard Web Technologies like HTML, CSS and JavaScript.


The defining features of Open Web applications are as follows.

Easy to Launch: Open Web apps are always within at arm's reach and super easy to launch.

Free or Paid: They are free or paid depending on the decision of the developer and the organization.

Platform Integration: They integrate better with the underlying platform than traditional web apps.

Desktop and Mobile: They work efficiently in both desktop and mobile devices.

Cross Browser: Their working is not limited to any specific browser. They can work in any browser which supports HTML5, CSS and JavaScript.

Open Distribution: They can be distributed by developers to recruit users without any gatekeepers. Also they can be distributed to potentially competing online stores as well.


The prudent typical and the technical view of the system which is proposed by Mozilla is as follows.

Applications are developed by anyone using standard web technologies. These applications appear to users in kind of lists or thumbnails (Fig. 1)

Fig 1. Applications developed

Users are offered these applications through the application stores or by the developers themselves.(Refer Fig 2.)

Fig 2. User is offered to install application

When these apps are installed or purchased, they are stored in repositories which are a client side collection of installed applications. (Refer Fig3.)

Fig 3. Repository at client side

Along with this facility, the browser support may provide the best of the experience to the user.

To fill the gap, Mozilla came up with the concept of "Application Dashboard".

Application Dashboard is a prototype built completely using HTML5 and made available to the users that can be used to manage their applications. It is currently functional and provides the following services.

View the particular app.

Update the app.

Delete if no more required.

Fig 4. Application Dashboard

Key Factors used in Dashboard are:


X-Document Messaging.

Local Storage of Applications

X-Document Messaging is used by server to send message to the repositories that may include updates or other facilities.

Hence to Summarize the Open Web Apps[2]:

Are built using HTML, CSS and JavaScript.

Can be "installed" to a dashboard within your mobile or desktop Web browser, or to your native OS desktop or mobile home screen.

Work in all modern Web browsers, while enabling each browser to compete on app presentation, organization and management user interfaces.

Support paid apps by means of an authorization model that uses existing identity systems like OpenID.

Support portable purchases: An app purchased for one browser works in other browsers, and across multiple desktop and mobile platforms without repurchase.

Can request access to one or more advanced and/or privacy-sensitive capabilities that they would like access to (like geo-location) which the system will mediate, giving the user the ability to opt-in to them if desired.

Can be distributed by developers directly to users without any gatekeeper, and distributed through multiple stores, allowing stores to compete on customer service, price, policies, app discoverability, ratings, reviews and other attributes.

Can receive notifications from the cloud.

Support deep search across apps: Apps can implement an interface that enables the app container (generally the Web browser) to provide the user with a cross-app search experience that links deeply into any app that can satisfy the search.

Design Features And Implementation

The Open Web Application will be able to edit the rich text documents in the browser itself, without the need of a word processor being installed on the user's machine.

Design Features

Local Storage of User Data

All the data and documents of the user will be stored locally.

Export to Standard Formats

The user will be able to export the edited documents into standard formats like .doc, .rtf.

No Internet Connection Required

The application will not require an internet connection during its usage.

Easy to install

The user will only have to install the application from the internet similar to a browser plug-in.

Saves HDD Space

No need to install a word processor which occupies a condsiderable amount of HDD space, instead a one-time installation of this application would suffice the purpose and also occupy minimal space on the HDD.


The application will run on devices like desktops, tablets, laptops and mobile phones.


The Open Web Application will be completely designed using standard web technologies like HTML, CSS and JavaScript.

The coding style and conventions followed are as per the documentation at the Mozilla Developer Network[4].The source code of this application can be found our Github repository named richtextdoc_edit_OWA.


Before proceeding with the implementation, we need to create a set of issues which act as to-do list for the entire project.

The issues are :

Pack Content Editable Demo as an Open Web App: We began with the simple contentEditable feature of HTML5. The application, when opened initially in a browser supporting HTML5, CSS and JavaScript, asks for the installation for offline usage purposes.

Adapt to all screen sizes: Since OWA is not limited only to desktop systems, it must adjust itself to all the devices and the editor should occupy the entire screen.

Import from HTML: By definition, the contentEditable editor let users edit HTML. Using the recent File API, users can open a HTML file in the editor.

Export to HTML: This feature enables exporting the contents of the editor as a html file.

Import from URI : This feature let users open a remote file in the editor.

Load from/Save to database : The editor should be able to save the current document as HTML to a local database (either IndexedDB or LocalStorage) and to read documents as HTML back from the local database.

Auto-save : The current document should be auto-saved to a local database regularly.

The issues which have been implemented are :

Pack Content Editable Demo as an Open Web App. A manifest file has been added that contains information that a Web browser needs to interact with an app. A manifest is one of the key things that distinguish an Open Web App from a website. It is a JSON file with a name and description for the app, and it can also contain the origin of the app, icons, and the permissions required by the app, among other things[5].

Import from HTML. Allows the user to browse to the location of the HTML file and open it in the editor. The formatting characteristics of the text in the original file remain unaltered. Also simple text files can be opened as well.

Adapt to all Screen Sizes.

Load from/Save to database.

IndexedDB Concept

IndexedDB is an API for storage of structured data at the client side. It uses indices to store and retrieve objects in a database. IndexedDB provides separate API's for Asynchronous access and Synchronous access. The Synchronous API is intended for use only inside Web Workers and has not yet been implemented by the major browsers. The Asynchronous API is the one that is normally used.

IndexedDB is an alternative to WebSQL Database, which has been deprecated by the W3C. In IndexedDB, a database may contain one or more uniquely named Object Stores. The Object Store stores the records in the form of key-value pairs[6].


In the OWA, we are using the indexedDB to store and retrieve documents of the user.

Database Details:

Database: documents

ObjectStore: doc

Each entry is an object with fields - timestamp (number, which serves as key), filename (string, the document name), text (string, the contents of the document, generally in html).

Structure of Database Used:

Key Path: timestamp

Field (text): Document Name

Field (text): Document Contents [Generally in HTML]

The remaining issues would be implemented in near future.

Future Prospects

The Open Web Application will be available on the Mozilla

Market Place[7] for the users to download. If the application

is well received by the users, then it may be integrated with the Firefox OS which is a mobile OS to be launched by Mozilla.