Bumping manifests a=b2g-bump
[gecko.git] / dom / tv / TVServiceFactory.cpp
blob517c32d0f2e3cdcdf1d49a2a1e28ce47e2370947
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "mozilla/dom/FakeTVService.h"
7 #include "mozilla/dom/TVListeners.h"
8 #include "mozilla/Preferences.h"
9 #include "nsITVService.h"
10 #include "nsServiceManagerUtils.h"
11 #include "TVServiceFactory.h"
13 namespace mozilla {
14 namespace dom {
16 /* static */ already_AddRefed<FakeTVService>
17 TVServiceFactory::CreateFakeTVService()
19 nsRefPtr<FakeTVService> service = new FakeTVService();
20 return service.forget();
23 /* static */ already_AddRefed<nsITVService>
24 TVServiceFactory::AutoCreateTVService()
26 nsresult rv;
27 nsCOMPtr<nsITVService> service = do_CreateInstance(TV_SERVICE_CONTRACTID);
28 if (!service) {
29 // Fallback to the fake service.
30 service = do_CreateInstance(FAKE_TV_SERVICE_CONTRACTID, &rv);
31 if (NS_WARN_IF(NS_FAILED(rv))) {
32 return nullptr;
36 rv = service->SetSourceListener(new TVSourceListener());
37 if (NS_WARN_IF(NS_FAILED(rv))) {
38 return nullptr;
41 return service.forget();
44 } // namespace dom
45 } // namespace mozilla