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/