--- a/b2g/chrome/content/settings.js
+++ b/b2g/chrome/content/settings.js
@@ -125,17 +125,17 @@ SettingsListener.observe('language.curre
if (shell.hasStarted() == false) {
shell.bootstrap();
}
});
// =================== RIL ====================
(function RILSettingsToPrefs() {
// DSDS default service IDs
- ['mms', 'sms', 'telephony', 'voicemail'].forEach(function(key) {
+ ['mms', 'sms', 'telephony'].forEach(function(key) {
SettingsListener.observe('ril.' + key + '.defaultServiceId', 0,
function(value) {
if (value != null) {
Services.prefs.setIntPref('dom.' + key + '.defaultServiceId', value);
}
});
});
})();
--- a/b2g/installer/package-manifest.in
+++ b/b2g/installer/package-manifest.in
@@ -201,17 +201,16 @@
@RESPATH@/components/dom_storage.xpt
@RESPATH@/components/dom_stylesheets.xpt
@RESPATH@/components/dom_telephony.xpt
@RESPATH@/components/dom_threads.xpt
@RESPATH@/components/dom_traversal.xpt
@RESPATH@/components/dom_tv.xpt
@RESPATH@/components/dom_inputport.xpt
@RESPATH@/components/dom_views.xpt
-@RESPATH@/components/dom_voicemail.xpt
#ifdef MOZ_WEBSPEECH
@RESPATH@/components/dom_webspeechrecognition.xpt
#endif
@RESPATH@/components/dom_xbl.xpt
@RESPATH@/components/dom_xhr.xpt
@RESPATH@/components/dom_xpath.xpt
@RESPATH@/components/dom_xul.xpt
@RESPATH@/components/dom_time.xpt
@@ -494,18 +493,16 @@
@RESPATH@/components/RILSystemMessengerHelper.manifest
@RESPATH@/components/TelephonyAudioService.js
@RESPATH@/components/TelephonyAudioService.manifest
@RESPATH@/components/USSDReceivedWrapper.js
@RESPATH@/components/USSDReceivedWrapper.manifest
#ifndef DISABLE_MOZ_RIL_GEOLOC
@RESPATH@/components/TelephonyService.js
@RESPATH@/components/TelephonyService.manifest
-@RESPATH@/components/VoicemailService.js
-@RESPATH@/components/VoicemailService.manifest
#endif
#endif // MOZ_WIDGET_GONK && MOZ_B2G_RIL
#ifndef MOZ_WIDGET_GONK
@RESPATH@/components/addonManager.js
@RESPATH@/components/amContentHandler.js
@RESPATH@/components/amInstallTrigger.js
@RESPATH@/components/amWebInstallListener.js
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -208,17 +208,16 @@
@RESPATH@/components/dom_settings.xpt
@RESPATH@/components/dom_permissionsettings.xpt
@RESPATH@/components/dom_sidebar.xpt
@RESPATH@/components/dom_mobilemessage.xpt
@RESPATH@/components/dom_storage.xpt
@RESPATH@/components/dom_stylesheets.xpt
@RESPATH@/components/dom_telephony.xpt
@RESPATH@/components/dom_traversal.xpt
-@RESPATH@/components/dom_voicemail.xpt
#ifdef MOZ_WEBSPEECH
@RESPATH@/components/dom_webspeechrecognition.xpt
#endif
@RESPATH@/components/dom_workers.xpt
@RESPATH@/components/dom_xbl.xpt
@RESPATH@/components/dom_xhr.xpt
@RESPATH@/components/dom_xpath.xpt
@RESPATH@/components/dom_xul.xpt
--- a/dom/apps/PermissionsTable.jsm
+++ b/dom/apps/PermissionsTable.jsm
@@ -248,21 +248,16 @@ this.PermissionsTable = { geolocation:
privileged: DENY_ACTION,
certified: ALLOW_ACTION
},
"systemXHR": {
app: DENY_ACTION,
privileged: ALLOW_ACTION,
certified: ALLOW_ACTION
},
- "voicemail": {
- app: DENY_ACTION,
- privileged: DENY_ACTION,
- certified: ALLOW_ACTION
- },
"idle": {
app: DENY_ACTION,
privileged: DENY_ACTION,
certified: ALLOW_ACTION
},
"time": {
app: DENY_ACTION,
privileged: DENY_ACTION,
--- a/dom/base/Navigator.cpp
+++ b/dom/base/Navigator.cpp
@@ -44,17 +44,16 @@
#include "mozilla/dom/InputPortManager.h"
#include "mozilla/dom/MobileMessageManager.h"
#include "mozilla/dom/Permissions.h"
#include "mozilla/dom/Presentation.h"
#include "mozilla/dom/ServiceWorkerContainer.h"
#include "mozilla/dom/StorageManager.h"
#include "mozilla/dom/TCPSocket.h"
#include "mozilla/dom/Telephony.h"
-#include "mozilla/dom/Voicemail.h"
#include "mozilla/dom/VRDisplay.h"
#include "mozilla/dom/workers/RuntimeService.h"
#include "mozilla/Hal.h"
#include "nsISiteSpecificUserAgent.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/StaticPtr.h"
#include "Connection.h"
#include "mozilla/dom/Event.h" // for nsIDOMEvent::InternalDOMEvent()
@@ -215,17 +214,16 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mGeolocation)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mNotification)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mBatteryManager)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mBatteryPromise)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPowerManager)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mIccManager)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mMobileMessageManager)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mTelephony)
- NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mVoicemail)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mInputPortManager)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mConnection)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mStorageManager)
#ifdef MOZ_B2G_RIL
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mMobileConnections)
#endif
#ifdef MOZ_B2G_BT
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mBluetooth)
@@ -300,21 +298,16 @@ Navigator::Invalidate()
mMobileMessageManager->Shutdown();
mMobileMessageManager = nullptr;
}
if (mTelephony) {
mTelephony = nullptr;
}
- if (mVoicemail) {
- mVoicemail->Shutdown();
- mVoicemail = nullptr;
- }
-
if (mInputPortManager) {
mInputPortManager = nullptr;
}
if (mConnection) {
mConnection->Shutdown();
mConnection = nullptr;
}
@@ -1705,31 +1698,16 @@ Navigator::GetMozMobileConnections(Error
mMobileConnections = new MobileConnectionArray(mWindow);
}
return mMobileConnections;
}
#endif // MOZ_B2G_RIL
-Voicemail*
-Navigator::GetMozVoicemail(ErrorResult& aRv)
-{
- if (!mVoicemail) {
- if (!mWindow) {
- aRv.Throw(NS_ERROR_UNEXPECTED);
- return nullptr;
- }
-
- mVoicemail = Voicemail::Create(mWindow, aRv);
- }
-
- return mVoicemail;
-}
-
IccManager*
Navigator::GetMozIccManager(ErrorResult& aRv)
{
if (!mIccManager) {
if (!mWindow) {
aRv.Throw(NS_ERROR_UNEXPECTED);
return nullptr;
}
--- a/dom/base/Navigator.h
+++ b/dom/base/Navigator.h
@@ -82,17 +82,16 @@ class BluetoothManager;
#ifdef MOZ_B2G_RIL
class MobileConnectionArray;
#endif
class PowerManager;
class IccManager;
class Telephony;
-class Voicemail;
class InputPortManager;
class DeviceStorageAreaListener;
class Presentation;
class LegacyMozTCPSocket;
class VRDisplay;
class StorageManager;
namespace time {
@@ -221,17 +220,16 @@ public:
already_AddRefed<nsDOMDeviceStorage>
GetDeviceStorageByNameAndType(const nsAString& aName, const nsAString& aType,
ErrorResult& aRv);
DesktopNotificationCenter* GetMozNotification(ErrorResult& aRv);
IccManager* GetMozIccManager(ErrorResult& aRv);
MobileMessageManager* GetMozMobileMessage();
Telephony* GetMozTelephony(ErrorResult& aRv);
- Voicemail* GetMozVoicemail(ErrorResult& aRv);
InputPortManager* GetInputPortManager(ErrorResult& aRv);
already_AddRefed<LegacyMozTCPSocket> MozTCPSocket();
network::Connection* GetConnection(ErrorResult& aRv);
nsDOMCameraManager* GetMozCameras(ErrorResult& aRv);
MediaDevices* GetMediaDevices(ErrorResult& aRv);
#ifdef MOZ_B2G_RIL
MobileConnectionArray* GetMozMobileConnections(ErrorResult& aRv);
@@ -330,17 +328,16 @@ private:
RefPtr<Geolocation> mGeolocation;
RefPtr<DesktopNotificationCenter> mNotification;
RefPtr<battery::BatteryManager> mBatteryManager;
RefPtr<Promise> mBatteryPromise;
RefPtr<PowerManager> mPowerManager;
RefPtr<IccManager> mIccManager;
RefPtr<MobileMessageManager> mMobileMessageManager;
RefPtr<Telephony> mTelephony;
- RefPtr<Voicemail> mVoicemail;
RefPtr<InputPortManager> mInputPortManager;
RefPtr<network::Connection> mConnection;
#ifdef MOZ_B2G_RIL
RefPtr<MobileConnectionArray> mMobileConnections;
#endif
#ifdef MOZ_B2G_BT
RefPtr<bluetooth::BluetoothManager> mBluetooth;
#endif
--- a/dom/bindings/Bindings.conf
+++ b/dom/bindings/Bindings.conf
@@ -745,24 +745,16 @@ DOMInterfaces = {
'MozWakeLock': {
'nativeType': 'mozilla::dom::WakeLock',
},
'MozTimeManager': {
'nativeType': 'mozilla::dom::time::TimeManager',
},
-'MozVoicemail': {
- 'nativeType': 'mozilla::dom::Voicemail',
-},
-
-'MozVoicemailStatus': {
- 'nativeType': 'mozilla::dom::VoicemailStatus',
-},
-
'MutationObserver': {
'nativeType': 'nsDOMMutationObserver',
},
'MutationRecord': {
'nativeType': 'nsDOMMutationRecord',
'headerFile': 'nsDOMMutationObserver.h',
},
--- a/dom/events/test/test_all_synthetic_events.html
+++ b/dom/events/test/test_all_synthetic_events.html
@@ -375,20 +375,16 @@ const kEventConstructors = {
MozSmsEvent: { create: function (aName, aProps) {
return new MozSmsEvent(aName, aProps);
},
},
MozStkCommandEvent: { create: function (aName, aProps) {
return new MozStkCommandEvent(aName, aProps);
},
},
- MozVoicemailEvent: { create: function (aName, aProps) {
- return new MozVoicemailEvent(aName, aProps);
- },
- },
MozWifiConnectionInfoEvent: { create: function (aName, aProps) {
return new MozWifiConnectionInfoEvent(aName, aProps);
},
},
MozWifiStatusChangeEvent: { create: function (aName, aProps) {
return new MozWifiStatusChangeEvent(aName, aProps);
},
},
--- a/dom/ipc/ContentChild.cpp
+++ b/dom/ipc/ContentChild.cpp
@@ -187,17 +187,16 @@
#include "URIUtils.h"
#include "nsContentUtils.h"
#include "nsIPrincipal.h"
#include "nsDeviceStorage.h"
#include "DomainPolicy.h"
#include "mozilla/dom/ipc/StructuredCloneData.h"
#include "mozilla/dom/telephony/PTelephonyChild.h"
#include "mozilla/dom/time/DateCacheCleaner.h"
-#include "mozilla/dom/voicemail/VoicemailIPCService.h"
#include "mozilla/net/NeckoMessageUtils.h"
#include "mozilla/widget/PuppetBidiKeyboard.h"
#include "mozilla/RemoteSpellCheckEngineChild.h"
#include "GMPServiceChild.h"
#include "GMPDecoderModule.h"
#include "gfxPlatform.h"
#include "nscore.h" // for NS_FREE_PERMANENT_DATA
#include "VRManagerChild.h"
@@ -206,17 +205,16 @@ using namespace mozilla;
using namespace mozilla::docshell;
using namespace mozilla::dom::bluetooth;
using namespace mozilla::dom::devicestorage;
using namespace mozilla::dom::icc;
using namespace mozilla::dom::ipc;
using namespace mozilla::dom::mobileconnection;
using namespace mozilla::dom::mobilemessage;
using namespace mozilla::dom::telephony;
-using namespace mozilla::dom::voicemail;
using namespace mozilla::dom::workers;
using namespace mozilla::media;
using namespace mozilla::embedding;
using namespace mozilla::gmp;
using namespace mozilla::hal_sandbox;
using namespace mozilla::ipc;
using namespace mozilla::layers;
using namespace mozilla::layout;
@@ -2000,40 +1998,16 @@ ContentChild::AllocPTelephonyChild()
bool
ContentChild::DeallocPTelephonyChild(PTelephonyChild* aActor)
{
delete aActor;
return true;
}
-PVoicemailChild*
-ContentChild::AllocPVoicemailChild()
-{
- MOZ_CRASH("No one should be allocating PVoicemailChild actors");
-}
-
-PVoicemailChild*
-ContentChild::SendPVoicemailConstructor(PVoicemailChild* aActor)
-{
- aActor = PContentChild::SendPVoicemailConstructor(aActor);
- if (aActor) {
- static_cast<VoicemailIPCService*>(aActor)->AddRef();
- }
-
- return aActor;
-}
-
-bool
-ContentChild::DeallocPVoicemailChild(PVoicemailChild* aActor)
-{
- static_cast<VoicemailIPCService*>(aActor)->Release();
- return true;
-}
-
media::PMediaChild*
ContentChild::AllocPMediaChild()
{
return media::AllocPMediaChild();
}
bool
ContentChild::DeallocPMediaChild(media::PMediaChild *aActor)
--- a/dom/ipc/ContentChild.h
+++ b/dom/ipc/ContentChild.h
@@ -338,22 +338,16 @@ public:
virtual PSmsChild* AllocPSmsChild() override;
virtual bool DeallocPSmsChild(PSmsChild*) override;
virtual PTelephonyChild* AllocPTelephonyChild() override;
virtual bool DeallocPTelephonyChild(PTelephonyChild*) override;
- virtual PVoicemailChild* AllocPVoicemailChild() override;
-
- PVoicemailChild* SendPVoicemailConstructor(PVoicemailChild* aActor);
-
- virtual bool DeallocPVoicemailChild(PVoicemailChild*) override;
-
virtual PMediaChild* AllocPMediaChild() override;
virtual bool DeallocPMediaChild(PMediaChild* aActor) override;
virtual PStorageChild* AllocPStorageChild() override;
virtual bool DeallocPStorageChild(PStorageChild* aActor) override;
--- a/dom/ipc/ContentParent.cpp
+++ b/dom/ipc/ContentParent.cpp
@@ -65,17 +65,16 @@
#include "mozilla/dom/Permissions.h"
#include "mozilla/dom/PresentationParent.h"
#include "mozilla/dom/PPresentationParent.h"
#include "mozilla/dom/PushNotifier.h"
#include "mozilla/dom/FlyWebPublishedServerIPC.h"
#include "mozilla/dom/quota/QuotaManagerService.h"
#include "mozilla/dom/telephony/TelephonyParent.h"
#include "mozilla/dom/time/DateCacheCleaner.h"
-#include "mozilla/dom/voicemail/VoicemailParent.h"
#include "mozilla/embedding/printingui/PrintingParent.h"
#include "mozilla/gfx/gfxVars.h"
#include "mozilla/gfx/GPUProcessManager.h"
#include "mozilla/hal_sandbox/PHalParent.h"
#include "mozilla/ipc/BackgroundChild.h"
#include "mozilla/ipc/BackgroundParent.h"
#include "mozilla/ipc/FileDescriptorUtils.h"
#include "mozilla/ipc/PSendStreamParent.h"
@@ -289,17 +288,16 @@ using namespace CrashReporter;
#endif
using namespace mozilla::dom::bluetooth;
using namespace mozilla::dom::devicestorage;
using namespace mozilla::dom::icc;
using namespace mozilla::dom::power;
using namespace mozilla::dom::mobileconnection;
using namespace mozilla::dom::mobilemessage;
using namespace mozilla::dom::telephony;
-using namespace mozilla::dom::voicemail;
using namespace mozilla::media;
using namespace mozilla::embedding;
using namespace mozilla::gfx;
using namespace mozilla::gmp;
using namespace mozilla::hal;
using namespace mozilla::ipc;
using namespace mozilla::layers;
using namespace mozilla::layout;
@@ -3470,41 +3468,16 @@ ContentParent::AllocPTelephonyParent()
bool
ContentParent::DeallocPTelephonyParent(PTelephonyParent* aActor)
{
static_cast<TelephonyParent*>(aActor)->Release();
return true;
}
-PVoicemailParent*
-ContentParent::AllocPVoicemailParent()
-{
- if (!AssertAppProcessPermission(this, "voicemail")) {
- return nullptr;
- }
-
- VoicemailParent* actor = new VoicemailParent();
- actor->AddRef();
- return actor;
-}
-
-bool
-ContentParent::RecvPVoicemailConstructor(PVoicemailParent* aActor)
-{
- return static_cast<VoicemailParent*>(aActor)->Init();
-}
-
-bool
-ContentParent::DeallocPVoicemailParent(PVoicemailParent* aActor)
-{
- static_cast<VoicemailParent*>(aActor)->Release();
- return true;
-}
-
media::PMediaParent*
ContentParent::AllocPMediaParent()
{
return media::AllocPMediaParent();
}
bool
ContentParent::DeallocPMediaParent(media::PMediaParent *aActor)
--- a/dom/ipc/ContentParent.h
+++ b/dom/ipc/ContentParent.h
@@ -846,22 +846,16 @@ private:
virtual PSmsParent* AllocPSmsParent() override;
virtual bool DeallocPSmsParent(PSmsParent*) override;
virtual PTelephonyParent* AllocPTelephonyParent() override;
virtual bool DeallocPTelephonyParent(PTelephonyParent*) override;
- virtual PVoicemailParent* AllocPVoicemailParent() override;
-
- virtual bool RecvPVoicemailConstructor(PVoicemailParent* aActor) override;
-
- virtual bool DeallocPVoicemailParent(PVoicemailParent* aActor) override;
-
virtual PMediaParent* AllocPMediaParent() override;
virtual bool DeallocPMediaParent(PMediaParent* aActor) override;
virtual bool DeallocPStorageParent(PStorageParent* aActor) override;
virtual PBluetoothParent* AllocPBluetoothParent() override;
--- a/dom/ipc/PContent.ipdl
+++ b/dom/ipc/PContent.ipdl
@@ -42,17 +42,16 @@ include protocol POfflineCacheUpdate;
include protocol PRenderFrame;
include protocol PScreenManager;
include protocol PSharedBufferManager;
include protocol PSms;
include protocol PSpeechSynthesis;
include protocol PStorage;
include protocol PTelephony;
include protocol PTestShell;
-include protocol PVoicemail;
include protocol PJavaScript;
include protocol PRemoteSpellcheckEngine;
include protocol PWebBrowserPersistDocument;
include protocol PWebrtcGlobal;
include protocol PPresentation;
include protocol PVRManager;
include protocol PVideoDecoderManager;
include protocol PFlyWebPublishedServer;
@@ -372,17 +371,16 @@ nested(upto inside_cpow) sync protocol P
manages PPrinting;
manages PSendStream;
manages PScreenManager;
manages PSms;
manages PSpeechSynthesis;
manages PStorage;
manages PTelephony;
manages PTestShell;
- manages PVoicemail;
manages PJavaScript;
manages PRemoteSpellcheckEngine;
manages PWebBrowserPersistDocument;
manages PWebrtcGlobal;
manages PPresentation;
manages PFlyWebPublishedServer;
both:
@@ -822,18 +820,16 @@ parent:
async PSms();
async PSpeechSynthesis();
nested(inside_cpow) async PStorage();
async PTelephony();
- async PVoicemail();
-
async PMedia();
async PBluetooth();
async PWebrtcGlobal();
async PPresentation();
--- a/dom/moz.build
+++ b/dom/moz.build
@@ -92,17 +92,16 @@ DIRS += [
'camera',
'audiochannel',
'broadcastchannel',
'messagechannel',
'promise',
'smil',
'telephony',
'url',
- 'voicemail',
'inputmethod',
'webidl',
'xbl',
'xml',
'xslt',
'xul',
'resourcestats',
'manifest',
--- a/dom/permission/tests/mochitest-ril.ini
+++ b/dom/permission/tests/mochitest-ril.ini
@@ -1,5 +1,4 @@
[test_cellbroadcast.html]
[test_mobileconnection.html]
[test_networkstats-manage.html]
[test_telephony.html]
-[test_voicemail.html]
deleted file mode 100644
--- a/dom/permission/tests/test_voicemail.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=815105
--->
-<head>
- <meta charset="utf-8">
- <title>Test for Bug 815105 </title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
-</head>
-<body>
-<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=815105">Mozilla Bug 815105 </a>
-<p id="display"></p>
-<div id="content" style="display: none"></div>
-<pre id="test">
-<script type="application/javascript;version=1.8" src="file_framework.js"></script>
-<script type="application/javascript;version=1.8">
-var gData = [
- {
- perm: ["voicemail"],
- obj: "mozVoicemail",
- webidl: "MozVoicemail",
- settings: [["dom.voicemail.enabled", true],
- ["dom.ignore_webidl_scope_checks", true]],
- },
-]
-</script>
-</pre>
-</body>
-</html>
-
deleted file mode 100644
--- a/dom/voicemail/Voicemail.cpp
+++ /dev/null
@@ -1,260 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "mozilla/dom/Voicemail.h"
-
-#include "mozilla/dom/MozVoicemailBinding.h"
-#include "mozilla/dom/MozVoicemailEvent.h"
-#include "mozilla/dom/MozVoicemailStatusBinding.h"
-
-#include "mozilla/Preferences.h"
-#include "mozilla/Services.h"
-#include "nsContentUtils.h"
-#include "nsServiceManagerUtils.h"
-
-// Service instantiation
-#include "ipc/VoicemailIPCService.h"
-#if defined(MOZ_WIDGET_GONK) && defined(MOZ_B2G_RIL)
-#include "nsIGonkVoicemailService.h"
-#endif
-#include "nsXULAppAPI.h" // For XRE_GetProcessType()
-
-using namespace mozilla::dom;
-using mozilla::ErrorResult;
-
-class Voicemail::Listener final : public nsIVoicemailListener
-{
- Voicemail* mVoicemail;
-
-public:
- NS_DECL_ISUPPORTS
- NS_FORWARD_SAFE_NSIVOICEMAILLISTENER(mVoicemail)
-
- explicit Listener(Voicemail* aVoicemail)
- : mVoicemail(aVoicemail)
- {
- MOZ_ASSERT(mVoicemail);
- }
-
- void Disconnect()
- {
- MOZ_ASSERT(mVoicemail);
- mVoicemail = nullptr;
- }
-
-private:
- ~Listener()
- {
- MOZ_ASSERT(!mVoicemail);
- }
-};
-
-NS_IMPL_ISUPPORTS(Voicemail::Listener, nsIVoicemailListener)
-
-NS_IMPL_CYCLE_COLLECTION_INHERITED(Voicemail, DOMEventTargetHelper,
- mStatuses)
-
-NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(Voicemail)
-NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
-
-NS_IMPL_ADDREF_INHERITED(Voicemail, DOMEventTargetHelper)
-NS_IMPL_RELEASE_INHERITED(Voicemail, DOMEventTargetHelper)
-
-/* static */ already_AddRefed<Voicemail>
-Voicemail::Create(nsPIDOMWindowInner* aWindow,
- ErrorResult& aRv)
-{
- nsCOMPtr<nsIVoicemailService> service =
- do_GetService(NS_VOICEMAIL_SERVICE_CONTRACTID);
- if (!service) {
- aRv.Throw(NS_ERROR_UNEXPECTED);
- return nullptr;
- }
-
- RefPtr<Voicemail> voicemail = new Voicemail(aWindow, service);
- return voicemail.forget();
-}
-
-Voicemail::Voicemail(nsPIDOMWindowInner* aWindow,
- nsIVoicemailService* aService)
- : DOMEventTargetHelper(aWindow)
- , mService(aService)
-{
- MOZ_ASSERT(mService);
-
- mListener = new Listener(this);
- DebugOnly<nsresult> rv = mService->RegisterListener(mListener);
- NS_WARNING_ASSERTION(NS_SUCCEEDED(rv),
- "Failed registering voicemail messages with service");
-
- uint32_t length = 0;
- if (NS_SUCCEEDED(mService->GetNumItems(&length)) && length != 0) {
- mStatuses.SetLength(length);
- }
-}
-
-Voicemail::~Voicemail()
-{
- MOZ_ASSERT(!mService && !mListener);
-}
-
-void
-Voicemail::Shutdown()
-{
- mListener->Disconnect();
- mService->UnregisterListener(mListener);
-
- mListener = nullptr;
- mService = nullptr;
- mStatuses.Clear();
-}
-
-JSObject*
-Voicemail::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
-{
- return MozVoicemailBinding::Wrap(aCx, this, aGivenProto);
-}
-
-already_AddRefed<nsIVoicemailProvider>
-Voicemail::GetItemByServiceId(const Optional<uint32_t>& aOptionalServiceId,
- uint32_t& aActualServiceId) const
-{
- if (!mService) {
- return nullptr;
- }
-
- nsCOMPtr<nsIVoicemailProvider> provider;
- if (aOptionalServiceId.WasPassed()) {
- aActualServiceId = aOptionalServiceId.Value();
- mService->GetItemByServiceId(aActualServiceId,
- getter_AddRefs(provider));
- } else {
- mService->GetDefaultItem(getter_AddRefs(provider));
- if (provider) {
- NS_ENSURE_SUCCESS(provider->GetServiceId(&aActualServiceId), nullptr);
- }
- }
-
- // For all retrieved providers, they should have service id
- // < mStatuses.Length().
- MOZ_ASSERT(!provider || aActualServiceId < mStatuses.Length());
- return provider.forget();
-}
-
-already_AddRefed<VoicemailStatus>
-Voicemail::GetOrCreateStatus(uint32_t aServiceId,
- nsIVoicemailProvider* aProvider)
-{
- MOZ_ASSERT(aServiceId < mStatuses.Length());
- MOZ_ASSERT(aProvider);
-
- RefPtr<VoicemailStatus> res = mStatuses[aServiceId];
- if (!res) {
- mStatuses[aServiceId] = res = new VoicemailStatus(GetOwner(), aProvider);
- }
-
- return res.forget();
-}
-
-// MozVoicemail WebIDL
-
-already_AddRefed<VoicemailStatus>
-Voicemail::GetStatus(const Optional<uint32_t>& aServiceId,
- ErrorResult& aRv)
-{
- uint32_t actualServiceId = 0;
- nsCOMPtr<nsIVoicemailProvider> provider =
- GetItemByServiceId(aServiceId, actualServiceId);
- if (!provider) {
- aRv.Throw(NS_ERROR_UNEXPECTED);
- return nullptr;
- }
-
- return GetOrCreateStatus(actualServiceId, provider);
-}
-
-void
-Voicemail::GetNumber(const Optional<uint32_t>& aServiceId,
- nsString& aNumber,
- ErrorResult& aRv) const
-{
- aNumber.SetIsVoid(true);
-
- uint32_t unused = 0;
- nsCOMPtr<nsIVoicemailProvider> provider =
- GetItemByServiceId(aServiceId, unused);
- if (!provider) {
- aRv.Throw(NS_ERROR_UNEXPECTED);
- return;
- }
-
- aRv = provider->GetNumber(aNumber);
-}
-
-void
-Voicemail::GetDisplayName(const Optional<uint32_t>& aServiceId,
- nsString& aDisplayName,
- ErrorResult& aRv) const
-{
- aDisplayName.SetIsVoid(true);
-
- uint32_t unused = 0;
- nsCOMPtr<nsIVoicemailProvider> provider =
- GetItemByServiceId(aServiceId, unused);
- if (!provider) {
- aRv.Throw(NS_ERROR_UNEXPECTED);
- return;
- }
-
- aRv = provider->GetDisplayName(aDisplayName);
-}
-
-// nsIVoicemailListener
-
-NS_IMETHODIMP
-Voicemail::NotifyInfoChanged(nsIVoicemailProvider* aProvider)
-{
- // Ignored.
- return NS_OK;
-}
-
-NS_IMETHODIMP
-Voicemail::NotifyStatusChanged(nsIVoicemailProvider* aProvider)
-{
- NS_ENSURE_ARG_POINTER(aProvider);
-
- uint32_t serviceId = 0;
- if (NS_FAILED(aProvider->GetServiceId(&serviceId))) {
- return NS_ERROR_UNEXPECTED;
- }
-
- MozVoicemailEventInit init;
- init.mBubbles = false;
- init.mCancelable = false;
- init.mStatus = GetOrCreateStatus(serviceId, aProvider);
-
- RefPtr<MozVoicemailEvent> event =
- MozVoicemailEvent::Constructor(this, NS_LITERAL_STRING("statuschanged"), init);
- return DispatchTrustedEvent(event);
-}
-
-already_AddRefed<nsIVoicemailService>
-NS_CreateVoicemailService()
-{
- nsCOMPtr<nsIVoicemailService> service;
-
- if (XRE_IsContentProcess()) {
- service = new mozilla::dom::voicemail::VoicemailIPCService();
- } else {
-#if defined(MOZ_B2G_RIL)
-#if defined(MOZ_WIDGET_GONK)
- service = do_GetService(GONK_VOICEMAIL_SERVICE_CONTRACTID);
-#endif // MOZ_WIDGET_GONK
-#endif // MOZ_B2G_RIL
- }
-
- return service.forget();
-}
deleted file mode 100644
--- a/dom/voicemail/Voicemail.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef mozilla_dom_voicemail_voicemail_h__
-#define mozilla_dom_voicemail_voicemail_h__
-
-#include "mozilla/Attributes.h"
-#include "mozilla/DOMEventTargetHelper.h"
-#include "mozilla/ErrorResult.h"
-#include "nsIVoicemailService.h"
-
-class JSObject;
-struct JSContext;
-
-class nsPIDOMWindowInner;
-
-namespace mozilla {
-namespace dom {
-
-class VoicemailStatus;
-
-class Voicemail final : public DOMEventTargetHelper,
- private nsIVoicemailListener
-{
- /**
- * Class Voicemail doesn't actually expose nsIVoicemailListener. Instead, it
- * owns an nsIVoicemailListener derived instance mListener and passes it to
- * nsIVoicemailService. The onreceived events are first delivered to
- * mListener and then forwarded to its owner, Voicemail. See also bug 775997
- * comment #51.
- */
- class Listener;
-
-public:
- NS_DECL_ISUPPORTS_INHERITED
- NS_DECL_NSIVOICEMAILLISTENER
-
- NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(Voicemail,
- DOMEventTargetHelper)
-
- static already_AddRefed<Voicemail>
- Create(nsPIDOMWindowInner* aOwner,
- ErrorResult& aRv);
-
- void
- Shutdown();
-
- nsPIDOMWindowInner*
- GetParentObject() const
- {
- return GetOwner();
- }
-
- virtual JSObject*
- WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
-
- already_AddRefed<VoicemailStatus>
- GetStatus(const Optional<uint32_t>& aServiceId,
- ErrorResult& aRv);
-
- void
- GetNumber(const Optional<uint32_t>& aServiceId,
- nsString& aNumber,
- ErrorResult& aRv) const;
-
- void
- GetDisplayName(const Optional<uint32_t>& aServiceId,
- nsString& aDisplayName,
- ErrorResult& aRv) const;
-
- IMPL_EVENT_HANDLER(statuschanged)
-
-private:
- Voicemail(nsPIDOMWindowInner* aWindow,
- nsIVoicemailService* aService);
-
- // final suppresses -Werror,-Wdelete-non-virtual-dtor
- ~Voicemail();
-
-private:
- nsCOMPtr<nsIVoicemailService> mService;
- RefPtr<Listener> mListener;
-
- // |mStatuses| keeps all instantiated VoicemailStatus objects as well as the
- // empty slots for not interested ones. The length of |mStatuses| is decided
- // in the constructor and is never changed ever since.
- AutoTArray<RefPtr<VoicemailStatus>, 1> mStatuses;
-
- // Return a nsIVoicemailProvider instance based on the requests from external
- // components. Return nullptr if aOptionalServiceId contains an invalid
- // service id or the default one is just not available.
- already_AddRefed<nsIVoicemailProvider>
- GetItemByServiceId(const Optional<uint32_t>& aOptionalServiceId,
- uint32_t& aActualServiceId) const;
-
- // Request for a valid VoicemailStatus object based on given service id and
- // provider. It's the callee's responsibility to ensure the validity of the
- // two parameters.
- already_AddRefed<VoicemailStatus>
- GetOrCreateStatus(uint32_t aServiceId,
- nsIVoicemailProvider* aProvider);
-};
-
-} // namespace dom
-} // namespace mozilla
-
-#endif // mozilla_dom_voicemail_voicemail_h__
deleted file mode 100644
--- a/dom/voicemail/VoicemailStatus.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "mozilla/dom/VoicemailStatus.h"
-
-#include "mozilla/dom/MozVoicemailStatusBinding.h"
-#include "nsIVoicemailService.h"
-#include "nsPIDOMWindow.h"
-
-namespace mozilla {
-namespace dom {
-
-// mProvider is owned by internal service.
-NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(VoicemailStatus, mParent)
-
-NS_IMPL_CYCLE_COLLECTING_ADDREF(VoicemailStatus)
-NS_IMPL_CYCLE_COLLECTING_RELEASE(VoicemailStatus)
-
-NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(VoicemailStatus)
- NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
- NS_INTERFACE_MAP_ENTRY(nsISupports)
-NS_INTERFACE_MAP_END
-
-VoicemailStatus::VoicemailStatus(nsISupports* aParent,
- nsIVoicemailProvider* aProvider)
- : mParent(aParent)
- , mProvider(aProvider)
-{
- MOZ_ASSERT(mParent);
- MOZ_ASSERT(mProvider);
-}
-
-JSObject*
-VoicemailStatus::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
-{
- return MozVoicemailStatusBinding::Wrap(aCx, this, aGivenProto);
-}
-
-uint32_t
-VoicemailStatus::ServiceId() const
-{
- uint32_t result = 0;
- mProvider->GetServiceId(&result);
- return result;
-}
-
-bool
-VoicemailStatus::HasMessages() const
-{
- bool result = false;
- mProvider->GetHasMessages(&result);
- return result;
-}
-
-int32_t
-VoicemailStatus::MessageCount() const
-{
- int32_t result = 0;
- mProvider->GetMessageCount(&result);
- return result;
-}
-
-void
-VoicemailStatus::GetReturnNumber(nsString& aReturnNumber) const
-{
- aReturnNumber.SetIsVoid(true);
- mProvider->GetReturnNumber(aReturnNumber);
-}
-
-void
-VoicemailStatus::GetReturnMessage(nsString& aReturnMessage) const
-{
- aReturnMessage.SetIsVoid(true);
- mProvider->GetReturnMessage(aReturnMessage);
-}
-
-} // namespace dom
-} // namespace mozilla
deleted file mode 100644
--- a/dom/voicemail/VoicemailStatus.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef mozilla_dom_voicemail_VoicemailStatus_h__
-#define mozilla_dom_voicemail_VoicemailStatus_h__
-
-#include "mozilla/Attributes.h"
-#include "nsCOMPtr.h"
-#include "nsIVoicemailService.h" // For nsIVoicemailProvider.
-#include "nsString.h"
-#include "nsWrapperCache.h"
-
-namespace mozilla {
-namespace dom {
-
-class VoicemailStatus final : public nsISupports
- , public nsWrapperCache
-{
-public:
- NS_DECL_CYCLE_COLLECTING_ISUPPORTS
- NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(VoicemailStatus)
-
- VoicemailStatus(nsISupports* aParent,
- nsIVoicemailProvider* aProvider);
-
- nsISupports*
- GetParentObject() const { return mParent; }
-
- virtual JSObject*
- WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
-
- // WebIDL interface
-
- uint32_t
- ServiceId() const;
-
- bool
- HasMessages() const;
-
- int32_t
- MessageCount() const;
-
- void
- GetReturnNumber(nsString& aReturnNumber) const;
-
- void
- GetReturnMessage(nsString& aReturnMessage) const;
-
-private:
- // final suppresses -Werror,-Wdelete-non-virtual-dtor
- ~VoicemailStatus() {}
-
-private:
- nsCOMPtr<nsISupports> mParent;
- nsCOMPtr<nsIVoicemailProvider> mProvider;
-};
-
-} // namespace dom
-} // namespace mozilla
-
-#endif // mozilla_dom_voicemail_VoicemailStatus_h__
deleted file mode 100644
--- a/dom/voicemail/gonk/VoicemailService.js
+++ /dev/null
@@ -1,260 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-
-XPCOMUtils.defineLazyGetter(this, "RIL", function () {
- let obj = {};
- Cu.import("resource://gre/modules/ril_consts.js", obj);
- return obj;
-});
-
-const GONK_VOICEMAIL_SERVICE_CONTRACTID =
- "@mozilla.org/voicemail/gonkvoicemailservice;1";
-const GONK_VOICEMAIL_SERVICE_CID =
- Components.ID("{c332f318-1cce-4f02-b676-bb5031d10736}");
-
-const NS_MOBILE_CONNECTION_SERVICE_CONTRACTID =
- "@mozilla.org/mobileconnection/mobileconnectionservice;1";
-
-const NS_XPCOM_SHUTDOWN_OBSERVER_ID = "xpcom-shutdown";
-
-const NS_PREFBRANCH_PREFCHANGE_TOPIC_ID = "nsPref:changed";
-
-const kPrefRilDebuggingEnabled = "ril.debugging.enabled";
-const kPrefDefaultServiceId = "dom.voicemail.defaultServiceId";
-
-var DEBUG;
-function debug(s) {
- dump("VoicemailService: " + s);
-}
-
-function VoicemailProvider(aServiceId) {
- this.serviceId = aServiceId;
-}
-VoicemailProvider.prototype = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIVoicemailProvider]),
-
- // nsIVoicemail interface
-
- serviceId: 0,
-
- number: null,
- displayName: null,
-
- hasMessages: false,
- messageCount: 0,
- returnNumber: null,
- returnMessage: null,
-};
-
-function VoicemailService() {
- // Initialize |this._providers|.
- let mcService = Cc[NS_MOBILE_CONNECTION_SERVICE_CONTRACTID]
- .getService(Ci.nsIMobileConnectionService);
- let numItems = mcService.numItems;
- this._providers = [];
- for (let i = 0; i < numItems; i++) {
- this._providers.push(new VoicemailProvider(i));
- }
-
- this._listeners = [];
-
- // Must be initialized after |this._providers|.
- this._defaultServiceId = this._getDefaultServiceId();
- this._updateDebugFlag();
-
- Services.prefs.addObserver(kPrefRilDebuggingEnabled, this, false);
- Services.prefs.addObserver(kPrefDefaultServiceId, this, false);
-
- Services.obs.addObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID, false);
-}
-
-VoicemailService.prototype = {
- classID: GONK_VOICEMAIL_SERVICE_CID,
-
- classInfo: XPCOMUtils.generateCI({
- classID: GONK_VOICEMAIL_SERVICE_CID,
- contractID: GONK_VOICEMAIL_SERVICE_CONTRACTID,
- classDescription: "VoicemailService",
- interfaces: [
- Ci.nsIVoicemailService,
- Ci.nsIGonkVoicemailService
- ],
- flags: Ci.nsIClassInfo.SINGLETON
- }),
-
- QueryInterface: XPCOMUtils.generateQI([
- Ci.nsIVoicemailService,
- Ci.nsIGonkVoicemailService,
- Ci.nsIObserver
- ]),
-
- _defaultServiceId: null,
- _providers: null,
-
- _updateDebugFlag: function() {
- try {
- DEBUG = RIL.DEBUG_RIL ||
- Services.prefs.getBoolPref(kPrefRilDebuggingEnabled);
- } catch (e) {}
- },
-
- _getDefaultServiceId: function() {
- let id = Services.prefs.getIntPref(kPrefDefaultServiceId);
- if (id >= this.numItems || id < 0) {
- id = 0;
- }
-
- return id;
- },
-
- _listeners: null,
-
- _notifyListeners: function(aMethodName, aItem) {
- let listeners = this._listeners.slice();
- for (let listener of listeners) {
- try {
- listener[aMethodName].call(listener, aItem);
- } catch (e) {
- if (DEBUG) {
- debug("listener for " + aMethodName + " threw an exception: " + e);
- }
- }
- }
- },
-
- /**
- * nsIVoicemailService interface
- */
-
- get numItems() {
- return this._providers.length;
- },
-
- getItemByServiceId: function(aServiceId) {
- let provider = this._providers[aServiceId];
- if (!provider) {
- throw Cr.NS_ERROR_INVALID_ARG;
- }
- return provider;
- },
-
- getDefaultItem: function() {
- return this.getItemByServiceId(this._defaultServiceId);
- },
-
- registerListener: function(aListener) {
- if (this._listeners.indexOf(aListener) >= 0) {
- throw Cr.NS_ERROR_UNEXPECTED;
- }
-
- this._listeners.push(aListener);
- },
-
- unregisterListener: function(aListener) {
- let index = this._listeners.indexOf(aListener);
- if (index < 0) {
- return Cr.NS_ERROR_FAILURE;
- }
-
- this._listeners.splice(index, 1);
- },
-
- /**
- * nsIGonkVoicemailService interface
- */
-
- notifyStatusChanged: function(aServiceId, aHasMessages, aMessageCount,
- aReturnNumber, aReturnMessage) {
- if (DEBUG) {
- debug("notifyStatusChanged: " +
- JSON.stringify(Array.prototype.slice.call(arguments)));
- }
-
- let provider = this.getItemByServiceId(aServiceId);
-
- let changed = false;
- if (provider.hasMessages != aHasMessages) {
- provider.hasMessages = aHasMessages;
- changed = true;
- }
- if (provider.messageCount != aMessageCount) {
- provider.messageCount = aMessageCount;
- changed = true;
- } else if (aMessageCount == -1) {
- // For MWI using DCS the message count is not available
- changed = true;
- }
- if (provider.returnNumber != aReturnNumber) {
- provider.returnNumber = aReturnNumber;
- changed = true;
- }
- if (provider.returnMessage != aReturnMessage) {
- provider.returnMessage = aReturnMessage;
- changed = true;
- }
-
- if (changed) {
- this._notifyListeners("notifyStatusChanged", provider);
- }
- },
-
- notifyInfoChanged: function(aServiceId, aNumber, aDisplayName) {
- if (DEBUG) {
- debug("notifyInfoChanged: " +
- JSON.stringify(Array.prototype.slice.call(arguments)));
- }
-
- let provider = this.getItemByServiceId(aServiceId);
-
- let changed = false;
- if (provider.number != aNumber) {
- provider.number = aNumber;
- changed = true;
- }
- if (provider.displayName != aDisplayName) {
- provider.displayName = aDisplayName;
- changed = true;
- }
-
- if (changed) {
- this._notifyListeners("notifyInfoChanged", provider);
- }
- },
-
- /**
- * nsIObserver interface.
- */
-
- observe: function(aSubject, aTopic, aData) {
- switch (aTopic) {
- case NS_PREFBRANCH_PREFCHANGE_TOPIC_ID:
- if (aData === kPrefRilDebuggingEnabled) {
- this._updateDebugFlag();
- } else if (aData === kPrefDefaultServiceId) {
- this._defaultServiceId = this._getDefaultServiceId();
- }
- break;
-
- case NS_XPCOM_SHUTDOWN_OBSERVER_ID:
- Services.prefs.removeObserver(kPrefRilDebuggingEnabled, this);
- Services.prefs.removeObserver(kPrefDefaultServiceId, this);
-
- Services.obs.removeObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID);
-
- // Remove all listeners.
- this._listeners = [];
- break;
- }
- }
-};
-
-this.NSGetFactory = XPCOMUtils.generateNSGetFactory([VoicemailService]);
deleted file mode 100644
--- a/dom/voicemail/gonk/VoicemailService.manifest
+++ /dev/null
@@ -1,7 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-component {c332f318-1cce-4f02-b676-bb5031d10736} VoicemailService.js
-contract @mozilla.org/voicemail/gonkvoicemailservice;1 {c332f318-1cce-4f02-b676-bb5031d10736}
-
deleted file mode 100644
--- a/dom/voicemail/gonk/nsIGonkVoicemailService.idl
+++ /dev/null
@@ -1,30 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "nsIVoicemailService.idl"
-
-%{C++
-#define GONK_VOICEMAIL_SERVICE_CONTRACTID \
- "@mozilla.org/voicemail/gonkvoicemailservice;1"
-%}
-
-[scriptable, uuid(d21dbc55-f540-417d-aa3e-9e890764e957)]
-interface nsIGonkVoicemailService : nsIVoicemailService
-{
- /**
- * Called when a voicemail notification has been received by the network.
- */
- void notifyStatusChanged(in unsigned long serviceId,
- in bool hasMessages,
- in long messageCount,
- in DOMString returnNumber,
- in DOMString returnMessage);
-
- /**
- * Called when other voicemail attributes changed.
- */
- void notifyInfoChanged(in unsigned long serviceId,
- in DOMString number,
- in DOMString displayName);
-};
deleted file mode 100644
--- a/dom/voicemail/ipc/PVoicemail.ipdl
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set sw=2 ts=8 et ft=cpp : */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-include protocol PContent;
-
-namespace mozilla {
-namespace dom {
-namespace voicemail {
-
-sync protocol PVoicemail
-{
- manager PContent;
-
-child:
- async NotifyInfoChanged(uint32_t aServiceId,
- nsString aNumber,
- nsString aDisplayName);
-
- async NotifyStatusChanged(uint32_t aServiceId,
- bool aHasMessages,
- int32_t aMessageCount,
- nsString aNumber,
- nsString aDisplayName);
-
-parent:
- /**
- * Send when child no longer needs to use PVoicemail.
- */
- async __delete__();
-
- sync GetAttributes(uint32_t aServiceId)
- returns (nsString aNumber,
- nsString aDisplayName,
- bool aHasMessages,
- int32_t aMessageCount,
- nsString aReturnNumber,
- nsString aReturnMessage);
-};
-
-} // namespace voicemail
-} // namespace dom
-} // namespace mozilla
deleted file mode 100644
--- a/dom/voicemail/ipc/VoicemailIPCService.cpp
+++ /dev/null
@@ -1,261 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "mozilla/dom/voicemail/VoicemailIPCService.h"
-
-#include "mozilla/dom/ContentChild.h"
-#include "mozilla/Preferences.h"
-#include "nsIMobileConnectionService.h"
-#include "nsServiceManagerUtils.h"
-
-namespace mozilla {
-namespace dom {
-namespace voicemail {
-
-class VoicemailIPCProvider final : public nsIVoicemailProvider
-{
- friend class VoicemailIPCService;
-
-public:
- NS_DECL_ISUPPORTS
- NS_DECL_NSIVOICEMAILPROVIDER
-
- explicit VoicemailIPCProvider(uint32_t aServiceId);
-
-private:
- // final suppresses -Werror,-Wdelete-non-virtual-dtor
- ~VoicemailIPCProvider() {}
-
-private:
- uint32_t mServiceId;
- nsString mNumber;
- nsString mDisplayName;
- bool mHasMessages;
- int32_t mMessageCount;
- nsString mReturnNumber;
- nsString mReturnMessage;
-};
-
-NS_IMPL_ISUPPORTS(VoicemailIPCProvider, nsIVoicemailProvider)
-
-VoicemailIPCProvider::VoicemailIPCProvider(uint32_t aServiceId)
- : mServiceId(aServiceId)
- , mHasMessages(false)
- , mMessageCount(0)
-{
-}
-
-// nsIVoicemailProvider
-
-NS_IMETHODIMP
-VoicemailIPCProvider::GetServiceId(uint32_t* aServiceId)
-{
- NS_ENSURE_ARG_POINTER(aServiceId);
-
- *aServiceId = mServiceId;
- return NS_OK;
-}
-
-NS_IMETHODIMP
-VoicemailIPCProvider::GetNumber(nsAString& aNumber)
-{
- aNumber = mNumber;
- return NS_OK;
-}
-
-NS_IMETHODIMP
-VoicemailIPCProvider::GetDisplayName(nsAString& aDisplayName)
-{
- aDisplayName = mDisplayName;
- return NS_OK;
-}
-
-NS_IMETHODIMP
-VoicemailIPCProvider::GetHasMessages(bool* aHasMessages)
-{
- NS_ENSURE_ARG_POINTER(aHasMessages);
-
- *aHasMessages = mHasMessages;
- return NS_OK;
-}
-
-NS_IMETHODIMP
-VoicemailIPCProvider::GetMessageCount(int32_t* aMessageCount)
-{
- NS_ENSURE_ARG_POINTER(aMessageCount);
-
- *aMessageCount = mMessageCount;
- return NS_OK;
-}
-
-NS_IMETHODIMP
-VoicemailIPCProvider::GetReturnNumber(nsAString& aReturnNumber)
-{
- aReturnNumber = mReturnNumber;
- return NS_OK;
-}
-
-NS_IMETHODIMP
-VoicemailIPCProvider::GetReturnMessage(nsAString& aReturnMessage)
-{
- aReturnMessage = mReturnMessage;
- return NS_OK;
-}
-
-NS_IMPL_ISUPPORTS(VoicemailIPCService, nsIVoicemailService)
-
-VoicemailIPCService::VoicemailIPCService()
- : mActorDestroyed(false)
-{
- ContentChild::GetSingleton()->SendPVoicemailConstructor(this);
-
- nsCOMPtr<nsIMobileConnectionService> mcService =
- do_GetService(NS_MOBILE_CONNECTION_SERVICE_CONTRACTID);
- if (mcService) {
- uint32_t length = 0;
- if (NS_SUCCEEDED(mcService->GetNumItems(&length))) {
- mProviders.SetLength(length);
- }
- }
-}
-
-VoicemailIPCService::~VoicemailIPCService()
-{
- if (!mActorDestroyed) {
- Send__delete__(this);
- }
-}
-
-// PVoicemailChild
-
-bool
-VoicemailIPCService::RecvNotifyInfoChanged(const uint32_t& aServiceId,
- const nsString& aNumber,
- const nsString& aDisplayName)
-{
- nsCOMPtr<nsIVoicemailProvider> provider;
- NS_ENSURE_SUCCESS(GetItemByServiceId(aServiceId, getter_AddRefs(provider)), false);
-
- VoicemailIPCProvider* pProvider =
- static_cast<VoicemailIPCProvider*>(provider.get());
- pProvider->mNumber = aNumber;
- pProvider->mDisplayName = aDisplayName;
-
- // Listeners may unregister itself upon a info changed event, so we make a
- // copy first.
- nsTArray<nsCOMPtr<nsIVoicemailListener>> copy(mListeners);
- for (uint32_t i = 0; i < copy.Length(); i++) {
- copy[i]->NotifyInfoChanged(provider);
- }
-
- return true;
-}
-
-bool
-VoicemailIPCService::RecvNotifyStatusChanged(const uint32_t& aServiceId,
- const bool& aHasMessages,
- const int32_t& aMessageCount,
- const nsString& aReturnNumber,
- const nsString& aReturnMessage)
-{
- nsCOMPtr<nsIVoicemailProvider> provider;
- NS_ENSURE_SUCCESS(GetItemByServiceId(aServiceId, getter_AddRefs(provider)), false);
-
- VoicemailIPCProvider* pProvider =
- static_cast<VoicemailIPCProvider*>(provider.get());
- pProvider->mHasMessages = aHasMessages;
- pProvider->mMessageCount = aMessageCount;
- pProvider->mReturnNumber = aReturnNumber;
- pProvider->mReturnMessage = aReturnMessage;
-
- // Listeners may unregister itself upon a info changed event, so we make a
- // copy first.
- nsTArray<nsCOMPtr<nsIVoicemailListener>> copy(mListeners);
- for (uint32_t i = 0; i < copy.Length(); i++) {
- copy[i]->NotifyStatusChanged(provider);
- }
-
- return true;
-}
-
-void
-VoicemailIPCService::ActorDestroy(ActorDestroyReason aWhy)
-{
- mActorDestroyed = true;
-}
-
-// nsIVoicemailService
-
-NS_IMETHODIMP
-VoicemailIPCService::GetNumItems(uint32_t* aNumItems)
-{
- NS_ENSURE_ARG_POINTER(aNumItems);
-
- *aNumItems = mProviders.Length();
-
- return NS_OK;
-}
-
-NS_IMETHODIMP
-VoicemailIPCService::GetItemByServiceId(uint32_t aServiceId,
- nsIVoicemailProvider** aProvider)
-{
- NS_ENSURE_ARG(aServiceId < mProviders.Length());
- NS_ENSURE_ARG_POINTER(aProvider);
-
- if (!mProviders[aServiceId]) {
- RefPtr<VoicemailIPCProvider> provider =
- new VoicemailIPCProvider(aServiceId);
- if (!SendGetAttributes(aServiceId,
- &(provider->mNumber),
- &(provider->mDisplayName),
- &(provider->mHasMessages),
- &(provider->mMessageCount),
- &(provider->mReturnNumber),
- &(provider->mReturnMessage))) {
- return NS_ERROR_FAILURE;
- }
-
- mProviders[aServiceId] = provider;
- }
-
- RefPtr<nsIVoicemailProvider> provider(mProviders[aServiceId]);
- provider.forget(aProvider);
-
- return NS_OK;
-}
-
-NS_IMETHODIMP
-VoicemailIPCService::GetDefaultItem(nsIVoicemailProvider** aProvider)
-{
- NS_ENSURE_ARG_POINTER(aProvider);
-
- int defaultServiceId =
- Preferences::GetInt("dom.voicemail.defaultServiceId", 0);
- return GetItemByServiceId(defaultServiceId, aProvider);
-}
-
-NS_IMETHODIMP
-VoicemailIPCService::RegisterListener(nsIVoicemailListener* aListener)
-{
- NS_ENSURE_TRUE(!mActorDestroyed, NS_ERROR_UNEXPECTED);
- NS_ENSURE_TRUE(!mListeners.Contains(aListener), NS_ERROR_UNEXPECTED);
-
- mListeners.AppendElement(aListener);
- return NS_OK;
-}
-
-NS_IMETHODIMP
-VoicemailIPCService::UnregisterListener(nsIVoicemailListener* aListener)
-{
- NS_ENSURE_TRUE(!mActorDestroyed, NS_ERROR_UNEXPECTED);
-
- return mListeners.RemoveElement(aListener) ? NS_OK : NS_ERROR_UNEXPECTED;
-}
-
-} // namespace voicemail
-} // namespace dom
-} // namespace mozilla
deleted file mode 100644
--- a/dom/voicemail/ipc/VoicemailIPCService.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef mozilla_dom_voicemail_VoicemailIPCService_h
-#define mozilla_dom_voicemail_VoicemailIPCService_h
-
-#include "mozilla/Attributes.h"
-#include "mozilla/dom/voicemail/PVoicemailChild.h"
-#include "nsIVoicemailService.h"
-
-namespace mozilla {
-namespace dom {
-namespace voicemail {
-
-class VoicemailIPCService final : public PVoicemailChild
- , public nsIVoicemailService
-{
-public:
- NS_DECL_ISUPPORTS
- NS_DECL_NSIVOICEMAILSERVICE
-
- VoicemailIPCService();
-
- bool
- RecvNotifyInfoChanged(const uint32_t& aServiceId,
- const nsString& aNumber,
- const nsString& aDisplayName) override;
-
- bool
- RecvNotifyStatusChanged(const uint32_t& aServiceId,
- const bool& aHasMessages,
- const int32_t& aMessageCount,
- const nsString& aNumber,
- const nsString& aDisplayName) override;
-
- void
- ActorDestroy(ActorDestroyReason aWhy) override;
-
-private:
- // final suppresses -Werror,-Wdelete-non-virtual-dtor
- ~VoicemailIPCService();
-
-private:
- bool mActorDestroyed;
- nsTArray<nsCOMPtr<nsIVoicemailListener>> mListeners;
- nsTArray<nsCOMPtr<nsIVoicemailProvider>> mProviders;
-};
-
-} // namespace voicemail
-} // namespace dom
-} // namespace mozilla
-
-#endif // mozilla_dom_voicemail_VoicemailIPCService_h
deleted file mode 100644
--- a/dom/voicemail/ipc/VoicemailParent.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "mozilla/dom/voicemail/VoicemailParent.h"
-
-#include "nsServiceManagerUtils.h"
-
-namespace mozilla {
-namespace dom {
-namespace voicemail {
-
-NS_IMPL_ISUPPORTS(VoicemailParent,
- nsIVoicemailListener)
-
-bool
-VoicemailParent::Init()
-{
- mService = do_GetService(NS_VOICEMAIL_SERVICE_CONTRACTID);
- return mService && NS_SUCCEEDED(mService->RegisterListener(this));
-}
-
-bool
-VoicemailParent::RecvGetAttributes(const uint32_t& aServiceId,
- nsString* aNumber,
- nsString* aDisplayName,
- bool* aHasMessages,
- int32_t* aMessageCount,
- nsString* aReturnNumber,
- nsString* aReturnMessage)
-{
- nsCOMPtr<nsIVoicemailProvider> provider;
- NS_ENSURE_SUCCESS(mService->GetItemByServiceId(aServiceId,
- getter_AddRefs(provider)), false);
-
- provider->GetNumber(*aNumber);
- provider->GetDisplayName(*aDisplayName);
- provider->GetHasMessages(aHasMessages);
- provider->GetMessageCount(aMessageCount);
- provider->GetReturnNumber(*aReturnNumber);
- provider->GetReturnMessage(*aReturnMessage);
-
- return true;
-}
-
-void
-VoicemailParent::ActorDestroy(ActorDestroyReason aWhy)
-{
- mService->UnregisterListener(this);
- mService = nullptr;
-}
-
-// nsIVoicemailListener
-
-NS_IMETHODIMP
-VoicemailParent::NotifyInfoChanged(nsIVoicemailProvider* aProvider)
-{
- uint32_t serviceId = 0;
- nsString number, displayName;
-
- aProvider->GetServiceId(&serviceId);
- aProvider->GetNumber(number);
- aProvider->GetDisplayName(displayName);
-
- return SendNotifyInfoChanged(serviceId, number, displayName)
- ? NS_OK : NS_ERROR_FAILURE;
-}
-
-NS_IMETHODIMP
-VoicemailParent::NotifyStatusChanged(nsIVoicemailProvider* aProvider)
-{
- uint32_t serviceId = 0;
- bool hasMessages = false;
- int32_t messageCount = 0;
- nsString returnNumber, returnMessage;
-
- aProvider->GetServiceId(&serviceId);
- aProvider->GetHasMessages(&hasMessages);
- aProvider->GetMessageCount(&messageCount);
- aProvider->GetReturnNumber(returnNumber);
- aProvider->GetReturnMessage(returnMessage);
-
- return SendNotifyStatusChanged(serviceId, hasMessages, messageCount,
- returnNumber, returnMessage)
- ? NS_OK : NS_ERROR_FAILURE;
-}
-
-} // namespace voicemail
-} // namespace dom
-} // namespace mozilla
deleted file mode 100644
--- a/dom/voicemail/ipc/VoicemailParent.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 sts=2 et sw=2 tw=80: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef mozilla_dom_voicemail_VoicemailParent_h
-#define mozilla_dom_voicemail_VoicemailParent_h
-
-#include "mozilla/Attributes.h"
-#include "mozilla/dom/voicemail/PVoicemailParent.h"
-#include "mozilla/dom/voicemail/VoicemailParent.h"
-#include "nsIVoicemailService.h"
-#include "nsString.h"
-
-namespace mozilla {
-namespace dom {
-namespace voicemail {
-
-class VoicemailParent final : public PVoicemailParent
- , public nsIVoicemailListener
-{
-public:
- NS_DECL_ISUPPORTS
- NS_DECL_NSIVOICEMAILLISTENER
-
- VoicemailParent() { MOZ_COUNT_CTOR(VoicemailParent); }
-
- bool
- Init();
-
- bool
- RecvGetAttributes(const uint32_t& aServiceId,
- nsString* aNumber,
- nsString* aDisplayName,
- bool* aHasMessages,
- int32_t* aMessageCount,
- nsString* aReturnNumber,
- nsString* aReturnMessage) override;
-
- void
- ActorDestroy(ActorDestroyReason aWhy) override;
-
-private:
- // final suppresses -Werror,-Wdelete-non-virtual-dtor
- ~VoicemailParent() { MOZ_COUNT_DTOR(VoicemailParent); }
-
-private:
- nsCOMPtr<nsIVoicemailService> mService;
-};
-
-} // namespace voicemail
-} // namespace dom
-} // namespace mozilla
-
-#endif // mozilla_dom_voicemail_VoicemailParent_h
deleted file mode 100644
--- a/dom/voicemail/moz.build
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-XPIDL_SOURCES += [
- 'nsIVoicemailService.idl',
-]
-
-XPIDL_MODULE = 'dom_voicemail'
-
-EXPORTS.mozilla.dom += [
- 'Voicemail.h',
- 'VoicemailStatus.h',
-]
-
-EXPORTS.mozilla.dom.voicemail += [
- 'ipc/VoicemailIPCService.h',
- 'ipc/VoicemailParent.h',
-]
-
-IPDL_SOURCES += [
- 'ipc/PVoicemail.ipdl',
-]
-
-SOURCES += [
- 'ipc/VoicemailIPCService.cpp',
- 'ipc/VoicemailParent.cpp',
- 'Voicemail.cpp',
-]
-
-UNIFIED_SOURCES += [
- 'VoicemailStatus.cpp',
-]
-
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['MOZ_B2G_RIL']:
- XPIDL_SOURCES += [
- 'gonk/nsIGonkVoicemailService.idl',
- ]
- if not CONFIG['DISABLE_MOZ_RIL_GEOLOC']:
- EXTRA_COMPONENTS += [
- 'gonk/VoicemailService.js',
- 'gonk/VoicemailService.manifest',
- ]
-
-LOCAL_INCLUDES += [
- '../base',
-]
-
-include('/ipc/chromium/chromium-config.mozbuild')
-
-FINAL_LIBRARY = 'xul'
deleted file mode 100644
--- a/dom/voicemail/nsIVoicemailService.idl
+++ /dev/null
@@ -1,137 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "nsISupports.idl"
-
-interface nsIVoicemailProvider;
-
-[scriptable, uuid(6a8b0133-960d-409d-88cd-583239e45f9f)]
-interface nsIVoicemailListener : nsISupports
-{
- /**
- * Called when a voicemail status (hasMessages, messageCount, returnNumber,
- * returnMessage) changed.
- */
- void notifyStatusChanged(in nsIVoicemailProvider provider);
-
- /**
- * Called when a voicemail info (number, displayName) changed.
- */
- void notifyInfoChanged(in nsIVoicemailProvider provider);
-};
-
-%{C++
-#define NS_VOICEMAIL_SERVICE_CID \
- { 0xcdd8fd72, 0x7d55, 0x496b, \
- { 0xab, 0x1d, 0x74, 0x9f, 0xbc, 0x44, 0x56, 0x32 } }
-#define NS_VOICEMAIL_SERVICE_CONTRACTID \
- "@mozilla.org/voicemail/voicemailservice;1"
-%}
-
-/**
- * XPCOM component (in the content process) that provides the voicemail
- * information.
- */
-[scriptable, uuid(8ffd16c7-a614-4c4a-81f0-2a95e807152d)]
-interface nsIVoicemailService : nsISupports
-{
- readonly attribute unsigned long numItems;
-
- nsIVoicemailProvider getItemByServiceId(in unsigned long serviceId);
-
- nsIVoicemailProvider getDefaultItem();
-
- /**
- * Called when any one who is interested in receiving unsolicited messages.
- */
- void registerListener(in nsIVoicemailListener listener);
- void unregisterListener(in nsIVoicemailListener listener);
-};
-
-%{C++
-template<typename T> struct already_AddRefed;
-
-already_AddRefed<nsIVoicemailService>
-NS_CreateVoicemailService();
-%}
-
-[scriptable, uuid(a0bc19a2-3216-4f3f-89d3-8976a48cb829)]
-interface nsIVoicemailProvider : nsISupports
-{
- readonly attribute unsigned long serviceId;
-
- /**
- * Voicemail center number. When changed, |notifyInfoChanged| of registered
- * nsIVoicemailListener instances are called.
- *
- * Default: null
- *
- * @see 3GPP TS 31.102 subclause 4.2.63 "EFmwis (Message Waiting Indication Status)"
- * @see 3GPP TS 51.011 subclause 10.3.45 "EFmwis (Message Waiting Indication Status)"
- */
- readonly attribute DOMString number;
-
- /**
- * Voicemail center display name. When changed, |notifyInfoChanged| of
- * registered nsIVoicemailListener instances are called.
- *
- * Default: null
- *
- * @see 3GPP TS 31.102 subclause 4.2.63 "EFmwis (Message Waiting Indication Status)"
- * @see 3GPP TS 51.011 subclause 10.3.45 "EFmwis (Message Waiting Indication Status)"
- */
- readonly attribute DOMString displayName;
-
- /**
- * Whether or not there are messages waiting in the voicemail box. When
- * changed, |notifyStatusChanged| of registered nsIVoicemailListener instances
- * are called.
- *
- * Default: false
- *
- * @see 3GPP TS 23.038 chapter 4 "SMS Data Coding Scheme"
- * @see 3GPP TS 23.040 subclause 9.2.3.24.2 "Special SMS Message Indication"
- */
- readonly attribute boolean hasMessages;
-
- /**
- * When #hasMessages is true, #messageCount should be a positive number for
- * the messages waiting, or -1 if the exact number is not available. When
- * changed, |notifyStatusChanged| of registered nsIVoicemailListener instances
- * are called.
- *
- * Default: 0
- *
- * @see 3GPP TS 23.040 subclause 9.2.3.24.2 "Special SMS Message Indication"
- */
- readonly attribute long messageCount;
-
- /**
- * A Return Call Message indicates to the MS to inform the user that a call
- * (e.g. a telephone call) can be established to the address specified within
- * the #returnNumber. The #returnMessage (if present) gives displayable
- * information (e.g. the number of waiting voice messages).
- *
- * When #hasMessages is true this may contain a non-null string as the phone
- * number of a Return Call Message. When changed, |notifyStatusChanged| of
- * registered nsIVoicemailListener instances are called.
- *
- * Default: null
- *
- * @see 3GPP TS 23.040 subclause 9.2.3.9 "TPProtocolIdentifier (TPPID)"
- */
- readonly attribute DOMString returnNumber;
-
- /**
- * When #hasMessages is true this may contain a non-null string as the
- * notification message of a Return Call Message. When changed,
- * |notifyStatusChanged| of registered nsIVoicemailListener instances are
- * called.
- *
- * Default: null
- *
- * @see 3GPP TS 23.040 subclause 9.2.3.9 "TPProtocolIdentifier (TPPID)"
- */
- readonly attribute DOMString returnMessage;
-};
deleted file mode 100644
--- a/dom/voicemail/test/marionette/head.js
+++ /dev/null
@@ -1,425 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-const {Cc: Cc, Ci: Ci, Cr: Cr, Cu: Cu} = SpecialPowers;
-
-var RIL = SpecialPowers.wrap(SpecialPowers.createBlankObject());
-SpecialPowers.Cu.import("resource://gre/modules/ril_consts.js", RIL);
-
-// Emulate Promise.jsm semantics.
-Promise.defer = function() { return new Deferred(); }
-function Deferred() {
- this.promise = new Promise(function(resolve, reject) {
- this.resolve = resolve;
- this.reject = reject;
- }.bind(this));
- Object.freeze(this);
-}
-
-const MWI_PDU_PREFIX = "0000";
-const MWI_PDU_UDH_PREFIX = "0040";
-const MWI_PID_DEFAULT = "00";
-const MWI_DCS_DISCARD_INACTIVE = "C0";
-const MWI_DCS_DISCARD_ACTIVE = "C8";
-const MWI_TIMESTAMP = "00000000000000";
-
-// Only bring in what we need from ril_worker/RadioInterfaceLayer here. Reusing
-// that code turns out to be a nightmare, so there is some code duplication.
-var PDUBuilder = {
- toHexString: function(n, length) {
- let str = n.toString(16);
- if (str.length < length) {
- for (let i = 0; i < length - str.length; i++) {
- str = "0" + str;
- }
- }
- return str.toUpperCase();
- },
-
- writeUint16: function(value) {
- this.buf += (value & 0xff).toString(16).toUpperCase();
- this.buf += ((value >> 8) & 0xff).toString(16).toUpperCase();
- },
-
- writeHexOctet: function(octet) {
- this.buf += this.toHexString(octet, 2);
- },
-
- writeSwappedNibbleBCD: function(data) {
- data = data.toString();
- let zeroCharCode = '0'.charCodeAt(0);
-
- for (let i = 0; i < data.length; i += 2) {
- let low = data.charCodeAt(i) - zeroCharCode;
- let high;
- if (i + 1 < data.length) {
- high = data.charCodeAt(i + 1) - zeroCharCode;
- } else {
- high = 0xF;
- }
-
- this.writeHexOctet((high << 4) | low);
- }
- },
-
- writeStringAsSeptets: function(message, paddingBits, langIndex,
- langShiftIndex) {
- const langTable = RIL.PDU_NL_LOCKING_SHIFT_TABLES[langIndex];
- const langShiftTable = RIL.PDU_NL_SINGLE_SHIFT_TABLES[langShiftIndex];
-
- let dataBits = paddingBits;
- let data = 0;
- for (let i = 0; i < message.length; i++) {
- let septet = langTable.indexOf(message[i]);
- if (septet == RIL.PDU_NL_EXTENDED_ESCAPE) {
- continue;
- }
-
- if (septet >= 0) {
- data |= septet << dataBits;
- dataBits += 7;
- } else {
- septet = langShiftTable.indexOf(message[i]);
- if (septet == -1) {
- throw new Error(message[i] + " not in 7 bit alphabet "
- + langIndex + ":" + langShiftIndex + "!");
- }
-
- if (septet == RIL.PDU_NL_RESERVED_CONTROL) {
- continue;
- }
-
- data |= RIL.PDU_NL_EXTENDED_ESCAPE << dataBits;
- dataBits += 7;
- data |= septet << dataBits;
- dataBits += 7;
- }
-
- for (; dataBits >= 8; dataBits -= 8) {
- this.writeHexOctet(data & 0xFF);
- data >>>= 8;
- }
- }
-
- if (dataBits != 0) {
- this.writeHexOctet(data & 0xFF);
- }
- },
-
- buildAddress: function(address) {
- let addressFormat = RIL.PDU_TOA_ISDN; // 81
- if (address[0] == '+') {
- addressFormat = RIL.PDU_TOA_INTERNATIONAL | RIL.PDU_TOA_ISDN; // 91
- address = address.substring(1);
- }
-
- this.buf = "";
- this.writeHexOctet(address.length);
- this.writeHexOctet(addressFormat);
- this.writeSwappedNibbleBCD(address);
-
- return this.buf;
- },
-
- // assumes 7 bit encoding
- buildUserData: function(options) {
- let headerLength = 0;
- this.buf = "";
- if (options.headers) {
- for (let header of options.headers) {
- headerLength += 2; // id + length octets
- if (header.octets) {
- headerLength += header.octets.length;
- }
- };
- }
-
- let encodedBodyLength = (options.body) ? options.body.length : 0;
- let headerOctets = (headerLength ? headerLength + 1 : 0);
-
- let paddingBits;
- let userDataLengthInSeptets;
- let headerSeptets = Math.ceil(headerOctets * 8 / 7);
- userDataLengthInSeptets = headerSeptets + encodedBodyLength;
- paddingBits = headerSeptets * 7 - headerOctets * 8;
-
- this.writeHexOctet(userDataLengthInSeptets);
- if (options.headers) {
- this.writeHexOctet(headerLength);
-
- for (let header of options.headers) {
- this.writeHexOctet(header.id);
- this.writeHexOctet(header.length);
-
- if (header.octets) {
- for (let octet of header.octets) {
- this.writeHexOctet(octet);
- }
- }
- }
- }
-
- if (encodedBodyLength > 0) {
- this.writeStringAsSeptets(options.body, paddingBits,
- RIL.PDU_NL_IDENTIFIER_DEFAULT,
- RIL.PDU_NL_IDENTIFIER_DEFAULT);
- }
- return this.buf;
- },
-
- buildLevel2DiscardMwi: function(aActive, aSender, aBody) {
- return MWI_PDU_PREFIX +
- this.buildAddress(aSender) +
- MWI_PID_DEFAULT +
- (aActive ? MWI_DCS_DISCARD_ACTIVE : MWI_DCS_DISCARD_INACTIVE) +
- MWI_TIMESTAMP +
- this.buildUserData({ body: aBody });
- },
-
- buildLevel3DiscardMwi: function(aMessageCount, aSender, aBody) {
- let options = {
- headers: [{
- id: RIL.PDU_IEI_SPECIAL_SMS_MESSAGE_INDICATION,
- length: 2,
- octets: [
- RIL.PDU_MWI_STORE_TYPE_DISCARD,
- aMessageCount || 0
- ]
- }],
- body: aBody
- };
-
- return MWI_PDU_UDH_PREFIX +
- this.buildAddress(aSender) +
- MWI_PID_DEFAULT +
- MWI_DCS_DISCARD_ACTIVE +
- MWI_TIMESTAMP +
- this.buildUserData(options);
- }
-};
-
-var pendingEmulatorCmdCount = 0;
-
-/**
- * Send emulator command with safe guard.
- *
- * We should only call |finish()| after all emulator command transactions
- * end, so here comes with the pending counter. Resolve when the emulator
- * gives positive response, and reject otherwise.
- *
- * Fulfill params:
- * result -- an array of emulator response lines.
- *
- * Reject params:
- * result -- an array of emulator response lines.
- *
- * @return A deferred promise.
- */
-function runEmulatorCmdSafe(aCommand) {
- let deferred = Promise.defer();
-
- ++pendingEmulatorCmdCount;
- runEmulatorCmd(aCommand, function(aResult) {
- --pendingEmulatorCmdCount;
-
- ok(true, "Emulator response: " + JSON.stringify(aResult));
- if (Array.isArray(aResult) && aResult[0] === "OK") {
- deferred.resolve(aResult);
- } else {
- deferred.reject(aResult);
- }
- });
-
- return deferred.promise;
-}
-
-/**
- * Promise wrapper for |SpecialPowers.pushPermissions|.
- *
- * Fulfill params: a MozVoicemail object.
- * Reject params: (none)
- *
- * @param aPermissions
- * A permission operation description array. See
- * |SpecialPowers.pushPermissions| for more details.
- *
- * @return A deferred promise.
- */
-function pushPermissions(aPermissions) {
- let deferred = Promise.defer();
-
- SpecialPowers.pushPermissions(aPermissions, function() {
- ok(true, "permissions pushed: " + JSON.stringify(aPermissions));
- deferred.resolve();
- });
-
- return deferred.promise;
-}
-
-var voicemail;
-
-/**
- * Add required permissions and test if |navigator.mozVoicemail| exists.
- *
- * Fulfill params: a MozVoicemail object.
- * Reject params: (none)
- *
- * @return A deferred promise.
- */
-function ensureVoicemail() {
- let permissions = [{
- "type": "voicemail",
- "allow": 1,
- "context": document,
- }];
-
- return pushPermissions(permissions)
- .then(function() {
- voicemail = window.navigator.mozVoicemail;
- if (voicemail == null) {
- throw "navigator.mozVoicemail is undefined.";
- }
-
- if (!(voicemail instanceof MozVoicemail)) {
- throw "navigator.mozVoicemail is instance of " + voicemail.constructor;
- }
-
- return voicemail;
- });
-}
-
-/**
- * Wait for one named voicemail event.
- *
- * Resolve if that named event occurs. Never reject.
- *
- * Fulfill params: the DOMEvent passed.
- *
- * @param aEventName
- * A string event name.
- * @param aMatchFunc [optional]
- * An additional callback function to match the interested event
- * before removing the listener and going to resolve the promise.
- *
- * @return A deferred promise.
- */
-function waitForManagerEvent(aEventName, aMatchFunc) {
- let deferred = Promise.defer();
-
- voicemail.addEventListener(aEventName, function onevent(aEvent) {
- if (aMatchFunc && !aMatchFunc(aEvent)) {
- ok(true, "MozVoicemail event '" + aEventName + "' got" +
- " but is not interested.");
- return;
- }
-
- ok(true, "MozVoicemail event '" + aEventName + "' got.");
- voicemail.removeEventListener(aEventName, onevent);
- deferred.resolve(aEvent);
- });
-
- return deferred.promise;
-}
-
-/**
- * Send raw voicemail indicator PDU. Resolve if the indicator PDU was sent with
- * success.
- *
- * Fulfill params: (none)
- * Reject params: (none)
- *
- * @return A deferred promise.
- */
-function sendIndicatorPDU(aPDU) {
- return runEmulatorCmdSafe("sms pdu " + aPDU);
-}
-
-/**
- * Send raw voicemail indicator PDU and wait for "statuschanged" event. Resolve
- * if the indicator was sent and a "statuschanged" event was dispatched to
- * |navigator.mozVoicemail|.
- *
- * Fulfill params: (none)
- * Reject params: (none)
- *
- * @return A deferred promise.
- */
-function sendIndicatorPDUAndWait(aPDU) {
- let promises = [];
-
- promises.push(waitForManagerEvent("statuschanged"));
- promises.push(sendIndicatorPDU(aPDU));
-
- return Promise.all(promises);
-}
-
-/**
- * Check equalities of all attributes of two VoicemailStatus instances.
- */
-function compareVoicemailStatus(aStatus1, aStatus2) {
- is(aStatus1.serviceId, aStatus2.serviceId, "VoicemailStatus::serviceId");
- is(aStatus1.hasMessages, aStatus2.hasMessages, "VoicemailStatus::hasMessages");
- is(aStatus1.messageCount, aStatus2.messageCount, "VoicemailStatus::messageCount");
- is(aStatus1.returnNumber, aStatus2.returnNumber, "VoicemailStatus::returnNumber");
- is(aStatus1.returnMessage, aStatus2.returnMessage, "VoicemailStatus::returnMessage");
-}
-
-/**
- * Check if attributs of a VoicemailStatus match our expectations.
- */
-function checkVoicemailStatus(aStatus, aServiceId, aHasMessages, aMessageCount,
- aReturnNumber, aReturnMessage) {
- compareVoicemailStatus(aStatus, {
- serviceId: aServiceId,
- hasMessages: aHasMessages,
- messageCount: aMessageCount,
- returnNumber: aReturnNumber,
- returnMessage: aReturnMessage
- });
-}
-
-/**
- * Wait for pending emulator transactions and call |finish()|.
- */
-function cleanUp() {
- ok(true, ":: CLEANING UP ::");
-
- waitFor(finish, function() {
- return pendingEmulatorCmdCount === 0;
- });
-}
-
-/**
- * Basic test routine helper for voicemail tests.
- *
- * This helper does nothing but clean-ups.
- *
- * @param aTestCaseMain
- * A function that takes no parameter.
- */
-function startTestBase(aTestCaseMain) {
- Promise.resolve()
- .then(aTestCaseMain)
- .then(cleanUp, function() {
- ok(false, 'promise rejects during test.');
- cleanUp();
- });
-}
-
-/**
- * Common test routine helper for voicemail tests.
- *
- * This function ensures global |voicemail| variable is available during the
- * process and performs clean-ups as well.
- *
- * @param aTestCaseMain
- * A function that takes no parameter.
- */
-function startTestCommon(aTestCaseMain) {
- startTestBase(function() {
- return ensureVoicemail()
- .then(aTestCaseMain);
- });
-}
deleted file mode 100644
--- a/dom/voicemail/test/marionette/manifest.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[DEFAULT]
-run-if = buildapp == 'b2g'
-
-[test_voicemail_dsds_default_service_id.js]
-[test_voicemail_number.js]
-[test_voicemail_statuschanged.js]
deleted file mode 100644
--- a/dom/voicemail/test/marionette/test_voicemail_dsds_default_service_id.js
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-MARIONETTE_TIMEOUT = 60000;
-MARIONETTE_CONTEXT = "chrome";
-
-Cu.import("resource://gre/modules/Promise.jsm");
-
-const VOICEMAIL_SERVICE_CONTRACTID =
- "@mozilla.org/voicemail/gonkvoicemailservice;1";
-
-const PREF_RIL_NUM_RADIO_INTERFACES = "ril.numRadioInterfaces";
-const PREF_DEFAULT_SERVICE_ID = "dom.voicemail.defaultServiceId";
-
-function setPrefAndVerify(prefKey, setVal, service, expectedVal, deferred) {
- log(" Set '" + prefKey + "' to " + setVal);
- Services.prefs.setIntPref(prefKey, setVal);
- let prefVal = Services.prefs.getIntPref(prefKey);
- is(prefVal, setVal, "'" + prefKey + "' set to " + setVal);
-
- window.setTimeout(function() {
- let defaultVal = service.getDefaultItem().serviceId;
- is(defaultVal, expectedVal, "serviceId");
-
- deferred.resolve(service);
- }, 0);
-}
-
-function getNumRadioInterfaces() {
- let deferred = Promise.defer();
-
- window.setTimeout(function() {
- let numRil = Services.prefs.getIntPref(PREF_RIL_NUM_RADIO_INTERFACES);
- log("numRil = " + numRil);
-
- deferred.resolve(numRil);
- }, 0);
-
- return deferred.promise;
-}
-
-function getService(contractId, ifaceName) {
- let deferred = Promise.defer();
-
- window.setTimeout(function() {
- log("Getting service for " + ifaceName);
- let service = Cc[contractId].getService(Ci[ifaceName]);
- ok(service, "service.constructor is " + service.constructor);
-
- deferred.resolve(service);
- }, 0);
-
- return deferred.promise;
-}
-
-function checkInitialEquality(prefKey, service) {
- let deferred = Promise.defer();
-
- log(" Checking initial value for '" + prefKey + "'");
- let origPrefVal = Services.prefs.getIntPref(prefKey);
- ok(isFinite(origPrefVal), "default '" + prefKey + "' value");
-
- window.setTimeout(function() {
- let defaultVal = service.getDefaultItem().serviceId;
- is(defaultVal, origPrefVal, "serviceId");
-
- deferred.resolve(service);
- }, 0);
-
- return deferred.promise;
-}
-
-function checkSetToNegtiveValue(prefKey, service) {
- let deferred = Promise.defer();
-
- // Set to -1 and verify defaultVal == 0.
- setPrefAndVerify(prefKey, -1, service, 0, deferred);
-
- return deferred.promise;
-}
-
-function checkSetToOverflowedValue(prefKey, numRil, service) {
- let deferred = Promise.defer();
-
- // Set to larger-equal than numRil and verify defaultVal == 0.
- setPrefAndVerify(prefKey, numRil, service, 0, deferred);
-
- return deferred.promise;
-}
-
-function checkValueChange(prefKey, numRil, service) {
- let deferred = Promise.defer();
-
- if (numRil > 1) {
- // Set to (numRil - 1) and verify defaultVal equals.
- setPrefAndVerify(prefKey, numRil - 1, service, numRil - 1, deferred);
- } else {
- window.setTimeout(function() {
- deferred.resolve(service);
- }, 0);
- }
-
- return deferred.promise;
-}
-
-function verify(contractId, ifaceName, prefKey, numRil) {
- let deferred = Promise.defer();
-
- getService(contractId, ifaceName)
- .then(checkInitialEquality.bind(null, prefKey))
- .then(checkSetToNegtiveValue.bind(null, prefKey))
- .then(checkSetToOverflowedValue.bind(null, prefKey, numRil))
- .then(checkValueChange.bind(null, prefKey, numRil))
- .then(function() {
- // Reset.
- Services.prefs.clearUserPref(prefKey);
-
- deferred.resolve(numRil);
- });
-
- return deferred.promise;
-}
-
-getNumRadioInterfaces()
- .then(verify.bind(null, VOICEMAIL_SERVICE_CONTRACTID, "nsIVoicemailService",
- PREF_DEFAULT_SERVICE_ID))
- .then(finish);
deleted file mode 100644
--- a/dom/voicemail/test/marionette/test_voicemail_number.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-const MARIONETTE_TIMEOUT = 60000;
-const MARIONETTE_HEAD_JS = 'head.js';
-
-startTestCommon(function() {
- let serviceId = 0;
-
- // These are the emulator's hard coded voicemail number and alphaId
- is(voicemail.getNumber(serviceId), "+15552175049");
- is(voicemail.getDisplayName(serviceId), "Voicemail");
-
- is(voicemail.getNumber(), "+15552175049");
- is(voicemail.getDisplayName(), "Voicemail");
-});
deleted file mode 100644
--- a/dom/voicemail/test/marionette/test_voicemail_statuschanged.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-const MARIONETTE_TIMEOUT = 60000;
-const MARIONETTE_HEAD_JS = 'head.js';
-
-// TODO: Add tests for store/discard once they are implemented
-// See RadioInterfaceLayer.js / Bug #768441
-
-function checkEventStatus(aEvent, aServiceId, aHasMessages, aMessageCount,
- aReturnNumber, aReturnMessage) {
- let status = aEvent.status;
- ok(true, "status = " + JSON.stringify(status));
- ok(status instanceof MozVoicemailStatus);
-
- checkVoicemailStatus(status, 0, aHasMessages, aMessageCount, aReturnNumber,
- aReturnMessage);
-
- compareVoicemailStatus(voicemail.getStatus(0), status);
- compareVoicemailStatus(voicemail.getStatus(), status);
-}
-
-function testLevel2Discard(aActive) {
- log(" Active: " + aActive);
-
- let sender = "+15125551235";
- let body = "1 new voicemail";
- let pdu = PDUBuilder.buildLevel2DiscardMwi(aActive, sender, body);
- return sendIndicatorPDUAndWait(pdu)
- .then((aResults) => checkEventStatus(aResults[0], 0, aActive,
- (aActive ? -1 : 0), sender, body));
-}
-
-// Tests for Level 3 MWI with a message count in the User Data Header
-function testLevel3Discard(aMessageCount, aBody) {
- log(" Message Count: " + aMessageCount + ", Body: " + aBody);
-
- let sender = "+15125551236";
- let pdu = PDUBuilder.buildLevel3DiscardMwi(aMessageCount, sender, aBody);
- return sendIndicatorPDUAndWait(pdu)
- .then((aResults) => checkEventStatus(aResults[0], 0, !!aMessageCount,
- aMessageCount, sender, aBody));
-}
-
-startTestCommon(function() {
- return Promise.resolve()
-
- .then(() => log("Testing Message Waiting Indication Group"))
- // Level 2 discarded active/inactive MWI.
- .then(() => log(" Discard Message"))
- .then(() => testLevel2Discard(true))
- .then(() => testLevel2Discard(false))
-
- .then(() => log("Testing Special SMS Message Indication"))
- .then(() => log(" Discard Message"))
- // Level 3 discarded active/inactive MWI.
- .then(() => testLevel3Discard(3, "3 voicemails"))
- .then(() => testLevel3Discard(0, "0 voicemail"))
- .then(() => testLevel3Discard(3, null))
- .then(() => testLevel3Discard(0, null));
-});
deleted file mode 100644
--- a/dom/webidl/MozVoicemail.webidl
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */
-/* vim: set ts=2 et sw=2 tw=40: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-[Pref="dom.voicemail.enabled",
- ChromeOnly]
-interface MozVoicemail : EventTarget
-{
- /**
- * The current voicemail status of a specified service, or null when the
- * status is unknown.
- */
- [Throws]
- MozVoicemailStatus getStatus(optional unsigned long serviceId);
-
- /**
- * The voicemail box dialing number of a specified service, or null if one
- * wasn't found.
- */
- [Throws]
- DOMString getNumber(optional unsigned long serviceId);
-
- /**
- * The display name of the voicemail box dialing number of a specified service,
- * or null if one wasn't found.
- */
- [Throws]
- DOMString getDisplayName(optional unsigned long serviceId);
-
- /**
- * The current voicemail status has changed.
- */
- attribute EventHandler onstatuschanged;
-};
deleted file mode 100644
--- a/dom/webidl/MozVoicemailEvent.webidl
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-[Constructor(DOMString type, optional MozVoicemailEventInit eventInitDict),
- Pref="dom.voicemail.enabled",
- ChromeOnly]
-interface MozVoicemailEvent : Event
-{
- readonly attribute MozVoicemailStatus? status;
-};
-
-dictionary MozVoicemailEventInit : EventInit
-{
- MozVoicemailStatus? status = null;
-};
deleted file mode 100644
--- a/dom/webidl/MozVoicemailStatus.webidl
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */
-/* vim: set ts=2 et sw=2 tw=40: */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-[Pref="dom.voicemail.enabled",
- ChromeOnly]
-interface MozVoicemailStatus
-{
- readonly attribute unsigned long serviceId;
-
- /**
- * Whether or not there are messages waiting in the voicemail box
- */
- readonly attribute boolean hasMessages;
-
- /**
- * The total message count. Some voicemail indicators will only specify that
- * messages are waiting, but not the actual number. In that case, the value
- * of messageCount will be -1, indicating the unknown message count.
- *
- * Logic for a voicemail notification might look something like:
- * if (status.hasMessages) {
- * // show new voicemail notification
- * if (status.messageCount > 0) {
- * // add a label for the message count
- * }
- * } else {
- * // hide the voicemail notification
- * }
- */
- readonly attribute long messageCount;
-
- /**
- * Return call number received for this voicemail status, or null if one
- * wasn't provided.
- */
- readonly attribute DOMString? returnNumber;
-
- /**
- * Displayable return call message received for this voicemail status, or null
- * if one wasn't provided.
- */
- readonly attribute DOMString? returnMessage;
-};
--- a/dom/webidl/Navigator.webidl
+++ b/dom/webidl/Navigator.webidl
@@ -278,22 +278,16 @@ partial interface Navigator {
#ifdef MOZ_B2G_RIL
partial interface Navigator {
[Throws, Pref="dom.mobileconnection.enabled", ChromeOnly, UnsafeInPrerendering]
readonly attribute MozMobileConnectionArray mozMobileConnections;
};
partial interface Navigator {
- [Throws, Pref="dom.voicemail.enabled", ChromeOnly,
- UnsafeInPrerendering]
- readonly attribute MozVoicemail mozVoicemail;
-};
-
-partial interface Navigator {
[Throws, Pref="dom.icc.enabled", ChromeOnly,
UnsafeInPrerendering]
readonly attribute MozIccManager? mozIccManager;
};
partial interface Navigator {
[Throws, Pref="dom.telephony.enabled", ChromeOnly, UnsafeInPrerendering]
readonly attribute Telephony? mozTelephony;
--- a/dom/webidl/moz.build
+++ b/dom/webidl/moz.build
@@ -342,18 +342,16 @@ WEBIDL_FILES = [
'MozMobileConnectionArray.webidl',
'MozMobileConnectionInfo.webidl',
'MozMobileMessageManager.webidl',
'MozMobileNetworkInfo.webidl',
'MozPowerManager.webidl',
'MozSelfSupport.webidl',
'MozTetheringManager.webidl',
'MozTimeManager.webidl',
- 'MozVoicemail.webidl',
- 'MozVoicemailStatus.webidl',
'MozWakeLock.webidl',
'MutationEvent.webidl',
'MutationObserver.webidl',
'NamedNodeMap.webidl',
'NativeOSFileInternals.webidl',
'NetDashboard.webidl',
'NetworkInformation.webidl',
'NetworkOptions.webidl',
@@ -798,17 +796,16 @@ GENERATED_EVENTS_WEBIDL_FILES = [
'MozEmergencyCbModeEvent.webidl',
'MozMessageDeletedEvent.webidl',
'MozMmsEvent.webidl',
'MozOtaStatusEvent.webidl',
'MozSettingsEvent.webidl',
'MozSettingsTransactionEvent.webidl',
'MozSmsEvent.webidl',
'MozStkCommandEvent.webidl',
- 'MozVoicemailEvent.webidl',
'PageTransitionEvent.webidl',
'PerformanceEntryEvent.webidl',
'PluginCrashedEvent.webidl',
'PopStateEvent.webidl',
'PopupBlockedEvent.webidl',
'PresentationConnectionAvailableEvent.webidl',
'PresentationConnectionClosedEvent.webidl',
'ProgressEvent.webidl',
--- a/layout/build/nsLayoutModule.cpp
+++ b/layout/build/nsLayoutModule.cpp
@@ -213,17 +213,16 @@ static void Shutdown();
#include "mozilla/dom/FlyWebService.h"
#include "mozilla/dom/power/PowerManagerService.h"
#include "mozilla/dom/time/TimeService.h"
#include "StreamingProtocolService.h"
#include "nsIPresentationService.h"
#include "nsITelephonyService.h"
-#include "nsIVoicemailService.h"
#include "FakeInputPortService.h"
#include "InputPortData.h"
#include "InputPortServiceFactory.h"
#include "nsIInputPortService.h"
#ifdef MOZ_WIDGET_GONK
#include "GonkGPSGeolocationProvider.h"
@@ -367,18 +366,16 @@ NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR
nsVolumeService::GetSingleton)
#endif
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMediaManagerService,
MediaManager::GetInstance)
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIMobileConnectionService,
NS_CreateMobileConnectionService)
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsITelephonyService,
NS_CreateTelephonyService)
-NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIVoicemailService,
- NS_CreateVoicemailService)
NS_GENERIC_FACTORY_CONSTRUCTOR(PresentationDeviceManager)
NS_GENERIC_FACTORY_CONSTRUCTOR(TextInputProcessor)
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(FakeInputPortService,
InputPortServiceFactory::CreateFakeInputPortService)
NS_GENERIC_FACTORY_CONSTRUCTOR(InputPortData)
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIPresentationService,
NS_CreatePresentationService)
NS_GENERIC_FACTORY_CONSTRUCTOR(PresentationTCPSessionTransport)
@@ -803,17 +800,16 @@ NS_DEFINE_NAMED_CID(NS_HAPTICFEEDBACK_CI
#endif
#endif
#ifndef DISABLE_MOZ_RIL_GEOLOC
#ifdef MOZ_WIDGET_GONK
NS_DEFINE_NAMED_CID(GONK_GPS_GEOLOCATION_PROVIDER_CID);
#endif
#endif
NS_DEFINE_NAMED_CID(TELEPHONY_SERVICE_CID);
-NS_DEFINE_NAMED_CID(NS_VOICEMAIL_SERVICE_CID);
NS_DEFINE_NAMED_CID(NS_MOBILE_CONNECTION_SERVICE_CID);
NS_DEFINE_NAMED_CID(SMS_SERVICE_CID);
NS_DEFINE_NAMED_CID(ICC_SERVICE_CID);
NS_DEFINE_NAMED_CID(MMS_SERVICE_CID);
NS_DEFINE_NAMED_CID(MOBILE_MESSAGE_SERVICE_CID);
NS_DEFINE_NAMED_CID(MOBILE_MESSAGE_DATABASE_SERVICE_CID);
NS_DEFINE_NAMED_CID(NS_POWERMANAGERSERVICE_CID);
NS_DEFINE_NAMED_CID(OSFILECONSTANTSSERVICE_CID);
@@ -1122,17 +1118,16 @@ static const mozilla::Module::CIDEntry k
{ &kGONK_GPS_GEOLOCATION_PROVIDER_CID, false, nullptr, nsIGeolocationProviderConstructor },
#endif
{ &kNS_MEDIAMANAGERSERVICE_CID, false, nullptr, nsIMediaManagerServiceConstructor },
#ifdef ACCESSIBILITY
{ &kNS_ACCESSIBILITY_SERVICE_CID, false, nullptr, CreateA11yService },
#endif
{ &kTELEPHONY_SERVICE_CID, false, nullptr, nsITelephonyServiceConstructor },
{ &kNS_MOBILE_CONNECTION_SERVICE_CID, false, NULL, nsIMobileConnectionServiceConstructor },
- { &kNS_VOICEMAIL_SERVICE_CID, false, nullptr, nsIVoicemailServiceConstructor },
{ &kPRESENTATION_SERVICE_CID, false, nullptr, nsIPresentationServiceConstructor },
{ &kPRESENTATION_DEVICE_MANAGER_CID, false, nullptr, PresentationDeviceManagerConstructor },
{ &kPRESENTATION_TCP_SESSION_TRANSPORT_CID, false, nullptr, PresentationTCPSessionTransportConstructor },
{ &kTEXT_INPUT_PROCESSOR_CID, false, nullptr, TextInputProcessorConstructor },
{ &kFAKE_INPUTPORT_SERVICE_CID, false, nullptr, FakeInputPortServiceConstructor },
{ &kINPUTPORT_DATA_CID, false, nullptr, InputPortDataConstructor },
#ifdef MOZ_B2G
{ &kNS_HARDWARE_KEY_HANDLER_CID, false, nullptr, nsIHardwareKeyHandlerConstructor },
@@ -1282,17 +1277,16 @@ static const mozilla::Module::ContractID
{ MEDIAMANAGERSERVICE_CONTRACTID, &kNS_MEDIAMANAGERSERVICE_CID },
#ifdef ACCESSIBILITY
{ "@mozilla.org/accessibilityService;1", &kNS_ACCESSIBILITY_SERVICE_CID },
{ "@mozilla.org/accessibleRetrieval;1", &kNS_ACCESSIBILITY_SERVICE_CID },
#endif
{ TELEPHONY_SERVICE_CONTRACTID, &kTELEPHONY_SERVICE_CID },
{ "@mozilla.org/gecko-media-plugin-service;1", &kGECKO_MEDIA_PLUGIN_SERVICE_CID },
{ NS_MOBILE_CONNECTION_SERVICE_CONTRACTID, &kNS_MOBILE_CONNECTION_SERVICE_CID },
- { NS_VOICEMAIL_SERVICE_CONTRACTID, &kNS_VOICEMAIL_SERVICE_CID },
{ PRESENTATION_SERVICE_CONTRACTID, &kPRESENTATION_SERVICE_CID },
{ PRESENTATION_DEVICE_MANAGER_CONTRACTID, &kPRESENTATION_DEVICE_MANAGER_CID },
{ PRESENTATION_TCP_SESSION_TRANSPORT_CONTRACTID, &kPRESENTATION_TCP_SESSION_TRANSPORT_CID },
{ "@mozilla.org/text-input-processor;1", &kTEXT_INPUT_PROCESSOR_CID },
{ FAKE_INPUTPORT_SERVICE_CONTRACTID, &kFAKE_INPUTPORT_SERVICE_CID },
{ INPUTPORT_DATA_CONTRACTID, &kINPUTPORT_DATA_CID },
#ifdef MOZ_B2G
{ NS_HARDWARE_KEY_HANDLER_CONTRACTID, &kNS_HARDWARE_KEY_HANDLER_CID },
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -5048,26 +5048,16 @@ pref("dom.icc.enabled", false);
// Mobile Connection API
#ifdef MOZ_B2G_RIL
pref("dom.mobileconnection.enabled", true);
#else
pref("dom.mobileconnection.enabled", false);
#endif
-// Voice Mail API
-#ifdef MOZ_B2G_RIL
-pref("dom.voicemail.enabled", true);
-#else
-pref("dom.voicemail.enabled", false);
-#endif
-// Numeric default service id for Voice Mail API calls with |serviceId|
-// parameter omitted.
-pref("dom.voicemail.defaultServiceId", 0);
-
// Enable mapped array buffer by default.
pref("dom.mapped_arraybuffer.enabled", true);
// The tables used for Safebrowsing phishing and malware checks.
pref("urlclassifier.malwareTable", "goog-malware-shavar,goog-unwanted-shavar,test-malware-simple,test-unwanted-simple");
#ifdef MOZILLA_OFFICIAL
// In the official build, we are allowed to use google's private
--- a/testing/marionette/harness/marionette/tests/webapi-tests.ini
+++ b/testing/marionette/harness/marionette/tests/webapi-tests.ini
@@ -1,11 +1,10 @@
[include:../../../../../dom/bluetooth/tests/marionette/manifest.ini]
[include:../../../../../dom/telephony/test/marionette/manifest.ini]
-[include:../../../../../dom/voicemail/test/marionette/manifest.ini]
[include:../../../../../dom/battery/test/marionette/manifest.ini]
[include:../../../../../dom/mobilemessage/tests/marionette/manifest.ini]
[include:../../../../../dom/mobileconnection/tests/marionette/manifest.ini]
[include:../../../../../dom/system/gonk/tests/marionette/manifest.ini]
[include:../../../../../dom/icc/tests/marionette/manifest.ini]
[include:../../../../../dom/system/tests/marionette/manifest.ini]
[include:../../../../../dom/nfc/tests/marionette/manifest.ini]
skip-if = android_version > '15' # Bug 1203072
--- a/testing/mochitest/manifest.webapp
+++ b/testing/mochitest/manifest.webapp
@@ -9,17 +9,16 @@
"permissions": {
"alarms": {},
"browser":{},
"power":{},
"webapps-manage":{},
"mobileconnection":{},
"bluetooth":{},
"telephony":{},
- "voicemail":{},
"device-storage:pictures":{ "access": "readwrite" },
"device-storage:sdcard":{ "access": "readwrite" },
"settings":{ "access": "readwrite" },
"storage":{},
"camera":{},
"geolocation":{},
"wifi-manage":{},
"desktop-notification":{},