Table of content
1. Business models
4. User interface
5. Privacy and security
Geliyoo Web Browser Project Documentation
We developed custom web browser for geliyoo.com and this basic flow displays its overview.
Phases of Development:
Browser Development follows the following phases of development :
1. Component Selection: Select the components that are useful for the implementation of the
2. System Design : Design architecture of the system that will followed by development in which
way browser will work
3. Features Development: Configure the selected components as per our requirements and
development of core features of web browser.
4. Development : We will develop a web browser which will work with the help of select
5. Future Development : The tasks that still needs development are mentioned here.
Mobile browser development
Other Os browser development
The ways that web browser makers fund their development costs has changed over time. The first web
browser, WorldWideWeb, was a research project. Netscape Navigator was originally sold commercially,
as was Opera; Netscape no longer exists and has been replaced with the free Firefox, while Opera is now
downloadable free of charge.
Internet Explorer, on the other hand, was from its first release always included with the Windows
operating system (and furthermore was downloadable for no extra charge), and therefore it was funded
partly by the sales of Windows to computer manufacturers and direct to users. Internet Explorer also
used to be available for the Mac. It is likely that releasing IE for the Mac was part of Microsoft's overall
strategy to fight threats to its quasi-monopoly platform dominance - threats such as web standards and
Java - by making some web developers, or at least their managers, assume that there was "no need" to
develop for anything other than Internet Explorer (an assumption that later proved to be badly
mistaken, with the rise of Firefox and Chrome). In this respect, IE may have contributed to Windows and
Microsoft applications sales in another way, through tricking organizations into inadvertent "lock-in"
into the Microsoft platform.
Safari and Mobile Safari were likewise always included with OS X and iOS respectively, so, similarly, they
were originally funded by sales of Apple computers and mobile devices, and formed part of the overall
Apple experience to customers.
Today, most commercial web browsers are paid by search engine companies to make the search engine
their default search engine (the most valuable prize) or to include them as another option. For example,
Google pays Mozilla, the maker of Firefox, to make Google Search the default search engine in Firefox.
Mozilla makes so much money from this deal that it does not need to charge users for Firefox. The
reason search engine companies are willing to pay for such deals is that such decisions drive traffic their
way, increasing ad revenue. As of 2013, Google's search ad revenue is still a very important source of
revenue. Google probably does not "pay itself" to make Google Search the default search engine in
Google Chrome, but regardless, it derives ad revenue from that choice, so that indirectly funds the
development of Google Chrome.
The primary purpose of a web browser is to bring information resources to the user ("retrieval" or
"fetching"), allowing them to view the information ("display", "rendering"), and then access other
information ("navigation", "following links").
This process begins when the user inputs a Uniform Resource Locator (URL), for example
http://geliyoo.com /, into the browser. The prefix of the URL, the Uniform Resource Identifier or URI,
determines how the URL will be interpreted. The most commonly used kind of URI starts with http: and
identifies a resource to be retrieved over the Hypertext Transfer Protocol (HTTP). Many browsers
also support a variety of other prefixes, such as https: for HTTPS, ftp: for the File Transfer Protocol, and
file: for local files. Prefixes that the web browser cannot directly handle are often handed off to another
application entirely. For example, mailto: URIs are usually passed to the user's default e-mail application,
and news: URIs are passed to the user's default newsgroup reader.
In the case of http, https, file, and others, once the resource has been retrieved the web browser will
display it. HTML and associated content (image files, formatting information such as CSS, etc.) is passed
to the browser's layout engine to be transformed from markup to an interactive document, a process
known as "rendering". Aside from HTML, web browsers can generally display any kind of content that
can be part of a web page. Most browsers can display images, audio, video, and XML files, and often
have plug-ins to support Flash applications and Java applets. Upon encountering a file of an unsupported
type or a file that is set up to be downloaded rather than displayed, the browser prompts the user to
save the file to disk.
Information resources may contain hyperlinks to other information resources. Each link contains the URI
of a resource to go to. When a link is clicked, the browser navigates to the resource indicated by the
link's target URI, and the process of bringing content to the user begins again.
Gecko (layout engine)
Gecko is a free and open source layout engine used in many applications developed by Mozilla
Foundation and the Mozilla Corporation (notably the Firefox web browser including its mobile version
and their e-mail client Thunderbird), as well as in many other open source software projects.
It is designed to support open Internet standards, and is used by different applications to display web
pages and, in some cases, an application's user interface itself (by rendering XUL). Gecko offers a rich
programming API that makes it suitable for a wide variety of roles in Internet-enabled applications, such
as web browsers, content presentation, and client/server.
Gecko is written in C++ and is cross-platform, and runs on various operating systems including BSDs,
Linux, OS X, Solaris, OS/2, AIX, OpenVMS, and Microsoft Windows. Its development is now overseen by
the Mozilla Foundation and is licensed under version 2 of the Mozilla Public License.
Gecko Render Engine popularity
From the outset, Gecko was designed to support open Internet standards. Some of the standards Gecko
CSS Level 2.1 and 3
This specification defines Cascading Style Sheets, level 2 revision 1 (CSS 2.1). CSS 2.1 is a style
sheet language that allows authors and users to attach style (e.g., fonts and spacing) to
structured documents (e.g., HTML documents and XML applications). By separating the
presentation style of documents from the content of documents, CSS 2.1 simplifies Web
authoring and site maintenance.
Selectors are patterns that match against elements in a tree, and as such form one of several
technologies that can be used to select nodes in an XML document. Selectors have been
optimized for use with HTML and XML, and are designed to be usable in performance-critical
CSS (Cascading Style Sheets) is a language for describing the rendering of HTML and XML
documents on screen, on paper, in speech, etc. CSS uses Selectors for binding style properties to
elements in the document.
DOM Level 1 and 2 and 3
The Document Object Model is a platform- and language-neutral interface that will allow
programs and scripts to dynamically access and update the content, structure and style of
documents. The document can be further processed and the results of that processing can be
incorporated back into the presented page. This is an overview of DOM-related materials here
at W3C and around the web.
"Dynamic HTML" is a term used by some vendors to describe the combination of HTML, style
sheets and scripts that allows documents to be animated. The W3C has received several
submissions from members companies on the way in which the object model of HTML
documents should be exposed to scripts. These submissions do not propose any new HTML tags
or style sheet technology. The W3C DOM Activity is working hard to make sure interoperable
and scripting-language neutral solutions are agreed upon.
The root element of a Document object is that Document's first element child, if any. If it does
not have one then the Document has no root element.
The term root element, when not referring to a Document object's root element, means the
furthest ancestor element node of whatever node is being discussed, or the node itself if it has
no ancestors. When the node is a part of the document, then the node's root element is indeed
the document's root element; however, if the node is not currently part of the document tree,
the root element will be an orphaned node.
When an element's root element is the root element of a Document object, it is said to be in a
Document. An element is said to have been inserted into a document when its root element
changes and is now the document's root element. Analogously, an element is said to have been
removed from a document when its root element changes from being the document's root
element to being another element.
A node's home subtree is the subtree rooted at that node's root element. When a node is in a
Document, its home subtree is that Document's tree.
The Document of a Node (such as an element) is the Document that the Node's owner
Document IDL attribute returns. When a Node is in a Document then that Document is always
the Node's Document, and the Node's owner Document IDL attribute thus always returns that
The Document of a content attribute is the Document of the attribute's element.
The term tree order means a pre-order, depth-first traversal of DOM nodes involved (through
the parent Node/child Nodes relationship).
When it is stated that some element or attribute is ignored, or treated as some other value, or
handled as if it was something else, this refers only to the processing of the node after it is in the
DOM. A user agent must not mutate the DOM in such situations.
A content attribute is said to change value only if its new value is different than its previous
value; setting an attribute to a value it already has does not change it.
The term empty, when used of an attribute value, Text node, or string, means that the length of
the text is zero (i.e. not even containing spaces or control characters).
This specification defines the 5th major version, first minor revision of the core language of the
World Wide Web: the Hypertext Markup Language (HTML). In this version, new features
continue to be introduced to help Web application authors, new elements continue to be
introduced based on research into prevailing authoring practices, and special attention
continues to be given to defining clear conformance criteria for user agents in an effort to
This specification is divided into the following major sections:
Non-normative materials providing a context for the HTML standard
The conformance classes, algorithms, definitions, and the common underpinnings of the rest of
Semantics, structure, and APIs of HTML documents
Documents are built from elements. These elements form a tree using the DOM. This section
defines the features of this DOM, as well as introducing the features common to all elements,
and the concepts used in defining elements.
The elements of HTML
Each element has a predefined meaning, which is explained in this section. Rules for authors on
how to use the element, along with user agent requirements for how to handle each element,
are also given. This includes large signature features of HTML such as video playback and
subtitles, form controls and form submission, and a 2D graphics API known as the HTML canvas.
Loading Web pages
HTML documents do not exist in a vacuum — this section defines many of the features that
affect environments that deal with multiple pages, such as Web browsers and offline caching of
Web application APIs
This section introduces basic features for scripting of applications in HTML.
HTML documents can provide a number of mechanisms for users to interact with and modify
content, which are described in this section, such as how focus works, and drag-and-drop.
The HTML syntax / The XHTML syntax
All of these features would be for naught if they couldn't be represented in a serialized form and
sent to other people, and so these sections define the syntaxes of HTML and XHTML, along with
rules for how to parse content using those syntaxes.
This section defines the default rendering rules for Web browsers.
of web browsers, whose implementations allow client-side scripts to interact with the user,
control the browser, communicate asynchronously, and alter the document content that is
displayed.It is also being used in server-side programming, game development and the creation
of desktop and mobile applications.
Mathematical Markup Language (MathML) is an application of XML for describing mathematical
notations and capturing both its structure and content. It aims at integrating mathematical
formulae into World Wide Web pages and other documents. It is a recommendation of the W3C
math working group and part of HTML5.
Version 3 of the MathML specification was released as a W3C Recommendation on 20 October
2010. A recommendation of A MathML for CSS Profile was later released on 7 June 2011; this is
a subset of MathML suitable for CSS formatting. Another subset, Strict Content MathML,
provides a subset of content MathML with a uniform structure and is designed to be compatible
with OpenMath. Other content elements are defined in terms of a transformation to the strict
subset. New content elements include <bind> which associates bound variables (<bvar>) to
expressions, for example a summation index. The new <share> element allows structure
The development of MathML 3.0 went through a number of stages. In June 2006 the W3C
rechartered the MathML Working Group to produce a MathML 3 Recommendation until
February 2008 and in November 2008 extended the charter to April 2010. A sixth Working Draft
of the MathML 3 revision was published in June 2009. On 10 August 2010 version 3 graduated to
become a "Proposed Recommendation" rather than a draft.
RDF is a standard model for data interchange on the Web. RDF has features that facilitate data
merging even if the underlying schemas differ, and it specifically supports the evolution of schemas
over time without requiring all the data consumers to be changed.
RDF extends the linking structure of the Web to use URIs to name the relationship between things
as well as the two ends of the link (this is usually referred to as a “triple”). Using this simple model, it
allows structured and semi-structured data to be mixed, exposed, and shared across different
This linking structure forms a directed, labeled graph, where the edges represent the named link
between two resources, represented by the graph nodes. This graph view is the easiest possible
mental model for RDF and is often used in easy-to-understand visual explanations.
XForms (via an official extension)
XSLT and XPath, implemented in TransforMiiX
Gecko also partially supports SVG 1.1.
In order to support web pages designed for legacy versions of Netscape and Internet Explorer, Gecko
supports DOCTYPE switching. Documents with a modern DOCTYPE are rendered in standards
compliance mode, which follows the W3C standards strictly. Documents that have no DOCTYPE or an
older DOCTYPE are rendered in quirks mode, which emulates some of the non-standard oddities of
Netscape Communicator 4.x; however, some of the 4.x features (such as layers) are not supported.
Gecko also has limited support for some non-standard Internet Explorer features, such as the marquee
element and the document. all property (though pages explicitly testing for document. all will be told it
is not supported). While this increases compatibility with many documents designed only for Internet
Explorer, some purists argue that it harms the cause of standards evangelism.
Bookmark , History & Cookies storage by browser.
In the context of the World Wide Web, a bookmark is a Uniform Resource Identifier (URI) that is stored
for later retrieval in any of various storage formats. All modern web browsers include bookmark
In computing, the web browsing history refers to the list of web pages a user has visited recently—and
associated data such as page title and time of visit—which is recorded by web browser software as
standard for a certain period of time. Web browser software does this in order to provide the user with
a Back button and/or a History list, to go back to pages they have visited previously, rather than relying
on the user to remember where they have been on the web.
A cookie, also known as an HTTP cookie, web cookie, or browser cookie, is a small piece of data sent
from a website and stored in a user's web browser while the user is browsing that website. Every time
the user loads the website, the browser sends the cookie back to the server to notify the website of the
user's previous activity. Cookies were designed to be a reliable mechanism for websites to remember
state ful information (such as items in a shopping cart) or to record the user's browsing activity
(including clicking particular buttons, logging in, or recording which pages were visited by the user as far
back as months or years ago).
Download is the basic functionality of web browser. User can download any file from web and in geliyoo
web browser we providing download items on default page.