# New-to-Necko Resources - An Aggregation This doc serves as a hub for resources/technologies a new-to-necko developer should get familiar with. ## Code Generation and IPC - [IPC] (Inter-Process Communication) and [IPDL] (Inter-Thread and Inter-Process Message Passing) - [IDL] (Interface Description Language) : - Implementing an interface (C++/JS) - XPCONNECT (scriptable/builtin) - QueryInterface (QI) - do_QueryInterface/do_QueryObject - do_GetService, do_CreateInstance - [WebIDL] ## Necko interfaces - {searchfox}`nsISupports ` - {searchfox}`nsIRequest ` -> {searchfox}`nsIChannel ` -> {searchfox}`nsIHttpChannel ` - {searchfox}`nsIRequestObserver ` (onStart/onStopRequest) - {searchfox}`nsIStreamListener ` (onDataAvailable) - {searchfox}`nsIInputStream `/ {searchfox}`nsIOutputStream ` ## Libraries - [NSPR] - [NSS] - [PSM] ## Preferences - {searchfox}`all.js ` - {searchfox}`firefox.js ` - {searchfox}`StaticPrefList.yaml ` ## Debugging - [HTTP Logging] ## Testing - [xpcshell] - [mochitest] - [web-platform] - [gtest] - [marionette] ## See also > - [E10S] (Electrolysis) -> Split `HttpChannel` into: `HttpChannelChild` & `HttpChannelParent` > - [Fission] -> Site isolation [e10s]: https://wiki.mozilla.org/Electrolysis [fission]: https://hacks.mozilla.org/2021/05/introducing-firefox-new-site-isolation-security-architecture/ [gtest]: /gtest/index.html [http logging]: /networking/http/logging.html [idl]: /xpcom/xpidl.html [ipc]: /ipc/index.html [ipdl]: /ipc/ipdl.html [marionette]: /testing/marionette/index.html [mochitest]: /testing/mochitest-plain/index.html [nspr]: https://firefox-source-docs.mozilla.org/nspr/about_nspr.html?highlight=nspr [nss]: https://firefox-source-docs.mozilla.org/security/nss/legacy/faq/index.html [psm]: https://firefox-source-docs.mozilla.org/security/nss/legacy/faq/index.html?highlight=psm [web-platform]: /web-platform/index.html [webidl]: /toolkit/components/extensions/webextensions/webidl_bindings.html [xpcshell]: /testing/xpcshell/index.html