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"
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()
27 nsCOMPtr
<nsITVService
> service
= do_CreateInstance(TV_SERVICE_CONTRACTID
);
29 // Fallback to the fake service.
30 service
= do_CreateInstance(FAKE_TV_SERVICE_CONTRACTID
, &rv
);
31 if (NS_WARN_IF(NS_FAILED(rv
))) {
36 rv
= service
->SetSourceListener(new TVSourceListener());
37 if (NS_WARN_IF(NS_FAILED(rv
))) {
41 return service
.forget();
45 } // namespace mozilla