summaryrefslogtreecommitdiff
path: root/dom
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2021-10-14 23:35:18 +0000
committerMoonchild <moonchild@palemoon.org>2022-04-01 15:22:15 +0200
commit39f9ab375b2bfd9e46df9695b78870cf1e9cf3c6 (patch)
tree522ad2b33de883f03a53ffa17e4d74202bcf762a /dom
parent28a3cd1028612b3b577768519d11fa6fbcda6f09 (diff)
downloaduxp-39f9ab375b2bfd9e46df9695b78870cf1e9cf3c6.tar.gz
Issue #1053 - Remove /dom/system/android and dependent modules,
as well as robocop.
Diffstat (limited to 'dom')
-rw-r--r--dom/gamepad/android/AndroidGamepad.cpp84
-rw-r--r--dom/gamepad/moz.build4
-rw-r--r--dom/geolocation/moz.build6
-rw-r--r--dom/ipc/moz.build2
-rw-r--r--dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.cpp139
-rw-r--r--dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.h68
-rw-r--r--dom/media/eme/mediadrm/MediaDrmCDMProxy.cpp466
-rw-r--r--dom/media/eme/mediadrm/MediaDrmCDMProxy.h183
-rw-r--r--dom/media/eme/mediadrm/MediaDrmProxySupport.cpp283
-rw-r--r--dom/media/eme/mediadrm/MediaDrmProxySupport.h66
-rw-r--r--dom/media/eme/mediadrm/moz.build18
-rw-r--r--dom/media/eme/moz.build3
-rw-r--r--dom/media/gmp/moz.build10
-rw-r--r--dom/media/systemservices/OpenSLESProvider.cpp189
-rw-r--r--dom/media/systemservices/OpenSLESProvider.h68
-rw-r--r--dom/media/systemservices/moz.build9
-rw-r--r--dom/moz.build2
-rw-r--r--dom/system/android/AndroidLocationProvider.cpp54
-rw-r--r--dom/system/android/AndroidLocationProvider.h22
-rw-r--r--dom/system/android/moz.build16
-rw-r--r--dom/system/android/nsHapticFeedback.cpp19
-rw-r--r--dom/system/android/nsHapticFeedback.h16
-rw-r--r--dom/system/moz.build2
-rw-r--r--dom/xbl/builtin/android/jar.mn6
-rw-r--r--dom/xbl/builtin/android/moz.build6
-rw-r--r--dom/xbl/builtin/android/platformHTMLBindings.xml162
-rw-r--r--dom/xbl/builtin/moz.build2
27 files changed, 3 insertions, 1902 deletions
diff --git a/dom/gamepad/android/AndroidGamepad.cpp b/dom/gamepad/android/AndroidGamepad.cpp
deleted file mode 100644
index 889250f989..0000000000
--- a/dom/gamepad/android/AndroidGamepad.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#include "GeneratedJNIWrappers.h"
-#include "GeneratedJNINatives.h"
-#include "nsThreadUtils.h"
-#include "mozilla/dom/Gamepad.h"
-
-namespace mozilla {
-namespace dom {
-
-class AndroidGamepadManager final
- : public java::AndroidGamepadManager::Natives<AndroidGamepadManager>
-{
- AndroidGamepadManager() = delete;
-
-public:
- static void
- OnGamepadChange(int32_t aID, bool aAdded)
- {
- RefPtr<GamepadPlatformService> service =
- GamepadPlatformService::GetParentService();
- if (!service) {
- return;
- }
-
- if (aAdded) {
- const int svc_id = service->AddGamepad(
- "android", GamepadMappingType::Standard,
- kStandardGamepadButtons, kStandardGamepadAxes);
- java::AndroidGamepadManager::OnGamepadAdded(aID, svc_id);
-
- } else {
- service->RemoveGamepad(aID);
- }
- }
-
- static void
- OnButtonChange(int32_t aID, int32_t aButton, bool aPressed, float aValue)
- {
- RefPtr<GamepadPlatformService> service =
- GamepadPlatformService::GetParentService();
- if (!service) {
- return;
- }
-
- service->NewButtonEvent(aID, aButton, aPressed, aValue);
- }
-
- static void
- OnAxisChange(int32_t aID, jni::BooleanArray::Param aValid,
- jni::FloatArray::Param aValues)
- {
- RefPtr<GamepadPlatformService> service =
- GamepadPlatformService::GetParentService();
- if (!service) {
- return;
- }
-
- const auto& valid = aValid->GetElements();
- const auto& values = aValues->GetElements();
- MOZ_ASSERT(valid.Length() == values.Length());
-
- for (size_t i = 0; i < values.Length(); i++) {
- service->NewAxisMoveEvent(aID, i, values[i]);
- }
- }
-};
-
-void StartGamepadMonitoring()
-{
- AndroidGamepadManager::Init();
- java::AndroidGamepadManager::Start();
-}
-
-void StopGamepadMonitoring()
-{
- java::AndroidGamepadManager::Stop();
-}
-
-} // namespace dom
-} // namespace mozilla
diff --git a/dom/gamepad/moz.build b/dom/gamepad/moz.build
index 15205e4c83..cee84f4290 100644
--- a/dom/gamepad/moz.build
+++ b/dom/gamepad/moz.build
@@ -56,10 +56,6 @@ if CONFIG['MOZ_GAMEPAD']:
SOURCES += [
'linux/LinuxGamepad.cpp'
]
- elif CONFIG['MOZ_GAMEPAD_BACKEND'] == 'android':
- SOURCES += [
- 'android/AndroidGamepad.cpp'
- ]
LOCAL_INCLUDES += [
'ipc',
diff --git a/dom/geolocation/moz.build b/dom/geolocation/moz.build
index d8ecf1ac17..4a7d8b17be 100644
--- a/dom/geolocation/moz.build
+++ b/dom/geolocation/moz.build
@@ -25,11 +25,7 @@ LOCAL_INCLUDES += [
'/dom/ipc',
]
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
- LOCAL_INCLUDES += [
- '/dom/system/android',
- ]
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
LOCAL_INCLUDES += [
'/dom/system/windows',
]
diff --git a/dom/ipc/moz.build b/dom/ipc/moz.build
index e00e247446..7ebd02e156 100644
--- a/dom/ipc/moz.build
+++ b/dom/ipc/moz.build
@@ -133,7 +133,7 @@ if CONFIG['OS_ARCH'] != 'WINNT':
DEFINES['BIN_SUFFIX'] = '"%s"' % CONFIG['BIN_SUFFIX']
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gtk2'):
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk2':
DEFINES['MOZ_ENABLE_FREETYPE'] = True
if CONFIG['MOZ_TOOLKIT_SEARCH']:
diff --git a/dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.cpp b/dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.cpp
deleted file mode 100644
index 300093b844..0000000000
--- a/dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#include "MediaDrmCDMCallbackProxy.h"
-#include "mozilla/CDMProxy.h"
-#include "nsString.h"
-#include "mozilla/dom/MediaKeys.h"
-#include "mozilla/dom/MediaKeySession.h"
-#include "mozIGeckoMediaPluginService.h"
-#include "nsContentCID.h"
-#include "nsServiceManagerUtils.h"
-#include "MainThreadUtils.h"
-#include "mozilla/EMEUtils.h"
-
-namespace mozilla {
-
-MediaDrmCDMCallbackProxy::MediaDrmCDMCallbackProxy(CDMProxy* aProxy)
- : mProxy(aProxy)
-{
-
-}
-
-void
-MediaDrmCDMCallbackProxy::SetSessionId(uint32_t aToken,
- const nsCString& aSessionId)
-{
- MOZ_ASSERT(NS_IsMainThread());
- mProxy->OnSetSessionId(aToken, NS_ConvertUTF8toUTF16(aSessionId));
-}
-
-void
-MediaDrmCDMCallbackProxy::ResolveLoadSessionPromise(uint32_t aPromiseId,
- bool aSuccess)
-{
- MOZ_ASSERT(NS_IsMainThread());
- mProxy->OnResolveLoadSessionPromise(aPromiseId, aSuccess);
-}
-
-void
-MediaDrmCDMCallbackProxy::ResolvePromise(uint32_t aPromiseId)
-{
- // Note: CDMProxy proxies this from non-main threads to main thread.
- mProxy->ResolvePromise(aPromiseId);
-}
-
-void
-MediaDrmCDMCallbackProxy::RejectPromise(uint32_t aPromiseId,
- nsresult aException,
- const nsCString& aMessage)
-{
- MOZ_ASSERT(NS_IsMainThread());
- mProxy->OnRejectPromise(aPromiseId, aException, aMessage);
-}
-
-void
-MediaDrmCDMCallbackProxy::SessionMessage(const nsCString& aSessionId,
- dom::MediaKeyMessageType aMessageType,
- const nsTArray<uint8_t>& aMessage)
-{
- MOZ_ASSERT(NS_IsMainThread());
- // For removing constness
- nsTArray<uint8_t> message(aMessage);
- mProxy->OnSessionMessage(NS_ConvertUTF8toUTF16(aSessionId), aMessageType, message);
-}
-
-void
-MediaDrmCDMCallbackProxy::ExpirationChange(const nsCString& aSessionId,
- UnixTime aExpiryTime)
-{
- MOZ_ASSERT(NS_IsMainThread());
- mProxy->OnExpirationChange(NS_ConvertUTF8toUTF16(aSessionId), aExpiryTime);
-}
-
-void
-MediaDrmCDMCallbackProxy::SessionClosed(const nsCString& aSessionId)
-{
- MOZ_ASSERT(NS_IsMainThread());
- bool keyStatusesChange = false;
- {
- CDMCaps::AutoLock caps(mProxy->Capabilites());
- keyStatusesChange = caps.RemoveKeysForSession(NS_ConvertUTF8toUTF16(aSessionId));
- }
- if (keyStatusesChange) {
- mProxy->OnKeyStatusesChange(NS_ConvertUTF8toUTF16(aSessionId));
- }
- mProxy->OnSessionClosed(NS_ConvertUTF8toUTF16(aSessionId));
-}
-
-void
-MediaDrmCDMCallbackProxy::SessionError(const nsCString& aSessionId,
- nsresult aException,
- uint32_t aSystemCode,
- const nsCString& aMessage)
-{
- MOZ_ASSERT(NS_IsMainThread());
- mProxy->OnSessionError(NS_ConvertUTF8toUTF16(aSessionId),
- aException,
- aSystemCode,
- NS_ConvertUTF8toUTF16(aMessage));
-}
-
-void
-MediaDrmCDMCallbackProxy::BatchedKeyStatusChanged(const nsCString& aSessionId,
- const nsTArray<CDMKeyInfo>& aKeyInfos)
-{
- MOZ_ASSERT(NS_IsMainThread());
- BatchedKeyStatusChangedInternal(aSessionId, aKeyInfos);
-}
-
-void
-MediaDrmCDMCallbackProxy::BatchedKeyStatusChangedInternal(const nsCString& aSessionId,
- const nsTArray<CDMKeyInfo>& aKeyInfos)
-{
- bool keyStatusesChange = false;
- {
- CDMCaps::AutoLock caps(mProxy->Capabilites());
- for (size_t i = 0; i < aKeyInfos.Length(); i++) {
- keyStatusesChange |=
- caps.SetKeyStatus(aKeyInfos[i].mKeyId,
- NS_ConvertUTF8toUTF16(aSessionId),
- aKeyInfos[i].mStatus);
- }
- }
- if (keyStatusesChange) {
- mProxy->OnKeyStatusesChange(NS_ConvertUTF8toUTF16(aSessionId));
- }
-}
-
-void
-MediaDrmCDMCallbackProxy::Decrypted(uint32_t aId,
- DecryptStatus aResult,
- const nsTArray<uint8_t>& aDecryptedData)
-{
- MOZ_ASSERT_UNREACHABLE("Fennec could not handle decrypted event");
-}
-
-} // namespace mozilla \ No newline at end of file
diff --git a/dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.h b/dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.h
deleted file mode 100644
index c7a0810ee5..0000000000
--- a/dom/media/eme/mediadrm/MediaDrmCDMCallbackProxy.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#ifndef MediaDrmCDMCallbackProxy_h_
-#define MediaDrmCDMCallbackProxy_h_
-
-#include "mozilla/CDMProxy.h"
-#include "mozilla/DecryptorProxyCallback.h"
-
-namespace mozilla {
-class CDMProxy;
-// Proxies call backs from the MediaDrmProxy -> MediaDrmProxySupport back to the MediaKeys
-// object on the main thread.
-// We used annotation calledFrom = "gecko" to ensure running on main thread.
-class MediaDrmCDMCallbackProxy : public DecryptorProxyCallback {
-public:
-
- void SetDecryptorId(uint32_t aId) override {}
-
- void SetSessionId(uint32_t aCreateSessionToken,
- const nsCString& aSessionId) override;
-
- void ResolveLoadSessionPromise(uint32_t aPromiseId,
- bool aSuccess) override;
-
- void ResolvePromise(uint32_t aPromiseId) override;
-
- void RejectPromise(uint32_t aPromiseId,
- nsresult aException,
- const nsCString& aSessionId) override;
-
- void SessionMessage(const nsCString& aSessionId,
- dom::MediaKeyMessageType aMessageType,
- const nsTArray<uint8_t>& aMessage) override;
-
- void ExpirationChange(const nsCString& aSessionId,
- UnixTime aExpiryTime) override;
-
- void SessionClosed(const nsCString& aSessionId) override;
-
- void SessionError(const nsCString& aSessionId,
- nsresult aException,
- uint32_t aSystemCode,
- const nsCString& aMessage) override;
-
- void Decrypted(uint32_t aId,
- DecryptStatus aResult,
- const nsTArray<uint8_t>& aDecryptedData) override;
-
- void BatchedKeyStatusChanged(const nsCString& aSessionId,
- const nsTArray<CDMKeyInfo>& aKeyInfos) override;
-
- ~MediaDrmCDMCallbackProxy() {}
-
-private:
- friend class MediaDrmCDMProxy;
- explicit MediaDrmCDMCallbackProxy(CDMProxy* aProxy);
-
- void BatchedKeyStatusChangedInternal(const nsCString& aSessionId,
- const nsTArray<CDMKeyInfo>& aKeyInfos);
- // Warning: Weak ref.
- CDMProxy* mProxy;
-};
-
-} // namespace mozilla
-#endif \ No newline at end of file
diff --git a/dom/media/eme/mediadrm/MediaDrmCDMProxy.cpp b/dom/media/eme/mediadrm/MediaDrmCDMProxy.cpp
deleted file mode 100644
index f64d0afdb3..0000000000
--- a/dom/media/eme/mediadrm/MediaDrmCDMProxy.cpp
+++ /dev/null
@@ -1,466 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#include "mozilla/dom/MediaKeySession.h"
-#include "mozilla/MediaDrmCDMProxy.h"
-#include "MediaDrmCDMCallbackProxy.h"
-
-using namespace mozilla::java::sdk;
-
-namespace mozilla {
-
-MediaDrmSessionType
-ToMediaDrmSessionType(dom::MediaKeySessionType aSessionType)
-{
- switch (aSessionType) {
- case dom::MediaKeySessionType::Temporary: return kKeyStreaming;
- case dom::MediaKeySessionType::Persistent_license: return kKeyOffline;
- default: return kKeyStreaming;
- };
-}
-
-MediaDrmCDMProxy::MediaDrmCDMProxy(dom::MediaKeys* aKeys,
- const nsAString& aKeySystem,
- bool aDistinctiveIdentifierRequired,
- bool aPersistentStateRequired)
- : CDMProxy(aKeys,
- aKeySystem,
- aDistinctiveIdentifierRequired,
- aPersistentStateRequired)
- , mCDM(nullptr)
- , mShutdownCalled(false)
-{
- MOZ_ASSERT(NS_IsMainThread());
- MOZ_COUNT_CTOR(MediaDrmCDMProxy);
-}
-
-MediaDrmCDMProxy::~MediaDrmCDMProxy()
-{
- MOZ_COUNT_DTOR(MediaDrmCDMProxy);
-}
-
-void
-MediaDrmCDMProxy::Init(PromiseId aPromiseId,
- const nsAString& aOrigin,
- const nsAString& aTopLevelOrigin,
- const nsAString& aName,
- bool aInPrivateBrowsing)
-{
- MOZ_ASSERT(NS_IsMainThread());
- NS_ENSURE_TRUE_VOID(!mKeys.IsNull());
-
- EME_LOG("MediaDrmCDMProxy::Init (%s, %s) %s",
- NS_ConvertUTF16toUTF8(aOrigin).get(),
- NS_ConvertUTF16toUTF8(aTopLevelOrigin).get(),
- (aInPrivateBrowsing ? "PrivateBrowsing" : "NonPrivateBrowsing"));
-
- // Create a thread to work with cdm.
- if (!mOwnerThread) {
- nsresult rv = NS_NewNamedThread("MDCDMThread", getter_AddRefs(mOwnerThread));
- if (NS_FAILED(rv)) {
- RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
- NS_LITERAL_CSTRING("Couldn't create CDM thread MediaDrmCDMProxy::Init"));
- return;
- }
- }
-
- mCDM = mozilla::MakeUnique<MediaDrmProxySupport>(mKeySystem);
- nsCOMPtr<nsIRunnable> task(NewRunnableMethod<uint32_t>(this,
- &MediaDrmCDMProxy::md_Init,
- aPromiseId));
- mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
-}
-
-void
-MediaDrmCDMProxy::CreateSession(uint32_t aCreateSessionToken,
- MediaKeySessionType aSessionType,
- PromiseId aPromiseId,
- const nsAString& aInitDataType,
- nsTArray<uint8_t>& aInitData)
-{
- MOZ_ASSERT(NS_IsMainThread());
- MOZ_ASSERT(mOwnerThread);
-
- nsAutoPtr<CreateSessionData> data(new CreateSessionData());
- data->mSessionType = aSessionType;
- data->mCreateSessionToken = aCreateSessionToken;
- data->mPromiseId = aPromiseId;
- data->mInitDataType = NS_ConvertUTF16toUTF8(aInitDataType);
- data->mInitData = Move(aInitData);
-
- nsCOMPtr<nsIRunnable> task(
- NewRunnableMethod<nsAutoPtr<CreateSessionData>>(this,
- &MediaDrmCDMProxy::md_CreateSession,
- data));
- mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
-}
-
-void
-MediaDrmCDMProxy::LoadSession(PromiseId aPromiseId,
- const nsAString& aSessionId)
-{
- // TODO: Implement LoadSession.
- RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
- NS_LITERAL_CSTRING("Currently Fennec did not support LoadSession"));
-}
-
-void
-MediaDrmCDMProxy::SetServerCertificate(PromiseId aPromiseId,
- nsTArray<uint8_t>& aCert)
-{
- // TODO: Implement SetServerCertificate.
- RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
- NS_LITERAL_CSTRING("Currently Fennec did not support SetServerCertificate"));
-}
-
-void
-MediaDrmCDMProxy::UpdateSession(const nsAString& aSessionId,
- PromiseId aPromiseId,
- nsTArray<uint8_t>& aResponse)
-{
- MOZ_ASSERT(NS_IsMainThread());
- MOZ_ASSERT(mOwnerThread);
- NS_ENSURE_TRUE_VOID(!mKeys.IsNull());
-
- nsAutoPtr<UpdateSessionData> data(new UpdateSessionData());
- data->mPromiseId = aPromiseId;
- data->mSessionId = NS_ConvertUTF16toUTF8(aSessionId);
- data->mResponse = Move(aResponse);
-
- nsCOMPtr<nsIRunnable> task(
- NewRunnableMethod<nsAutoPtr<UpdateSessionData>>(this,
- &MediaDrmCDMProxy::md_UpdateSession,
- data));
- mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
-}
-
-void
-MediaDrmCDMProxy::CloseSession(const nsAString& aSessionId,
- PromiseId aPromiseId)
-{
- MOZ_ASSERT(NS_IsMainThread());
- MOZ_ASSERT(mOwnerThread);
- NS_ENSURE_TRUE_VOID(!mKeys.IsNull());
-
- nsAutoPtr<SessionOpData> data(new SessionOpData());
- data->mPromiseId = aPromiseId;
- data->mSessionId = NS_ConvertUTF16toUTF8(aSessionId);
-
- nsCOMPtr<nsIRunnable> task(
- NewRunnableMethod<nsAutoPtr<SessionOpData>>(this,
- &MediaDrmCDMProxy::md_CloseSession,
- data));
- mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
-}
-
-void
-MediaDrmCDMProxy::RemoveSession(const nsAString& aSessionId,
- PromiseId aPromiseId)
-{
- // TODO: Implement RemoveSession.
- RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
- NS_LITERAL_CSTRING("Currently Fennec did not support RemoveSession"));
-}
-
-void
-MediaDrmCDMProxy::Shutdown()
-{
- MOZ_ASSERT(NS_IsMainThread());
- MOZ_ASSERT(mOwnerThread);
- nsCOMPtr<nsIRunnable> task(
- NewRunnableMethod(this, &MediaDrmCDMProxy::md_Shutdown));
-
- mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
- mOwnerThread->Shutdown();
- mOwnerThread = nullptr;
-}
-
-void
-MediaDrmCDMProxy::Terminated()
-{
- // TODO: Implement Terminated.
- // Should find a way to handle the case when remote side MediaDrm crashed.
-}
-
-const nsCString&
-MediaDrmCDMProxy::GetNodeId() const
-{
- return mNodeId;
-}
-
-void
-MediaDrmCDMProxy::OnSetSessionId(uint32_t aCreateSessionToken,
- const nsAString& aSessionId)
-{
- MOZ_ASSERT(NS_IsMainThread());
- if (mKeys.IsNull()) {
- return;
- }
-
- RefPtr<dom::MediaKeySession> session(mKeys->GetPendingSession(aCreateSessionToken));
- if (session) {
- session->SetSessionId(aSessionId);
- }
-}
-
-void
-MediaDrmCDMProxy::OnResolveLoadSessionPromise(uint32_t aPromiseId, bool aSuccess)
-{
- MOZ_ASSERT(NS_IsMainThread());
- if (mKeys.IsNull()) {
- return;
- }
- mKeys->OnSessionLoaded(aPromiseId, aSuccess);
-}
-
-void
-MediaDrmCDMProxy::OnSessionMessage(const nsAString& aSessionId,
- dom::MediaKeyMessageType aMessageType,
- nsTArray<uint8_t>& aMessage)
-{
- MOZ_ASSERT(NS_IsMainThread());
- if (mKeys.IsNull()) {
- return;
- }
- RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
- if (session) {
- session->DispatchKeyMessage(aMessageType, aMessage);
- }
-}
-
-void
-MediaDrmCDMProxy::OnExpirationChange(const nsAString& aSessionId,
- UnixTime aExpiryTime)
-{
- MOZ_ASSERT(NS_IsMainThread());
- if (mKeys.IsNull()) {
- return;
- }
- RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
- if (session) {
- session->SetExpiration(static_cast<double>(aExpiryTime));
- }
-}
-
-void
-MediaDrmCDMProxy::OnSessionClosed(const nsAString& aSessionId)
-{
- MOZ_ASSERT(NS_IsMainThread());
- if (mKeys.IsNull()) {
- return;
- }
- RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
- if (session) {
- session->OnClosed();
- }
-}
-
-void
-MediaDrmCDMProxy::OnSessionError(const nsAString& aSessionId,
- nsresult aException,
- uint32_t aSystemCode,
- const nsAString& aMsg)
-{
- MOZ_ASSERT(NS_IsMainThread());
- if (mKeys.IsNull()) {
- return;
- }
- RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
- if (session) {
- session->DispatchKeyError(aSystemCode);
- }
-}
-
-void
-MediaDrmCDMProxy::OnRejectPromise(uint32_t aPromiseId,
- nsresult aDOMException,
- const nsCString& aMsg)
-{
- MOZ_ASSERT(NS_IsMainThread());
- RejectPromise(aPromiseId, aDOMException, aMsg);
-}
-
-RefPtr<MediaDrmCDMProxy::DecryptPromise>
-MediaDrmCDMProxy::Decrypt(MediaRawData* aSample)
-{
- MOZ_ASSERT_UNREACHABLE("Fennec could not handle decrypting individually");
- return nullptr;
-}
-
-void
-MediaDrmCDMProxy::OnDecrypted(uint32_t aId,
- DecryptStatus aResult,
- const nsTArray<uint8_t>& aDecryptedData)
-{
- MOZ_ASSERT_UNREACHABLE("Fennec could not handle decrypted event");
-}
-
-void
-MediaDrmCDMProxy::RejectPromise(PromiseId aId, nsresult aCode,
- const nsCString& aReason)
-{
- if (NS_IsMainThread()) {
- if (!mKeys.IsNull()) {
- mKeys->RejectPromise(aId, aCode, aReason);
- }
- } else {
- nsCOMPtr<nsIRunnable> task(new RejectPromiseTask(this, aId, aCode,
- aReason));
- NS_DispatchToMainThread(task);
- }
-}
-
-void
-MediaDrmCDMProxy::ResolvePromise(PromiseId aId)
-{
- if (NS_IsMainThread()) {
- if (!mKeys.IsNull()) {
- mKeys->ResolvePromise(aId);
- } else {
- NS_WARNING("MediaDrmCDMProxy unable to resolve promise!");
- }
- } else {
- nsCOMPtr<nsIRunnable> task;
- task = NewRunnableMethod<PromiseId>(this,
- &MediaDrmCDMProxy::ResolvePromise,
- aId);
- NS_DispatchToMainThread(task);
- }
-}
-
-const nsString&
-MediaDrmCDMProxy::KeySystem() const
-{
- return mKeySystem;
-}
-
-CDMCaps&
-MediaDrmCDMProxy::Capabilites()
-{
- return mCapabilites;
-}
-
-void
-MediaDrmCDMProxy::OnKeyStatusesChange(const nsAString& aSessionId)
-{
- MOZ_ASSERT(NS_IsMainThread());
- if (mKeys.IsNull()) {
- return;
- }
- RefPtr<dom::MediaKeySession> session(mKeys->GetSession(aSessionId));
- if (session) {
- session->DispatchKeyStatusesChange();
- }
-}
-
-void
-MediaDrmCDMProxy::GetSessionIdsForKeyId(const nsTArray<uint8_t>& aKeyId,
- nsTArray<nsCString>& aSessionIds)
-{
- CDMCaps::AutoLock caps(Capabilites());
- caps.GetSessionIdsForKeyId(aKeyId, aSessionIds);
-}
-
-#ifdef DEBUG
-bool
-MediaDrmCDMProxy::IsOnOwnerThread()
-{
- return NS_GetCurrentThread() == mOwnerThread;
-}
-#endif
-
-void
-MediaDrmCDMProxy::OnCDMCreated(uint32_t aPromiseId)
-{
- MOZ_ASSERT(NS_IsMainThread());
- if (mKeys.IsNull()) {
- return;
- }
-
- if (mCDM) {
- mKeys->OnCDMCreated(aPromiseId, GetNodeId(), 0);
- return;
- }
-
- // No CDM? Just reject the promise.
- mKeys->RejectPromise(aPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
- NS_LITERAL_CSTRING("Null CDM in OnCDMCreated()"));
-}
-
-void
-MediaDrmCDMProxy::md_Init(uint32_t aPromiseId)
-{
- MOZ_ASSERT(IsOnOwnerThread());
- MOZ_ASSERT(mCDM);
-
- mCallback = new MediaDrmCDMCallbackProxy(this);
- mCDM->Init(mCallback);
- nsCOMPtr<nsIRunnable> task(
- NewRunnableMethod<uint32_t>(this,
- &MediaDrmCDMProxy::OnCDMCreated,
- aPromiseId));
- NS_DispatchToMainThread(task);
-}
-
-void
-MediaDrmCDMProxy::md_CreateSession(nsAutoPtr<CreateSessionData> aData)
-{
- MOZ_ASSERT(IsOnOwnerThread());
-
- if (!mCDM) {
- RejectPromise(aData->mPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
- NS_LITERAL_CSTRING("Null CDM in md_CreateSession"));
- return;
- }
-
- mCDM->CreateSession(aData->mCreateSessionToken,
- aData->mPromiseId,
- aData->mInitDataType,
- aData->mInitData,
- ToMediaDrmSessionType(aData->mSessionType));
-}
-
-void
-MediaDrmCDMProxy::md_UpdateSession(nsAutoPtr<UpdateSessionData> aData)
-{
- MOZ_ASSERT(IsOnOwnerThread());
-
- if (!mCDM) {
- RejectPromise(aData->mPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
- NS_LITERAL_CSTRING("Null CDM in md_UpdateSession"));
- return;
- }
- mCDM->UpdateSession(aData->mPromiseId,
- aData->mSessionId,
- aData->mResponse);
-}
-
-void
-MediaDrmCDMProxy::md_CloseSession(nsAutoPtr<SessionOpData> aData)
-{
- MOZ_ASSERT(IsOnOwnerThread());
-
- if (!mCDM) {
- RejectPromise(aData->mPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
- NS_LITERAL_CSTRING("Null CDM in md_CloseSession"));
- return;
- }
- mCDM->CloseSession(aData->mPromiseId, aData->mSessionId);
-}
-
-void
-MediaDrmCDMProxy::md_Shutdown()
-{
- MOZ_ASSERT(IsOnOwnerThread());
- MOZ_ASSERT(mCDM);
- if (mShutdownCalled) {
- return;
- }
- mShutdownCalled = true;
- mCDM->Shutdown();
- mCDM = nullptr;
-}
-
-} // namespace mozilla \ No newline at end of file
diff --git a/dom/media/eme/mediadrm/MediaDrmCDMProxy.h b/dom/media/eme/mediadrm/MediaDrmCDMProxy.h
deleted file mode 100644
index a25af5dbf9..0000000000
--- a/dom/media/eme/mediadrm/MediaDrmCDMProxy.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#ifndef MediaDrmCDMProxy_h_
-#define MediaDrmCDMProxy_h_
-
-#include <jni.h>
-#include "mozilla/jni/Types.h"
-#include "GeneratedJNINatives.h"
-
-#include "mozilla/CDMProxy.h"
-#include "mozilla/CDMCaps.h"
-#include "mozilla/dom/MediaKeys.h"
-#include "mozilla/MediaDrmProxySupport.h"
-#include "mozilla/UniquePtr.h"
-
-#include "MediaCodec.h"
-#include "nsString.h"
-#include "nsAutoPtr.h"
-
-using namespace mozilla::java;
-
-namespace mozilla {
-class MediaDrmCDMCallbackProxy;
-class MediaDrmCDMProxy : public CDMProxy {
-public:
-
- NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MediaDrmCDMProxy)
-
- MediaDrmCDMProxy(dom::MediaKeys* aKeys,
- const nsAString& aKeySystem,
- bool aDistinctiveIdentifierRequired,
- bool aPersistentStateRequired);
-
- void Init(PromiseId aPromiseId,
- const nsAString& aOrigin,
- const nsAString& aTopLevelOrigin,
- const nsAString& aGMPName,
- bool aInPrivateBrowsing) override;
-
- void CreateSession(uint32_t aCreateSessionToken,
- MediaKeySessionType aSessionType,
- PromiseId aPromiseId,
- const nsAString& aInitDataType,
- nsTArray<uint8_t>& aInitData) override;
-
- void LoadSession(PromiseId aPromiseId,
- const nsAString& aSessionId) override;
-
- void SetServerCertificate(PromiseId aPromiseId,
- nsTArray<uint8_t>& aCert) override;
-
- void UpdateSession(const nsAString& aSessionId,
- PromiseId aPromiseId,
- nsTArray<uint8_t>& aResponse) override;
-
- void CloseSession(const nsAString& aSessionId,
- PromiseId aPromiseId) override;
-
- void RemoveSession(const nsAString& aSessionId,
- PromiseId aPromiseId) override;
-
- void Shutdown() override;
-
- void Terminated() override;
-
- const nsCString& GetNodeId() const override;
-
- void OnSetSessionId(uint32_t aCreateSessionToken,
- const nsAString& aSessionId) override;
-
- void OnResolveLoadSessionPromise(uint32_t aPromiseId, bool aSuccess) override;
-
- void OnSessionMessage(const nsAString& aSessionId,
- dom::MediaKeyMessageType aMessageType,
- nsTArray<uint8_t>& aMessage) override;
-
- void OnExpirationChange(const nsAString& aSessionId,
- UnixTime aExpiryTime) override;
-
- void OnSessionClosed(const nsAString& aSessionId) override;
-
- void OnSessionError(const nsAString& aSessionId,
- nsresult aException,
- uint32_t aSystemCode,
- const nsAString& aMsg) override;
-
- void OnRejectPromise(uint32_t aPromiseId,
- nsresult aCode,
- const nsCString& aMsg) override;
-
- RefPtr<DecryptPromise> Decrypt(MediaRawData* aSample) override;
- void OnDecrypted(uint32_t aId,
- DecryptStatus aResult,
- const nsTArray<uint8_t>& aDecryptedData) override;
-
- void RejectPromise(PromiseId aId, nsresult aCode,
- const nsCString& aReason) override;
-
- // Resolves promise with "undefined".
- // Can be called from any thread.
- void ResolvePromise(PromiseId aId) override;
-
- // Threadsafe.
- const nsString& KeySystem() const override;
-
- CDMCaps& Capabilites() override;
-
- void OnKeyStatusesChange(const nsAString& aSessionId) override;
-
- void GetSessionIdsForKeyId(const nsTArray<uint8_t>& aKeyId,
- nsTArray<nsCString>& aSessionIds) override;
-
-#ifdef DEBUG
- bool IsOnOwnerThread() override;
-#endif
-
-private:
- virtual ~MediaDrmCDMProxy();
-
- void OnCDMCreated(uint32_t aPromiseId);
-
- struct CreateSessionData {
- MediaKeySessionType mSessionType;
- uint32_t mCreateSessionToken;
- PromiseId mPromiseId;
- nsCString mInitDataType;
- nsTArray<uint8_t> mInitData;
- };
-
- struct UpdateSessionData {
- PromiseId mPromiseId;
- nsCString mSessionId;
- nsTArray<uint8_t> mResponse;
- };
-
- struct SessionOpData {
- PromiseId mPromiseId;
- nsCString mSessionId;
- };
-
- class RejectPromiseTask : public Runnable {
- public:
- RejectPromiseTask(MediaDrmCDMProxy* aProxy,
- PromiseId aId,
- nsresult aCode,
- const nsCString& aReason)
- : mProxy(aProxy)
- , mId(aId)
- , mCode(aCode)
- , mReason(aReason)
- {
- }
- NS_METHOD Run() {
- mProxy->RejectPromise(mId, mCode, mReason);
- return NS_OK;
- }
- private:
- RefPtr<MediaDrmCDMProxy> mProxy;
- PromiseId mId;
- nsresult mCode;
- nsCString mReason;
- };
-
- nsCString mNodeId;
- mozilla::UniquePtr<MediaDrmProxySupport> mCDM;
- nsAutoPtr<MediaDrmCDMCallbackProxy> mCallback;
- bool mShutdownCalled;
-
-// =====================================================================
-// For MediaDrmProxySupport
- void md_Init(uint32_t aPromiseId);
- void md_CreateSession(nsAutoPtr<CreateSessionData> aData);
- void md_UpdateSession(nsAutoPtr<UpdateSessionData> aData);
- void md_CloseSession(nsAutoPtr<SessionOpData> aData);
- void md_Shutdown();
-// =====================================================================
-};
-
-} // namespace mozilla
-#endif // MediaDrmCDMProxy_h_ \ No newline at end of file
diff --git a/dom/media/eme/mediadrm/MediaDrmProxySupport.cpp b/dom/media/eme/mediadrm/MediaDrmProxySupport.cpp
deleted file mode 100644
index 83f0529d26..0000000000
--- a/dom/media/eme/mediadrm/MediaDrmProxySupport.cpp
+++ /dev/null
@@ -1,283 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#include "MediaDrmProxySupport.h"
-#include "mozilla/EMEUtils.h"
-#include "FennecJNINatives.h"
-#include "MediaCodec.h" // For MediaDrm::KeyStatus
-#include "MediaPrefs.h"
-
-using namespace mozilla::java;
-
-namespace mozilla {
-
-LogModule* GetMDRMNLog() {
- static LazyLogModule log("MediaDrmProxySupport");
- return log;
-}
-
-class MediaDrmJavaCallbacksSupport
- : public MediaDrmProxy::NativeMediaDrmProxyCallbacks::Natives<MediaDrmJavaCallbacksSupport>
-{
-public:
- typedef MediaDrmProxy::NativeMediaDrmProxyCallbacks::Natives<MediaDrmJavaCallbacksSupport> MediaDrmProxyNativeCallbacks;
- using MediaDrmProxyNativeCallbacks::DisposeNative;
- using MediaDrmProxyNativeCallbacks::AttachNative;
-
- MediaDrmJavaCallbacksSupport(DecryptorProxyCallback* aDecryptorProxyCallback)
- : mDecryptorProxyCallback(aDecryptorProxyCallback)
- {
- MOZ_ASSERT(aDecryptorProxyCallback);
- }
- /*
- * Native implementation, called by Java.
- */
- void OnSessionCreated(int aCreateSessionToken,
- int aPromiseId,
- jni::ByteArray::Param aSessionId,
- jni::ByteArray::Param aRequest);
-
- void OnSessionUpdated(int aPromiseId, jni::ByteArray::Param aSessionId);
-
- void OnSessionClosed(int aPromiseId, jni::ByteArray::Param aSessionId);
-
- void OnSessionMessage(jni::ByteArray::Param aSessionId,
- int /*mozilla::dom::MediaKeyMessageType*/ aSessionMessageType,
- jni::ByteArray::Param aRequest);
-
- void OnSessionError(jni::ByteArray::Param aSessionId,
- jni::String::Param aMessage);
-
- void OnSessionBatchedKeyChanged(jni::ByteArray::Param,
- jni::ObjectArray::Param);
-
- void OnRejectPromise(int aPromiseId, jni::String::Param aMessage);
-
-private:
- DecryptorProxyCallback* mDecryptorProxyCallback;
-}; // MediaDrmJavaCallbacksSupport
-
-void
-MediaDrmJavaCallbacksSupport::OnSessionCreated(int aCreateSessionToken,
- int aPromiseId,
- jni::ByteArray::Param aSessionId,
- jni::ByteArray::Param aRequest)
-{
- MOZ_ASSERT(NS_IsMainThread());
- auto reqDataArray = aRequest->GetElements();
- nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
- aSessionId->Length());
- MDRMN_LOG("SessionId(%s) closed", sessionId.get());
-
- mDecryptorProxyCallback->SetSessionId(aCreateSessionToken, sessionId);
- mDecryptorProxyCallback->ResolvePromise(aPromiseId);
-}
-
-void
-MediaDrmJavaCallbacksSupport::OnSessionUpdated(int aPromiseId,
- jni::ByteArray::Param aSessionId)
-{
- MOZ_ASSERT(NS_IsMainThread());
- MDRMN_LOG("SessionId(%s) closed",
- nsCString(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
- aSessionId->Length()).get());
- mDecryptorProxyCallback->ResolvePromise(aPromiseId);
-}
-
-void
-MediaDrmJavaCallbacksSupport::OnSessionClosed(int aPromiseId,
- jni::ByteArray::Param aSessionId)
-{
- MOZ_ASSERT(NS_IsMainThread());
- nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
- aSessionId->Length());
- MDRMN_LOG("SessionId(%s) closed", sessionId.get());
- mDecryptorProxyCallback->ResolvePromise(aPromiseId);
- mDecryptorProxyCallback->SessionClosed(sessionId);
-}
-
-void
-MediaDrmJavaCallbacksSupport::OnSessionMessage(jni::ByteArray::Param aSessionId,
- int /*mozilla::dom::MediaKeyMessageType*/ aMessageType,
- jni::ByteArray::Param aRequest)
-{
- MOZ_ASSERT(NS_IsMainThread());
- nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
- aSessionId->Length());
- auto reqDataArray = aRequest->GetElements();
-
- nsTArray<uint8_t> retRequest;
- retRequest.AppendElements(reinterpret_cast<uint8_t*>(reqDataArray.Elements()),
- reqDataArray.Length());
-
- mDecryptorProxyCallback->SessionMessage(sessionId,
- static_cast<dom::MediaKeyMessageType>(aMessageType),
- retRequest);
-}
-
-void
-MediaDrmJavaCallbacksSupport::OnSessionError(jni::ByteArray::Param aSessionId,
- jni::String::Param aMessage)
-{
- MOZ_ASSERT(NS_IsMainThread());
- nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
- aSessionId->Length());
- nsCString errorMessage = aMessage->ToCString();
- MDRMN_LOG("SessionId(%s)", sessionId.get());
- // TODO: We cannot get system error code from media drm API.
- // Currently use -1 as an error code.
- mDecryptorProxyCallback->SessionError(sessionId,
- NS_ERROR_DOM_INVALID_STATE_ERR,
- -1,
- errorMessage);
-}
-
-// TODO: MediaDrm.KeyStatus defined the status code not included
-// dom::MediaKeyStatus::Released and dom::MediaKeyStatus::Output_downscaled.
-// Should keep tracking for this if it will be changed in the future.
-static dom::MediaKeyStatus
-MediaDrmKeyStatusToMediaKeyStatus(int aStatusCode)
-{
- using mozilla::java::sdk::KeyStatus;
- switch (aStatusCode) {
- case KeyStatus::STATUS_USABLE: return dom::MediaKeyStatus::Usable;
- case KeyStatus::STATUS_EXPIRED: return dom::MediaKeyStatus::Expired;
- case KeyStatus::STATUS_OUTPUT_NOT_ALLOWED: return dom::MediaKeyStatus::Output_restricted;
- case KeyStatus::STATUS_INTERNAL_ERROR: return dom::MediaKeyStatus::Internal_error;
- case KeyStatus::STATUS_PENDING: return dom::MediaKeyStatus::Status_pending;
- default: return dom::MediaKeyStatus::Internal_error;
- }
-}
-
-void
-MediaDrmJavaCallbacksSupport::OnSessionBatchedKeyChanged(jni::ByteArray::Param aSessionId,
- jni::ObjectArray::Param aKeyInfos)
-{
- MOZ_ASSERT(NS_IsMainThread());
- nsCString sessionId(reinterpret_cast<char*>(aSessionId->GetElements().Elements()),
- aSessionId->Length());
- nsTArray<jni::Object::LocalRef> keyInfosObjectArray(aKeyInfos->GetElements());
-
- nsTArray<CDMKeyInfo> keyInfosArray;
-
- for (auto&& keyInfoObject : keyInfosObjectArray) {
- java::SessionKeyInfo::LocalRef keyInfo(mozilla::Move(keyInfoObject));
- mozilla::jni::ByteArray::LocalRef keyIdByteArray = keyInfo->KeyId();
- nsTArray<int8_t> keyIdInt8Array = keyIdByteArray->GetElements();
- // Cast nsTArray<int8_t> to nsTArray<uint8_t>
- nsTArray<uint8_t>* keyId = reinterpret_cast<nsTArray<uint8_t>*>(&keyIdInt8Array);
- auto keyStatus = keyInfo->Status(); // int32_t
- keyInfosArray.AppendElement(CDMKeyInfo(*keyId,
- dom::Optional<dom::MediaKeyStatus>(
- MediaDrmKeyStatusToMediaKeyStatus(keyStatus)
- )
- )
- );
- }
-
- mDecryptorProxyCallback->BatchedKeyStatusChanged(sessionId,
- keyInfosArray);
-}
-
-void
-MediaDrmJavaCallbacksSupport::OnRejectPromise(int aPromiseId, jni::String::Param aMessage)
-{
- MOZ_ASSERT(NS_IsMainThread());
- nsCString reason = aMessage->ToCString();
- MDRMN_LOG("OnRejectPromise aMessage(%s) ", reason.get());
- // Current implementation assume all the reject from MediaDrm is due to invalid state.
- // Other cases should be handled before calling into MediaDrmProxy API.
- mDecryptorProxyCallback->RejectPromise(aPromiseId,
- NS_ERROR_DOM_INVALID_STATE_ERR,
- reason);
-}
-
-MediaDrmProxySupport::MediaDrmProxySupport(const nsAString& aKeySystem)
- : mKeySystem(aKeySystem), mDestroyed(false)
-{
- mJavaCallbacks = MediaDrmProxy::NativeMediaDrmProxyCallbacks::New();
-
- mBridgeProxy =
- MediaDrmProxy::Create(mKeySystem,
- mJavaCallbacks,
- MediaPrefs::PDMAndroidRemoteCodecEnabled());
-}
-
-MediaDrmProxySupport::~MediaDrmProxySupport()
-{
- MOZ_ASSERT(mDestroyed, "Shutdown() should be called before !!");
- MediaDrmJavaCallbacksSupport::DisposeNative(mJavaCallbacks);
-}
-
-nsresult
-MediaDrmProxySupport::Init(DecryptorProxyCallback* aCallback)
-{
- MOZ_ASSERT(mJavaCallbacks);
-
- mCallback = aCallback;
- MediaDrmJavaCallbacksSupport::AttachNative(mJavaCallbacks,
- mozilla::MakeUnique<MediaDrmJavaCallbacksSupport>(mCallback));
- return mBridgeProxy != nullptr ? NS_OK : NS_ERROR_FAILURE;
-}
-
-void
-MediaDrmProxySupport::CreateSession(uint32_t aCreateSessionToken,
- uint32_t aPromiseId,
- const nsCString& aInitDataType,
- const nsTArray<uint8_t>& aInitData,
- MediaDrmSessionType aSessionType)
-{
- MOZ_ASSERT(mBridgeProxy);
-
- auto initDataBytes =
- mozilla::jni::ByteArray::New(reinterpret_cast<const int8_t*>(&aInitData[0]),
- aInitData.Length());
- // TODO: aSessionType is not used here.
- // Refer to
- // http://androidxref.com/5.1.1_r6/xref/external/chromium_org/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java#420
- // it is hard code to streaming type.
- mBridgeProxy->CreateSession(aCreateSessionToken,
- aPromiseId,
- NS_ConvertUTF8toUTF16(aInitDataType),
- initDataBytes);
-}
-
-void
-MediaDrmProxySupport::UpdateSession(uint32_t aPromiseId,
- const nsCString& aSessionId,
- const nsTArray<uint8_t>& aResponse)
-{
- MOZ_ASSERT(mBridgeProxy);
-
- auto response =
- mozilla::jni::ByteArray::New(reinterpret_cast<const int8_t*>(aResponse.Elements()),
- aResponse.Length());
- mBridgeProxy->UpdateSession(aPromiseId,
- NS_ConvertUTF8toUTF16(aSessionId),
- response);
-}
-
-void
-MediaDrmProxySupport::CloseSession(uint32_t aPromiseId,
- const nsCString& aSessionId)
-{
- MOZ_ASSERT(mBridgeProxy);
-
- mBridgeProxy->CloseSession(aPromiseId, NS_ConvertUTF8toUTF16(aSessionId));
-}
-
-void
-MediaDrmProxySupport::Shutdown()
-{
- MOZ_ASSERT(mBridgeProxy);
-
- if (mDestroyed) {
- return;
- }
- mBridgeProxy->Destroy();
- mDestroyed = true;
-}
-
-} // namespace mozilla \ No newline at end of file
diff --git a/dom/media/eme/mediadrm/MediaDrmProxySupport.h b/dom/media/eme/mediadrm/MediaDrmProxySupport.h
deleted file mode 100644
index b119633f52..0000000000
--- a/dom/media/eme/mediadrm/MediaDrmProxySupport.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#ifndef MediaDrmProxySupport_H
-#define MediaDrmProxySupport_H
-
-#include "mozilla/DecryptorProxyCallback.h"
-#include "mozilla/Logging.h"
-#include "FennecJNIWrappers.h"
-#include "nsString.h"
-
-
-namespace mozilla {
-
-enum MediaDrmSessionType {
- kKeyStreaming = 1,
- kKeyOffline = 2,
- kKeyRelease = 3,
-};
-
-#ifndef MDRMN_LOG
- LogModule* GetMDRMNLog();
- #define MDRMN_LOG(x, ...) MOZ_LOG(GetMDRMNLog(), mozilla::LogLevel::Debug,\
- ("[MediaDrmProxySupport][%s]" x, __FUNCTION__, ##__VA_ARGS__))
-#endif
-
-class MediaDrmProxySupport final
-{
-public:
-
- MediaDrmProxySupport(const nsAString& aKeySystem);
- ~MediaDrmProxySupport();
-
- /*
- * APIs to act as GMPDecryptorAPI, discarding unnecessary calls.
- */
- nsresult Init(DecryptorProxyCallback* aCallback);
-
- void CreateSession(uint32_t aCreateSessionToken,
- uint32_t aPromiseId,
- const nsCString& aInitDataType,
- const nsTArray<uint8_t>& aInitData,
- MediaDrmSessionType aSessionType);
-
- void UpdateSession(uint32_t aPromiseId,
- const nsCString& aSessionId,
- const nsTArray<uint8_t>& aResponse);
-
- void CloseSession(uint32_t aPromiseId,
- const nsCString& aSessionId);
-
- void Shutdown();
-
-private:
- const nsString mKeySystem;
- java::MediaDrmProxy::GlobalRef mBridgeProxy;
- java::MediaDrmProxy::NativeMediaDrmProxyCallbacks::GlobalRef mJavaCallbacks;
- DecryptorProxyCallback* mCallback;
- bool mDestroyed;
-
-};
-
-} // namespace mozilla
-#endif // MediaDrmProxySupport_H \ No newline at end of file
diff --git a/dom/media/eme/mediadrm/moz.build b/dom/media/eme/mediadrm/moz.build
deleted file mode 100644
index e425ff5bbb..0000000000
--- a/dom/media/eme/mediadrm/moz.build
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 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/.
-
-EXPORTS.mozilla += [
- 'MediaDrmCDMCallbackProxy.h',
- 'MediaDrmCDMProxy.h',
- 'MediaDrmProxySupport.h',
-]
-
-SOURCES += [
- 'MediaDrmCDMCallbackProxy.cpp',
- 'MediaDrmCDMProxy.cpp',
- 'MediaDrmProxySupport.cpp',
-]
-
-FINAL_LIBRARY = 'xul' \ No newline at end of file
diff --git a/dom/media/eme/moz.build b/dom/media/eme/moz.build
index 495665dd70..7b1ad9d843 100644
--- a/dom/media/eme/moz.build
+++ b/dom/media/eme/moz.build
@@ -36,9 +36,6 @@ SOURCES += [
'MediaKeySystemAccessManager.cpp',
]
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
- DIRS += ['mediadrm']
-
include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'xul'
diff --git a/dom/media/gmp/moz.build b/dom/media/gmp/moz.build
index 6e9e92e8a5..fb8e6532fc 100644
--- a/dom/media/gmp/moz.build
+++ b/dom/media/gmp/moz.build
@@ -76,16 +76,6 @@ if CONFIG['MOZ_EME']:
'GMPCDMProxy.h',
]
-# We link GMPLoader into xul on B2G/Fennec as its code does not need to be
-# covered by a DRM vendor's voucher.
-if CONFIG['OS_TARGET'] == 'Android':
- SOURCES += [
- 'GMPLoader.cpp',
- ]
- USE_LIBS += [
- 'rlz',
- ]
-
SOURCES += [
'GMPAudioDecoderChild.cpp',
'GMPAudioDecoderParent.cpp',
diff --git a/dom/media/systemservices/OpenSLESProvider.cpp b/dom/media/systemservices/OpenSLESProvider.cpp
deleted file mode 100644
index c7348afa0b..0000000000
--- a/dom/media/systemservices/OpenSLESProvider.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-/* -*- Mode: C++; tab-width: 50; 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/. */
-
-#include "OpenSLESProvider.h"
-#include "mozilla/Logging.h"
-#include "nsDebug.h"
-
-#include <dlfcn.h>
-#include <SLES/OpenSLES_Android.h>
-#include <SLES/OpenSLES_AndroidConfiguration.h>
-
-// MOZ_LOG=OpenSLESProvider:5
-#undef LOG
-#undef LOG_ENABLED
-mozilla::LazyLogModule gOpenSLESProviderLog("OpenSLESProvider");
-#define LOG(args) MOZ_LOG(gOpenSLESProviderLog, mozilla::LogLevel::Debug, args)
-#define LOG_ENABLED() MOZ_LOG_TEST(gOpenSLESProviderLog, mozilla::LogLevel::Debug)
-
-namespace mozilla {
-
-OpenSLESProvider::OpenSLESProvider()
- : mLock("OpenSLESProvider.mLock"),
- mSLEngine(nullptr),
- mSLEngineUsers(0),
- mIsRealized(false),
- mOpenSLESLib(nullptr)
-{
- LOG(("OpenSLESProvider being initialized"));
-}
-
-OpenSLESProvider::~OpenSLESProvider()
-{
- if (mOpenSLESLib) {
- LOG(("OpenSLES Engine was not properly Destroyed"));
- (void)dlclose(mOpenSLESLib);
- }
-}
-
-/* static */
-OpenSLESProvider& OpenSLESProvider::getInstance()
-{
- // This doesn't need a Mutex in C++11 or GCC 4.3+, see N2660 and
- // https://gcc.gnu.org/projects/cxx0x.html
- static OpenSLESProvider instance;
- return instance;
-}
-
-/* static */
-SLresult OpenSLESProvider::Get(SLObjectItf * aObjectm,
- SLuint32 aOptionCount,
- const SLEngineOption *aOptions)
-{
- OpenSLESProvider& provider = OpenSLESProvider::getInstance();
- return provider.GetEngine(aObjectm, aOptionCount, aOptions);
-}
-
-SLresult OpenSLESProvider::GetEngine(SLObjectItf * aObjectm,
- SLuint32 aOptionCount,
- const SLEngineOption *aOptions)
-{
- MutexAutoLock lock(mLock);
- LOG(("Getting OpenSLES engine"));
- // Bug 1042051: Validate options are the same
- if (mSLEngine != nullptr) {
- *aObjectm = mSLEngine;
- mSLEngineUsers++;
- LOG(("Returning existing engine, %d users", mSLEngineUsers));
- return SL_RESULT_SUCCESS;
- } else {
- int res = ConstructEngine(aObjectm, aOptionCount, aOptions);
- if (res == SL_RESULT_SUCCESS) {
- // Bug 1042051: Store engine options
- mSLEngine = *aObjectm;
- mSLEngineUsers++;
- LOG(("Returning new engine"));
- } else {
- LOG(("Error getting engine: %d", res));
- }
- return res;
- }
-}
-
-SLresult OpenSLESProvider::ConstructEngine(SLObjectItf * aObjectm,
- SLuint32 aOptionCount,
- const SLEngineOption *aOptions)
-{
- mLock.AssertCurrentThreadOwns();
-
- if (!mOpenSLESLib) {
- mOpenSLESLib = dlopen("libOpenSLES.so", RTLD_LAZY);
- if (!mOpenSLESLib) {
- LOG(("Failed to dlopen OpenSLES library"));
- return SL_RESULT_MEMORY_FAILURE;
- }
- }
-
- typedef SLresult (*slCreateEngine_t)(SLObjectItf *,
- SLuint32,
- const SLEngineOption *,
- SLuint32,
- const SLInterfaceID *,
- const SLboolean *);
-
- slCreateEngine_t f_slCreateEngine =
- (slCreateEngine_t)dlsym(mOpenSLESLib, "slCreateEngine");
- int result = f_slCreateEngine(aObjectm, aOptionCount, aOptions, 0, NULL, NULL);
- return result;
-}
-
-/* static */
-void OpenSLESProvider::Destroy(SLObjectItf * aObjectm)
-{
- OpenSLESProvider& provider = OpenSLESProvider::getInstance();
- provider.DestroyEngine(aObjectm);
-}
-
-void OpenSLESProvider::DestroyEngine(SLObjectItf * aObjectm)
-{
- MutexAutoLock lock(mLock);
- NS_ASSERTION(mOpenSLESLib, "OpenSLES destroy called but library is not open");
-
- mSLEngineUsers--;
- LOG(("Freeing engine, %d users left", mSLEngineUsers));
- if (mSLEngineUsers) {
- return;
- }
-
- (*(*aObjectm))->Destroy(*aObjectm);
- // This assumes SLObjectItf is a pointer, but given the previous line,
- // that's a given.
- *aObjectm = nullptr;
-
- (void)dlclose(mOpenSLESLib);
- mOpenSLESLib = nullptr;
- mIsRealized = false;
-}
-
-/* static */
-SLresult OpenSLESProvider::Realize(SLObjectItf aObjectm)
-{
- OpenSLESProvider& provider = OpenSLESProvider::getInstance();
- return provider.RealizeEngine(aObjectm);
-}
-
-SLresult OpenSLESProvider::RealizeEngine(SLObjectItf aObjectm)
-{
- MutexAutoLock lock(mLock);
- NS_ASSERTION(mOpenSLESLib, "OpenSLES realize called but library is not open");
- NS_ASSERTION(aObjectm != nullptr, "OpenSLES realize engine with empty ObjectItf");
-
- if (mIsRealized) {
- LOG(("Not realizing already realized engine"));
- return SL_RESULT_SUCCESS;
- } else {
- SLresult res = (*aObjectm)->Realize(aObjectm, SL_BOOLEAN_FALSE);
- if (res != SL_RESULT_SUCCESS) {
- LOG(("Error realizing OpenSLES engine: %d", res));
- } else {
- LOG(("Realized OpenSLES engine"));
- mIsRealized = true;
- }
- return res;
- }
-}
-
-} // namespace mozilla
-
-extern "C" {
-SLresult mozilla_get_sles_engine(SLObjectItf * aObjectm,
- SLuint32 aOptionCount,
- const SLEngineOption *aOptions)
-{
- return mozilla::OpenSLESProvider::Get(aObjectm, aOptionCount, aOptions);
-}
-
-void mozilla_destroy_sles_engine(SLObjectItf * aObjectm)
-{
- mozilla::OpenSLESProvider::Destroy(aObjectm);
-}
-
-SLresult mozilla_realize_sles_engine(SLObjectItf aObjectm)
-{
- return mozilla::OpenSLESProvider::Realize(aObjectm);
-}
-
-}
-
diff --git a/dom/media/systemservices/OpenSLESProvider.h b/dom/media/systemservices/OpenSLESProvider.h
deleted file mode 100644
index 6253e9519e..0000000000
--- a/dom/media/systemservices/OpenSLESProvider.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C++; tab-width: 50; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* 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 _OPENSLESPROVIDER_H_
-#define _OPENSLESPROVIDER_H_
-
-#include <SLES/OpenSLES.h>
-#include <mozilla/Types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern MOZ_EXPORT
-SLresult mozilla_get_sles_engine(SLObjectItf * aObjectm,
- SLuint32 aOptionCount,
- const SLEngineOption *aOptions);
-extern MOZ_EXPORT
-void mozilla_destroy_sles_engine(SLObjectItf * aObjectm);
-/* Realize is always in synchronous mode. */
-extern MOZ_EXPORT
-SLresult mozilla_realize_sles_engine(SLObjectItf aObjectm);
-#ifdef __cplusplus
-}
-#endif
-
-#ifdef __cplusplus
-#include "mozilla/Mutex.h"
-
-extern mozilla::LazyLogModule gOpenSLESProviderLog;
-
-namespace mozilla {
-
-class OpenSLESProvider {
-public:
- static SLresult Get(SLObjectItf * aObjectm,
- SLuint32 aOptionCount,
- const SLEngineOption *aOptions);
- static void Destroy(SLObjectItf * aObjectm);
- static SLresult Realize(SLObjectItf aObjectm);
-private:
- OpenSLESProvider();
- ~OpenSLESProvider();
- OpenSLESProvider(OpenSLESProvider const&); // NO IMPLEMENTATION
- void operator=(OpenSLESProvider const&); // NO IMPLEMENTATION
- static OpenSLESProvider& getInstance();
- SLresult GetEngine(SLObjectItf * aObjectm,
- SLuint32 aOptionCount,
- const SLEngineOption *aOptions);
- SLresult ConstructEngine(SLObjectItf * aObjectm,
- SLuint32 aOptionCount,
- const SLEngineOption *aOptions);
- SLresult RealizeEngine(SLObjectItf aObjectm);
- void DestroyEngine(SLObjectItf * aObjectm);
-
- // Protect all our internal variables
- mozilla::Mutex mLock;
- SLObjectItf mSLEngine;
- int mSLEngineUsers;
- bool mIsRealized;
- void *mOpenSLESLib;
-};
-
-} //namespace
-#endif // cplusplus
-
-#endif /* _OPENSLESPROVIDER_H_ */
diff --git a/dom/media/systemservices/moz.build b/dom/media/systemservices/moz.build
index 7d566c42ce..8fb5e54a19 100644
--- a/dom/media/systemservices/moz.build
+++ b/dom/media/systemservices/moz.build
@@ -29,15 +29,6 @@ if CONFIG['OS_TARGET'] == 'WINNT':
else:
DEFINES['WEBRTC_POSIX'] = True
-
-if CONFIG['OS_TARGET'] == 'Android':
- EXPORTS += [
- 'OpenSLESProvider.h'
- ]
- SOURCES += [
- 'OpenSLESProvider.cpp',
- ]
-
if CONFIG['_MSC_VER']:
DEFINES['__PRETTY_FUNCTION__'] = '__FUNCSIG__'
diff --git a/dom/moz.build b/dom/moz.build
index b324de2cb0..e01516b937 100644
--- a/dom/moz.build
+++ b/dom/moz.build
@@ -112,6 +112,6 @@ TEST_DIRS += [
'imptests',
]
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'windows', 'android'):
+if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'windows'):
TEST_DIRS += ['plugins/test']
diff --git a/dom/system/android/AndroidLocationProvider.cpp b/dom/system/android/AndroidLocationProvider.cpp
deleted file mode 100644
index 48694012a7..0000000000
--- a/dom/system/android/AndroidLocationProvider.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#include "nsGeolocation.h"
-#include "nsGeoPosition.h"
-#include "AndroidLocationProvider.h"
-#include "GeneratedJNIWrappers.h"
-
-using namespace mozilla;
-
-extern nsIGeolocationUpdate *gLocationCallback;
-
-NS_IMPL_ISUPPORTS(AndroidLocationProvider, nsIGeolocationProvider)
-
-AndroidLocationProvider::AndroidLocationProvider()
-{
-}
-
-AndroidLocationProvider::~AndroidLocationProvider()
-{
- NS_IF_RELEASE(gLocationCallback);
-}
-
-NS_IMETHODIMP
-AndroidLocationProvider::Startup()
-{
- java::GeckoAppShell::EnableLocation(true);
- return NS_OK;
-}
-
-NS_IMETHODIMP
-AndroidLocationProvider::Watch(nsIGeolocationUpdate* aCallback)
-{
- NS_IF_RELEASE(gLocationCallback);
- gLocationCallback = aCallback;
- NS_IF_ADDREF(gLocationCallback);
- return NS_OK;
-}
-
-NS_IMETHODIMP
-AndroidLocationProvider::Shutdown()
-{
- java::GeckoAppShell::EnableLocation(false);
- return NS_OK;
-}
-
-NS_IMETHODIMP
-AndroidLocationProvider::SetHighAccuracy(bool enable)
-{
- java::GeckoAppShell::EnableLocationHighAccuracy(enable);
- return NS_OK;
-}
diff --git a/dom/system/android/AndroidLocationProvider.h b/dom/system/android/AndroidLocationProvider.h
deleted file mode 100644
index f6dc905b73..0000000000
--- a/dom/system/android/AndroidLocationProvider.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#ifndef AndroidLocationProvider_h
-#define AndroidLocationProvider_h
-
-#include "nsIGeolocationProvider.h"
-
-class AndroidLocationProvider final : public nsIGeolocationProvider
-{
-public:
- NS_DECL_ISUPPORTS
- NS_DECL_NSIGEOLOCATIONPROVIDER
-
- AndroidLocationProvider();
-private:
- ~AndroidLocationProvider();
-};
-
-#endif /* AndroidLocationProvider_h */
diff --git a/dom/system/android/moz.build b/dom/system/android/moz.build
deleted file mode 100644
index ad4a7c2341..0000000000
--- a/dom/system/android/moz.build
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 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/.
-
-SOURCES += [
- 'AndroidLocationProvider.cpp',
- 'nsHapticFeedback.cpp',
-]
-
-include('/ipc/chromium/chromium-config.mozbuild')
-
-FINAL_LIBRARY = 'xul'
-LOCAL_INCLUDES += [
- '/dom/geolocation',
-]
diff --git a/dom/system/android/nsHapticFeedback.cpp b/dom/system/android/nsHapticFeedback.cpp
deleted file mode 100644
index 37b51767aa..0000000000
--- a/dom/system/android/nsHapticFeedback.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#include "mozilla/dom/ContentChild.h"
-#include "nsHapticFeedback.h"
-#include "GeneratedJNIWrappers.h"
-
-using namespace mozilla;
-
-NS_IMPL_ISUPPORTS(nsHapticFeedback, nsIHapticFeedback)
-
-NS_IMETHODIMP
-nsHapticFeedback::PerformSimpleAction(int32_t aType)
-{
- java::GeckoAppShell::PerformHapticFeedback(aType == LongPress);
- return NS_OK;
-}
diff --git a/dom/system/android/nsHapticFeedback.h b/dom/system/android/nsHapticFeedback.h
deleted file mode 100644
index 3b5c01c445..0000000000
--- a/dom/system/android/nsHapticFeedback.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; 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/. */
-
-#include "nsIHapticFeedback.h"
-
-class nsHapticFeedback final : public nsIHapticFeedback
-{
-private:
- ~nsHapticFeedback() {}
-
-public:
- NS_DECL_ISUPPORTS
- NS_DECL_NSIHAPTICFEEDBACK
-};
diff --git a/dom/system/moz.build b/dom/system/moz.build
index fb41fd4f2d..31097d2481 100644
--- a/dom/system/moz.build
+++ b/dom/system/moz.build
@@ -7,8 +7,6 @@ toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']
if toolkit == 'windows':
DIRS += ['windows']
-elif toolkit == 'android':
- DIRS += ['android']
elif toolkit in ('gtk2', 'gtk3'):
DIRS += ['linux']
diff --git a/dom/xbl/builtin/android/jar.mn b/dom/xbl/builtin/android/jar.mn
deleted file mode 100644
index 9f05c2dd6c..0000000000
--- a/dom/xbl/builtin/android/jar.mn
+++ /dev/null
@@ -1,6 +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/.
-
-toolkit.jar:
-* content/global/platformHTMLBindings.xml (platformHTMLBindings.xml)
diff --git a/dom/xbl/builtin/android/moz.build b/dom/xbl/builtin/android/moz.build
deleted file mode 100644
index 635fa39c99..0000000000
--- a/dom/xbl/builtin/android/moz.build
+++ /dev/null
@@ -1,6 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 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/.
-
-JAR_MANIFESTS += ['jar.mn'] \ No newline at end of file
diff --git a/dom/xbl/builtin/android/platformHTMLBindings.xml b/dom/xbl/builtin/android/platformHTMLBindings.xml
deleted file mode 100644
index 03363c1b5e..0000000000
--- a/dom/xbl/builtin/android/platformHTMLBindings.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.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/. -->
-
-
-<bindings id="htmlBindings"
- xmlns="http://www.mozilla.org/xbl"
- xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <binding id="inputFields" bindToUntrustedContent="true">
- <handlers>
-#include ../input-fields-base.inc
- <handler event="keypress" key="a" modifiers="accel" command="cmd_selectAll"/>
-
- <handler event="keypress" keycode="VK_LEFT" modifiers="control" command="cmd_wordPrevious"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="control" command="cmd_wordNext"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="shift,control" command="cmd_selectWordPrevious"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="shift,control" command="cmd_selectWordNext"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="alt" command="cmd_beginLine"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="alt" command="cmd_endLine"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="shift,alt" command="cmd_selectBeginLine"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="shift,alt" command="cmd_selectEndLine"/>
-
- <handler event="keypress" keycode="VK_HOME" command="cmd_beginLine"/>
- <handler event="keypress" keycode="VK_END" command="cmd_endLine"/>
- <handler event="keypress" keycode="VK_HOME" modifiers="shift" command="cmd_selectBeginLine" />
- <handler event="keypress" keycode="VK_END" modifiers="shift" command="cmd_selectEndLine" />
-
- <handler event="keypress" keycode="VK_BACK" modifiers="alt" command="cmd_deleteToBeginningOfLine"/>
- <handler event="keypress" keycode="VK_DELETE" modifiers="alt" command="cmd_deleteToEndOfLine"/>
- </handlers>
- </binding>
-
- <binding id="textAreas" bindToUntrustedContent="true">
- <handlers>
-#include ../textareas-base.inc
- <handler event="keypress" key="a" modifiers="accel" command="cmd_selectAll"/>
-
- <handler event="keypress" keycode="VK_LEFT" modifiers="control" command="cmd_wordPrevious"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="control" command="cmd_wordNext"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="shift,control" command="cmd_selectWordPrevious"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="shift,control" command="cmd_selectWordNext"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="alt" command="cmd_beginLine"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="alt" command="cmd_endLine"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="shift,alt" command="cmd_selectBeginLine"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="shift,alt" command="cmd_selectEndLine"/>
-
- <handler event="keypress" keycode="VK_UP" modifiers="alt" command="cmd_moveTop"/>
- <handler event="keypress" keycode="VK_DOWN" modifiers="alt" command="cmd_moveBottom"/>
- <handler event="keypress" keycode="VK_UP" modifiers="shift,alt" command="cmd_selectTop"/>
- <handler event="keypress" keycode="VK_DOWN" modifiers="shift,alt" command="cmd_selectBottom"/>
-
- <handler event="keypress" keycode="VK_PAGE_UP" command="cmd_movePageUp"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" command="cmd_movePageDown"/>
- <handler event="keypress" keycode="VK_PAGE_UP" modifiers="shift" command="cmd_selectPageUp"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="shift" command="cmd_selectPageDown"/>
- <handler event="keypress" keycode="VK_PAGE_UP" modifiers="alt" command="cmd_moveTop"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="alt" command="cmd_moveBottom"/>
- <handler event="keypress" keycode="VK_PAGE_UP" modifiers="shift,alt" command="cmd_selectTop"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="shift,alt" command="cmd_selectBottom"/>
-
- <handler event="keypress" keycode="VK_HOME" command="cmd_beginLine"/>
- <handler event="keypress" keycode="VK_END" command="cmd_endLine"/>
- <handler event="keypress" keycode="VK_HOME" modifiers="shift" command="cmd_selectBeginLine" />
- <handler event="keypress" keycode="VK_END" modifiers="shift" command="cmd_selectEndLine" />
- <handler event="keypress" keycode="VK_HOME" modifiers="control" command="cmd_moveTop"/>
- <handler event="keypress" keycode="VK_END" modifiers="control" command="cmd_moveBottom"/>
- <handler event="keypress" keycode="VK_HOME" modifiers="shift,control" command="cmd_selectTop" />
- <handler event="keypress" keycode="VK_END" modifiers="shift,control" command="cmd_selectBottom" />
-
- <handler event="keypress" keycode="VK_BACK" modifiers="alt" command="cmd_deleteToBeginningOfLine"/>
- <handler event="keypress" keycode="VK_DELETE" modifiers="alt" command="cmd_deleteToEndOfLine"/>
- </handlers>
- </binding>
-
- <binding id="browser">
- <handlers>
-#include ../browser-base.inc
- <handler event="keypress" keycode="VK_LEFT" modifiers="shift" command="cmd_selectCharPrevious" />
- <handler event="keypress" keycode="VK_RIGHT" modifiers="shift" command="cmd_selectCharNext" />
- <handler event="keypress" keycode="VK_LEFT" modifiers="control" command="cmd_wordPrevious" />
- <handler event="keypress" keycode="VK_RIGHT" modifiers="control" command="cmd_wordNext" />
- <handler event="keypress" keycode="VK_LEFT" modifiers="control,shift" command="cmd_selectWordPrevious" />
- <handler event="keypress" keycode="VK_RIGHT" modifiers="control,shift" command="cmd_selectWordNext" />
- <handler event="keypress" keycode="VK_LEFT" modifiers="alt" command="cmd_beginLine"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="alt" command="cmd_endLine"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="shift,alt" command="cmd_selectBeginLine"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="shift,alt" command="cmd_selectEndLine"/>
-
- <handler event="keypress" keycode="VK_UP" modifiers="shift" command="cmd_selectLinePrevious" />
- <handler event="keypress" keycode="VK_DOWN" modifiers="shift" command="cmd_selectLineNext" />
- <handler event="keypress" keycode="VK_UP" modifiers="alt" command="cmd_moveTop"/>
- <handler event="keypress" keycode="VK_DOWN" modifiers="alt" command="cmd_moveBottom"/>
- <handler event="keypress" keycode="VK_UP" modifiers="shift,alt" command="cmd_selectTop"/>
- <handler event="keypress" keycode="VK_DOWN" modifiers="shift,alt" command="cmd_selectBottom"/>
-
- <handler event="keypress" keycode="VK_PAGE_UP" command="cmd_movePageUp"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" command="cmd_movePageDown"/>
- <handler event="keypress" keycode="VK_PAGE_UP" modifiers="shift" command="cmd_selectPageUp"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="shift" command="cmd_selectPageDown"/>
- <handler event="keypress" keycode="VK_PAGE_UP" modifiers="alt" command="cmd_moveTop"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="alt" command="cmd_moveBottom"/>
- <handler event="keypress" keycode="VK_PAGE_UP" modifiers="shift,alt" command="cmd_selectTop"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="shift,alt" command="cmd_selectBottom"/>
-
- <handler event="keypress" keycode="VK_HOME" command="cmd_beginLine"/>
- <handler event="keypress" keycode="VK_END" command="cmd_endLine"/>
- <handler event="keypress" keycode="VK_HOME" modifiers="shift" command="cmd_selectBeginLine" />
- <handler event="keypress" keycode="VK_END" modifiers="shift" command="cmd_selectEndLine" />
- <handler event="keypress" keycode="VK_HOME" modifiers="control" command="cmd_moveTop"/>
- <handler event="keypress" keycode="VK_END" modifiers="control" command="cmd_moveBottom"/>
- <handler event="keypress" keycode="VK_HOME" modifiers="shift,control" command="cmd_selectTop" />
- <handler event="keypress" keycode="VK_END" modifiers="shift,control" command="cmd_selectBottom" />
-
- <handler event="keypress" keycode="VK_BACK" modifiers="alt" command="cmd_deleteToBeginningOfLine"/>
- <handler event="keypress" keycode="VK_DELETE" modifiers="alt" command="cmd_deleteToEndOfLine"/>
- </handlers>
- </binding>
-
- <binding id="editor">
- <handlers>
-#include ../editor-base.inc
- <handler event="keypress" key="a" modifiers="accel" command="cmd_selectAll"/>
-
- <handler event="keypress" keycode="VK_LEFT" modifiers="control" command="cmd_wordPrevious"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="control" command="cmd_wordNext"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="shift,control" command="cmd_selectWordPrevious"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="shift,control" command="cmd_selectWordNext"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="alt" command="cmd_beginLine"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="alt" command="cmd_endLine"/>
- <handler event="keypress" keycode="VK_LEFT" modifiers="shift,alt" command="cmd_selectBeginLine"/>
- <handler event="keypress" keycode="VK_RIGHT" modifiers="shift,alt" command="cmd_selectEndLine"/>
-
- <handler event="keypress" keycode="VK_UP" modifiers="alt" command="cmd_moveTop"/>
- <handler event="keypress" keycode="VK_DOWN" modifiers="alt" command="cmd_moveBottom"/>
- <handler event="keypress" keycode="VK_UP" modifiers="shift,alt" command="cmd_selectTop"/>
- <handler event="keypress" keycode="VK_DOWN" modifiers="shift,alt" command="cmd_selectBottom"/>
-
- <handler event="keypress" keycode="VK_PAGE_UP" command="cmd_movePageUp"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" command="cmd_movePageDown"/>
- <handler event="keypress" keycode="VK_PAGE_UP" modifiers="shift" command="cmd_selectPageUp"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="shift" command="cmd_selectPageDown"/>
- <handler event="keypress" keycode="VK_PAGE_UP" modifiers="alt" command="cmd_moveTop"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="alt" command="cmd_moveBottom"/>
- <handler event="keypress" keycode="VK_PAGE_UP" modifiers="shift,alt" command="cmd_selectTop"/>
- <handler event="keypress" keycode="VK_PAGE_DOWN" modifiers="shift,alt" command="cmd_selectBottom"/>
-
- <handler event="keypress" keycode="VK_HOME" command="cmd_beginLine"/>
- <handler event="keypress" keycode="VK_END" command="cmd_endLine"/>
- <handler event="keypress" keycode="VK_HOME" modifiers="shift" command="cmd_selectBeginLine" />
- <handler event="keypress" keycode="VK_END" modifiers="shift" command="cmd_selectEndLine" />
- <handler event="keypress" keycode="VK_HOME" modifiers="control" command="cmd_moveTop"/>
- <handler event="keypress" keycode="VK_END" modifiers="control" command="cmd_moveBottom"/>
- <handler event="keypress" keycode="VK_HOME" modifiers="shift,control" command="cmd_selectTop" />
- <handler event="keypress" keycode="VK_END" modifiers="shift,control" command="cmd_selectBottom" />
-
- <handler event="keypress" keycode="VK_BACK" modifiers="alt" command="cmd_deleteToBeginningOfLine"/>
- <handler event="keypress" keycode="VK_DELETE" modifiers="alt" command="cmd_deleteToEndOfLine"/>
- </handlers>
- </binding>
-</bindings>
diff --git a/dom/xbl/builtin/moz.build b/dom/xbl/builtin/moz.build
index c51001b4c9..b6c41678c4 100644
--- a/dom/xbl/builtin/moz.build
+++ b/dom/xbl/builtin/moz.build
@@ -5,8 +5,6 @@
if CONFIG['OS_ARCH'] == 'WINNT':
DIRS += ['win']
-elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
- DIRS += ['android']
elif CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'):
DIRS += ['unix']
else: