Merge mozilla-central to autoland on a CLOSED TREE
[gecko.git] / netwerk / docs / new_to_necko_resources.rst
bloba046d63bd6b66ecd509f41d8e48ec0c84881d8a8
1 New-to-Necko Resources - An Aggregation
2 =======================================
4 This doc serves as a hub for resources/technologies a new-to-necko developer
5 should get familiar with.
7 Code Generation and IPC
8 ~~~~~~~~~~~~~~~~~~~~~~~
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`_
18 .. _IPC: /ipc/index.html
19 .. _IDL: /xpcom/xpidl.html
20 .. _IPDL: /ipc/ipdl.html
21 .. _WebIDL: /toolkit/components/extensions/webextensions/webidl_bindings.html
24 Necko interfaces
25 ~~~~~~~~~~~~~~~~
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>`
36 Libraries
37 ~~~~~~~~~
38 * `NSPR`_
39 * `NSS`_
40 * `PSM`_
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
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>`
53 Debugging
54 ~~~~~~~~~
55 * `HTTP Logging`_
57 .. _HTTP Logging: /networking/http/logging.html
59 Testing
60 ~~~~~~~
61 * `xpcshell`_
62 * `mochitest`_
63 * `web-platform`_
64 * `gtest`_
65 * `marionette`_
67 .. _xpcshell: /testing/xpcshell/index.html
68 .. _mochitest:  /browser/components/newtab/docs/v2-system-addon/mochitests.html
69 .. _web-platform: /web-platform/index.html
70 .. _gtest: /gtest/index.html
71 .. _marionette: /testing/marionette/index.html
74 See also
75 ~~~~~~~~
76   - E10S_ (Electrolysis) -> Split ``HttpChannel`` into: ``HttpChannelChild`` & ``HttpChannelParent``
77   - Fission_ -> Site isolation
79   .. _E10s: https://wiki.mozilla.org/Electrolysis
80   .. _Fission: https://hacks.mozilla.org/2021/05/introducing-firefox-new-site-isolation-security-architecture/