tor-browser

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

new_to_necko_resources.rst (2554B)


      1 New-to-Necko Resources - An Aggregation
      2 =======================================
      3 
      4 This doc serves as a hub for resources/technologies a new-to-necko developer
      5 should get familiar with.
      6 
      7 Code Generation and IPC
      8 ~~~~~~~~~~~~~~~~~~~~~~~
      9 
     10 * `IPC`_ (Inter-Process Communication) and `IPDL`_ (Inter-Thread and Inter-Process Message Passing)
     11 * `IDL`_ (Interface Description Language)
     12    - Implementing an interface (C++/JS)
     13    - XPCONNECT (scriptable/builtin)
     14    - QueryInterface (QI) - do_QueryInterface/do_QueryObject
     15    - do_GetService, do_CreateInstance
     16 * `WebIDL`_
     17 
     18 .. _IPC: /ipc/index.html
     19 .. _IDL: /xpcom/xpidl.html
     20 .. _IPDL: /ipc/ipdl.html
     21 .. _WebIDL: /toolkit/components/extensions/webextensions/webidl_bindings.html
     22 
     23 
     24 Necko interfaces
     25 ~~~~~~~~~~~~~~~~
     26 
     27 * :searchfox:`nsISupports <xpcom/base/nsISupports.idl>`
     28 * :searchfox:`nsIRequest <netwerk/base/nsIRequest.idl>` ->
     29  :searchfox:`nsIChannel <netwerk/base/nsIChannel.idl>` ->
     30  :searchfox:`nsIHttpChannel <netwerk/protocol/http/nsIHttpChannel.idl>`
     31 * :searchfox:`nsIRequestObserver <netwerk/base/nsIRequestObserver.idl>` (onStart/onStopRequest)
     32 * :searchfox:`nsIStreamListener <netwerk/base/nsIStreamListener.idl>` (onDataAvailable)
     33 * :searchfox:`nsIInputStream <xpcom/io/nsIInputStream.idl>`/
     34  :searchfox:`nsIOutputStream <xpcom/io/nsIOutputStream.idl>`
     35 
     36 Libraries
     37 ~~~~~~~~~
     38 * `NSPR`_
     39 * `NSS`_
     40 * `PSM`_
     41 
     42 .. _NSPR: https://firefox-source-docs.mozilla.org/nspr/about_nspr.html?highlight=nspr
     43 .. _NSS: https://firefox-source-docs.mozilla.org/security/nss/legacy/faq/index.html
     44 .. _PSM: https://firefox-source-docs.mozilla.org/security/nss/legacy/faq/index.html?highlight=psm
     45 
     46 
     47 Preferences
     48 ~~~~~~~~~~~
     49 * :searchfox:`all.js <modules/libpref/init/all.js>`
     50 * :searchfox:`firefox.js <browser/app/profile/firefox.js>`
     51 * :searchfox:`StaticPrefList.yaml <modules/libpref/init/StaticPrefList.yaml>`
     52 
     53 Debugging
     54 ~~~~~~~~~
     55 * `HTTP Logging`_
     56 
     57 .. _HTTP Logging: /networking/http/logging.html
     58 
     59 Testing
     60 ~~~~~~~
     61 * `xpcshell`_
     62 * `mochitest`_
     63 * `web-platform`_
     64 * `gtest`_
     65 * `marionette`_
     66 
     67 .. _xpcshell: /testing/xpcshell/index.html
     68 .. _mochitest:  /testing/mochitest-plain/index.html
     69 .. _web-platform: /web-platform/index.html
     70 .. _gtest: /gtest/index.html
     71 .. _marionette: /testing/marionette/index.html
     72 
     73 
     74 See also
     75 ~~~~~~~~
     76  - E10S_ (Electrolysis) -> Split ``HttpChannel`` into: ``HttpChannelChild`` & ``HttpChannelParent``
     77  - Fission_ -> Site isolation
     78 
     79  .. _E10s: https://wiki.mozilla.org/Electrolysis
     80  .. _Fission: https://hacks.mozilla.org/2021/05/introducing-firefox-new-site-isolation-security-architecture/