(主にアドオン開発に有効と思われるリファレンスへのリンクを載せていきます)
Links
アドオン開発の概要から (英語情報)
Adapt to Changes in Thunderbird
Thunderbird は、メジャーバージョンアップを重ねるごと内部構造が変化しています。
Web 標準から取り残されたレガシーなコード (XUL 等) を捨て、新しい Web 標準 (HTML5 等) への準拠を目的にコードの置き換えが進んでいるようです。
アドオン開発については Thunderbird WebExtension API に準拠しているものは問題ありませんが、WebExtension Experiments に依存するものは自己責任で Thunderbird の内部構造へアクセスすることになります。
WebExtension Experiments の利用者は、引き続き Thunderbird の近代化と、内部構造への変化に対して、定期的に追従する事が求められます。
- Adapt to Changes in Thunderbird 61-68
- Adapt to Changes in Thunderbird 69-75
- Adapt to Changes in Thunderbird 69-78 - Thunderbird
- Adapt to Changes in Thunderbird 79-91 - Thunderbird
- Adapt to Changes in Thunderbird 92-102 - Thunderbird
Thunderbird WebExtension APIs
Thunderbird WebExtension APIs:
- accounts
- addressBooks
- browserAction
- cloudFile
- commands
- compose
- composeAction
- contacts
- folders
- legacy
- mailingLists
- mailTabs
- menus
- messageDisplay
- messageDisplayAction
- messages
- tabs
- windows
WebExtension Experiments
WebExtension Experiments を使ったアドオンを実装するには Thunderbird の内部構造をよく調査し、その結果を検証する必要があります。
どのような事ができるのかを例示していきます。
alert を表示する
Thunderbird (Firefox) の開発者ツール (Ctrl+Shift+I) 機能を使って、JavaScript のコードを実行できます。
ここで alert("Hello.")
を実行できます。
ここで注意が必要なのは JavaScript には C/C++ のような感じのグローバル変数というものはなく、
alert
は globalThis や window や this などに束縛されているメンバーということです。
開発者ツールで globalThis
などを評価し Experimental からアクセスしたいメンバーが、どのオブジェクトに属しているものかを確認してください。
ChromeWindow chrome://messenger/content/messenger.xhtml
に関しては Services.wm.getMostRecentWindow("mail:3pane")
で取得可能です。
という事で Experimental から alert
を使用する方法は、このようになります。
Services.wm.getMostRecentWindow("mail:3pane").alert("Hello.");
表示しているメールの添付ファイル一覧を取得する
Services.wm.getMostRecentWindow("mail:3pane").currentAttachments
John Bieling 氏より OpenAttachmentByExtension ATN の責任者に対して Thunderbird 115 ではつぎのように変更となる旨の連絡がありました。
const getAttachmentsInActiveMail = () => {
return Services.wm.getMostRecentWindow("mail:3pane").gTabmail.currentAboutMessage.currentAttachments
}
作成中のメール画面に文字列を挿入する
Services.wm.getMostRecentWindow("msgcompose").GetCurrentEditor().insertText("こんにちは")
フォルダーツリーを探索する
※ 基本的には MailExtensions の使用が推奨されます。関連 API:
- mailTabs — Thunderbird WebExtension APIs documentation
- accounts — Thunderbird WebExtension APIs documentation
- folders — Thunderbird WebExtension APIs documentation
Experimental ⇔ MailExtensions をしたい:
選択しているフォルダーを取得する
MailExtensions では
browser.mailTabs.query({ currentWindow: true, lastFocusedWindow: true })
Experimental では
let folder = Services.wm.getMostRecentWindow("mail:3pane").GetSelectedMsgFolders()[0]
フォルダの名称を取得
folder.name
"受信トレイ"
フォルダの URI を取得
folder.URI
"mailbox://xmailuser%40xmailserver.test@localhost/Inbox"
フォルダの URI からフォルダを取得
MailUtils.getExistingFolder("mailbox://xmailuser%40xmailserver.test@localhost/Inbox")
XPCWrappedNative_NoHelper { Init: Init(), QueryInterface: QueryInterface(), GetWeakReference: GetWeakReference(), subFolders: Getter, URI: Getter, flags: Getter & Setter, server: Getter, getNumUnread: getNumUnread(), biffState: Getter & Setter, hasNewMessages: Getter & Setter, … }
歴史的変遷があるようです:
- 原初は
GetMsgFolderFromUri
だった -
QuickFileMail :: Versions :: Add-ons for Thunderbird によると
GetMsgFolderFromUri
⇒MailUtils.getFolderForURI
に変更された -
Move Later failed · Issue #45 · RealRaven2000/FiltaQuilla · GitHub によると
MailUtils.getFolderForURI
⇒MailUtils.getExistingFolder
に変更された
型を取得する
Thunderbird (Firefox) で運用されている XPCOM オブジェクトについては、インターフェイスに相当する定義 (XPIDL) が存在します。この XPIDL を見ていくことになります。
toString()
を発行する事で教えてくれるようです。
Services.wm.getMostRecentWindow("mail:3pane").GetSelectedMsgFolders()[0].getEditableFilterList(null).toString()
結果
"[xpconnect wrapped nsIMsgFilterList]"
名前が判明したら Google で nsIMsgFilterList
などと検索して、定義・使い方や使用例についての情報を集めます。
型を変換する
細かい事は判っていませんが nsISimpleEnumerator
を用いて列挙ならびに取得したオブジェクトは nsISupports を返す場合があります。
そういった場合は必要なインターフェイス (Ci.nsIFile
など) に変換が必要なケースがあります。
const file = obj.QueryInterface(Components.interfaces.nsIFile);
instanceof
でインターフェイス実装の判定ができるそうです。参考: https://nanto.asablo.jp/blog/2011/01/12/5634277
Services.wm.getMostRecentWindow("mail:3pane").GetSelectedMsgFolders()[0] instanceof Ci.nsIMsgFolder
true
Services.wm.getMostRecentWindow("mail:3pane").GetSelectedMsgFolders()[0] instanceof Ci.nsIFolderListener
false
permissions
permissions - Mozilla | MDN: API permissions
activeTab
alarms
background
bookmarks
browserSettings
browsingData
captivePortal
clipboardRead
clipboardWrite
contentSettings
contextMenus
contextualIdentities
cookies
debugger
dns
downloads
downloads.open
find
geolocation
history
identity
idle
management
menus
menus.overrideContext
nativeMessaging
notifications
pageCapture
pkcs11
privacy
proxy
search
sessions
storage
tabHide
tabs
theme
topSites
unlimitedStorage
webNavigation
webRequest
webRequestBlocking
jsm
- Assert.jsm
- AsyncShutdown.jsm
- CustomizableUI.jsm
- DeferredTask.jsm
- Dict.jsm
- DownloadLastDir.jsm
- Downloads.jsm
- FileUtils.jsm
- FxAccountsOAuthClient.jsm
- FxAccountsProfileClient.jsm
- Geometry.jsm
- HTTP.jsm
- Http.jsm
- ISO8601DateUtils.jsm
- JNI.jsm
- Log.jsm
- NetUtil.jsm
- OSFile.jsm
- PerfMeasurement.jsm
- PopupNotifications.jsm
- Promise.jsm
- PromiseUtils.jsm
- PromiseWorker.jsm
- Services.jsm
- SourceMap.jsm
- Sqlite.jsm
- Task.jsm
- Timer.jsm
- WebChannel.jsm
- WebRequest.jsm
- Webapps.jsm
- XPCOMUtils.jsm
- openLocationLastURL.jsm
- source-editor.jsm
List of manifest.json keys
- author
- background
- browser_action
- browser_specific_settings
- chrome_settings_overrides
- chrome_url_overrides
- commands
- content_scripts
- content_security_policy
- default_locale
- description
- developer
- devtools_page
- dictionaries
- externally_connectable
- homepage_url
- icons
- incognito
- manifest_version
- name
- offline_enabled
- omnibox
- optional_permissions
- options_page
- options_ui
- page_action
- permissions
- protocol_handlers
- short_name
- sidebar_action
- storage
- theme
- theme_experiment
- user_scripts
- version
- version_name
- web_accessible_resources
XPCOM Interface Reference
- Component; nsIPrefBranch
- ExtensionManager (Toolkit)
- IAccessible2
- IAccessibleAction
- IAccessibleApplication
- IAccessibleComponent
- IAccessibleEditableText
- IAccessibleHyperlink
- IAccessibleHypertext
- IAccessibleImage
- IAccessibleRelation
- IAccessibleTable
- IAccessibleTable2
- IAccessibleTableCell
- IAccessibleText
- IAccessibleValue
- IDispatch
- IJSDebugger
- amIInstallCallback
- amIInstallTrigger
- amIWebInstallInfo
- amIWebInstallListener
- amIWebInstallPrompt
- amIWebInstaller
- imgICache
- imgIContainer
- imgIContainerObserver
- imgIDecoder
- imgIDecoderObserver
- imgIEncoder
- imgILoader
- imgIRequest
- inIDOMUtils
- jsdIStackFrame
- mozIAsyncFavicons
- mozIAsyncHistory
- mozIColorAnalyzer
- mozIJSSubScriptLoader
- mozIPersonalDictionary
- mozIPlaceInfo
- mozIPlacesAutoComplete
- mozIRegistry
- mozIRepresentativeColorCallback
- mozISpellCheckingEngine
- mozIStorageAggregateFunction
- mozIStorageAsyncStatement
- mozIStorageBindingParams
- mozIStorageBindingParamsArray
- mozIStorageCompletionCallback
- mozIStorageConnection
- mozIStorageError
- mozIStorageFunction
- mozIStoragePendingStatement
- mozIStorageProgressHandler
- mozIStorageResultSet
- mozIStorageRow
- mozIStorageService
- mozIStorageStatement
- mozIStorageStatementCallback
- mozIStorageStatementParams
- mozIStorageStatementRow
- mozIStorageStatementWrapper
- mozIStorageVacuumParticipant
- mozIStorageValueArray
- mozITXTToHTMLConv
- mozIThirdPartyUtil
- mozIVisitInfo
- mozIVisitInfoCallback
- mozIVisitStatusCallback
- nsIAbCard
- nsIAboutModule
- nsIAbstractWorker
- nsIAccelerometerUpdate
- nsIAccessNode
- nsIAccessibilityService
- nsIAccessible
- nsIAccessibleCaretMoveEvent
- nsIAccessibleCoordinateType
- nsIAccessibleDocument
- nsIAccessibleEditableText
- nsIAccessibleEvent
- nsIAccessibleHyperLink
- nsIAccessibleHyperText
- nsIAccessibleImage
- nsIAccessibleProvider
- nsIAccessibleRelation
- nsIAccessibleRetrieval
- nsIAccessibleRole
- nsIAccessibleScrollType
- nsIAccessibleSelectable
- nsIAccessibleStateChangeEvent
- nsIAccessibleStates
- nsIAccessibleTable
- nsIAccessibleTableCell
- nsIAccessibleTableChangeEvent
- nsIAccessibleText
- nsIAccessibleTextChangeEvent
- nsIAccessibleTreeCache
- nsIAccessibleValue
- nsIAccessibleWin32Object
- nsIAlertsService
- nsIAnnotationObserver
- nsIAnnotationService
- nsIAppShell
- nsIAppShellService
- nsIAppStartup
- nsIAppStartup_MOZILLA_2_0
- nsIApplicationCache
- nsIApplicationCacheChannel
- nsIApplicationCacheContainer
- nsIApplicationCacheNamespace
- nsIApplicationCacheService
- nsIApplicationUpdateService
- nsIArray
- nsIAsyncInputStream
- nsIAsyncOutputStream
- nsIAsyncStreamCopier
- nsIAsyncVerifyRedirectCallback
- nsIAuthInformation
- nsIAuthModule
- nsIAuthPrompt
- nsIAuthPrompt2
- nsIAuthPromptAdapterFactory
- nsIAuthPromptCallback
- nsIAuthPromptProvider
- nsIAuthPromptWrapper
- nsIAutoCompleteController
- nsIAutoCompleteInput
- nsIAutoCompleteItem
- nsIAutoCompleteListener
- nsIAutoCompleteObserver
- nsIAutoCompleteResult
- nsIAutoCompleteSearch
- nsIBadCertListener2
- nsIBidiKeyboard
- nsIBinaryInputStream
- nsIBinaryOutputStream
- nsIBlocklistPrompt
- nsIBlocklistService
- nsIBoxObject
- nsIBrowserBoxObject
- nsIBrowserHistory
- nsIBrowserSearchService
- nsICRLInfo
- nsICRLManager
- nsICache
- nsICacheDeviceInfo
- nsICacheEntryDescriptor
- nsICacheEntryInfo
- nsICacheListener
- nsICacheMetaDataVisitor
- nsICacheService
- nsICacheSession
- nsICacheVisitor
- nsICachingChannel
- nsICancelable
- nsICategoryManager
- nsIChannel
- nsIChannelEventSink
- nsIChannelPolicy
- nsICharsetResolver
- nsIChromeFrameMessageManager
- nsIChromeRegistry
- nsIClassInfo
- nsIClipboard
- nsIClipboardCommands
- nsIClipboardDragDropHookList
- nsIClipboardDragDropHooks
- nsIClipboardHelper
- nsIClipboardOwner
- nsICollection
- nsICommandController
- nsICommandLine
- nsICommandLineHandler
- nsICommandLineRunner
- nsIComponentManager
- nsIComponentRegistrar
- nsICompositionStringSynthesizer
- nsIConsoleListener
- nsIConsoleMessage
- nsIConsoleService
- nsIContainerBoxObject
- nsIContentFrameMessageManager
- nsIContentPref
- nsIContentPrefCallback2
- nsIContentPrefObserver
- nsIContentPrefService
- nsIContentPrefService2
- nsIContentSecurityPolicy
- nsIContentSniffer
- nsIContentView
- nsIContentViewManager
- nsIContentViewer
- nsIController
- nsIControllers
- nsIConverterInputStream
- nsIConverterOutputStream
- nsICookie
- nsICookie2
- nsICookieAcceptDialog
- nsICookieConsent
- nsICookieManager
- nsICookieManager2
- nsICookiePermission
- nsICookiePromptService
- nsICookieService
- nsICookieStorage
- nsICrashReporter
- nsICryptoHMAC
- nsICryptoHash
- nsICurrentCharsetListener
- nsICycleCollectorListener
- nsIDBChangeListener
- nsIDBFolderInfo
- nsIDNSListener
- nsIDNSRecord
- nsIDNSRequest
- nsIDNSService
- nsIDOMCanvasRenderingContext2D
- nsIDOMChromeWindow
- nsIDOMClientRect
- nsIDOMDesktopNotification
- nsIDOMDesktopNotificationCenter
- nsIDOMElement
- nsIDOMEvent
- nsIDOMEventGroup
- nsIDOMEventListener
- nsIDOMEventTarget
- nsIDOMFile
- nsIDOMFileError
- nsIDOMFileException
- nsIDOMFileList
- nsIDOMFileReader
- nsIDOMFontFace
- nsIDOMFontFaceList
- nsIDOMGeoGeolocation
- nsIDOMGeoPosition
- nsIDOMGeoPositionAddress
- nsIDOMGeoPositionCallback
- nsIDOMGeoPositionCoords
- nsIDOMGeoPositionError
- nsIDOMGeoPositionErrorCallback
- nsIDOMGeoPositionOptions
- nsIDOMGlobalPropertyInitializer
- nsIDOMHTMLAudioElement
- nsIDOMHTMLFormElement
- nsIDOMHTMLMediaElement
- nsIDOMHTMLSourceElement
- nsIDOMHTMLTimeRanges
- nsIDOMJSWindow
- nsIDOMMouseScrollEvent
- nsIDOMMozNetworkStats
- nsIDOMMozNetworkStatsData
- nsIDOMMozNetworkStatsManager
- nsIDOMMozTouchEvent
- nsIDOMNSHTMLDocument
- nsIDOMNavigatorDesktopNotification
- nsIDOMNode
- nsIDOMOfflineResourceList
- nsIDOMOrientationEvent
- nsIDOMParser
- nsIDOMProgressEvent
- nsIDOMSerializer
- nsIDOMSimpleGestureEvent
- nsIDOMStorage
- nsIDOMStorage2
- nsIDOMStorageEventObsolete
- nsIDOMStorageItem
- nsIDOMStorageList
- nsIDOMStorageManager
- nsIDOMStorageWindow
- nsIDOMUserDataHandler
- nsIDOMWindow
- nsIDOMWindow2
- nsIDOMWindowInternal
- nsIDOMWindowUtils
- nsIDOMXPathEvaluator
- nsIDOMXPathException
- nsIDOMXPathExpression
- nsIDOMXPathResult
- nsIDOMXULControlElement
- nsIDOMXULElement
- nsIDOMXULLabeledControlElement
- nsIDOMXULSelectControlElement
- nsIDOMXULSelectControlItemElement
- nsIDataSignatureVerifier
- nsIDebug
- nsIDebug2
- nsIDeviceMotion
- nsIDeviceMotionData
- nsIDeviceMotionListener
- nsIDialogCreator
- nsIDialogParamBlock
- nsIDictionary
- nsIDirIndex
- nsIDirIndexListener
- nsIDirIndexParser
- nsIDirectoryEnumerator
- nsIDirectoryIterator
- nsIDirectoryService
- nsIDirectoryServiceProvider
- nsIDirectoryServiceProvider2
- nsIDiskCacheStreamInternal
- nsIDispatchSupport
- nsIDocShell
- nsIDocumentLoader
- nsIDownload
- nsIDownloadHistory
- nsIDownloadManager
- nsIDownloadManagerUI
- nsIDownloadObserver
- nsIDownloadProgressListener
- nsIDownloader
- nsIDragDropHandler
- nsIDragService
- nsIDragSession
- nsIDroppedLinkHandler
- nsIDroppedLinkItem
- nsIDynamicContainer
- nsIEditor
- nsIEditorBoxObject
- nsIEditorDocShell
- nsIEditorIMESupport
- nsIEditorLogging
- nsIEditorMailSupport
- nsIEditorObserver
- nsIEditorSpellCheck
- nsIEffectiveTLDService
- nsIEnumerator
- nsIEnvironment
- nsIErrorService
- nsIEventListenerInfo
- nsIEventListenerService
- nsIEventSource
- nsIEventTarget
- nsIException
- nsIExtensionManager
- nsIExternalHelperAppService
- nsIExternalProtocolService
- nsIExternalURLHandlerService
- nsIFTPChannel
- nsIFTPEventSink
- nsIFactory
- nsIFaviconDataCallback
- nsIFaviconService
- nsIFeed
- nsIFeedContainer
- nsIFeedElementBase
- nsIFeedEntry
- nsIFeedGenerator
- nsIFeedPerson
- nsIFeedProcessor
- nsIFeedProgressListener
- nsIFeedResult
- nsIFeedResultListener
- nsIFeedTextConstruct
- nsIFile
- nsIFileInputStream
- nsIFileOutputStream
- nsIFilePicker
- nsIFileProtocolHandler
- nsIFileSpec
- nsIFileStreams
- nsIFileURL
- nsIFileUtilities
- nsIFileView
- nsIFocusManager
- nsIFormHistory2
- nsIFrameLoader
- nsIFrameLoaderOwner
- nsIFrameMessageListener
- nsIFrameMessageManager
- nsIFrameScriptLoader
- nsIGSettingsCollection
- nsIGSettingsService
- nsIGeolocationProvider
- nsIGeolocationUpdate
- nsIGlobalHistory
- nsIGlobalHistory2
- nsIGlobalHistory3
- nsIHTMLEditor
- nsIHTTPHeaderListener
- nsIHapticFeedback
- nsIHttpActivityDistributor
- nsIHttpActivityObserver
- nsIHttpChannel
- nsIHttpChannelInternal
- nsIHttpHeaderVisitor
- nsIHttpServer
- nsIHttpUpgradeListener
- nsIIDNService
- nsIIFrameBoxObject
- nsIINIParser
- nsIINIParserFactory
- nsIINIParserWriter
- nsIIOService
- nsIIdleService
- nsIInProcessContentFrameMessageManager
- nsIInputStream
- nsIInputStreamCallback
- nsIInstallLocation
- nsIInterfaceRequestor
- nsIJSCID
- nsIJSID
- nsIJSIID
- nsIJSON
- nsIJetpack
- nsIJetpackService
- nsIJumpListBuilder
- nsIJumpListItem
- nsILivemarkService
- nsILoadGroup
- nsILocalFile
- nsILocalFileMac
- nsILocale
- nsILocaleService
- nsILoginInfo
- nsILoginManager
- nsILoginManagerCrypto
- nsILoginManagerIEMigrationHelper
- nsILoginManagerPrompter
- nsILoginManagerStorage
- nsILoginMetaInfo
- nsIMIMEInputStream
- nsIMacDockSupport
- nsIMarkupDocumentViewer
- nsIMemory
- nsIMemoryMultiReporter
- nsIMemoryMultiReporterCallback
- nsIMemoryReporter
- nsIMemoryReporterManager
- nsIMenuBoxObject
- nsIMessageBroadcaster
- nsIMessageListener
- nsIMessageListenerManager
- nsIMessageSender
- nsIMessageWakeupService
- nsIMessenger
- nsIMicrosummary
- nsIMicrosummaryGenerator
- nsIMicrosummaryObserver
- nsIMicrosummaryService
- nsIMicrosummarySet
- nsIMimeConverter
- nsIMimeHeaders
- nsIModule
- nsIMsgAccount
- nsIMsgAccountManagerExtension
- nsIMsgCompFields
- nsIMsgCustomColumnHandler
- nsIMsgDBHdr
- nsIMsgDBView
- nsIMsgDBViewCommandUpdater
- nsIMsgDatabase
- nsIMsgFilter
- nsIMsgFilterCustomAction
- nsIMsgFilterList
- nsIMsgFolder
- nsIMsgHeaderParser
- nsIMsgIdentity
- nsIMsgIncomingServer
- nsIMsgMessageService
- nsIMsgProtocolInfo
- nsIMsgRuleAction
- nsIMsgSearchCustomTerm
- nsIMsgSearchNotify
- nsIMsgSearchScopeTerm
- nsIMsgSearchSession
- nsIMsgSearchTerm
- nsIMsgSearchValue
- nsIMsgSendLater
- nsIMsgThread
- nsIMsgWindow
- nsIMsgWindowCommands
- nsIMutableArray
- nsINavBookmarkObserver
- nsINavBookmarksService
- nsINavHistoryBatchCallback
- nsINavHistoryContainerResultNode
- nsINavHistoryFullVisitResultNode
- nsINavHistoryObserver
- nsINavHistoryQuery
- nsINavHistoryQueryOptions
- nsINavHistoryQueryResultNode
- nsINavHistoryResult
- nsINavHistoryResultNode
- nsINavHistoryResultObserver
- nsINavHistoryResultTreeViewer
- nsINavHistoryResultViewObserver
- nsINavHistoryResultViewer
- nsINavHistoryService
- nsINavHistoryVisitResultNode
- nsINetworkLinkService
- nsIObserver
- nsIObserverService
- nsIOutputStream
- nsIOutputStreamCallback
- nsIParentalControlsService
- nsIParserUtils
- nsIPassword
- nsIPasswordManager
- nsIPermission
- nsIPermissionManager
- nsIPipe
- nsIPlacesImportExportService
- nsIPlacesView
- nsIPluginHost
- nsIPrefBranch2
- nsIPrefLocalizedString
- nsIPrefService
- nsIPrincipal
- nsIPrinterEnumerator
- nsIPrintingPrompt
- nsIPrivateBrowsingService
- nsIProcess
- nsIProcess2
- nsIProcessScriptLoader
- nsIProfile
- nsIProfileLock
- nsIProfileUnlocker
- nsIProgrammingLanguage
- nsIProgressEventSink
- nsIPrompt
- nsIPromptService
- nsIProperties
- nsIProperty
- nsIPropertyBag
- nsIPropertyBag2
- nsIPropertyElement
- nsIProtocolHandler
- nsIProtocolProxyCallback
- nsIProtocolProxyFilter
- nsIProtocolProxyService
- nsIProxyInfo
- nsIPushMessage
- nsIPushService
- nsIPushSubscription
- nsIRadioInterfaceLayer
- nsIRandomGenerator
- nsIRequest
- nsIRequestObserver
- nsIResumableChannel
- nsIRunnable
- nsISHEntry
- nsISHistory
- nsISHistoryListener
- nsISOCKSSocketInfo
- nsISSLErrorListener
- nsISSLSocketControl
- nsIScreen
- nsIScreenManager
- nsIScriptError
- nsIScriptError2
- nsIScriptableIO
- nsIScriptableInputStream
- nsIScriptableUnescapeHTML
- nsIScriptableUnicodeConverter
- nsIScrollable
- nsISearchEngine
- nsISearchSubmission
- nsISecurityCheckedComponent
- nsISeekableStream
- nsISelection
- nsISelection2
- nsISelection3
- nsISelectionController
- nsISelectionImageService
- nsISelectionPrivate
- nsIServerSocket
- nsIServerSocketListener
- nsIServiceManager
- nsISessionStartup
- nsISessionStore
- nsISimpleEnumerator
- nsISmsDatabaseService
- nsISmsRequestManager
- nsISmsService
- nsISocketProvider
- nsISocketProviderService
- nsISocketTransport
- nsISocketTransportService
- nsISound
- nsISpeculativeConnect
- nsIStackFrame
- nsIStandardURL
- nsIStreamConverter
- nsIStreamListener
- nsIStringBundle
- nsIStringBundleOverride
- nsIStringBundleService
- nsIStringEnumerator
- nsIStructuredCloneContainer
- nsIStyleSheetService
- nsISupports
- nsISupports proxies
- nsISupportsArray
- nsISupportsCString
- nsISupportsChar
- nsISupportsDouble
- nsISupportsFloat
- nsISupportsID
- nsISupportsInterfacePointer
- nsISupportsPRBool
- nsISupportsPRInt16
- nsISupportsPRInt32
- nsISupportsPRInt64
- nsISupportsPRTime
- nsISupportsPRUint8
- nsISupportsPRUint16
- nsISupportsPRUint32
- nsISupportsPRUint64
- nsISupportsPrimitive
- nsISupportsPriority
- nsISupportsString
- nsISupportsVoid
- nsISupportsWeakReference
- nsISyncJPAKE
- nsISyncMessageSender
- nsITXTToHTMLConv
- nsITaggingService
- nsITaskbarPreview
- nsITaskbarPreviewButton
- nsITaskbarPreviewController
- nsITaskbarProgress
- nsITaskbarTabPreview
- nsITaskbarWindowPreview
- nsITelemetry
- nsITextInputProcessor
- nsITextInputProcessorCallback
- nsITextInputProcessorNotification
- nsIThread
- nsIThreadEventFilter
- nsIThreadInternal
- nsIThreadManager
- nsIThreadObserver
- nsIThreadPool
- nsIThreadPoolListener
- nsITimer
- nsITimerCallback
- nsIToolkit
- nsIToolkitProfile
- nsIToolkitProfileService
- nsITraceableChannel
- nsITransaction
- nsITransactionList
- nsITransactionListener
- nsITransactionManager
- nsITransferable
- nsITransport
- nsITransportEventSink
- nsITransportSecurityInfo
- nsITreeBoxObject
- nsITreeColumn
- nsITreeColumns
- nsITreeContentView
- nsITreeSelection
- nsITreeView
- nsIURI
- nsIURIFixup
- nsIURIFixupInfo
- nsIURL
- nsIURLFormatter
- nsIURLParser
- nsIUTF8ConverterService
- nsIUTF8StringEnumerator
- nsIUUIDGenerator
- nsIUpdate
- nsIUpdateCheckListener
- nsIUpdateChecker
- nsIUpdateItem
- nsIUpdateManager
- nsIUpdatePatch
- nsIUpdatePrompt
- nsIUpdateTimerManager
- nsIUploadChannel
- nsIUploadChannel2
- nsIUrlListManagerCallback
- nsIUserCertPicker
- nsIUserInfo
- nsIVariant
- nsIVersionComparator
- nsIWeakReference
- nsIWebBrowser
- nsIWebBrowserChrome
- nsIWebBrowserChrome2
- nsIWebBrowserChrome3
- nsIWebBrowserChromeFocus
- nsIWebBrowserFind
- nsIWebBrowserFindInFrames
- nsIWebBrowserPersist
- nsIWebContentHandlerRegistrar
- nsIWebNavigation
- nsIWebNavigationInfo
- nsIWebPageDescriptor
- nsIWebProgress
- nsIWebProgressListener
- nsIWebProgressListener2
- nsIWebSocketChannel
- nsIWebSocketListener
- nsIWebappsSupport
- nsIWifiAccessPoint
- nsIWifiListener
- nsIWifiMonitor
- nsIWinAccessNode
- nsIWinAppHelper
- nsIWinTaskbar
- nsIWindowCreator
- nsIWindowMediator
- nsIWindowWatcher
- nsIWindowsRegKey
- nsIWindowsShellService
- nsIWorker
- nsIWorkerFactory
- nsIWorkerGlobalScope
- nsIWorkerMessageEvent
- nsIWorkerMessagePort
- nsIWorkerScope
- nsIWritablePropertyBag
- nsIWritablePropertyBag2
- nsIXFormsModelElement
- nsIXFormsNSInstanceElement
- nsIXFormsNSModelElement
- nsIXMLHttpRequest
- nsIXMLHttpRequestEventTarget
- nsIXMLHttpRequestUpload
- nsIXPCException
- nsIXPCScriptable
- nsIXPConnect
- nsIXSLTException
- nsIXSLTProcessor
- nsIXSLTProcessorObsolete
- nsIXULAppInfo
- nsIXULBrowserWindow
- nsIXULBuilderListener
- nsIXULRuntime
- nsIXULSortService
- nsIXULTemplateBuilder
- nsIXULTemplateQueryProcessor
- nsIXULTemplateResult
- nsIXULWindow
- nsIXmlRpcClient
- nsIXmlRpcFault
- nsIZipEntry
- nsIZipReader
- nsIZipReaderCache
- nsIZipWriter
- nsMsgFilterFileAttribValue
- nsMsgFolderFlagType
- nsMsgJunkStatus
- nsMsgKey
- nsMsgLabelValue
- nsMsgPriorityValue
- nsMsgRuleActionType
- nsMsgSearchAttrib
- nsMsgSearchOp
- nsMsgSearchScope
- nsMsgSearchTerm
- nsMsgSearchTypeValue
- nsMsgSearchValue
- nsMsgSearchWidgetValue
- nsPIPromptService
- Interfaces grouped by function
API Schemas
Docs » Toolkit » WebExtensions API Development » API Schemas
Getting Plugged into the Community
Getting Plugged into the Community
- A communication platform / mailing list for Thunderbird add-on developers and aspiring add-on developers to ask questions and share knowledge.