tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

overview.rst (3546B)


      1 Firefox for Desktop
      2 ===================
      3 
      4 Desktop architecture
      5 --------------------
      6 
      7 One of the keys to understanding how Firefox is architected is to know that Gecko is used to render
      8 both web content as well as the UI of the browser. This means that, to a large extent, the UI of
      9 Firefox is made using web technologies like HTML, CSS, and JavaScript. For example, the document
     10 ``chrome://browser/content/browser.xhtml`` is the markup for a single Firefox browser window. You
     11 can think of it almost like index.html for a webpage.
     12 
     13 The decision to use Gecko for rendering the UI was made during an era when HTML was not yet
     14 expressive enough or sufficient to build desktop UIs. A different markup language,
     15 `XUL <https://en.wikipedia.org/wiki/XUL>`_, was developed for that purpose instead, which Gecko also
     16 knows how to interpret. Since that time, HTML and CSS has evolved to the point where XUL is not
     17 strictly necessary for most use-cases. Where possible, we have been gradually migrating our UI to
     18 use less XUL and more standard HTML and CSS.
     19 
     20 Reusable UI Widgets
     21 -------------------
     22 
     23 Many of the UI widgets in use in the user interface are built as web components that can be reused.
     24 
     25 :ref:`Read more <Reusable UI widgets>`
     26 
     27 Tabbrowser
     28 ----------
     29 
     30 The tabbrowser component manages the tabs in a browser window.
     31 
     32 :ref:`Read more <tabbrowser>`
     33 
     34 Address Bar
     35 -----------
     36 
     37 The address bar (varyingly also referred to as the Awesome Bar, or Quantum Bar) handles users
     38 entering web addresses including a popup with suggestions from various sources including history,
     39 bookmarks and search engines.
     40 
     41 :ref:`Read more <Address Bar>`
     42 
     43 Search
     44 ------
     45 
     46 The search service manages the list of search engines available in the address bar.
     47 
     48 :ref:`Read more <Search>`
     49 
     50 Places
     51 ------
     52 
     53 The places component includes the database that stores history and bookmarks as well as a set of UI
     54 components that present those to the user.
     55 
     56 :ref:`Read more <Places>`
     57 
     58 Firefox Sync and Application Services
     59 -------------------------------------
     60 
     61 Application services includes the sync engines and Firefox Accounts integration.
     62 
     63 :ref:`Read more <Services>`
     64 
     65 Developer Tools
     66 ---------------
     67 
     68 The developer tools support web developers when building webpages but as the Firefox UI is itself
     69 built using web technologies it is also possible to use the developer tools to debug the Firefox UI.
     70 
     71 :ref:`Read more <Firefox DevTools Contributor Docs>`
     72 
     73 Browser Toolbox
     74 ###############
     75 
     76 The Browser Toolbox is a way to launch the developer tools in a separate process so that they can be
     77 used to debug the main browser UI.
     78 
     79 :ref:`Read more <Browser Toolbox>`
     80 
     81 Profiler
     82 ########
     83 
     84 The Firefox Profiler is the way to measure the performance of your code. Go to
     85 `profiler.firefox.com <https://profiler.firefox.com>`__ to enable the button in Firefox and record a
     86 performance profile. These profiles can be uploaded and shared. It can identify slow parts of the
     87 code, and reveal the underlying behavior of how code runs.
     88 
     89 Installer
     90 ---------
     91 
     92 The Windows installer for Firefox is built with NSIS. There are currently no installers for other
     93 operating systems.
     94 
     95 :ref:`Read more <Installer>`
     96 
     97 Application Update
     98 ------------------
     99 
    100 Application Update is responsible for requesting available updates from the update servers,
    101 downloading them, verifying their integrity and then ultimately installing them. A binary patch tool
    102 (bsdiff) is used to reduce the size of update files and update files are delivered in the
    103 bespoke mar (Mozilla ARchive) format.
    104 
    105 :ref:`Read more <Application Update>`