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