tor-browser

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

index.rst (4926B)


      1 ================
      2 Messaging System
      3 ================
      4 
      5 Vision
      6 ------
      7 Firefox must be an opinionated user agent that keeps folks safe, informed and
      8 effective while browsing the Web. In order to have an opinion, Firefox must
      9 have a voice.
     10 
     11 That voice will **respect the user’s attention** while surfacing contextually
     12 relevant and timely information tailored to their individual needs and choices.
     13 
     14 What does Messaging System support?
     15 -----------------------------------
     16 There are several key windows of opportunity, such as the first-run activation
     17 phase or coordinated feature releases, where Firefox engages with users.
     18 
     19 The Firefox Messaging System supports this engagement by targeting messages
     20 exactly to the users who need to see them and enables the development of new
     21 user messages that can be easily tested and deployed. It offers standard
     22 mechanisms to measure user engagement and to perform user messaging experiments
     23 with reduced effort across engineering teams and a faster delivery cycle from
     24 ideation to analysis of results.
     25 
     26 This translates to **users seeing fewer and more relevant in-product
     27 messages**, while supporting fast delivery, experimentation, and protection of
     28 our users time and attention.
     29 
     30 Messaging System Overview
     31 -------------------------
     32 At the core of the Firefox Messaging System is the Messaging System Router
     33 (called ASRouter for historical reasons). The router is a generalized Firefox
     34 component and set of conventions that provides:
     35 
     36 * Flexible and configurable routing of local or remote Messages to UI
     37  Templates. This allows new message campaigns to be started and controlled
     38  on or off-trains
     39 * Traffic Cop message sequencing and intermediation to prevent multiple
     40  messages being concurrently shown
     41 * Programmable message targeting language to show the right message to the
     42  right user at the right time
     43 * A template library of reusable Message and Notification UIs
     44 * Full compatibility with Normandy pref-flip experiments
     45 * Generalized and privacy conscious event telemetry
     46 * Flexible Frequency Capping to mitigate user message fatigue
     47 * Localized off train Messages
     48 * Powerful development/debugging/QA tools on about:asrouter
     49 
     50 Message Routing
     51 ---------------
     52 .. image:: ./message-routing-overview.png
     53    :align: center
     54    :alt: Message Routing Overview
     55 
     56 The Firefox Messaging System implements a separation-of-concerns pattern for
     57 Messages, UI Templates, and Timing/Targeting mechanisms. This allows us to
     58 maintain a high standard of security and quality while still allowing for
     59 maximum flexibility around content creation.
     60 
     61 
     62 UI Templates
     63 ------------
     64 We have built a library of reusable Notification and Message interfaces which
     65 land in the Firefox codebase and ride the trains. These templates have a
     66 defined schema according to the available design components (e.g. titles, text,
     67 icons) and access to a set of enhanced user actions such as triggering URLs,
     68 launching menus, or installing addons, which can be attached to interactive
     69 elements (such as buttons).
     70 
     71 Warning! Before reading, you should consider whether a `Messaging Experiment is relevant for your needs`__.
     72 
     73 .. __: https://docs.google.com/document/d/1S45a_nFn8QRM8gvsxCM6HHROrIQlQQl6fUlJ2j63PGI/edit
     74 
     75 Current templates include\:
     76 
     77 .. In theory, we ought to be able to use the :glob: directive here to
     78 .. automatically generate the list below. For unknown reasons, however,
     79 .. `mach doc` _sometimes_ gets confused and refuses to find patterns like
     80 .. `*.md`.
     81 .. toctree::
     82  :maxdepth: 1
     83 
     84  moments-page
     85  feature-callout
     86  contextual-feature-recommendation
     87  about-welcome
     88  infobars
     89  spotlight
     90  private-browsing
     91  multi-message
     92 
     93 Detailed Docs
     94 -------------
     95 
     96 * Explore key terms in the `Messaging System Glossary`__.
     97 
     98 .. __: ./messaging-glossary.html
     99 
    100 * Learn more about messaging experimentation through `Nimbus <https://experimenter.info/>`_ in the `Messaging System: Experimenter Onboarding`__.
    101 
    102 .. __: https://mozilla-hub.atlassian.net/wiki/spaces/FIREFOX/pages/233406786/OMC+Experimenter+Onboarding
    103 
    104 * `Messaging system schemas`_
    105 
    106 .. _Messaging system schemas: https://firefox-source-docs.mozilla.org/toolkit/components/messaging-system/docs/index.html#messaging-system-schemas
    107 
    108 * `User actions`_
    109 
    110 .. _User actions: https://firefox-source-docs.mozilla.org/toolkit/components/messaging-system/docs/SpecialMessageActionSchemas/index.html
    111 
    112 * `Triggers`_
    113 
    114 .. _Triggers: https://firefox-source-docs.mozilla.org/toolkit/components/messaging-system/docs/TriggerActionSchemas/index.html
    115 
    116 .. In theory, we ought to be able to use the :glob: directive here to
    117 .. automatically generate the list below. For unknown reasons, however,
    118 .. `mach doc` _sometimes_ gets confused and refuses to find patterns like
    119 .. `*.md`.
    120 .. toctree::
    121  :maxdepth: 2
    122 
    123  building-and-testing
    124  debugging-docs
    125  frequency-caps
    126  first-run
    127  messaging-glossary
    128  remote_cfr
    129  targeting-attributes
    130  targeting-guide
    131  telemetry
    132  skylight