Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

mozilla::services namespace

The services C++ namespace offers an easy and efficient alternative for obtaining a service as compared to the indirect XPCOM approach: GetService(), CallGetService(), etc methods are expensive and should be avoided when possible.

To use it, you first need to include the header into your C++ file:

#include "mozilla/Services.h"

Then you can obtain references to services by simply accessing them from the mozilla::services namespace. For example, to obtain a reference to the IOService:

nsCOMPtr<nsIIOService> ioService = mozilla::services::GetIOService();

Provided service getters

Service Accessor Service Interface Service Name
GetChromeRegistryService nsIChromeRegistryService Chrome Registry service
GetIOService nsIIOService IO Service
GetObserverService nsIObserverService Observer service
GetStringBundleService nsIStringBundleService String Bundle Service
GetToolkitChromeRegistryService nsIToolkitChromeRegistry Toolkit Chrome Registry service
GetXULChromeRegistryService nsIXULChromeRegistry XUL Chrome Registry service
GetXULOverlayProviderService nsIXULOverlayProvider XUL Overlay Provider service

More services will be added as needed.

See also

Document Tags and Contributors

 Contributors to this page: Sheppy, fscholz, berkerpeksag, trevorh, Mitch 1 2, Tglek
 Last updated by: Sheppy,