summaryrefslogtreecommitdiffstats
path: root/browser/docs/overview.rst
diff options
context:
space:
mode:
Diffstat (limited to 'browser/docs/overview.rst')
-rw-r--r--browser/docs/overview.rst105
1 files changed, 105 insertions, 0 deletions
diff --git a/browser/docs/overview.rst b/browser/docs/overview.rst
new file mode 100644
index 0000000000..26f61ff513
--- /dev/null
+++ b/browser/docs/overview.rst
@@ -0,0 +1,105 @@
+Firefox for Desktop
+===================
+
+Desktop architecture
+--------------------
+
+One of the keys to understanding how Firefox is architected is to know that Gecko is used to render
+both web content as well as the UI of the browser. This means that, to a large extent, the UI of
+Firefox is made using web technologies like HTML, CSS, and JavaScript. For example, the document
+``chrome://browser/content/browser.xhtml`` is the markup for a single Firefox browser window. You
+can think of it almost like index.html for a webpage.
+
+The decision to use Gecko for rendering the UI was made during an era when HTML was not yet
+expressive enough or sufficient to build desktop UIs. A different markup language,
+`XUL <https://en.wikipedia.org/wiki/XUL>`_, was developed for that purpose instead, which Gecko also
+knows how to interpret. Since that time, HTML and CSS has evolved to the point where XUL is not
+strictly necessary for most use-cases. Where possible, we have been gradually migrating our UI to
+use less XUL and more standard HTML and CSS.
+
+Reusable UI Widgets
+-------------------
+
+Many of the UI widgets in use in the user interface are built as web components that can be reused.
+
+:ref:`Read more <Reusable UI widgets>`
+
+Tabbrowser
+----------
+
+The tabbrowser component manages the tabs in a browser window.
+
+:ref:`Read more <tabbrowser>`
+
+Address Bar
+-----------
+
+The address bar (varyingly also referred to as the Awesome Bar, or Quantum Bar) handles users
+entering web addresses including a popup with suggestions from various sources including history,
+bookmarks and search engines.
+
+:ref:`Read more <Address Bar>`
+
+Search
+------
+
+The search service manages the list of search engines available in the address bar.
+
+:ref:`Read more <Search>`
+
+Places
+------
+
+The places component includes the database that stores history and bookmarks as well as a set of UI
+components that present those to the user.
+
+:ref:`Read more <Places>`
+
+Firefox Sync and Application Services
+-------------------------------------
+
+Application services includes the sync engines and Firefox Accounts integration.
+
+:ref:`Read more <Services>`
+
+Developer Tools
+---------------
+
+The developer tools support web developers when building webpages but as the Firefox UI is itself
+built using web technologies it is also possible to use the developer tools to debug the Firefox UI.
+
+:ref:`Read more <Firefox DevTools Contributor Docs>`
+
+Browser Toolbox
+###############
+
+The Browser Toolbox is a way to launch the developer tools in a separate process so that they can be
+used to debug the main browser UI.
+
+:ref:`Read more <Browser Toolbox>`
+
+Profiler
+########
+
+The Firefox Profiler is the way to measure the performance of your code. Go to
+`profiler.firefox.com <https://profiler.firefox.com>`__ to enable the button in Firefox and record a
+performance profile. These profiles can be uploaded and shared. It can identify slow parts of the
+code, and reveal the underlying behavior of how code runs.
+
+Installer
+---------
+
+The Windows installer for Firefox is built with NSIS. There are currently no installers for other
+operating systems.
+
+:ref:`Read more <Installer>`
+
+Application Update
+------------------
+
+Application Update is responsible for requesting available updates from the update servers,
+downloading them, verifying their integrity and then ultimately installing them. A binary patch tool
+(bsdiff) is used to reduce the size of update files and update files are delivered in the
+bespoke mar (Mozilla ARchive) format.
+
+:ref:`Read more <Application Update>`